@nocobase/client 2.0.11 → 2.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.js CHANGED
@@ -62,7 +62,7 @@
62
62
  width: 100%;
63
63
  }
64
64
  }
65
- `,items:a},n))})},SchemaInitializerSubMenu=e=>{var t;const o=e,{children:r,items:i,title:n,name:l,onOpenChange:a,icon:c}=o,u=te(o,["children","items","title","name","onOpenChange","icon"]),d=useCompile(),m=useSchemaInitializerItem(),p=(0,import_react2.useMemo)(()=>l||(m==null?void 0:m.name)||(0,import_shared.uid)(),[l,m]),h=(t=i||r)==null?void 0:t.filter(_=>_.useVisible?_.useVisible():!0),g=useSchemaInitializerMenuItems(h,l),f=(0,import_react2.useMemo)(()=>[A(x({},u),{key:p,label:d(n),icon:typeof c=="string"?(0,import_jsx_runtime.jsx)(import_icons.default,{type:c}):c,children:g})],[g,d,c,p,u,n]);return(0,import_jsx_runtime.jsx)(SchemaInitializerMenu,{onOpenChange:a,items:f})},SchemaInitializerSubMenuInternal=()=>{const e=useSchemaInitializerItem();return(0,import_jsx_runtime.jsx)(SchemaInitializerSubMenu,x({},e))},useAriaAttributeOfMenuItem=()=>{const{isInMenu:e}=useSchemaInitializerSubMenuContext();return{attribute:(0,import_react2.useMemo)(()=>e?{}:{role:"menuitem"},[e])}},{Paragraph:Paragraph$1,Text:Text$2}=import_antd.Typography,ErrorFallbackModal=e=>{const[t,o]=import_react2.default.useState(!1),r=(0,import_jsx_runtime.jsx)(Paragraph$1,{style:{display:"flex",marginBottom:0},copyable:{text:e.error.message},children:(0,import_jsx_runtime.jsxs)(Text$2,{type:"danger",style:{whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden",display:"inline-block",maxWidth:"200px"},children:["Error: ",e.error.message]})});return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)("div",{onMouseOver:()=>o(!0),children:e.children||r}),(0,import_jsx_runtime.jsx)(import_antd.Modal,{zIndex:1e4,open:t,footer:null,onCancel:()=>o(!1),width:"60%",children:(0,import_jsx_runtime.jsx)(ErrorFallback,x({},e))})]})},{Paragraph,Text:Text$1,Link}=import_antd.Typography,useDownloadLogs=(e,t={})=>{const o=useLocationNoUpdate(),[r,i]=import_react2.default.useState(!1),n=useAPIClient();return{loading:r,download:()=>L(void 0,null,function*(){i(!0);try{const l=yield n.request({url:"logger:collect",method:"post",responseType:"blob",data:x({error:{message:e.message,stack:e.stack},location:o},t)}),a=window.URL.createObjectURL(new Blob([l.data],{type:"application/gzip"})),c=document.createElement("a");c.setAttribute("href",a),c.setAttribute("download","logs.tar.gz"),c.click(),c.remove()}catch(l){console.log(l)}i(!1)})}},ErrorFallback=({error:e})=>{const t=(0,import_react.useFieldSchema)(),{t:o}=(0,import_react_i18next.useTranslation)(),{loading:r,download:i}=useDownloadLogs(e,{schema:t}),n=(0,import_jsx_runtime.jsxs)(import_react_i18next.Trans,{children:["This is likely a NocoBase internals bug. Please open an issue at ",(0,import_jsx_runtime.jsx)(Link,{href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:"here"})]});return(0,import_jsx_runtime.jsx)("div",{style:{backgroundColor:"white"},children:(0,import_jsx_runtime.jsx)(import_antd.Result,{style:{maxWidth:"60vw",margin:"auto"},status:"error",title:o("Render Failed"),subTitle:n,extra:[(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"primary",href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:o("Feedback")},"feedback"),(0,import_jsx_runtime.jsx)(import_antd.Button,{loading:r,onClick:i,children:o("Download logs")},"log")],children:(0,import_jsx_runtime.jsx)(Paragraph,{copyable:{text:e.stack},children:(0,import_jsx_runtime.jsx)(Text$1,{type:"danger",style:{whiteSpace:"pre-line",textAlign:"center"},children:e.stack})})})})};ErrorFallback.Modal=ErrorFallbackModal;const AppNotFound=()=>{const e=(0,import_react_router_dom.useNavigate)(),{t}=(0,import_react_i18next.useTranslation)();return(0,import_jsx_runtime.jsx)(import_antd.Result,{status:"404",title:"404",subTitle:t("Sorry, the page you visited does not exist."),extra:(0,import_jsx_runtime.jsx)(import_antd.Button,{onClick:()=>e("/",{replace:!0}),type:"primary",children:"Back Home"})})};class Plugin{constructor(t,o){this.options=t,this.app=o,this.options=t,this.app=o}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 ai(){return this.app.aiManager}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}afterAdd(){return L(this,null,function*(){})}beforeLoad(){return L(this,null,function*(){})}load(){return L(this,null,function*(){})}t(t,o={}){var r;return this.app.i18n.t(t,x({ns:(r=this.options)==null?void 0:r.packageName},o))}}const titleWrapperStyle={display:"flex",alignItems:"center",gap:4},withTooltipComponent=e=>t=>{const{tooltip:o}=t;return o?(0,import_jsx_runtime.jsxs)("div",{style:titleWrapperStyle,children:[(0,import_jsx_runtime.jsx)(e,x({},t)),(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:o,children:(0,import_jsx_runtime.jsx)(import_icons.QuestionCircleOutlined,{style:{zIndex:1}})})]}):(0,import_jsx_runtime.jsx)(e,x({},t))},{evaluate}=import_client4.evaluators.get("formula.js"),useEvaluatedExpression=e=>{const t=useVariables$1(),o=useLocalVariables$1(),[r,i]=(0,import_react2.useState)();return(0,import_react2.useEffect)(()=>{L(void 0,null,function*(){if(e==null||e===""){i(void 0);return}const{exp:n,scope:l}=yield replaceVariables(e,{variables:t,localVariables:o});try{const a=evaluate(n,x({now:()=>new Date().toString()},l));i(a)}catch(a){console.error(a)}})},[t.parseVariable,e,o]),r};class SchemaInitializer{constructor(t){R(this,"options"),R(this,"name"),this.options=Object.assign({items:[]},t),this.name=t.name}get items(){return this.options.items}add(t,o){const r=t.split("."),i=r[r.length-1],n=A(x({},o),{name:i}),l=(u,d)=>{const m=this.items.findIndex(p=>p.name===u);m===-1?this.items.push(d):this.items[m]=d};if(r.length===1){l(i,n);return}const a=r.slice(0,-1).join("."),c=this.get(a);if(c){c.children||(c.children=[]);const u=t.replace(`${c.name}.`,""),d=c.children.findIndex(m=>m.name===u);d===-1?c.children.push(n):c.children[d]=n}else l(i,n)}get(t){var o;if(!t)return;const r=t.split(".");let i={children:this.items};for(let n=0;n<r.length;n++){const l=r[n],a=(o=i.children)==null?void 0:o.find(c=>c.name===l);if(a&&(i=a),n===r.length-1)return a}}remove(t){const o=t.split(".");if(o.length===1){const i=this.items.findIndex(n=>n.name===o[0]);i!==-1&&this.items.splice(i,1);return}const r=this.get(o.slice(0,-1).join("."));if(r&&r.children){const i=o[o.length-1],n=r.children.findIndex(l=>l.name===i);n!==-1&&r.children.splice(n,1)}}}var NocoBaseDesktopRouteType=(e=>(e.group="group",e.page="page",e.flowRoute="flowRoute",e.link="link",e.tabs="tabs",e.flowPage="flowPage",e))(NocoBaseDesktopRouteType||{});const useStyles$h=genStyleHook("nb-menu-item",e=>{const{componentCls:t}=e;return{[t]:{paddingLeft:`${e.padding}px !important`,paddingRight:`${e.padding}px !important`}}}),useInsertFlowPageSchema=()=>{const e=useAPIClient();return(0,import_react2.useCallback)(t=>L(void 0,null,function*(){yield e.request({method:"POST",url:"/uiSchemas:insert",data:t})}),[e])},FlowPageMenuItem=()=>{const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),{theme:o}=useGlobalTheme(),{componentCls:r,hashId:i}=useStyles$h(),n=useParentRoute(),{createRoute:l}=useNocoBaseRoutes(),a=useInsertFlowPageSchema(),c=(0,import_react2.useCallback)(()=>L(void 0,null,function*(){const u=yield FormDialog(e("Add page"),()=>(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{scope:t.scope,components:x({},t.components),children:(0,import_jsx_runtime.jsx)(import_antd_v5.FormLayout,{layout:"vertical",children:(0,import_jsx_runtime.jsx)(zIndexContext.Provider,{value:ICON_POPUP_Z_INDEX,children:(0,import_jsx_runtime.jsx)(SchemaComponent,{schema:{properties:{title:{title:e("Menu item title"),required:!0,"x-component":"Input","x-decorator":"FormItem"},icon:{title:e("Icon"),"x-component":"IconPicker","x-decorator":"FormItem"}}}})})})}),o).open({initialValues:{}}),d=(0,import_shared.uid)(),m=(0,import_shared.uid)(),p=(0,import_shared.uid)(),h=(0,import_shared.uid)();yield l({type:NocoBaseDesktopRouteType.flowPage,title:u.title,icon:u.icon,parentId:n==null?void 0:n.id,schemaUid:m,menuSchemaUid:d,enableTabs:!1,children:[{type:NocoBaseDesktopRouteType.tabs,schemaUid:p,tabSchemaName:h,hidden:!0}]}),a(getFlowPageMenuSchema({pageSchemaUid:m}))}),[l,a,t==null?void 0:t.components,t==null?void 0:t.scope,n==null?void 0:n.id,e,o]);return(0,import_jsx_runtime.jsx)(SchemaInitializerItem,{title:e("Modern page (v2)"),onClick:c,className:`${r} ${i}`})};function getFlowPageMenuSchema({pageSchemaUid:e}){return{type:"void","x-component":"FlowRoute","x-uid":e}}const GroupItem$1=()=>{const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),{theme:o}=useGlobalTheme(),{componentCls:r,hashId:i}=useStyles$h(),n=useParentRoute(),{createRoute:l}=useNocoBaseRoutes(),a=(0,import_react2.useCallback)(()=>L(void 0,null,function*(){const c=yield FormDialog(e("Add group"),()=>(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{scope:t.scope,components:x({},t.components),children:(0,import_jsx_runtime.jsx)(import_antd_v5.FormLayout,{layout:"vertical",children:(0,import_jsx_runtime.jsx)(zIndexContext.Provider,{value:ICON_POPUP_Z_INDEX,children:(0,import_jsx_runtime.jsx)(SchemaComponent,{schema:{properties:{title:{title:e("Menu item title"),"x-component":"Input","x-decorator":"FormItem",required:!0},icon:{title:e("Icon"),"x-component":"IconPicker","x-decorator":"FormItem"}}}})})})}),o).open({initialValues:{}}),{title:u,icon:d}=c,m=(0,import_shared.uid)();yield l({type:NocoBaseDesktopRouteType.group,title:u,icon:d,parentId:n==null?void 0:n.id,schemaUid:m})}),[t.components,t.scope,e,o]);return(0,import_jsx_runtime.jsx)(SchemaInitializerItem,{title:e("Group"),onClick:a,className:`${r} ${i}`})},useAttach=e=>{const t=(0,import_react2.useRef)(null);return(0,import_react2.useEffect)(()=>(t.current&&e!==t.current&&t.current.onUnmount(),t.current=e,e.onMount(),()=>{e.onUnmount()}),[e]),e},compileCache={},hasVariable=e=>/{{.*?}}/g.test(e),useCompile=({noCache:e}={noCache:!1})=>{const t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),o=(0,import_react2.useContext)(import_react.SchemaExpressionScopeContext);return(r,i)=>{let n=!1,l;if(typeof r=="string"&&r.startsWith("{{")&&(n=!0,l=r),r&&typeof r=="object"&&!(0,import_react2.isValidElement)(r)){try{l=JSON.stringify(r)}catch(a){return console.warn("Failed to stringify:",a),r}if(compileCache[l])return compileCache[l];n=hasVariable(l)}if(Array.isArray(r)){try{l=JSON.stringify(r)}catch(a){return console.warn("Failed to stringify:",a),r}if(compileCache[l])return compileCache[l];n=hasVariable(l)}if(n){const a=x(x(x({},t==null?void 0:t.scope),o),i);if(!l)return import_react.Schema.compile(r,a);try{return e?import_react.Schema.compile(r,a):(compileCache[l]=compileCache[l]||import_react.Schema.compile(r,a),compileCache[l])}catch(c){return console.log("useCompile error",r,c),import_react.Schema.compile(r,a)}}return r}},useComponent=(e,t)=>{const{components:o}=(0,import_react2.useContext)(import_react.SchemaOptionsContext);return e?typeof e!="string"?e:(0,import_lodash.get)(o,e)||t:t},LAZY_COMPONENT_KEY=Symbol("LAZY_COMPONENT_KEY");function lazy(e,...t){if(t.length===0){const o=(0,import_react2.lazy)(()=>e().then(i=>{const n=i.default;return r[LAZY_COMPONENT_KEY]=n,{default:n}})),r=i=>(0,import_jsx_runtime.jsx)(import_react2.default.Suspense,{fallback:(0,import_jsx_runtime.jsx)(import_antd.Spin,{}),children:(0,import_jsx_runtime.jsx)(o,x({},i))});return r}return t.reduce((o,r)=>{const i=(0,import_react2.lazy)(()=>e().then(n=>{const l=(0,import_lodash.get)(n,r);return o[r][LAZY_COMPONENT_KEY]=l,{default:l}}));return o[r]=n=>(0,import_jsx_runtime.jsx)(import_react2.default.Suspense,{fallback:(0,import_jsx_runtime.jsx)(import_antd.Spin,{}),children:(0,import_jsx_runtime.jsx)(i,x({},n))}),o},{})}function useLazy(e,t){const o=typeof t=="function"?t:i=>i[t],r=(0,import_react_imported_component.loadableResource)(e);if(!r.payload)throw new Promise((i,n)=>{r.loadIfNeeded(),r.resolution.then(i).catch(n)});return o(r.payload)}function addAppVersion(e,t){if(e)return e["x-app-version"]||(e["x-app-version"]=t),Object.keys(e.properties||{}).forEach(o=>{var r;addAppVersion((r=e.properties)==null?void 0:r[o],t)}),e}const name="@nocobase/client",version="2.0.11",license="Apache-2.0",main="lib/index.js",module$1="es/index.mjs",types="es/index.d.ts",dependencies={"@ahooksjs/use-url-state":"3.5.1","@ant-design/cssinjs":"^1.11.1","@ant-design/icons":"^5.6.1","@ant-design/pro-layout":"^7.22.1","@antv/g2plot":"^2.4.18","@budibase/handlebars-helpers":"0.14.0","@codemirror/lang-html":"^6.4.10","@codemirror/theme-one-dark":"^6.1.3","@ctrl/tinycolor":"^3.6.0","@dnd-kit/core":"^6.0.0","@dnd-kit/sortable":"^7.0.0","@emotion/css":"^11.7.1","@formily/antd-v5":"1.2.3","@formily/core":"^2.2.27","@formily/grid":"^2.2.27","@formily/json-schema":"^2.2.27","@formily/path":"^2.2.27","@formily/react":"^2.2.27","@formily/reactive":"^2.2.27","@formily/reactive-react":"^2.2.27","@formily/shared":"^2.2.27","@formily/validator":"^2.2.27","@nocobase/evaluators":"2.0.11","@nocobase/flow-engine":"2.0.11","@nocobase/sdk":"2.0.11","@nocobase/utils":"2.0.11","@tanstack/react-table":"^8.21.3","@types/tabulator-tables":"^6.2.6","acorn-jsx":"^5.3.2",ahooks:"^3.7.2",antd:"5.24.2","antd-mobile":"^5.41.1","antd-mobile-icons":"^0.3.0","antd-style":"3.7.1",axios:"^1.7.0","bignumber.js":"^9.1.2",classnames:"^2.3.1",codemirror:"^6.0.2",cronstrue:"^2.11.0","file-saver":"^2.0.5",filesize:"9.0.11",flat:"^5.0.2","html5-qrcode":"^2.3.8",i18next:"^22.4.9","i18next-http-backend":"^2.1.1",ignore:"^5.2.0",json5:"^2.2.3",liquidjs:"^10.0.0",lodash:"4.17.21","lru-cache":"6.0.0","markdown-it":"14.1.0","markdown-it-highlightjs":"3.3.1",mathjs:"^15.1.0",mermaid:"9.4.3",mime:"^4.0.4","mime-match":"^1.0.2","quill-image-resize-module-react":"^3.0.0","react-beautiful-dnd":"^13.1.0","react-device-detect":"2.2.3","react-drag-listview":"^0.1.9","react-error-boundary":"^4.0.10","react-helmet":"^6.1.0","react-hotkeys-hook":"^3.4.7","react-i18next":"^11.15.1","react-iframe":"~1.8.5","react-image-lightbox":"^5.1.4","react-intersection-observer":"9.14.0","react-js-cron":"^3.1.0","react-quill":"^2.0.0","react-router-dom":"^6.30.1","react-to-print":"^2.14.7","sanitize-html":"2.13.0","tabulator-tables":"^6.3.1","use-deep-compare-effect":"^1.8.1",vditor:"^3.10.3"},peerDependencies={react:">=18.0.0","react-dom":">=18.0.0","react-is":">=18.0.0"},devDependencies={"@testing-library/react":"^14.0.0","@types/markdown-it":"14.1.1","@types/markdown-it-highlightjs":"3.3.1","@types/react-big-calendar":"^1.6.4","axios-mock-adapter":"^1.20.0",dumi:"2.2.14","dumi-theme-nocobase":"^0.2.32"},clientPkg={name,version,license,main,module:module$1,types,dependencies,peerDependencies,devDependencies};function createDesignable(e){return new Designable(e)}const generateUid=e=>{e&&(e["x-uid"]||(e["x-uid"]=(0,import_shared.uid)()),Object.keys(e.properties||{}).forEach(t=>{generateUid(e.properties[t])}))},defaultWrap=e=>e,matchSchema=(e,t)=>{if(!(!e||!t)){for(const o in t)if(Object.prototype.hasOwnProperty.call(t,o)&&t[o]!==(e==null?void 0:e[o]))return!1;return!0}},splitWrapSchema=(e,t)=>{if(e["x-uid"]&&e["x-uid"]===t["x-uid"])return[null,e.toJSON()];const o=e.toJSON(),r=A(x({},o),{properties:{}});let i=null;const n=(l,a)=>{Object.keys(l||{}).forEach(c=>{const u=l[c];if(u["x-uid"]===t["x-uid"]){i=l[c];return}else a.properties[c]=A(x({},u),{properties:{}}),n(u==null?void 0:u.properties,a.properties[c])})};return n(o.properties,r),[r,i]},translate=e=>e;class Designable{constructor(t){R(this,"current"),R(this,"options"),R(this,"appVersion"),R(this,"events",{}),this.options=t,this.current=t.current,this.appVersion=t.appVersion}get model(){return this.options.model}get query(){return this.options.query}loadAPIClientEvents(){const{api:t,t:o=translate}=this.options;if(!t)return;const r=i=>{if(!i)return[];const n=Object.values(i.properties).length,l=[];return i.mapProperties(a=>{a["x-component-props"]=a["x-component-props"]||{},a["x-component-props"].width=100/n,a["x-uid"]&&l.push({"x-uid":a["x-uid"],"x-component-props":a["x-component-props"]})}),i["x-uid"]&&l.length?l:[]};this.on("insertAdjacent",i=>L(this,[i],function*({onSuccess:n,current:l,position:a,schema:c,wrap:u,wrapped:d,removed:m}){var p;let h=[];if((d==null?void 0:d["x-component"])==="Grid.Col"&&(h=h.concat(r(d.parent))),(m==null?void 0:m["x-component"])==="Grid.Col"&&(h=h.concat(r(m.parent))),this.refresh(),!l["x-uid"])return;const g=yield t.request({url:`/uiSchemas:insertAdjacent/${l["x-uid"]}?position=${a}`,method:"post",data:{schema:addAppVersion(c,this.appVersion),wrap:u}});h.length&&(yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:h})),m!=null&&m["x-uid"]&&(yield t.request({url:`/uiSchemas:remove/${m["x-uid"]}`,method:"post"})),n==null||n((p=g==null?void 0:g.data)==null?void 0:p.data),import_antd.message.success(o("Saved successfully"),.2)})),this.on("patch",i=>L(this,[i],function*({schema:n}){this.refresh(),n!=null&&n["x-uid"]&&(yield t.request({url:"/uiSchemas:patch",method:"post",data:x({},n)}),import_antd.message.success(o("Saved successfully"),.2))})),this.on("initializeActionContext",i=>L(this,[i],function*({schema:n}){n!=null&&n["x-uid"]&&(yield t.request({url:"/uiSchemas:initializeActionContext",method:"post",data:x({},n)}))})),this.on("batchPatch",i=>L(this,[i],function*({schemas:n}){this.refresh(),yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:n}),import_antd.message.success(o("Saved successfully"),.2)})),this.on("remove",i=>L(this,[i],function*({removed:n}){let l=[];(n==null?void 0:n["x-component"])==="Grid.Col"&&(l=r(n.parent)),this.refresh(),n!=null&&n["x-uid"]&&(yield t.request({url:`/uiSchemas:remove/${n["x-uid"]}`,method:"post"}),l.length&&(yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:l})),import_antd.message.success(o("Saved successfully"),.2))}))}prepareProperty(t){t.type||(t.type="void"),t.name||(t.name=(0,import_shared.uid)()),this.current["x-uid"]&&generateUid(t)}on(t,o){this.events[t]||(this.events[t]=[]),this.events[t].push(o)}emit(t,...o){return L(this,null,function*(){if(!this.events[t])return;const[r,...i]=o;return Promise.all(this.events[t].map(n=>n.bind(this)(x({current:this.current},r),...i)))})}parentsIn(t){if(!t||!import_react.Schema.isSchemaInstance(t))return!1;let o=this.current;for(;o!=null&&o.parent;){if(o.parent===t)return!0;o=o.parent}return!1}refresh(t){const{refresh:o}=this.options;return o==null?void 0:o(t)}deepMerge(t){const o={title:"title",description:"description",default:"initialValue",readOnly:"readOnly",writeOnly:"editable",enum:"dataSource","x-pattern":"pattern","x-display":"display","x-validator":"validator","x-decorator":"decorator","x-component":"component","x-reactions":"reactions","x-content":"content","x-visible":"visible","x-hidden":"hidden","x-disabled":"disabled","x-editable":"editable","x-read-only":"readOnly"},r={"x-decorator-props":"decoratorProps","x-component-props":"componentProps","x-data":"data"};Object.keys(t).forEach(i=>{o[i]?(this.current[i]=t[i],this.updateModel(o[i],t[i])):r[i]?Object.keys(t[i]).forEach(n=>{(0,import_set.default)(this.current,[i,n],t[i][n]),this.updateModel([r[i],n],t[i][n])}):this.current[i]=t[i]}),this.emit("patch",{schema:t})}getSchemaAttribute(t,o){return(0,import_get.default)(this.current,t,o)}shallowMerge(t){const o={title:"title",description:"description",default:"initialValue",readOnly:"readOnly",writeOnly:"editable",enum:"dataSource","x-pattern":"pattern","x-display":"display","x-validator":"validator","x-decorator":"decorator","x-component":"component","x-reactions":"reactions","x-content":"content","x-visible":"visible","x-hidden":"hidden","x-disabled":"disabled","x-editable":"editable","x-read-only":"readOnly","x-decorator-props":"decoratorProps","x-component-props":"componentProps","x-data":"data"};Object.keys(t).forEach(r=>{this.current[r]=t[r],o[r]&&this.updateModel(o[r],t[r])}),this.emit("patch",{schema:t})}updateModel(t,o){const r=i=>{(0,import_set.default)(i,t,o)};this.model&&r(this.model),this.query&&this.query.take(r)}insertAdjacent(t,o,r={}){switch(t){case"beforeBegin":return this.insertBeforeBegin(o,r);case"afterBegin":return this.insertAfterBegin(o,r);case"beforeEnd":return this.insertBeforeEnd(o,r);case"afterEnd":return this.insertAfterEnd(o,r)}}recursiveRemoveIfNoChildren(t,o){if(!t)return;let r=t,i;const n=o==null?void 0:o.breakRemoveOn;for(;r;){if(typeof n=="function"){if(n(r))break}else if(matchSchema(r,n))break;if(Object.keys(r.properties||{}).length>0)break;r.parent&&(i=r.parent.removeProperty(r.name)),r=r.parent}return i}remove(t,o={}){const{breakRemoveOn:r,removeParentsIfNoChildren:i}=o,n=t||this.current;let l=n.parent.removeProperty(n.name);if(i){const a=this.recursiveRemoveIfNoChildren(n.parent,{breakRemoveOn:r});a&&(l=a)}return this.emit("remove",{removed:l})}removeWithoutEmit(t,o={}){const{breakRemoveOn:r,removeParentsIfNoChildren:i}=o,n=t||this.current;let l=n.parent.removeProperty(n.name);if(i){const a=this.recursiveRemoveIfNoChildren(n.parent,{breakRemoveOn:r});a&&(l=a)}return l}insertBeforeBeginOrAfterEnd(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current)||!import_react.Schema.isSchemaInstance(t)||this.current.parent!==t.parent)return;let r=0,i=0;return this.current.parent.mapProperties((n,l,a)=>{this.current.name===l&&(i=a),t.name===l&&(r=a)}),r>i?this.insertBeforeBegin(t,o):this.insertAfterEnd(t,o)}insertBeforeBegin(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;const r={onSuccess:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren:l}=o;if(import_react.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),l&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n}))}else t&&(t=(0,import_cloneDeep.default)(t));const a={};let c=!1,u=0,d=0;this.current.parent.mapProperties((f,_)=>{_===this.current.name&&(d=u,c=!0,++u),f["x-index"]=u,++u,c&&(a[_]=f,this.current.parent.removeProperty(_))}),this.prepareProperty(t);const m=i(t),p=this.current.parent.addProperty(m.name||(0,import_shared.uid)(),m);p["x-index"]=d,p.parent=this.current.parent,this.current.parent.setProperties(a);const[h,g]=splitWrapSchema(p,t);this.emit("insertAdjacent",x({position:"beforeBegin",schema:g,wrapped:m,wrap:h},r))}insertAfterBegin(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;const r={onSuccess:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren:l}=o;if(import_react.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),l&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n}))}else t&&(t=(0,import_cloneDeep.default)(t));const a={};let c=1;this.current.mapProperties((h,g)=>{h["x-index"]=c,++c,a[g]=h}),this.current.properties={},this.prepareProperty(t);const u=i(t),d=this.current.addProperty(u.name||(0,import_shared.uid)(),u);d["x-index"]=0,d.parent=this.current,this.current.setProperties(a);const[m,p]=splitWrapSchema(d,t);this.emit("insertAdjacent",x({position:"afterBegin",schema:p,wrap:m,wrapped:u},r))}insertBeforeEnd(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;delete t["x-index"];const r={onSuccess:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren:l}=o;if(import_react.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),l&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n}))}else t&&(t=(0,import_cloneDeep.default)(t));this.prepareProperty(t);const a=i(t),c=this.current.addProperty(a.name||(0,import_shared.uid)(),a);c.parent=this.current;const[u,d]=splitWrapSchema(c,t);return this.emit("insertAdjacent",x({position:"beforeEnd",schema:d,wrap:u,wrapped:a},r))}insertAfterEnd(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;const r={onSuccess:o==null?void 0:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren:l}=o;let a=0,c=0,u=!1;const d={};if(this.current.parent.mapProperties((f,_)=>{f["x-index"]=a,_===this.current.name&&(++a,c=a,u=!0),++a,u&&_!==this.current.name&&(d[_]=f,this.current.parent.removeProperty(_))}),import_react.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),l&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n})),t.parent=null}else t&&(t=(0,import_cloneDeep.default)(t));this.prepareProperty(t);const m=i(t),p=this.current.parent.addProperty(m.name||(0,import_shared.uid)(),m);p.parent=this.current.parent,p["x-index"]=c,this.current.parent.setProperties(d);const[h,g]=splitWrapSchema(p,t);this.emit("insertAdjacent",x({position:"afterEnd",schema:g,wrap:h,wrapped:m},r))}}function useFindComponent(){const e=(0,import_react2.useContext)(import_react.SchemaOptionsContext),t=(0,import_react2.useMemo)(()=>(e==null?void 0:e.components)||{},[e]);return o=>{if(!o)return null;if(typeof o!="string")return o;const r=(0,import_get.default)(t,o);return r||console.error(`[nocobase]: Component "${o}" not found`),r}}function useDesignable(){const{designable:e,setDesignable:t,refresh:o,reset:r}=(0,import_react2.useContext)(SchemaComponentContext),i=(0,import_react2.useContext)(import_react.SchemaOptionsContext),n=(0,import_react2.useMemo)(()=>(i==null?void 0:i.components)||{},[i]),l=(0,import_react2.useMemo)(()=>()=>(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{}),[]),a=(0,import_ahooks.useUpdate)(),c=useRefreshFieldSchema(),u=useRefreshComponent(),d=(0,import_react2.useCallback)(v=>{o==null||o(),a(),c==null||c(v),u==null||u()},[o,a,c,u]),m=(0,import_react.useField)(),p=(0,import_react.useFieldSchema)(),h=useAPIClient(),{t:g}=(0,import_react_i18next.useTranslation)(),f=(0,import_react2.useMemo)(()=>createDesignable({t:g,api:h,refresh:d,current:p,model:m,appVersion:clientPkg.version}),[g,h,d,p,m]);(0,import_react2.useEffect)(()=>{f.loadAPIClientEvents()},[f]);const{isMobileLayout:_}=useMobileLayout();return{dn:f,designable:_?!1:e,reset:r,refresh:d,setDesignable:t,DesignableBar:l,findComponent:(0,import_react2.useCallback)(v=>{var b;if(!v)return null;if(typeof v!="string")return v;const C=(0,import_get.default)(n,v);return(b=C==null?void 0:C[LAZY_COMPONENT_KEY])!=null?b:C},[import_get.default]),on:f.on.bind(f),patch:(0,import_react2.useCallback)((v,b)=>{const C=y=>{Object.keys(y).forEach(F=>{const S=y[F];F==="title"&&(m.title=S,p.title=S),F==="x-decorator-props"&&(m.decoratorProps||(m.decoratorProps={}),p["x-decorator-props"]||(p["x-decorator-props"]={}),Object.keys(S).forEach(P=>{m.decoratorProps[P]=S[P],p["x-decorator-props"][P]=S[P]})),F==="x-component-props"&&(m.componentProps||(m.componentProps={}),p["x-component-props"]||(p["x-component-props"]={}),Object.keys(S).forEach(P=>{m.componentProps[P]=S[P],p["x-component-props"][P]=S[P]}))})};if(typeof v=="string"){const y={};return(0,import_set.default)(y,v,b),C(y)}C(v),d()},[f]),shallowMerge:(0,import_react2.useCallback)(v=>{f.shallowMerge(v)},[f]),deepMerge:(0,import_react2.useCallback)(v=>{f.deepMerge(v)},[f]),remove:(0,import_react2.useCallback)((v,b)=>{f.remove(v,b)},[f]),insertAdjacent:(0,import_react2.useCallback)((v,b,C)=>{f.insertAdjacent(v,b,C)},[f]),insertBeforeBegin:(0,import_react2.useCallback)(v=>{f.insertBeforeBegin(v)},[f]),insertAfterBegin:(0,import_react2.useCallback)(v=>{f.insertAfterBegin(v)},[f]),insertBeforeEnd:(0,import_react2.useCallback)(v=>{f.insertBeforeEnd(v)},[f]),insertAfterEnd:(0,import_react2.useCallback)(v=>{f.insertAfterEnd(v)},[f])}}const DefaultSchemaToolbar=()=>null;DefaultSchemaToolbar.isNullComponent=!0;const useDesigner=()=>{const{designable:e}=useDesignable(),t=(0,import_react.useFieldSchema)(),o=(0,import_react2.useMemo)(()=>t["x-designer"]||t["x-toolbar"]?t["x-designer"]||t["x-toolbar"]:t["x-settings"]?SchemaToolbar:DefaultSchemaToolbar,[t]),r=useComponent(o);return e&&r||DefaultSchemaToolbar},useFieldProps$1=e=>{const t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),o=(0,import_react2.useContext)(import_react.SchemaExpressionScopeContext),r=(0,import_react2.useRef)();return r.current=o,e.toFieldProps(A(x({},t),{get scope(){return x(x({},t.scope),r.current)}}))};function useSchemaComponentContext(){return(0,import_react2.useContext)(SchemaComponentContext)}const useFieldComponentOptions=()=>{var e;const{getCollectionJoinField:t,getCollection:o}=useCollectionManager_deprecated(),r=(0,import_react.useFieldSchema)(),{getField:i}=useCollection_deprecated(),n=i(r.name)||t(r["x-collection-field"]),{t:l}=(0,import_react_i18next.useTranslation)(),{label:a}=((e=r["x-component-props"])==null?void 0:e.fieldNames)||{};return(0,import_react2.useMemo)(()=>{if(!n||!(n!=null&&n.interface)||!["o2o","oho","obo","o2m","linkTo","m2o","m2m"].includes(n.interface))return;const c=o(n.target);if((c==null?void 0:c.template)==="file")return[{label:l("Record picker"),value:"CollectionField"},{label:l("Select"),value:"AssociationSelect"}];switch(n.interface){case"o2m":return[{label:l("Record picker"),value:"CollectionField"},{label:l("Subtable"),value:"TableField"},{label:l("Select"),value:"AssociationSelect"}];case"m2o":case"m2m":case"linkTo":return[{label:l("Record picker"),value:"CollectionField"},{label:l("Select"),value:"AssociationSelect"}];default:return[{label:l("Record picker"),value:"CollectionField"},{label:l("Subform"),value:"FormField"},{label:l("Select"),value:"AssociationSelect"}]}},[l,n==null?void 0:n.interface,a])},useFieldTitle=()=>{var e;const t=(0,import_react.useField)(),o=(0,import_react.useFieldSchema)(),r=useCollection(),i=useCollectionManager(),n=(r==null?void 0:r.getField(o.name))||(i==null?void 0:i.getCollectionField(o["x-collection-field"])),l=useCompile();(0,import_react2.useEffect)(()=>{var a;t!=null&&t.title||(t.title=l((a=n==null?void 0:n.uiSchema)==null?void 0:a.title))},[(e=n==null?void 0:n.uiSchema)==null?void 0:e.title])},useDef$4=()=>({}),useProps=(e={})=>{const t=e,{useProps:o=useDef$4}=t,r=te(t,["useProps"]);let i=o;typeof o!="function"&&(i=useDef$4);const n=i();return x(x({},r),n)};function useParsedFilter({filterOption:e,onFilterChange:t}){const{parseFilter:o,findVariable:r}=useParseDataScopeFilter(),[i,n]=(0,import_react2.useState)({}),[l,a]=(0,import_react2.useState)(!!e);return(0,import_react2.useEffect)(()=>{if(!e)return;const c=()=>L(this,null,function*(){a(!0);const d=yield o(e);a(!1),n(d),t==null||t(d)});c();const u=import_lodash.default.debounce(c,DEBOUNCE_WAIT);(0,import_reactive.reaction)(()=>(0,import_client.flatten)(e,{breakOn({key:d}){return d.startsWith("$")&&d!=="$and"&&d!=="$or"},transformValue(d){if(!isVariable$1(d))return d;const m=getVariableName(d),p=r(m);let h=null;const g=getPath(d).split(".");return g.forEach((f,_)=>{const v=g.slice(0,_+1).join("."),b=(0,import_client.getValuesByPath)({[m]:(p==null?void 0:p.ctx)||{}},v);import_lodash.default.isEmpty(b)||(h=b)}),h}}),u,{equals:import_lodash.default.isEqual})},[JSON.stringify(e),o,r]),{filter:i,parseVariableLoading:l}}const useParentRecordCommon=e=>{const t=useCollectionRecordData();if(e)return t},useTableBlockDecoratorProps=e=>{var t;const{params:o,parseVariableLoading:r}=useTableBlockParams(e),i=useParentRecordCommon(e.association),n=(t=useDataSourceManager().getDataSource(e.dataSource))==null?void 0:t.collectionManager.getCollection(e.collection);return{params:o,parentRecord:i,parseVariableLoading:r,rowKey:(n==null?void 0:n.filterTargetKey)||"id"}};function useTableBlockParams(e){var t;const o=(0,import_react.useFieldSchema)(),{filter:r,parseVariableLoading:i}=useParsedFilter({filterOption:(t=e.params)==null?void 0:t.filter});return{params:(0,import_react2.useMemo)(()=>{const n=e.params||{},{dragSortBy:l}=(o==null?void 0:o["x-decorator-props"])||{};return e.dragSort&&l&&(n.sort=l),A(x({},n),{filter:r})},[o,r,e.dragSort,e.params]),parseVariableLoading:i}}const key="__isNewRecord__",isNewRecord=e=>(0,import_reactive.untracked)(()=>!!(e!=null&&e[key])),markRecordAsNew=e=>{if(!(0,import_lodash.isObject)(e))throw new Error("markRecordAsNew: record must be an object");return e[key]=!0,e},useDefaultLoading=()=>{var e;return!!((e=useDataBlockRequest())!=null&&e.loading)},withSkeletonComponent=(e,t)=>{const{useLoading:o=useDefaultLoading,displayName:r,SkeletonComponent:i=import_antd.Skeleton}=t||{},n=import_react2.default.memo(l=>{const a=o(),c=(0,import_react2.useRef)(!1),u=(0,import_react2.useDeferredValue)(a);return!c.current&&u?(0,import_jsx_runtime.jsx)(i,{}):(c.current=!0,(0,import_jsx_runtime.jsx)(e,x({},l)))});return n.displayName=r||`${e.displayName}(withSkeletonComponent)`||`${e.name}(withSkeletonComponent)`,n},getActionValue=(e,t)=>{const o=r=>(r==null?void 0:r.mode)==="constant"?r.value:null;switch(!0){case[ActionType.Color,ActionType.BackgroundColor,ActionType.TextAlign,ActionType.FontSize,ActionType.FontWeight,ActionType.FontStyle].includes(e):return o(t);default:return null}},getSatisfiedActions=(e,t)=>L(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield Promise.all(o.filter(l=>!l.disabled).map(l=>L(void 0,null,function*(){return(yield conditionAnalyses({ruleGroup:l.condition,variables:r,localVariables:i,conditionType:l.conditionType},n))?l:null})))).filter(Boolean).map(l=>l.actions).flat()}),getSatisfiedValues=(e,t)=>L(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield getSatisfiedActions({rules:o,variables:r,localVariables:i},n)).map(l=>A(x({},l),{value:getActionValue(l.operator,l.value)}))}),getSatisfiedValueMap=(e,t)=>L(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield getSatisfiedValues({rules:o,variables:r,localVariables:i},n)).reduce((l,a)=>A(x({},l),{[a.operator]:a.value}),{})});function useSatisfiedActionValues({formValues:e,category:t="default",rules:o,schema:r,form:i}){const[n,l]=(0,import_react2.useState)({}),a=(0,import_react.useFieldSchema)(),c=useVariables$1(),u=useLocalVariables$1({currentForm:{values:e}}),d=r??a,m=o??(d[LinkageRuleDataKeyMap[t]]||(d==null?void 0:d.parent[LinkageRuleDataKeyMap[t]])),p=useApp(),h=(0,import_react2.useCallback)(()=>{m&&e&&getSatisfiedValueMap({rules:m,variables:c,localVariables:u},p.jsonLogic).then(g=>{(0,import_lodash.isEmpty)(g)?l({}):l(g)}).catch(g=>{throw new Error(g.message)})},[c,u,m,e]);return(0,import_react2.useEffect)(()=>{if(h(),i){const g=(0,import_shared.uid)();return i.addEffects(g,()=>{(0,import_core.onFormValuesChange)(()=>{h()})}),()=>{i.removeEffects(g)}}},[i,h,e]),{valueMap:n}}const GetStyleRules=import_react2.default.memo(({record:e,schema:t,onStyleChange:o})=>{const{valueMap:r}=useSatisfiedActionValues({formValues:e,category:"style",schema:t});return(0,import_react2.useEffect)(()=>{o(r)},[o,r]),null});GetStyleRules.displayName="GetStyleRules";const opacityStyle={opacity:.5},containerStyle={position:"relative"},spinStyle={display:"flex",alignItems:"center",justifyContent:"center",position:"absolute",left:0,right:0,height:"100%",maxHeight:400,zIndex:1e3},displayNone$3={display:"none"},HighPerformanceSpin=import_react2.default.memo(e=>(0,import_jsx_runtime.jsxs)("div",{style:containerStyle,children:[(0,import_jsx_runtime.jsx)(import_antd.Spin,A(x({},import_lodash.default.omit(e,"children")),{style:e.spinning?spinStyle:displayNone$3})),(0,import_jsx_runtime.jsx)("div",{style:e.spinning?opacityStyle:null,children:e.children})]}));HighPerformanceSpin.displayName="HighPerformanceSpin";var FilterBlockType=(e=>(e[e.FORM=0]="FORM",e[e.TABLE=1]="TABLE",e[e.TREE=2]="TREE",e[e.COLLAPSE=3]="COLLAPSE",e))(FilterBlockType||{});const mergeFilter=(e,t="$and")=>{const o=e.filter(r=>{if(r&&typeof r=="object"&&!Array.isArray(r))return Object.values(r).filter(i=>i!==void 0).length});return o.length===0?{}:o.length===1?o[0]:{[t]:o}},getSupportFieldsByAssociation=(e,t)=>{var o;return(o=t.associatedFields)==null?void 0:o.filter(r=>e==null?void 0:e.some(i=>i===r.target))},getSupportFieldsByForeignKey=(e,t)=>{var o;return(o=t.foreignKeyFields)==null?void 0:o.filter(r=>e.fields.some(i=>i.type!=="belongsTo"&&i.foreignKey===r.name&&i.target===r.collectionName))},useSupportedBlocks=e=>{const{getDataBlocks:t}=useFilterBlock(),o=(0,import_react.useFieldSchema)(),r=useCollection(),{getAllCollectionsInheritChain:i}=useAllCollectionsInheritChainGetter();if(e===0||e===3)return t().filter(n=>isSameCollection(n.collection,r));if(e===1||e===2)return t().filter(n=>{var l,a;return o["x-uid"]!==n.uid&&(isSameCollection(n.collection,r)||((l=getSupportFieldsByAssociation(i(r.name,r.dataSource),n))==null?void 0:l.length)||((a=getSupportFieldsByForeignKey(r,n))==null?void 0:a.length))})},transformToFilter=(e,t,o,r)=>(e=(0,import_client.flatten)(e,{breakOn({value:i,path:n}){if(["$match","$notMatch","$anyOf","$noneOf","$childIn","$childNotIn","$dateBetween","$in","$notIn"].includes(t[n]))return!0;const l=o(`${r}.${n}`);if(["datetime","datetimeNoTz","date","unixTimestamp","createdAt","updatedAt"].includes(l==null?void 0:l.interface))return!0;if(l!=null&&l.target){if(Array.isArray(i))return!0;const a=l.targetKey||"id";if(i&&i[a]!=null)return!0}return!1}}),{$and:Object.keys(e).map(i=>{let n=import_lodash.default.get(e,i);const l=o(`${r}.${i}`);return l!=null&&l.target&&["hasOne","hasMany","belongsTo","belongsToMany","belongsToArray"].includes(l.type)&&(n=(0,import_client.getValuesByPath)(n,l.targetKey||"id"),i=`${i}.${l.targetKey||"id"}`,(l==null?void 0:l.interface)==="chinaRegion"&&(n=import_lodash.default.last(n))),!n&&n!==0&&n!==!1?null:{[i]:{[t[i]||"$eq"]:n}}}).filter(Boolean)}),useAssociatedFields=()=>{var e;return((e=useCollection())==null?void 0:e.fields.filter(t=>isAssocField(t)))||[]},isAssocField=e=>["o2o","oho","obo","m2o","createdBy","updatedBy","o2m","m2m","linkTo","chinaRegion","mbm"].includes(e==null?void 0:e.interface),isSameCollection=(e,t)=>e.name===t.name&&e.dataSource===t.dataSource,useFilterAPI=()=>{const e=(0,import_react.useFieldSchema)(),{getDataBlocks:t}=useFilterBlock(),{targets:o,uid:r}=findFilterTargets(e),i=t(),[n,l]=(0,import_react2.useState)(()=>o&&o.some(u=>i.some(d=>d.uid===u.uid))),a=Object.keys(o||{});(0,import_react2.useEffect)(()=>{l(o&&o.some(u=>i.some(d=>d.uid===u.uid)))},[a.length,o,i]);const c=(0,import_react2.useCallback)((u,d="id",m="$eq")=>{const p=i.find(h=>h.uid===e.parent["x-uid"]);i.forEach(h=>{var g,f,_,v;let b=d;const C=o.find(P=>P.uid===h.uid);if(!C)return;import_lodash.default.isFunction(u)&&(u=u(C,h,getSourceKey$1(p,C.field))),import_lodash.default.isFunction(d)&&(b=d(C,h)),import_lodash.default.isFunction(m)&&(m=m(C));const y=((g=h.service.params)==null?void 0:g[0])||{},F=((_=(f=h.service.params)==null?void 0:f[1])==null?void 0:_.filters)||{};if(u!=null)F[r]={$and:[{[b]:{[m]:u}}]};else if((v=h.clearSelection)==null||v.call(h),delete F[r],h.dataLoadingMode==="manual")return h.clearData();const S=mergeFilter([...Object.values(F).map(P=>removeNullCondition(P)),h.defaultFilter]);h.doFilter(A(x({},y),{page:1,filter:S}),{filters:F})})},[i,o,r,e]);return{isConnected:n,doFilter:c}},isInFilterFormBlock=e=>{for(;e;){if(e["x-filter-targets"])return e["x-decorator"]==="FilterFormBlockProvider";e=e.parent}return!1};function getSourceKey$1(e,t){var o,r,i;const n=(o=e==null?void 0:e.associatedFields)==null?void 0:o.find(l=>l.foreignKey===t);return(n==null?void 0:n.sourceKey)||((i=(r=t==null?void 0:t.split)==null?void 0:r.call(t,"."))==null?void 0:i[1])}const AssociationFieldContext=(0,import_react2.createContext)({});AssociationFieldContext.displayName="AssociationFieldContext";const useInsertSchema$1=e=>{const t=(0,import_react.useFieldSchema)(),{insertAfterBegin:o}=useDesignable(),{isMobileLayout:r}=useMobileLayout();return(0,import_react2.useCallback)(i=>{r||t.reduceProperties((n,l)=>l["x-component"]==="AssociationField."+e?l:n,null)||o((0,import_cloneDeep.default)(i))},[e,t,o,r])};function useAssociationFieldContext(){return(0,import_react2.useContext)(AssociationFieldContext)}function useServiceOptions$1(e){var t,o,r,i,n,l,a,c,u,d;const{action:m="list",service:p,useOriginalFilter:h}=e,g=(0,import_react.useFieldSchema)(),f=(0,import_react.useField)(),{getField:_}=useCollection_deprecated(),{getCollectionJoinField:v}=useCollectionManager_deprecated(),b=useRecord(),{isNew:C}=useCollectionRecord()||{},y=((0,import_lodash.isString)((r=(o=(t=g==null?void 0:g["x-component-props"])==null?void 0:t.service)==null?void 0:o.params)==null?void 0:r.filter)?(l=(n=(i=f.componentProps)==null?void 0:i.service)==null?void 0:n.params)==null?void 0:l.filter:(u=(c=(a=g==null?void 0:g["x-component-props"])==null?void 0:a.service)==null?void 0:c.params)==null?void 0:u.filter)||((d=p==null?void 0:p.params)==null?void 0:d.filter),{filter:F}=useParsedFilter({filterOption:y,onFilterChange:()=>{C&&f.reset()}}),S=(0,import_react2.useMemo)(()=>_(g.name)||v(g==null?void 0:g["x-collection-field"]),[g]),P=b==null?void 0:b[S==null?void 0:S.sourceKey],j=(0,import_react2.useMemo)(()=>{const I=["oho","o2m"].includes(S==null?void 0:S.interface);return mergeFilter([mergeFilter([I&&!isInFilterFormBlock(g)&&S!=null&&S.foreignKey&&!h?{[S.foreignKey]:{$is:null}}:null,F]),I&&P!==void 0&&P!==null&&!isInFilterFormBlock(g)&&S!=null&&S.foreignKey&&!h?{[S.foreignKey]:{$eq:P}}:null],"$or")},[S==null?void 0:S.interface,S==null?void 0:S.foreignKey,g,F,P,h]);return(0,import_react2.useMemo)(()=>A(x({resource:S==null?void 0:S.target,action:m},p),{params:A(x({},p==null?void 0:p.params),{filter:j})}),[S==null?void 0:S.target,m,j,p])}const useFieldNames$1=(e={})=>{var t,o,r,i,n;const l=(0,import_react.useFieldSchema)(),a=((i=(r=(o=(t=l["x-component-props"])==null?void 0:t.field)==null?void 0:o.uiSchema)==null?void 0:r["x-component-props"])==null?void 0:i.fieldNames)||((n=l["x-component-props"])==null?void 0:n.fieldNames)||e.fieldNames;return x({label:"label",value:"value"},a)},SubFormContext=(0,import_react2.createContext)(null);SubFormContext.displayName="SubFormContext";const SubFormProvider=e=>{const t=(0,import_react2.useContext)(SubFormContext),{value:o,collection:r,fieldSchema:i,parent:n,skip:l}=e.value,a=(0,import_react2.useMemo)(()=>import_lodash.default.omitBy({value:o,collection:r,fieldSchema:i,skip:l,parent:n||(t!=null&&t.skip?t.parent:t)},import_lodash.default.isUndefined),[o,r,i,l,n,t]);return(0,import_jsx_runtime.jsx)(SubFormContext.Provider,{value:a,children:e.children})},useSubFormValue=()=>{const{value:e,collection:t,fieldSchema:o,parent:r}=(0,import_react2.useContext)(SubFormContext)||{};return{formValue:e,collection:t,fieldSchema:o,parent:r}},TableUidContext=(0,import_react2.createContext)(null),useColumnSettings=e=>{const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react2.useContext)(TableUidContext),r=`nocobase_table_column_settings_${o}`,i=(0,import_react2.useCallback)(()=>{try{const a=localStorage.getItem(r);return a?JSON.parse(a):null}catch(a){return console.warn("Failed to parse table column settings from localStorage:",a),null}},[r]),n=(0,import_react2.useCallback)(a=>{try{const c=JSON.stringify(a);localStorage.setItem(r,c);const u=new CustomEvent("nocobase-table-settings-changed",{detail:{key:r,tableId:o,settings:a}});window.dispatchEvent(u)}catch(c){console.warn("Failed to save table column settings to localStorage:",c),import_antd.message.error(t("Failed to save table settings"))}},[r,o,t]),l=(0,import_react2.useCallback)(()=>{try{localStorage.removeItem(r);const a=new CustomEvent("nocobase-table-settings-changed",{detail:{key:r,tableId:o,settings:null}});window.dispatchEvent(a)}catch(a){console.warn("Failed to clear table column settings from localStorage:",a),import_antd.message.error(t("Failed to clear table settings"))}},[r,o,t]);return{getSettings:i,saveSettings:n,clearSettings:l}},useTableColumnIntegration=(e,t=!0)=>{const o=(0,import_react2.useContext)(TableUidContext),{getSettings:r}=useColumnSettings(),[i,n]=(0,import_react2.useState)(0);(0,import_react2.useEffect)(()=>{const a=c=>{const{key:u,tableId:d}=c.detail;(u.includes(o)||d===o)&&n(m=>m+1)};return window.addEventListener("nocobase-table-settings-changed",a),()=>{window.removeEventListener("nocobase-table-settings-changed",a)}},[o]);const l=(0,import_react2.useMemo)(()=>r(),[r,i]);return{columns:(0,import_react2.useMemo)(()=>{if(!t||!l||l.length===0)return e;const a=new Map;l.forEach(p=>{a.set(p.key,p)});const c=e.map(p=>{const h=a.get(p.key);if(h){const g=p.columnHidden||!h.visible,f=h.width||p.width,_=h.fixed||p.fixed;return A(x({},p),{columnHidden:g,fixed:_,width:f,_orderIndex:h.order})}return p}),u=[],d=[];c.forEach(p=>{p._orderIndex!==void 0?u.push(p):d.push(p)}),u.sort((p,h)=>(p._orderIndex||0)-(h._orderIndex||0));const m=[...u,...d];return m.forEach(p=>{delete p._orderIndex}),m},[e,l])}},TableSkeleton=({rows:e=5,columns:t=6})=>{const{token:o}=useToken$1(),r=o.controlHeight*2.06,i=o.controlHeight*1.75,n=(0,import_react2.useMemo)(()=>import_css.css`
65
+ `,items:a},n))})},SchemaInitializerSubMenu=e=>{var t;const o=e,{children:r,items:i,title:n,name:l,onOpenChange:a,icon:c}=o,u=te(o,["children","items","title","name","onOpenChange","icon"]),d=useCompile(),m=useSchemaInitializerItem(),p=(0,import_react2.useMemo)(()=>l||(m==null?void 0:m.name)||(0,import_shared.uid)(),[l,m]),h=(t=i||r)==null?void 0:t.filter(_=>_.useVisible?_.useVisible():!0),g=useSchemaInitializerMenuItems(h,l),f=(0,import_react2.useMemo)(()=>[A(x({},u),{key:p,label:d(n),icon:typeof c=="string"?(0,import_jsx_runtime.jsx)(import_icons.default,{type:c}):c,children:g})],[g,d,c,p,u,n]);return(0,import_jsx_runtime.jsx)(SchemaInitializerMenu,{onOpenChange:a,items:f})},SchemaInitializerSubMenuInternal=()=>{const e=useSchemaInitializerItem();return(0,import_jsx_runtime.jsx)(SchemaInitializerSubMenu,x({},e))},useAriaAttributeOfMenuItem=()=>{const{isInMenu:e}=useSchemaInitializerSubMenuContext();return{attribute:(0,import_react2.useMemo)(()=>e?{}:{role:"menuitem"},[e])}},{Paragraph:Paragraph$1,Text:Text$2}=import_antd.Typography,ErrorFallbackModal=e=>{const[t,o]=import_react2.default.useState(!1),r=(0,import_jsx_runtime.jsx)(Paragraph$1,{style:{display:"flex",marginBottom:0},copyable:{text:e.error.message},children:(0,import_jsx_runtime.jsxs)(Text$2,{type:"danger",style:{whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden",display:"inline-block",maxWidth:"200px"},children:["Error: ",e.error.message]})});return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)("div",{onMouseOver:()=>o(!0),children:e.children||r}),(0,import_jsx_runtime.jsx)(import_antd.Modal,{zIndex:1e4,open:t,footer:null,onCancel:()=>o(!1),width:"60%",children:(0,import_jsx_runtime.jsx)(ErrorFallback,x({},e))})]})},{Paragraph,Text:Text$1,Link}=import_antd.Typography,useDownloadLogs=(e,t={})=>{const o=useLocationNoUpdate(),[r,i]=import_react2.default.useState(!1),n=useAPIClient();return{loading:r,download:()=>L(void 0,null,function*(){i(!0);try{const l=yield n.request({url:"logger:collect",method:"post",responseType:"blob",data:x({error:{message:e.message,stack:e.stack},location:o},t)}),a=window.URL.createObjectURL(new Blob([l.data],{type:"application/gzip"})),c=document.createElement("a");c.setAttribute("href",a),c.setAttribute("download","logs.tar.gz"),c.click(),c.remove()}catch(l){console.log(l)}i(!1)})}},ErrorFallback=({error:e})=>{const t=(0,import_react.useFieldSchema)(),{t:o}=(0,import_react_i18next.useTranslation)(),{loading:r,download:i}=useDownloadLogs(e,{schema:t}),n=(0,import_jsx_runtime.jsxs)(import_react_i18next.Trans,{children:["This is likely a NocoBase internals bug. Please open an issue at ",(0,import_jsx_runtime.jsx)(Link,{href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:"here"})]});return(0,import_jsx_runtime.jsx)("div",{style:{backgroundColor:"white"},children:(0,import_jsx_runtime.jsx)(import_antd.Result,{style:{maxWidth:"60vw",margin:"auto"},status:"error",title:o("Render Failed"),subTitle:n,extra:[(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"primary",href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:o("Feedback")},"feedback"),(0,import_jsx_runtime.jsx)(import_antd.Button,{loading:r,onClick:i,children:o("Download logs")},"log")],children:(0,import_jsx_runtime.jsx)(Paragraph,{copyable:{text:e.stack},children:(0,import_jsx_runtime.jsx)(Text$1,{type:"danger",style:{whiteSpace:"pre-line",textAlign:"center"},children:e.stack})})})})};ErrorFallback.Modal=ErrorFallbackModal;const AppNotFound=()=>{const e=(0,import_react_router_dom.useNavigate)(),{t}=(0,import_react_i18next.useTranslation)();return(0,import_jsx_runtime.jsx)(import_antd.Result,{status:"404",title:"404",subTitle:t("Sorry, the page you visited does not exist."),extra:(0,import_jsx_runtime.jsx)(import_antd.Button,{onClick:()=>e("/",{replace:!0}),type:"primary",children:"Back Home"})})};class Plugin{constructor(t,o){this.options=t,this.app=o,this.options=t,this.app=o}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 ai(){return this.app.aiManager}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}afterAdd(){return L(this,null,function*(){})}beforeLoad(){return L(this,null,function*(){})}load(){return L(this,null,function*(){})}t(t,o={}){var r;return this.app.i18n.t(t,x({ns:(r=this.options)==null?void 0:r.packageName},o))}}const titleWrapperStyle={display:"flex",alignItems:"center",gap:4},withTooltipComponent=e=>t=>{const{tooltip:o}=t;return o?(0,import_jsx_runtime.jsxs)("div",{style:titleWrapperStyle,children:[(0,import_jsx_runtime.jsx)(e,x({},t)),(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:o,children:(0,import_jsx_runtime.jsx)(import_icons.QuestionCircleOutlined,{style:{zIndex:1}})})]}):(0,import_jsx_runtime.jsx)(e,x({},t))},{evaluate}=import_client4.evaluators.get("formula.js"),useEvaluatedExpression=e=>{const t=useVariables$1(),o=useLocalVariables$1(),[r,i]=(0,import_react2.useState)();return(0,import_react2.useEffect)(()=>{L(void 0,null,function*(){if(e==null||e===""){i(void 0);return}const{exp:n,scope:l}=yield replaceVariables(e,{variables:t,localVariables:o});try{const a=evaluate(n,x({now:()=>new Date().toString()},l));i(a)}catch(a){console.error(a)}})},[t.parseVariable,e,o]),r};class SchemaInitializer{constructor(t){R(this,"options"),R(this,"name"),this.options=Object.assign({items:[]},t),this.name=t.name}get items(){return this.options.items}add(t,o){const r=t.split("."),i=r[r.length-1],n=A(x({},o),{name:i}),l=(u,d)=>{const m=this.items.findIndex(p=>p.name===u);m===-1?this.items.push(d):this.items[m]=d};if(r.length===1){l(i,n);return}const a=r.slice(0,-1).join("."),c=this.get(a);if(c){c.children||(c.children=[]);const u=t.replace(`${c.name}.`,""),d=c.children.findIndex(m=>m.name===u);d===-1?c.children.push(n):c.children[d]=n}else l(i,n)}get(t){var o;if(!t)return;const r=t.split(".");let i={children:this.items};for(let n=0;n<r.length;n++){const l=r[n],a=(o=i.children)==null?void 0:o.find(c=>c.name===l);if(a&&(i=a),n===r.length-1)return a}}remove(t){const o=t.split(".");if(o.length===1){const i=this.items.findIndex(n=>n.name===o[0]);i!==-1&&this.items.splice(i,1);return}const r=this.get(o.slice(0,-1).join("."));if(r&&r.children){const i=o[o.length-1],n=r.children.findIndex(l=>l.name===i);n!==-1&&r.children.splice(n,1)}}}var NocoBaseDesktopRouteType=(e=>(e.group="group",e.page="page",e.flowRoute="flowRoute",e.link="link",e.tabs="tabs",e.flowPage="flowPage",e))(NocoBaseDesktopRouteType||{});const useStyles$h=genStyleHook("nb-menu-item",e=>{const{componentCls:t}=e;return{[t]:{paddingLeft:`${e.padding}px !important`,paddingRight:`${e.padding}px !important`}}}),useInsertFlowPageSchema=()=>{const e=useAPIClient();return(0,import_react2.useCallback)(t=>L(void 0,null,function*(){yield e.request({method:"POST",url:"/uiSchemas:insert",data:t})}),[e])},FlowPageMenuItem=()=>{const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),{theme:o}=useGlobalTheme(),{componentCls:r,hashId:i}=useStyles$h(),n=useParentRoute(),{createRoute:l}=useNocoBaseRoutes(),a=useInsertFlowPageSchema(),c=(0,import_react2.useCallback)(()=>L(void 0,null,function*(){const u=yield FormDialog(e("Add page"),()=>(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{scope:t.scope,components:x({},t.components),children:(0,import_jsx_runtime.jsx)(import_antd_v5.FormLayout,{layout:"vertical",children:(0,import_jsx_runtime.jsx)(zIndexContext.Provider,{value:ICON_POPUP_Z_INDEX,children:(0,import_jsx_runtime.jsx)(SchemaComponent,{schema:{properties:{title:{title:e("Menu item title"),required:!0,"x-component":"Input","x-decorator":"FormItem"},icon:{title:e("Icon"),"x-component":"IconPicker","x-decorator":"FormItem"}}}})})})}),o).open({initialValues:{}}),d=(0,import_shared.uid)(),m=(0,import_shared.uid)(),p=(0,import_shared.uid)(),h=(0,import_shared.uid)();yield l({type:NocoBaseDesktopRouteType.flowPage,title:u.title,icon:u.icon,parentId:n==null?void 0:n.id,schemaUid:m,menuSchemaUid:d,enableTabs:!1,children:[{type:NocoBaseDesktopRouteType.tabs,schemaUid:p,tabSchemaName:h,hidden:!0}]}),a(getFlowPageMenuSchema({pageSchemaUid:m}))}),[l,a,t==null?void 0:t.components,t==null?void 0:t.scope,n==null?void 0:n.id,e,o]);return(0,import_jsx_runtime.jsx)(SchemaInitializerItem,{title:e("Modern page (v2)"),onClick:c,className:`${r} ${i}`})};function getFlowPageMenuSchema({pageSchemaUid:e}){return{type:"void","x-component":"FlowRoute","x-uid":e}}const GroupItem$1=()=>{const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),{theme:o}=useGlobalTheme(),{componentCls:r,hashId:i}=useStyles$h(),n=useParentRoute(),{createRoute:l}=useNocoBaseRoutes(),a=(0,import_react2.useCallback)(()=>L(void 0,null,function*(){const c=yield FormDialog(e("Add group"),()=>(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{scope:t.scope,components:x({},t.components),children:(0,import_jsx_runtime.jsx)(import_antd_v5.FormLayout,{layout:"vertical",children:(0,import_jsx_runtime.jsx)(zIndexContext.Provider,{value:ICON_POPUP_Z_INDEX,children:(0,import_jsx_runtime.jsx)(SchemaComponent,{schema:{properties:{title:{title:e("Menu item title"),"x-component":"Input","x-decorator":"FormItem",required:!0},icon:{title:e("Icon"),"x-component":"IconPicker","x-decorator":"FormItem"}}}})})})}),o).open({initialValues:{}}),{title:u,icon:d}=c,m=(0,import_shared.uid)();yield l({type:NocoBaseDesktopRouteType.group,title:u,icon:d,parentId:n==null?void 0:n.id,schemaUid:m})}),[t.components,t.scope,e,o]);return(0,import_jsx_runtime.jsx)(SchemaInitializerItem,{title:e("Group"),onClick:a,className:`${r} ${i}`})},useAttach=e=>{const t=(0,import_react2.useRef)(null);return(0,import_react2.useEffect)(()=>(t.current&&e!==t.current&&t.current.onUnmount(),t.current=e,e.onMount(),()=>{e.onUnmount()}),[e]),e},compileCache={},hasVariable=e=>/{{.*?}}/g.test(e),useCompile=({noCache:e}={noCache:!1})=>{const t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),o=(0,import_react2.useContext)(import_react.SchemaExpressionScopeContext);return(r,i)=>{let n=!1,l;if(typeof r=="string"&&r.startsWith("{{")&&(n=!0,l=r),r&&typeof r=="object"&&!(0,import_react2.isValidElement)(r)){try{l=JSON.stringify(r)}catch(a){return console.warn("Failed to stringify:",a),r}if(compileCache[l])return compileCache[l];n=hasVariable(l)}if(Array.isArray(r)){try{l=JSON.stringify(r)}catch(a){return console.warn("Failed to stringify:",a),r}if(compileCache[l])return compileCache[l];n=hasVariable(l)}if(n){const a=x(x(x({},t==null?void 0:t.scope),o),i);if(!l)return import_react.Schema.compile(r,a);try{return e?import_react.Schema.compile(r,a):(compileCache[l]=compileCache[l]||import_react.Schema.compile(r,a),compileCache[l])}catch(c){return console.log("useCompile error",r,c),import_react.Schema.compile(r,a)}}return r}},useComponent=(e,t)=>{const{components:o}=(0,import_react2.useContext)(import_react.SchemaOptionsContext);return e?typeof e!="string"?e:(0,import_lodash.get)(o,e)||t:t},LAZY_COMPONENT_KEY=Symbol("LAZY_COMPONENT_KEY");function lazy(e,...t){if(t.length===0){const o=(0,import_react2.lazy)(()=>e().then(i=>{const n=i.default;return r[LAZY_COMPONENT_KEY]=n,{default:n}})),r=i=>(0,import_jsx_runtime.jsx)(import_react2.default.Suspense,{fallback:(0,import_jsx_runtime.jsx)(import_antd.Spin,{}),children:(0,import_jsx_runtime.jsx)(o,x({},i))});return r}return t.reduce((o,r)=>{const i=(0,import_react2.lazy)(()=>e().then(n=>{const l=(0,import_lodash.get)(n,r);return o[r][LAZY_COMPONENT_KEY]=l,{default:l}}));return o[r]=n=>(0,import_jsx_runtime.jsx)(import_react2.default.Suspense,{fallback:(0,import_jsx_runtime.jsx)(import_antd.Spin,{}),children:(0,import_jsx_runtime.jsx)(i,x({},n))}),o},{})}function useLazy(e,t){const o=typeof t=="function"?t:i=>i[t],r=(0,import_react_imported_component.loadableResource)(e);if(!r.payload)throw new Promise((i,n)=>{r.loadIfNeeded(),r.resolution.then(i).catch(n)});return o(r.payload)}function addAppVersion(e,t){if(e)return e["x-app-version"]||(e["x-app-version"]=t),Object.keys(e.properties||{}).forEach(o=>{var r;addAppVersion((r=e.properties)==null?void 0:r[o],t)}),e}const name="@nocobase/client",version="2.0.12",license="Apache-2.0",main="lib/index.js",module$1="es/index.mjs",types="es/index.d.ts",dependencies={"@ahooksjs/use-url-state":"3.5.1","@ant-design/cssinjs":"^1.11.1","@ant-design/icons":"^5.6.1","@ant-design/pro-layout":"^7.22.1","@antv/g2plot":"^2.4.18","@budibase/handlebars-helpers":"0.14.0","@codemirror/lang-html":"^6.4.10","@codemirror/theme-one-dark":"^6.1.3","@ctrl/tinycolor":"^3.6.0","@dnd-kit/core":"^6.0.0","@dnd-kit/sortable":"^7.0.0","@emotion/css":"^11.7.1","@formily/antd-v5":"1.2.3","@formily/core":"^2.2.27","@formily/grid":"^2.2.27","@formily/json-schema":"^2.2.27","@formily/path":"^2.2.27","@formily/react":"^2.2.27","@formily/reactive":"^2.2.27","@formily/reactive-react":"^2.2.27","@formily/shared":"^2.2.27","@formily/validator":"^2.2.27","@nocobase/evaluators":"2.0.12","@nocobase/flow-engine":"2.0.12","@nocobase/sdk":"2.0.12","@nocobase/utils":"2.0.12","@tanstack/react-table":"^8.21.3","@types/tabulator-tables":"^6.2.6","acorn-jsx":"^5.3.2",ahooks:"^3.7.2",antd:"5.24.2","antd-mobile":"^5.41.1","antd-mobile-icons":"^0.3.0","antd-style":"3.7.1",axios:"^1.7.0","bignumber.js":"^9.1.2",classnames:"^2.3.1",codemirror:"^6.0.2",cronstrue:"^2.11.0","file-saver":"^2.0.5",filesize:"9.0.11",flat:"^5.0.2","html5-qrcode":"^2.3.8",i18next:"^22.4.9","i18next-http-backend":"^2.1.1",ignore:"^5.2.0",json5:"^2.2.3",liquidjs:"^10.0.0",lodash:"4.17.21","lru-cache":"6.0.0","markdown-it":"14.1.0","markdown-it-highlightjs":"3.3.1",mathjs:"^15.1.0",mermaid:"9.4.3",mime:"^4.0.4","mime-match":"^1.0.2","quill-image-resize-module-react":"^3.0.0","react-beautiful-dnd":"^13.1.0","react-device-detect":"2.2.3","react-drag-listview":"^0.1.9","react-error-boundary":"^4.0.10","react-helmet":"^6.1.0","react-hotkeys-hook":"^3.4.7","react-i18next":"^11.15.1","react-iframe":"~1.8.5","react-image-lightbox":"^5.1.4","react-intersection-observer":"9.14.0","react-js-cron":"^3.1.0","react-quill":"^2.0.0","react-router-dom":"^6.30.1","react-to-print":"^2.14.7","sanitize-html":"2.13.0","tabulator-tables":"^6.3.1","use-deep-compare-effect":"^1.8.1",vditor:"^3.10.3"},peerDependencies={react:">=18.0.0","react-dom":">=18.0.0","react-is":">=18.0.0"},devDependencies={"@testing-library/react":"^14.0.0","@types/markdown-it":"14.1.1","@types/markdown-it-highlightjs":"3.3.1","@types/react-big-calendar":"^1.6.4","axios-mock-adapter":"^1.20.0",dumi:"2.2.14","dumi-theme-nocobase":"^0.2.32"},clientPkg={name,version,license,main,module:module$1,types,dependencies,peerDependencies,devDependencies};function createDesignable(e){return new Designable(e)}const generateUid=e=>{e&&(e["x-uid"]||(e["x-uid"]=(0,import_shared.uid)()),Object.keys(e.properties||{}).forEach(t=>{generateUid(e.properties[t])}))},defaultWrap=e=>e,matchSchema=(e,t)=>{if(!(!e||!t)){for(const o in t)if(Object.prototype.hasOwnProperty.call(t,o)&&t[o]!==(e==null?void 0:e[o]))return!1;return!0}},splitWrapSchema=(e,t)=>{if(e["x-uid"]&&e["x-uid"]===t["x-uid"])return[null,e.toJSON()];const o=e.toJSON(),r=A(x({},o),{properties:{}});let i=null;const n=(l,a)=>{Object.keys(l||{}).forEach(c=>{const u=l[c];if(u["x-uid"]===t["x-uid"]){i=l[c];return}else a.properties[c]=A(x({},u),{properties:{}}),n(u==null?void 0:u.properties,a.properties[c])})};return n(o.properties,r),[r,i]},translate=e=>e;class Designable{constructor(t){R(this,"current"),R(this,"options"),R(this,"appVersion"),R(this,"events",{}),this.options=t,this.current=t.current,this.appVersion=t.appVersion}get model(){return this.options.model}get query(){return this.options.query}loadAPIClientEvents(){const{api:t,t:o=translate}=this.options;if(!t)return;const r=i=>{if(!i)return[];const n=Object.values(i.properties).length,l=[];return i.mapProperties(a=>{a["x-component-props"]=a["x-component-props"]||{},a["x-component-props"].width=100/n,a["x-uid"]&&l.push({"x-uid":a["x-uid"],"x-component-props":a["x-component-props"]})}),i["x-uid"]&&l.length?l:[]};this.on("insertAdjacent",i=>L(this,[i],function*({onSuccess:n,current:l,position:a,schema:c,wrap:u,wrapped:d,removed:m}){var p;let h=[];if((d==null?void 0:d["x-component"])==="Grid.Col"&&(h=h.concat(r(d.parent))),(m==null?void 0:m["x-component"])==="Grid.Col"&&(h=h.concat(r(m.parent))),this.refresh(),!l["x-uid"])return;const g=yield t.request({url:`/uiSchemas:insertAdjacent/${l["x-uid"]}?position=${a}`,method:"post",data:{schema:addAppVersion(c,this.appVersion),wrap:u}});h.length&&(yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:h})),m!=null&&m["x-uid"]&&(yield t.request({url:`/uiSchemas:remove/${m["x-uid"]}`,method:"post"})),n==null||n((p=g==null?void 0:g.data)==null?void 0:p.data),import_antd.message.success(o("Saved successfully"),.2)})),this.on("patch",i=>L(this,[i],function*({schema:n}){this.refresh(),n!=null&&n["x-uid"]&&(yield t.request({url:"/uiSchemas:patch",method:"post",data:x({},n)}),import_antd.message.success(o("Saved successfully"),.2))})),this.on("initializeActionContext",i=>L(this,[i],function*({schema:n}){n!=null&&n["x-uid"]&&(yield t.request({url:"/uiSchemas:initializeActionContext",method:"post",data:x({},n)}))})),this.on("batchPatch",i=>L(this,[i],function*({schemas:n}){this.refresh(),yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:n}),import_antd.message.success(o("Saved successfully"),.2)})),this.on("remove",i=>L(this,[i],function*({removed:n}){let l=[];(n==null?void 0:n["x-component"])==="Grid.Col"&&(l=r(n.parent)),this.refresh(),n!=null&&n["x-uid"]&&(yield t.request({url:`/uiSchemas:remove/${n["x-uid"]}`,method:"post"}),l.length&&(yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:l})),import_antd.message.success(o("Saved successfully"),.2))}))}prepareProperty(t){t.type||(t.type="void"),t.name||(t.name=(0,import_shared.uid)()),this.current["x-uid"]&&generateUid(t)}on(t,o){this.events[t]||(this.events[t]=[]),this.events[t].push(o)}emit(t,...o){return L(this,null,function*(){if(!this.events[t])return;const[r,...i]=o;return Promise.all(this.events[t].map(n=>n.bind(this)(x({current:this.current},r),...i)))})}parentsIn(t){if(!t||!import_react.Schema.isSchemaInstance(t))return!1;let o=this.current;for(;o!=null&&o.parent;){if(o.parent===t)return!0;o=o.parent}return!1}refresh(t){const{refresh:o}=this.options;return o==null?void 0:o(t)}deepMerge(t){const o={title:"title",description:"description",default:"initialValue",readOnly:"readOnly",writeOnly:"editable",enum:"dataSource","x-pattern":"pattern","x-display":"display","x-validator":"validator","x-decorator":"decorator","x-component":"component","x-reactions":"reactions","x-content":"content","x-visible":"visible","x-hidden":"hidden","x-disabled":"disabled","x-editable":"editable","x-read-only":"readOnly"},r={"x-decorator-props":"decoratorProps","x-component-props":"componentProps","x-data":"data"};Object.keys(t).forEach(i=>{o[i]?(this.current[i]=t[i],this.updateModel(o[i],t[i])):r[i]?Object.keys(t[i]).forEach(n=>{(0,import_set.default)(this.current,[i,n],t[i][n]),this.updateModel([r[i],n],t[i][n])}):this.current[i]=t[i]}),this.emit("patch",{schema:t})}getSchemaAttribute(t,o){return(0,import_get.default)(this.current,t,o)}shallowMerge(t){const o={title:"title",description:"description",default:"initialValue",readOnly:"readOnly",writeOnly:"editable",enum:"dataSource","x-pattern":"pattern","x-display":"display","x-validator":"validator","x-decorator":"decorator","x-component":"component","x-reactions":"reactions","x-content":"content","x-visible":"visible","x-hidden":"hidden","x-disabled":"disabled","x-editable":"editable","x-read-only":"readOnly","x-decorator-props":"decoratorProps","x-component-props":"componentProps","x-data":"data"};Object.keys(t).forEach(r=>{this.current[r]=t[r],o[r]&&this.updateModel(o[r],t[r])}),this.emit("patch",{schema:t})}updateModel(t,o){const r=i=>{(0,import_set.default)(i,t,o)};this.model&&r(this.model),this.query&&this.query.take(r)}insertAdjacent(t,o,r={}){switch(t){case"beforeBegin":return this.insertBeforeBegin(o,r);case"afterBegin":return this.insertAfterBegin(o,r);case"beforeEnd":return this.insertBeforeEnd(o,r);case"afterEnd":return this.insertAfterEnd(o,r)}}recursiveRemoveIfNoChildren(t,o){if(!t)return;let r=t,i;const n=o==null?void 0:o.breakRemoveOn;for(;r;){if(typeof n=="function"){if(n(r))break}else if(matchSchema(r,n))break;if(Object.keys(r.properties||{}).length>0)break;r.parent&&(i=r.parent.removeProperty(r.name)),r=r.parent}return i}remove(t,o={}){const{breakRemoveOn:r,removeParentsIfNoChildren:i}=o,n=t||this.current;let l=n.parent.removeProperty(n.name);if(i){const a=this.recursiveRemoveIfNoChildren(n.parent,{breakRemoveOn:r});a&&(l=a)}return this.emit("remove",{removed:l})}removeWithoutEmit(t,o={}){const{breakRemoveOn:r,removeParentsIfNoChildren:i}=o,n=t||this.current;let l=n.parent.removeProperty(n.name);if(i){const a=this.recursiveRemoveIfNoChildren(n.parent,{breakRemoveOn:r});a&&(l=a)}return l}insertBeforeBeginOrAfterEnd(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current)||!import_react.Schema.isSchemaInstance(t)||this.current.parent!==t.parent)return;let r=0,i=0;return this.current.parent.mapProperties((n,l,a)=>{this.current.name===l&&(i=a),t.name===l&&(r=a)}),r>i?this.insertBeforeBegin(t,o):this.insertAfterEnd(t,o)}insertBeforeBegin(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;const r={onSuccess:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren:l}=o;if(import_react.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),l&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n}))}else t&&(t=(0,import_cloneDeep.default)(t));const a={};let c=!1,u=0,d=0;this.current.parent.mapProperties((f,_)=>{_===this.current.name&&(d=u,c=!0,++u),f["x-index"]=u,++u,c&&(a[_]=f,this.current.parent.removeProperty(_))}),this.prepareProperty(t);const m=i(t),p=this.current.parent.addProperty(m.name||(0,import_shared.uid)(),m);p["x-index"]=d,p.parent=this.current.parent,this.current.parent.setProperties(a);const[h,g]=splitWrapSchema(p,t);this.emit("insertAdjacent",x({position:"beforeBegin",schema:g,wrapped:m,wrap:h},r))}insertAfterBegin(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;const r={onSuccess:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren:l}=o;if(import_react.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),l&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n}))}else t&&(t=(0,import_cloneDeep.default)(t));const a={};let c=1;this.current.mapProperties((h,g)=>{h["x-index"]=c,++c,a[g]=h}),this.current.properties={},this.prepareProperty(t);const u=i(t),d=this.current.addProperty(u.name||(0,import_shared.uid)(),u);d["x-index"]=0,d.parent=this.current,this.current.setProperties(a);const[m,p]=splitWrapSchema(d,t);this.emit("insertAdjacent",x({position:"afterBegin",schema:p,wrap:m,wrapped:u},r))}insertBeforeEnd(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;delete t["x-index"];const r={onSuccess:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren:l}=o;if(import_react.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),l&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n}))}else t&&(t=(0,import_cloneDeep.default)(t));this.prepareProperty(t);const a=i(t),c=this.current.addProperty(a.name||(0,import_shared.uid)(),a);c.parent=this.current;const[u,d]=splitWrapSchema(c,t);return this.emit("insertAdjacent",x({position:"beforeEnd",schema:d,wrap:u,wrapped:a},r))}insertAfterEnd(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;const r={onSuccess:o==null?void 0:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren:l}=o;let a=0,c=0,u=!1;const d={};if(this.current.parent.mapProperties((f,_)=>{f["x-index"]=a,_===this.current.name&&(++a,c=a,u=!0),++a,u&&_!==this.current.name&&(d[_]=f,this.current.parent.removeProperty(_))}),import_react.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),l&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n})),t.parent=null}else t&&(t=(0,import_cloneDeep.default)(t));this.prepareProperty(t);const m=i(t),p=this.current.parent.addProperty(m.name||(0,import_shared.uid)(),m);p.parent=this.current.parent,p["x-index"]=c,this.current.parent.setProperties(d);const[h,g]=splitWrapSchema(p,t);this.emit("insertAdjacent",x({position:"afterEnd",schema:g,wrap:h,wrapped:m},r))}}function useFindComponent(){const e=(0,import_react2.useContext)(import_react.SchemaOptionsContext),t=(0,import_react2.useMemo)(()=>(e==null?void 0:e.components)||{},[e]);return o=>{if(!o)return null;if(typeof o!="string")return o;const r=(0,import_get.default)(t,o);return r||console.error(`[nocobase]: Component "${o}" not found`),r}}function useDesignable(){const{designable:e,setDesignable:t,refresh:o,reset:r}=(0,import_react2.useContext)(SchemaComponentContext),i=(0,import_react2.useContext)(import_react.SchemaOptionsContext),n=(0,import_react2.useMemo)(()=>(i==null?void 0:i.components)||{},[i]),l=(0,import_react2.useMemo)(()=>()=>(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{}),[]),a=(0,import_ahooks.useUpdate)(),c=useRefreshFieldSchema(),u=useRefreshComponent(),d=(0,import_react2.useCallback)(v=>{o==null||o(),a(),c==null||c(v),u==null||u()},[o,a,c,u]),m=(0,import_react.useField)(),p=(0,import_react.useFieldSchema)(),h=useAPIClient(),{t:g}=(0,import_react_i18next.useTranslation)(),f=(0,import_react2.useMemo)(()=>createDesignable({t:g,api:h,refresh:d,current:p,model:m,appVersion:clientPkg.version}),[g,h,d,p,m]);(0,import_react2.useEffect)(()=>{f.loadAPIClientEvents()},[f]);const{isMobileLayout:_}=useMobileLayout();return{dn:f,designable:_?!1:e,reset:r,refresh:d,setDesignable:t,DesignableBar:l,findComponent:(0,import_react2.useCallback)(v=>{var b;if(!v)return null;if(typeof v!="string")return v;const C=(0,import_get.default)(n,v);return(b=C==null?void 0:C[LAZY_COMPONENT_KEY])!=null?b:C},[import_get.default]),on:f.on.bind(f),patch:(0,import_react2.useCallback)((v,b)=>{const C=y=>{Object.keys(y).forEach(F=>{const S=y[F];F==="title"&&(m.title=S,p.title=S),F==="x-decorator-props"&&(m.decoratorProps||(m.decoratorProps={}),p["x-decorator-props"]||(p["x-decorator-props"]={}),Object.keys(S).forEach(P=>{m.decoratorProps[P]=S[P],p["x-decorator-props"][P]=S[P]})),F==="x-component-props"&&(m.componentProps||(m.componentProps={}),p["x-component-props"]||(p["x-component-props"]={}),Object.keys(S).forEach(P=>{m.componentProps[P]=S[P],p["x-component-props"][P]=S[P]}))})};if(typeof v=="string"){const y={};return(0,import_set.default)(y,v,b),C(y)}C(v),d()},[f]),shallowMerge:(0,import_react2.useCallback)(v=>{f.shallowMerge(v)},[f]),deepMerge:(0,import_react2.useCallback)(v=>{f.deepMerge(v)},[f]),remove:(0,import_react2.useCallback)((v,b)=>{f.remove(v,b)},[f]),insertAdjacent:(0,import_react2.useCallback)((v,b,C)=>{f.insertAdjacent(v,b,C)},[f]),insertBeforeBegin:(0,import_react2.useCallback)(v=>{f.insertBeforeBegin(v)},[f]),insertAfterBegin:(0,import_react2.useCallback)(v=>{f.insertAfterBegin(v)},[f]),insertBeforeEnd:(0,import_react2.useCallback)(v=>{f.insertBeforeEnd(v)},[f]),insertAfterEnd:(0,import_react2.useCallback)(v=>{f.insertAfterEnd(v)},[f])}}const DefaultSchemaToolbar=()=>null;DefaultSchemaToolbar.isNullComponent=!0;const useDesigner=()=>{const{designable:e}=useDesignable(),t=(0,import_react.useFieldSchema)(),o=(0,import_react2.useMemo)(()=>t["x-designer"]||t["x-toolbar"]?t["x-designer"]||t["x-toolbar"]:t["x-settings"]?SchemaToolbar:DefaultSchemaToolbar,[t]),r=useComponent(o);return e&&r||DefaultSchemaToolbar},useFieldProps$1=e=>{const t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),o=(0,import_react2.useContext)(import_react.SchemaExpressionScopeContext),r=(0,import_react2.useRef)();return r.current=o,e.toFieldProps(A(x({},t),{get scope(){return x(x({},t.scope),r.current)}}))};function useSchemaComponentContext(){return(0,import_react2.useContext)(SchemaComponentContext)}const useFieldComponentOptions=()=>{var e;const{getCollectionJoinField:t,getCollection:o}=useCollectionManager_deprecated(),r=(0,import_react.useFieldSchema)(),{getField:i}=useCollection_deprecated(),n=i(r.name)||t(r["x-collection-field"]),{t:l}=(0,import_react_i18next.useTranslation)(),{label:a}=((e=r["x-component-props"])==null?void 0:e.fieldNames)||{};return(0,import_react2.useMemo)(()=>{if(!n||!(n!=null&&n.interface)||!["o2o","oho","obo","o2m","linkTo","m2o","m2m"].includes(n.interface))return;const c=o(n.target);if((c==null?void 0:c.template)==="file")return[{label:l("Record picker"),value:"CollectionField"},{label:l("Select"),value:"AssociationSelect"}];switch(n.interface){case"o2m":return[{label:l("Record picker"),value:"CollectionField"},{label:l("Subtable"),value:"TableField"},{label:l("Select"),value:"AssociationSelect"}];case"m2o":case"m2m":case"linkTo":return[{label:l("Record picker"),value:"CollectionField"},{label:l("Select"),value:"AssociationSelect"}];default:return[{label:l("Record picker"),value:"CollectionField"},{label:l("Subform"),value:"FormField"},{label:l("Select"),value:"AssociationSelect"}]}},[l,n==null?void 0:n.interface,a])},useFieldTitle=()=>{var e;const t=(0,import_react.useField)(),o=(0,import_react.useFieldSchema)(),r=useCollection(),i=useCollectionManager(),n=(r==null?void 0:r.getField(o.name))||(i==null?void 0:i.getCollectionField(o["x-collection-field"])),l=useCompile();(0,import_react2.useEffect)(()=>{var a;t!=null&&t.title||(t.title=l((a=n==null?void 0:n.uiSchema)==null?void 0:a.title))},[(e=n==null?void 0:n.uiSchema)==null?void 0:e.title])},useDef$4=()=>({}),useProps=(e={})=>{const t=e,{useProps:o=useDef$4}=t,r=te(t,["useProps"]);let i=o;typeof o!="function"&&(i=useDef$4);const n=i();return x(x({},r),n)};function useParsedFilter({filterOption:e,onFilterChange:t}){const{parseFilter:o,findVariable:r}=useParseDataScopeFilter(),[i,n]=(0,import_react2.useState)({}),[l,a]=(0,import_react2.useState)(!!e);return(0,import_react2.useEffect)(()=>{if(!e)return;const c=()=>L(this,null,function*(){a(!0);const d=yield o(e);a(!1),n(d),t==null||t(d)});c();const u=import_lodash.default.debounce(c,DEBOUNCE_WAIT);(0,import_reactive.reaction)(()=>(0,import_client.flatten)(e,{breakOn({key:d}){return d.startsWith("$")&&d!=="$and"&&d!=="$or"},transformValue(d){if(!isVariable$1(d))return d;const m=getVariableName(d),p=r(m);let h=null;const g=getPath(d).split(".");return g.forEach((f,_)=>{const v=g.slice(0,_+1).join("."),b=(0,import_client.getValuesByPath)({[m]:(p==null?void 0:p.ctx)||{}},v);import_lodash.default.isEmpty(b)||(h=b)}),h}}),u,{equals:import_lodash.default.isEqual})},[JSON.stringify(e),o,r]),{filter:i,parseVariableLoading:l}}const useParentRecordCommon=e=>{const t=useCollectionRecordData();if(e)return t},useTableBlockDecoratorProps=e=>{var t;const{params:o,parseVariableLoading:r}=useTableBlockParams(e),i=useParentRecordCommon(e.association),n=(t=useDataSourceManager().getDataSource(e.dataSource))==null?void 0:t.collectionManager.getCollection(e.collection);return{params:o,parentRecord:i,parseVariableLoading:r,rowKey:(n==null?void 0:n.filterTargetKey)||"id"}};function useTableBlockParams(e){var t;const o=(0,import_react.useFieldSchema)(),{filter:r,parseVariableLoading:i}=useParsedFilter({filterOption:(t=e.params)==null?void 0:t.filter});return{params:(0,import_react2.useMemo)(()=>{const n=e.params||{},{dragSortBy:l}=(o==null?void 0:o["x-decorator-props"])||{};return e.dragSort&&l&&(n.sort=l),A(x({},n),{filter:r})},[o,r,e.dragSort,e.params]),parseVariableLoading:i}}const key="__isNewRecord__",isNewRecord=e=>(0,import_reactive.untracked)(()=>!!(e!=null&&e[key])),markRecordAsNew=e=>{if(!(0,import_lodash.isObject)(e))throw new Error("markRecordAsNew: record must be an object");return e[key]=!0,e},useDefaultLoading=()=>{var e;return!!((e=useDataBlockRequest())!=null&&e.loading)},withSkeletonComponent=(e,t)=>{const{useLoading:o=useDefaultLoading,displayName:r,SkeletonComponent:i=import_antd.Skeleton}=t||{},n=import_react2.default.memo(l=>{const a=o(),c=(0,import_react2.useRef)(!1),u=(0,import_react2.useDeferredValue)(a);return!c.current&&u?(0,import_jsx_runtime.jsx)(i,{}):(c.current=!0,(0,import_jsx_runtime.jsx)(e,x({},l)))});return n.displayName=r||`${e.displayName}(withSkeletonComponent)`||`${e.name}(withSkeletonComponent)`,n},getActionValue=(e,t)=>{const o=r=>(r==null?void 0:r.mode)==="constant"?r.value:null;switch(!0){case[ActionType.Color,ActionType.BackgroundColor,ActionType.TextAlign,ActionType.FontSize,ActionType.FontWeight,ActionType.FontStyle].includes(e):return o(t);default:return null}},getSatisfiedActions=(e,t)=>L(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield Promise.all(o.filter(l=>!l.disabled).map(l=>L(void 0,null,function*(){return(yield conditionAnalyses({ruleGroup:l.condition,variables:r,localVariables:i,conditionType:l.conditionType},n))?l:null})))).filter(Boolean).map(l=>l.actions).flat()}),getSatisfiedValues=(e,t)=>L(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield getSatisfiedActions({rules:o,variables:r,localVariables:i},n)).map(l=>A(x({},l),{value:getActionValue(l.operator,l.value)}))}),getSatisfiedValueMap=(e,t)=>L(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield getSatisfiedValues({rules:o,variables:r,localVariables:i},n)).reduce((l,a)=>A(x({},l),{[a.operator]:a.value}),{})});function useSatisfiedActionValues({formValues:e,category:t="default",rules:o,schema:r,form:i}){const[n,l]=(0,import_react2.useState)({}),a=(0,import_react.useFieldSchema)(),c=useVariables$1(),u=useLocalVariables$1({currentForm:{values:e}}),d=r??a,m=o??(d[LinkageRuleDataKeyMap[t]]||(d==null?void 0:d.parent[LinkageRuleDataKeyMap[t]])),p=useApp(),h=(0,import_react2.useCallback)(()=>{m&&e&&getSatisfiedValueMap({rules:m,variables:c,localVariables:u},p.jsonLogic).then(g=>{(0,import_lodash.isEmpty)(g)?l({}):l(g)}).catch(g=>{throw new Error(g.message)})},[c,u,m,e]);return(0,import_react2.useEffect)(()=>{if(h(),i){const g=(0,import_shared.uid)();return i.addEffects(g,()=>{(0,import_core.onFormValuesChange)(()=>{h()})}),()=>{i.removeEffects(g)}}},[i,h,e]),{valueMap:n}}const GetStyleRules=import_react2.default.memo(({record:e,schema:t,onStyleChange:o})=>{const{valueMap:r}=useSatisfiedActionValues({formValues:e,category:"style",schema:t});return(0,import_react2.useEffect)(()=>{o(r)},[o,r]),null});GetStyleRules.displayName="GetStyleRules";const opacityStyle={opacity:.5},containerStyle={position:"relative"},spinStyle={display:"flex",alignItems:"center",justifyContent:"center",position:"absolute",left:0,right:0,height:"100%",maxHeight:400,zIndex:1e3},displayNone$3={display:"none"},HighPerformanceSpin=import_react2.default.memo(e=>(0,import_jsx_runtime.jsxs)("div",{style:containerStyle,children:[(0,import_jsx_runtime.jsx)(import_antd.Spin,A(x({},import_lodash.default.omit(e,"children")),{style:e.spinning?spinStyle:displayNone$3})),(0,import_jsx_runtime.jsx)("div",{style:e.spinning?opacityStyle:null,children:e.children})]}));HighPerformanceSpin.displayName="HighPerformanceSpin";var FilterBlockType=(e=>(e[e.FORM=0]="FORM",e[e.TABLE=1]="TABLE",e[e.TREE=2]="TREE",e[e.COLLAPSE=3]="COLLAPSE",e))(FilterBlockType||{});const mergeFilter=(e,t="$and")=>{const o=e.filter(r=>{if(r&&typeof r=="object"&&!Array.isArray(r))return Object.values(r).filter(i=>i!==void 0).length});return o.length===0?{}:o.length===1?o[0]:{[t]:o}},getSupportFieldsByAssociation=(e,t)=>{var o;return(o=t.associatedFields)==null?void 0:o.filter(r=>e==null?void 0:e.some(i=>i===r.target))},getSupportFieldsByForeignKey=(e,t)=>{var o;return(o=t.foreignKeyFields)==null?void 0:o.filter(r=>e.fields.some(i=>i.type!=="belongsTo"&&i.foreignKey===r.name&&i.target===r.collectionName))},useSupportedBlocks=e=>{const{getDataBlocks:t}=useFilterBlock(),o=(0,import_react.useFieldSchema)(),r=useCollection(),{getAllCollectionsInheritChain:i}=useAllCollectionsInheritChainGetter();if(e===0||e===3)return t().filter(n=>isSameCollection(n.collection,r));if(e===1||e===2)return t().filter(n=>{var l,a;return o["x-uid"]!==n.uid&&(isSameCollection(n.collection,r)||((l=getSupportFieldsByAssociation(i(r.name,r.dataSource),n))==null?void 0:l.length)||((a=getSupportFieldsByForeignKey(r,n))==null?void 0:a.length))})},transformToFilter=(e,t,o,r)=>(e=(0,import_client.flatten)(e,{breakOn({value:i,path:n}){if(["$match","$notMatch","$anyOf","$noneOf","$childIn","$childNotIn","$dateBetween","$in","$notIn"].includes(t[n]))return!0;const l=o(`${r}.${n}`);if(["datetime","datetimeNoTz","date","unixTimestamp","createdAt","updatedAt"].includes(l==null?void 0:l.interface))return!0;if(l!=null&&l.target){if(Array.isArray(i))return!0;const a=l.targetKey||"id";if(i&&i[a]!=null)return!0}return!1}}),{$and:Object.keys(e).map(i=>{let n=import_lodash.default.get(e,i);const l=o(`${r}.${i}`);return l!=null&&l.target&&["hasOne","hasMany","belongsTo","belongsToMany","belongsToArray"].includes(l.type)&&(n=(0,import_client.getValuesByPath)(n,l.targetKey||"id"),i=`${i}.${l.targetKey||"id"}`,(l==null?void 0:l.interface)==="chinaRegion"&&(n=import_lodash.default.last(n))),!n&&n!==0&&n!==!1?null:{[i]:{[t[i]||"$eq"]:n}}}).filter(Boolean)}),useAssociatedFields=()=>{var e;return((e=useCollection())==null?void 0:e.fields.filter(t=>isAssocField(t)))||[]},isAssocField=e=>["o2o","oho","obo","m2o","createdBy","updatedBy","o2m","m2m","linkTo","chinaRegion","mbm"].includes(e==null?void 0:e.interface),isSameCollection=(e,t)=>e.name===t.name&&e.dataSource===t.dataSource,useFilterAPI=()=>{const e=(0,import_react.useFieldSchema)(),{getDataBlocks:t}=useFilterBlock(),{targets:o,uid:r}=findFilterTargets(e),i=t(),[n,l]=(0,import_react2.useState)(()=>o&&o.some(u=>i.some(d=>d.uid===u.uid))),a=Object.keys(o||{});(0,import_react2.useEffect)(()=>{l(o&&o.some(u=>i.some(d=>d.uid===u.uid)))},[a.length,o,i]);const c=(0,import_react2.useCallback)((u,d="id",m="$eq")=>{const p=i.find(h=>h.uid===e.parent["x-uid"]);i.forEach(h=>{var g,f,_,v;let b=d;const C=o.find(P=>P.uid===h.uid);if(!C)return;import_lodash.default.isFunction(u)&&(u=u(C,h,getSourceKey$1(p,C.field))),import_lodash.default.isFunction(d)&&(b=d(C,h)),import_lodash.default.isFunction(m)&&(m=m(C));const y=((g=h.service.params)==null?void 0:g[0])||{},F=((_=(f=h.service.params)==null?void 0:f[1])==null?void 0:_.filters)||{};if(u!=null)F[r]={$and:[{[b]:{[m]:u}}]};else if((v=h.clearSelection)==null||v.call(h),delete F[r],h.dataLoadingMode==="manual")return h.clearData();const S=mergeFilter([...Object.values(F).map(P=>removeNullCondition(P)),h.defaultFilter]);h.doFilter(A(x({},y),{page:1,filter:S}),{filters:F})})},[i,o,r,e]);return{isConnected:n,doFilter:c}},isInFilterFormBlock=e=>{for(;e;){if(e["x-filter-targets"])return e["x-decorator"]==="FilterFormBlockProvider";e=e.parent}return!1};function getSourceKey$1(e,t){var o,r,i;const n=(o=e==null?void 0:e.associatedFields)==null?void 0:o.find(l=>l.foreignKey===t);return(n==null?void 0:n.sourceKey)||((i=(r=t==null?void 0:t.split)==null?void 0:r.call(t,"."))==null?void 0:i[1])}const AssociationFieldContext=(0,import_react2.createContext)({});AssociationFieldContext.displayName="AssociationFieldContext";const useInsertSchema$1=e=>{const t=(0,import_react.useFieldSchema)(),{insertAfterBegin:o}=useDesignable(),{isMobileLayout:r}=useMobileLayout();return(0,import_react2.useCallback)(i=>{r||t.reduceProperties((n,l)=>l["x-component"]==="AssociationField."+e?l:n,null)||o((0,import_cloneDeep.default)(i))},[e,t,o,r])};function useAssociationFieldContext(){return(0,import_react2.useContext)(AssociationFieldContext)}function useServiceOptions$1(e){var t,o,r,i,n,l,a,c,u,d;const{action:m="list",service:p,useOriginalFilter:h}=e,g=(0,import_react.useFieldSchema)(),f=(0,import_react.useField)(),{getField:_}=useCollection_deprecated(),{getCollectionJoinField:v}=useCollectionManager_deprecated(),b=useRecord(),{isNew:C}=useCollectionRecord()||{},y=((0,import_lodash.isString)((r=(o=(t=g==null?void 0:g["x-component-props"])==null?void 0:t.service)==null?void 0:o.params)==null?void 0:r.filter)?(l=(n=(i=f.componentProps)==null?void 0:i.service)==null?void 0:n.params)==null?void 0:l.filter:(u=(c=(a=g==null?void 0:g["x-component-props"])==null?void 0:a.service)==null?void 0:c.params)==null?void 0:u.filter)||((d=p==null?void 0:p.params)==null?void 0:d.filter),{filter:F}=useParsedFilter({filterOption:y,onFilterChange:()=>{C&&f.reset()}}),S=(0,import_react2.useMemo)(()=>_(g.name)||v(g==null?void 0:g["x-collection-field"]),[g]),P=b==null?void 0:b[S==null?void 0:S.sourceKey],j=(0,import_react2.useMemo)(()=>{const I=["oho","o2m"].includes(S==null?void 0:S.interface);return mergeFilter([mergeFilter([I&&!isInFilterFormBlock(g)&&S!=null&&S.foreignKey&&!h?{[S.foreignKey]:{$is:null}}:null,F]),I&&P!==void 0&&P!==null&&!isInFilterFormBlock(g)&&S!=null&&S.foreignKey&&!h?{[S.foreignKey]:{$eq:P}}:null],"$or")},[S==null?void 0:S.interface,S==null?void 0:S.foreignKey,g,F,P,h]);return(0,import_react2.useMemo)(()=>A(x({resource:S==null?void 0:S.target,action:m},p),{params:A(x({},p==null?void 0:p.params),{filter:j})}),[S==null?void 0:S.target,m,j,p])}const useFieldNames$1=(e={})=>{var t,o,r,i,n;const l=(0,import_react.useFieldSchema)(),a=((i=(r=(o=(t=l["x-component-props"])==null?void 0:t.field)==null?void 0:o.uiSchema)==null?void 0:r["x-component-props"])==null?void 0:i.fieldNames)||((n=l["x-component-props"])==null?void 0:n.fieldNames)||e.fieldNames;return x({label:"label",value:"value"},a)},SubFormContext=(0,import_react2.createContext)(null);SubFormContext.displayName="SubFormContext";const SubFormProvider=e=>{const t=(0,import_react2.useContext)(SubFormContext),{value:o,collection:r,fieldSchema:i,parent:n,skip:l}=e.value,a=(0,import_react2.useMemo)(()=>import_lodash.default.omitBy({value:o,collection:r,fieldSchema:i,skip:l,parent:n||(t!=null&&t.skip?t.parent:t)},import_lodash.default.isUndefined),[o,r,i,l,n,t]);return(0,import_jsx_runtime.jsx)(SubFormContext.Provider,{value:a,children:e.children})},useSubFormValue=()=>{const{value:e,collection:t,fieldSchema:o,parent:r}=(0,import_react2.useContext)(SubFormContext)||{};return{formValue:e,collection:t,fieldSchema:o,parent:r}},TableUidContext=(0,import_react2.createContext)(null),useColumnSettings=e=>{const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react2.useContext)(TableUidContext),r=`nocobase_table_column_settings_${o}`,i=(0,import_react2.useCallback)(()=>{try{const a=localStorage.getItem(r);return a?JSON.parse(a):null}catch(a){return console.warn("Failed to parse table column settings from localStorage:",a),null}},[r]),n=(0,import_react2.useCallback)(a=>{try{const c=JSON.stringify(a);localStorage.setItem(r,c);const u=new CustomEvent("nocobase-table-settings-changed",{detail:{key:r,tableId:o,settings:a}});window.dispatchEvent(u)}catch(c){console.warn("Failed to save table column settings to localStorage:",c),import_antd.message.error(t("Failed to save table settings"))}},[r,o,t]),l=(0,import_react2.useCallback)(()=>{try{localStorage.removeItem(r);const a=new CustomEvent("nocobase-table-settings-changed",{detail:{key:r,tableId:o,settings:null}});window.dispatchEvent(a)}catch(a){console.warn("Failed to clear table column settings from localStorage:",a),import_antd.message.error(t("Failed to clear table settings"))}},[r,o,t]);return{getSettings:i,saveSettings:n,clearSettings:l}},useTableColumnIntegration=(e,t=!0)=>{const o=(0,import_react2.useContext)(TableUidContext),{getSettings:r}=useColumnSettings(),[i,n]=(0,import_react2.useState)(0);(0,import_react2.useEffect)(()=>{const a=c=>{const{key:u,tableId:d}=c.detail;(u.includes(o)||d===o)&&n(m=>m+1)};return window.addEventListener("nocobase-table-settings-changed",a),()=>{window.removeEventListener("nocobase-table-settings-changed",a)}},[o]);const l=(0,import_react2.useMemo)(()=>r(),[r,i]);return{columns:(0,import_react2.useMemo)(()=>{if(!t||!l||l.length===0)return e;const a=new Map;l.forEach(p=>{a.set(p.key,p)});const c=e.map(p=>{const h=a.get(p.key);if(h){const g=p.columnHidden||!h.visible,f=h.width||p.width,_=h.fixed||p.fixed;return A(x({},p),{columnHidden:g,fixed:_,width:f,_orderIndex:h.order})}return p}),u=[],d=[];c.forEach(p=>{p._orderIndex!==void 0?u.push(p):d.push(p)}),u.sort((p,h)=>(p._orderIndex||0)-(h._orderIndex||0));const m=[...u,...d];return m.forEach(p=>{delete p._orderIndex}),m},[e,l])}},TableSkeleton=({rows:e=5,columns:t=6})=>{const{token:o}=useToken$1(),r=o.controlHeight*2.06,i=o.controlHeight*1.75,n=(0,import_react2.useMemo)(()=>import_css.css`
66
66
  &.skeleton-wrapper {
67
67
  width: 100%;
68
68
  background: ${o.colorBgContainer};
@@ -235,7 +235,7 @@
235
235
  background-color: ${r.controlItemBgActiveHover} !important;
236
236
  }
237
237
  `,[r.controlItemBgActive,r.controlItemBgActiveHover]),H=useTableBlockContextBasicValue(),J=(0,import_react2.useRef)(S);J.current=S,(0,import_react2.useEffect)(()=>{var le;H!=null&&H.field&&(H.field.data=((le=H.field)==null?void 0:le.data)||{},H.field.data.clearSelectedRowKeys=()=>{H.field.data.selectedRowKeys=[],z([])},H.field.data.setSelectedRowKeys=z)},[H==null?void 0:H.field]);const oe=(0,import_react2.useMemo)(()=>F?Z:"",[Z,F]),G=(0,import_react2.useMemo)(()=>F?(le,ne)=>({onClick:ue=>{(0,import_client.isPortalInBody)(ue.target)||F(le,K,U)},rowIndex:ne,record:le}):(le,ne)=>({rowIndex:ne,record:le}),[F,U]);(0,import_ahooks.useDeepCompareEffect)(()=>{const le=k?w:[];import_lodash.default.isEqual(le,q)||O(le)},[k,w]);const Q=(0,import_react2.useCallback)(le=>{if(v)return X(le);if(le.key)return le.key;if(Y.current.has(le))return Y.current.get(le);const ne=(0,import_shared.uid)();return Y.current.set(le,ne),ne},[]),X=(0,import_react2.useCallback)(le=>{var ne;return Array.isArray(v)?v.map(ue=>{var he;return((he=le[ue])==null?void 0:he.toString())||""}).join("-"):typeof v=="string"?le[v]:(ne=(v??Q)(le))==null?void 0:ne.toString()},[JSON.stringify(v),Q]),ee=(0,import_react2.useMemo)(()=>(Array.isArray(S)?S:[]).filter(Boolean),[S,S==null?void 0:S.length]),ie=(0,import_react2.useMemo)(()=>le=>{const ne=(0,import_react2.useCallback)(ue=>{var he,_e,ve,Se,Ae,Me,ye,be;if(!ue.active||!ue.over){console.warn("move cancel");return}const Pe=(ve=(_e=(he=ue.active)==null?void 0:he.data.current)==null?void 0:_e.sortable)==null?void 0:ve.index,Ce=(Me=(Ae=(Se=ue.over)==null?void 0:Se.data.current)==null?void 0:Ae.sortable)==null?void 0:Me.index,je=((ye=J.current)==null?void 0:ye[Pe])||ue.active,we=((be=J.current)==null?void 0:be[Ce])||ue.over;j.move(Pe,Ce),N({from:je,to:we})},[]);return(0,import_jsx_runtime.jsx)(DndContext,{onDragEnd:ne,children:(0,import_jsx_runtime.jsx)("tbody",x({},le))})},[j,N]);ie.displayName="BodyWrapperComponent";const re=(0,import_react2.useMemo)(()=>({header:{wrapper:HeaderWrapperComponent$5,cell:HeaderCellComponent$1},body:{wrapper:ie,row:BodyRowComponent$1,cell:BodyCellComponent$1}}),[ie]),se=(0,import_react2.useMemo)(()=>_,[JSON.stringify(_)]),ce=(0,import_react2.useMemo)(()=>({rowSelection:B!==!1&&se?x({type:"checkbox",selectedRowKeys:V,onChange(le,ne){j.data=j.data||{},j.data.selectedRowKeys=le,j.data.selectedRowData=ne,z(le),g==null||g(le,ne,z)},onSelect:(le,ne,ue,he)=>{var _e;H&&(H.field.data=((_e=H.field)==null?void 0:_e.data)||{},H.field.data.selectedRecord=le,H.field.data.selected=ne)},getCheckboxProps(le){return{"aria-label":"checkbox"}},renderCell:(le,ne,ue,he)=>{if(!p&&!h)return he;const _e=T==null?void 0:T.current,ve=(T==null?void 0:T.pageSize)||20;return _e?ue=ue+(_e-1)*ve+1:ue=ue+1,ne.__index&&(ue=extractIndex$1(ne.__index)),(0,import_jsx_runtime.jsxs)("div",{role:"button","aria-label":`table-index-${ue}`,className:(0,import_classnames.default)(le?"checked":null,rowSelectCheckboxWrapperClass$2,{[rowSelectCheckboxWrapperClassHover$2]:W}),children:[(0,import_jsx_runtime.jsxs)("div",{className:(0,import_classnames.default)(le?"checked":null,rowSelectCheckboxContentClass$2),children:[p&&(0,import_jsx_runtime.jsx)(SortHandle$3,{id:X(ne)}),h&&(0,import_jsx_runtime.jsx)(TableIndex$4,{index:ue})]}),W&&(0,import_jsx_runtime.jsx)("div",{className:(0,import_classnames.default)("nb-origin-node",le?"checked":null,rowSelectCheckboxCheckedClassHover$2),children:he})]})}},se):void 0}),[se,V,g,h,p,j,X,W,se,T,H,B]),ae=(0,import_react2.useCallback)(({children:le})=>{var ne,ue;return p?import_react2.default.createElement(import_sortable.SortableContext,{items:((ue=(ne=J.current)==null?void 0:ne.map)==null?void 0:ue.call(ne,X))||[]},le):import_react2.default.createElement(import_react2.default.Fragment,{},le)},[p,X]),{height:ge,tableSizeRefCallback:me}=useTableSize(),fe=(0,import_react2.useMemo)(()=>({x:"max-content",y:(ee==null?void 0:ee.length)===0?void 0:ge}),[ge,ee]),pe=(0,import_react2.useCallback)(le=>U.includes(le[v])?oe:"",[U,oe,JSON.stringify(v)]),xe=(0,import_react2.useCallback)((le,ne)=>{const ue=le?[...q,ne[E.getPrimaryKey()]]:q.filter(he=>ne[E.getPrimaryKey()]!==he);O(ue),C==null||C(le,ne)},[q,C,E]),de=(0,import_react2.useMemo)(()=>({onExpand:xe,expandedRowKeys:q}),[q,xe]);return(0,import_jsx_runtime.jsx)(HighPerformanceSpin,{spinning:!!y,children:(0,import_jsx_runtime.jsx)(BlockRequestLoadingContext.Provider,{value:!1,children:(0,import_jsx_runtime.jsx)(InternalNocoBaseTable$1,A(x(x({tableHeight:ge,SortableWrapper:ae,tableSizeRefCallback:me,defaultRowKey:Q,dataSource:ee},P),ce),{paginationProps:T,components:re,onTableChange:f,onRow:G,rowClassName:pe,scroll:fe,columns:$,expandable:de,field:j,size:M}))})})}),{useLoading(){const e=useDataBlockRequest(),{isInSubTable:t}=useFlag();return t?!1:!!(e!=null&&e.loading)},SkeletonComponent:TableSkeleton}),{displayName:"NocoBaseTable"}),TableBlockContext=(0,import_react2.createContext)({});TableBlockContext.displayName="TableBlockContext";const TableBlockContextBasicValue=(0,import_react2.createContext)(null);TableBlockContextBasicValue.displayName="TableBlockContextBasicValue";function getIdsWithChildren$1(e){const t=[];if(e)for(const o of e)o!=null&&o.children&&o.children.length>0&&(t.push(o.id),t.push(...getIdsWithChildren$1(o==null?void 0:o.children)));return t}const InternalTableBlockProvider=e=>{const{params:t,showIndex:o,dragSort:r,rowKey:i,childrenColumnName:n,expandFlag:l=!1,fieldNames:a,collection:c,association:u,enableIndexColumn:d}=e,m=(0,import_react.useField)(),{resource:p,service:h}=useBlockRequestContext(),g=(0,import_react.useFieldSchema)(),[f,_]=(0,import_react2.useState)(!!(a||l)),{heightProps:v}=useBlockHeightProps(),b=(0,import_react2.useRef)(null);(0,import_react2.useEffect)(()=>{_(a||l)},[a||l]);const C=(0,import_react2.useMemo)(()=>{var P;const{treeTable:j}=(g==null?void 0:g["x-decorator-props"])||{},I=(P=h==null?void 0:h.data)==null?void 0:P.data;if(j)return getIdsWithChildren$1(I)},[h==null?void 0:h.loading,g]),y=(0,import_react2.useCallback)(P=>{_(P||!f)},[f]),F=(0,import_react2.useMemo)(()=>({field:m,rowKey:i,childrenColumnName:n,showIndex:o,dragSort:r,dragSortBy:e.dragSortBy}),[m,i,n,o,r,e.dragSortBy]),S=(0,import_react2.useMemo)(()=>({collection:c,field:m,service:h,resource:p,params:t,showIndex:o,dragSort:r,rowKey:i,expandFlag:f,childrenColumnName:n,allIncludesChildren:C,setExpandFlag:y,heightProps:v,association:u,enableIndexColumn:d}),[C,n,c,r,f,m,v,t,p,i,h,y,o,u,d]);return(0,import_jsx_runtime.jsx)(TableElementRefContext.Provider,{value:b,children:(0,import_jsx_runtime.jsx)(TableBlockContext.Provider,{value:S,children:(0,import_jsx_runtime.jsx)(TableBlockContextBasicValue.Provider,{value:F,children:e.children})})})},useTableBlockParamsCompat=e=>{const t=(0,import_react.useFieldSchema)();let o,r=!1;if(t["x-use-decorator-props"])o=e.params,r=e.parseVariableLoading;else{const i=useTableBlockParams(e);o=i.params,r=i.parseVariableLoading}return{params:o,parseVariableLoading:r}},TableBlockProvider=withDynamicSchemaProps(e=>{const t=e.resource||e.association,o=(0,import_react.useFieldSchema)(),{getCollection:r,getCollectionField:i}=useCollectionManager_deprecated(e.dataSource),n=r(e.collection,e.dataSource),{treeTable:l}=(o==null?void 0:o["x-decorator-props"])||{},{params:a,parseVariableLoading:c}=useTableBlockParamsCompat(e);let u="__nochildren__";if(l)if(u="children",t!=null&&t.includes(".")){const m=i(t);m!=null&&m.treeChildren&&(u=m.name),a.tree=!0}else{const m=n==null?void 0:n.fields.find(p=>p.treeChildren);m&&(u=m.name),a.tree=!0}else u="__nochildren__";const d=(0,import_react2.useMemo)(()=>(0,import_core.createForm)(),[l]);return c?null:(0,import_jsx_runtime.jsx)(TableUidContext.Provider,{value:o["x-uid"],children:(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{scope:{treeTable:l},children:(0,import_jsx_runtime.jsx)(import_react.FormContext.Provider,{value:d,children:(0,import_jsx_runtime.jsx)(BlockProvider,A(x({name:e.name||"table"},e),{params:a,runWhenParamsChanged:!0,children:(0,import_jsx_runtime.jsx)(InternalTableBlockProvider,A(x({},e),{childrenColumnName:u,params:a}))}))})})})}),useTableBlockContext=()=>(0,import_react2.useContext)(TableBlockContext),useTableBlockContextBasicValue=()=>(0,import_react2.useContext)(TableBlockContextBasicValue),NOOP=()=>{},CollectOperatorsContext=(0,import_react2.createContext)(null),CollectOperators=e=>{const t=(0,import_react2.useRef)(e.defaultOperators||{}),o=(0,import_react2.useCallback)((l,a)=>{t.current[l]=a},[]),r=(0,import_react2.useCallback)(()=>x({},t.current),[]),i=(0,import_react2.useCallback)(l=>t.current[l],[]),n=(0,import_react2.useCallback)(l=>{delete t.current[l]},[]);return(0,import_jsx_runtime.jsx)(CollectOperatorsContext.Provider,{value:{collectOperator:o,getOperators:r,getOperator:i,removeOperator:n},children:e.children})},useOperators=()=>{const{getOperator:e=NOOP,getOperators:t=NOOP,collectOperator:o=NOOP,removeOperator:r=NOOP}=import_react2.default.useContext(CollectOperatorsContext)||{};return{getOperator:e,getOperators:t,collectOperator:o,removeOperator:r}},useCollectionManager_deprecated=e=>{const t=useDataSourceManager(),o=useDataSource(),r=useCollectionManager(),i=e||(o==null?void 0:o.key)||void 0,[n,l]=(0,import_react2.useState)((0,import_shared.uid)()),{refresh:a}=useSchemaComponentContext(),c=(0,import_react2.useMemo)(()=>{var w;return(w=t==null?void 0:t.collectionFieldInterfaceManager)==null?void 0:w.getFieldInterfaces().reduce((B,N)=>(B[N.name]=N,B),{})},[t,n]),u=(0,import_react2.useMemo)(()=>t==null?void 0:t.collectionTemplateManager.getCollectionTemplates(),[t,n]),d=(0,import_react2.useCallback)(()=>{var w,B;return(B=(w=t==null?void 0:t.getDataSource(i))==null?void 0:w.collectionManager)==null?void 0:B.getCollections().map(N=>N.getOptions())},[t,o]),m=(0,import_react2.useCallback)(w=>{var B;return r&&!w?r:(B=t==null?void 0:t.getDataSource(w||i))==null?void 0:B.collectionManager},[r,t,i]),p=(0,import_react2.useMemo)(()=>{var w,B;return(B=(w=t==null?void 0:t.getDataSource(DEFAULT_DATA_SOURCE_KEY))==null?void 0:w.collectionManager)==null?void 0:B.getCollections()},[t,n]),h=(0,import_react2.useCallback)(()=>t==null?void 0:t.getDataSource(DEFAULT_DATA_SOURCE_KEY).reload().then(()=>{a(),l((0,import_shared.uid)())}),[t]),g=(0,import_react2.useCallback)(()=>t==null?void 0:t.getDataSource(DEFAULT_DATA_SOURCE_KEY).reload().then(()=>{a(),l((0,import_shared.uid)())}),[t]),f=useCompile(),_=(0,import_react2.useCallback)((w,B)=>{var N,T;return((T=(N=m(B))==null?void 0:N.getCollection(w))==null?void 0:T.getInheritedFields())||[]},[t,m]),v=(0,import_react2.useCallback)((w,B)=>{var N,T;if(!w)return[];const $=(N=m(B))==null?void 0:N.getCollection(w);return((T=$==null?void 0:$.getAllFields)==null?void 0:T.call($))||($==null?void 0:$.getFields())||[]},[t,m]),b=(0,import_react2.useCallback)((w,B)=>{var N;if(!(!w||w.split(".").length<2))return(N=m(B))==null?void 0:N.getCollectionField(w)},[t,m]),C=(0,import_react2.useCallback)((w,B)=>{var N,T;return w?((T=(N=m(B))==null?void 0:N.getCollection(w))==null?void 0:T.getParentCollectionsName())||[]:[]},[t,m]),y=(0,import_react2.useCallback)((w,B=!1,N)=>{var T;if(!w)return[];const $=(T=m(N))==null?void 0:T.getCollection(w);return($==null?void 0:$.getChildrenCollections(B))||[]},[t,m]),F=(0,import_react2.useCallback)((w,B)=>{var N,T;return w?((T=(N=m(B))==null?void 0:N.getCollection(w))==null?void 0:T.getCurrentFields())||[]:[]},[t,m]),S=(0,import_react2.useCallback)((w,B,N,T)=>{var $;const{association:q=!1,cached:O={},collectionNames:V=[w],maxDepth:z=1,allowAllTypes:U=!1,exceptInterfaces:K=[],prefixFieldValue:W="",usePrefix:Y=!1,dataSource:Z}=T||{};if(V.length-1>z)return;if(O[w])return import_lodash.default.cloneDeep(O[w]);B&&typeof B=="string"&&(B=[B]),N&&typeof N=="string"&&(N=[N]);const H=v(w,Z),J=($=H==null?void 0:H.filter(oe=>oe.interface&&!K.includes(oe.interface)&&(U||B&&B.includes(oe.type)||N&&N.includes(oe.interface)||(q&&oe.target&&oe.target!==w&&Array.isArray(q)?q.includes(oe.interface):!1))))==null?void 0:$.map(oe=>{var G,Q;const X=x({value:Y&&W?`${W}.${oe.name}`:oe.name,label:f((G=oe==null?void 0:oe.uiSchema)==null?void 0:G.title)||oe.name},oe);return q&&oe.target&&(X.children=V.includes(oe.target)?[]:S(oe.target,B,N,A(x({},T),{cached:O,dataSource:Z,collectionNames:[...V,oe.target],prefixFieldValue:Y?W?`${W}.${oe.name}`:oe.name:"",usePrefix:Y})),!((Q=X.children)!=null&&Q.length))?null:X}).filter(Boolean);return O[w]=J,J},[v]),P=(0,import_react2.useCallback)((w,B)=>{var N;return(N=m(B))==null?void 0:N.getCollection(w)},[t,m]),j=(0,import_react2.useCallback)((w,B)=>{var N,T;return(T=(N=m(B))==null?void 0:N.getCollection(w))==null?void 0:T.getAllCollectionsInheritChain()},[t,m]),I=(0,import_react2.useCallback)((w,B)=>()=>{var N,T;return(T=(N=m(B))==null?void 0:N.getCollection(w))==null?void 0:T.getInheritCollectionsChain()},[t,m]),M=(0,import_react2.useCallback)(w=>t==null?void 0:t.collectionFieldInterfaceManager.getFieldInterface(w),[t]),E=(0,import_react2.useCallback)(w=>{var B;return(B=M(w.interface))==null?void 0:B.titleUsable},[M]),D=(0,import_react2.useCallback)((w,B,N)=>{var T,$;return($=(T=m(N))==null?void 0:T.getCollection(B))==null?void 0:$.getParentCollectionFields(w)},[t,m]),k=(0,import_react2.useCallback)((w="general")=>t==null?void 0:t.collectionTemplateManager.getCollectionTemplate(w),[t]);return{service:h,interfaces:c,collections:p,templates:u,getTemplate:k,getInterface:M,getCollections:d,getParentCollectionFields:D,getInheritCollections:C,getChildrenCollections:y,refreshCM:g,get:P,getInheritedFields:_,getCollectionField:b,getCollectionFields:v,getCollectionFieldsOptions:S,getCurrentCollectionFields:F,getCollection:P,getCollectionJoinField:b,getAllCollectionsInheritChain:j,getInheritCollectionsChain:I,isTitleField:E}};function SelectWithTitle(e){var t=e,{title:o,defaultValue:r,onChange:i,options:n,fieldNames:l}=t,a=te(t,["title","defaultValue","onChange","options","fieldNames"]);const[c,u]=(0,import_react2.useState)(!1),d=(0,import_react2.useRef)(null);return(0,import_jsx_runtime.jsxs)("div",{style:{alignItems:"center",display:"flex",justifyContent:"space-between"},onClick:m=>{m.stopPropagation(),u(p=>!p)},onMouseLeave:()=>{d.current=setTimeout(()=>{u(!1)},200)},children:[o,(0,import_jsx_runtime.jsx)(import_antd.Select,A(x({},a),{open:c,"data-testid":`select-${o}`,popupMatchSelectWidth:!1,bordered:!1,defaultValue:r,onChange:i,popupClassName:`select-popup-${o.replaceAll(" ","-")}`,fieldNames:l,options:n,style:{textAlign:"right",minWidth:100},onMouseEnter:()=>{clearTimeout(d.current)}}))]})}const DataSourceApplicationProvider=e=>{var t=e,{children:o,dataSourceManager:r}=t,i=te(t,["children","dataSourceManager"]);return(0,import_jsx_runtime.jsx)(DataSourceManagerProvider,{dataSourceManager:r,children:(0,import_jsx_runtime.jsx)(CollectionManagerProvider,A(x({},i),{children:o}))})},GetMenuItemContext=(0,import_react2.createContext)(null);GetMenuItemContext.displayName="GetMenuItemContext";const GetMenuItemsContext=(0,import_react2.createContext)(null);GetMenuItemsContext.displayName="GetMenuItemsContext";const useCollectMenuItem=()=>(0,import_react2.useContext)(GetMenuItemContext)||{},useCollectMenuItems=()=>(0,import_react2.useContext)(GetMenuItemsContext)||{},useMenuItem=()=>{const e=(0,import_react2.useRef)([]),t=(0,import_react2.useRef)(null),o=(0,import_react2.useRef)(!1),r=(0,import_react2.useCallback)(({limitCount:a})=>o.current?(o.current=!1,t.current?t.current():a&&e.current.length>a?(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:e.current.slice(0,a).map((c,u)=>(0,import_jsx_runtime.jsx)(c,{},u))}):(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:e.current.map((c,u)=>(0,import_jsx_runtime.jsx)(c,{},u))})):null,[]),i=(0,import_react2.useCallback)(a=>{const c=[],u=d=>{c.push(d),c.sort((m,p)=>(m.order||0)-(p.order||0))};return o.current=!0,t.current=()=>{const d=c.filter(m=>m.notdelete).map(m=>import_lodash.default.omit(m,"notdelete"));return c.length=0,c.push(...d),(0,import_jsx_runtime.jsx)(GetMenuItemsContext.Provider,{value:{pushMenuItem:u},children:a()})},c},[]),n=(0,import_react2.useCallback)(a=>{const c={},u=d=>{Object.assign(c,d)};return o.current=!0,e.current.push(()=>(0,import_jsx_runtime.jsx)(GetMenuItemContext.Provider,{value:{collectMenuItem:u},children:a()})),c},[]),l=(0,import_react2.useCallback)(()=>{e.current=[]},[]);return{Component:r,getMenuItems:i,getMenuItem:n,clean:l}},CurrentPopupRecordContext=import_react2.default.createContext(null),CurrentParentPopupRecordContext=import_react2.default.createContext(null),VariablePopupRecordProvider=import_react2.default.memo(e=>{var t,o;const{t:r}=(0,import_react_i18next.useTranslation)(),i=useCollectionRecordData(),n=useCollection(),l=useCurrentPopupRecord();return(0,import_jsx_runtime.jsx)(CurrentParentPopupRecordContext.Provider,{value:{name:"$nParentPopupRecord",title:r("Parent popup record"),value:((t=e.parent)==null?void 0:t.recordData)||(l==null?void 0:l.value),collection:((o=e.parent)==null?void 0:o.collection)||(l==null?void 0:l.collection)},children:(0,import_jsx_runtime.jsx)(CurrentPopupRecordContext.Provider,{value:{name:"$nPopupRecord",title:r("Current popup record"),value:e.recordData||i,collection:e.collection||n},children:e.children})})});VariablePopupRecordProvider.displayName="VariablePopupRecordProvider";const useCurrentPopupRecord=()=>import_react2.default.useContext(CurrentPopupRecordContext),useParentPopupRecord=()=>import_react2.default.useContext(CurrentParentPopupRecordContext),PopupSettingsContext=import_react2.default.createContext({enableURL:!0}),PopupSettingsProvider=e=>{const{enableURL:t=!0}=e,o=(0,import_react2.useMemo)(()=>({enableURL:t}),[t]);return(0,import_jsx_runtime.jsx)(PopupSettingsContext.Provider,{value:o,children:e.children})},usePopupSettings=()=>{const{enableURL:e}=import_react2.default.useContext(PopupSettingsContext),t=useIsInSettingsPage();return{isPopupVisibleControlledByURL:(0,import_react2.useCallback)(()=>{const o=window.location.pathname,r=window.location.hash,i=(o==null?void 0:o.includes("/mobile/"))||(r==null?void 0:r.includes("/mobile/")),n=o==null?void 0:o.includes("/m/"),l=o==null?void 0:o.includes("/admin/"),a=o==null?void 0:o.includes("/m/ui-templates/inherited-v1");return(l||n)&&!i&&e&&!t&&!a},[e,t])}},popupLayerStates={},setPopupLayerState=(e,t)=>{popupLayerStates[e]=t},getPopupLayerState=e=>{var t;return(t=popupLayerStates[e])!=null?t:!1},removePopupLayerState=e=>{delete popupLayerStates[e]},CONTEXT_SCHEMA_KEY="x-action-context",usePopupContextInActionOrAssociationField=()=>{const e=(0,import_react.useFieldSchema)(),{dn:t}=useDesignable();return{updatePopupContext:(0,import_react2.useCallback)((o,r)=>{const i=r||e,n=getPopupContextFromActionOrAssociationFieldSchema(i);if(o=import_lodash.default.omitBy(o,import_lodash.default.isNil),!(import_lodash.default.isEqual(o,n)||n!=null&&n.doNotUpdateContext))return i[CONTEXT_SCHEMA_KEY]=o,t.emit("initializeActionContext",{schema:{"x-uid":i["x-uid"],[CONTEXT_SCHEMA_KEY]:o}})},[e,t])}};function getPopupContextFromActionOrAssociationFieldSchema(e){return e[CONTEXT_SCHEMA_KEY]}const popupsContextStorage={},defaultPopupsContextStorage={},getStoredPopupContext=e=>popupsContextStorage[e]||defaultPopupsContextStorage[e],storePopupContext=(e,t,o=!1)=>{if(o){defaultPopupsContextStorage[e]=t;return}popupsContextStorage[e]=t},deletePopupContext=e=>{delete popupsContextStorage[e]},blockServicesStorage={},getBlockService=e=>blockServicesStorage[e],storeBlockService=(e,t)=>{blockServicesStorage[e]=t},getPopupParamsFromPath=import_lodash.default.memoize(e=>e.split("/popups/").filter(Boolean).map(t=>{const[o,...r]=t.split("/").filter(Boolean),i={};for(let n=0;n<r.length;n+=2)i[r[n]]=decodePathValue(r[n+1]);return x({popupuid:o},i)})),getPopupPathFromParams=e=>{const{popupuid:t,tab:o,filterbytk:r,sourceid:i,collection:n,puid:l}=e;return`/popups/${[t,l&&"puid",l,n&&"collection",n,r&&"filterbytk",r,i&&"sourceid",i,o&&"tab",o].filter(Boolean).map(a=>encodePathValue(a)).join("/")}`},usePopupUtils=(e={})=>{const t=useNavigateNoUpdate(),o=useLocationNoUpdate(),r=(0,import_react.useFieldSchema)(),i=useDataSourceKey(),n=useCollectionRecord(),l=useCollectionParentRecord(),a=useCollection(),c=useCollectionManager(),u=useAssociationName(),{visible:d,setVisible:m}=(0,import_react2.useContext)(PopupVisibleProviderContext)||{visible:!1,setVisible:import_lodash.default.noop},{params:p,currentLevel:h=0}=useCurrentPopupContext(),{getDataBlockRequest:g}=useDataBlockRequestGetter(),{isPopupVisibleControlledByURL:f}=usePopupSettings(),{setVisible:_}=(0,import_react2.useContext)(ActionContext),{updatePopupContext:v}=usePopupContextInActionOrAssociationField(),b=useCurrentPopupContext(),C=(0,import_react2.useCallback)(w=>{var B;return(B=w||(l==null?void 0:l.data))==null?void 0:B[c.getSourceKeyByAssociation(u)]},[l,u]),y=useDataBlockRequestData(),F=useTableBlockContextBasicValue()||{},S=e.setVisible||_,P=(0,import_react2.useCallback)(({tabKey:w,popupUid:B,recordData:N,sourceId:T,collection:$,puid:q})=>{const O=c.getFilterByTK(u||a,N);return getPopupPathFromParams({popupuid:B,puid:q,collection:$,filterbytk:O,sourceid:T,tab:w})},[u,c,a,i,l==null?void 0:l.data,u]),j=(0,import_react2.useCallback)(()=>{const w={dataSource:i,collection:u||a==null?void 0:a.name,association:u};return import_lodash.default.omitBy(w,import_lodash.default.isNil)},[i,a,u]),I=(0,import_react2.useCallback)(({recordData:w,parentRecordData:B,collectionNameUsedInURL:N,popupUidUsedInURL:T,customActionSchema:$}={})=>{if(!f())return S==null?void 0:S(!0);const q=$||r,O=q==null?void 0:q["x-uid"],V=C(B);w=w||(n==null?void 0:n.data);const z=P({popupUid:O,recordData:w,sourceId:V,collection:N,puid:T});let U=o.pathname;if(import_lodash.default.last(U)==="/"&&(U=U.slice(0,-1)),storePopupContext(O,{schema:q,record:new CollectionRecord({isNew:!1,data:w}),parentRecord:B?new CollectionRecord({isNew:!1,data:B}):l,service:g(),dataSource:i,collection:a==null?void 0:a.name,association:u,sourceId:V,tableBlockContext:A(x({},F),{collection:a==null?void 0:a.name,blockData:y})}),v(j(),$),q.properties){const K=h+1;if(getPopupLayerState(K)){M(),removePopupLayerState(K);return}setPopupLayerState(K,!0),t(withSearchParams(`${U}${z}`))}else console.error(`[NocoBase] The popup schema is invalid, please check the schema:
238
- ${JSON.stringify(q,null,2)}`)},[u,c,a,i,r,P,t,l,n,g,o,f,C,j,y,F,h]),M=(0,import_react2.useCallback)(w=>{if(!f())return S==null?void 0:S(!1);const B=removeLastPopupPath(o.pathname);t(withSearchParams(B),{replace:!0}),o.pathname=B,removePopupLayerState(h),p!=null&&p.popupuid&&deletePopupContext(p.popupuid)},[f,S,t,o==null?void 0:o.pathname,h,p==null?void 0:p.popupuid]),E=(0,import_react2.useCallback)(w=>{const B=C(),N=P({tabKey:w,popupUid:p==null?void 0:p.popupuid,recordData:n==null?void 0:n.data,sourceId:B});let T=removeLastPopupPath(o.pathname);import_lodash.default.last(T)==="/"&&(T=T.slice(0,-1)),t(`${T}${N}`,{replace:!0})},[P,t,p==null?void 0:p.popupuid,n==null?void 0:n.data,o]),D=(0,import_react2.useCallback)((w,B)=>{B.__popup=w},[]),k=(0,import_react2.useCallback)(w=>w.__popup,[]);return{openPopup:I,closePopup:M,savePopupSchemaToSchema:D,getPopupSchemaFromSchema:k,context:b,visibleWithURL:d,setVisibleWithURL:m,popupParams:p,changeTab:E,getPopupContext:j}};function removeLastPopupPath(e){if(!e.includes("popups"))return e;const t=e.split("popups").slice(0,-1).join("popups");return t.endsWith("/")?t.slice(0,-1):t}function withSearchParams(e){return`${e}${window.location.search}`}function encodePathValue(e){const t=encodeURIComponent(e);return t==="popups"?window.btoa(e):t}function decodePathValue(e){return e===window.btoa("popups")?"popups":decodeURIComponent(e)}const ActionContext=(0,import_react2.createContext)({});ActionContext.displayName="ActionContext";const ActionContextProvider=import_react2.default.memo(e=>{const[t,o]=(0,import_react2.useState)(!1),{visible:r}=x(x({},e),e.value),{setSubmitted:i}=x(x({},e),e.value),n=useBlockServiceInActionButton(),{isSubPageClosedByPageMenu:l,reset:a}=useIsSubPageClosedByPageMenu((0,import_react.useFieldSchema)());(0,import_react2.useEffect)(()=>{L(void 0,null,function*(){r===!1&&n&&!n.loading&&(t||l())&&(a(),n.loading=!0,yield n.refreshAsync(),n.loading=!1,o(!1),i==null||i(!0))})},[r,n,i,l,t,a]);const c=(0,import_react2.useMemo)(()=>A(x(x({},e),e==null?void 0:e.value),{submitted:t,setSubmitted:o}),[e,t]);return(0,import_jsx_runtime.jsx)(ActionContext.Provider,{value:c,children:e.children})});ActionContextProvider.displayName="ActionContextProvider";const useBlockServiceInActionButton=()=>{var e,t;const{params:o}=useCurrentPopupContext(),r=(e=(0,import_react.useFieldSchema)())==null?void 0:e["x-uid"],i=useDataBlockRequest(),n=o==null?void 0:o.popupuid;return(0,import_react2.useEffect)(()=>{r&&n!==r&&storeBlockService(r,{service:i})},[n,r,i]),n===r&&((t=getBlockService(n))==null?void 0:t.service)||i},ActionContextNoRerender=import_react2.default.memo(e=>{const t=(0,import_react2.useContext)(ActionContext),o=(0,import_react2.useRef)({});return Object.assign(o.current,t),(0,import_jsx_runtime.jsx)(ActionContext.Provider,{value:o.current,children:e.children})});ActionContextNoRerender.displayName="ActionContextNoRerender";const isModalTitle=e=>(0,import_shared.isNum)(e)||(0,import_shared.isStr)(e)||(0,import_shared.isBool)(e)||import_react2.default.isValidElement(e),getModelProps=e=>isModalTitle(e)?{title:e}:e;function FormDialog(e,t,o,r){((0,import_shared.isFn)(t)||import_react2.default.isValidElement(t))&&(r=o,o=t,t="form-dialog");const i={host:document.createElement("div"),form:null,promise:null,openMiddlewares:[],confirmMiddlewares:[],cancelMiddlewares:[]},n=createPortalRoot(i.host,t),l=getModelProps(e),a=A(x({},l),{afterClose:()=>{var m;(m=l==null?void 0:l.afterClose)==null||m.call(l),n.unmount()}}),c=(0,import_react.observer)(()=>(0,import_jsx_runtime.jsx)(import_react2.Fragment,{children:(0,import_shared.isFn)(o)?o(i.form):o}),{displayName:"DialogContent"}),u=(m=!0,p,h)=>{const{form:g}=i;return g?(0,import_jsx_runtime.jsx)(GlobalThemeProvider,{theme:r,children:(0,import_jsx_runtime.jsx)(import_react.Observer,{children:()=>{const{token:f}=useToken$1(),_=(0,import_react2.useMemo)(()=>document.querySelector("#nocobase-app-container"),[]);return(0,import_jsx_runtime.jsx)(import_antd.Modal,A(x({zIndex:f.zIndexPopupBase+1e3,getContainer:_},a),{open:m,confirmLoading:g.submitting,onCancel:v=>{var b;((b=a==null?void 0:a.onCancel)==null?void 0:b.call(a,v))!==!1&&(h==null||h())},onOk:v=>L(this,null,function*(){var b;((b=a==null?void 0:a.onOk)==null?void 0:b.call(a,v))!==!1&&(p==null||p())}),children:(0,import_jsx_runtime.jsx)(import_react.FormProvider,{form:g,children:(0,import_jsx_runtime.jsx)(c,{})})}))}})}):null};document.body.appendChild(i.host);const d={forOpen:m=>((0,import_shared.isFn)(m)&&i.openMiddlewares.push(m),d),forConfirm:m=>((0,import_shared.isFn)(m)&&i.confirmMiddlewares.push(m),d),forCancel:m=>((0,import_shared.isFn)(m)&&i.cancelMiddlewares.push(m),d),open:m=>L(this,null,function*(){return i.promise||(i.promise=new Promise((p,h)=>L(this,null,function*(){try{m=yield loading(a.loadingText,()=>(0,import_shared.applyMiddleware)(m,i.openMiddlewares)),i.form=i.form||(0,import_core.createForm)(m)}catch(g){h(g)}n.render(()=>u(!0,()=>{var g;(g=i.form)==null||g.submit(()=>L(this,null,function*(){yield(0,import_shared.applyMiddleware)(i.form,i.confirmMiddlewares),(0,import_reactive.untracked)(()=>{var f;p(x({},(f=i.form)==null?void 0:f.values))}),d.close()})).catch(()=>{})},()=>L(this,null,function*(){yield loading(a.loadingText,()=>(0,import_shared.applyMiddleware)(i.form,i.cancelMiddlewares)),d.close()})))}))),i.promise}),close:()=>{i.host&&n.render(()=>u(!1))}};return d}const DialogFooter=e=>{const t=(0,import_react2.useRef)(null),[o,r]=(0,import_react2.useState)(),i=(0,import_react2.useRef)(),n=usePrefixCls("modal");return(0,import_react2.useLayoutEffect)(()=>{var l;const a=(l=t.current)==null?void 0:l.closest(`.${n}-content`);a&&(i.current||(i.current=a.querySelector(`.${n}-footer`),i.current||(i.current=document.createElement("div"),i.current.classList.add(`${n}-footer`),a.appendChild(i.current))),r(i.current))},[n]),i.current=o,(0,import_jsx_runtime.jsx)("div",{ref:t,style:{display:"none"},children:o&&(0,import_react_dom.createPortal)(e.children,o)})};FormDialog.Footer=DialogFooter;FormDialog.Portal=createPortalProvider("form-dialog");const AllDataBlocksContext=import_react2.default.createContext({getAllDataBlocks:()=>[],setAllDataBlocks:()=>{}}),AllDataBlocksProvider=e=>{const t=import_react2.default.useRef([]),o=import_react2.default.useCallback(n=>{typeof n=="function"?t.current=n(t.current):t.current=n},[]),r=import_react2.default.useCallback(()=>t.current,[]),i=import_react2.default.useMemo(()=>({getAllDataBlocks:r,setAllDataBlocks:o}),[r,o]);return(0,import_jsx_runtime.jsx)(AllDataBlocksContext.Provider,{value:i,children:e.children})},useAllDataBlocks=()=>{const e=import_react2.default.useContext(AllDataBlocksContext),t=(0,import_react2.useCallback)(()=>(e==null?void 0:e.getAllDataBlocks())||[],[e]),o=(0,import_react2.useCallback)(i=>{const n=e==null?void 0:e.getAllDataBlocks().find(l=>l.uid===i.uid);if(n){Object.assign(n,i);return}e==null||e.setAllDataBlocks(l=>[...l,i])},[e]),r=(0,import_react2.useCallback)(i=>{e!=null&&e.getAllDataBlocks().every(n=>n.uid!==i)||e==null||e.setAllDataBlocks(n=>n.filter(l=>l.uid!==i))},[e]);return e?{recordDataBlocks:o,removeDataBlock:r,getAllDataBlocks:t}:{recordDataBlocks:import_lodash.default.noop,removeDataBlock:import_lodash.default.noop,getAllDataBlocks:t}},WithForm$1=e=>{const t=e,{children:o,form:r}=t,i=te(t,["children","form"]),n=(0,import_react2.useContext)(import_react.SchemaOptionsContext),l=(0,import_react2.useContext)(import_react.SchemaExpressionScopeContext),a=x(x({},n==null?void 0:n.scope),l),c=x({},n==null?void 0:n.components);return(0,import_jsx_runtime.jsx)(import_react.FormProvider,A(x({},i),{form:r,children:(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{components:c,scope:a,children:o})}))},WithoutForm$1=e=>{const t=e,{children:o}=t,r=te(t,["children"]),i=(0,import_react2.useContext)(import_react.SchemaOptionsContext),n=(0,import_react2.useContext)(import_react.SchemaExpressionScopeContext),l=x(x({},i==null?void 0:i.scope),n),a=x({},i==null?void 0:i.components),c=(0,import_react2.useMemo)(()=>(0,import_core.createForm)(),[]);return(0,import_jsx_runtime.jsx)(import_react.FormProvider,A(x({},r),{form:c,children:(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{components:a,scope:l,children:o})}))},FormProvider=e=>e.form?(0,import_jsx_runtime.jsx)(WithForm$1,x({},e)):(0,import_jsx_runtime.jsx)(WithoutForm$1,x({},e)),CollectionHistoryContext=(0,import_react2.createContext)({historyCollections:[],refreshCH:()=>{}});CollectionHistoryContext.displayName="CollectionHistoryContext";const options$1={resource:"collectionsHistory",action:"list",params:{paginate:!1,appends:["fields"],filter:{},sort:["sort"]}},CollectionHistoryProvider=e=>{var t;const o=useAPIClient(),r=useIsAdminPage(),i=o.auth.getToken()||"",n=useRequest(options$1,{refreshDeps:[r,i],ready:!!(r&&i)}),l=(0,import_react2.useCallback)(()=>L(void 0,null,function*(){const{data:c}=yield o.request(options$1);return n.mutate(c),(c==null?void 0:c.data)||[]}),[n]),a=(0,import_react2.useMemo)(()=>{var c;return{historyCollections:(c=n.data)==null?void 0:c.data,refreshCH:l}},[l,(t=n.data)==null?void 0:t.data]);return(0,import_jsx_runtime.jsx)(CollectionHistoryContext.Provider,{value:a,children:e.children})},useHistoryCollectionsByNames=e=>{const{historyCollections:t}=(0,import_react2.useContext)(CollectionHistoryContext);return(t==null?void 0:t.filter(o=>e.includes(o.name)))||[]},useCollectionHistory=()=>(0,import_react2.useContext)(CollectionHistoryContext),CollectionProvider_deprecated=({children:e,allowNull:t,name:o,dataSource:r,collection:i})=>r?(0,import_jsx_runtime.jsx)(CollectionManagerProvider,{dataSource:r,children:(0,import_jsx_runtime.jsx)(CollectionProvider,{allowNull:t,name:o||i,children:e})}):(0,import_jsx_runtime.jsx)(CollectionProvider,{allowNull:t,name:o||i,children:e}),ResourceActionContext=(0,import_react2.createContext)(null);ResourceActionContext.displayName="ResourceActionContext";const ResourceContext=(0,import_react2.createContext)(null);ResourceContext.displayName="ResourceContext";const CollectionResourceActionProvider=e=>{var t,o,r;const{collection:i,request:n,uid:l,dragSort:a}=e,c=useAPIClient(),u=useRecord(),d=n==null?void 0:n.action,m={};d==="get"&&(m.filterByTk=u[i.targetKey||i.filterTargetKey||"id"]);const p=(n==null?void 0:n.params)||{},{appends:h,disableDefaultAppends:g}=p,f=te(p,["appends","disableDefaultAppends"]),_=((o=(t=i==null?void 0:i.fields)==null?void 0:t.filter)==null?void 0:o.call(t,P=>P.target).map(P=>P.name))||[],v=g?h||[]:[..._,...h||[]],b=v.length>0,C=useRequest(A(x({},n),{params:A(x(x(x({},m),f),b?{appends:v}:{}),{sort:a?[i.sortable===!0?"sort":i.sortable]:(r=n==null?void 0:n.params)==null?void 0:r.sort})}),{uid:l}),y=c.resource(n.resource),F=(0,import_react2.useMemo)(()=>A(x({},C),{defaultRequest:n,dragSort:a}),[a,n,C]),S=(0,import_react2.useMemo)(()=>({type:"collection",resource:y,collection:i}),[i,y]);return(0,import_jsx_runtime.jsx)(ResourceContext.Provider,{value:S,children:(0,import_jsx_runtime.jsx)(ResourceActionContext.Provider,{value:F,children:(0,import_jsx_runtime.jsx)(CollectionProvider_deprecated,{collection:i,children:e.children})})})},AssociationResourceActionProvider=e=>{var t,o;const{collection:r,association:i,request:n,uid:l,dragSort:a}=e,c=useAPIClient(),u=useRecord()[i.sourceKey],d=(n==null?void 0:n.params)||{},{appends:m,disableDefaultAppends:p}=d,h=te(d,["appends","disableDefaultAppends"]),g=((o=(t=r==null?void 0:r.fields)==null?void 0:t.filter)==null?void 0:o.call(t,F=>F.target).map(F=>F.name))||[],f=p?m||[]:[...g,...m||[]],_=f.length>0,v=useRequest(A(x({resourceOf:u},n),{params:x(x({},h),_?{appends:f}:{})}),{uid:l}),b=c.resource(n.resource,u),C=(0,import_react2.useMemo)(()=>({type:"association",resource:b,association:i,collection:r}),[i,r,b]),y=(0,import_react2.useMemo)(()=>A(x({},v),{defaultRequest:n,dragSort:a}),[a,n,v]);return(0,import_jsx_runtime.jsx)(ResourceContext.Provider,{value:C,children:(0,import_jsx_runtime.jsx)(ResourceActionContext.Provider,{value:y,children:(0,import_jsx_runtime.jsx)(CollectionProvider_deprecated,{collection:r,children:e.children})})})},ResourceActionProvider=e=>{var t;let{collection:o,request:r}=e;const{getCollection:i}=useCollectionManager_deprecated();return typeof o=="string"&&(o=i(o)),o?(t=r==null?void 0:r.resource)!=null&&t.includes(".")?(0,import_jsx_runtime.jsx)(AssociationResourceActionProvider,A(x({},e),{collection:o})):(0,import_jsx_runtime.jsx)(CollectionResourceActionProvider,A(x({},e),{collection:o})):null},useResourceActionContext=()=>(0,import_react2.useContext)(ResourceActionContext)||{},useDataSourceFromRAC=e=>{const t=(0,import_react2.useContext)(ResourceActionContext),o=(0,import_react.useField)();return(0,import_react2.useEffect)(()=>{t.loading||(e==null||e.onSuccess(t.data),o.componentProps.dragSort=!!t.dragSort)},[t.loading]),t},useResourceContext=()=>{const{type:e,resource:t,collection:o,association:r}=(0,import_react2.useContext)(ResourceContext)||{};return{type:e,resource:t,collection:o,association:r,targetKey:(r==null?void 0:r.targetKey)||(o==null?void 0:o.filterTargetKey)||(o==null?void 0:o.targetKey)||"id"}},collection$1={name:"fields",targetKey:"name",fields:[{type:"string",name:"type",interface:"input",uiSchema:{title:'{{ t("Storage type") }}',type:"string","x-component":"Select",enum:[{label:"String",value:"string"}],required:!0}},{type:"string",name:"interface",interface:"input",uiSchema:{title:'{{ t("Field interface") }}',type:"string","x-component":"Select",enum:"{{interfaces}}"}},{type:"string",name:"title",interface:"input",uiSchema:{title:'{{ t("Field display name") }}',type:"string","x-component":"Input",required:!0}},{type:"string",name:"name",interface:"input",uiSchema:{title:'{{ t("Field name") }}',type:"string","x-component":"Input"}}]},DataSourceContext_deprecated=(0,import_react2.createContext)(null);DataSourceContext_deprecated.displayName="DataSourceContext_deprecated";const useSelectedRowKeys=()=>{const e=(0,import_react2.useContext)(DataSourceContext_deprecated);return[e.selectedRowKeys,e.setSelectedRowKeys]},useDataSource_deprecated=e=>{const t=(0,import_react2.useContext)(DataSourceContext_deprecated);return useRequest(()=>Promise.resolve({data:t.dataSource}),A(x({},e),{refreshDeps:[JSON.stringify(t.dataSource)]}))},useCreateAction$1=()=>{const e=(0,import_react2.useContext)(DataSourceContext_deprecated),t=(0,import_react.useForm)(),{setVisible:o}=useActionContext();return{run(){return L(this,null,function*(){console.log("form.values",t.values);const r=e.dataSource||[];r.push((0,import_lodash.cloneDeep)(t.values)),e.setDataSource([...r]),o(!1),yield t.reset()})}}},useBulkDestroyAction$2=()=>{const e=(0,import_react2.useContext)(DataSourceContext_deprecated),{selectedRowKeys:t,setSelectedRowKeys:o}=e;return{run(){return L(this,null,function*(){const r=e.dataSource||[];e.setDataSource(r.filter((i,n)=>!t.includes(n))),o([])})}}},useUpdateAction$1=()=>{const e=useRecordIndex(),t=(0,import_react.useForm)(),{setVisible:o}=useActionContext(),r=(0,import_react2.useContext)(DataSourceContext_deprecated);return{run(){return L(this,null,function*(){const i=((r==null?void 0:r.dataSource)||[]).map((n,l)=>l===e?x({},t.values):n);r.setDataSource([...i]),o(!1)})}}},useDestroyAction$2=()=>{const e=useRecordIndex(),t=(0,import_react2.useContext)(DataSourceContext_deprecated);return{run(){return L(this,null,function*(){const o=t.dataSource||[];t.setDataSource(o.filter((r,i)=>e!==i))})}}},ds={useSelectedRowKeys,useDataSource_deprecated,useCreateAction:useCreateAction$1,useBulkDestroyAction:useBulkDestroyAction$2,useUpdateAction:useUpdateAction$1,useDestroyAction:useDestroyAction$2},SubFieldDataSourceProvider_deprecated=(0,import_react.observer)(e=>{const[t,o]=(0,import_react2.useState)([]),[r,i]=(0,import_react2.useState)([]),n=useRecord(),l=useAPIClient(),a=useRequest(()=>{var c;return n.interface==="subTable"?(c=n==null?void 0:n.children)!=null&&c.length?Promise.resolve({data:(n==null?void 0:n.children)||[]}):l.resource("fields").list({paginate:!1,sort:"sort",filter:{parentKey:n.key}}).then(u=>u==null?void 0:u.data):Promise.resolve({data:[]})},{onSuccess(c){console.log("dataSource1",c==null?void 0:c.data),i(c==null?void 0:c.data)}});return(0,import_jsx_runtime.jsx)(CollectionProvider_deprecated,{collection:collection$1,children:(0,import_jsx_runtime.jsx)(DataSourceContext_deprecated.Provider,{value:{rowKey:"name",service:a,dataSource:r,setDataSource:i,selectedRowKeys:t,setSelectedRowKeys:o},children:e.children})})},{displayName:"SubFieldDataSourceProvider_deprecated"}),DataSourceProvider_deprecated=(0,import_react.observer)(e=>{const{rowKey:t,collection:o,association:r}=e,[i,n]=(0,import_react2.useState)([]),[l,a]=(0,import_react2.useState)([]),c=useRecord(),u=useAPIClient(),{getCollection:d}=useCollectionManager_deprecated(),m=d(o),p=c==null?void 0:c[r.targetKey||"id"],h=useRequest(()=>{var g,f;return p?u.request({resource:`${r.collectionName}.${r.name}`,resourceOf:p,action:"list",params:{appends:(f=(g=m==null?void 0:m.fields)==null?void 0:g.filter(_=>_.target))==null?void 0:f.map(_=>_.name)}}).then(_=>_.data):Promise.resolve({data:(c==null?void 0:c[r.name])||[]})},{onSuccess(g){a(g==null?void 0:g.data)}});return(0,import_jsx_runtime.jsx)(CollectionProvider_deprecated,{collection:m,children:(0,import_jsx_runtime.jsx)(DataSourceContext_deprecated.Provider,{value:{rowKey:t,service:h,dataSource:l,setDataSource:a,selectedRowKeys:i,setSelectedRowKeys:n},children:e.children})})},{displayName:"DataSourceProvider_deprecated"}),components$6={SubFieldDataSourceProvider_deprecated,DataSourceProvider_deprecated,CollectionProvider_deprecated,ResourceActionProvider},CollectionManagerSchemaComponentProvider=e=>{const t=(0,import_react2.useMemo)(()=>({cm:A(x({},hooks),{useDataSourceFromRAC}),ds}),[]);return(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{scope:t,components:components$6,children:e.children})},CollectionCategoriesContext=(0,import_react2.createContext)({data:[],refresh:()=>{}});CollectionCategoriesContext.displayName="CollectionCategoriesContext";const CollectionManagerProvider_deprecated=e=>(0,import_jsx_runtime.jsx)(CollectionManagerProvider,{children:(0,import_jsx_runtime.jsx)(CollectionManagerSchemaComponentProvider,{children:e.children})}),RemoteCollectionManagerLoadingContext=(0,import_react2.createContext)(!1),useRemoteCollectionManagerLoading=()=>(0,import_react2.useContext)(RemoteCollectionManagerLoadingContext),RemoteCollectionManagerProvider=e=>{const t=useDataSourceManager(),{refreshCH:o}=useCollectionHistory(),r=useRequest(()=>t.reload().then(o));return(0,import_jsx_runtime.jsx)(RemoteCollectionManagerLoadingContext.Provider,{value:r.loading,children:(0,import_jsx_runtime.jsx)(CollectionManagerProvider_deprecated,x({},e))})},CollectionCategoriesProvider=e=>{var t;const{service:o,refreshCategory:r}=e,i=(0,import_react2.useMemo)(()=>{var n;return x({data:(n=o==null?void 0:o.data)==null?void 0:n.data,refresh:r},e)},[(t=o==null?void 0:o.data)==null?void 0:t.data,r,e]);return(0,import_jsx_runtime.jsx)(CollectionCategoriesContext.Provider,{value:i,children:e.children})},useRequestSchema$1=({uid:e,type:t="getJsonSchema",onSuccess:o})=>{const r={url:`/uiSchemas:${t}/${e}`},{data:i,loading:n}=useRequest(r,{refreshDeps:[e],onSuccess(l){o&&o(l)}});return{schema:i==null?void 0:i.data,loading:n}},defaultTransform=e=>e,RequestSchemaComponent=e=>{const{noForm:t,onlyRenderProperties:o,hidden:r,scope:i,uid:n,components:l,onSuccess:a,NotFoundPage:c,schemaTransform:u=defaultTransform,onPageNotFind:d}=e,m=o?"getProperties":"getJsonSchema",p=(0,import_react2.useMemo)(()=>(0,import_core.createForm)(),[n]),{schema:h,loading:g}=useRequestSchema$1({uid:n,type:m,onSuccess:C=>{a&&a(C)}}),f=useComponent(c),_=useRemoteCollectionManagerLoading(),v=(0,import_react.useFieldSchema)(),b=(0,import_react2.useMemo)(()=>u(h||{}),[h,u]);return _||g||r?(0,import_jsx_runtime.jsx)(import_antd.Spin,{style:{width:"100%",marginTop:20},delay:LOADING_DELAY}):!h||Object.keys(h).length===0?(d&&d(),f?(0,import_jsx_runtime.jsx)(f,{}):null):t?(0,import_jsx_runtime.jsx)(SchemaComponent,{components:l,scope:i,schema:b,parentSchema:v}):(0,import_jsx_runtime.jsx)(FormProvider,{form:p,children:(0,import_jsx_runtime.jsx)(SchemaComponent,{components:l,scope:i,schema:b,parentSchema:v})})},RemoteSchemaComponent=(0,import_react2.memo)(e=>e.uid?(0,import_jsx_runtime.jsx)(RequestSchemaComponent,x({},e)):null);RemoteSchemaComponent.displayName="RemoteSchemaComponent";const EditableTitle=e=>{const[t,o]=(0,import_react2.useState)(e.title),[r,i]=(0,import_react2.useState)(!1),{refresh:n}=useSchemaTemplateManager();useAPIClient();const{run:l}=useRequest({resource:"uiSchemaTemplates",action:"update",params:{filterByTk:e.filterByTk}},{manual:!0,debounceWait:500,onSuccess(){n()}});return(0,import_jsx_runtime.jsx)("div",{children:r?(0,import_jsx_runtime.jsx)(import_antd.Input,{defaultValue:t,size:"large",onBlur:()=>{i(!1)},onChange:a=>{o(a.target.value),l({filterByTk:e.filterByTk,values:{name:a.target.value}})}}):(0,import_jsx_runtime.jsx)("div",{onClick:()=>{i(!0)},children:t||(0,import_jsx_runtime.jsx)("span",{style:{color:"#bbb"},children:"未命名"})})})},BlockTemplateDetails=()=>{var e,t;const o=useNavigateNoUpdate(),r=(0,import_react_router_dom.useParams)(),i=r==null?void 0:r.key,n=(0,import_react2.useContext)(SchemaComponentContext),l=(0,import_react2.useMemo)(()=>A(x({},n),{designable:!0}),[n]),{data:a,loading:c}=useRequest({resource:"uiSchemaTemplates",action:"get",params:{filterByTk:i}});return c?(0,import_jsx_runtime.jsx)(import_antd.Spin,{}):(0,import_jsx_runtime.jsxs)("div",{children:[(0,import_jsx_runtime.jsx)(import_pro_layout.PageHeader,{style:{backgroundColor:"white"},onBack:()=>{o("/admin/plugins/block-templates")},ghost:!1,title:(0,import_jsx_runtime.jsx)(EditableTitle,{filterByTk:i,title:(e=a==null?void 0:a.data)==null?void 0:e.name})}),(0,import_jsx_runtime.jsx)("div",{style:{margin:"var(--nb-spacing)"},children:(0,import_jsx_runtime.jsx)(SchemaComponentContext.Provider,{value:l,children:(0,import_jsx_runtime.jsx)(RemoteSchemaComponent,{uid:(t=a==null?void 0:a.data)==null?void 0:t.uid})})})]})};class SchemaSettings{constructor(t){R(this,"options"),R(this,"name"),this.options=Object.assign({items:[]},t),this.name=t.name}get items(){return this.options.items}add(t,o){const r=t.split("."),i=A(x({},o),{name:r[r.length-1]});if(r.length===1){const a=this.items.findIndex(c=>c.name===t);a===-1?this.items.push(i):this.items[a]=i;return}const n=r.slice(0,-1).join("."),l=this.get(n);if(l){l.children||(l.children=[]);const a=t.replace(`${l.name}.`,""),c=l.children.findIndex(u=>u.name===a);c===-1?l.children.push(i):l.children[c]=i}}get(t){if(!t)return;const o=t.split(".");let r=this.items;for(let i=0;i<o.length;i++){const n=o[i];if(r=r.find(l=>l.name===n),!r||i===o.length-1)return r;if(r.children)r=r.children;else return}}remove(t){const o=t.split(".");if(o.length===1){const i=this.items.findIndex(n=>n.name===o[0]);i!==-1&&this.items.splice(i,1);return}const r=this.get(o.slice(0,-1).join("."));if(r&&r.children){const i=o[o.length-1],n=r.children.findIndex(l=>l.name===i);n!==-1&&r.children.splice(n,1)}}}class SchemaSettingsManager{constructor(t=[],o){R(this,"schemaSettings",{}),R(this,"actionList",{}),this._schemaSettings=t,this.app=o,this.app=o,this.add(...t)}add(...t){t.forEach(o=>{this.schemaSettings[o.name]=o,Array.isArray(this.actionList[o.name])&&(this.actionList[o.name].forEach(r=>{o[r.type](r.itemName,r.data)}),this.actionList[o.name]=void 0)})}addItem(t,o,r){const i=this.get(t);i?i.add(o,r):(this.actionList[t]||(this.actionList[t]=[]),this.actionList[t].push({type:"add",itemName:o,data:r}))}get(t){return this.schemaSettings[t]}getAll(){return this.schemaSettings}has(t){return!!this.get(t)}remove(t){delete this.schemaSettings[t]}removeItem(t,o){const r=this.get(t);r?r.remove(o):(this.actionList[t]||(this.actionList[t]=[]),this.actionList[t].push({type:"remove",itemName:o}))}}const SchemaSettingItemContext=(0,import_react2.createContext)({});SchemaSettingItemContext.displayName="SchemaSettingItemContext";function useSchemaSettingsItem(){return(0,import_react2.useContext)(SchemaSettingItemContext)}const designerCss$4=({margin:e="-18px -16px",padding:t="18px 16px"}={})=>import_css.css`
238
+ ${JSON.stringify(q,null,2)}`)},[u,c,a,i,r,P,t,l,n,g,o,f,C,j,y,F,h]),M=(0,import_react2.useCallback)(w=>{if(!f())return S==null?void 0:S(!1);const B=removeLastPopupPath(o.pathname);t(withSearchParams(B),{replace:!0}),o.pathname=B,removePopupLayerState(h),p!=null&&p.popupuid&&deletePopupContext(p.popupuid)},[f,S,t,o==null?void 0:o.pathname,h,p==null?void 0:p.popupuid]),E=(0,import_react2.useCallback)(w=>{const B=C(),N=P({tabKey:w,popupUid:p==null?void 0:p.popupuid,recordData:n==null?void 0:n.data,sourceId:B});let T=removeLastPopupPath(o.pathname);import_lodash.default.last(T)==="/"&&(T=T.slice(0,-1)),t(`${T}${N}`,{replace:!0})},[P,t,p==null?void 0:p.popupuid,n==null?void 0:n.data,o]),D=(0,import_react2.useCallback)((w,B)=>{B.__popup=w},[]),k=(0,import_react2.useCallback)(w=>w.__popup,[]);return{openPopup:I,closePopup:M,savePopupSchemaToSchema:D,getPopupSchemaFromSchema:k,context:b,visibleWithURL:d,setVisibleWithURL:m,popupParams:p,changeTab:E,getPopupContext:j}};function removeLastPopupPath(e){if(!e.includes("popups"))return e;const t=e.split("popups").slice(0,-1).join("popups");return t.endsWith("/")?t.slice(0,-1):t}function withSearchParams(e){return`${e}${window.location.search}`}function encodePathValue(e){const t=encodeURIComponent(e);return t==="popups"?window.btoa(e):t}function decodePathValue(e){return e===window.btoa("popups")?"popups":decodeURIComponent(e)}const ActionContext=(0,import_react2.createContext)({});ActionContext.displayName="ActionContext";const ActionContextProvider=import_react2.default.memo(e=>{const[t,o]=(0,import_react2.useState)(!1),{visible:r}=x(x({},e),e.value),{setSubmitted:i}=x(x({},e),e.value),n=useBlockServiceInActionButton(),{isSubPageClosedByPageMenu:l,reset:a}=useIsSubPageClosedByPageMenu((0,import_react.useFieldSchema)());(0,import_react2.useEffect)(()=>{L(void 0,null,function*(){r===!1&&n&&!n.loading&&(t||l())&&(a(),n.loading=!0,yield n.refreshAsync(),n.loading=!1,o(!1),i==null||i(!0))})},[r,n,i,l,t,a]);const c=(0,import_react2.useMemo)(()=>A(x(x({},e),e==null?void 0:e.value),{submitted:t,setSubmitted:o}),[e,t]);return(0,import_jsx_runtime.jsx)(ActionContext.Provider,{value:c,children:e.children})});ActionContextProvider.displayName="ActionContextProvider";const useBlockServiceInActionButton=()=>{var e,t;const{params:o}=useCurrentPopupContext(),r=(e=(0,import_react.useFieldSchema)())==null?void 0:e["x-uid"],i=useDataBlockRequest(),n=o==null?void 0:o.popupuid;return(0,import_react2.useEffect)(()=>{r&&n!==r&&storeBlockService(r,{service:i})},[n,r,i]),n===r&&((t=getBlockService(n))==null?void 0:t.service)||i},ActionContextNoRerender=import_react2.default.memo(e=>{const t=(0,import_react2.useContext)(ActionContext),o=(0,import_react2.useRef)({});return Object.assign(o.current,t),(0,import_jsx_runtime.jsx)(ActionContext.Provider,{value:o.current,children:e.children})});ActionContextNoRerender.displayName="ActionContextNoRerender";const isModalTitle=e=>(0,import_shared.isNum)(e)||(0,import_shared.isStr)(e)||(0,import_shared.isBool)(e)||import_react2.default.isValidElement(e),getModelProps=e=>isModalTitle(e)?{title:e}:e;function FormDialog(e,t,o,r){((0,import_shared.isFn)(t)||import_react2.default.isValidElement(t))&&(r=o,o=t,t="form-dialog");const i={host:document.createElement("div"),form:null,promise:null,openMiddlewares:[],confirmMiddlewares:[],cancelMiddlewares:[]},n=createPortalRoot(i.host,t),l=getModelProps(e),a=A(x({},l),{afterClose:()=>{var m;(m=l==null?void 0:l.afterClose)==null||m.call(l),n.unmount()}}),c=(0,import_react.observer)(()=>(0,import_jsx_runtime.jsx)(import_react2.Fragment,{children:(0,import_shared.isFn)(o)?o(i.form):o}),{displayName:"DialogContent"}),u=(m=!0,p,h)=>{const{form:g}=i;return g?(0,import_jsx_runtime.jsx)(GlobalThemeProvider,{theme:r,children:(0,import_jsx_runtime.jsx)(import_react.Observer,{children:()=>{var f;const{token:_}=useToken$1(),v=(0,import_react2.useMemo)(()=>document.body,[]),b=Number(a==null?void 0:a.zIndex),C=_.zIndexPopupBase+1e3,y=Number.isFinite(b)&&b>0?Math.max(C,b):C;return(0,import_jsx_runtime.jsx)(import_antd.Modal,A(x({},a),{zIndex:y,getContainer:(f=a==null?void 0:a.getContainer)!=null?f:v,open:m,confirmLoading:g.submitting,onCancel:F=>{var S;((S=a==null?void 0:a.onCancel)==null?void 0:S.call(a,F))!==!1&&(h==null||h())},onOk:F=>L(this,null,function*(){var S;((S=a==null?void 0:a.onOk)==null?void 0:S.call(a,F))!==!1&&(p==null||p())}),children:(0,import_jsx_runtime.jsx)(import_react.FormProvider,{form:g,children:(0,import_jsx_runtime.jsx)(c,{})})}))}})}):null};document.body.appendChild(i.host);const d={forOpen:m=>((0,import_shared.isFn)(m)&&i.openMiddlewares.push(m),d),forConfirm:m=>((0,import_shared.isFn)(m)&&i.confirmMiddlewares.push(m),d),forCancel:m=>((0,import_shared.isFn)(m)&&i.cancelMiddlewares.push(m),d),open:m=>L(this,null,function*(){return i.promise||(i.promise=new Promise((p,h)=>L(this,null,function*(){try{m=yield loading(a.loadingText,()=>(0,import_shared.applyMiddleware)(m,i.openMiddlewares)),i.form=i.form||(0,import_core.createForm)(m)}catch(g){h(g)}n.render(()=>u(!0,()=>{var g;(g=i.form)==null||g.submit(()=>L(this,null,function*(){yield(0,import_shared.applyMiddleware)(i.form,i.confirmMiddlewares),(0,import_reactive.untracked)(()=>{var f;p(x({},(f=i.form)==null?void 0:f.values))}),d.close()})).catch(()=>{})},()=>L(this,null,function*(){yield loading(a.loadingText,()=>(0,import_shared.applyMiddleware)(i.form,i.cancelMiddlewares)),d.close()})))}))),i.promise}),close:()=>{i.host&&n.render(()=>u(!1))}};return d}const DialogFooter=e=>{const t=(0,import_react2.useRef)(null),[o,r]=(0,import_react2.useState)(),i=(0,import_react2.useRef)(),n=usePrefixCls("modal");return(0,import_react2.useLayoutEffect)(()=>{var l;const a=(l=t.current)==null?void 0:l.closest(`.${n}-content`);a&&(i.current||(i.current=a.querySelector(`.${n}-footer`),i.current||(i.current=document.createElement("div"),i.current.classList.add(`${n}-footer`),a.appendChild(i.current))),r(i.current))},[n]),i.current=o,(0,import_jsx_runtime.jsx)("div",{ref:t,style:{display:"none"},children:o&&(0,import_react_dom.createPortal)(e.children,o)})};FormDialog.Footer=DialogFooter;FormDialog.Portal=createPortalProvider("form-dialog");const AllDataBlocksContext=import_react2.default.createContext({getAllDataBlocks:()=>[],setAllDataBlocks:()=>{}}),AllDataBlocksProvider=e=>{const t=import_react2.default.useRef([]),o=import_react2.default.useCallback(n=>{typeof n=="function"?t.current=n(t.current):t.current=n},[]),r=import_react2.default.useCallback(()=>t.current,[]),i=import_react2.default.useMemo(()=>({getAllDataBlocks:r,setAllDataBlocks:o}),[r,o]);return(0,import_jsx_runtime.jsx)(AllDataBlocksContext.Provider,{value:i,children:e.children})},useAllDataBlocks=()=>{const e=import_react2.default.useContext(AllDataBlocksContext),t=(0,import_react2.useCallback)(()=>(e==null?void 0:e.getAllDataBlocks())||[],[e]),o=(0,import_react2.useCallback)(i=>{const n=e==null?void 0:e.getAllDataBlocks().find(l=>l.uid===i.uid);if(n){Object.assign(n,i);return}e==null||e.setAllDataBlocks(l=>[...l,i])},[e]),r=(0,import_react2.useCallback)(i=>{e!=null&&e.getAllDataBlocks().every(n=>n.uid!==i)||e==null||e.setAllDataBlocks(n=>n.filter(l=>l.uid!==i))},[e]);return e?{recordDataBlocks:o,removeDataBlock:r,getAllDataBlocks:t}:{recordDataBlocks:import_lodash.default.noop,removeDataBlock:import_lodash.default.noop,getAllDataBlocks:t}},WithForm$1=e=>{const t=e,{children:o,form:r}=t,i=te(t,["children","form"]),n=(0,import_react2.useContext)(import_react.SchemaOptionsContext),l=(0,import_react2.useContext)(import_react.SchemaExpressionScopeContext),a=x(x({},n==null?void 0:n.scope),l),c=x({},n==null?void 0:n.components);return(0,import_jsx_runtime.jsx)(import_react.FormProvider,A(x({},i),{form:r,children:(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{components:c,scope:a,children:o})}))},WithoutForm$1=e=>{const t=e,{children:o}=t,r=te(t,["children"]),i=(0,import_react2.useContext)(import_react.SchemaOptionsContext),n=(0,import_react2.useContext)(import_react.SchemaExpressionScopeContext),l=x(x({},i==null?void 0:i.scope),n),a=x({},i==null?void 0:i.components),c=(0,import_react2.useMemo)(()=>(0,import_core.createForm)(),[]);return(0,import_jsx_runtime.jsx)(import_react.FormProvider,A(x({},r),{form:c,children:(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{components:a,scope:l,children:o})}))},FormProvider=e=>e.form?(0,import_jsx_runtime.jsx)(WithForm$1,x({},e)):(0,import_jsx_runtime.jsx)(WithoutForm$1,x({},e)),CollectionHistoryContext=(0,import_react2.createContext)({historyCollections:[],refreshCH:()=>{}});CollectionHistoryContext.displayName="CollectionHistoryContext";const options$1={resource:"collectionsHistory",action:"list",params:{paginate:!1,appends:["fields"],filter:{},sort:["sort"]}},CollectionHistoryProvider=e=>{var t;const o=useAPIClient(),r=useIsAdminPage(),i=o.auth.getToken()||"",n=useRequest(options$1,{refreshDeps:[r,i],ready:!!(r&&i)}),l=(0,import_react2.useCallback)(()=>L(void 0,null,function*(){const{data:c}=yield o.request(options$1);return n.mutate(c),(c==null?void 0:c.data)||[]}),[n]),a=(0,import_react2.useMemo)(()=>{var c;return{historyCollections:(c=n.data)==null?void 0:c.data,refreshCH:l}},[l,(t=n.data)==null?void 0:t.data]);return(0,import_jsx_runtime.jsx)(CollectionHistoryContext.Provider,{value:a,children:e.children})},useHistoryCollectionsByNames=e=>{const{historyCollections:t}=(0,import_react2.useContext)(CollectionHistoryContext);return(t==null?void 0:t.filter(o=>e.includes(o.name)))||[]},useCollectionHistory=()=>(0,import_react2.useContext)(CollectionHistoryContext),CollectionProvider_deprecated=({children:e,allowNull:t,name:o,dataSource:r,collection:i})=>r?(0,import_jsx_runtime.jsx)(CollectionManagerProvider,{dataSource:r,children:(0,import_jsx_runtime.jsx)(CollectionProvider,{allowNull:t,name:o||i,children:e})}):(0,import_jsx_runtime.jsx)(CollectionProvider,{allowNull:t,name:o||i,children:e}),ResourceActionContext=(0,import_react2.createContext)(null);ResourceActionContext.displayName="ResourceActionContext";const ResourceContext=(0,import_react2.createContext)(null);ResourceContext.displayName="ResourceContext";const CollectionResourceActionProvider=e=>{var t,o,r;const{collection:i,request:n,uid:l,dragSort:a}=e,c=useAPIClient(),u=useRecord(),d=n==null?void 0:n.action,m={};d==="get"&&(m.filterByTk=u[i.targetKey||i.filterTargetKey||"id"]);const p=(n==null?void 0:n.params)||{},{appends:h,disableDefaultAppends:g}=p,f=te(p,["appends","disableDefaultAppends"]),_=((o=(t=i==null?void 0:i.fields)==null?void 0:t.filter)==null?void 0:o.call(t,P=>P.target).map(P=>P.name))||[],v=g?h||[]:[..._,...h||[]],b=v.length>0,C=useRequest(A(x({},n),{params:A(x(x(x({},m),f),b?{appends:v}:{}),{sort:a?[i.sortable===!0?"sort":i.sortable]:(r=n==null?void 0:n.params)==null?void 0:r.sort})}),{uid:l}),y=c.resource(n.resource),F=(0,import_react2.useMemo)(()=>A(x({},C),{defaultRequest:n,dragSort:a}),[a,n,C]),S=(0,import_react2.useMemo)(()=>({type:"collection",resource:y,collection:i}),[i,y]);return(0,import_jsx_runtime.jsx)(ResourceContext.Provider,{value:S,children:(0,import_jsx_runtime.jsx)(ResourceActionContext.Provider,{value:F,children:(0,import_jsx_runtime.jsx)(CollectionProvider_deprecated,{collection:i,children:e.children})})})},AssociationResourceActionProvider=e=>{var t,o;const{collection:r,association:i,request:n,uid:l,dragSort:a}=e,c=useAPIClient(),u=useRecord()[i.sourceKey],d=(n==null?void 0:n.params)||{},{appends:m,disableDefaultAppends:p}=d,h=te(d,["appends","disableDefaultAppends"]),g=((o=(t=r==null?void 0:r.fields)==null?void 0:t.filter)==null?void 0:o.call(t,F=>F.target).map(F=>F.name))||[],f=p?m||[]:[...g,...m||[]],_=f.length>0,v=useRequest(A(x({resourceOf:u},n),{params:x(x({},h),_?{appends:f}:{})}),{uid:l}),b=c.resource(n.resource,u),C=(0,import_react2.useMemo)(()=>({type:"association",resource:b,association:i,collection:r}),[i,r,b]),y=(0,import_react2.useMemo)(()=>A(x({},v),{defaultRequest:n,dragSort:a}),[a,n,v]);return(0,import_jsx_runtime.jsx)(ResourceContext.Provider,{value:C,children:(0,import_jsx_runtime.jsx)(ResourceActionContext.Provider,{value:y,children:(0,import_jsx_runtime.jsx)(CollectionProvider_deprecated,{collection:r,children:e.children})})})},ResourceActionProvider=e=>{var t;let{collection:o,request:r}=e;const{getCollection:i}=useCollectionManager_deprecated();return typeof o=="string"&&(o=i(o)),o?(t=r==null?void 0:r.resource)!=null&&t.includes(".")?(0,import_jsx_runtime.jsx)(AssociationResourceActionProvider,A(x({},e),{collection:o})):(0,import_jsx_runtime.jsx)(CollectionResourceActionProvider,A(x({},e),{collection:o})):null},useResourceActionContext=()=>(0,import_react2.useContext)(ResourceActionContext)||{},useDataSourceFromRAC=e=>{const t=(0,import_react2.useContext)(ResourceActionContext),o=(0,import_react.useField)();return(0,import_react2.useEffect)(()=>{t.loading||(e==null||e.onSuccess(t.data),o.componentProps.dragSort=!!t.dragSort)},[t.loading]),t},useResourceContext=()=>{const{type:e,resource:t,collection:o,association:r}=(0,import_react2.useContext)(ResourceContext)||{};return{type:e,resource:t,collection:o,association:r,targetKey:(r==null?void 0:r.targetKey)||(o==null?void 0:o.filterTargetKey)||(o==null?void 0:o.targetKey)||"id"}},collection$1={name:"fields",targetKey:"name",fields:[{type:"string",name:"type",interface:"input",uiSchema:{title:'{{ t("Storage type") }}',type:"string","x-component":"Select",enum:[{label:"String",value:"string"}],required:!0}},{type:"string",name:"interface",interface:"input",uiSchema:{title:'{{ t("Field interface") }}',type:"string","x-component":"Select",enum:"{{interfaces}}"}},{type:"string",name:"title",interface:"input",uiSchema:{title:'{{ t("Field display name") }}',type:"string","x-component":"Input",required:!0}},{type:"string",name:"name",interface:"input",uiSchema:{title:'{{ t("Field name") }}',type:"string","x-component":"Input"}}]},DataSourceContext_deprecated=(0,import_react2.createContext)(null);DataSourceContext_deprecated.displayName="DataSourceContext_deprecated";const useSelectedRowKeys=()=>{const e=(0,import_react2.useContext)(DataSourceContext_deprecated);return[e.selectedRowKeys,e.setSelectedRowKeys]},useDataSource_deprecated=e=>{const t=(0,import_react2.useContext)(DataSourceContext_deprecated);return useRequest(()=>Promise.resolve({data:t.dataSource}),A(x({},e),{refreshDeps:[JSON.stringify(t.dataSource)]}))},useCreateAction$1=()=>{const e=(0,import_react2.useContext)(DataSourceContext_deprecated),t=(0,import_react.useForm)(),{setVisible:o}=useActionContext();return{run(){return L(this,null,function*(){console.log("form.values",t.values);const r=e.dataSource||[];r.push((0,import_lodash.cloneDeep)(t.values)),e.setDataSource([...r]),o(!1),yield t.reset()})}}},useBulkDestroyAction$2=()=>{const e=(0,import_react2.useContext)(DataSourceContext_deprecated),{selectedRowKeys:t,setSelectedRowKeys:o}=e;return{run(){return L(this,null,function*(){const r=e.dataSource||[];e.setDataSource(r.filter((i,n)=>!t.includes(n))),o([])})}}},useUpdateAction$1=()=>{const e=useRecordIndex(),t=(0,import_react.useForm)(),{setVisible:o}=useActionContext(),r=(0,import_react2.useContext)(DataSourceContext_deprecated);return{run(){return L(this,null,function*(){const i=((r==null?void 0:r.dataSource)||[]).map((n,l)=>l===e?x({},t.values):n);r.setDataSource([...i]),o(!1)})}}},useDestroyAction$2=()=>{const e=useRecordIndex(),t=(0,import_react2.useContext)(DataSourceContext_deprecated);return{run(){return L(this,null,function*(){const o=t.dataSource||[];t.setDataSource(o.filter((r,i)=>e!==i))})}}},ds={useSelectedRowKeys,useDataSource_deprecated,useCreateAction:useCreateAction$1,useBulkDestroyAction:useBulkDestroyAction$2,useUpdateAction:useUpdateAction$1,useDestroyAction:useDestroyAction$2},SubFieldDataSourceProvider_deprecated=(0,import_react.observer)(e=>{const[t,o]=(0,import_react2.useState)([]),[r,i]=(0,import_react2.useState)([]),n=useRecord(),l=useAPIClient(),a=useRequest(()=>{var c;return n.interface==="subTable"?(c=n==null?void 0:n.children)!=null&&c.length?Promise.resolve({data:(n==null?void 0:n.children)||[]}):l.resource("fields").list({paginate:!1,sort:"sort",filter:{parentKey:n.key}}).then(u=>u==null?void 0:u.data):Promise.resolve({data:[]})},{onSuccess(c){console.log("dataSource1",c==null?void 0:c.data),i(c==null?void 0:c.data)}});return(0,import_jsx_runtime.jsx)(CollectionProvider_deprecated,{collection:collection$1,children:(0,import_jsx_runtime.jsx)(DataSourceContext_deprecated.Provider,{value:{rowKey:"name",service:a,dataSource:r,setDataSource:i,selectedRowKeys:t,setSelectedRowKeys:o},children:e.children})})},{displayName:"SubFieldDataSourceProvider_deprecated"}),DataSourceProvider_deprecated=(0,import_react.observer)(e=>{const{rowKey:t,collection:o,association:r}=e,[i,n]=(0,import_react2.useState)([]),[l,a]=(0,import_react2.useState)([]),c=useRecord(),u=useAPIClient(),{getCollection:d}=useCollectionManager_deprecated(),m=d(o),p=c==null?void 0:c[r.targetKey||"id"],h=useRequest(()=>{var g,f;return p?u.request({resource:`${r.collectionName}.${r.name}`,resourceOf:p,action:"list",params:{appends:(f=(g=m==null?void 0:m.fields)==null?void 0:g.filter(_=>_.target))==null?void 0:f.map(_=>_.name)}}).then(_=>_.data):Promise.resolve({data:(c==null?void 0:c[r.name])||[]})},{onSuccess(g){a(g==null?void 0:g.data)}});return(0,import_jsx_runtime.jsx)(CollectionProvider_deprecated,{collection:m,children:(0,import_jsx_runtime.jsx)(DataSourceContext_deprecated.Provider,{value:{rowKey:t,service:h,dataSource:l,setDataSource:a,selectedRowKeys:i,setSelectedRowKeys:n},children:e.children})})},{displayName:"DataSourceProvider_deprecated"}),components$6={SubFieldDataSourceProvider_deprecated,DataSourceProvider_deprecated,CollectionProvider_deprecated,ResourceActionProvider},CollectionManagerSchemaComponentProvider=e=>{const t=(0,import_react2.useMemo)(()=>({cm:A(x({},hooks),{useDataSourceFromRAC}),ds}),[]);return(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{scope:t,components:components$6,children:e.children})},CollectionCategoriesContext=(0,import_react2.createContext)({data:[],refresh:()=>{}});CollectionCategoriesContext.displayName="CollectionCategoriesContext";const CollectionManagerProvider_deprecated=e=>(0,import_jsx_runtime.jsx)(CollectionManagerProvider,{children:(0,import_jsx_runtime.jsx)(CollectionManagerSchemaComponentProvider,{children:e.children})}),RemoteCollectionManagerLoadingContext=(0,import_react2.createContext)(!1),useRemoteCollectionManagerLoading=()=>(0,import_react2.useContext)(RemoteCollectionManagerLoadingContext),RemoteCollectionManagerProvider=e=>{const t=useDataSourceManager(),{refreshCH:o}=useCollectionHistory(),r=useRequest(()=>t.reload().then(o));return(0,import_jsx_runtime.jsx)(RemoteCollectionManagerLoadingContext.Provider,{value:r.loading,children:(0,import_jsx_runtime.jsx)(CollectionManagerProvider_deprecated,x({},e))})},CollectionCategoriesProvider=e=>{var t;const{service:o,refreshCategory:r}=e,i=(0,import_react2.useMemo)(()=>{var n;return x({data:(n=o==null?void 0:o.data)==null?void 0:n.data,refresh:r},e)},[(t=o==null?void 0:o.data)==null?void 0:t.data,r,e]);return(0,import_jsx_runtime.jsx)(CollectionCategoriesContext.Provider,{value:i,children:e.children})},useRequestSchema$1=({uid:e,type:t="getJsonSchema",onSuccess:o})=>{const r={url:`/uiSchemas:${t}/${e}`},{data:i,loading:n}=useRequest(r,{refreshDeps:[e],onSuccess(l){o&&o(l)}});return{schema:i==null?void 0:i.data,loading:n}},defaultTransform=e=>e,RequestSchemaComponent=e=>{const{noForm:t,onlyRenderProperties:o,hidden:r,scope:i,uid:n,components:l,onSuccess:a,NotFoundPage:c,schemaTransform:u=defaultTransform,onPageNotFind:d}=e,m=o?"getProperties":"getJsonSchema",p=(0,import_react2.useMemo)(()=>(0,import_core.createForm)(),[n]),{schema:h,loading:g}=useRequestSchema$1({uid:n,type:m,onSuccess:C=>{a&&a(C)}}),f=useComponent(c),_=useRemoteCollectionManagerLoading(),v=(0,import_react.useFieldSchema)(),b=(0,import_react2.useMemo)(()=>u(h||{}),[h,u]);return _||g||r?(0,import_jsx_runtime.jsx)(import_antd.Spin,{style:{width:"100%",marginTop:20},delay:LOADING_DELAY}):!h||Object.keys(h).length===0?(d&&d(),f?(0,import_jsx_runtime.jsx)(f,{}):null):t?(0,import_jsx_runtime.jsx)(SchemaComponent,{components:l,scope:i,schema:b,parentSchema:v}):(0,import_jsx_runtime.jsx)(FormProvider,{form:p,children:(0,import_jsx_runtime.jsx)(SchemaComponent,{components:l,scope:i,schema:b,parentSchema:v})})},RemoteSchemaComponent=(0,import_react2.memo)(e=>e.uid?(0,import_jsx_runtime.jsx)(RequestSchemaComponent,x({},e)):null);RemoteSchemaComponent.displayName="RemoteSchemaComponent";const EditableTitle=e=>{const[t,o]=(0,import_react2.useState)(e.title),[r,i]=(0,import_react2.useState)(!1),{refresh:n}=useSchemaTemplateManager();useAPIClient();const{run:l}=useRequest({resource:"uiSchemaTemplates",action:"update",params:{filterByTk:e.filterByTk}},{manual:!0,debounceWait:500,onSuccess(){n()}});return(0,import_jsx_runtime.jsx)("div",{children:r?(0,import_jsx_runtime.jsx)(import_antd.Input,{defaultValue:t,size:"large",onBlur:()=>{i(!1)},onChange:a=>{o(a.target.value),l({filterByTk:e.filterByTk,values:{name:a.target.value}})}}):(0,import_jsx_runtime.jsx)("div",{onClick:()=>{i(!0)},children:t||(0,import_jsx_runtime.jsx)("span",{style:{color:"#bbb"},children:"未命名"})})})},BlockTemplateDetails=()=>{var e,t;const o=useNavigateNoUpdate(),r=(0,import_react_router_dom.useParams)(),i=r==null?void 0:r.key,n=(0,import_react2.useContext)(SchemaComponentContext),l=(0,import_react2.useMemo)(()=>A(x({},n),{designable:!0}),[n]),{data:a,loading:c}=useRequest({resource:"uiSchemaTemplates",action:"get",params:{filterByTk:i}});return c?(0,import_jsx_runtime.jsx)(import_antd.Spin,{}):(0,import_jsx_runtime.jsxs)("div",{children:[(0,import_jsx_runtime.jsx)(import_pro_layout.PageHeader,{style:{backgroundColor:"white"},onBack:()=>{o("/admin/plugins/block-templates")},ghost:!1,title:(0,import_jsx_runtime.jsx)(EditableTitle,{filterByTk:i,title:(e=a==null?void 0:a.data)==null?void 0:e.name})}),(0,import_jsx_runtime.jsx)("div",{style:{margin:"var(--nb-spacing)"},children:(0,import_jsx_runtime.jsx)(SchemaComponentContext.Provider,{value:l,children:(0,import_jsx_runtime.jsx)(RemoteSchemaComponent,{uid:(t=a==null?void 0:a.data)==null?void 0:t.uid})})})]})};class SchemaSettings{constructor(t){R(this,"options"),R(this,"name"),this.options=Object.assign({items:[]},t),this.name=t.name}get items(){return this.options.items}add(t,o){const r=t.split("."),i=A(x({},o),{name:r[r.length-1]});if(r.length===1){const a=this.items.findIndex(c=>c.name===t);a===-1?this.items.push(i):this.items[a]=i;return}const n=r.slice(0,-1).join("."),l=this.get(n);if(l){l.children||(l.children=[]);const a=t.replace(`${l.name}.`,""),c=l.children.findIndex(u=>u.name===a);c===-1?l.children.push(i):l.children[c]=i}}get(t){if(!t)return;const o=t.split(".");let r=this.items;for(let i=0;i<o.length;i++){const n=o[i];if(r=r.find(l=>l.name===n),!r||i===o.length-1)return r;if(r.children)r=r.children;else return}}remove(t){const o=t.split(".");if(o.length===1){const i=this.items.findIndex(n=>n.name===o[0]);i!==-1&&this.items.splice(i,1);return}const r=this.get(o.slice(0,-1).join("."));if(r&&r.children){const i=o[o.length-1],n=r.children.findIndex(l=>l.name===i);n!==-1&&r.children.splice(n,1)}}}class SchemaSettingsManager{constructor(t=[],o){R(this,"schemaSettings",{}),R(this,"actionList",{}),this._schemaSettings=t,this.app=o,this.app=o,this.add(...t)}add(...t){t.forEach(o=>{this.schemaSettings[o.name]=o,Array.isArray(this.actionList[o.name])&&(this.actionList[o.name].forEach(r=>{o[r.type](r.itemName,r.data)}),this.actionList[o.name]=void 0)})}addItem(t,o,r){const i=this.get(t);i?i.add(o,r):(this.actionList[t]||(this.actionList[t]=[]),this.actionList[t].push({type:"add",itemName:o,data:r}))}get(t){return this.schemaSettings[t]}getAll(){return this.schemaSettings}has(t){return!!this.get(t)}remove(t){delete this.schemaSettings[t]}removeItem(t,o){const r=this.get(t);r?r.remove(o):(this.actionList[t]||(this.actionList[t]=[]),this.actionList[t].push({type:"remove",itemName:o}))}}const SchemaSettingItemContext=(0,import_react2.createContext)({});SchemaSettingItemContext.displayName="SchemaSettingItemContext";function useSchemaSettingsItem(){return(0,import_react2.useContext)(SchemaSettingItemContext)}const designerCss$4=({margin:e="-18px -16px",padding:t="18px 16px"}={})=>import_css.css`
239
239
  position: relative;
240
240
  margin: ${e};
241
241
  padding: ${t};
@@ -272,7 +272,7 @@ ${JSON.stringify(q,null,2)}`)},[u,c,a,i,r,P,t,l,n,g,o,f,C,j,y,F,h]),M=(0,import_
272
272
  }
273
273
  }
274
274
  }
275
- `,TableColumnActionBar$1=(0,import_flow_engine.observer)(e=>{const t=useDesigner(),{isInSubTable:o}=useFlag()||{},{designable:r}=useSchemaComponentContext(),{token:i}=useToken$1(),{name:n}=(useBlockContext==null?void 0:useBlockContext())||{};return!r||t.isNullComponent?e.children:(0,import_jsx_runtime.jsx)(SortableItem$1,{className:designerCss$4({margin:`-${i.margin}px -${i.marginXS}px`,padding:`${i.margin}px ${i.marginXS}px`}),children:(0,import_jsx_runtime.jsxs)(BlockContext.Provider,{value:{name:o?n:"taleColumn"},children:[(0,import_jsx_runtime.jsx)(t,{}),e.children]})})},{displayName:"TableColumnActionBar"}),useColumnSchema$1=()=>{const{getField:e}=useCollection_deprecated(),t=useCompile(),o=(0,import_react.useFieldSchema)(),{getCollectionJoinField:r}=useCollectionManager_deprecated(),i=o==null?void 0:o.reduceProperties((l,a)=>isCollectionFieldComponent(a)?a:l,null);if(!i)return{};const n=e(i.name)||r(i==null?void 0:i["x-collection-field"]);return{columnSchema:o,fieldSchema:i,collectionField:n,uiSchema:t(n==null?void 0:n.uiSchema)}},useTableFieldInstanceList=()=>{const e=(0,import_react.useField)(),{fieldSchema:t}=useColumnSchema$1(),o=(0,import_react2.useMemo)(()=>{var r,i;if(!t||!e)return[];const n=(i=e.path)==null?void 0:i.splice(((r=e.path)==null?void 0:r.length)-1,1);return e.form.query(`${n.concat("*."+t.name)}`).map()},[e,t]);return t?o:[]},TableColumnDecorator$1=e=>{var t,o;const r=useDesigner(),i=(0,import_react.useField)(),{fieldSchema:n,uiSchema:l,collectionField:a}=useColumnSchema$1(),{designable:c}=useSchemaComponentContext(),u=useCompile(),{isInSubTable:d}=useFlag()||{},{token:m}=useToken$1(),{name:p}=(useBlockContext==null?void 0:useBlockContext())||{};let h=n==null?void 0:n.required;if(d){const g=(o=i.path)==null?void 0:o.splice(((t=i.path)==null?void 0:t.length)-1,1),f=i.form.query(`${g.concat("*."+n.name)}`).take();h=typeof(f==null?void 0:f.required)=="boolean"?f.required:n==null?void 0:n.required}return(0,import_react2.useEffect)(()=>{i.title||n&&l!=null&&l.title&&(i.title=l==null?void 0:l.title)},[l==null?void 0:l.title]),!c||r.isNullComponent?(0,import_jsx_runtime.jsxs)(CollectionFieldContext.Provider,{value:a,children:[(0,import_jsx_runtime.jsx)(r,{fieldSchema:n,uiSchema:l,collectionField:a}),(0,import_jsx_runtime.jsxs)("span",{role:"button",children:[h&&(0,import_jsx_runtime.jsx)("span",{className:"ant-formily-item-asterisk",children:"*"}),(0,import_jsx_runtime.jsx)("span",{children:(i==null?void 0:i.title)||u(l==null?void 0:l.title)})]})]}):(0,import_jsx_runtime.jsx)(SortableItem$1,{className:designerCss$4({margin:`-${m.margin}px -${m.marginXS}px`,padding:`${m.margin}px ${m.marginXS}px`}),children:(0,import_jsx_runtime.jsx)(CollectionFieldContext.Provider,{value:a,children:(0,import_jsx_runtime.jsxs)(BlockContext.Provider,{value:{name:d?p:"taleColumn"},children:[(0,import_jsx_runtime.jsx)(r,{fieldSchema:n,uiSchema:l,collectionField:a}),(0,import_jsx_runtime.jsxs)("span",{role:"button",children:[h&&(0,import_jsx_runtime.jsx)("span",{className:"ant-formily-item-asterisk",children:"*"}),(0,import_jsx_runtime.jsx)("span",{children:(i==null?void 0:i.title)||u(l==null?void 0:l.title)})]})]})})})},SchemaToolbarContext=(0,import_react2.createContext)({});SchemaToolbarContext.displayName="SchemaToolbarContext";const SchemaToolbarProvider=e=>{const t=e,{children:o}=t,r=te(t,["children"]);return(0,import_jsx_runtime.jsx)(SchemaToolbarContext.Provider,{value:r,children:o})};function useSchemaToolbar(){return(0,import_react2.useContext)(SchemaToolbarContext)}const SchemaToolbarErrorFallback=e=>{const{designable:t}=useDesignable();return t?(0,import_jsx_runtime.jsx)(ErrorFallback.Modal,A(x({},e),{children:(0,import_jsx_runtime.jsx)(SchemaToolbar,{title:`render toolbar error: ${e.error.message}`})})):null},useSchemaToolbarRender=e=>{const{designable:t}=useDesignable(),o=(0,import_react2.useMemo)(()=>{if(e["x-designer"]||e["x-toolbar"])return e["x-designer"]||e["x-toolbar"];if(e["x-settings"])return SchemaToolbar},[e]),r=useComponent(o);return{render(i){return!t||!r?null:(0,import_jsx_runtime.jsx)(import_react_error_boundary.ErrorBoundary,{FallbackComponent:SchemaToolbarErrorFallback,onError:console.error,children:(0,import_jsx_runtime.jsx)(r,x(x({},e["x-toolbar-props"]),i))})},exists:!!r}},generalSettingsItems=[{name:"editFieldTitle",type:"modal",useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),{dn:o}=useDesignable(),r=useCompile(),i=(0,import_react.useField)(),n=(0,import_react.useFieldSchema)(),{getCollectionJoinField:l}=useCollectionManager_deprecated(),{getField:a}=useCollection_deprecated(),c=a(n.name)||l(n["x-collection-field"]);return{title:t("Edit field title"),schema:{type:"object",title:t("Edit field title"),properties:{title:{title:t("Field title"),default:i==null?void 0:i.title,description:`${t("Original field title: ")}${(e=c==null?void 0:c.uiSchema)==null?void 0:e.title}`,"x-decorator":"FormItem","x-component":"Input","x-component-props":{}}}},onSubmit({title:u}){var d;const m=u.trim()===""?(d=c==null?void 0:c.uiSchema)==null?void 0:d.title:u;i.title=r(m),n.title=u,o.emit("patch",{schema:{"x-uid":n["x-uid"],title:n.title}}),o.refresh()}}},useVisible(){const e=(0,import_react.useFieldSchema)(),{getCollectionJoinField:t}=useCollectionManager_deprecated(),{getField:o}=useCollection_deprecated();return!!(o(e.name)||t(e["x-collection-field"]))}},{name:"displayTitle",type:"switch",useComponentProps(){var e,t;const{t:o}=(0,import_react_i18next.useTranslation)(),{dn:r}=useDesignable(),i=(0,import_react.useField)(),n=(0,import_react.useFieldSchema)();return{title:o("Display title"),checked:(t=(e=n["x-decorator-props"])==null?void 0:e.showTitle)!=null?t:!0,onChange(l){n["x-decorator-props"]=n["x-decorator-props"]||{},n["x-decorator-props"].showTitle=l,i.decoratorProps.showTitle=l,r.emit("patch",{schema:{"x-uid":n["x-uid"],"x-decorator-props":A(x({},n["x-decorator-props"]),{showTitle:l})}}),r.refresh()}}}},{name:"editDescription",type:"modal",useComponentProps(){const{t:e}=(0,import_react_i18next.useTranslation)(),{dn:t}=useDesignable(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)();return{title:e("Edit description"),schema:{type:"object",title:e("Edit description"),properties:{description:{default:o==null?void 0:o.description,"x-decorator":"FormItem","x-component":"Input.TextArea","x-component-props":{}}}},onSubmit({description:i}){o.description=i,r.description=i,t.emit("patch",{schema:{"x-uid":r["x-uid"],description:r.description}}),t.refresh()}}},useVisible(){return!(0,import_react.useField)().readPretty}},{name:"editTooltip",type:"modal",useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),{dn:o}=useDesignable(),r=(0,import_react.useField)(),i=(0,import_react.useFieldSchema)();return{title:t("Edit tooltip"),schema:{type:"object",title:t("Edit tooltip"),properties:{tooltip:{default:(e=i==null?void 0:i["x-decorator-props"])==null?void 0:e.tooltip,"x-decorator":"FormItem","x-component":"Input.TextArea","x-component-props":{}}}},onSubmit({tooltip:n}){r.decoratorProps.tooltip=n,i["x-decorator-props"]=i["x-decorator-props"]||{},i["x-decorator-props"].tooltip=n,o.emit("patch",{schema:{"x-uid":i["x-uid"],"x-decorator-props":i["x-decorator-props"]}}),o.refresh()}}},useVisible(){return(0,import_react.useField)().readPretty}},{name:"required",type:"switch",useComponentProps(){const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_react.useField)(),o=(0,import_react.useFieldSchema)(),{dn:r,refresh:i}=useDesignable();return{title:e("Required"),checked:o.required,onChange(n){const l={"x-uid":o["x-uid"]};t.required=n,o.required=n,l.required=n,r.emit("patch",{schema:l}),i()}}},useVisible(){const e=(0,import_react.useField)(),t=(0,import_react.useFieldSchema)(),{required:o=!0}=useSchemaToolbar();return!e.readPretty&&t["x-component"]!=="FormField"&&o}},{name:"style",Component:e=>{const t=A(x({},e),{category:"style"});return(0,import_jsx_runtime.jsx)(SchemaSettingsLinkageRules,x({},t))},useVisible(){return useIsFieldReadPretty()},useComponentProps(){const{name:e}=useCollection(),{linkageRulesProps:t}=useSchemaToolbar();return A(x({},t),{collectionName:e})}}],RemoveConditionContext$1=(0,import_react2.createContext)(null);RemoveConditionContext$1.displayName="RemoveConditionContext";const FilterContext$3=(0,import_react2.createContext)(null);FilterContext$3.displayName="FilterContext";const FilterLogicContext$1=(0,import_react2.createContext)(null);FilterLogicContext$1.displayName="FilterLogicContext";const findOption$2=(e=[],t)=>{var o;let r=t,i;return(o=e==null?void 0:e.forEach)==null||o.call(e,n=>{const l=r.find(a=>a.name===n);l&&(i=l),r=(l==null?void 0:l.children)||[]}),i},useValues$2=()=>{const{name:e}=useCollection_deprecated(),{getCollectionJoinField:t}=useCollectionManager_deprecated(),o=(0,import_react.useField)(),{options:r,collectionName:i,field:n}=(0,import_react2.useContext)(FilterContext$3)||{},l=(0,import_flat.default)(o.value||{}),a=Object.keys(l).shift()||"",c=(0,import_react2.useMemo)(()=>{const[h=""]=a.split(".$");return t(`${i||e}.${h}`)},[e,a]),u=(0,import_react2.useCallback)(()=>{var h,g,f,_;o.value=o.data.dataIndex?import_flat.default.unflatten({[`${(h=o.data.dataIndex)==null?void 0:h.join(".")}.${(f=(g=o.data)==null?void 0:g.operator)==null?void 0:f.value}`]:(_=o.data)==null?void 0:_.value}):{}},[o]);(0,import_react2.useEffect)(()=>{var h;if(o.data=o.data||{},!a||!r)return;const[g="",f=""]=a.split(".$"),[_]=f.split(".",2),v=g.split("."),b=findOption$2(v,r),C=b==null?void 0:b.operators,y=(h=C==null?void 0:C.find)==null?void 0:h.call(C,F=>F.value===`$${_}`);if(o.data.dataIndex=v,(v==null?void 0:v.length)>1){const F=v.concat();F.pop();const S=t(`${e}.${F.join(".")}`);n.collectionName=S==null?void 0:S.target}else n.collectionName=null;o.data.operators=C,o.data.operator=y,o.data.schema=(0,import_shared.merge)(b==null?void 0:b.schema,y==null?void 0:y.schema),o.data.value=(0,import_get.default)((0,import_flat.unflatten)(o.value),`${g}.$${_}`)},[o.path]);const d=(0,import_react2.useCallback)(h=>{var g;const f=findOption$2(h,r),_=(g=f==null?void 0:f.operators)==null?void 0:g[0];o.data=o.data||{},o.data.operators=f==null?void 0:f.operators,o.data.operator=_;const v=(0,import_cloneDeep.default)(f==null?void 0:f.schema),b=(0,import_cloneDeep.default)(_==null?void 0:_.schema);if(o.data.schema=(0,import_shared.merge)(v,b),o.data.dataIndex=h,(h==null?void 0:h.length)>1){const C=h.concat();C.pop();const y=t(`${e}.${C.join(".")}`);n.collectionName=y==null?void 0:y.target}else n.collectionName=null;o.data.value=_!=null&&_.noValue?_.default||!0:void 0,u()},[u,o,r]),m=(0,import_react2.useCallback)(h=>{var g,f,_;const v=(_=(f=(g=o.data)==null?void 0:g.operators)==null?void 0:f.find)==null?void 0:_.call(f,F=>F.value===h);o.data.operator=v;const b=findOption$2(o.data.dataIndex,r),C=(0,import_cloneDeep.default)(b==null?void 0:b.schema),y=(0,import_cloneDeep.default)(v==null?void 0:v.schema);o.data.schema=(0,import_shared.merge)(C,y),o.data.value=v.noValue?v.default||!0:void 0,u()},[u,o.data,r]),p=(0,import_react2.useCallback)(h=>{o.data.value=h,u()},[u,o.data]);return A(x({fields:r},(o==null?void 0:o.data)||{}),{collectionField:c,setDataIndex:d,setOperator:m,setValue:p})},useBlockCollection=()=>{const e=useDataBlockProps();return{name:(e==null?void 0:e.collection)||(e==null?void 0:e.resource)}},useIsSameOrChildCollection=()=>{const{getChildrenCollections:e}=useCollectionManager_deprecated();return(t,o)=>{if(t===o)return!0;const r=e(o);return r==null?void 0:r.some(i=>i.name===t)}},getChildren$2=(e,{schema:t,depth:o,maxDepth:r,loadChildren:i,compile:n},l,a)=>e.map(c=>{const u=!a(c.target,l==null?void 0:l.target);return c.target?o>=r?null:{key:c.name,value:c.name,name:c.name,label:n(c.title),title:n(c.title),disabled:u,isLeaf:!0,field:c,depth:o,loadChildren:i}:{key:c.name,value:c.name,name:c.name,label:n(c.title),title:n(c.title),disabled:u,isLeaf:!0,depth:o}}).filter(Boolean),useContextAssociationFields=({schema:e,maxDepth:t=3,contextCollectionName:o,collectionField:r})=>{const{t:i}=(0,import_react_i18next.useTranslation)(),n=useCompile(),l=useGetFilterOptions(),a=useIsSameOrChildCollection(),c=u=>{var d;if(!((d=u.field)!=null&&d.target))return new Promise(p=>{(0,import_client.error)("Must be set field target"),u.children=[],p(void 0)});const m=u.field.target;return new Promise(p=>{setTimeout(()=>{const h=getChildren$2(l(m).filter(g=>r?["hasOne","hasMany","belongsTo","belongsToMany","belongsToArray"].includes(g.type):!0),{schema:e,depth:u.depth+1,maxDepth:t,loadChildren:c,compile:n},r,a)||[];if(h.length===0){u.disabled=!0,u.children=[],p();return}u.children=h,p()},5)})};return(0,import_react2.useMemo)(()=>({label:i("Table selected records"),value:"$context",key:"$context",isLeaf:!1,field:{target:o},depth:0,loadChildren:c}),[e==null?void 0:e["x-component"]])},useLabelUiSchemaV2=()=>{const e=useCollectionManager();return(t,o)=>{if(!t)return;const r=e==null?void 0:e.getCollectionField(`${t}.${o}`);return r==null?void 0:r.uiSchema}},useLabelUiSchema$1=(e,t)=>{const o=useCollectionManager();if(!e)return;const r=o==null?void 0:o.getCollectionField(`${e}.${t}`);return r==null?void 0:r.uiSchema},getDatePickerLabels$1=e=>{const t=(0,import_client.getDefaultFormat)(e),o=(0,import_client.str2moment)(e.value,e),r=o&&o.isValid()?o.format(t):e.value;return(0,import_shared.isArr)(r)?r.join("~"):r},toArr$2=e=>e?Array.isArray(e)?e:[e]:[],getLabelFormatValue$1=(e,t,o=!1)=>{const r=e==null?void 0:e.enum;if(Array.isArray(r)&&t){const i=toArr$2(t).map(n=>{const l=r.find(a=>a.value===n);return o?import_react2.default.createElement(import_antd.Tag,{color:l==null?void 0:l.color},l==null?void 0:l.label):l==null?void 0:l.label});return o?i:i.join(", ")}switch(e==null?void 0:e["x-component"]){case"DatePicker":return getDatePickerLabels$1(A(x({},e==null?void 0:e["x-component-props"]),{value:t}));default:return t}},getTabFormatValue=(e,t,o)=>{const r=e==null?void 0:e.enum;if(Array.isArray(r)&&t)return toArr$2(t).map(i=>{const n=r.find(l=>l.value===i);return import_react2.default.createElement(import_antd.Tag,{color:o||(n==null?void 0:n.color)},n==null?void 0:n.label)});switch(e==null?void 0:e["x-component"]){case"DatePicker":return import_react2.default.createElement(import_antd.Tag,{color:o},getDatePickerLabels$1(A(x({},e==null?void 0:e["x-component-props"]),{value:t})));default:return import_react2.default.createElement(import_antd.Tag,{color:o},t)}};function flatData$2(e){const t=[];for(let o=0;o<e.length;o++){const r=e[o].children;Array.isArray(r)&&t.push(...flatData$2(r)),t.push(x({},e[o]))}return t}function isSubMode(e){var t,o;const r=((t=e["x-component-props"])==null?void 0:t.mode)||((o=e.componentProps)==null?void 0:o.mode);return["Nester","SubTable","PopoverNester"].includes(r)}const useSpecialCase=()=>{const e=(0,import_react.useForm)(),t=(0,import_react.useFieldSchema)(),{getField:o}=useCollection_deprecated(),{getCollectionField:r}=useCollectionManager_deprecated(),i=(0,import_react2.useMemo)(()=>o(t.name),[t.name,o]),n=(0,import_react2.useCallback)(()=>isSpecialCaseField({collectionField:i,fieldSchema:t,getCollectionField:r}),[i,t,r]),l=(0,import_react2.useCallback)(a=>{const c=getParentFieldSchema(t);if(c){const u=e.query(c.name).take();if(u){const d=import_lodash.default.isEmpty(a)?[]:import_lodash.default.map(transformValue(a,{field:u,subFieldSchema:t}),m=>markRecordAsNew(m));isSubset(d,u.initialValue)||u.setInitialValue(d)}}},[t,e]);return{isSpecialCase:n,setDefaultValue:l}};function getParentFieldSchema(e){for(;e!=null&&e.parent;)if(e=e.parent,isSubMode(e))return e;return e}function isSpecialCaseField({collectionField:e,fieldSchema:t,getCollectionField:o}){if(!t.default||!t.default.includes("$context"))return!1;if(e&&["hasOne","belongsTo"].includes(e.type)&&t){const r=getParentFieldSchema(t);if(r&&r["x-collection-field"]){const i=o(r["x-collection-field"]);if(["hasMany","belongsToMany"].includes(i==null?void 0:i.type))return!0}}return!1}function transformValue(e,t){const{field:o,subFieldSchema:r}=t,i=o.value;let n=null;return Array.isArray(e)?n=e.map(l=>({[r.name]:l})):n=[{[r.name]:e}],import_lodash.default.assignWith([...i],n,(l,a)=>(!l&&a&&(a.__notFromDatabase=!0),import_lodash.default.assign(x({},i[0]),a)))}const useSubTableSpecialCase=({rootField:e,rootSchema:t})=>{const{hasUsedVariable:o}=useHasUsedVariable();(0,import_react2.useEffect)(()=>{if(import_lodash.default.isEmpty(e.value)&&o("$context",t)){const r=e.value,i=[markRecordAsNew({})];e.value=i,setTimeout(()=>{JSON.stringify(e.value)===JSON.stringify(i)&&(e.value=r)})}},[e,t,o])};function isSubset(e,t){if(e.length!==t.length)return!1;for(let o=0;o<e.length;o++){const r=e[o],i=t[o];if(!import_lodash.default.isMatch(import_lodash.default.omitBy(i,import_lodash.default.isNil),import_lodash.default.omitBy(r,import_lodash.default.isNil)))return!1}return!0}const checkSchema=(e,t)=>{if(e["x-decorator"]==="FormItem"){const r=e.default;if(r&&typeof r=="string"&&isVariable$1(r)&&r.includes(t))return!0}let o=!1;return e.mapProperties(r=>{checkSchema(r,t)&&(o=!0)}),o};function useHasUsedVariable(){return{hasUsedVariable:(0,import_react2.useCallback)((e,t)=>checkSchema(t,e),[])}}const BaseVariableContext=import_react2.default.createContext(null),BaseVariableProvider=e=>(0,import_jsx_runtime.jsx)(BaseVariableContext.Provider,{value:e,children:e.children}),getChildren$1=(e,{collectionField:t,uiSchema:o,depth:r,maxDepth:i,noDisabled:n,loadChildren:l,compile:a,isDisabled:c,targetFieldSchema:u,getCollectionField:d,deprecated:m})=>e.map(p=>!p.target||p.target==="chinaRegions"||p.interface==="attachmentURL"?{key:p.name,value:p.name,label:a(p.title),disabled:m||(n?!1:c({option:p,collectionField:t,uiSchema:o,targetFieldSchema:u,getCollectionField:d})),isLeaf:!0,depth:r,operators:p==null?void 0:p.operators,schema:p==null?void 0:p.schema}:r>=i?null:{key:p.name,value:p.name,label:a(p.title),isLeaf:!1,field:p,depth:r,disabled:m||(n?!1:c({option:p,collectionField:t,uiSchema:o,targetFieldSchema:u,getCollectionField:d})),loadChildren:l}).filter(Boolean),getLabelWithTooltip=(e,t)=>t?(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{placement:"left",title:t,zIndex:9999,children:(0,import_jsx_runtime.jsx)("span",{style:{position:"relative",display:"inline-block",marginLeft:-14,paddingLeft:14,marginRight:-80,paddingRight:80,zIndex:1},children:e})}):e,useBaseVariable=({collectionField:e,uiSchema:t,targetFieldSchema:o,maxDepth:r=3,name:i,title:n,collectionName:l,noChildren:a=!1,noDisabled:c=!0,dataSource:u,returnFields:d=g=>g,deprecated:m,tooltip:p,operators:h=[]})=>{const g=useCompile(),f=useGetFilterOptions(),{isDisabled:_}=(0,import_react2.useContext)(BaseVariableContext)||{},{isLeftVariable:v}=(0,import_react2.useContext)(FlagContext)||{},b=useCollectionManager(),C=y=>{var F;if(!((F=y.field)!=null&&F.target))return Promise.resolve(void 0);const S=y.field.target;return new Promise(P=>{setTimeout(()=>{var j;const I=(v&&S==="attachments"&&g((j=y.field)==null?void 0:j.children)||getChildren$1(d(f(S,u,!0),y),{collectionField:e,uiSchema:t,targetFieldSchema:o,depth:y.depth+1,maxDepth:r,noDisabled:c,loadChildren:C,compile:g,isDisabled:_||isDisabledDefault,getCollectionField:b.getCollectionField,deprecated:m})||[]).sort((M,E)=>M.isLeaf&&!E.isLeaf?-1:!M.isLeaf&&E.isLeaf?1:0).sort((M,E)=>M.disabled&&!E.disabled?1:!M.disabled&&E.disabled?-1:0);if(I.length===0){y.disabled=!0,y.isLeaf=!0,P();return}y.children=I,P()},5)})};return(0,import_react2.useMemo)(()=>({label:getLabelWithTooltip(n,p),value:i,key:i,isLeaf:a,field:{target:l},depth:0,loadChildren:C,children:[],disabled:!!m,deprecated:m,operators:h}),[t==null?void 0:t["x-component"]])};function isDisabledDefault(e){var t,o;const{option:r,collectionField:i,uiSchema:n,targetFieldSchema:l,getCollectionField:a}=e;return!n||!i?!0:i.interface==="json"?!1:!i.target&&["hasMany","belongsToMany"].includes(r.type)?!0:!i.target&&["hasOne","belongsTo"].includes(r.type)||r.target&&isSpecialCaseField({collectionField:i,fieldSchema:l,getCollectionField:a})?!1:["hasOne","belongsTo"].includes(i.type)&&["hasMany","belongsToMany"].includes(r.type)?!0:["hasOne","belongsTo"].includes(i.type)&&["hasOne","belongsTo"].includes(r.type)||["hasMany","belongsToMany"].includes(i.type)&&r.target?!1:["input","markdown","richText","textarea","username"].includes(i.interface)?!["string","number"].includes((t=r.schema)==null?void 0:t.type):i.interface&&r.interface?i.interface!==r.interface:(n==null?void 0:n["x-component"])!==((o=r.schema)==null?void 0:o["x-component"])}const CurrentRecordContext=(0,import_react2.createContext)(null),CurrentRecordContextProvider=e=>{const t=(0,import_react2.useMemo)(()=>({recordData:e.recordData,collectionName:e.collectionName}),[e.recordData,e.collectionName]);return(0,import_jsx_runtime.jsxs)(CurrentRecordContext.Provider,{value:t,children:[" ",e.children," "]})},useCurrentRecord=()=>(0,import_react2.useContext)(CurrentRecordContext),useCurrentRecordContext=()=>{const e=useCurrentRecord(),{name:t}=useBlockContext()||{},o=useCollection(),r=useCollectionRecordData(),{formRecord:i,collectionName:n}=useFormBlockContext();let l=i!=null&&i.data?n:o==null?void 0:o.name;return l=(e==null?void 0:e.collectionName)||l,{currentRecordCtx:(e==null?void 0:e.recordData)||(i==null?void 0:i.data)||r,shouldDisplayCurrentRecord:!import_lodash.default.isEmpty(import_lodash.default.omit(r,["__collectionName","__parent"]))||!!(i!=null&&i.data)||t==="taleColumn",collectionName:l,blockType:t,dataSource:o==null?void 0:o.dataSource}},useCurrentRecordVariable=(e={})=>{const{t}=(0,import_react_i18next.useTranslation)(),{currentRecordCtx:o,shouldDisplayCurrentRecord:r,collectionName:i,blockType:n,dataSource:l}=useCurrentRecordContext();return{currentRecordSettings:useBaseVariable({collectionField:e.collectionField,uiSchema:e.schema,name:"$nRecord",title:t("Current record"),collectionName:i,noDisabled:e.noDisabled,targetFieldSchema:e.targetFieldSchema,deprecated:n==="form"&&!r,tooltip:n==="form"?t('This variable has been deprecated and can be replaced with "Current form"'):"",dataSource:l}),currentRecordCtx:o,shouldDisplayCurrentRecord:r,collectionName:i}},SettingsMenuProvider=e=>SelectWithTitle,DropdownVisibleContext=(0,import_react2.createContext)(null);DropdownVisibleContext.displayName="DropdownVisibleContext";const CurrentUserContext=(0,import_react2.createContext)(null);CurrentUserContext.displayName="CurrentUserContext";const useCurrentUserContext=()=>{const e=(0,import_flow_engine.useFlowEngine)(),t=(0,import_react2.useContext)(CurrentUserContext);return!t&&e?{data:{data:e.context.user}}:t},useIsLoggedIn=()=>{var e;const t=(0,import_react2.useContext)(CurrentUserContext);return!!((e=t==null?void 0:t.data)!=null&&e.data)},useCurrentRoles=()=>{var e;const{allowAnonymous:t}=useACLRoleContext(),{data:o}=useCurrentUserContext()||{},r=useCompile();return(0,import_react2.useMemo)(()=>{var i;const n=(((i=o==null?void 0:o.data)==null?void 0:i.roles)||[]).map(({name:l,title:a})=>({name:l,title:r(a)}));return t&&n.push({title:"Anonymous",name:"anonymous"}),n},[t,(e=o==null?void 0:o.data)==null?void 0:e.roles,r])},CurrentUserProvider=e=>{const t=useAPIClient(),o=useApp(),r=(0,import_react_router_dom.useNavigate)(),i=(0,import_react_router_dom.useLocation)(),n=useRequest(()=>t.request({url:"/auth:check",skipNotify:!0,skipAuth:!0}).then(a=>{var c,u,d;((u=(c=a==null?void 0:a.data)==null?void 0:c.data)==null?void 0:u.id)==null&&r("/signin?redirect="+i.pathname+i.search);const m=(0,import_flow_engine.createCollectionContextMeta)(()=>{var p;return(p=o.flowEngine.context.dataSourceManager.getDataSource("main"))==null?void 0:p.getCollection("users")},o.flowEngine.translate("Current user"));return m.sort=1e3,o.flowEngine.context.defineProperty("user",{value:(d=a==null?void 0:a.data)==null?void 0:d.data,resolveOnServer:!0,meta:m}),a==null?void 0:a.data})),{render:l}=useAppSpin();return n.loading?l():(0,import_jsx_runtime.jsx)(CurrentUserContext.Provider,{value:n,children:e.children})},CurrentUserSettingsMenuContext=(0,import_react2.createContext)(null);CurrentUserSettingsMenuContext.displayName="CurrentUserSettingsMenuContext";const useCurrentUserSettingsMenu=()=>{const{menuItems:e}=(0,import_react2.useContext)(CurrentUserSettingsMenuContext)||{},t=(0,import_react2.useCallback)(()=>e.current,[e]),o=(0,import_react2.useCallback)((r,i)=>{let n;if(i&&(r._options=i),(n=e.current.findIndex(a=>a.key===r.key))!==-1){e.current[n]=r,e.current=[...e.current];return}if(i){if(i.before){const a=e.current.findIndex(c=>c.key===i.before);e.current.splice(a,0,r);return}if(i.after){const a=e.current.findIndex(c=>c.key===i.after);e.current.splice(a+1,0,r);return}}const l=e.current;e.current=l.filter(a=>{var c,u;return r.key!==((c=a._options)==null?void 0:c.before)&&r.key!==((u=a._options)==null?void 0:u.after)}),e.current.push(...l.filter(a=>{var c;return((c=a._options)==null?void 0:c.before)===r.key})),e.current.push(r),e.current.push(...l.filter(a=>{var c;return((c=a._options)==null?void 0:c.after)===r.key}))},[e]);if(!e)throw(0,import_client.error)("CurrentUser: You should use `CurrentUserSettingsMenuProvider` in the root of your app."),new Error("CurrentUser: You should use `CurrentUserSettingsMenuProvider` in the root of your app.");return{getMenuItems:t,addMenuItem:o}},CurrentUserSettingsMenuProvider=({children:e})=>{const t=(0,import_react2.useRef)([]),o=(0,import_react2.useMemo)(()=>({menuItems:t}),[t]);return(0,import_jsx_runtime.jsx)(CurrentUserSettingsMenuContext.Provider,{value:o,children:e})},useUserVariable=({collectionField:e,uiSchema:t,noDisabled:o,targetFieldSchema:r,maxDepth:i=3})=>{const{t:n}=(0,import_react_i18next.useTranslation)();return useBaseVariable({collectionField:e,uiSchema:t,maxDepth:i,name:"$user",title:n("Current user"),collectionName:"users",dataSource:DEFAULT_DATA_SOURCE_KEY,noDisabled:o,targetFieldSchema:r})},useCurrentUserVariable=({collectionField:e,uiSchema:t,noDisabled:o,targetFieldSchema:r,maxDepth:i=3}={})=>{var n;const{t:l}=(0,import_react_i18next.useTranslation)(),a=useCurrentUserContext();return{currentUserSettings:useBaseVariable({collectionField:e,uiSchema:t,maxDepth:i,name:"$user",title:l("Current user"),collectionName:"users",noDisabled:o,targetFieldSchema:r,dataSource:DEFAULT_DATA_SOURCE_KEY}),currentUserCtx:(n=a==null?void 0:a.data)==null?void 0:n.data}},useAPITokenVariable=({noDisabled:e}={})=>{var t;const o=useAPIClient();return{apiTokenSettings:useBaseVariable({name:"$nToken",title:"API token",noDisabled:e,noChildren:!0,operators:string}),apiTokenCtx:(t=o.auth)==null?void 0:t.token}},popupSchema={type:"void","x-component":"Action.Container","x-action":"view",title:'{{ t("View record") }}',"x-component-props":{className:"nb-action-popup"},properties:{tabs:{type:"void","x-component":"Tabs","x-component-props":{},"x-initializer":"popup:addTab",properties:{tab1:{type:"void",title:'{{t("Details")}}',"x-component":"Tabs.TabPane","x-designer":"Tabs.Designer","x-component-props":{},properties:{grid:{type:"void","x-component":"Grid","x-initializer":"popup:common:addBlock",properties:{}}}}}}}},useInsertSchema=()=>{const e=(0,import_react.useFieldSchema)(),{insertAfterBegin:t}=useDesignable();return(0,import_react2.useCallback)(o=>{e.reduceProperties((r,i)=>i["x-component"]==="Action.Container"?i:r,null)||t((0,import_lodash.cloneDeep)(o))},[e,t])},filterProperties=e=>e["x-component"]==="Action.Container",FieldLink=e=>{const t=e,{WrappedComponent:o}=t,r=te(t,["WrappedComponent"]),i=(0,import_react.useFieldSchema)(),{openPopup:n}=usePopupUtils(),l=(0,import_react2.useRef)(!1),a=useInsertSchema(),c=(0,import_react2.useRef)(i);c.current=i;const u=(0,import_react2.useRef)(a);u.current=a;const d=(0,import_react2.useRef)(n);d.current=n;const m=(0,import_react2.useCallback)(()=>c.current,[]),p=(0,import_react2.useCallback)(()=>{c.current.properties||(u.current(popupSchema),l.current=!0),l.current?(setTimeout(()=>{d.current({customActionSchema:m()})}),l.current=!1):c.current.properties&&d.current()},[m]),h=(0,import_react2.useMemo)(()=>(0,import_lodash.debounce)(p,600,{leading:!0,trailing:!1}),[p]);return(0,import_react2.useEffect)(()=>()=>{h.cancel()},[h]),(0,import_jsx_runtime.jsx)("a",{onClick:h,children:(0,import_jsx_runtime.jsx)(o,x({},r))})};function withPopupWrapper(e){return t=>{const[o,r]=(0,import_react2.useState)(!1),[i,n]=(0,import_react2.useState)(!1),l=useCollection(),a=useActionContext(),c=(0,import_react.useField)(),u=(0,import_react.useFieldSchema)(),{enableLink:d,openMode:m,openSize:p}=(u==null?void 0:u["x-component-props"])||{},{visibleWithURL:h,setVisibleWithURL:g}=usePopupUtils(),f=(0,import_react2.useCallback)(b=>{r==null||r(b),g==null||g(b)},[g]),_=(0,import_react2.useRef)(u);_.current=u;const{setSubmitted:v}=a;return d?(0,import_jsx_runtime.jsx)(PopupVisibleProvider,{visible:!1,children:(0,import_jsx_runtime.jsxs)(ActionContextProvider,{button:(0,import_jsx_runtime.jsx)(e,x({},t)),visible:o||h,setVisible:f,formValueChanged:i,setFormValueChanged:n,openMode:m,openSize:p,containerRefKey:"field-popup",fieldSchema:u,setSubmitted:v,children:[(0,import_jsx_runtime.jsx)(CollectionProvider,{name:l.name,children:(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{children:(0,import_jsx_runtime.jsx)(VariablePopupRecordProvider,{children:(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{onlyRenderProperties:!0,basePath:c==null?void 0:c.address,schema:u,filterProperties})})})}),(0,import_jsx_runtime.jsx)(FieldLink,A(x({},t),{WrappedComponent:e}))]})}):(0,import_jsx_runtime.jsx)(e,x({},t))}}const ReadPretty$d=()=>null;ReadPretty$d.DatePicker=function(e){const{value:t,picker:o="date"}=e,r=(0,import_builtins.usePrefixCls)("description-date-picker",e);if(!t)return(0,import_jsx_runtime.jsx)("div",{});const i=()=>{const n=(0,import_client.getDefaultFormat)(e),l=(0,import_client.str2moment)(t,e),a=import_dayjs.default.isDayjs(l)?l.format(n):"";return(0,import_shared.isArr)(a)?a.join("~"):a};return(0,import_jsx_runtime.jsx)("div",{className:(0,import_classnames.default)(r,e.className),children:i()})};ReadPretty$d.DateRangePicker=function(e){const t=(0,import_builtins.usePrefixCls)("description-text",e),o=(0,import_client.getDefaultFormat)(e),r=()=>{const i=(0,import_client.str2moment)(e.value,e);if(!i)return"";const n=i.map(l=>l.format(o));return(0,import_shared.isArr)(n)?n.join("~"):n};return(0,import_jsx_runtime.jsx)("div",{className:(0,import_classnames.default)(t,e.className),style:e.style,children:r()})};ReadPretty$d.DatePicker=withPopupWrapper(ReadPretty$d.DatePicker);const DatePickerContext=import_react2.default.createContext({utc:!0}),useDatePickerContext=()=>import_react2.default.useContext(DatePickerContext),DatePickerProvider=DatePickerContext.Provider,InternalDatePicker=(0,import_react.connect)(import_antd.DatePicker,(0,import_react.mapProps)(mapDatePicker()),(0,import_react.mapReadPretty)(ReadPretty$d.DatePicker)),InternalRangePicker=(0,import_react.connect)(import_antd.DatePicker.RangePicker,(0,import_react.mapProps)(mapRangePicker()),(0,import_react.mapReadPretty)(ReadPretty$d.DateRangePicker)),DatePicker=e=>{const{utc:t=!0}=useDatePickerContext(),o=Array.isArray(e.value)?e.value[0]:e.value,{parseVariable:r}=useVariables$1()||{},i=useLocalVariables$1(),[n,l]=(0,import_react2.useState)(null),[a,c]=(0,import_react2.useState)(null),u=(0,import_react2.useRef)(null);(0,import_react2.useEffect)(()=>(u.current&&u.current(),u.current=(0,import_reactive.autorun)(()=>{d()}),()=>{u.current()}),[e._maxDate,e._minDate,i,r]);const d=()=>L(void 0,null,function*(){let p=e._minDate?Promise.resolve((0,import_dayjs.default)(e._minDate)):Promise.resolve(null),h=e._maxDate?Promise.resolve((0,import_dayjs.default)(e._maxDate)):Promise.resolve(null);isVariable$1(e._maxDate)&&(h=r(e._maxDate,i).then(C=>(0,import_dayjs.default)(Array.isArray(C.value)?(0,import_lodash.last)(C.value):C.value))),isVariable$1(e._minDate)&&(p=r(e._minDate,i).then(C=>(0,import_dayjs.default)(Array.isArray(C.value)?(0,import_lodash.first)(C.value):C.value)));const[g,f]=yield Promise.all([p,h]),_=Array.from({length:60},(C,y)=>y),v=C=>{if(!import_dayjs.default.isDayjs(C))return!1;const y=g?g.startOf("day"):null,F=f?f.endOf("day"):null;return!!(y&&C.startOf("day").isBefore(y)||F&&C.startOf("day").isAfter(F))},b=C=>{if(!C||!g&&!f)return{disabledHours:()=>[],disabledMinutes:()=>[],disabledSeconds:()=>[]};const y=C,F=g&&y.isSame(g,"day"),S=f&&y.isSame(f,"day");return{disabledHours:()=>{const P=[];if(F)for(let j=0;j<g.hour();j++)P.push(j);if(S)for(let j=f.hour()+1;j<24;j++)P.push(j);return P},disabledMinutes:P=>F&&P===g.hour()?_.filter(j=>j<g.minute()):S&&P===f.hour()?_.filter(j=>j>f.minute()):[],disabledSeconds:(P,j)=>F&&P===g.hour()&&j===g.minute()?_.filter(I=>I<g.second()):S&&P===f.hour()&&j===f.minute()?_.filter(I=>I>f.second()):[]}};l(()=>v),c(()=>b)}),m=A(x({utc:t},e),{disabledDate:n,disabledTime:a,showTime:e.showTime?{defaultValue:(0,import_dayjs.default)("00:00:00","HH:mm:ss")}:!1});return(0,import_jsx_runtime.jsx)(InternalDatePicker,A(x({},m),{value:o}))};DatePicker.ReadPretty=ReadPretty$d.DatePicker;DatePicker.RangePicker=function(e){const{value:t,picker:o="date",format:r,showTime:i,timeFormat:n}=e,{t:l}=(0,import_react_i18next.useTranslation)(),a=(0,import_react.useFieldSchema)(),c=(0,import_react.useField)(),{utc:u=!0}=useDatePickerContext(),d=getDateRanges(),m=useCompile(),p=!(a!=null&&a["x-filter-operator"]),h=[{label:l("Today"),value:d.today},{label:l("Last week"),value:d.lastWeek},{label:l("This week"),value:d.thisWeek},{label:l("Next week"),value:d.nextWeek},{label:l("Last month"),value:d.lastMonth},{label:l("This month"),value:d.thisMonth},{label:l("Next month"),value:d.nextMonth},{label:l("Last quarter"),value:d.lastQuarter},{label:l("This quarter"),value:d.thisQuarter},{label:l("Next quarter"),value:d.nextQuarter},{label:l("Last year"),value:d.lastYear},{label:l("This year"),value:d.thisYear},{label:l("Next year"),value:d.nextYear},{label:l("Last 7 days"),value:d.last7Days},{label:l("Next 7 days"),value:d.next7Days},{label:l("Last 30 days"),value:d.last30Days},{label:l("Next 30 days"),value:d.next30Days},{label:l("Last 90 days"),value:d.last90Days},{label:l("Next 90 days"),value:d.next90Days}],g=t?inferPickerType(t==null?void 0:t[0],o):o,f=(0,import_client.getPickerFormat)(g)||r,_=A(x({utc:u,presets:h},e),{format:(0,import_client.getDateTimeFormat)(g,f,i,n),picker:g,showTime:i?{defaultValue:[(0,import_dayjs.default)("00:00:00","HH:mm:ss"),(0,import_dayjs.default)("23:59:59","HH:mm:ss")]}:!1}),[v,b]=(0,import_react2.useState)(_);return p?(0,import_jsx_runtime.jsxs)(import_antd.Space.Compact,{children:[(0,import_jsx_runtime.jsx)(import_antd.Select,{role:"button","data-testid":"select-picker",style:{width:"100px"},popupMatchSelectWidth:!1,defaultValue:g,options:m([{label:l("Date"),value:"date"},{label:l("Month"),value:"month"},{label:l("Quarter"),value:"quarter"},{label:l("Year"),value:"year"}]),onChange:C=>{const y=(0,import_client.getPickerFormat)(C),F=(0,import_client.getDateTimeFormat)(C,y,i,n);c==null||c.setComponentProps({picker:C,format:y}),_.picker=C,_.format=F,b(_),a&&(a["x-component-props"]=A(x({},e),{picker:C,format:F})),c&&(c.value=void 0)}}),(0,import_jsx_runtime.jsx)(InternalRangePicker,A(x({},v),{value:t}))]}):(0,import_jsx_runtime.jsx)(InternalRangePicker,x({},_))};function toLocalNaiveISOString(e,t){return e&&e.endsWith("Z")?(0,import_dayjs.default)(e).format(t):e}DatePicker.FilterWithPicker=function(e){const{picker:t="date",format:o,showTime:r,timeFormat:i}=e,n=isMobile(),{utc:l=!0}=useDatePickerContext(),a=Array.isArray(e.value)?e.value[0]:e.value,c=(0,import_react.useFieldSchema)(),u=a?inferPickerType(a,t):t,[d,m]=(0,import_react2.useState)(u),p=(0,import_client.getPickerFormat)(u)||o,{t:h}=(0,import_react_i18next.useTranslation)(),g=A(x({utc:l,inputReadOnly:n},e),{underFilter:!0,showTime:r?{defaultValue:(0,import_dayjs.default)("00:00:00","HH:mm:ss")}:!1,format:(0,import_client.getDateTimeFormat)(d,p,r,i),picker:d,onChange:b=>{e.onChange(void 0),setTimeout(()=>{e.onChange(b)})}}),f=(0,import_react.useField)(),[_,v]=(0,import_react2.useState)(g);return(0,import_jsx_runtime.jsxs)(import_antd.Space.Compact,{style:{width:"100%"},children:[(0,import_jsx_runtime.jsx)(import_antd.Select,{role:"button","data-testid":"select-picker",style:{width:"100px"},popupMatchSelectWidth:!1,value:d,options:[{label:h("Date"),value:"date"},{label:h("Month"),value:"month"},{label:h("Quarter"),value:"quarter"},{label:h("Year"),value:"year"}],onChange:b=>{m(b);const C=(0,import_client.getPickerFormat)(b),y=(0,import_client.getDateTimeFormat)(b,C,r,i);f==null||f.setComponentProps({picker:b,format:C}),g.picker=b,g.format=y,v(g),c!=null&&c["x-component-props"]&&(c["x-component-props"]=A(x({},e),{picker:b,format:y})),f&&(f.value=null)}}),(0,import_jsx_runtime.jsx)(InternalDatePicker,A(x({},_),{value:toLocalNaiveISOString(a,(0,import_client.getDateTimeFormat)(d,p,r,i))}))]})};const useDateVariable=({operator:e,schema:t,noDisabled:o})=>{const{t:r}=(0,import_react_i18next.useTranslation)(),i=(e==null?void 0:e.value)||"",n=o?!1:!["DatePicker","DatePicker.RangePicker"].includes(t==null?void 0:t["x-component"]),l=[{key:"now",value:"now",label:r("Current time"),disabled:o?!1:(t==null?void 0:t["x-component"])!=="DatePicker"||i==="$dateBetween",operators:datetime,schema:{}},{key:"dayBeforeYesterday",value:"dayBeforeYesterday",label:r("Day before yesterday"),disabled:n,operators:datetime},{key:"yesterday",value:"yesterday",label:r("Yesterday"),disabled:n,operators:datetime},{key:"today",value:"today",label:r("Today"),disabled:n,operators:datetime},{key:"tomorrow",value:"tomorrow",label:r("Tomorrow"),disabled:n,operators:datetime},{key:"lastIsoWeek",value:"lastIsoWeek",label:r("Last week"),disabled:n,operators:datetime},{key:"thisIsoWeek",value:"thisIsoWeek",label:r("This week"),disabled:n,operators:datetime},{key:"nextIsoWeek",value:"nextIsoWeek",label:r("Next week"),disabled:n,operators:datetime},{key:"lastMonth",value:"lastMonth",label:r("Last month"),disabled:n,operators:datetime},{key:"thisMonth",value:"thisMonth",label:r("This month"),disabled:n,operators:datetime},{key:"nextMonth",value:"nextMonth",label:r("Next month"),disabled:n,operators:datetime},{key:"lastQuarter",value:"lastQuarter",label:r("Last quarter"),disabled:n,operators:datetime},{key:"thisQuarter",value:"thisQuarter",label:r("This quarter"),disabled:n,operators:datetime},{key:"nextQuarter",value:"nextQuarter",label:r("Next quarter"),disabled:n,operators:datetime},{key:"lastYear",value:"lastYear",label:r("Last year"),disabled:n,operators:datetime},{key:"thisYear",value:"thisYear",label:r("This year"),disabled:n,operators:datetime},{key:"nextYear",value:"nextYear",label:r("Next year"),disabled:n,operators:datetime},{key:"last7Days",value:"last7Days",label:r("Last 7 days"),disabled:n,operators:datetime},{key:"next7Days",value:"next7Days",label:r("Next 7 days"),disabled:n,operators:datetime},{key:"last30Days",value:"last30Days",label:r("Last 30 days"),disabled:n,operators:datetime},{key:"next30Days",value:"next30Days",label:r("Next 30 days"),disabled:n,operators:datetime},{key:"last90Days",value:"last90Days",label:r("Last 90 days"),disabled:n,operators:datetime},{key:"next90Days",value:"next90Days",label:r("Next 90 days"),disabled:n,operators:datetime}],a=(0,import_react2.useMemo)(()=>({label:r("Date variables"),value:"$nDate",key:"$nDate",disabled:l.every(c=>c.disabled),children:l}),[t==null?void 0:t["x-component"]]);return t?a:null},useDatetimeVariableContext=()=>{const{utc:e=!0}=useDatePickerContext();return{datetimeCtx:(0,import_react2.useMemo)(()=>getDateRanges({shouldBeString:!0,utc:e}),[e])}},useDatetimeVariable=({operator:e,schema:t,noDisabled:o,targetFieldSchema:r}={})=>{const{t:i}=(0,import_react_i18next.useTranslation)(),{getOperator:n}=useOperators(),{collectionField:l}=useFlag(),a=(0,import_react2.useMemo)(()=>{const u=(e==null?void 0:e.value)||n(r==null?void 0:r.name)||"",d=o?!1:!["DatePicker.RangePicker"].includes(t==null?void 0:t["x-component"])&&!u,m=[{key:"now",value:"now",label:i("Current time"),disabled:o?!1:(t==null?void 0:t["x-component"])!=="DatePicker"||u==="$dateBetween",operators:datetime},{key:"dayBeforeYesterday",value:"dayBeforeYesterday",label:i("Day before yesterday"),disabled:d,operators:datetime},{key:"yesterday",value:"yesterday",label:i("Yesterday"),disabled:d,operators:datetime},{key:"today",value:"today",label:i("Today"),disabled:d,operators:datetime},{key:"tomorrow",value:"tomorrow",label:i("Tomorrow"),disabled:d,operators:datetime},{key:"lastIsoWeek",value:"lastIsoWeek",label:i("Last week"),disabled:d,operators:datetime},{key:"thisIsoWeek",value:"thisIsoWeek",label:i("This week"),disabled:d,operators:datetime},{key:"nextIsoWeek",value:"nextIsoWeek",label:i("Next week"),disabled:d,operators:datetime},{key:"lastMonth",value:"lastMonth",label:i("Last month"),disabled:d,operators:datetime},{key:"thisMonth",value:"thisMonth",label:i("This month"),disabled:d,operators:datetime},{key:"nextMonth",value:"nextMonth",label:i("Next month"),disabled:d,operators:datetime},{key:"lastQuarter",value:"lastQuarter",label:i("Last quarter"),disabled:d,operators:datetime},{key:"thisQuarter",value:"thisQuarter",label:i("This quarter"),disabled:d,operators:datetime},{key:"nextQuarter",value:"nextQuarter",label:i("Next quarter"),disabled:d,operators:datetime},{key:"lastYear",value:"lastYear",label:i("Last year"),disabled:d,operators:datetime},{key:"thisYear",value:"thisYear",label:i("This year"),disabled:d,operators:datetime},{key:"nextYear",value:"nextYear",label:i("Next year"),disabled:d,operators:datetime},{key:"last7Days",value:"last7Days",label:i("Last 7 days"),disabled:d,operators:datetime},{key:"next7Days",value:"next7Days",label:i("Next 7 days"),disabled:d,operators:datetime},{key:"last30Days",value:"last30Days",label:i("Last 30 days"),disabled:d,operators:datetime},{key:"next30Days",value:"next30Days",label:i("Next 30 days"),disabled:d,operators:datetime},{key:"last90Days",value:"last90Days",label:i("Last 90 days"),disabled:d,operators:datetime},{key:"next90Days",value:"next90Days",label:i("Next 90 days"),disabled:d,operators:datetime}];return{label:i(l?"Date variables(Deprecated)":"Date variables"),value:"$nDate",key:"$nDate",disabled:m.every(p=>p.disabled)||l,children:m}},[t==null?void 0:t["x-component"],r]),{datetimeCtx:c}=useDatetimeVariableContext();return{datetimeSettings:a,datetimeCtx:c}},useExactDateVariableContext=()=>({exactDateTimeCtx:(0,import_react2.useMemo)(()=>getDateExact(),[])}),useExactDateVariable=({schema:e,targetFieldSchema:t}={})=>{var o;const{collectionField:r}=useFlag(),{dateOnly:i,utc:n,accuracy:l,picker:a}=((o=r==null?void 0:r.uiSchema)==null?void 0:o["x-component-props"])||{},{t:c}=(0,import_react_i18next.useTranslation)(),u=(0,import_react2.useMemo)(()=>{const m=h=>{if(!a){if(h==="now")return"nowLocal";if(h==="today")return"todayDate";if(h==="yesterday")return"yesterdayDate";if(h==="tomorrow")return"tomorrowDate"}return i?h==="now"?null:`${h}Date`:`${h}${n||l?"Utc":"Local"}`},p=[{key:"now",value:m("now"),label:c("Now"),operators:datetime},{key:"today",value:m("today"),label:c("Today"),operators:datetime},{key:"yesterday",value:m("yesterday"),label:c("Yesterday"),operators:datetime},{key:"tomorrow",value:m("tomorrow"),label:c("Tomorrow"),operators:datetime}].filter(h=>h.value);return{label:c("Date variables"),value:"$nExactDate",key:"$nExactDate",children:p}},[e==null?void 0:e["x-component"],t]),{exactDateTimeCtx:d}=useExactDateVariableContext();return{exactDateTimeSettings:u,exactDateTimeCtx:d,shouldDisplayExactDate:!!r}},useCurrentFormContext=({form:e}={})=>{const{form:t}=useFormBlockContext(),{isVariableParsedInOtherContext:o}=useFlag(),{name:r}=(useBlockContext==null?void 0:useBlockContext())||{},i=e||t;return{currentFormCtx:i==null?void 0:i.values,shouldDisplayCurrentForm:["form","filter-form"].includes(r)&&i&&!i.readPretty&&!o}},useCurrentFormVariable=({collectionField:e,schema:t,noDisabled:o,targetFieldSchema:r,form:i}={})=>{const{currentFormCtx:n,shouldDisplayCurrentForm:l}=useCurrentFormContext({form:i}),{t:a}=(0,import_react_i18next.useTranslation)(),{collectionName:c}=useFormBlockContext(),u=useCollection(),d=useDataSource();return{currentFormSettings:useBaseVariable({collectionField:e,uiSchema:t,targetFieldSchema:r,maxDepth:4,name:"$nForm",title:a("Current form"),collectionName:c||(u==null?void 0:u.name),noDisabled:o,dataSource:d==null?void 0:d.key,returnFields:(m,p)=>m}),currentFormCtx:n,shouldDisplayCurrentForm:l}},useCurrentObjectContext=()=>{const{isInSubForm:e,isInSubTable:t}=useFlag()||{},{formValue:o,collection:r}=useSubFormValue();return{shouldDisplayCurrentObject:e||t,currentObjectCtx:o,collectionOfCurrentObject:r}},useCurrentObjectVariable=({collectionField:e,schema:t,noDisabled:o,targetFieldSchema:r}={})=>{const i=useCollection(),{t:n}=(0,import_react_i18next.useTranslation)(),{shouldDisplayCurrentObject:l,currentObjectCtx:a,collectionOfCurrentObject:c}=useCurrentObjectContext(),u=useBaseVariable({collectionField:e,uiSchema:t,targetFieldSchema:r,maxDepth:4,name:"$iteration",title:n("Current object"),collectionName:(c==null?void 0:c.name)||(i==null?void 0:i.name),noDisabled:o,dataSource:i==null?void 0:i.dataSource,returnFields:(d,m)=>d});return{shouldDisplayCurrentObject:l,currentObjectCtx:a,currentObjectSettings:u}},useParentObjectContext=()=>{const{parent:e}=useSubFormValue(),{value:t,collection:o}=e||{},{isInSubForm:r,isInSubTable:i}=useFlag()||{};return{shouldDisplayParentObject:(r||i)&&!!o,parentObjectCtx:t,collectionName:o==null?void 0:o.name,dataSource:o==null?void 0:o.dataSource}},useParentObjectVariable=({collectionField:e,schema:t,noDisabled:o,targetFieldSchema:r}={})=>{const{t:i}=(0,import_react_i18next.useTranslation)(),{shouldDisplayParentObject:n,parentObjectCtx:l,collectionName:a,dataSource:c}=useParentObjectContext();return{parentObjectSettings:useBaseVariable({collectionField:e,uiSchema:t,targetFieldSchema:r,maxDepth:4,name:"$nParentIteration",title:i("Parent object"),collectionName:a,noDisabled:o,dataSource:c,returnFields:(u,d)=>u}),shouldDisplayParentObject:n,parentObjectCtx:l,collectionName:a}},useParentPopupVariableContext=()=>{const{value:e,title:t,collection:o}=useParentPopupRecord()||{},{isVariableParsedInOtherContext:r}=useFlag();return{parentPopupRecordCtx:e,shouldDisplayParentPopupRecord:!!e&&!r,collectionName:o==null?void 0:o.name,dataSource:o==null?void 0:o.dataSource,defaultValue:void 0,title:t}},useParentPopupVariable=(e={})=>{const{parentPopupRecordCtx:t,shouldDisplayParentPopupRecord:o,collectionName:r,dataSource:i,defaultValue:n,title:l}=useParentPopupVariableContext();return{settings:useBaseVariable({collectionField:e.collectionField,uiSchema:e.schema,name:"$nParentPopupRecord",title:l,collectionName:r,noDisabled:e.noDisabled,targetFieldSchema:e.targetFieldSchema,dataSource:i}),parentPopupRecordCtx:t,shouldDisplayParentPopupRecord:o,collectionName:r,dataSource:i,defaultValue:n}},ParentCollectionContext=(0,import_react2.createContext)(null);ParentCollectionContext.displayName="ParentCollectionContext";const ParentCollectionProvider=e=>{const t=useCollection();return(0,import_jsx_runtime.jsx)(ParentCollectionContext.Provider,{value:t,children:e.children})},useParentCollection=()=>(0,import_react2.useContext)(ParentCollectionContext),AssociationProvider=e=>{const{name:t,children:o}=e,r=useCollectionManager().getCollectionName(t);return r?(0,import_jsx_runtime.jsx)(CollectionProvider,{name:String(t).split(".")[0],children:(0,import_jsx_runtime.jsx)(ParentCollectionProvider,{children:(0,import_jsx_runtime.jsx)(CollectionFieldProvider,{name:t,children:(0,import_jsx_runtime.jsx)(CollectionProvider,{name:r,children:o})})})}):(0,import_jsx_runtime.jsx)(CollectionDeletedPlaceholder,{type:"Collection",name:t})},useAssociationName=()=>{const e=useCollectionField();return e!=null&&e.target?`${e.collectionName}.${e.name}`:null},useCurrentParentRecordContext=()=>{var e,t;const o=useCollectionRecord(),{name:r,dataSource:i}=useParentCollection()||{},n=useCollection(),{isInSubForm:l,isInSubTable:a}=useFlag()||{},c=r?i:n==null?void 0:n.dataSource,u=useCollectionField();return{currentParentRecordCtx:((e=o==null?void 0:o.parentRecord)==null?void 0:e.data)||(o==null?void 0:o.data),shouldDisplayCurrentParentRecord:!!((t=o==null?void 0:o.parentRecord)!=null&&t.data)&&!l&&!a&&u,collectionName:r||(n==null?void 0:n.name),dataSource:c}},useCurrentParentRecordVariable=(e={})=>{const{t}=(0,import_react_i18next.useTranslation)(),{currentParentRecordCtx:o,shouldDisplayCurrentParentRecord:r,collectionName:i,dataSource:n}=useCurrentParentRecordContext();return{currentParentRecordSettings:useBaseVariable({collectionField:e.collectionField,uiSchema:e.schema,name:"$nParentRecord",title:t("Parent record"),collectionName:i,noDisabled:e.noDisabled,targetFieldSchema:e.targetFieldSchema,dataSource:n}),currentParentRecordCtx:o,shouldDisplayCurrentParentRecord:r,collectionName:i,dataSource:n}},usePopupVariableContext=()=>{const{value:e,title:t,collection:o}=useCurrentPopupRecord()||{},{isVariableParsedInOtherContext:r}=useFlag();return{popupRecordCtx:e,shouldDisplayPopupRecord:!!e&&!r,collectionName:o==null?void 0:o.name,dataSource:o==null?void 0:o.dataSource,defaultValue:void 0,title:t}},usePopupVariable=(e={})=>{const{popupRecordCtx:t,shouldDisplayPopupRecord:o,collectionName:r,dataSource:i,defaultValue:n,title:l}=usePopupVariableContext();return{settings:useBaseVariable({collectionField:e.collectionField,uiSchema:e.schema,name:"$nPopupRecord",title:l,collectionName:r,noDisabled:e.noDisabled,targetFieldSchema:e.targetFieldSchema,dataSource:i}),popupRecordCtx:t,shouldDisplayPopupRecord:o,collectionName:r,dataSource:i,defaultValue:n}},useRoleVariable=({collectionField:e,uiSchema:t,noDisabled:o,targetFieldSchema:r,maxDepth:i=0})=>{const{t:n}=(0,import_react_i18next.useTranslation)();return useBaseVariable({collectionField:e,uiSchema:t,maxDepth:i,name:"$nRole",title:n("Current role"),collectionName:"roles",noDisabled:o,targetFieldSchema:r,noChildren:!0,operators:string})},useCurrentRoleVariable=({collectionField:e,uiSchema:t,noDisabled:o,targetFieldSchema:r,maxDepth:i=0}={})=>{var n,l,a;const{t:c}=(0,import_react_i18next.useTranslation)(),u=useAPIClient(),d=useCompile(),{data:m}=useCurrentUserContext()||{},p=(((n=m==null?void 0:m.data)==null?void 0:n.roles)||[]).map(({name:h,title:g})=>({name:h,title:d(g)}));return{currentRoleSettings:useBaseVariable({collectionField:e,uiSchema:t,maxDepth:i,name:"$nRole",title:c("Current role"),collectionName:"roles",noDisabled:o,targetFieldSchema:r,noChildren:!0,operators:string}),currentRoleCtx:((l=u.auth)==null?void 0:l.role)==="__union__"?p.map(h=>h.name):(a=u.auth)==null?void 0:a.role}},getURLSearchParams=e=>(e.startsWith("?")&&(e=e.slice(1)),import_qs.default.parse(e)||{}),getURLSearchParamsChildren=e=>Object.keys(e).map(t=>({label:t,value:t,key:t,isLeaf:!0,operators:string})),useURLSearchParamsCtx=e=>{const[t]=(0,import_react2.useState)(()=>(0,import_reactive.observable)({}));return(0,import_react2.useMemo)(()=>{const o=getURLSearchParams(e);return(0,import_reactive.untracked)(()=>{Object.assign(t,o),Object.keys(t).forEach(r=>{o[r]===void 0&&delete t[r]})}),t},[t,e])},useURLSearchParamsVariable=(e={})=>{const t="$nURLSearchParams",{t:o}=(0,import_react_i18next.useTranslation)(),r=useLocationSearch(),{isVariableParsedInOtherContext:i}=useFlag(),n=useURLSearchParamsCtx(r),l=(0,import_react2.useMemo)(()=>import_lodash.default.isEmpty(n),[n]),a=(0,import_react2.useMemo)(()=>({label:getLabelWithTooltip(o("URL search params"),l?o("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."):""),value:t,key:t,isLeaf:!1,disabled:l,loadChildren:(c,u)=>L(void 0,null,function*(){const d=u?{[u]:void 0}:{};c.children=getURLSearchParamsChildren(x(x({},d),n))})}),[l,o,n]);return{name:t,urlSearchParamsSettings:a,urlSearchParamsCtx:n,defaultValue:void 0,shouldDisplay:!i}},useVariableOptions=({collectionField:e,form:t,uiSchema:o,operator:r,noDisabled:i,targetFieldSchema:n,record:l})=>{var a,c;const u=useApp(),d=((a=u==null?void 0:u.getVariables)==null?void 0:a.call(u).map(q=>{const{visible:O=!0,option:V}=q.useOption();return{visible:O,option:V}}).filter(({visible:q})=>q))||[],{filterVariables:m=()=>!0}=useVariables$1()||{},p=(c=l==null?void 0:l.__parent)==null?void 0:c.__collectionName,{currentUserSettings:h}=useCurrentUserVariable({maxDepth:3,uiSchema:o,collectionField:e,noDisabled:i,targetFieldSchema:n}),{currentRoleSettings:g}=useCurrentRoleVariable({uiSchema:o,collectionField:e,noDisabled:i,targetFieldSchema:n}),{apiTokenSettings:f}=useAPITokenVariable({noDisabled:i}),{datetimeSettings:_}=useDatetimeVariable({operator:r,schema:o,noDisabled:!0,targetFieldSchema:n}),{exactDateTimeSettings:v,shouldDisplayExactDate:b}=useExactDateVariable({operator:r,schema:o,noDisabled:!0,targetFieldSchema:n}),{currentFormSettings:C,shouldDisplayCurrentForm:y}=useCurrentFormVariable({schema:o,collectionField:e,noDisabled:i,targetFieldSchema:n,form:t}),{currentObjectSettings:F,shouldDisplayCurrentObject:S}=useCurrentObjectVariable({collectionField:e,schema:o,noDisabled:i,targetFieldSchema:n}),{parentObjectSettings:P,shouldDisplayParentObject:j}=useParentObjectVariable({collectionField:e,schema:o,noDisabled:i,targetFieldSchema:n}),{currentRecordSettings:I,shouldDisplayCurrentRecord:M}=useCurrentRecordVariable({schema:o,collectionField:e,noDisabled:i,targetFieldSchema:n}),{settings:E,shouldDisplayPopupRecord:D}=usePopupVariable({schema:o,collectionField:e,noDisabled:i,targetFieldSchema:n}),{settings:k,shouldDisplayParentPopupRecord:w}=useParentPopupVariable({schema:o,collectionField:e,noDisabled:i,targetFieldSchema:n}),{currentParentRecordSettings:B,shouldDisplayCurrentParentRecord:N}=useCurrentParentRecordVariable({schema:o,collectionName:p,collectionField:e,noDisabled:i,targetFieldSchema:n}),{urlSearchParamsSettings:T,shouldDisplay:$}=useURLSearchParamsVariable();return[...(0,import_react2.useMemo)(()=>[h,g,f,_,b&&v,y&&C,S&&F,j&&P,M&&I,N&&B,D&&E,w&&k,$&&T].filter(Boolean).filter(m),[h,g,f,_,y,C,S,F,j,P,M,I,N,B,D,E,$,T]),...d.map(({option:q})=>q)]},VariableInput=e=>{const{value:t,onChange:o,renderSchemaComponent:r,style:i,schema:n,className:l,contextCollectionName:a,collectionField:c,shouldChange:u,form:d,record:m,returnScope:p=import_lodash.default.identity,targetFieldSchema:h,noDisabled:g,hideVariableButton:f,setScopes:_,nullable:v=!0,constantAbel:b=!0,changeOnSelect:C=!0}=e,{name:y}=useBlockCollection(),F=useVariableScope(),{operator:S,schema:P=c==null?void 0:c.uiSchema}=useValues$2(),j=useVariableOptions({collectionField:c,form:d,record:m,operator:S,uiSchema:P,targetFieldSchema:h,noDisabled:g}),I=useContextAssociationFields({schema:n,maxDepth:2,contextCollectionName:a,collectionField:c}),{compatOldVariables:M}=useCompatOldVariables({collectionField:c,uiSchema:P,targetFieldSchema:h,blockCollectionName:y});a&&j.every(k=>k.value!==I.value)&&j.push(I);const E=(0,import_react2.useCallback)((k,w)=>{if(!u)return o(k,w);setTimeout(()=>L(void 0,null,function*(){(yield u(k,w))&&o(k,w)}))},[o,u]),D=p(M(import_lodash.default.isEmpty(F)?j:F,{value:t}));return(0,import_react2.useEffect)(()=>{_==null||_(D)},[t,F]),(0,import_jsx_runtime.jsx)(Variable.Input,{className:l,value:t,onChange:E,scope:D,style:i,changeOnSelect:C,hideVariableButton:f,nullable:v,constantAbel:b,children:(0,import_jsx_runtime.jsx)(r,{value:t,onChange:o})})},getShouldChange=({collectionField:e,variables:t,localVariables:o,getAllCollectionsInheritChain:r})=>(e&&r(e.target),(i,n)=>L(void 0,null,function*(){return!0}));function useCompatOldVariables(e){const{uiSchema:t,collectionField:o,noDisabled:r,targetFieldSchema:i,blockCollectionName:n}=e,{t:l}=(0,import_react_i18next.useTranslation)(),{currentUserSettings:a}=useCurrentUserVariable({maxDepth:1,uiSchema:t,collectionField:o,noDisabled:r,targetFieldSchema:i}),{currentRecordSettings:c}=useCurrentRecordVariable({schema:t,collectionField:o,noDisabled:r,targetFieldSchema:i});return{compatOldVariables:(0,import_react2.useCallback)((u,{value:d})=>{if(!isVariable$1(d))return u;u=[...u];const m={value:"$system",key:"$system",label:l("System variables"),isLeaf:!1,children:[{value:"now",key:"now",label:l("Current time"),isLeaf:!0,depth:1}],depth:0},p={value:"currentTime",label:l("Current time"),children:null};if(d.includes("$system")&&u.push(m),d.includes(`${n}.`)){const h=u.find(g=>g.value==="$nForm"||g.value==="$nRecord");h&&(h.value=n)}if(d.includes("$form")){const h=u.find(g=>g.value==="$nForm");h&&(h.value="$form")}if(d.includes("currentUser")){const h=u.find(g=>g.value==="$user");h?h.value="currentUser":u.unshift(A(x({},a),{value:"currentUser"}))}if(d.includes("currentRecord")){const h=u.find(g=>g.value==="$nRecord");h?h.value="currentRecord":u.unshift(A(x({},c),{value:"currentRecord"}))}if(d.includes("currentTime")&&u.push(p),d.includes("$date")){const h=u.find(g=>g.value==="$nDate");h&&(h.value="$date")}return u},[n])}}const SchemaSettingsDataScope=function(e){const{t}=(0,import_react_i18next.useTranslation)(),{getFields:o}=useCollectionFilterOptionsV2(e.collectionName),r=useRecord(),{form:i}=useFormBlockContext(),n=useVariables$1(),l=useLocalVariables$1(),{getAllCollectionsInheritChain:a}=useCollectionManager_deprecated(),{isInSubForm:c,isInSubTable:u}=useFlag()||{},d=useBlockContext==null?void 0:useBlockContext(),m=(0,import_react2.useCallback)(h=>(0,import_jsx_runtime.jsx)(DatePickerProvider,{value:{utc:!1},children:(0,import_jsx_runtime.jsx)(VariableInput,A(x({},h),{form:i,record:r,noDisabled:!0,shouldChange:getShouldChange({collectionField:h.collectionField,variables:n,localVariables:l,getAllCollectionsInheritChain:a})}))}),[i,a,l,r,n]),p=()=>({type:"object",title:t("Set the data scope"),properties:{filter:{enum:e.collectionFilterOption||o(),"x-decorator":h=>(0,import_jsx_runtime.jsx)(BaseVariableProvider,A(x({},h),{children:(0,import_jsx_runtime.jsx)(FlagProvider,{isInSubForm:c,isInSubTable:u,children:(0,import_jsx_runtime.jsx)(BlockContext.Provider,{value:{name:i?"form":d==null?void 0:d.name},children:h.children})})})),"x-decorator-props":{isDisabled},"x-component":"Filter","x-component-props":{collectionName:e.collectionName,dynamicComponent:e.dynamicComponent||m}}}});return(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:t("Set the data scope"),initialValues:{filter:e.defaultFilter},schema:p,onSubmit:e.onSubmit,noRecord:e.noRecord})};function isDisabled(e){var t,o;const{option:r,collectionField:i,uiSchema:n}=e;return!n||!i?!0:i.interface==="json"||r.target?!1:["input","markdown","richText","textarea","username"].includes(i.interface)?!["string","number"].includes((t=r.schema)==null?void 0:t.type):i.interface&&r.interface?i.interface!==r.interface:(n==null?void 0:n["x-component"])!==((o=r.schema)==null?void 0:o["x-component"])}const SchemaSettingsDateFormat=function(e){var t,o,r,i,n,l,a,c,u,d,m,p;const{fieldSchema:h}=e,g=(0,import_react.useField)(),{dn:f}=useDesignable(),{t:_}=(0,import_react_i18next.useTranslation)(),{getCollectionJoinField:v}=useCollectionManager_deprecated(),b=v(h==null?void 0:h["x-collection-field"])||{},C=(t=h==null?void 0:h["x-component-props"])==null?void 0:t.showTime,y=((o=h==null?void 0:h["x-component-props"])==null?void 0:o.dateFormat)||((i=(r=b==null?void 0:b.uiSchema)==null?void 0:r["x-component-props"])==null?void 0:i.dateFormat)||"YYYY-MM-DD",F=((n=h==null?void 0:h["x-component-props"])==null?void 0:n.timeFormat)||((a=(l=b==null?void 0:b.uiSchema)==null?void 0:l["x-component-props"])==null?void 0:a.timeFormat)||"HH:mm:ss",S=((c=h==null?void 0:h["x-component-props"])==null?void 0:c.picker)||((d=(u=b==null?void 0:b.uiSchema)==null?void 0:u["x-component-props"])==null?void 0:d.picker)||"date",P=h["x-read-pretty"]||g.readOnly||g.readPretty;return(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:_("Date display format"),scope:{getPickerFormat:import_client.getPickerFormat},schema:{type:"object",properties:{picker:{type:"string",title:'{{t("Picker")}}',"x-decorator":"FormItem","x-component":"Radio.Group",default:S,description:!P&&'{{ t("Switching the picker, the value and default value will be cleared") }}',enum:[{label:'{{t("Date")}}',value:"date"},{label:'{{t("Month")}}',value:"month"},{label:'{{t("Quarter")}}',value:"quarter"},{label:'{{t("Year")}}',value:"year"}]},dateFormat:{type:"string",title:'{{t("Date format")}}',"x-component":ExpiresRadio$1,"x-decorator":"FormItem","x-decorator-props":{},"x-component-props":{className:import_css.css`
275
+ `,TableColumnActionBar$1=(0,import_flow_engine.observer)(e=>{const t=useDesigner(),{isInSubTable:o}=useFlag()||{},{designable:r}=useSchemaComponentContext(),{token:i}=useToken$1(),{name:n}=(useBlockContext==null?void 0:useBlockContext())||{};return!r||t.isNullComponent?e.children:(0,import_jsx_runtime.jsx)(SortableItem$1,{className:designerCss$4({margin:`-${i.margin}px -${i.marginXS}px`,padding:`${i.margin}px ${i.marginXS}px`}),children:(0,import_jsx_runtime.jsxs)(BlockContext.Provider,{value:{name:o?n:"taleColumn"},children:[(0,import_jsx_runtime.jsx)(t,{}),e.children]})})},{displayName:"TableColumnActionBar"}),useColumnSchema$1=()=>{const{getField:e}=useCollection_deprecated(),t=useCompile(),o=(0,import_react.useFieldSchema)(),{getCollectionJoinField:r}=useCollectionManager_deprecated(),i=o==null?void 0:o.reduceProperties((l,a)=>isCollectionFieldComponent(a)?a:l,null);if(!i)return{};const n=e(i.name)||r(i==null?void 0:i["x-collection-field"]);return{columnSchema:o,fieldSchema:i,collectionField:n,uiSchema:t(n==null?void 0:n.uiSchema)}},useTableFieldInstanceList=()=>{const e=(0,import_react.useField)(),{fieldSchema:t}=useColumnSchema$1(),o=(0,import_react2.useMemo)(()=>{var r,i;if(!t||!e)return[];const n=(i=e.path)==null?void 0:i.splice(((r=e.path)==null?void 0:r.length)-1,1);return e.form.query(`${n.concat("*."+t.name)}`).map()},[e,t]);return t?o:[]},TableColumnDecorator$1=e=>{var t,o;const r=useDesigner(),i=(0,import_react.useField)(),{fieldSchema:n,uiSchema:l,collectionField:a}=useColumnSchema$1(),{designable:c}=useSchemaComponentContext(),u=useCompile(),{isInSubTable:d}=useFlag()||{},{token:m}=useToken$1(),{name:p}=(useBlockContext==null?void 0:useBlockContext())||{};let h=n==null?void 0:n.required;if(d){const g=(o=i.path)==null?void 0:o.splice(((t=i.path)==null?void 0:t.length)-1,1),f=i.form.query(`${g.concat("*."+n.name)}`).take();h=typeof(f==null?void 0:f.required)=="boolean"?f.required:n==null?void 0:n.required}return(0,import_react2.useEffect)(()=>{i.title||n&&l!=null&&l.title&&(i.title=l==null?void 0:l.title)},[l==null?void 0:l.title]),!c||r.isNullComponent?(0,import_jsx_runtime.jsxs)(CollectionFieldContext.Provider,{value:a,children:[(0,import_jsx_runtime.jsx)(r,{fieldSchema:n,uiSchema:l,collectionField:a}),(0,import_jsx_runtime.jsxs)("span",{role:"button",children:[h&&(0,import_jsx_runtime.jsx)("span",{className:"ant-formily-item-asterisk",children:"*"}),(0,import_jsx_runtime.jsx)("span",{children:(i==null?void 0:i.title)||u(l==null?void 0:l.title)})]})]}):(0,import_jsx_runtime.jsx)(SortableItem$1,{className:designerCss$4({margin:`-${m.margin}px -${m.marginXS}px`,padding:`${m.margin}px ${m.marginXS}px`}),children:(0,import_jsx_runtime.jsx)(CollectionFieldContext.Provider,{value:a,children:(0,import_jsx_runtime.jsxs)(BlockContext.Provider,{value:{name:d?p:"taleColumn"},children:[(0,import_jsx_runtime.jsx)(r,{fieldSchema:n,uiSchema:l,collectionField:a}),(0,import_jsx_runtime.jsxs)("span",{role:"button",children:[h&&(0,import_jsx_runtime.jsx)("span",{className:"ant-formily-item-asterisk",children:"*"}),(0,import_jsx_runtime.jsx)("span",{children:(i==null?void 0:i.title)||u(l==null?void 0:l.title)})]})]})})})},SchemaToolbarContext=(0,import_react2.createContext)({});SchemaToolbarContext.displayName="SchemaToolbarContext";const SchemaToolbarProvider=e=>{const t=e,{children:o}=t,r=te(t,["children"]);return(0,import_jsx_runtime.jsx)(SchemaToolbarContext.Provider,{value:r,children:o})};function useSchemaToolbar(){return(0,import_react2.useContext)(SchemaToolbarContext)}const SchemaToolbarErrorFallback=e=>{const{designable:t}=useDesignable();return t?(0,import_jsx_runtime.jsx)(ErrorFallback.Modal,A(x({},e),{children:(0,import_jsx_runtime.jsx)(SchemaToolbar,{title:`render toolbar error: ${e.error.message}`})})):null},useSchemaToolbarRender=e=>{const{designable:t}=useDesignable(),o=(0,import_react2.useMemo)(()=>{if(e["x-designer"]||e["x-toolbar"])return e["x-designer"]||e["x-toolbar"];if(e["x-settings"])return SchemaToolbar},[e]),r=useComponent(o);return{render(i){return!t||!r?null:(0,import_jsx_runtime.jsx)(import_react_error_boundary.ErrorBoundary,{FallbackComponent:SchemaToolbarErrorFallback,onError:console.error,children:(0,import_jsx_runtime.jsx)(r,x(x({},e["x-toolbar-props"]),i))})},exists:!!r}},generalSettingsItems=[{name:"editFieldTitle",type:"modal",useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),{dn:o}=useDesignable(),r=useCompile(),i=(0,import_react.useField)(),n=(0,import_react.useFieldSchema)(),{getCollectionJoinField:l}=useCollectionManager_deprecated(),{getField:a}=useCollection_deprecated(),c=a(n.name)||l(n["x-collection-field"]);return{title:t("Edit field title"),schema:{type:"object",title:t("Edit field title"),properties:{title:{title:t("Field title"),default:i==null?void 0:i.title,description:`${t("Original field title: ")}${(e=c==null?void 0:c.uiSchema)==null?void 0:e.title}`,"x-decorator":"FormItem","x-component":"Input","x-component-props":{}}}},onSubmit({title:u}){var d;const m=u.trim()===""?(d=c==null?void 0:c.uiSchema)==null?void 0:d.title:u;i.title=r(m),n.title=u,o.emit("patch",{schema:{"x-uid":n["x-uid"],title:n.title}}),o.refresh()}}},useVisible(){const e=(0,import_react.useFieldSchema)(),{getCollectionJoinField:t}=useCollectionManager_deprecated(),{getField:o}=useCollection_deprecated();return!!(o(e.name)||t(e["x-collection-field"]))}},{name:"displayTitle",type:"switch",useComponentProps(){var e,t;const{t:o}=(0,import_react_i18next.useTranslation)(),{dn:r}=useDesignable(),i=(0,import_react.useField)(),n=(0,import_react.useFieldSchema)();return{title:o("Display title"),checked:(t=(e=n["x-decorator-props"])==null?void 0:e.showTitle)!=null?t:!0,onChange(l){n["x-decorator-props"]=n["x-decorator-props"]||{},n["x-decorator-props"].showTitle=l,i.decoratorProps.showTitle=l,r.emit("patch",{schema:{"x-uid":n["x-uid"],"x-decorator-props":A(x({},n["x-decorator-props"]),{showTitle:l})}}),r.refresh()}}}},{name:"editDescription",type:"modal",useComponentProps(){const{t:e}=(0,import_react_i18next.useTranslation)(),{dn:t}=useDesignable(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)();return{title:e("Edit description"),schema:{type:"object",title:e("Edit description"),properties:{description:{default:o==null?void 0:o.description,"x-decorator":"FormItem","x-component":"Input.TextArea","x-component-props":{}}}},onSubmit({description:i}){o.description=i,r.description=i,t.emit("patch",{schema:{"x-uid":r["x-uid"],description:r.description}}),t.refresh()}}},useVisible(){return!(0,import_react.useField)().readPretty}},{name:"editTooltip",type:"modal",useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),{dn:o}=useDesignable(),r=(0,import_react.useField)(),i=(0,import_react.useFieldSchema)();return{title:t("Edit tooltip"),schema:{type:"object",title:t("Edit tooltip"),properties:{tooltip:{default:(e=i==null?void 0:i["x-decorator-props"])==null?void 0:e.tooltip,"x-decorator":"FormItem","x-component":"Input.TextArea","x-component-props":{}}}},onSubmit({tooltip:n}){r.decoratorProps.tooltip=n,i["x-decorator-props"]=i["x-decorator-props"]||{},i["x-decorator-props"].tooltip=n,o.emit("patch",{schema:{"x-uid":i["x-uid"],"x-decorator-props":i["x-decorator-props"]}}),o.refresh()}}},useVisible(){return(0,import_react.useField)().readPretty}},{name:"required",type:"switch",useComponentProps(){const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_react.useField)(),o=(0,import_react.useFieldSchema)(),{dn:r,refresh:i}=useDesignable();return{title:e("Required"),checked:o.required,onChange(n){const l={"x-uid":o["x-uid"]};t.required=n,o.required=n,l.required=n,r.emit("patch",{schema:l}),i()}}},useVisible(){const e=(0,import_react.useField)(),t=(0,import_react.useFieldSchema)(),{required:o=!0}=useSchemaToolbar();return!e.readPretty&&t["x-component"]!=="FormField"&&o}},{name:"style",Component:e=>{const t=A(x({},e),{category:"style"});return(0,import_jsx_runtime.jsx)(SchemaSettingsLinkageRules,x({},t))},useVisible(){return useIsFieldReadPretty()},useComponentProps(){const{name:e}=useCollection(),{linkageRulesProps:t}=useSchemaToolbar();return A(x({},t),{collectionName:e})}}],RemoveConditionContext$1=(0,import_react2.createContext)(null);RemoveConditionContext$1.displayName="RemoveConditionContext";const FilterContext$3=(0,import_react2.createContext)(null);FilterContext$3.displayName="FilterContext";const FilterLogicContext$1=(0,import_react2.createContext)(null);FilterLogicContext$1.displayName="FilterLogicContext";const findOption$2=(e=[],t)=>{var o;let r=t,i;return(o=e==null?void 0:e.forEach)==null||o.call(e,n=>{const l=r.find(a=>a.name===n);l&&(i=l),r=(l==null?void 0:l.children)||[]}),i},useValues$2=()=>{const{name:e}=useCollection_deprecated(),{getCollectionJoinField:t}=useCollectionManager_deprecated(),o=(0,import_react.useField)(),{options:r,collectionName:i,field:n}=(0,import_react2.useContext)(FilterContext$3)||{},l=(0,import_flat.default)(o.value||{}),a=Object.keys(l).shift()||"",c=(0,import_react2.useMemo)(()=>{const[h=""]=a.split(".$");return t(`${i||e}.${h}`)},[e,a]),u=(0,import_react2.useCallback)(()=>{var h,g,f,_;o.value=o.data.dataIndex?import_flat.default.unflatten({[`${(h=o.data.dataIndex)==null?void 0:h.join(".")}.${(f=(g=o.data)==null?void 0:g.operator)==null?void 0:f.value}`]:(_=o.data)==null?void 0:_.value}):{}},[o]);(0,import_react2.useEffect)(()=>{var h;if(o.data=o.data||{},!a||!r)return;const[g="",f=""]=a.split(".$"),[_]=f.split(".",2),v=g.split("."),b=findOption$2(v,r),C=b==null?void 0:b.operators,y=(h=C==null?void 0:C.find)==null?void 0:h.call(C,F=>F.value===`$${_}`);if(o.data.dataIndex=v,(v==null?void 0:v.length)>1){const F=v.concat();F.pop();const S=t(`${e}.${F.join(".")}`);n.collectionName=S==null?void 0:S.target}else n.collectionName=null;o.data.operators=C,o.data.operator=y,o.data.schema=(0,import_shared.merge)(b==null?void 0:b.schema,y==null?void 0:y.schema),o.data.value=(0,import_get.default)((0,import_flat.unflatten)(o.value),`${g}.$${_}`)},[o.path]);const d=(0,import_react2.useCallback)(h=>{var g;const f=findOption$2(h,r),_=(g=f==null?void 0:f.operators)==null?void 0:g[0];o.data=o.data||{},o.data.operators=f==null?void 0:f.operators,o.data.operator=_;const v=(0,import_cloneDeep.default)(f==null?void 0:f.schema),b=(0,import_cloneDeep.default)(_==null?void 0:_.schema);if(o.data.schema=(0,import_shared.merge)(v,b),o.data.dataIndex=h,(h==null?void 0:h.length)>1){const C=h.concat();C.pop();const y=t(`${e}.${C.join(".")}`);n.collectionName=y==null?void 0:y.target}else n.collectionName=null;o.data.value=_!=null&&_.noValue?_.default||!0:void 0,u()},[u,o,r]),m=(0,import_react2.useCallback)(h=>{var g,f,_;const v=(_=(f=(g=o.data)==null?void 0:g.operators)==null?void 0:f.find)==null?void 0:_.call(f,F=>F.value===h);o.data.operator=v;const b=findOption$2(o.data.dataIndex,r),C=(0,import_cloneDeep.default)(b==null?void 0:b.schema),y=(0,import_cloneDeep.default)(v==null?void 0:v.schema);o.data.schema=(0,import_shared.merge)(C,y),o.data.value=v.noValue?v.default||!0:void 0,u()},[u,o.data,r]),p=(0,import_react2.useCallback)(h=>{o.data.value=h,u()},[u,o.data]);return A(x({fields:r},(o==null?void 0:o.data)||{}),{collectionField:c,setDataIndex:d,setOperator:m,setValue:p})},useBlockCollection=()=>{const e=useDataBlockProps();return{name:(e==null?void 0:e.collection)||(e==null?void 0:e.resource)}},useIsSameOrChildCollection=()=>{const{getChildrenCollections:e}=useCollectionManager_deprecated();return(t,o)=>{if(t===o)return!0;const r=e(o);return r==null?void 0:r.some(i=>i.name===t)}},getChildren$2=(e,{schema:t,depth:o,maxDepth:r,loadChildren:i,compile:n},l,a)=>e.map(c=>{const u=!a(c.target,l==null?void 0:l.target);return c.target?o>=r?null:{key:c.name,value:c.name,name:c.name,label:n(c.title),title:n(c.title),disabled:u,isLeaf:!0,field:c,depth:o,loadChildren:i}:{key:c.name,value:c.name,name:c.name,label:n(c.title),title:n(c.title),disabled:u,isLeaf:!0,depth:o}}).filter(Boolean),useContextAssociationFields=({schema:e,maxDepth:t=3,contextCollectionName:o,collectionField:r})=>{const{t:i}=(0,import_react_i18next.useTranslation)(),n=useCompile(),l=useGetFilterOptions(),a=useIsSameOrChildCollection(),c=u=>{var d;if(!((d=u.field)!=null&&d.target))return new Promise(p=>{(0,import_client.error)("Must be set field target"),u.children=[],p(void 0)});const m=u.field.target;return new Promise(p=>{setTimeout(()=>{const h=getChildren$2(l(m).filter(g=>r?["hasOne","hasMany","belongsTo","belongsToMany","belongsToArray"].includes(g.type):!0),{schema:e,depth:u.depth+1,maxDepth:t,loadChildren:c,compile:n},r,a)||[];if(h.length===0){u.disabled=!0,u.children=[],p();return}u.children=h,p()},5)})};return(0,import_react2.useMemo)(()=>({label:i("Table selected records"),value:"$context",key:"$context",isLeaf:!1,field:{target:o},depth:0,loadChildren:c}),[e==null?void 0:e["x-component"]])},useLabelUiSchemaV2=()=>{const e=useCollectionManager();return(t,o)=>{if(!t)return;const r=e==null?void 0:e.getCollectionField(`${t}.${o}`);return r==null?void 0:r.uiSchema}},useLabelUiSchema$1=(e,t)=>{const o=useCollectionManager();if(!e)return;const r=o==null?void 0:o.getCollectionField(`${e}.${t}`);return r==null?void 0:r.uiSchema},getDatePickerLabels$1=e=>{const t=(0,import_client.getDefaultFormat)(e),o=(0,import_client.str2moment)(e.value,e),r=o&&o.isValid()?o.format(t):e.value;return(0,import_shared.isArr)(r)?r.join("~"):r},toArr$2=e=>e?Array.isArray(e)?e:[e]:[],getLabelFormatValue$1=(e,t,o=!1)=>{const r=e==null?void 0:e.enum;if(Array.isArray(r)&&t){const i=toArr$2(t).map(n=>{const l=r.find(a=>a.value===n);return o?import_react2.default.createElement(import_antd.Tag,{color:l==null?void 0:l.color},l==null?void 0:l.label):l==null?void 0:l.label});return o?i:i.join(", ")}switch(e==null?void 0:e["x-component"]){case"DatePicker":return getDatePickerLabels$1(A(x({},e==null?void 0:e["x-component-props"]),{value:t}));default:return t}},getTabFormatValue=(e,t,o)=>{const r=e==null?void 0:e.enum;if(Array.isArray(r)&&t)return toArr$2(t).map(i=>{const n=r.find(l=>l.value===i);return import_react2.default.createElement(import_antd.Tag,{color:o||(n==null?void 0:n.color)},n==null?void 0:n.label)});switch(e==null?void 0:e["x-component"]){case"DatePicker":return import_react2.default.createElement(import_antd.Tag,{color:o},getDatePickerLabels$1(A(x({},e==null?void 0:e["x-component-props"]),{value:t})));default:return import_react2.default.createElement(import_antd.Tag,{color:o},t)}};function flatData$2(e){const t=[];for(let o=0;o<e.length;o++){const r=e[o].children;Array.isArray(r)&&t.push(...flatData$2(r)),t.push(x({},e[o]))}return t}function isSubMode(e){var t,o;const r=((t=e["x-component-props"])==null?void 0:t.mode)||((o=e.componentProps)==null?void 0:o.mode);return["Nester","SubTable","PopoverNester"].includes(r)}const useSpecialCase=()=>{const e=(0,import_react.useForm)(),t=(0,import_react.useFieldSchema)(),{getField:o}=useCollection_deprecated(),{getCollectionField:r}=useCollectionManager_deprecated(),i=(0,import_react2.useMemo)(()=>o(t.name),[t.name,o]),n=(0,import_react2.useCallback)(()=>isSpecialCaseField({collectionField:i,fieldSchema:t,getCollectionField:r}),[i,t,r]),l=(0,import_react2.useCallback)(a=>{const c=getParentFieldSchema(t);if(c){const u=e.query(c.name).take();if(u){const d=import_lodash.default.isEmpty(a)?[]:import_lodash.default.map(transformValue(a,{field:u,subFieldSchema:t}),m=>markRecordAsNew(m));isSubset(d,u.initialValue)||u.setInitialValue(d)}}},[t,e]);return{isSpecialCase:n,setDefaultValue:l}};function getParentFieldSchema(e){for(;e!=null&&e.parent;)if(e=e.parent,isSubMode(e))return e;return e}function isSpecialCaseField({collectionField:e,fieldSchema:t,getCollectionField:o}){if(!t.default||!t.default.includes("$context"))return!1;if(e&&["hasOne","belongsTo"].includes(e.type)&&t){const r=getParentFieldSchema(t);if(r&&r["x-collection-field"]){const i=o(r["x-collection-field"]);if(["hasMany","belongsToMany"].includes(i==null?void 0:i.type))return!0}}return!1}function transformValue(e,t){const{field:o,subFieldSchema:r}=t,i=o.value;let n=null;return Array.isArray(e)?n=e.map(l=>({[r.name]:l})):n=[{[r.name]:e}],import_lodash.default.assignWith([...i],n,(l,a)=>(!l&&a&&(a.__notFromDatabase=!0),import_lodash.default.assign(x({},i[0]),a)))}const useSubTableSpecialCase=({rootField:e,rootSchema:t})=>{const{hasUsedVariable:o}=useHasUsedVariable();(0,import_react2.useEffect)(()=>{if(import_lodash.default.isEmpty(e.value)&&o("$context",t)){const r=e.value,i=[markRecordAsNew({})];e.value=i,setTimeout(()=>{JSON.stringify(e.value)===JSON.stringify(i)&&(e.value=r)})}},[e,t,o])};function isSubset(e,t){if(e.length!==t.length)return!1;for(let o=0;o<e.length;o++){const r=e[o],i=t[o];if(!import_lodash.default.isMatch(import_lodash.default.omitBy(i,import_lodash.default.isNil),import_lodash.default.omitBy(r,import_lodash.default.isNil)))return!1}return!0}const checkSchema=(e,t)=>{if(e["x-decorator"]==="FormItem"){const r=e.default;if(r&&typeof r=="string"&&isVariable$1(r)&&r.includes(t))return!0}let o=!1;return e.mapProperties(r=>{checkSchema(r,t)&&(o=!0)}),o};function useHasUsedVariable(){return{hasUsedVariable:(0,import_react2.useCallback)((e,t)=>checkSchema(t,e),[])}}const BaseVariableContext=import_react2.default.createContext(null),BaseVariableProvider=e=>(0,import_jsx_runtime.jsx)(BaseVariableContext.Provider,{value:e,children:e.children}),getChildren$1=(e,{collectionField:t,uiSchema:o,depth:r,maxDepth:i,noDisabled:n,loadChildren:l,compile:a,isDisabled:c,targetFieldSchema:u,getCollectionField:d,deprecated:m})=>e.map(p=>!p.target||p.target==="chinaRegions"||p.interface==="attachmentURL"?{key:p.name,value:p.name,label:a(p.title),disabled:m||(n?!1:c({option:p,collectionField:t,uiSchema:o,targetFieldSchema:u,getCollectionField:d})),isLeaf:!0,depth:r,operators:p==null?void 0:p.operators,schema:p==null?void 0:p.schema}:r>=i?null:{key:p.name,value:p.name,label:a(p.title),isLeaf:!1,field:p,depth:r,disabled:m||(n?!1:c({option:p,collectionField:t,uiSchema:o,targetFieldSchema:u,getCollectionField:d})),loadChildren:l}).filter(Boolean),getLabelWithTooltip=(e,t)=>t?(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{placement:"left",title:t,zIndex:9999,children:(0,import_jsx_runtime.jsx)("span",{style:{position:"relative",display:"inline-block",marginLeft:-14,paddingLeft:14,marginRight:-80,paddingRight:80,zIndex:1},children:e})}):e,useBaseVariable=({collectionField:e,uiSchema:t,targetFieldSchema:o,maxDepth:r=3,name:i,title:n,collectionName:l,noChildren:a=!1,noDisabled:c=!0,dataSource:u,returnFields:d=g=>g,deprecated:m,tooltip:p,operators:h=[]})=>{const g=useCompile(),f=useGetFilterOptions(),{isDisabled:_}=(0,import_react2.useContext)(BaseVariableContext)||{},{isLeftVariable:v}=(0,import_react2.useContext)(FlagContext)||{},b=useCollectionManager(),C=y=>{var F;if(!((F=y.field)!=null&&F.target))return Promise.resolve(void 0);const S=y.field.target;return new Promise(P=>{setTimeout(()=>{var j;const I=(v&&S==="attachments"&&g((j=y.field)==null?void 0:j.children)||getChildren$1(d(f(S,u,!0),y),{collectionField:e,uiSchema:t,targetFieldSchema:o,depth:y.depth+1,maxDepth:r,noDisabled:c,loadChildren:C,compile:g,isDisabled:_||isDisabledDefault,getCollectionField:b.getCollectionField,deprecated:m})||[]).sort((M,E)=>M.isLeaf&&!E.isLeaf?-1:!M.isLeaf&&E.isLeaf?1:0).sort((M,E)=>M.disabled&&!E.disabled?1:!M.disabled&&E.disabled?-1:0);if(I.length===0){y.disabled=!0,y.isLeaf=!0,P();return}y.children=I,P()},5)})};return(0,import_react2.useMemo)(()=>({label:getLabelWithTooltip(n,p),value:i,key:i,isLeaf:a,field:{target:l},depth:0,loadChildren:C,children:[],disabled:!!m,deprecated:m,operators:h}),[t==null?void 0:t["x-component"]])};function isDisabledDefault(e){var t,o;const{option:r,collectionField:i,uiSchema:n,targetFieldSchema:l,getCollectionField:a}=e;return!n||!i?!0:i.interface==="json"?!1:!i.target&&["hasMany","belongsToMany"].includes(r.type)?!0:!i.target&&["hasOne","belongsTo"].includes(r.type)||r.target&&isSpecialCaseField({collectionField:i,fieldSchema:l,getCollectionField:a})?!1:["hasOne","belongsTo"].includes(i.type)&&["hasMany","belongsToMany"].includes(r.type)?!0:["hasOne","belongsTo"].includes(i.type)&&["hasOne","belongsTo"].includes(r.type)||["hasMany","belongsToMany"].includes(i.type)&&r.target?!1:["input","markdown","richText","textarea","username"].includes(i.interface)?!["string","number"].includes((t=r.schema)==null?void 0:t.type):i.interface&&r.interface?i.interface!==r.interface:(n==null?void 0:n["x-component"])!==((o=r.schema)==null?void 0:o["x-component"])}const CurrentRecordContext=(0,import_react2.createContext)(null),CurrentRecordContextProvider=e=>{const t=(0,import_react2.useMemo)(()=>({recordData:e.recordData,collectionName:e.collectionName}),[e.recordData,e.collectionName]);return(0,import_jsx_runtime.jsxs)(CurrentRecordContext.Provider,{value:t,children:[" ",e.children," "]})},useCurrentRecord=()=>(0,import_react2.useContext)(CurrentRecordContext),useCurrentRecordContext=()=>{const e=useCurrentRecord(),{name:t}=useBlockContext()||{},o=useCollection(),r=useCollectionRecordData(),{formRecord:i,collectionName:n}=useFormBlockContext();let l=i!=null&&i.data?n:o==null?void 0:o.name;return l=(e==null?void 0:e.collectionName)||l,{currentRecordCtx:(e==null?void 0:e.recordData)||(i==null?void 0:i.data)||r,shouldDisplayCurrentRecord:!import_lodash.default.isEmpty(import_lodash.default.omit(r,["__collectionName","__parent"]))||!!(i!=null&&i.data)||t==="taleColumn",collectionName:l,blockType:t,dataSource:o==null?void 0:o.dataSource}},useCurrentRecordVariable=(e={})=>{const{t}=(0,import_react_i18next.useTranslation)(),{currentRecordCtx:o,shouldDisplayCurrentRecord:r,collectionName:i,blockType:n,dataSource:l}=useCurrentRecordContext();return{currentRecordSettings:useBaseVariable({collectionField:e.collectionField,uiSchema:e.schema,name:"$nRecord",title:t("Current record"),collectionName:i,noDisabled:e.noDisabled,targetFieldSchema:e.targetFieldSchema,deprecated:n==="form"&&!r,tooltip:n==="form"?t('This variable has been deprecated and can be replaced with "Current form"'):"",dataSource:l}),currentRecordCtx:o,shouldDisplayCurrentRecord:r,collectionName:i}},SettingsMenuProvider=e=>SelectWithTitle,DropdownVisibleContext=(0,import_react2.createContext)(null);DropdownVisibleContext.displayName="DropdownVisibleContext";const CurrentUserContext=(0,import_react2.createContext)(null);CurrentUserContext.displayName="CurrentUserContext";const useCurrentUserContext=()=>{const e=(0,import_flow_engine.useFlowEngine)(),t=(0,import_react2.useContext)(CurrentUserContext);return!t&&e?{data:{data:e.context.user}}:t},useIsLoggedIn=()=>{var e;const t=(0,import_react2.useContext)(CurrentUserContext);return!!((e=t==null?void 0:t.data)!=null&&e.data)},useCurrentRoles=()=>{var e;const{allowAnonymous:t}=useACLRoleContext(),{data:o}=useCurrentUserContext()||{},r=useCompile();return(0,import_react2.useMemo)(()=>{var i;const n=(((i=o==null?void 0:o.data)==null?void 0:i.roles)||[]).map(({name:l,title:a})=>({name:l,title:r(a)}));return t&&n.push({title:"Anonymous",name:"anonymous"}),n},[t,(e=o==null?void 0:o.data)==null?void 0:e.roles,r])},CurrentUserProvider=e=>{const t=useAPIClient(),o=useApp(),r=(0,import_react_router_dom.useNavigate)(),i=(0,import_react_router_dom.useLocation)(),n=useRequest(()=>t.request({url:"/auth:check",skipNotify:!0,skipAuth:!0}).then(a=>{var c,u,d;((u=(c=a==null?void 0:a.data)==null?void 0:c.data)==null?void 0:u.id)==null&&r("/signin?redirect="+i.pathname+i.search);const m=(0,import_flow_engine.createCollectionContextMeta)(()=>{var p;return(p=o.flowEngine.context.dataSourceManager.getDataSource("main"))==null?void 0:p.getCollection("users")},o.flowEngine.translate("Current user"));return m.sort=1e3,o.flowEngine.context.defineProperty("user",{value:(d=a==null?void 0:a.data)==null?void 0:d.data,resolveOnServer:!0,meta:m}),a==null?void 0:a.data})),{render:l}=useAppSpin();return n.loading?l():(0,import_jsx_runtime.jsx)(CurrentUserContext.Provider,{value:n,children:e.children})},CurrentUserSettingsMenuContext=(0,import_react2.createContext)(null);CurrentUserSettingsMenuContext.displayName="CurrentUserSettingsMenuContext";const useCurrentUserSettingsMenu=()=>{const{menuItems:e}=(0,import_react2.useContext)(CurrentUserSettingsMenuContext)||{},t=(0,import_react2.useCallback)(()=>e.current,[e]),o=(0,import_react2.useCallback)((r,i)=>{let n;if(i&&(r._options=i),(n=e.current.findIndex(a=>a.key===r.key))!==-1){e.current[n]=r,e.current=[...e.current];return}if(i){if(i.before){const a=e.current.findIndex(c=>c.key===i.before);e.current.splice(a,0,r);return}if(i.after){const a=e.current.findIndex(c=>c.key===i.after);e.current.splice(a+1,0,r);return}}const l=e.current;e.current=l.filter(a=>{var c,u;return r.key!==((c=a._options)==null?void 0:c.before)&&r.key!==((u=a._options)==null?void 0:u.after)}),e.current.push(...l.filter(a=>{var c;return((c=a._options)==null?void 0:c.before)===r.key})),e.current.push(r),e.current.push(...l.filter(a=>{var c;return((c=a._options)==null?void 0:c.after)===r.key}))},[e]);if(!e)throw(0,import_client.error)("CurrentUser: You should use `CurrentUserSettingsMenuProvider` in the root of your app."),new Error("CurrentUser: You should use `CurrentUserSettingsMenuProvider` in the root of your app.");return{getMenuItems:t,addMenuItem:o}},CurrentUserSettingsMenuProvider=({children:e})=>{const t=(0,import_react2.useRef)([]),o=(0,import_react2.useMemo)(()=>({menuItems:t}),[t]);return(0,import_jsx_runtime.jsx)(CurrentUserSettingsMenuContext.Provider,{value:o,children:e})},useUserVariable=({collectionField:e,uiSchema:t,noDisabled:o,targetFieldSchema:r,maxDepth:i=3})=>{const{t:n}=(0,import_react_i18next.useTranslation)();return useBaseVariable({collectionField:e,uiSchema:t,maxDepth:i,name:"$user",title:n("Current user"),collectionName:"users",dataSource:DEFAULT_DATA_SOURCE_KEY,noDisabled:o,targetFieldSchema:r})},useCurrentUserVariable=({collectionField:e,uiSchema:t,noDisabled:o,targetFieldSchema:r,maxDepth:i=3}={})=>{var n;const{t:l}=(0,import_react_i18next.useTranslation)(),a=useCurrentUserContext();return{currentUserSettings:useBaseVariable({collectionField:e,uiSchema:t,maxDepth:i,name:"$user",title:l("Current user"),collectionName:"users",noDisabled:o,targetFieldSchema:r,dataSource:DEFAULT_DATA_SOURCE_KEY}),currentUserCtx:(n=a==null?void 0:a.data)==null?void 0:n.data}},useAPITokenVariable=({noDisabled:e}={})=>{var t;const o=useAPIClient();return{apiTokenSettings:useBaseVariable({name:"$nToken",title:"API token",noDisabled:e,noChildren:!0,operators:string}),apiTokenCtx:(t=o.auth)==null?void 0:t.token}},popupSchema={type:"void","x-component":"Action.Container","x-action":"view",title:'{{ t("View record") }}',"x-component-props":{className:"nb-action-popup"},properties:{tabs:{type:"void","x-component":"Tabs","x-component-props":{},"x-initializer":"popup:addTab",properties:{tab1:{type:"void",title:'{{t("Details")}}',"x-component":"Tabs.TabPane","x-designer":"Tabs.Designer","x-component-props":{},properties:{grid:{type:"void","x-component":"Grid","x-initializer":"popup:common:addBlock",properties:{}}}}}}}},useInsertSchema=()=>{const e=(0,import_react.useFieldSchema)(),{insertAfterBegin:t}=useDesignable();return(0,import_react2.useCallback)(o=>{e.reduceProperties((r,i)=>i["x-component"]==="Action.Container"?i:r,null)||t((0,import_lodash.cloneDeep)(o))},[e,t])},filterProperties=e=>e["x-component"]==="Action.Container",FieldLink=e=>{const t=e,{WrappedComponent:o}=t,r=te(t,["WrappedComponent"]),i=(0,import_react.useFieldSchema)(),{openPopup:n}=usePopupUtils(),l=(0,import_react2.useRef)(!1),a=useInsertSchema(),c=(0,import_react2.useRef)(i);c.current=i;const u=(0,import_react2.useRef)(a);u.current=a;const d=(0,import_react2.useRef)(n);d.current=n;const m=(0,import_react2.useCallback)(()=>c.current,[]),p=(0,import_react2.useCallback)(()=>{c.current.properties||(u.current(popupSchema),l.current=!0),l.current?(setTimeout(()=>{d.current({customActionSchema:m()})}),l.current=!1):c.current.properties&&d.current()},[m]),h=(0,import_react2.useMemo)(()=>(0,import_lodash.debounce)(p,600,{leading:!0,trailing:!1}),[p]);return(0,import_react2.useEffect)(()=>()=>{h.cancel()},[h]),(0,import_jsx_runtime.jsx)("a",{onClick:h,children:(0,import_jsx_runtime.jsx)(o,x({},r))})};function withPopupWrapper(e){return t=>{const[o,r]=(0,import_react2.useState)(!1),[i,n]=(0,import_react2.useState)(!1),l=useCollection(),a=useActionContext(),c=(0,import_react.useField)(),u=(0,import_react.useFieldSchema)(),{enableLink:d,openMode:m,openSize:p}=(u==null?void 0:u["x-component-props"])||{},{visibleWithURL:h,setVisibleWithURL:g}=usePopupUtils(),f=(0,import_react2.useCallback)(b=>{r==null||r(b),g==null||g(b)},[g]),_=(0,import_react2.useRef)(u);_.current=u;const{setSubmitted:v}=a;return d?(0,import_jsx_runtime.jsx)(PopupVisibleProvider,{visible:!1,children:(0,import_jsx_runtime.jsxs)(ActionContextProvider,{button:(0,import_jsx_runtime.jsx)(e,x({},t)),visible:o||h,setVisible:f,formValueChanged:i,setFormValueChanged:n,openMode:m,openSize:p,containerRefKey:"field-popup",fieldSchema:u,setSubmitted:v,children:[(0,import_jsx_runtime.jsx)(CollectionProvider,{name:l.name,children:(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{children:(0,import_jsx_runtime.jsx)(VariablePopupRecordProvider,{children:(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{onlyRenderProperties:!0,basePath:c==null?void 0:c.address,schema:u,filterProperties})})})}),(0,import_jsx_runtime.jsx)(FieldLink,A(x({},t),{WrappedComponent:e}))]})}):(0,import_jsx_runtime.jsx)(e,x({},t))}}const ReadPretty$d=()=>null;ReadPretty$d.DatePicker=function(e){const{value:t,picker:o="date"}=e,r=(0,import_builtins.usePrefixCls)("description-date-picker",e);if(!t)return(0,import_jsx_runtime.jsx)("div",{});const i=()=>{const n=(0,import_client.getDefaultFormat)(e),l=(0,import_client.str2moment)(t,e),a=import_dayjs.default.isDayjs(l)?l.format(n):"";return(0,import_shared.isArr)(a)?a.join("~"):a};return(0,import_jsx_runtime.jsx)("div",{className:(0,import_classnames.default)(r,e.className),children:i()})};ReadPretty$d.DateRangePicker=function(e){const t=(0,import_builtins.usePrefixCls)("description-text",e),o=(0,import_client.getDefaultFormat)(e),r=()=>{const i=(0,import_client.str2moment)(e.value,e);if(!i)return"";const n=i.map(l=>l.format(o));return(0,import_shared.isArr)(n)?n.join("~"):n};return(0,import_jsx_runtime.jsx)("div",{className:(0,import_classnames.default)(t,e.className),style:e.style,children:r()})};ReadPretty$d.DatePicker=withPopupWrapper(ReadPretty$d.DatePicker);const DatePickerContext=import_react2.default.createContext({utc:!0}),useDatePickerContext=()=>import_react2.default.useContext(DatePickerContext),DatePickerProvider=DatePickerContext.Provider,InternalDatePicker=(0,import_react.connect)(import_antd.DatePicker,(0,import_react.mapProps)(mapDatePicker()),(0,import_react.mapReadPretty)(ReadPretty$d.DatePicker)),InternalRangePicker=(0,import_react.connect)(import_antd.DatePicker.RangePicker,(0,import_react.mapProps)(mapRangePicker()),(0,import_react.mapReadPretty)(ReadPretty$d.DateRangePicker)),DatePicker=e=>{const{utc:t=!0}=useDatePickerContext(),o=Array.isArray(e.value)?e.value[0]:e.value,{parseVariable:r}=useVariables$1()||{},i=useLocalVariables$1(),[n,l]=(0,import_react2.useState)(null),[a,c]=(0,import_react2.useState)(null),u=(0,import_react2.useRef)(null);(0,import_react2.useEffect)(()=>(u.current&&u.current(),u.current=(0,import_reactive.autorun)(()=>{d()}),()=>{u.current()}),[e._maxDate,e._minDate,i,r]);const d=()=>L(void 0,null,function*(){let p=e._minDate?Promise.resolve((0,import_dayjs.default)(e._minDate)):Promise.resolve(null),h=e._maxDate?Promise.resolve((0,import_dayjs.default)(e._maxDate)):Promise.resolve(null);isVariable$1(e._maxDate)&&(h=r(e._maxDate,i).then(C=>(0,import_dayjs.default)(Array.isArray(C.value)?(0,import_lodash.last)(C.value):C.value))),isVariable$1(e._minDate)&&(p=r(e._minDate,i).then(C=>(0,import_dayjs.default)(Array.isArray(C.value)?(0,import_lodash.first)(C.value):C.value)));const[g,f]=yield Promise.all([p,h]),_=Array.from({length:60},(C,y)=>y),v=C=>{if(!import_dayjs.default.isDayjs(C))return!1;const y=g?g.startOf("day"):null,F=f?f.endOf("day"):null;return!!(y&&C.startOf("day").isBefore(y)||F&&C.startOf("day").isAfter(F))},b=C=>{if(!C||!g&&!f)return{disabledHours:()=>[],disabledMinutes:()=>[],disabledSeconds:()=>[]};const y=C,F=g&&y.isSame(g,"day"),S=f&&y.isSame(f,"day");return{disabledHours:()=>{const P=[];if(F)for(let j=0;j<g.hour();j++)P.push(j);if(S)for(let j=f.hour()+1;j<24;j++)P.push(j);return P},disabledMinutes:P=>F&&P===g.hour()?_.filter(j=>j<g.minute()):S&&P===f.hour()?_.filter(j=>j>f.minute()):[],disabledSeconds:(P,j)=>F&&P===g.hour()&&j===g.minute()?_.filter(I=>I<g.second()):S&&P===f.hour()&&j===f.minute()?_.filter(I=>I>f.second()):[]}};l(()=>v),c(()=>b)}),m=A(x({utc:t},e),{disabledDate:n,disabledTime:a,showTime:e.showTime?{defaultValue:(0,import_dayjs.default)("00:00:00","HH:mm:ss")}:!1});return(0,import_jsx_runtime.jsx)(InternalDatePicker,A(x({},m),{value:o}))};DatePicker.ReadPretty=ReadPretty$d.DatePicker;DatePicker.RangePicker=function(e){const{value:t,picker:o="date",format:r,showTime:i,timeFormat:n}=e,{t:l}=(0,import_react_i18next.useTranslation)(),a=(0,import_react.useFieldSchema)(),c=(0,import_react.useField)(),{utc:u=!0}=useDatePickerContext(),d=getDateRanges(),m=useCompile(),p=!(a!=null&&a["x-filter-operator"]),h=[{label:l("Today"),value:d.today},{label:l("Last week"),value:d.lastWeek},{label:l("This week"),value:d.thisWeek},{label:l("Next week"),value:d.nextWeek},{label:l("Last month"),value:d.lastMonth},{label:l("This month"),value:d.thisMonth},{label:l("Next month"),value:d.nextMonth},{label:l("Last quarter"),value:d.lastQuarter},{label:l("This quarter"),value:d.thisQuarter},{label:l("Next quarter"),value:d.nextQuarter},{label:l("Last year"),value:d.lastYear},{label:l("This year"),value:d.thisYear},{label:l("Next year"),value:d.nextYear},{label:l("Last 7 days"),value:d.last7Days},{label:l("Next 7 days"),value:d.next7Days},{label:l("Last 30 days"),value:d.last30Days},{label:l("Next 30 days"),value:d.next30Days},{label:l("Last 90 days"),value:d.last90Days},{label:l("Next 90 days"),value:d.next90Days}],g=t?inferPickerType(t==null?void 0:t[0],o):o,f=(0,import_client.getPickerFormat)(g)||r,_=A(x({utc:u,presets:h},e),{format:(0,import_client.getDateTimeFormat)(g,f,i,n),picker:g,showTime:i?{defaultValue:[(0,import_dayjs.default)("00:00:00","HH:mm:ss"),(0,import_dayjs.default)("23:59:59","HH:mm:ss")]}:!1}),[v,b]=(0,import_react2.useState)(_);return p?(0,import_jsx_runtime.jsxs)(import_antd.Space.Compact,{children:[(0,import_jsx_runtime.jsx)(import_antd.Select,{role:"button","data-testid":"select-picker",style:{width:"100px"},popupMatchSelectWidth:!1,defaultValue:g,options:m([{label:l("Date"),value:"date"},{label:l("Month"),value:"month"},{label:l("Quarter"),value:"quarter"},{label:l("Year"),value:"year"}]),onChange:C=>{const y=(0,import_client.getPickerFormat)(C),F=(0,import_client.getDateTimeFormat)(C,y,i,n);c==null||c.setComponentProps({picker:C,format:y}),_.picker=C,_.format=F,b(_),a&&(a["x-component-props"]=A(x({},e),{picker:C,format:F})),c&&(c.value=void 0)}}),(0,import_jsx_runtime.jsx)(InternalRangePicker,A(x({},v),{value:t}))]}):(0,import_jsx_runtime.jsx)(InternalRangePicker,x({},_))};function toLocalNaiveISOString(e,t){return e&&e.endsWith("Z")?(0,import_dayjs.default)(e).format(t):e}DatePicker.FilterWithPicker=function(e){const{picker:t="date",format:o,showTime:r,timeFormat:i}=e,n=isMobile(),{utc:l=!0}=useDatePickerContext(),a=Array.isArray(e.value)?e.value[0]:e.value,c=(0,import_react.useFieldSchema)(),u=a?inferPickerType(a,t):t,[d,m]=(0,import_react2.useState)(u),p=(0,import_client.getPickerFormat)(u)||o,{t:h}=(0,import_react_i18next.useTranslation)(),g=A(x({utc:l,inputReadOnly:n},e),{underFilter:!0,showTime:r?{defaultValue:(0,import_dayjs.default)("00:00:00","HH:mm:ss")}:!1,format:(0,import_client.getDateTimeFormat)(d,p,r,i),picker:d,onChange:b=>{e.onChange(void 0),setTimeout(()=>{e.onChange(b)})}}),f=(0,import_react.useField)(),[_,v]=(0,import_react2.useState)(g);return(0,import_jsx_runtime.jsxs)(import_antd.Space.Compact,{style:{width:"100%"},children:[(0,import_jsx_runtime.jsx)(import_antd.Select,{role:"button","data-testid":"select-picker",style:{width:"100px"},popupMatchSelectWidth:!1,value:d,options:[{label:h("Date"),value:"date"},{label:h("Month"),value:"month"},{label:h("Quarter"),value:"quarter"},{label:h("Year"),value:"year"}],onChange:b=>{m(b);const C=(0,import_client.getPickerFormat)(b),y=(0,import_client.getDateTimeFormat)(b,C,r,i);f==null||f.setComponentProps({picker:b,format:C}),g.picker=b,g.format=y,v(g),c!=null&&c["x-component-props"]&&(c["x-component-props"]=A(x({},e),{picker:b,format:y})),f&&(f.value=null)}}),(0,import_jsx_runtime.jsx)(InternalDatePicker,A(x({},_),{value:toLocalNaiveISOString(a,(0,import_client.getDateTimeFormat)(d,p,r,i))}))]})};const useDateVariable=({operator:e,schema:t,noDisabled:o})=>{const{t:r}=(0,import_react_i18next.useTranslation)(),i=(e==null?void 0:e.value)||"",n=o?!1:!["DatePicker","DatePicker.RangePicker"].includes(t==null?void 0:t["x-component"]),l=[{key:"now",value:"now",label:r("Current time"),disabled:o?!1:(t==null?void 0:t["x-component"])!=="DatePicker"||i==="$dateBetween",operators:datetime,schema:{}},{key:"dayBeforeYesterday",value:"dayBeforeYesterday",label:r("Day before yesterday"),disabled:n,operators:datetime},{key:"yesterday",value:"yesterday",label:r("Yesterday"),disabled:n,operators:datetime},{key:"today",value:"today",label:r("Today"),disabled:n,operators:datetime},{key:"tomorrow",value:"tomorrow",label:r("Tomorrow"),disabled:n,operators:datetime},{key:"lastIsoWeek",value:"lastIsoWeek",label:r("Last week"),disabled:n,operators:datetime},{key:"thisIsoWeek",value:"thisIsoWeek",label:r("This week"),disabled:n,operators:datetime},{key:"nextIsoWeek",value:"nextIsoWeek",label:r("Next week"),disabled:n,operators:datetime},{key:"lastMonth",value:"lastMonth",label:r("Last month"),disabled:n,operators:datetime},{key:"thisMonth",value:"thisMonth",label:r("This month"),disabled:n,operators:datetime},{key:"nextMonth",value:"nextMonth",label:r("Next month"),disabled:n,operators:datetime},{key:"lastQuarter",value:"lastQuarter",label:r("Last quarter"),disabled:n,operators:datetime},{key:"thisQuarter",value:"thisQuarter",label:r("This quarter"),disabled:n,operators:datetime},{key:"nextQuarter",value:"nextQuarter",label:r("Next quarter"),disabled:n,operators:datetime},{key:"lastYear",value:"lastYear",label:r("Last year"),disabled:n,operators:datetime},{key:"thisYear",value:"thisYear",label:r("This year"),disabled:n,operators:datetime},{key:"nextYear",value:"nextYear",label:r("Next year"),disabled:n,operators:datetime},{key:"last7Days",value:"last7Days",label:r("Last 7 days"),disabled:n,operators:datetime},{key:"next7Days",value:"next7Days",label:r("Next 7 days"),disabled:n,operators:datetime},{key:"last30Days",value:"last30Days",label:r("Last 30 days"),disabled:n,operators:datetime},{key:"next30Days",value:"next30Days",label:r("Next 30 days"),disabled:n,operators:datetime},{key:"last90Days",value:"last90Days",label:r("Last 90 days"),disabled:n,operators:datetime},{key:"next90Days",value:"next90Days",label:r("Next 90 days"),disabled:n,operators:datetime}],a=(0,import_react2.useMemo)(()=>({label:r("Date variables"),value:"$nDate",key:"$nDate",disabled:l.every(c=>c.disabled),children:l}),[t==null?void 0:t["x-component"]]);return t?a:null},useDatetimeVariableContext=()=>{const{utc:e=!0}=useDatePickerContext();return{datetimeCtx:(0,import_react2.useMemo)(()=>getDateRanges({shouldBeString:!0,utc:e}),[e])}},useDatetimeVariable=({operator:e,schema:t,noDisabled:o,targetFieldSchema:r}={})=>{const{t:i}=(0,import_react_i18next.useTranslation)(),{getOperator:n}=useOperators(),{collectionField:l}=useFlag(),a=(0,import_react2.useMemo)(()=>{const u=(e==null?void 0:e.value)||n(r==null?void 0:r.name)||"",d=o?!1:!["DatePicker.RangePicker"].includes(t==null?void 0:t["x-component"])&&!u,m=[{key:"now",value:"now",label:i("Current time"),disabled:o?!1:(t==null?void 0:t["x-component"])!=="DatePicker"||u==="$dateBetween",operators:datetime},{key:"dayBeforeYesterday",value:"dayBeforeYesterday",label:i("Day before yesterday"),disabled:d,operators:datetime},{key:"yesterday",value:"yesterday",label:i("Yesterday"),disabled:d,operators:datetime},{key:"today",value:"today",label:i("Today"),disabled:d,operators:datetime},{key:"tomorrow",value:"tomorrow",label:i("Tomorrow"),disabled:d,operators:datetime},{key:"lastIsoWeek",value:"lastIsoWeek",label:i("Last week"),disabled:d,operators:datetime},{key:"thisIsoWeek",value:"thisIsoWeek",label:i("This week"),disabled:d,operators:datetime},{key:"nextIsoWeek",value:"nextIsoWeek",label:i("Next week"),disabled:d,operators:datetime},{key:"lastMonth",value:"lastMonth",label:i("Last month"),disabled:d,operators:datetime},{key:"thisMonth",value:"thisMonth",label:i("This month"),disabled:d,operators:datetime},{key:"nextMonth",value:"nextMonth",label:i("Next month"),disabled:d,operators:datetime},{key:"lastQuarter",value:"lastQuarter",label:i("Last quarter"),disabled:d,operators:datetime},{key:"thisQuarter",value:"thisQuarter",label:i("This quarter"),disabled:d,operators:datetime},{key:"nextQuarter",value:"nextQuarter",label:i("Next quarter"),disabled:d,operators:datetime},{key:"lastYear",value:"lastYear",label:i("Last year"),disabled:d,operators:datetime},{key:"thisYear",value:"thisYear",label:i("This year"),disabled:d,operators:datetime},{key:"nextYear",value:"nextYear",label:i("Next year"),disabled:d,operators:datetime},{key:"last7Days",value:"last7Days",label:i("Last 7 days"),disabled:d,operators:datetime},{key:"next7Days",value:"next7Days",label:i("Next 7 days"),disabled:d,operators:datetime},{key:"last30Days",value:"last30Days",label:i("Last 30 days"),disabled:d,operators:datetime},{key:"next30Days",value:"next30Days",label:i("Next 30 days"),disabled:d,operators:datetime},{key:"last90Days",value:"last90Days",label:i("Last 90 days"),disabled:d,operators:datetime},{key:"next90Days",value:"next90Days",label:i("Next 90 days"),disabled:d,operators:datetime}];return{label:i(l?"Date variables(Deprecated)":"Date variables"),value:"$nDate",key:"$nDate",disabled:m.every(p=>p.disabled)||l,children:m}},[t==null?void 0:t["x-component"],r]),{datetimeCtx:c}=useDatetimeVariableContext();return{datetimeSettings:a,datetimeCtx:c}},useExactDateVariableContext=()=>({exactDateTimeCtx:(0,import_react2.useMemo)(()=>getDateExact(),[])}),useExactDateVariable=({schema:e,targetFieldSchema:t}={})=>{var o;const{collectionField:r}=useFlag(),{dateOnly:i,utc:n,accuracy:l,picker:a}=((o=r==null?void 0:r.uiSchema)==null?void 0:o["x-component-props"])||{},{t:c}=(0,import_react_i18next.useTranslation)(),u=(0,import_react2.useMemo)(()=>{const m=h=>{if(!a){if(h==="now")return"nowLocal";if(h==="today")return"todayDate";if(h==="yesterday")return"yesterdayDate";if(h==="tomorrow")return"tomorrowDate"}return i?h==="now"?null:`${h}Date`:`${h}${n||l?"Utc":"Local"}`},p=[{key:"now",value:m("now"),label:c("Now"),operators:datetime},{key:"today",value:m("today"),label:c("Today"),operators:datetime},{key:"yesterday",value:m("yesterday"),label:c("Yesterday"),operators:datetime},{key:"tomorrow",value:m("tomorrow"),label:c("Tomorrow"),operators:datetime}].filter(h=>h.value);return{label:c("Date variables"),value:"$nExactDate",key:"$nExactDate",children:p}},[e==null?void 0:e["x-component"],t]),{exactDateTimeCtx:d}=useExactDateVariableContext();return{exactDateTimeSettings:u,exactDateTimeCtx:d,shouldDisplayExactDate:!!r}},useCurrentFormContext=({form:e}={})=>{const{form:t}=useFormBlockContext(),{isVariableParsedInOtherContext:o}=useFlag(),{name:r}=(useBlockContext==null?void 0:useBlockContext())||{},i=e||t;return{currentFormCtx:i==null?void 0:i.values,shouldDisplayCurrentForm:["form","filter-form"].includes(r)&&i&&!i.readPretty&&!o}},useCurrentFormVariable=({collectionField:e,schema:t,noDisabled:o,targetFieldSchema:r,form:i}={})=>{const{currentFormCtx:n,shouldDisplayCurrentForm:l}=useCurrentFormContext({form:i}),{t:a}=(0,import_react_i18next.useTranslation)(),{collectionName:c}=useFormBlockContext(),u=useCollection(),d=useDataSource();return{currentFormSettings:useBaseVariable({collectionField:e,uiSchema:t,targetFieldSchema:r,maxDepth:4,name:"$nForm",title:a("Current form"),collectionName:c||(u==null?void 0:u.name),noDisabled:o,dataSource:d==null?void 0:d.key,returnFields:(m,p)=>m}),currentFormCtx:n,shouldDisplayCurrentForm:l}},useCurrentObjectContext=()=>{const{isInSubForm:e,isInSubTable:t}=useFlag()||{},{formValue:o,collection:r}=useSubFormValue();return{shouldDisplayCurrentObject:e||t,currentObjectCtx:o,collectionOfCurrentObject:r}},useCurrentObjectVariable=({collectionField:e,schema:t,noDisabled:o,targetFieldSchema:r}={})=>{const i=useCollection(),{t:n}=(0,import_react_i18next.useTranslation)(),{shouldDisplayCurrentObject:l,currentObjectCtx:a,collectionOfCurrentObject:c}=useCurrentObjectContext(),u=useBaseVariable({collectionField:e,uiSchema:t,targetFieldSchema:r,maxDepth:4,name:"$iteration",title:n("Current object"),collectionName:(c==null?void 0:c.name)||(i==null?void 0:i.name),noDisabled:o,dataSource:i==null?void 0:i.dataSource,returnFields:(d,m)=>d});return{shouldDisplayCurrentObject:l,currentObjectCtx:a,currentObjectSettings:u}},ParentCollectionContext=(0,import_react2.createContext)(null);ParentCollectionContext.displayName="ParentCollectionContext";const ParentCollectionProvider=e=>{const t=useCollection();return(0,import_jsx_runtime.jsx)(ParentCollectionContext.Provider,{value:t,children:e.children})},useParentCollection=()=>(0,import_react2.useContext)(ParentCollectionContext),AssociationProvider=e=>{const{name:t,children:o}=e,r=useCollectionManager().getCollectionName(t);return r?(0,import_jsx_runtime.jsx)(CollectionProvider,{name:String(t).split(".")[0],children:(0,import_jsx_runtime.jsx)(ParentCollectionProvider,{children:(0,import_jsx_runtime.jsx)(CollectionFieldProvider,{name:t,children:(0,import_jsx_runtime.jsx)(CollectionProvider,{name:r,children:o})})})}):(0,import_jsx_runtime.jsx)(CollectionDeletedPlaceholder,{type:"Collection",name:t})},useAssociationName=()=>{const e=useCollectionField();return e!=null&&e.target?`${e.collectionName}.${e.name}`:null},getResolvedParent=(e,t)=>{let o=e;for(;o!=null&&o.parent&&o.value===t;)o=o.parent;return o},useParentObjectContext=()=>{const{parent:e,formValue:t}=useSubFormValue(),o=useCollectionParentRecordData(),r=useParentCollection(),i=getResolvedParent(e,t),n=i==null?void 0:i.value,l=import_lodash.default.isEmpty(n)&&!import_lodash.default.isEmpty(o)?o:n,a=(i==null?void 0:i.collection)||r,{isInSubForm:c,isInSubTable:u}=useFlag()||{};return{shouldDisplayParentObject:(c||u)&&!!a,parentObjectCtx:l,collectionName:a==null?void 0:a.name,dataSource:a==null?void 0:a.dataSource}},useParentObjectVariable=({collectionField:e,schema:t,noDisabled:o,targetFieldSchema:r}={})=>{const{t:i}=(0,import_react_i18next.useTranslation)(),{shouldDisplayParentObject:n,parentObjectCtx:l,collectionName:a,dataSource:c}=useParentObjectContext();return{parentObjectSettings:useBaseVariable({collectionField:e,uiSchema:t,targetFieldSchema:r,maxDepth:4,name:"$nParentIteration",title:i("Parent object"),collectionName:a,noDisabled:o,dataSource:c,returnFields:(u,d)=>u}),shouldDisplayParentObject:n,parentObjectCtx:l,collectionName:a}},useParentPopupVariableContext=()=>{const{value:e,title:t,collection:o}=useParentPopupRecord()||{},{isVariableParsedInOtherContext:r}=useFlag();return{parentPopupRecordCtx:e,shouldDisplayParentPopupRecord:!!e&&!r,collectionName:o==null?void 0:o.name,dataSource:o==null?void 0:o.dataSource,defaultValue:void 0,title:t}},useParentPopupVariable=(e={})=>{const{parentPopupRecordCtx:t,shouldDisplayParentPopupRecord:o,collectionName:r,dataSource:i,defaultValue:n,title:l}=useParentPopupVariableContext();return{settings:useBaseVariable({collectionField:e.collectionField,uiSchema:e.schema,name:"$nParentPopupRecord",title:l,collectionName:r,noDisabled:e.noDisabled,targetFieldSchema:e.targetFieldSchema,dataSource:i}),parentPopupRecordCtx:t,shouldDisplayParentPopupRecord:o,collectionName:r,dataSource:i,defaultValue:n}},useCurrentParentRecordContext=()=>{var e,t;const o=useCollectionRecord(),{name:r,dataSource:i}=useParentCollection()||{},n=useCollection(),{isInSubForm:l,isInSubTable:a}=useFlag()||{},c=r?i:n==null?void 0:n.dataSource,u=useCollectionField();return{currentParentRecordCtx:((e=o==null?void 0:o.parentRecord)==null?void 0:e.data)||(o==null?void 0:o.data),shouldDisplayCurrentParentRecord:!!((t=o==null?void 0:o.parentRecord)!=null&&t.data)&&!l&&!a&&u,collectionName:r||(n==null?void 0:n.name),dataSource:c}},useCurrentParentRecordVariable=(e={})=>{const{t}=(0,import_react_i18next.useTranslation)(),{currentParentRecordCtx:o,shouldDisplayCurrentParentRecord:r,collectionName:i,dataSource:n}=useCurrentParentRecordContext();return{currentParentRecordSettings:useBaseVariable({collectionField:e.collectionField,uiSchema:e.schema,name:"$nParentRecord",title:t("Parent record"),collectionName:i,noDisabled:e.noDisabled,targetFieldSchema:e.targetFieldSchema,dataSource:n}),currentParentRecordCtx:o,shouldDisplayCurrentParentRecord:r,collectionName:i,dataSource:n}},usePopupVariableContext=()=>{const{value:e,title:t,collection:o}=useCurrentPopupRecord()||{},{isVariableParsedInOtherContext:r}=useFlag();return{popupRecordCtx:e,shouldDisplayPopupRecord:!!e&&!r,collectionName:o==null?void 0:o.name,dataSource:o==null?void 0:o.dataSource,defaultValue:void 0,title:t}},usePopupVariable=(e={})=>{const{popupRecordCtx:t,shouldDisplayPopupRecord:o,collectionName:r,dataSource:i,defaultValue:n,title:l}=usePopupVariableContext();return{settings:useBaseVariable({collectionField:e.collectionField,uiSchema:e.schema,name:"$nPopupRecord",title:l,collectionName:r,noDisabled:e.noDisabled,targetFieldSchema:e.targetFieldSchema,dataSource:i}),popupRecordCtx:t,shouldDisplayPopupRecord:o,collectionName:r,dataSource:i,defaultValue:n}},useRoleVariable=({collectionField:e,uiSchema:t,noDisabled:o,targetFieldSchema:r,maxDepth:i=0})=>{const{t:n}=(0,import_react_i18next.useTranslation)();return useBaseVariable({collectionField:e,uiSchema:t,maxDepth:i,name:"$nRole",title:n("Current role"),collectionName:"roles",noDisabled:o,targetFieldSchema:r,noChildren:!0,operators:string})},useCurrentRoleVariable=({collectionField:e,uiSchema:t,noDisabled:o,targetFieldSchema:r,maxDepth:i=0}={})=>{var n,l,a;const{t:c}=(0,import_react_i18next.useTranslation)(),u=useAPIClient(),d=useCompile(),{data:m}=useCurrentUserContext()||{},p=(((n=m==null?void 0:m.data)==null?void 0:n.roles)||[]).map(({name:h,title:g})=>({name:h,title:d(g)}));return{currentRoleSettings:useBaseVariable({collectionField:e,uiSchema:t,maxDepth:i,name:"$nRole",title:c("Current role"),collectionName:"roles",noDisabled:o,targetFieldSchema:r,noChildren:!0,operators:string}),currentRoleCtx:((l=u.auth)==null?void 0:l.role)==="__union__"?p.map(h=>h.name):(a=u.auth)==null?void 0:a.role}},getURLSearchParams=e=>(e.startsWith("?")&&(e=e.slice(1)),import_qs.default.parse(e)||{}),getURLSearchParamsChildren=e=>Object.keys(e).map(t=>({label:t,value:t,key:t,isLeaf:!0,operators:string})),useURLSearchParamsCtx=e=>{const[t]=(0,import_react2.useState)(()=>(0,import_reactive.observable)({}));return(0,import_react2.useMemo)(()=>{const o=getURLSearchParams(e);return(0,import_reactive.untracked)(()=>{Object.assign(t,o),Object.keys(t).forEach(r=>{o[r]===void 0&&delete t[r]})}),t},[t,e])},useURLSearchParamsVariable=(e={})=>{const t="$nURLSearchParams",{t:o}=(0,import_react_i18next.useTranslation)(),r=useLocationSearch(),{isVariableParsedInOtherContext:i}=useFlag(),n=useURLSearchParamsCtx(r),l=(0,import_react2.useMemo)(()=>import_lodash.default.isEmpty(n),[n]),a=(0,import_react2.useMemo)(()=>({label:getLabelWithTooltip(o("URL search params"),l?o("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."):""),value:t,key:t,isLeaf:!1,disabled:l,loadChildren:(c,u)=>L(void 0,null,function*(){const d=u?{[u]:void 0}:{};c.children=getURLSearchParamsChildren(x(x({},d),n))})}),[l,o,n]);return{name:t,urlSearchParamsSettings:a,urlSearchParamsCtx:n,defaultValue:void 0,shouldDisplay:!i}},useVariableOptions=({collectionField:e,form:t,uiSchema:o,operator:r,noDisabled:i,targetFieldSchema:n,record:l})=>{var a,c;const u=useApp(),d=((a=u==null?void 0:u.getVariables)==null?void 0:a.call(u).map(q=>{const{visible:O=!0,option:V}=q.useOption();return{visible:O,option:V}}).filter(({visible:q})=>q))||[],{filterVariables:m=()=>!0}=useVariables$1()||{},p=(c=l==null?void 0:l.__parent)==null?void 0:c.__collectionName,{currentUserSettings:h}=useCurrentUserVariable({maxDepth:3,uiSchema:o,collectionField:e,noDisabled:i,targetFieldSchema:n}),{currentRoleSettings:g}=useCurrentRoleVariable({uiSchema:o,collectionField:e,noDisabled:i,targetFieldSchema:n}),{apiTokenSettings:f}=useAPITokenVariable({noDisabled:i}),{datetimeSettings:_}=useDatetimeVariable({operator:r,schema:o,noDisabled:!0,targetFieldSchema:n}),{exactDateTimeSettings:v,shouldDisplayExactDate:b}=useExactDateVariable({operator:r,schema:o,noDisabled:!0,targetFieldSchema:n}),{currentFormSettings:C,shouldDisplayCurrentForm:y}=useCurrentFormVariable({schema:o,collectionField:e,noDisabled:i,targetFieldSchema:n,form:t}),{currentObjectSettings:F,shouldDisplayCurrentObject:S}=useCurrentObjectVariable({collectionField:e,schema:o,noDisabled:i,targetFieldSchema:n}),{parentObjectSettings:P,shouldDisplayParentObject:j}=useParentObjectVariable({collectionField:e,schema:o,noDisabled:i,targetFieldSchema:n}),{currentRecordSettings:I,shouldDisplayCurrentRecord:M}=useCurrentRecordVariable({schema:o,collectionField:e,noDisabled:i,targetFieldSchema:n}),{settings:E,shouldDisplayPopupRecord:D}=usePopupVariable({schema:o,collectionField:e,noDisabled:i,targetFieldSchema:n}),{settings:k,shouldDisplayParentPopupRecord:w}=useParentPopupVariable({schema:o,collectionField:e,noDisabled:i,targetFieldSchema:n}),{currentParentRecordSettings:B,shouldDisplayCurrentParentRecord:N}=useCurrentParentRecordVariable({schema:o,collectionName:p,collectionField:e,noDisabled:i,targetFieldSchema:n}),{urlSearchParamsSettings:T,shouldDisplay:$}=useURLSearchParamsVariable();return[...(0,import_react2.useMemo)(()=>[h,g,f,_,b&&v,y&&C,S&&F,j&&P,M&&I,N&&B,D&&E,w&&k,$&&T].filter(Boolean).filter(m),[h,g,f,_,y,C,S,F,j,P,M,I,N,B,D,E,$,T]),...d.map(({option:q})=>q)]},VariableInput=e=>{const{value:t,onChange:o,renderSchemaComponent:r,style:i,schema:n,className:l,contextCollectionName:a,collectionField:c,shouldChange:u,form:d,record:m,returnScope:p=import_lodash.default.identity,targetFieldSchema:h,noDisabled:g,hideVariableButton:f,setScopes:_,nullable:v=!0,constantAbel:b=!0,changeOnSelect:C=!0}=e,{name:y}=useBlockCollection(),F=useVariableScope(),{operator:S,schema:P=c==null?void 0:c.uiSchema}=useValues$2(),j=useVariableOptions({collectionField:c,form:d,record:m,operator:S,uiSchema:P,targetFieldSchema:h,noDisabled:g}),I=useContextAssociationFields({schema:n,maxDepth:2,contextCollectionName:a,collectionField:c}),{compatOldVariables:M}=useCompatOldVariables({collectionField:c,uiSchema:P,targetFieldSchema:h,blockCollectionName:y});a&&j.every(k=>k.value!==I.value)&&j.push(I);const E=(0,import_react2.useCallback)((k,w)=>{if(!u)return o(k,w);setTimeout(()=>L(void 0,null,function*(){(yield u(k,w))&&o(k,w)}))},[o,u]),D=p(M(import_lodash.default.isEmpty(F)?j:F,{value:t}));return(0,import_react2.useEffect)(()=>{_==null||_(D)},[t,F]),(0,import_jsx_runtime.jsx)(Variable.Input,{className:l,value:t,onChange:E,scope:D,style:i,changeOnSelect:C,hideVariableButton:f,nullable:v,constantAbel:b,children:(0,import_jsx_runtime.jsx)(r,{value:t,onChange:o})})},getShouldChange=({collectionField:e,variables:t,localVariables:o,getAllCollectionsInheritChain:r})=>(e&&r(e.target),(i,n)=>L(void 0,null,function*(){return!0}));function useCompatOldVariables(e){const{uiSchema:t,collectionField:o,noDisabled:r,targetFieldSchema:i,blockCollectionName:n}=e,{t:l}=(0,import_react_i18next.useTranslation)(),{currentUserSettings:a}=useCurrentUserVariable({maxDepth:1,uiSchema:t,collectionField:o,noDisabled:r,targetFieldSchema:i}),{currentRecordSettings:c}=useCurrentRecordVariable({schema:t,collectionField:o,noDisabled:r,targetFieldSchema:i});return{compatOldVariables:(0,import_react2.useCallback)((u,{value:d})=>{if(!isVariable$1(d))return u;u=[...u];const m={value:"$system",key:"$system",label:l("System variables"),isLeaf:!1,children:[{value:"now",key:"now",label:l("Current time"),isLeaf:!0,depth:1}],depth:0},p={value:"currentTime",label:l("Current time"),children:null};if(d.includes("$system")&&u.push(m),d.includes(`${n}.`)){const h=u.find(g=>g.value==="$nForm"||g.value==="$nRecord");h&&(h.value=n)}if(d.includes("$form")){const h=u.find(g=>g.value==="$nForm");h&&(h.value="$form")}if(d.includes("currentUser")){const h=u.find(g=>g.value==="$user");h?h.value="currentUser":u.unshift(A(x({},a),{value:"currentUser"}))}if(d.includes("currentRecord")){const h=u.find(g=>g.value==="$nRecord");h?h.value="currentRecord":u.unshift(A(x({},c),{value:"currentRecord"}))}if(d.includes("currentTime")&&u.push(p),d.includes("$date")){const h=u.find(g=>g.value==="$nDate");h&&(h.value="$date")}return u},[n])}}const SchemaSettingsDataScope=function(e){const{t}=(0,import_react_i18next.useTranslation)(),{getFields:o}=useCollectionFilterOptionsV2(e.collectionName),r=useRecord(),{form:i}=useFormBlockContext(),n=useVariables$1(),l=useLocalVariables$1(),{getAllCollectionsInheritChain:a}=useCollectionManager_deprecated(),{isInSubForm:c,isInSubTable:u}=useFlag()||{},d=useBlockContext==null?void 0:useBlockContext(),m=(0,import_react2.useCallback)(h=>(0,import_jsx_runtime.jsx)(DatePickerProvider,{value:{utc:!1},children:(0,import_jsx_runtime.jsx)(VariableInput,A(x({},h),{form:i,record:r,noDisabled:!0,shouldChange:getShouldChange({collectionField:h.collectionField,variables:n,localVariables:l,getAllCollectionsInheritChain:a})}))}),[i,a,l,r,n]),p=()=>({type:"object",title:t("Set the data scope"),properties:{filter:{enum:e.collectionFilterOption||o(),"x-decorator":h=>(0,import_jsx_runtime.jsx)(BaseVariableProvider,A(x({},h),{children:(0,import_jsx_runtime.jsx)(FlagProvider,{isInSubForm:c,isInSubTable:u,children:(0,import_jsx_runtime.jsx)(BlockContext.Provider,{value:{name:i?"form":d==null?void 0:d.name},children:h.children})})})),"x-decorator-props":{isDisabled},"x-component":"Filter","x-component-props":{collectionName:e.collectionName,dynamicComponent:e.dynamicComponent||m}}}});return(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:t("Set the data scope"),initialValues:{filter:e.defaultFilter},schema:p,onSubmit:e.onSubmit,noRecord:e.noRecord})};function isDisabled(e){var t,o;const{option:r,collectionField:i,uiSchema:n}=e;return!n||!i?!0:i.interface==="json"||r.target?!1:["input","markdown","richText","textarea","username"].includes(i.interface)?!["string","number"].includes((t=r.schema)==null?void 0:t.type):i.interface&&r.interface?i.interface!==r.interface:(n==null?void 0:n["x-component"])!==((o=r.schema)==null?void 0:o["x-component"])}const SchemaSettingsDateFormat=function(e){var t,o,r,i,n,l,a,c,u,d,m,p;const{fieldSchema:h}=e,g=(0,import_react.useField)(),{dn:f}=useDesignable(),{t:_}=(0,import_react_i18next.useTranslation)(),{getCollectionJoinField:v}=useCollectionManager_deprecated(),b=v(h==null?void 0:h["x-collection-field"])||{},C=(t=h==null?void 0:h["x-component-props"])==null?void 0:t.showTime,y=((o=h==null?void 0:h["x-component-props"])==null?void 0:o.dateFormat)||((i=(r=b==null?void 0:b.uiSchema)==null?void 0:r["x-component-props"])==null?void 0:i.dateFormat)||"YYYY-MM-DD",F=((n=h==null?void 0:h["x-component-props"])==null?void 0:n.timeFormat)||((a=(l=b==null?void 0:b.uiSchema)==null?void 0:l["x-component-props"])==null?void 0:a.timeFormat)||"HH:mm:ss",S=((c=h==null?void 0:h["x-component-props"])==null?void 0:c.picker)||((d=(u=b==null?void 0:b.uiSchema)==null?void 0:u["x-component-props"])==null?void 0:d.picker)||"date",P=h["x-read-pretty"]||g.readOnly||g.readPretty;return(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:_("Date display format"),scope:{getPickerFormat:import_client.getPickerFormat},schema:{type:"object",properties:{picker:{type:"string",title:'{{t("Picker")}}',"x-decorator":"FormItem","x-component":"Radio.Group",default:S,description:!P&&'{{ t("Switching the picker, the value and default value will be cleared") }}',enum:[{label:'{{t("Date")}}',value:"date"},{label:'{{t("Month")}}',value:"month"},{label:'{{t("Quarter")}}',value:"quarter"},{label:'{{t("Year")}}',value:"year"}]},dateFormat:{type:"string",title:'{{t("Date format")}}',"x-component":ExpiresRadio$1,"x-decorator":"FormItem","x-decorator-props":{},"x-component-props":{className:import_css.css`
276
276
  .ant-radio-wrapper {
277
277
  display: flex;
278
278
  margin: 5px 0px;
@@ -386,7 +386,7 @@ ${JSON.stringify(q,null,2)}`)},[u,c,a,i,r,P,t,l,n,g,o,f,C,j,y,F,h]),M=(0,import_
386
386
  max-height: 300px;
387
387
  overflow-y: auto;
388
388
  }
389
- `,menu:{items:g,"data-testid":"schema-settings-menu",style:{maxHeight:u,overflowY:"auto"}},children:(0,import_jsx_runtime.jsx)("div",{"data-testid":e["data-testid"],children:typeof o=="string"?(0,import_jsx_runtime.jsx)("span",{children:o}):o})})]}))}),InternalSchemaSettingsMenu=import_react2.default.memo(e=>{const t=e,{title:o,dn:r}=t,i=te(t,["title","dn"]),[n,l]=(0,import_react2.useState)(!0),{Component:a,getMenuItems:c}=useMenuItem(),u=c(()=>e.children);return(0,import_jsx_runtime.jsxs)(SchemaSettingsProvider,A(x({visible:n,setVisible:l,dn:r},i),{children:[(0,import_jsx_runtime.jsx)(a,{}),(0,import_jsx_runtime.jsx)(import_antd.Menu,{items:u})]}))}),SchemaSettingsDropdown=import_react2.default.memo(e=>{const{mode:t}=e;return t==="inline"?(0,import_jsx_runtime.jsx)(InternalSchemaSettingsMenu,x({},e)):(0,import_jsx_runtime.jsx)(InternalSchemaSettingsDropdown,x({},e))});SchemaSettingsDropdown.displayName="SchemaSettingsDropdown";const findGridSchema=e=>e.reduceProperties((t,o)=>{if(o["x-component"]==="FormV2"||o["x-component"]==="Details"){const r=o.reduceProperties((i,n)=>n["x-component"]==="Grid"||n["x-component"]==="BlockTemplate"?n:i,null);if(r)return r}return t},null),findBlockTemplateSchema=e=>e.reduceProperties((t,o)=>{if(o["x-component"]==="FormV2"||o["x-component"]==="Details"){const r=o.reduceProperties((i,n)=>n["x-component"]==="BlockTemplate"?n:i,null);if(r)return r}return t},null),SchemaSettingsFormItemTemplate=function(e){const{insertAdjacentPosition:t="afterBegin",componentName:o,collectionName:r,resourceName:i}=e,{t:n}=(0,import_react_i18next.useTranslation)(),l=useCompile(),a=useCollectionManager(),{dn:c,setVisible:u,template:d,fieldSchema:m}=useSchemaSettings(),p=useAPIClient(),{saveAsTemplate:h,copyTemplateSchema:g}=useSchemaTemplateManager(),{theme:f}=useGlobalTheme();return r?d?(0,import_jsx_runtime.jsx)(SchemaSettingsItem,{title:"Convert reference to duplicate",onClick:()=>L(this,null,function*(){const _=yield g(d),v=findBlockTemplateSchema(m),b=createDesignable({t:n,api:p,current:v.parent});b.loadAPIClientEvents(),b.removeWithoutEmit(v),b.insertAdjacent(t,_,{onSuccess(){return L(this,null,function*(){yield p.request({url:`/uiSchemas:remove/${v["x-uid"]}`})})}}),m["x-template-key"]=null,yield p.request({url:"uiSchemas:patch",method:"post",data:{"x-uid":m["x-uid"],"x-template-key":null}}),c.refresh()}),children:n("Convert reference to duplicate")}):(0,import_jsx_runtime.jsx)(SchemaSettingsItem,{title:n("Save as reference template"),onClick:()=>L(this,null,function*(){u(!1);const _=r&&(a==null?void 0:a.getCollection(r)),v=findGridSchema(m),b=yield FormDialog(n("Save as reference template"),()=>{const F={FormItem:n("Form"),ReadPrettyFormItem:n("Details")};return(0,import_jsx_runtime.jsx)(import_antd_v5.FormLayout,{layout:"vertical",children:(0,import_jsx_runtime.jsx)(SchemaComponent,{components:{Input:import_antd_v5.Input,FormItem:import_antd_v5.FormItem},schema:{type:"object",properties:{name:{title:n("Template name"),required:!0,default:_?`${l((_==null?void 0:_.title)||(_==null?void 0:_.name))}_${n(F[o]||o)}`:n(F[o]||o),"x-decorator":"FormItem","x-component":"Input"}}}})})},f).open({}),C=createDesignable({t:n,api:p,current:v.parent});C.loadAPIClientEvents();const{key:y}=yield h({collectionName:r,resourceName:i,componentName:o,dataSourceKey:_.dataSource,name:b.name,uid:v["x-uid"]});C.removeWithoutEmit(v),C.insertAdjacent(t,{type:"void","x-component":"BlockTemplate","x-component-props":{templateId:y}}),m["x-template-key"]=y,yield p.request({url:"uiSchemas:patch",method:"post",data:{"x-uid":m["x-uid"],"x-template-key":y}}),c.refresh()}),children:n("Save as reference template")}):null},SchemaSettingsItem=e=>{const{pushMenuItem:t}=useCollectMenuItems(),{collectMenuItem:o}=useCollectMenuItem(),{eventKey:r,title:i}=e,n=A(x({key:i},import_lodash.default.omit(e,["children","name"])),{eventKey:r,onClick:l=>{var a;l.domEvent.preventDefault(),l.domEvent.stopPropagation(),(a=e==null?void 0:e.onClick)==null||a.call(e,l)},style:{minWidth:120},label:e.children||e.title,title:e.title});return t==null||t(n),o==null||o(n),null},SchemaSettingsItemGroup=e=>{const{Component:t,getMenuItems:o}=useMenuItem(),{pushMenuItem:r}=useCollectMenuItems(),i={key:(0,import_react2.useMemo)(()=>(0,import_shared.uid)(),[]),type:"group",title:e.title,label:e.title,children:o(()=>e.children)};return r(i),(0,import_jsx_runtime.jsx)(t,{})},SchemaSettingsSubMenu=function(e){const{Component:t,getMenuItems:o}=useMenuItem(),{pushMenuItem:r}=useCollectMenuItems(),i={key:(0,import_react2.useMemo)(()=>(0,import_shared.uid)(),[]),label:e.title,title:e.title,children:o(()=>e.children)};return r(i),(0,import_jsx_runtime.jsx)(t,{})},SchemaSettingsDivider=function(){const{pushMenuItem:e}=useCollectMenuItems(),t={key:(0,import_react2.useMemo)(()=>(0,import_shared.uid)(),[]),type:"divider"};return e(t),null},SchemaSettingsRemove=e=>{const{disabled:t,confirm:o,title:r,removeParentsIfNoChildren:i,breakRemoveOn:n}=e,{dn:l,template:a}=useSchemaSettings(),{t:c}=(0,import_react_i18next.useTranslation)(),u=(0,import_react.useField)(),d=useCompile(),m=(0,import_react.useFieldSchema)(),p=useBlockTemplateContext(),h=(0,import_react.useForm)(),{modal:g}=import_antd.App.useApp(),{removeActiveFieldName:f}=useFormActiveFields()||{},{removeDataBlock:_}=useFilterBlock();return(0,import_jsx_runtime.jsx)(SchemaSettingsItem,{disabled:t,title:"Delete",eventKey:"remove",onClick:()=>{g.confirm(A(x({title:r?d(r):c("Delete block"),content:c("Are you sure you want to delete it?")},o),{onOk(){return L(this,null,function*(){var v;const b={removeParentsIfNoChildren:i,breakRemoveOn:n};u!=null&&u.required&&(u.required=!1,m.required=!1),a&&a.uid===m["x-uid"]&&p!=null&&p.dn?yield p==null?void 0:p.dn.remove(null,b):yield l.remove(null,b),yield(v=o==null?void 0:o.onOk)==null?void 0:v.call(o),delete h.values[m.name],l.refresh({refreshParentSchema:!0}),f==null||f(m.name),h==null||h.query(new RegExp(`${m.parent.name}.${m.name}$`)).forEach(C=>{var y,F;(y=C.setValue)==null||y.call(C,void 0),(F=C.setInitialValue)==null||F.call(C,void 0)}),_(m["x-uid"])})}}))},children:c("Delete")})},SchemaSettingsSelectItem=e=>{const t=e,{title:o,options:r,value:i,onChange:n,optionRender:l}=t,a=te(t,["title","options","value","onChange","optionRender"]);return(0,import_jsx_runtime.jsx)(SchemaSettingsItem,A(x({title:o},a),{children:(0,import_jsx_runtime.jsx)(SelectWithTitle,{title:o,defaultValue:i,onChange:n,options:r,optionRender:l})}))},SchemaSettingsCascaderItem=e=>{const t=e,{title:o,options:r,value:i,onChange:n}=t,l=te(t,["title","options","value","onChange"]);return(0,import_jsx_runtime.jsx)(SchemaSettingsItem,A(x({title:o},l),{children:(0,import_jsx_runtime.jsxs)("div",{style:{alignItems:"center",display:"flex",justifyContent:"space-between"},children:[o,(0,import_jsx_runtime.jsx)(import_antd.Cascader,A(x({bordered:!1,defaultValue:i,onChange:n,options:r,style:{textAlign:"right",minWidth:100}},e),{multiple:e.multiple}))]})}))},ml32={marginLeft:32},MenuItemSwitch=(0,import_react.observer)(({state:e})=>(0,import_jsx_runtime.jsx)(import_antd.Switch,{size:"small",checked:e.checked,style:ml32}));MenuItemSwitch.displayName="MenuItemSwitch";const SchemaSettingsSwitchItem=e=>{const t=e,{title:o,onChange:r}=t,i=te(t,["title","onChange"]),[n]=(0,import_react2.useState)(()=>(0,import_reactive.observable)({checked:!!e.checked}));return(0,import_jsx_runtime.jsx)(SchemaSettingsItem,A(x({title:o},i),{onClick:()=>{r==null||r(!n.checked),n.checked=!n.checked},children:(0,import_jsx_runtime.jsxs)("div",{style:{alignItems:"center",display:"flex",justifyContent:"space-between"},children:[o,(0,import_jsx_runtime.jsx)(MenuItemSwitch,{state:n})]})}))},SchemaSettingsPopupItem=e=>{const t=e,{schema:o}=t,r=te(t,["schema"]),[i,n]=(0,import_react2.useState)(!1),l=(0,import_react2.useContext)(SchemaSettingsContext);return(0,import_jsx_runtime.jsxs)(ActionContextProvider,{value:{visible:i,setVisible:n},children:[(0,import_jsx_runtime.jsx)(SchemaSettingsItem,A(x({title:e.title},r),{onClick:()=>{l.setVisible(!1),n(!0)},children:e.children||e.title})),(0,import_jsx_runtime.jsx)(SchemaComponent,{schema:x({name:(0,import_shared.uid)()},o)})]})},SchemaSettingsActionModalItem=import_react2.default.memo(e=>{const t=e,{title:o,onSubmit:r,width:i="50%",initialValues:n,beforeOpen:l,initialSchema:a,schema:c,modalTip:u,components:d,scope:m}=t,p=te(t,["title","onSubmit","width","initialValues","beforeOpen","initialSchema","schema","modalTip","components","scope"]),[h,g]=(0,import_react2.useState)(!1),[f,_]=(0,import_react2.useState)(e.uid),{t:v}=(0,import_react_i18next.useTranslation)(),b=(0,import_react.useFieldSchema)(),C=(0,import_react2.useContext)(SchemaSettingsContext),{dn:y}=useSchemaSettings(),F=useCompile(),S=useAPIClient(),P=useFormActiveFields(),j=useZIndexContext(),I=getZIndex("modal",j+10,0),M=(0,import_react2.useMemo)(()=>(0,import_core.createForm)({initialValues:(0,import_lodash.cloneDeep)(n),values:(0,import_lodash.cloneDeep)(n)}),[n]);(0,import_react2.useEffect)(()=>{M.setInitialValues((0,import_lodash.cloneDeep)(n))},[JSON.stringify(n||{})]);const E=(0,import_react2.useCallback)(()=>{g(!1),M.reset()},[M]),D=(0,import_react2.useCallback)(()=>L(void 0,null,function*(){yield M.submit();try{const B=M.values,N=Object.keys(B).reduce((T,$)=>(M.query($).take()&&(T[$]=B[$]),T),{});g(!1),yield r==null?void 0:r((0,import_lodash.cloneDeep)(N))}catch(B){console.error(B)}}),[M,r]),k=(0,import_react2.useCallback)(()=>L(void 0,null,function*(){!f&&a!=null&&a["x-uid"]&&(b["x-action-settings"].schemaUid=a["x-uid"],y.emit("patch",{schema:b}),yield S.resource("uiSchemas").insert({values:a}),_(a["x-uid"])),typeof l=="function"&&(l==null||l()),C.setVisible(!1),g(!0)}),[S,C,y,b,a,f]),w=(0,import_react2.useCallback)(B=>B.stopPropagation(),[]);return(0,import_jsx_runtime.jsxs)(zIndexContext.Provider,{value:I,children:[(0,import_jsx_runtime.jsx)(SchemaSettingsItem,A(x({title:F(o)},p),{onClick:k,onKeyDown:w,children:e.children||e.title})),(0,import_react_dom.createPortal)((0,import_jsx_runtime.jsx)(import_antd.Modal,A(x({width:i,title:F(o)},p),{destroyOnClose:!0,open:h,onCancel:E,zIndex:I,footer:(0,import_jsx_runtime.jsxs)(import_antd.Space,{children:[(0,import_jsx_runtime.jsx)(import_antd.Button,{onClick:E,children:v("Cancel")}),(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"primary",onClick:D,children:v("Submit")})]}),children:(0,import_jsx_runtime.jsx)(FormActiveFieldsProvider,{name:"form",getActiveFieldsName:P==null?void 0:P.getActiveFieldsName,children:(0,import_jsx_runtime.jsx)(FormProvider,{form:M,children:(0,import_jsx_runtime.jsxs)(import_antd_v5.FormLayout,{layout:"vertical",children:[u&&(0,import_jsx_runtime.jsx)(import_antd.Alert,{message:u}),u&&(0,import_jsx_runtime.jsx)("br",{}),h&&f&&(0,import_jsx_runtime.jsx)(RemoteSchemaComponent,{noForm:!0,components:d,scope:m,uid:f}),h&&c&&(0,import_jsx_runtime.jsx)(SchemaComponent,{components:d,scope:m,schema:c})]})})})})),document.body)]})});SchemaSettingsActionModalItem.displayName="SchemaSettingsActionModalItem";const SchemaSettingsModalItem=e=>{const t=e,{hidden:o,title:r,components:i,scope:n,effects:l,onSubmit:a,asyncGetInitialValues:c,initialValues:u,width:d="fit-content",noRecord:m=!1,ModalContextProvider:p=W=>(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:W.children}),dialogRootClassName:h}=t,g=te(t,["hidden","title","components","scope","effects","onSubmit","asyncGetInitialValues","initialValues","width","noRecord","ModalContextProvider","dialogRootClassName"]),f=(0,import_react2.useContext)(import_react.SchemaOptionsContext),_=useCollection(),v=useAPIClient(),b=useApp(),{theme:C}=useGlobalTheme(),y=useBlockRequestContext(),F=useFormActiveFields(),{locale:S}=(0,import_react2.useContext)(import_antd.ConfigProvider.ConfigContext),P=useDataSourceManager(),j=useDataSourceKey(),I=useCollectionRecord(),{association:M}=useDataBlockProps()||{},E=useCurrentRecord(),D=useFormBlockContext(),k=useBlockContext(),{getOperators:w}=useOperators(),B=useLocationSearch(),N=useVariables$1(),T=(0,import_react2.useContext)(AllDataBlocksContext),$=(0,import_react2.useContext)(SchemaComponentContext),q=(0,import_react2.useContext)(VariableScopeContext$1),{formValue:O,collection:V,parent:z}=useSubFormValue(),U=useCurrentPopupRecord(),K=useParentPopupRecord();return o?null:(0,import_jsx_runtime.jsx)(SchemaSettingsItem,A(x({title:r},g),{onClick:()=>L(void 0,null,function*(){const W=c?yield c():u,Y=import_lodash.default.isFunction(e.schema)?e.schema():e.schema;FormDialog({title:Y.title||r,width:d,rootClassName:h},()=>(0,import_jsx_runtime.jsx)(VariableScopeContext$1.Provider,{value:q,children:(0,import_jsx_runtime.jsx)(SchemaComponentContext.Provider,{value:$,children:(0,import_jsx_runtime.jsx)(AllDataBlocksContext.Provider,{value:T,children:(0,import_jsx_runtime.jsx)(p,{children:(0,import_jsx_runtime.jsx)(CollectOperators,{defaultOperators:w(),children:(0,import_jsx_runtime.jsx)(VariablesContext.Provider,{value:N,children:(0,import_jsx_runtime.jsx)(BlockContext.Provider,{value:k,children:(0,import_jsx_runtime.jsx)(VariablePopupRecordProvider,{recordData:U==null?void 0:U.value,collection:U==null?void 0:U.collection,parent:{recordData:K==null?void 0:K.value,collection:K==null?void 0:K.collection},children:(0,import_jsx_runtime.jsx)(CollectionRecordProvider,{record:m?null:I,children:(0,import_jsx_runtime.jsx)(CurrentRecordContextProvider,A(x({},E),{children:(0,import_jsx_runtime.jsx)(FormBlockContext$1.Provider,{value:D,children:(0,import_jsx_runtime.jsx)(SubFormProvider,{value:{value:O,collection:V,parent:z},children:(0,import_jsx_runtime.jsx)(FormActiveFieldsProvider,{name:"form",getActiveFieldsName:F==null?void 0:F.getActiveFieldsName,children:(0,import_jsx_runtime.jsx)(LocationSearchContext.Provider,{value:B,children:(0,import_jsx_runtime.jsx)(BlockRequestContext_deprecated.Provider,{value:y,children:(0,import_jsx_runtime.jsx)(DataSourceApplicationProvider,{dataSourceManager:P,dataSource:j,children:(0,import_jsx_runtime.jsx)(AssociationOrCollectionProvider,{allowNull:!0,collection:_==null?void 0:_.name,association:M,children:(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{scope:f.scope,components:f.components,children:(0,import_jsx_runtime.jsx)(import_antd_v5.FormLayout,{layout:"vertical",className:import_css.css`
389
+ `,menu:{items:g,"data-testid":"schema-settings-menu",style:{maxHeight:u,overflowY:"auto"}},children:(0,import_jsx_runtime.jsx)("div",{"data-testid":e["data-testid"],children:typeof o=="string"?(0,import_jsx_runtime.jsx)("span",{children:o}):o})})]}))}),InternalSchemaSettingsMenu=import_react2.default.memo(e=>{const t=e,{title:o,dn:r}=t,i=te(t,["title","dn"]),[n,l]=(0,import_react2.useState)(!0),{Component:a,getMenuItems:c}=useMenuItem(),u=c(()=>e.children);return(0,import_jsx_runtime.jsxs)(SchemaSettingsProvider,A(x({visible:n,setVisible:l,dn:r},i),{children:[(0,import_jsx_runtime.jsx)(a,{}),(0,import_jsx_runtime.jsx)(import_antd.Menu,{items:u})]}))}),SchemaSettingsDropdown=import_react2.default.memo(e=>{const{mode:t}=e;return t==="inline"?(0,import_jsx_runtime.jsx)(InternalSchemaSettingsMenu,x({},e)):(0,import_jsx_runtime.jsx)(InternalSchemaSettingsDropdown,x({},e))});SchemaSettingsDropdown.displayName="SchemaSettingsDropdown";const findGridSchema=e=>e.reduceProperties((t,o)=>{if(o["x-component"]==="FormV2"||o["x-component"]==="Details"){const r=o.reduceProperties((i,n)=>n["x-component"]==="Grid"||n["x-component"]==="BlockTemplate"?n:i,null);if(r)return r}return t},null),findBlockTemplateSchema=e=>e.reduceProperties((t,o)=>{if(o["x-component"]==="FormV2"||o["x-component"]==="Details"){const r=o.reduceProperties((i,n)=>n["x-component"]==="BlockTemplate"?n:i,null);if(r)return r}return t},null),SchemaSettingsFormItemTemplate=function(e){const{insertAdjacentPosition:t="afterBegin",componentName:o,collectionName:r,resourceName:i}=e,{t:n}=(0,import_react_i18next.useTranslation)(),l=useCompile(),a=useCollectionManager(),{dn:c,setVisible:u,template:d,fieldSchema:m}=useSchemaSettings(),p=useAPIClient(),{saveAsTemplate:h,copyTemplateSchema:g}=useSchemaTemplateManager(),{theme:f}=useGlobalTheme();return r?d?(0,import_jsx_runtime.jsx)(SchemaSettingsItem,{title:"Convert reference to duplicate",onClick:()=>L(this,null,function*(){const _=yield g(d),v=findBlockTemplateSchema(m),b=createDesignable({t:n,api:p,current:v.parent});b.loadAPIClientEvents(),b.removeWithoutEmit(v),b.insertAdjacent(t,_,{onSuccess(){return L(this,null,function*(){yield p.request({url:`/uiSchemas:remove/${v["x-uid"]}`})})}}),m["x-template-key"]=null,yield p.request({url:"uiSchemas:patch",method:"post",data:{"x-uid":m["x-uid"],"x-template-key":null}}),c.refresh()}),children:n("Convert reference to duplicate")}):(0,import_jsx_runtime.jsx)(SchemaSettingsItem,{title:n("Save as reference template"),onClick:()=>L(this,null,function*(){u(!1);const _=r&&(a==null?void 0:a.getCollection(r)),v=findGridSchema(m),b=yield FormDialog(n("Save as reference template"),()=>{const F={FormItem:n("Form"),ReadPrettyFormItem:n("Details")};return(0,import_jsx_runtime.jsx)(import_antd_v5.FormLayout,{layout:"vertical",children:(0,import_jsx_runtime.jsx)(SchemaComponent,{components:{Input:import_antd_v5.Input,FormItem:import_antd_v5.FormItem},schema:{type:"object",properties:{name:{title:n("Template name"),required:!0,default:_?`${l((_==null?void 0:_.title)||(_==null?void 0:_.name))}_${n(F[o]||o)}`:n(F[o]||o),"x-decorator":"FormItem","x-component":"Input"}}}})})},f).open({}),C=createDesignable({t:n,api:p,current:v.parent});C.loadAPIClientEvents();const{key:y}=yield h({collectionName:r,resourceName:i,componentName:o,dataSourceKey:_.dataSource,name:b.name,uid:v["x-uid"]});C.removeWithoutEmit(v),C.insertAdjacent(t,{type:"void","x-component":"BlockTemplate","x-component-props":{templateId:y}}),m["x-template-key"]=y,yield p.request({url:"uiSchemas:patch",method:"post",data:{"x-uid":m["x-uid"],"x-template-key":y}}),c.refresh()}),children:n("Save as reference template")}):null},SchemaSettingsItem=e=>{const{pushMenuItem:t}=useCollectMenuItems(),{collectMenuItem:o}=useCollectMenuItem(),{eventKey:r,title:i}=e,n=A(x({key:i},import_lodash.default.omit(e,["children","name"])),{eventKey:r,onClick:l=>{var a;l.domEvent.preventDefault(),l.domEvent.stopPropagation(),(a=e==null?void 0:e.onClick)==null||a.call(e,l)},style:{minWidth:120},label:e.children||e.title,title:e.title});return t==null||t(n),o==null||o(n),null},SchemaSettingsItemGroup=e=>{const{Component:t,getMenuItems:o}=useMenuItem(),{pushMenuItem:r}=useCollectMenuItems(),i={key:(0,import_react2.useMemo)(()=>(0,import_shared.uid)(),[]),type:"group",title:e.title,label:e.title,children:o(()=>e.children)};return r(i),(0,import_jsx_runtime.jsx)(t,{})},SchemaSettingsSubMenu=function(e){const{Component:t,getMenuItems:o}=useMenuItem(),{pushMenuItem:r}=useCollectMenuItems(),i={key:(0,import_react2.useMemo)(()=>(0,import_shared.uid)(),[]),label:e.title,title:e.title,children:o(()=>e.children)};return r(i),(0,import_jsx_runtime.jsx)(t,{})},SchemaSettingsDivider=function(){const{pushMenuItem:e}=useCollectMenuItems(),t={key:(0,import_react2.useMemo)(()=>(0,import_shared.uid)(),[]),type:"divider"};return e(t),null},SchemaSettingsRemove=e=>{const{disabled:t,confirm:o,title:r,removeParentsIfNoChildren:i,breakRemoveOn:n}=e,{dn:l,template:a}=useSchemaSettings(),{t:c}=(0,import_react_i18next.useTranslation)(),u=(0,import_react.useField)(),d=useCompile(),m=(0,import_react.useFieldSchema)(),p=useBlockTemplateContext(),h=(0,import_react.useForm)(),{modal:g}=import_antd.App.useApp(),{removeActiveFieldName:f}=useFormActiveFields()||{},{removeDataBlock:_}=useFilterBlock();return(0,import_jsx_runtime.jsx)(SchemaSettingsItem,{disabled:t,title:"Delete",eventKey:"remove",onClick:()=>{g.confirm(A(x({title:r?d(r):c("Delete block"),content:c("Are you sure you want to delete it?")},o),{onOk(){return L(this,null,function*(){var v;const b={removeParentsIfNoChildren:i,breakRemoveOn:n};u!=null&&u.required&&(u.required=!1,m.required=!1),a&&a.uid===m["x-uid"]&&p!=null&&p.dn?yield p==null?void 0:p.dn.remove(null,b):yield l.remove(null,b),yield(v=o==null?void 0:o.onOk)==null?void 0:v.call(o),delete h.values[m.name],l.refresh({refreshParentSchema:!0}),f==null||f(m.name),h==null||h.query(new RegExp(`${m.parent.name}.${m.name}$`)).forEach(C=>{var y,F;(y=C.setValue)==null||y.call(C,void 0),(F=C.setInitialValue)==null||F.call(C,void 0)}),_(m["x-uid"])})}}))},children:c("Delete")})},SchemaSettingsSelectItem=e=>{const t=e,{title:o,options:r,value:i,onChange:n,optionRender:l}=t,a=te(t,["title","options","value","onChange","optionRender"]);return(0,import_jsx_runtime.jsx)(SchemaSettingsItem,A(x({title:o},a),{children:(0,import_jsx_runtime.jsx)(SelectWithTitle,{title:o,defaultValue:i,onChange:n,options:r,optionRender:l})}))},SchemaSettingsCascaderItem=e=>{const t=e,{title:o,options:r,value:i,onChange:n}=t,l=te(t,["title","options","value","onChange"]);return(0,import_jsx_runtime.jsx)(SchemaSettingsItem,A(x({title:o},l),{children:(0,import_jsx_runtime.jsxs)("div",{style:{alignItems:"center",display:"flex",justifyContent:"space-between"},children:[o,(0,import_jsx_runtime.jsx)(import_antd.Cascader,A(x({bordered:!1,defaultValue:i,onChange:n,options:r,style:{textAlign:"right",minWidth:100}},e),{multiple:e.multiple}))]})}))},ml32={marginLeft:32},MenuItemSwitch=(0,import_react.observer)(({state:e})=>(0,import_jsx_runtime.jsx)(import_antd.Switch,{size:"small",checked:e.checked,style:ml32}));MenuItemSwitch.displayName="MenuItemSwitch";const SchemaSettingsSwitchItem=e=>{const t=e,{title:o,onChange:r}=t,i=te(t,["title","onChange"]),[n]=(0,import_react2.useState)(()=>(0,import_reactive.observable)({checked:!!e.checked}));return(0,import_jsx_runtime.jsx)(SchemaSettingsItem,A(x({title:o},i),{onClick:()=>{r==null||r(!n.checked),n.checked=!n.checked},children:(0,import_jsx_runtime.jsxs)("div",{style:{alignItems:"center",display:"flex",justifyContent:"space-between"},children:[o,(0,import_jsx_runtime.jsx)(MenuItemSwitch,{state:n})]})}))},SchemaSettingsPopupItem=e=>{const t=e,{schema:o}=t,r=te(t,["schema"]),[i,n]=(0,import_react2.useState)(!1),l=(0,import_react2.useContext)(SchemaSettingsContext);return(0,import_jsx_runtime.jsxs)(ActionContextProvider,{value:{visible:i,setVisible:n},children:[(0,import_jsx_runtime.jsx)(SchemaSettingsItem,A(x({title:e.title},r),{onClick:()=>{l.setVisible(!1),n(!0)},children:e.children||e.title})),(0,import_jsx_runtime.jsx)(SchemaComponent,{schema:x({name:(0,import_shared.uid)()},o)})]})},SchemaSettingsActionModalItem=import_react2.default.memo(e=>{const t=e,{title:o,onSubmit:r,width:i="50%",initialValues:n,beforeOpen:l,initialSchema:a,schema:c,modalTip:u,components:d,scope:m}=t,p=te(t,["title","onSubmit","width","initialValues","beforeOpen","initialSchema","schema","modalTip","components","scope"]),[h,g]=(0,import_react2.useState)(!1),[f,_]=(0,import_react2.useState)(e.uid),{t:v}=(0,import_react_i18next.useTranslation)(),b=(0,import_react.useFieldSchema)(),C=(0,import_react2.useContext)(SchemaSettingsContext),{dn:y}=useSchemaSettings(),F=useCompile(),S=useAPIClient(),P=useFormActiveFields(),j=useZIndexContext(),I=Math.max(getZIndex("modal",j+10,0),ICON_POPUP_Z_INDEX+200),M=(0,import_react2.useMemo)(()=>(0,import_core.createForm)({initialValues:(0,import_lodash.cloneDeep)(n),values:(0,import_lodash.cloneDeep)(n)}),[n]);(0,import_react2.useEffect)(()=>{M.setInitialValues((0,import_lodash.cloneDeep)(n))},[JSON.stringify(n||{})]);const E=(0,import_react2.useCallback)(()=>{g(!1),M.reset()},[M]),D=(0,import_react2.useCallback)(()=>L(void 0,null,function*(){yield M.submit();try{const B=M.values,N=Object.keys(B).reduce((T,$)=>(M.query($).take()&&(T[$]=B[$]),T),{});g(!1),yield r==null?void 0:r((0,import_lodash.cloneDeep)(N))}catch(B){console.error(B)}}),[M,r]),k=(0,import_react2.useCallback)(()=>L(void 0,null,function*(){!f&&a!=null&&a["x-uid"]&&(b["x-action-settings"].schemaUid=a["x-uid"],y.emit("patch",{schema:b}),yield S.resource("uiSchemas").insert({values:a}),_(a["x-uid"])),typeof l=="function"&&(l==null||l()),C.setVisible(!1),g(!0)}),[S,C,y,b,a,f]),w=(0,import_react2.useCallback)(B=>B.stopPropagation(),[]);return(0,import_jsx_runtime.jsxs)(zIndexContext.Provider,{value:I,children:[(0,import_jsx_runtime.jsx)(SchemaSettingsItem,A(x({title:F(o)},p),{onClick:k,onKeyDown:w,children:e.children||e.title})),(0,import_react_dom.createPortal)((0,import_jsx_runtime.jsx)(import_antd.Modal,A(x({width:i,title:F(o)},p),{destroyOnClose:!0,open:h,onCancel:E,zIndex:I,footer:(0,import_jsx_runtime.jsxs)(import_antd.Space,{children:[(0,import_jsx_runtime.jsx)(import_antd.Button,{onClick:E,children:v("Cancel")}),(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"primary",onClick:D,children:v("Submit")})]}),children:(0,import_jsx_runtime.jsx)(FormActiveFieldsProvider,{name:"form",getActiveFieldsName:P==null?void 0:P.getActiveFieldsName,children:(0,import_jsx_runtime.jsx)(FormProvider,{form:M,children:(0,import_jsx_runtime.jsxs)(import_antd_v5.FormLayout,{layout:"vertical",children:[u&&(0,import_jsx_runtime.jsx)(import_antd.Alert,{message:u}),u&&(0,import_jsx_runtime.jsx)("br",{}),h&&f&&(0,import_jsx_runtime.jsx)(RemoteSchemaComponent,{noForm:!0,components:d,scope:m,uid:f}),h&&c&&(0,import_jsx_runtime.jsx)(SchemaComponent,{components:d,scope:m,schema:c})]})})})})),document.body)]})});SchemaSettingsActionModalItem.displayName="SchemaSettingsActionModalItem";const SchemaSettingsModalItem=e=>{const t=e,{hidden:o,title:r,components:i,scope:n,effects:l,onSubmit:a,asyncGetInitialValues:c,initialValues:u,width:d="fit-content",noRecord:m=!1,ModalContextProvider:p=W=>(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:W.children}),dialogRootClassName:h}=t,g=te(t,["hidden","title","components","scope","effects","onSubmit","asyncGetInitialValues","initialValues","width","noRecord","ModalContextProvider","dialogRootClassName"]),f=(0,import_react2.useContext)(import_react.SchemaOptionsContext),_=useCollection(),v=useAPIClient(),b=useApp(),{theme:C}=useGlobalTheme(),y=useBlockRequestContext(),F=useFormActiveFields(),{locale:S}=(0,import_react2.useContext)(import_antd.ConfigProvider.ConfigContext),P=useDataSourceManager(),j=useDataSourceKey(),I=useCollectionRecord(),{association:M}=useDataBlockProps()||{},E=useCurrentRecord(),D=useFormBlockContext(),k=useBlockContext(),{getOperators:w}=useOperators(),B=useLocationSearch(),N=useVariables$1(),T=(0,import_react2.useContext)(AllDataBlocksContext),$=(0,import_react2.useContext)(SchemaComponentContext),q=(0,import_react2.useContext)(VariableScopeContext$1),{formValue:O,collection:V,parent:z}=useSubFormValue(),U=useCurrentPopupRecord(),K=useParentPopupRecord();return o?null:(0,import_jsx_runtime.jsx)(SchemaSettingsItem,A(x({title:r},g),{onClick:()=>L(void 0,null,function*(){const W=c?yield c():u,Y=import_lodash.default.isFunction(e.schema)?e.schema():e.schema;FormDialog({title:Y.title||r,width:d,rootClassName:h,getContainer:()=>document.body},()=>(0,import_jsx_runtime.jsx)(VariableScopeContext$1.Provider,{value:q,children:(0,import_jsx_runtime.jsx)(SchemaComponentContext.Provider,{value:$,children:(0,import_jsx_runtime.jsx)(AllDataBlocksContext.Provider,{value:T,children:(0,import_jsx_runtime.jsx)(p,{children:(0,import_jsx_runtime.jsx)(CollectOperators,{defaultOperators:w(),children:(0,import_jsx_runtime.jsx)(VariablesContext.Provider,{value:N,children:(0,import_jsx_runtime.jsx)(BlockContext.Provider,{value:k,children:(0,import_jsx_runtime.jsx)(VariablePopupRecordProvider,{recordData:U==null?void 0:U.value,collection:U==null?void 0:U.collection,parent:{recordData:K==null?void 0:K.value,collection:K==null?void 0:K.collection},children:(0,import_jsx_runtime.jsx)(CollectionRecordProvider,{record:m?null:I,children:(0,import_jsx_runtime.jsx)(CurrentRecordContextProvider,A(x({},E),{children:(0,import_jsx_runtime.jsx)(FormBlockContext$1.Provider,{value:D,children:(0,import_jsx_runtime.jsx)(SubFormProvider,{value:{value:O,collection:V,parent:z},children:(0,import_jsx_runtime.jsx)(FormActiveFieldsProvider,{name:"form",getActiveFieldsName:F==null?void 0:F.getActiveFieldsName,children:(0,import_jsx_runtime.jsx)(LocationSearchContext.Provider,{value:B,children:(0,import_jsx_runtime.jsx)(BlockRequestContext_deprecated.Provider,{value:y,children:(0,import_jsx_runtime.jsx)(DataSourceApplicationProvider,{dataSourceManager:P,dataSource:j,children:(0,import_jsx_runtime.jsx)(AssociationOrCollectionProvider,{allowNull:!0,collection:_==null?void 0:_.name,association:M,children:(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{scope:f.scope,components:f.components,children:(0,import_jsx_runtime.jsx)(import_antd_v5.FormLayout,{layout:"vertical",className:import_css.css`
390
390
  // screen > 576px
391
391
  @media (min-width: 576px) {
392
392
  min-width: 520px;
@@ -625,7 +625,7 @@ ${JSON.stringify(q,null,2)}`)},[u,c,a,i,r,P,t,l,n,g,o,f,C,j,y,F,h]),M=(0,import_
625
625
  }
626
626
  }
627
627
  `),footer:C?(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{basePath:h.address,schema:p,onlyRenderProperties:!0,filterProperties:P=>P["x-component"]===o}):!1,children:S?(0,import_jsx_runtime.jsx)(ActionModalContent,{footerNodeName:o,field:h,schema:p}):(0,import_jsx_runtime.jsx)(import_antd.Skeleton,{active:!0,paragraph:{rows:6}})}))}))})})},{displayName:"ActionModal"}),ActionModal=e=>(0,import_jsx_runtime.jsx)(import_react_error_boundary.ErrorBoundary,{FallbackComponent:ModalErrorFallback,onError:console.log,children:(0,import_jsx_runtime.jsx)(InternalActionModal,x({},e))});ActionModal.Footer=(0,import_react.observer)(()=>{const e=(0,import_react.useField)(),t=(0,import_react.useFieldSchema)();return(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{basePath:e.address,schema:t,onlyRenderProperties:!0})},{displayName:"ActionModal.Footer"});ActionModal.FootBar=(0,import_react.observer)(()=>{const e=(0,import_react.useField)(),t=(0,import_react.useFieldSchema)();return(0,import_jsx_runtime.jsx)("div",{className:"ant-modal-footer",children:(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{basePath:e.address,schema:t,onlyRenderProperties:!0})})},{displayName:"ActionModal.FootBar"});const useBackButton=()=>{const{setVisible:e}=useActionContext();return{goBack:(0,import_react2.useCallback)(()=>{e==null||e(!1)},[e])}},BackButtonUsedInSubPage$1=()=>{const{token:e}=useToken(),{goBack:t}=useBackButton(),o=32,r=(0,import_react2.useMemo)(()=>({width:"auto",height:"auto",lineHeight:1,padding:e.paddingXS,marginRight:o-e.paddingXS}),[e.paddingXS]);return(0,import_jsx_runtime.jsx)(import_antd.Button,{"aria-label":"back-button",type:"text",icon:(0,import_jsx_runtime.jsx)(import_icons.ArrowLeftOutlined,{}),style:r,onClick:t})},useActionPageStyle=genStyleHook("nb-action-page",e=>{const{componentCls:t}=e;return{[t]:{position:"absolute !important",top:0,left:0,right:0,bottom:0,backgroundColor:e.colorBgLayout,overflowX:"hidden",overflowY:"auto",".ant-tabs-nav":{background:e.colorBgContainer,padding:`0 ${e.paddingPageVertical}px`,marginBottom:0},".ant-tabs-content-holder":{padding:`${e.paddingPageVertical}px`,paddingBottom:"0px"}}}}),usePopupOrSubpagesContainerDOM=()=>{const e=(0,import_react2.useMemo)(()=>document.querySelector(".nb-subpages-slot-without-header-and-side"),[]);return{getContainerDOM:(0,import_react2.useCallback)(()=>e,[e])}},ActionPageContent=import_react2.default.memo(({schema:e})=>{const[t,o]=(0,import_react2.useState)(!1);return(0,import_react2.useEffect)(()=>{(0,import_react2.startTransition)(()=>{o(!0)})},[]),t?(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{schema:e,onlyRenderProperties:!0}):null});function ActionPage({level:e}){const t=(0,import_react.useFieldSchema)(),o=useActionContext(),{getContainerDOM:r}=usePopupOrSubpagesContainerDOM(),{componentCls:i,hashId:n}=useActionPageStyle(),l=useTabsContext(),a=useZIndexContext(),c=(0,import_react2.useMemo)(()=>({zIndex:getZIndex("page",a,e||0)}),[a,e]);if(!o.visible)return null;const u=(0,import_jsx_runtime.jsx)("div",{className:`${i} ${n}`,style:c,children:(0,import_jsx_runtime.jsx)(ActionContextNoRerender,{children:(0,import_jsx_runtime.jsx)(TabsContextProvider,A(x({},l),{tabBarExtraContent:(0,import_jsx_runtime.jsx)(BackButtonUsedInSubPage$1,{}),children:(0,import_jsx_runtime.jsx)(zIndexContext.Provider,{value:c.zIndex,children:(0,import_jsx_runtime.jsx)(ActionPageContent,{schema:t})})}))})}),d=r();return(0,import_react_dom.createPortal)(u,d||document.body)}ActionPage.Footer=(0,import_react.observer)(()=>null,{displayName:"ActionPage.Footer"});const defaultContext={defaultOpenMode:"drawer",openModeToComponent:{drawer:ActionDrawer,page:ActionPage,modal:ActionModal},hideOpenMode:!1},OpenModeContext=import_react2.default.createContext(null),OpenModeProvider=e=>{const t=(0,import_react2.useMemo)(()=>{const i=x({},defaultContext);return e.defaultOpenMode!==void 0&&(i.defaultOpenMode=e.defaultOpenMode),e.openModeToComponent!==void 0&&(i.openModeToComponent=e.openModeToComponent),e.hideOpenMode!==void 0&&(i.hideOpenMode=e.hideOpenMode),e.isMobile&&(i.isMobile=e.isMobile),i},[e.defaultOpenMode,e.openModeToComponent,e.hideOpenMode]),o=(0,import_react2.useCallback)(i=>{const n=t.openModeToComponent[i];return n||console.error(`OpenModeProvider: openModeToComponent[${i}] is not defined`),n},[t]),r=(0,import_react2.useMemo)(()=>({defaultOpenMode:t.defaultOpenMode,hideOpenMode:t.hideOpenMode,getComponentByOpenMode:o,isMobile:t.isMobile}),[t.defaultOpenMode,t.hideOpenMode,o,t.isMobile]);return(0,import_jsx_runtime.jsx)(OpenModeContext.Provider,{value:r,children:e.children})},useOpenModeContext=()=>import_react2.default.useContext(OpenModeContext),SchemaInitializerItem=(0,import_react2.memo)(import_react2.default.forwardRef((e,t)=>{const{style:o,closeInitializerMenuWhenClick:r=!0,name:i=(0,import_shared.uid)(),applyMenuStyle:n=!0,className:l,disabled:a,items:c,icon:u,title:d,onClick:m,children:p}=e,h=useCompile(),g=useSchemaInitializerMenuItems(c,i,m),{componentCls:f,hashId:_}=useSchemaInitializerStyles(),{attribute:v}=useAriaAttributeOfMenuItem(),{setVisible:b}=useSchemaInitializer(),C=(0,import_react2.useMemo)(()=>{if(c&&c.length>0)return[{key:i,style:o,className:l,label:p||h(d),onClick:y=>{a||y.key!==i||(r&&(b==null||b(!1)),m==null||m(A(x({},y),{item:e})))},icon:typeof u=="string"?(0,import_jsx_runtime.jsx)(Icon,{type:u}):u,children:g}]},[i,a,o,l,p,d,m,u,g]);return c&&c.length>0?(0,import_jsx_runtime.jsx)(SchemaInitializerMenu,{disabled:a,items:C}):(0,import_jsx_runtime.jsx)("div",{ref:t,onClick:y=>{y.stopPropagation(),r&&(b==null||b(!1)),m==null||m({event:y,item:e})},children:(0,import_jsx_runtime.jsx)("div",A(x({},v),{className:(0,import_classnames.default)({[`${f}-menu-item`]:n,[`${f}-menu-item-disabled`]:a},l),style:o,children:p||(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[typeof u=="string"?(0,import_jsx_runtime.jsx)(Icon,{type:u}):u,(0,import_jsx_runtime.jsx)("span",{className:(0,import_classnames.default)({[`${_} ${f}-item-content`]:!!u}),children:h(d)})]})}))})}));SchemaInitializerItem.displayName="SchemaInitializerItem";const SchemaInitializerItemInternal=()=>{const e=useSchemaInitializerItem();return(0,import_jsx_runtime.jsx)(SchemaInitializerItem,x({},e))},switchStyle={marginLeft:20},itemStyle={display:"flex",alignItems:"center",justifyContent:"space-between"},SchemaInitializerSwitch=e=>{const t=e,{title:o,checked:r}=t,i=te(t,["title","checked"]),n=useCompile();return(0,import_jsx_runtime.jsx)(SchemaInitializerItem,A(x({},i),{closeInitializerMenuWhenClick:!1,children:(0,import_jsx_runtime.jsxs)("div",{style:itemStyle,children:[n(o),(0,import_jsx_runtime.jsx)(import_antd.Switch,{disabled:e.disabled,style:switchStyle,size:"small",checked:r})]})}))},SchemaInitializerSwitchInternal=()=>{const e=useSchemaInitializerItem();return(0,import_jsx_runtime.jsx)(SchemaInitializerSwitch,x({},e))},SchemaInitializerChildren=e=>{const{children:t}=e;return t?(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:t.sort((o,r)=>(o.sort||0)-(r.sort||0)).map((o,r)=>(0,import_jsx_runtime.jsx)(SchemaInitializerChild,x({},o),o.name||o.key||r))}):null},typeComponentMap={item:"SchemaInitializerItemInternal",itemGroup:"SchemaInitializerItemGroupInternal",divider:"SchemaInitializerDivider",switch:"SchemaInitializerSwitchInternal",subMenu:"SchemaInitializerSubMenuInternal",actionModal:"SchemaInitializerActionModalInternal"},useChildrenDefault=()=>{},useVisibleDefault=()=>!0,useComponentPropsDefault=()=>{},SchemaInitializerChild=(0,import_react2.memo)(e=>{const t=e,{type:o,Component:r,component:i,children:n,useVisible:l=useVisibleDefault,useChildren:a=useChildrenDefault,useComponentProps:c=useComponentPropsDefault,hideIfNoChildren:u,componentProps:d,sort:m}=t,p=te(t,["type","Component","component","children","useVisible","useChildren","useComponentProps","hideIfNoChildren","componentProps","sort"]),h=a(),g=c(),f=useFindComponent(),_=r||i,v=!_&&o&&typeComponentMap[o],b=(0,import_react2.useMemo)(()=>{const F=[...h||[],...n||[]];return F.length===0?void 0:F},[h,n]),C=(0,import_react2.useMemo)(()=>A(x(x(x({},p),v?g:{}),v?d:{}),{children:b}),[p,v,g,d,b]);if(!l()||!o&&!_)return null;const y=f(v?typeComponentMap[o]:_);return!y||u&&!b?null:(0,import_jsx_runtime.jsx)(SchemaInitializerItemContext.Provider,{value:C,children:(0,import_jsx_runtime.jsx)(y,A(x(x({},d),g),{children:b}))})});SchemaInitializerChild.displayName="SchemaInitializerChild";const SchemaInitializerDivider=()=>{const{token:e}=import_antd.theme.useToken();return(0,import_jsx_runtime.jsx)(import_antd.Divider,{style:{marginTop:e.marginXXS,marginBottom:e.marginXXS}})};function getPrefixAndCompare(e,t){const o=e.replace(/-displayCollectionFields$/,""),r=t.replace(/-displayCollectionFields$/,"");return!o.includes(r)}const SearchFields=({value:e,onChange:t,name:o})=>{const{t:r}=(0,import_react_i18next.useTranslation)(),[i,n]=(0,import_react2.useState)(e),l=(0,import_react2.useRef)(""),a=(0,import_react2.useRef)(`${o||Math.random().toString(10).substr(2,9)}`);(0,import_react2.useEffect)(()=>{n(e)},[e]),(0,import_react2.useEffect)(()=>{var m;const p=()=>{var g,f;l.current&&((g=document.activeElement)==null?void 0:g.id)!==l.current.input.id&&getPrefixAndCompare((f=document.activeElement)==null?void 0:f.id,l.current.input.id)&&l.current.focus()},h=new IntersectionObserver(g=>{g.some(f=>f.isIntersecting)&&p()});return(m=l.current)!=null&&m.input&&(l.current.input.id=a.current,h.observe(l.current.input)),()=>{h.disconnect()}},[]);const c=(0,import_react2.useRef)(!1),u=m=>{c.current||(t(m.target.value),n(m.target.value))},d=m=>{m.type==="compositionend"?(c.current=!1,u(m)):c.current=!0};return(0,import_jsx_runtime.jsxs)("div",{onClick:m=>m.stopPropagation(),children:[(0,import_jsx_runtime.jsx)(import_antd.Input,{ref:l,allowClear:!0,style:{padding:"0 4px 6px 16px",boxShadow:"none"},bordered:!1,placeholder:r("Search"),defaultValue:i,onClick:m=>{m.stopPropagation()},onChange:u,onCompositionStart:d,onCompositionEnd:d,onCompositionUpdate:d}),(0,import_jsx_runtime.jsx)(import_antd.Divider,{style:{margin:0}})]})};let currentName=null;const useMenuSearch$1=e=>{const{children:t,showType:o,hideSearch:r,name:i}=e,n=useCompile(),[l,a]=(0,import_react2.useState)(null),c=(m,p)=>{if(!l||l===""||currentName&&currentName!==p)return m;const h=l.toLocaleLowerCase();return m.filter(g=>(g.title||g.label)&&String(n(g.title||g.label)).toLocaleLowerCase().includes(h))},u=(m,p,h=new Set)=>{var g;const f=[];return!r&&(m.length>10||l)&&!["subMenu","itemGroup"].includes((g=m[0])==null?void 0:g.type)&&f.push(x({key:`search-${(0,import_shared.uid)()}`,Component:()=>(0,import_jsx_runtime.jsx)(SearchFields,{name:p,value:!currentName||currentName===p?l:"",onChange:_=>{currentName=p,a(_)}}),onClick({domEvent:_}){_.stopPropagation()}},o?{isMenuType:!0}:{})),m.forEach(_=>{if(!h.has(_))if(h.add(_),["subMenu","itemGroup"].includes(_.type)){const v=!currentName||currentName===_.name?c(_.children.concat(),_.name):_.children,b=u(v,_.name,h);f.push(A(x({},_),{children:b}))}else f.push(_)}),m.length===0&&f.push(x({key:"empty",style:{height:150},Component:()=>(0,import_jsx_runtime.jsx)("div",{onClick:_=>_.stopPropagation(),children:(0,import_jsx_runtime.jsx)(import_antd.Empty,{image:import_antd.Empty.PRESENTED_IMAGE_SIMPLE})})},o?{isMenuType:!0}:{})),f},d=u(c((t==null?void 0:t.concat())||[],i),i);return t?d:void 0},SchemaInitializerItemGroup=({children:e,items:t,title:o,divider:r})=>{const i=useCompile(),{componentCls:n}=useSchemaInitializerStyles(),{token:l}=import_antd.theme.useToken();return(0,import_jsx_runtime.jsxs)("div",{style:{marginInline:l.marginXXS},children:[r&&(0,import_jsx_runtime.jsx)(SchemaInitializerDivider,{}),(0,import_jsx_runtime.jsx)("div",{className:`${n}-group-title`,children:i(o)}),(0,import_jsx_runtime.jsx)(SchemaInitializerChildren,{children:t||e})]})},SchemaInitializerItemGroupInternal=()=>{const e=useSchemaInitializerItem(),t=useMenuSearch$1(e);return e.name&&e.name!=="displayFields"?(0,import_jsx_runtime.jsx)(SchemaInitializerItemGroup,x({},e)):(0,import_jsx_runtime.jsx)(SchemaInitializerItemGroup,A(x({},e),{children:t}))},SchemaInitializerItems=e=>{const{items:t}=e;return t.length===0?null:(0,import_jsx_runtime.jsx)(SchemaInitializerChildren,{children:t})},SchemaInitializerActionModalItemComponent=import_react2.default.forwardRef((e,t)=>{const o=e,{onClick:r}=o,i=te(o,["onClick"]);return(0,import_jsx_runtime.jsx)(SchemaInitializerItem,A(x({ref:t},i),{onClick:n=>r==null?void 0:r(n.event,!1)}))}),SchemaInitializerActionModal=e=>{const{title:t,icon:o,width:r,schema:i,buttonText:n,btnStyles:l,isItem:a,component:c,onCancel:u,onSubmit:d}=e,{setVisible:m}=useSchemaInitializer(),p=(0,import_react2.useCallback)(()=>{const v=(0,import_react.useForm)(),b=useActionContext();return{run(){return L(this,null,function*(){yield u==null?void 0:u(),b.setVisible(!1),v.reset()})}}},[u]),h=(0,import_react2.useCallback)(()=>{const v=(0,import_react.useForm)(),b=useActionContext();return{run(){return L(this,null,function*(){yield v.validate();try{yield d==null?void 0:d(v.values),b.setVisible(!1),v.reset()}catch(C){console.error(C)}})}}},[d]),g=(0,import_react2.useMemo)(()=>import_react2.default.forwardRef(({onClick:v},b)=>(0,import_jsx_runtime.jsx)(SchemaInitializerActionModalItemComponent,{onClick:v,ref:b,title:n,icon:o})),[n,o]),f=(0,import_react2.useMemo)(()=>(0,import_shared.uid)(),[]),_=(0,import_react2.useMemo)(()=>({type:"void",properties:{[f]:{type:"void","x-component":"Action","x-component-props":c?{component:c,icon:o}:a?{component:g}:{icon:o||"PlusOutlined",style:x({borderColor:"var(--colorSettings)",color:"var(--colorSettings)"},l||{}),title:n,type:"dashed"},properties:{drawer1:{"x-decorator":"Form","x-component":"Action.Modal","x-component-props":{width:r,style:{maxWidth:r||"520px",width:"100%"},afterOpenChange:()=>{m(!1)}},type:"void",title:t,properties:A(x({},(i==null?void 0:i.properties)||i),{footer:{"x-component":"Action.Modal.Footer",type:"void",properties:{cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:p}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:h}}}}})}}}}}),[n,c,f,i,t,p,h]);return(0,import_jsx_runtime.jsx)(SchemaComponent,{schema:_})},SchemaInitializerActionModalInternal=()=>{const e=useSchemaInitializerItem();return(0,import_jsx_runtime.jsx)(SchemaInitializerActionModal,x({},e))},SchemaInitializerSelect=e=>{const t=e,{title:o,options:r,value:i,onChange:n,openOnHover:l,onClick:a}=t,c=te(t,["title","options","value","onChange","openOnHover","onClick"]),[u,d]=(0,import_react2.useState)(!1),m=(0,import_react2.useCallback)((...g)=>{d(!1),a==null||a(...g)},[d,a]),p=(0,import_react2.useCallback)(()=>d(!0),[]),h=(0,import_react2.useMemo)(()=>l?{onMouseEnter:p,open:u}:{},[p,u,l]);return(0,import_jsx_runtime.jsx)(SchemaInitializerItem,A(x({closeInitializerMenuWhenClick:!1},c),{children:(0,import_jsx_runtime.jsxs)("div",{style:{alignItems:"center",display:"flex",justifyContent:"space-between"},children:[o,(0,import_jsx_runtime.jsx)(import_antd.Select,x({"data-testid":"antd-select",popupMatchSelectWidth:!1,bordered:!1,defaultValue:i,onChange:(...g)=>(d(!1),n(...g)),options:r,style:{textAlign:"right",minWidth:100},onClick:m},h))]})}))},SchemaInitializerSelectInternal=()=>{const e=useSchemaInitializerItem();return(0,import_jsx_runtime.jsx)(SchemaInitializerSelect,x({},e))},schemaInitializerComponents=Object.freeze(Object.defineProperty({__proto__:null,SchemaInitializerActionModal,SchemaInitializerActionModalInternal,SchemaInitializerChild,SchemaInitializerChildren,SchemaInitializerDivider,SchemaInitializerItem,SchemaInitializerItemGroup,SchemaInitializerItemGroupInternal,SchemaInitializerItemInternal,SchemaInitializerItems,SchemaInitializerMenu,SchemaInitializerMenuProvider,SchemaInitializerSelect,SchemaInitializerSelectInternal,SchemaInitializerSubMenu,SchemaInitializerSubMenuInternal,SchemaInitializerSwitch,SchemaInitializerSwitchInternal,useSchemaInitializerStyles,useSchemaInitializerSubMenuContext},Symbol.toStringTag,{value:"Module"})),useGetAriaLabelOfSchemaInitializer=()=>{const e=(0,import_react.useFieldSchema)(),{name:t}=useCollection()||{};return{getAriaLabel:(0,import_react2.useCallback)(o=>{if(!e)return"";const r=e["x-component"],i=typeof r=="string"?r:(r==null?void 0:r.displayName)||r.name,n=e["x-initializer"]?`-${e["x-initializer"]}`:"",l=t?`-${t}`:"";return o=o?`-${o}`:"",`schema-initializer-${i}${n}${l}${o}`},[e,t])}},SchemaInitializerButton=import_react2.default.memo(e=>{const t=e,{style:o,options:r}=t,i=te(t,["style","options"]),n=useCompile(),{getAriaLabel:l}=useGetAriaLabelOfSchemaInitializer();return(0,import_jsx_runtime.jsx)(import_antd.Button,A(x({"data-testid":r["data-testid"],"aria-label":l(),"aria-disabled":"false",type:"dashed",style:x({borderColor:"var(--colorSettings)",color:"var(--colorSettings)",flex:"none"},o),icon:typeof r.icon=="string"?(0,import_jsx_runtime.jsx)(Icon,{type:r.icon}):r.icon},i),{children:r.title&&(0,import_jsx_runtime.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",display:"inline-block",width:r.icon?"calc(100% - 14px)":"100%",verticalAlign:"bottom"},children:n(r.title)})}))});SchemaInitializerButton.displayName="SchemaInitializerButton(memo)";const InitializerComponent=e=>{const t=e.Component||SchemaInitializerButton,o=e.ItemsComponent||SchemaInitializerItems,r=A(x({},e.itemsComponentProps),{options:e,items:e.items,style:e.itemsComponentStyle}),i=(0,import_react2.useMemo)(()=>withInitializer(t),[t]);return import_react2.default.createElement(i,e,import_react2.default.createElement(o,r))};InitializerComponent.displayName="InitializerComponent";function useSchemaInitializerRender(e,t){const o=useApp(),{isMobile:r}=useOpenModeContext()||{};e==="popup:common:addBlock"&&o.schemaInitializerManager.has("mobile:popup:common:addBlock")&&r&&(e="mobile:popup:common:addBlock");const i=(0,import_react2.useMemo)(()=>typeof e=="object"?e:o.schemaInitializerManager.get(e),[o.schemaInitializerManager,e]);return(0,import_react2.useMemo)(()=>e?i?{exists:!0,render:n=>import_react2.default.createElement(InitializerComponent,x(x(x({},i.options),t),n))}:(console.error(`[nocobase]: SchemaInitializer "${e}" not found`),{exists:!1,render:()=>null}):{exists:!1,render:()=>null},[i,e,t])}function useSchemaInitializerMenuItems(e,t,o){const r=useGetSchemaInitializerMenuItems(o);return(0,import_react2.useMemo)(()=>r(e,t),[r,e,t])}function useGetSchemaInitializerMenuItems(e){const t=useCompile(),o=(0,import_react2.useCallback)((r,i)=>r!=null&&r.length?r.map((n,l)=>{var a,c;const u=n.component||n.Component;let d;const m=n.title||n.label?t(n.title||n.label):void 0;if(u&&(d=import_react2.default.createElement(SchemaInitializerChild,A(x({},n),{title:m}))),n.type==="divider")return{type:"divider",key:n.key||`divider-${l}`};if(n.type==="item"&&u)return n.key||(n.key=`${m}-${l}`),n.associationField?{key:n.key,label:d,associationField:n.associationField}:{key:n.key,label:d};if(n.type==="itemGroup"){const f=typeof m=="string"?m:n.title,_=n.key||`${i}-item-group-${l}`;return{type:"group",key:_,label:f,children:(a=n==null?void 0:n.children)!=null&&a.length?o(n.children,_):[]}}if(n.type==="subMenu"){const f=m,_=n.key||n.name||`${i}-sub-menu-${l}`;return{key:_,label:f,children:(c=n==null?void 0:n.children)!=null&&c.length?o(n.children,_):[]}}if(n.isMenuType)return te(n,["isMenuType"]);const p=d||m,h=n.key||`${i}-${m}-${l}`,g=f=>{f.domEvent.stopPropagation(),f.key===h&&(n.onClick?n.onClick(A(x({},f),{item:n})):e==null||e(A(x({},f),{item:n})))};return n.associationField?{key:h,label:p,associationField:n.associationField,onClick:g}:{style:n.style,key:h,label:p,onClick:g}}):[],[t,e]);return o}class CompatibleSchemaInitializer extends SchemaInitializer{constructor(t,o){super(t),R(this,"otherInstance",null),o&&(this.otherInstance=o,o.otherInstance=this)}add(t,o){super.get(t)||(super.add(t,o),this.otherInstance&&this.otherInstance.add(t,o))}remove(t){super.get(t)&&(super.remove(t),this.otherInstance&&this.otherInstance.remove(t))}}const oldToNewNameMap={BlockInitializers:"page:addBlock",MBlockInitializers:"mobilePage:addBlock",CreateFormBlockInitializers:"popup:addNew:addBlock",CusomeizeCreateFormBlockInitializers:"popup:addRecord:addBlock",RecordBlockInitializers:"popup:common:addBlock",BulkEditBlockInitializers:"popup:bulkEdit:addBlock",TableColumnInitializers:"table:configureColumns",TableActionColumnInitializers:"table:configureItemActions",TableActionInitializers:"table:configureActions",SubTableActionInitializers:"subTable:configureActions",FormItemInitializers:"form:configureFields",CreateFormActionInitializers:"createForm:configureActions",UpdateFormActionInitializers:"editForm:configureActions",ReadPrettyFormItemInitializers:"details:configureFields",DetailsActionInitializers:"detailsWithPaging:configureActions",ReadPrettyFormActionInitializers:"details:configureActions",KanbanCardInitializers:"kanban:configureItemFields",KanbanActionInitializers:"kanban:configureActions",GridCardActionInitializers:"gridCard:configureActions",GridCardItemActionInitializers:"gridCard:configureItemActions",ListActionInitializers:"list:configureActions",ListItemActionInitializers:"list:configureItemActions",CalendarActionInitializers:"calendar:configureActions",GanttActionInitializers:"gantt:configureActions",MapActionInitializers:"map:configureActions",TableSelectorInitializers:"popup:tableSelector:addBlock",ChartInitializers:"charts:addBlock",ChartFilterItemInitializers:"chartFilterForm:configureFields",ChartFilterActionInitializers:"chartFilterForm:configureActions",AssociationFilterInitializers:"filterCollapse:configureFields",FilterFormItemInitializers:"filterForm:configureFields",FilterFormActionInitializers:"filterForm:configureActions",CustomFormItemInitializers:"assignFieldValuesForm:configureFields",BulkEditFormItemInitializers:"bulkEditForm:configureFields",BulkEditFormActionInitializers:"bulkEditForm:configureActions",AuditLogsTableColumnInitializers:"auditLogsTable:configureColumns",AuditLogsTableActionColumnInitializers:"auditLogsTable:configureItemActions",AuditLogsTableActionInitializers:"auditLogsTable:configureActions",SnapshotBlockInitializers:"popup:snapshot:addBlock",AddBlockButton:"workflowManual:popup:configureUserInterface:addBlock",AddCustomFormField:"workflowManual:customForm:configureFields",AddActionButton:"workflowManual:form:configureActions"};function isInitializersSame(e,t){return e===t||oldToNewNameMap[e]===t}class SchemaInitializerManager{constructor(t=[],o){R(this,"schemaInitializers",{}),R(this,"actionList",{}),this._schemaInitializers=t,this.app=o,this.app=o,this.add(...t)}add(...t){t.forEach(o=>{this.schemaInitializers[o.name]=o,Array.isArray(this.actionList[o.name])&&(this.actionList[o.name].forEach(r=>{o[r.type](r.itemName,r.data)}),this.actionList[o.name]=void 0)})}addItem(t,o,r){const i=this.get(t);i?i.add(o,r):(this.actionList[t]||(this.actionList[t]=[]),this.actionList[t].push({type:"add",itemName:o,data:r}))}get(t){return this.schemaInitializers[t]}getAll(){return this.schemaInitializers}has(t){return!!this.get(t)}remove(t){delete this.schemaInitializers[t]}removeItem(t,o){const r=this.get(t);r?r.remove(o):(this.actionList[t]||(this.actionList[t]=[]),this.actionList[t].push({type:"remove",itemName:o}))}}function normalizeContainer(e){if(!e)return console.warn("Failed to mount app: mount target should not be null or undefined."),null;if(typeof e=="string"){const 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&&e.mode==="closed"&&console.warn('mounting on a ShadowRoot with `{mode: "closed"}` may lead to unpredictable bugs'),e}const compose=(...e)=>{const t=e.reduce((o,r)=>{const[i,n]=r,l=({children:a})=>(0,import_jsx_runtime.jsx)(o,{children:(0,import_jsx_runtime.jsx)(i,A(x({},n),{children:a}))});return l.displayName=`compose(${i.displayName||i.name})`,l},BlankComponent);return o=>r=>(0,import_jsx_runtime.jsx)(t,{children:o&&(0,import_jsx_runtime.jsx)(o,x({},r))})};function defineGlobalDeps(e){e.define("react",()=>import_react2.default),e.define("react-dom",()=>import_react_dom.default),e.define("react/jsx-runtime",()=>import_jsx_runtime.default),e.define("react-router",()=>ReactRouter),e.define("react-router-dom",()=>ReactRouterDom),e.define("antd",()=>antd),e.define("antd-style",()=>antdStyle),e.define("@ant-design/icons",()=>antIcons),e.define("@ant-design/cssinjs",()=>antdCssinjs),e.define("i18next",()=>i18next),e.define("react-i18next",()=>reactI18next),e.define("@formily/antd-v5",()=>formilyAntdV5),e.define("@formily/core",()=>formilyCore),e.define("@formily/react",()=>formilyReact),e.define("@formily/shared",()=>formilyShared),e.define("@formily/json-schema",()=>formilyJsonSchema),e.define("@formily/reactive",()=>formilyJsonReactive),e.define("@formily/path",()=>formilyPath),e.define("@formily/validator",()=>formilyValidator),e.define("@formily/reactive-react",()=>formilyReactiveReact),e.define("@nocobase/utils",()=>nocobaseClientUtils),e.define("@nocobase/utils/client",()=>nocobaseClientUtils),e.define("@nocobase/client",()=>nocobaseClient),e.define("@nocobase/client/client",()=>nocobaseClient),e.define("@nocobase/evaluators",()=>nocobaseEvaluators),e.define("@nocobase/evaluators/client",()=>nocobaseEvaluators),e.define("@nocobase/sdk",()=>nocobaseSDK),e.define("@nocobase/flow-engine",()=>nocobaseFlowEngine),e.define("@dnd-kit/core",()=>dndKitCore),e.define("@dnd-kit/sortable",()=>dndKitSortable),e.define("axios",()=>import_axios.default),e.define("dayjs",()=>import_client.dayjs),e.define("lodash",()=>import_lodash.default),e.define("ahooks",()=>ahooks),e.define("@emotion/css",()=>emotionCss),e.define("file-saver",()=>FileSaver)}/* istanbul ignore file -- @preserve */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=!!(typeof window<"u"&&typeof navigator<"u"&&window.document),isWebWorker=!isBrowser&&typeof importScripts<"u",readyRegExp=isBrowser&&navigator.platform==="PLAYSTATION 3"?/^complete$/:/^(complete|loaded)$/,defContextName="_",isOpera=typeof opera<"u"&&opera.toString()==="[object Opera]",contexts={},cfg={},globalDefQueue=[],useInteractive=!1;function commentReplace(e,t){return t||""}function isFunction(e){return ostring.call(e)==="[object Function]"}function isArray(e){return ostring.call(e)==="[object Array]"}function each(e,t){if(e){var o;for(o=0;o<e.length&&!(e[o]&&t(e[o],o,e));o+=1);}}function eachReverse(e,t){if(e){var o;for(o=e.length-1;o>-1&&!(e[o]&&t(e[o],o,e));o-=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 o;for(o in e)if(hasProp(e,o)&&t(e[o],o))break}function mixin(e,t,o,r){return t&&eachProp(t,function(i,n){(o||!hasProp(e,n))&&(r&&typeof i=="object"&&i&&!isArray(i)&&!isFunction(i)&&!(i instanceof RegExp)?(e[n]||(e[n]={}),mixin(e[n],i,o,r)):e[n]=i)}),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=global;return each(e.split("."),function(o){t=t[o]}),t}function makeError(e,t,o,r){var i=new Error(t+`
628
- https://requirejs.org/docs/errors.html#`+e);return i.requireType=e,i.requireModules=r,o&&(i.originalError=o),i}if(typeof define<"u")return;if(typeof requirejs<"u"){if(isFunction(requirejs))return;cfg=requirejs,requirejs=void 0}typeof require<"u"&&!isFunction(require)&&(cfg=require,require=void 0);function newContext(e){var t,o,r,i,n,l={waitSeconds:7,baseUrl:"./",paths:{},bundles:{},pkgs:{},shim:{},config:{}},a={},c={},u={},d=[],m={},p={},h={},g=1,f=1;function _(T){var $,q;for($=0;$<T.length;$++)if(q=T[$],q===".")T.splice($,1),$-=1;else if(q===".."){if($===0||$===1&&T[2]===".."||T[$-1]==="..")continue;$>0&&(T.splice($-1,2),$-=2)}}function v(T,$,q){var O,V,z,U,K,W,Y,Z,H,J,oe,G,Q=$&&$.split("/"),X=l.map,ee=X&&X["*"];if(T&&(T=T.split("/"),Y=T.length-1,l.nodeIdCompat&&jsSuffixRegExp.test(T[Y])&&(T[Y]=T[Y].replace(jsSuffixRegExp,"")),T[0].charAt(0)==="."&&Q&&(G=Q.slice(0,Q.length-1),T=G.concat(T)),_(T),T=T.join("/")),q&&X&&(Q||ee)){z=T.split("/");e:for(U=z.length;U>0;U-=1){if(W=z.slice(0,U).join("/"),Q){for(K=Q.length;K>0;K-=1)if(V=getOwn(X,Q.slice(0,K).join("/")),V&&(V=getOwn(V,W),V)){Z=V,H=U;break e}}!J&&ee&&getOwn(ee,W)&&(J=getOwn(ee,W),oe=U)}!Z&&J&&(Z=J,H=oe),Z&&(z.splice(0,H,Z),T=z.join("/"))}return O=getOwn(l.pkgs,T),O||T}function b(T){isBrowser&&each(scripts(),function($){if($.getAttribute("data-requiremodule")===T&&$.getAttribute("data-requirecontext")===r.contextName)return $.parentNode.removeChild($),!0})}function C(T){var $=getOwn(l.paths,T);if($&&isArray($)&&$.length>1)return $.shift(),r.require.undef(T),r.makeRequire(null,{skipMap:!0})([T]),!0}function y(T){var $,q=T?T.indexOf("!"):-1;return q>-1&&($=T.substring(0,q),T=T.substring(q+1,T.length)),[$,T]}function F(T,$,q,O){var V,z,U,K,W=null,Y=$?$.name:null,Z=T,H=!0,J="";return T||(H=!1,T="_@r"+(g+=1)),K=y(T),W=K[0],T=K[1],W&&(W=v(W,Y,O),z=getOwn(m,W)),T&&(W?q?J=T:z&&z.normalize?J=z.normalize(T,function(oe){return v(oe,Y,O)}):J=T.indexOf("!")===-1?v(T,Y,O):T:(J=v(T,Y,O),K=y(J),W=K[0],J=K[1],q=!0,V=r.nameToUrl(J))),U=W&&!z&&!q?"_unnormalized"+(f+=1):"",{prefix:W,name:J,parentMap:$,unnormalized:!!U,url:V,originalName:Z,isDefine:H,id:(W?W+"!"+J:J)+U}}function S(T){var $=T.id,q=getOwn(a,$);return q||(q=a[$]=new r.Module(T)),q}function P(T,$,q){var O=T.id,V=getOwn(a,O);hasProp(m,O)&&(!V||V.defineEmitComplete)?$==="defined"&&q(m[O]):(V=S(T),V.error&&$==="error"?q(V.error):V.on($,q))}function j(T,$){var q=T.requireModules,O=!1;$?$(T):(each(q,function(V){var z=getOwn(a,V);z&&(z.error=T,z.events.error&&(O=!0,z.emit("error",T)))}),O||req.onError(T))}function I(){globalDefQueue.length&&(each(globalDefQueue,function(T){var $=T[0];typeof $=="string"&&(r.defQueueMap[$]=!0),d.push(T)}),globalDefQueue=[])}i={require:function(T){return T.require?T.require:T.require=r.makeRequire(T.map)},exports:function(T){if(T.usingExports=!0,T.map.isDefine)return T.exports?m[T.map.id]=T.exports:T.exports=m[T.map.id]={}},module:function(T){return T.module?T.module:T.module={id:T.map.id,uri:T.map.url,config:function(){return getOwn(l.config,T.map.id)||{}},exports:T.exports||(T.exports={})}}};function M(T){delete a[T],delete c[T]}function E(T,$,q){var O=T.map.id;T.error?T.emit("error",T.error):($[O]=!0,each(T.depMaps,function(V,z){var U=V.id,K=getOwn(a,U);K&&!T.depMatched[z]&&!q[U]&&(getOwn($,U)?(T.defineDep(z,m[U]),T.check()):E(K,$,q))}),q[O]=!0)}function D(){var T,$,q=l.waitSeconds*1e3,O=q&&r.startTime+q<new Date().getTime(),V=[],z=[],U=!1,K=!0;if(!t){if(t=!0,eachProp(c,function(W){var Y=W.map,Z=Y.id;if(W.enabled&&(Y.isDefine||z.push(W),!W.error)){if(!W.inited&&O)C(Z)?($=!0,U=!0):(V.push(Z),b(Z));else if(!W.inited&&W.fetched&&Y.isDefine&&(U=!0,!Y.prefix))return K=!1}}),O&&V.length)return T=makeError("timeout","Load timeout for modules: "+V,null,V),T.contextName=r.contextName,j(T);K&&each(z,function(W){E(W,{},{})}),(!O||$)&&U&&(isBrowser||isWebWorker)&&!n&&(n=setTimeout(function(){n=0,D()},50)),t=!1}}o=function(T){this.events=getOwn(u,T.id)||{},this.map=T,this.shim=getOwn(l.shim,T.id),this.depExports=[],this.depMaps=[],this.depMatched=[],this.pluginMaps={},this.depCount=0},o.prototype={init:function(T,$,q,O){O=O||{},!this.inited&&(this.factory=$,q?this.on("error",q):this.events.error&&(q=bind(this,function(V){this.emit("error",V)})),this.depMaps=T&&T.slice(0),this.errback=q,this.inited=!0,this.ignore=O.ignore,O.enabled||this.enabled?this.enable():this.check())},defineDep:function(T,$){this.depMatched[T]||(this.depMatched[T]=!0,this.depCount-=1,this.depExports[T]=$)},fetch:function(){if(!this.fetched){this.fetched=!0,r.startTime=new Date().getTime();var T=this.map;if(this.shim)r.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],bind(this,function(){return T.prefix?this.callPlugin():this.load()}));else return T.prefix?this.callPlugin():this.load()}},load:function(){var T=this.map.url;p[T]||(p[T]=!0,r.load(this.map.id,T))},check:function(){if(!(!this.enabled||this.enabling)){var T,$,q=this.map.id,O=this.depExports,V=this.exports,z=this.factory;if(!this.inited)hasProp(r.defQueueMap,q)||this.fetch();else if(this.error)this.emit("error",this.error);else if(!this.defining){if(this.defining=!0,this.depCount<1&&!this.defined){if(isFunction(z)){if(this.events.error&&this.map.isDefine||req.onError!==defaultOnError)try{V=r.execCb(q,z,O,V)}catch(K){T=K}else V=r.execCb(q,z,O,V);if(this.map.isDefine&&V===void 0&&($=this.module,$?V=$.exports:this.usingExports&&(V=this.exports)),T)return T.requireMap=this.map,T.requireModules=this.map.isDefine?[this.map.id]:null,T.requireType=this.map.isDefine?"define":"require",j(this.error=T)}else V=z;if(this.exports=V,this.map.isDefine&&!this.ignore&&(m[q]=V,req.onResourceLoad)){var U=[];each(this.depMaps,function(K){U.push(K.normalizedMap||K)}),req.onResourceLoad(r,this.map,U)}M(q),this.defined=!0}this.defining=!1,this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=!0)}}},callPlugin:function(){var T=this.map,$=T.id,q=F(T.prefix);this.depMaps.push(q),P(q,"defined",bind(this,function(O){var V,z,U,K=getOwn(h,this.map.id),W=this.map.name,Y=this.map.parentMap?this.map.parentMap.name:null,Z=r.makeRequire(T.parentMap,{enableBuildCallback:!0});if(this.map.unnormalized){O.normalize&&(W=O.normalize(W,function(H){return v(H,Y,!0)})||""),z=F(T.prefix+"!"+W,this.map.parentMap,!0),P(z,"defined",bind(this,function(H){this.map.normalizedMap=z,this.init([],function(){return H},null,{enabled:!0,ignore:!0})})),U=getOwn(a,z.id),U&&(this.depMaps.push(z),this.events.error&&U.on("error",bind(this,function(H){this.emit("error",H)})),U.enable());return}if(K){this.map.url=r.nameToUrl(K),this.load();return}V=bind(this,function(H){this.init([],function(){return H},null,{enabled:!0})}),V.error=bind(this,function(H){this.inited=!0,this.error=H,H.requireModules=[$],eachProp(a,function(J){J.map.id.indexOf($+"_unnormalized")===0&&M(J.map.id)}),j(H)}),V.fromText=bind(this,function(H,J){var oe=T.name,G=F(oe),Q=useInteractive;J&&(H=J),Q&&(useInteractive=!1),S(G),hasProp(l.config,$)&&(l.config[oe]=l.config[$]);try{req.exec(H)}catch(X){return j(makeError("fromtexteval","fromText eval for "+$+" failed: "+X,X,[$]))}Q&&(useInteractive=!0),this.depMaps.push(G),r.completeLoad(oe),Z([oe],V)}),O.load(T.name,Z,V,l)})),r.enable(q,this),this.pluginMaps[q.id]=q},enable:function(){c[this.map.id]=this,this.enabled=!0,this.enabling=!0,each(this.depMaps,bind(this,function(T,$){var q,O,V;if(typeof T=="string"){if(T=F(T,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap),this.depMaps[$]=T,V=getOwn(i,T.id),V){this.depExports[$]=V(this);return}this.depCount+=1,P(T,"defined",bind(this,function(z){this.undefed||(this.defineDep($,z),this.check())})),this.errback?P(T,"error",bind(this,this.errback)):this.events.error&&P(T,"error",bind(this,function(z){this.emit("error",z)}))}q=T.id,O=a[q],!hasProp(i,q)&&O&&!O.enabled&&r.enable(T,this)})),eachProp(this.pluginMaps,bind(this,function(T){var $=getOwn(a,T.id);$&&!$.enabled&&r.enable(T,this)})),this.enabling=!1,this.check()},on:function(T,$){var q=this.events[T];q||(q=this.events[T]=[]),q.push($)},emit:function(T,$){each(this.events[T],function(q){q($)}),T==="error"&&delete this.events[T]}};function k(T){hasProp(m,T[0])||S(F(T[0],null,!0)).init(T[1],T[2])}function w(T,$,q,O){T.detachEvent&&!isOpera?O&&T.detachEvent(O,$):T.removeEventListener(q,$,!1)}function B(T){var $=T.currentTarget||T.srcElement;return w($,r.onScriptLoad,"load","onreadystatechange"),w($,r.onScriptError,"error"),{node:$,id:$&&$.getAttribute("data-requiremodule")}}function N(){var T;for(I();d.length;){if(T=d.shift(),T[0]===null)return j(makeError("mismatch","Mismatched anonymous define() module: "+T[T.length-1]));k(T)}r.defQueueMap={}}return r={config:l,contextName:e,registry:a,defined:m,urlFetched:p,defQueue:d,defQueueMap:{},Module:o,makeModuleMap:F,nextTick:req.nextTick,onError:j,configure:function(T){if(T.baseUrl&&T.baseUrl.charAt(T.baseUrl.length-1)!=="/"&&(T.baseUrl+="/"),typeof T.urlArgs=="string"){var $=T.urlArgs;T.urlArgs=function(V,z){return(z.indexOf("?")===-1?"?":"&")+$}}var q=l.shim,O={paths:!0,bundles:!0,config:!0,map:!0};eachProp(T,function(V,z){O[z]?(l[z]||(l[z]={}),mixin(l[z],V,!0,!0)):l[z]=V}),T.bundles&&eachProp(T.bundles,function(V,z){each(V,function(U){U!==z&&(h[U]=z)})}),T.shim&&(eachProp(T.shim,function(V,z){isArray(V)&&(V={deps:V}),(V.exports||V.init)&&!V.exportsFn&&(V.exportsFn=r.makeShimExports(V)),q[z]=V}),l.shim=q),T.packages&&each(T.packages,function(V){var z,U;V=typeof V=="string"?{name:V}:V,U=V.name,z=V.location,z&&(l.paths[U]=V.location),l.pkgs[U]=V.name+"/"+(V.main||"main").replace(currDirRegExp,"").replace(jsSuffixRegExp,"")}),eachProp(a,function(V,z){!V.inited&&!V.map.unnormalized&&(V.map=F(z,null,!0))}),(T.deps||T.callback)&&r.require(T.deps||[],T.callback)},makeShimExports:function(T){function $(){var q;return T.init&&(q=T.init.apply(global,arguments)),q||T.exports&&getGlobal(T.exports)}return $},makeRequire:function(T,$){$=$||{};function q(O,V,z){var U,K,W;return $.enableBuildCallback&&V&&isFunction(V)&&(V.__requireJsBuild=!0),typeof O=="string"?isFunction(V)?j(makeError("requireargs","Invalid require call"),z):T&&hasProp(i,O)?i[O](a[T.id]):req.get?req.get(r,O,T,q):(K=F(O,T,!1,!0),U=K.id,hasProp(m,U)?m[U]:j(makeError("notloaded",'Module name "'+U+'" has not been loaded yet for context: '+e+(T?"":". Use require([])")))):(N(),r.nextTick(function(){N(),W=S(F(null,T)),W.skipMap=$.skipMap,W.init(O,V,z,{enabled:!0}),D()}),q)}return mixin(q,{isBrowser,toUrl:function(O){var V,z=O.lastIndexOf("."),U=O.split("/")[0],K=U==="."||U==="..";return z!==-1&&(!K||z>1)&&(V=O.substring(z,O.length),O=O.substring(0,z)),r.nameToUrl(v(O,T&&T.id,!0),V,!0)},defined:function(O){return hasProp(m,F(O,T,!1,!0).id)},specified:function(O){return O=F(O,T,!1,!0).id,hasProp(m,O)||hasProp(a,O)}}),T||(q.undef=function(O){I();var V=F(O,T,!0),z=getOwn(a,O);z.undefed=!0,b(O),delete m[O],delete p[V.url],delete u[O],eachReverse(d,function(U,K){U[0]===O&&d.splice(K,1)}),delete r.defQueueMap[O],z&&(z.events.defined&&(u[O]=z.events),M(O))}),q},enable:function(T){var $=getOwn(a,T.id);$&&S(T).enable()},completeLoad:function(T){var $,q,O,V=getOwn(l.shim,T)||{},z=V.exports;for(I();d.length;){if(q=d.shift(),q[0]===null){if(q[0]=T,$)break;$=!0}else q[0]===T&&($=!0);k(q)}if(r.defQueueMap={},O=getOwn(a,T),!$&&!hasProp(m,T)&&O&&!O.inited){if(l.enforceDefine&&(!z||!getGlobal(z)))return C(T)?void 0:j(makeError("nodefine","No define call for "+T,null,[T]));k([T,V.deps||[],V.exportsFn])}D()},nameToUrl:function(T,$,q){var O,V,z,U,K,W,Y,Z=getOwn(l.pkgs,T);if(Z&&(T=Z),Y=getOwn(h,T),Y)return r.nameToUrl(Y,$,q);if(req.jsExtRegExp.test(T))K=T+($||"");else{for(O=l.paths,V=T.split("/"),z=V.length;z>0;z-=1)if(U=V.slice(0,z).join("/"),W=getOwn(O,U),W){isArray(W)&&(W=W[0]),V.splice(0,z,W);break}K=V.join("/"),K+=$||(/^data\:|^blob\:|\?/.test(K)||q?"":".js"),K=(K.charAt(0)==="/"||K.match(/^[\w\+\.\-]+:/)?"":l.baseUrl)+K}return l.urlArgs&&!/^blob\:/.test(K)?K+l.urlArgs(T,K):K},load:function(T,$){req.load(r,T,$)},execCb:function(T,$,q,O){return $.apply(O,q)},onScriptLoad:function(T){if(T.type==="load"||readyRegExp.test((T.currentTarget||T.srcElement).readyState)){interactiveScript=null;var $=B(T);r.completeLoad($.id)}},onScriptError:function(T){var $=B(T);if(!C($.id)){var q=[];return eachProp(a,function(O,V){V.indexOf("_@r")!==0&&each(O.depMaps,function(z){if(z.id===$.id)return q.push(V),!0})}),j(makeError("scripterror",'Script error for "'+$.id+(q.length?'", needed by: '+q.join(", "):'"'),T,[$.id]))}}},r.require=r.makeRequire(),r}req=requirejs=function(e,t,o,r){var i,n,l=defContextName;return!isArray(e)&&typeof e!="string"&&(n=e,isArray(t)?(e=t,t=o,o=r):e=[]),n&&n.context&&(l=n.context),i=getOwn(contexts,l),i||(i=contexts[l]=req.s.newContext(l)),n&&i.configure(n),i.require(e,t,o)},req.config=function(e){return req(e)},req.nextTick=typeof setTimeout<"u"?function(e){setTimeout(e,4)}:function(e){e()},require||(require=req),req.version=version,req.jsExtRegExp=/^\/|:|\?|\.js$/,req.isBrowser=isBrowser,s=req.s={contexts,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],baseElement&&(head=s.head=baseElement.parentNode)),req.onError=defaultOnError,req.createNode=function(e,t,o){var r=e.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script");return r.type=e.scriptType||"text/javascript",r.charset="utf-8",r.async=!0,r},req.load=function(e,t,o){var r=e&&e.config||{},i;if(isBrowser)return i=req.createNode(r,t,o),i.setAttribute("data-requirecontext",e.contextName),i.setAttribute("data-requiremodule",t),i.attachEvent&&!(i.attachEvent.toString&&i.attachEvent.toString().indexOf("[native code")<0)&&!isOpera?(useInteractive=!0,i.attachEvent("onreadystatechange",e.onScriptLoad)):(i.addEventListener("load",e.onScriptLoad,!1),i.addEventListener("error",e.onScriptError,!1)),i.src=o,r.onNodeCreated&&r.onNodeCreated(i,r,t,o),currentlyAddingScript=i,baseElement?head.insertBefore(i,baseElement):head.appendChild(i),currentlyAddingScript=null,i;if(isWebWorker)try{setTimeout(function(){},0),importScripts(o),e.completeLoad(t)}catch(n){e.onError(makeError("importscripts","importScripts failed for "+t+" at "+o,n,[t]))}};function getInteractiveScript(){return interactiveScript&&interactiveScript.readyState==="interactive"||eachReverse(scripts(),function(e){if(e.readyState==="interactive")return interactiveScript=e}),interactiveScript}return isBrowser&&!cfg.skipDataMain&&eachReverse(scripts(),function(e){if(head||(head=e.parentNode),dataMain=e.getAttribute("data-main"),dataMain)return mainScript=dataMain,!cfg.baseUrl&&mainScript.indexOf("!")===-1&&(src=mainScript.split("/"),mainScript=src.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,o){var r,i;typeof e!="string"&&(o=t,t=e,e=null),isArray(t)||(o=t,t=null),!t&&isFunction(o)&&(t=[],o.length&&(o.toString().replace(commentRegExp,commentReplace).replace(cjsRequireRegExp,function(n,l){t.push(l)}),t=(o.length===1?["require"]:["require","exports","module"]).concat(t))),useInteractive&&(r=currentlyAddingScript||getInteractiveScript(),r&&(e||(e=r.getAttribute("data-requiremodule")),i=contexts[r.getAttribute("data-requirecontext")])),i?(i.defQueue.push([e,t,o]),i.defQueueMap[e]=!0):globalDefQueue.push([e,t,o])},define.amd={jQuery:!0},req.exec=function(text){return eval(text)},req(cfg),{requirejs,require,define}}const setFieldProps=(e,t,o)=>{(0,import_reactive.untracked)(()=>{e[t]===void 0&&(e[t]=o)})},setRequired=(e,t,o)=>{typeof t.required>"u"&&(e.required=!!o.required)},CollectionFieldInternalField_deprecated=e=>{var t;const o=useCompile(),r=(0,import_react.useField)(),i=(0,import_react.useFieldSchema)(),{uiSchema:n,defaultValue:l}=useCollectionField(),{isAllowToSetDefaultValue:a}=useIsAllowToSetDefaultValue(),c=useComponent(((t=i["x-component-props"])==null?void 0:t.component)||(n==null?void 0:n["x-component"])||"Input"),u=useFormBlockContext(),d=useDynamicComponentProps(n==null?void 0:n["x-use-component-props"],e);return(0,import_react2.useEffect)(()=>{if(!n)return;const m=o(n);if(setFieldProps(r,"content",m["x-content"]),setFieldProps(r,"title",m.title),setFieldProps(r,"description",m.description),u!=null&&u.form){const h=a()?i.default||l:void 0;h!=null&&setFieldProps(r,"initialValue",h)}if(!r.validator&&(m["x-validator"]||i["x-validator"])){const h=(0,import_lodash.concat)([],m["x-validator"]||[],i["x-validator"]||[]);r.validator=h}i["x-disabled"]===!0&&(r.disabled=!0),i["x-read-pretty"]===!0&&(r.readPretty=!0),setRequired(r,i,m),r.dataSource=m.enum,r.data=r.data||{},r.data.dataSource=m==null?void 0:m.enum;const p=o(m["x-component-props"])||{};r.componentProps=(0,import_shared.merge)(p,r.componentProps||{},d||{})},[n]),n?(0,import_jsx_runtime.jsx)(c,x(x({},e),d)):null},CollectionFieldInternalField=e=>{var t;const o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{uiSchema:i}=useCollectionFieldUISchema(),n=useComponent(((t=r["x-component-props"])==null?void 0:t.component)||(i==null?void 0:i["x-component"])||"Input"),l=useDynamicComponentProps(i==null?void 0:i["x-use-component-props"],e);if((0,import_react2.useEffect)(()=>{r["x-read-pretty"]===!0&&!o.readPretty&&(o.readPretty=!0),r["x-disabled"]===!0&&(o.disabled=!0),o.data=o.data||{},o.data.dataSource=i==null?void 0:i.enum},[o,r]),!i)return null;const a=x(x({},e),l);return isVariable$1(a.value)&&a.value===r.default&&(a.value=void 0),(0,import_jsx_runtime.jsx)(n,x({},a))},CollectionField$1=(0,import_react.connect)(e=>{const t=(0,import_react.useFieldSchema)(),o=useIsInNocoBaseRecursionFieldContext();return(0,import_jsx_runtime.jsx)(CollectionFieldProvider,{name:t.name,children:o?(0,import_jsx_runtime.jsx)(CollectionFieldInternalField,x({},e)):(0,import_jsx_runtime.jsx)(CollectionFieldInternalField_deprecated,x({},e))})});CollectionField$1.displayName="CollectionField";const getKeyByName=e=>e?`nocobase_${e}_designable`.toUpperCase():"nocobase_designable".toUpperCase(),SchemaComponentProviderWithLocalStorageState=e=>{const[t,o]=(0,import_ahooks.useLocalStorageState)(getKeyByName(e.appName),{defaultValue:!!e.designable});return(0,import_jsx_runtime.jsx)(SchemaComponentProvider,A(x({},e),{designable:t,onDesignableChange:r=>{o(r)}}))},AppSchemaComponentProvider=e=>typeof e.designable=="boolean"?(0,import_jsx_runtime.jsx)(SchemaComponentProvider,x({},e)):(0,import_jsx_runtime.jsx)(SchemaComponentProviderWithLocalStorageState,x({},e));function getOperators(){Array.isArray||(Array.isArray=function(i){return Object.prototype.toString.call(i)==="[object Array]"});function e(i){for(var n=[],l=0,a=i.length;l<a;l++)n.indexOf(i[l])===-1&&n.push(i[l]);return n}function t(i,n){return JSON.stringify(i)===JSON.stringify(n)}var o={},r={$is:function(i,n){return i===n},$match:function(i,n){return Array.isArray(i)&&Array.isArray(n)&&i.some(l=>Array.isArray(l))?i.some(l=>(l==null?void 0:l.length)===n.length&&(l==null?void 0:l.every((a,c)=>a===n[c]))):JSON.stringify(i)===JSON.stringify(n)},$eq:function(i,n){return Array.isArray(i)&&Array.isArray(n)?t(i,n):Array.isArray(i)?i.includes(n):i==n},$ne:function(i,n){return i!=n},"!==":function(i,n){return i!==n},$gt:function(i,n){return Array.isArray(i)?i.some(l=>l>n):i>n},$gte:function(i,n){return i>=n},$lt:function(i,n,l){return Array.isArray(i)?i.some(a=>a<n):l===void 0?i<n:i<n&&n<l},$lte:function(i,n,l){return l===void 0?i<=n:i<=n&&n<=l},$exists:function(i){return o.truthy(i)},$notEmpty:function(i){return!r.$empty(i)},$empty:function(i){return Array.isArray(i)||typeof i=="string"?i.length===0:i==null},$notExists:function(i){return!o.truthy(i)},"%":function(i,n){return i%n},log:function(i){return i},$in:function(i,n){return!n||typeof n.indexOf>"u"?!1:Array.isArray(i)&&Array.isArray(n)?n.some(l=>i.includes(l)):n.indexOf(i)!==-1},$notIn:function(i,n){return!n||typeof n.indexOf>"u"?!1:n.indexOf(i)===-1},$includes:function(i,n){return!i||typeof i.indexOf>"u"?!1:Array.isArray(i)?i.some(l=>l==null?void 0:l.includes(n)):i.indexOf(n)!==-1},$notIncludes:function(i,n){return Array.isArray(i)?!i.some(l=>(l||"").includes(n)):(i=i||"",!i.includes(n))},$anyOf:function(i,n){return i==null||i.length===0?!1:Array.isArray(i)&&Array.isArray(n)&&i.some(l=>Array.isArray(l))?i.some(l=>l.some(a=>n.includes(a))):i.some(l=>n.includes(l))},$noneOf:function(i,n){return!i||i.length===0||!n||n.length===0?!0:(Array.isArray(i)||(i=[i]),Array.isArray(n)||(n=[n]),!n.some(l=>i.includes(l)))},$notMatch:function(i,n){if((i==null?void 0:i.length)!==(n==null?void 0:n.length))return!0;for(let l=0;l<((i==null?void 0:i.length)||0);l++)if((i==null?void 0:i[l])!==(n==null?void 0:n[l]))return!0;return!1},$dateOn:function(i,n){if(!i||!n)return!1;if(n.type&&(n=(0,import_client.getDayRangeByParams)(n)),Array.isArray(n))return r.$dateBetween(i,n);const l=parseDate(i),a=parseDate(n);return!l||!a?!1:l.getTime()===a.getTime()},$dateBefore:function(i,n){if(!i||!n)return!1;n.type&&(n=(0,import_client.getDayRangeByParams)(n)),Array.isArray(n)&&(n=n[0]);const l=parseDate(i),a=parseDate(n);return!l||!a?!1:l.getTime()<a.getTime()},$dateNotBefore:function(i,n){if(!i||!n)return!1;n.type&&(n=(0,import_client.getDayRangeByParams)(n)),Array.isArray(n)&&(n=n[0]);const l=parseDate(i),a=parseDate(n);if(!l||!a)throw new Error("Invalid date format");return l.getTime()>=a.getTime()},$dateAfter:function(i,n){if(!i||!n)return!1;n.type&&(n=(0,import_client.getDayRangeByParams)(n)),Array.isArray(n)&&(n=n[1]);const l=parseDate(i),a=parseDate(n);return l.getTime()>a.getTime()},$dateNotAfter:function(i,n){if(!i||!n)return!1;n.type&&(n=(0,import_client.getDayRangeByParams)(n)),Array.isArray(n)&&(n=n[1]);const l=parseDate(i),a=parseDate(n);if(!l||!a)throw new Error("Invalid date format");return l.getTime()<=a.getTime()},$dateBetween:function(i,n){if(!i||!n)return!1;n.type&&(n=(0,import_client.getDayRangeByParams)(n));const l=parseDate(i),a=parseFullDate(n[0]),c=parseFullDate(n[1]);if(!l||!a||!c)throw new Error("Invalid date format");return l.getTime()>=a.getTime()&&l.getTime()<=c.getTime()},$dateNotOn:function(i,n){if(!i||!n)return!1;if(n.type&&(n=(0,import_client.getDayRangeByParams)(n)),Array.isArray(n))return!r.$dateBetween(i,n);const l=parseDate(i),a=parseDate(n);return l.getTime()!==a.getTime()},$isTruly:function(i){return Array.isArray(i)?i.some(n=>n===!0||n===1):i===!0||i===1},$isFalsy:function(i){return Array.isArray(i)?i.some(n=>!o.truthy(n)):!o.truthy(i)},cat:function(){return Array.prototype.join.call(arguments,"")},substr:function(i,n,l){if(l<0){var a=String(i).substr(n);return a.substr(0,a.length+l)}return String(i).substr(n,l)},"+":function(){return Array.prototype.reduce.call(arguments,function(i,n){return parseFloat(i,10)+parseFloat(n,10)},0)},"*":function(){return Array.prototype.reduce.call(arguments,function(i,n){return parseFloat(i,10)*parseFloat(n,10)})},"-":function(i,n){return n===void 0?-i:i-n},"/":function(i,n){return i/n},min:function(){return Math.min.apply(this,arguments)},max:function(){return Math.max.apply(this,arguments)},merge:function(){return Array.prototype.reduce.call(arguments,function(i,n){return i.concat(n)},[])},var:function(i,n){var l=n===void 0?null:n,a=this;if(typeof i>"u"||i===""||i===null)return a;for(var c=String(i).split("."),u=0;u<c.length;u++)if(a==null||(a=a[c[u]],a===void 0))return l;return a},missing:function(){for(var i=[],n=Array.isArray(arguments[0])?arguments[0]:arguments,l=0;l<n.length;l++){var a=n[l],c=o.apply({var:a},this);(c===null||c==="")&&i.push(a)}return i},missing_some:function(i,n){var l=o.apply({missing:n},this);return n.length-l.length>=i?[]:l}};return o.is_logic=function(i){return typeof i=="object"&&i!==null&&!Array.isArray(i)&&Object.keys(i).length===1&&!i.type},o.truthy=function(i){return Array.isArray(i)&&i.length===0?!1:!!i},o.getOperator=function(i){return Object.keys(i)[0]},o.getValues=function(i){return i[o.getOperator(i)]},o.apply=function(i,n){if(Array.isArray(i))return i.map(function(f){return o.apply(f,n)});if(!o.is_logic(i))return i;var l=o.getOperator(i),a=i[l],c,u,d,m,p;if(Array.isArray(a)||(a=[a]),l==="if"||l=="?:"){for(c=0;c<a.length-1;c+=2)if(o.truthy(o.apply(a[c],n)))return o.apply(a[c+1],n);return a.length===c+1?o.apply(a[c],n):null}else if(l==="$and"){for(c=0;c<a.length;c+=1)if(u=o.apply(a[c],n),!o.truthy(u))return u;return u}else if(l==="or"){for(c=0;c<a.length;c+=1)if(u=o.apply(a[c],n),o.truthy(u))return u;return u}else{if(l==="filter")return m=o.apply(a[0],n),d=a[1],Array.isArray(m)?m.filter(function(f){return o.truthy(o.apply(d,f))}):[];if(l==="map")return m=o.apply(a[0],n),d=a[1],Array.isArray(m)?m.map(function(f){return o.apply(d,f)}):[];if(l==="reduce")return m=o.apply(a[0],n),d=a[1],p=typeof a[2]<"u"?a[2]:null,Array.isArray(m)?m.reduce(function(f,_){return o.apply(d,{current:_,accumulator:f})},p):p;if(l==="all"){if(m=o.apply(a[0],n),d=a[1],!Array.isArray(m)||!m.length)return!1;for(c=0;c<m.length;c+=1)if(!o.truthy(o.apply(d,m[c])))return!1;return!0}else if(l==="none"){if(m=o.apply(a[0],n),d=a[1],!Array.isArray(m)||!m.length)return!0;for(c=0;c<m.length;c+=1)if(o.truthy(o.apply(d,m[c])))return!1;return!0}else if(l==="some"){if(m=o.apply(a[0],n),d=a[1],!Array.isArray(m)||!m.length)return!1;for(c=0;c<m.length;c+=1)if(o.truthy(o.apply(d,m[c])))return!0;return!1}}if(a=a.map(function(f){return o.apply(f,n)}),r.hasOwnProperty(l)&&typeof r[l]=="function")return r[l].apply(n,a);if(l.indexOf(".")>0){var h=String(l).split("."),g=r;for(c=0;c<h.length;c++){if(!g.hasOwnProperty(h[c]))throw new Error("Unrecognized operation "+l+" (failed at "+h.slice(0,c+1).join(".")+")");g=g[h[c]]}return g.apply(n,a)}throw new Error("Unrecognized operation "+l)},o.uses_data=function(i){var n=[];if(o.is_logic(i)){var l=o.getOperator(i),a=i[l];Array.isArray(a)||(a=[a]),l==="var"?n.push(a[0]):a.forEach(function(c){n.push.apply(n,o.uses_data(c))})}return e(n)},o.addOperation=function(i,n){r[i]=n},o.rmOperation=function(i){delete r[i]},o.rule_like=function(i,n){if(n===i||n==="@")return!0;if(n==="number")return typeof i=="number";if(n==="string")return typeof i=="string";if(n==="array")return Array.isArray(i)&&!o.is_logic(i);if(o.is_logic(n)){if(o.is_logic(i)){var l=o.getOperator(n),a=o.getOperator(i);if(l==="@"||l===a)return o.rule_like(o.get_values(i,!1),o.get_values(n,!1))}return!1}if(Array.isArray(n))if(Array.isArray(i)){if(n.length!==i.length)return!1;for(var c=0;c<n.length;c+=1)if(!o.rule_like(i[c],n[c]))return!1;return!0}else return!1;return!1},o}function parseFullDate(e){return e.includes("T")&&e.endsWith("Z")?new Date(e):e.includes(" ")?new Date(e.replace(" ","T")):new Date(`${e}T00:00:00`)}function parseMonth(e){const[t,o]=e.split("-").map(Number);return new Date(t,o-1)}function parseQuarter(e){const t=parseInt(e.slice(0,4)),o=(parseInt(e.slice(5,6))-1)*3;return new Date(t,o)}function parseYear(e){const t=parseInt(e);return new Date(t,0)}function parseDate(e){var t;let o=Array.isArray(e)?(t=e[1])!=null?t:e[0]:e;return/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/.test(o)?new Date(o):/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/.test(o)?new Date(o.replace(" ","T")):/^\d{4}-\d{2}-\d{2}$/.test(o)?parseFullDate(o):/^\d{4}-\d{2}$/.test(o)?parseMonth(o):/^\d{4}Q[1-4]$/.test(o)?parseQuarter(o):/^\d{4}$/.test(o)?parseYear(o):null}class RouteRepository{constructor(t){R(this,"routes",[]),this.ctx=t}setRoutes(t){this.routes=t}listAccessible(){return this.routes}getRouteBySchemaUid(t){return this.findRoute(this.routes,t)}findRoute(t,o){for(const r of t){if(r.schemaUid===o)return r;if(r.children){const i=this.findRoute(r.children,o);if(i)return i}}}}class DefaultToolsManager{constructor(t,o=new import_client.Registry){this.app=t,this.tools=o}listTools(t){return L(this,null,function*(){const{data:o}=yield this.app.apiClient.resource("aiTools").list({filter:t}),r=o==null?void 0:o.data;return r?r.map(i=>{var n;return x(x({},i),(n=this.tools.get(i.definition.name))!=null?n:{})}):[]})}useTools(){var t,o;const r=new import_client.Registry;for(const[i,n]of this.tools.getEntities())r.register(i,x({},(o=(t=n.useHooks)==null?void 0:t.call(n))!=null?o:n));return r}registerTools(t,o){this.tools.register(t,x({},o))}}class AIManager{constructor(t){R(this,"toolsManager"),this.app=t,this.toolsManager=new DefaultToolsManager(this.app)}}const toToolsMap=e=>new Map(e.map(t=>[t.definition.name,t]));class Application{constructor(t={}){R(this,"eventBus",new EventTarget),R(this,"aiManager"),R(this,"providers",[]),R(this,"router"),R(this,"scopes",{}),R(this,"i18n"),R(this,"ws"),R(this,"apiClient"),R(this,"components",A(x(x({DataBlockProvider},defaultAppComponents),schemaInitializerComponents),{CollectionField:CollectionField$1})),R(this,"pluginManager"),R(this,"pluginSettingsManager"),R(this,"devDynamicImport"),R(this,"requirejs"),R(this,"notification"),R(this,"schemaInitializerManager"),R(this,"schemaSettingsManager"),R(this,"dataSourceManager"),R(this,"name"),R(this,"favicon"),R(this,"globalVars",{}),R(this,"globalVarCtxs",{}),R(this,"jsonLogic"),R(this,"flowEngine"),R(this,"context"),R(this,"loading",!0),R(this,"maintained",!1),R(this,"maintaining",!1),R(this,"error",null),R(this,"hasLoadError",!1),R(this,"locales",null),R(this,"wsAuthorized",!1),R(this,"variables",[]),R(this,"apps",{Component:null}),this.options=t,this.initRequireJs(),(0,import_reactive.define)(this,{maintained:import_reactive.observable.ref,loading:import_reactive.observable.ref,maintaining:import_reactive.observable.ref,error:import_reactive.observable.ref}),this.devDynamicImport=t.devDynamicImport,this.scopes=(0,import_merge.default)(this.scopes,t.scopes),this.components=(0,import_merge.default)(this.components,t.components),this.name=this.options.name||(0,import_sdk.getSubAppName)(t.publicPath)||"main",this.apiClient=t.apiClient instanceof APIClient?t.apiClient:new APIClient(A(x({},t.apiClient),{appName:this.options.name||(0,import_sdk.getSubAppName)(t.publicPath)})),this.apiClient.app=this,this.i18n=t.i18n||i18n,this.router=new RouterManager(t.router,this),this.schemaSettingsManager=new SchemaSettingsManager(t.schemaSettings,this),this.pluginManager=new PluginManager$1(t.plugins,t.loadRemotePlugins,this),this.schemaInitializerManager=new SchemaInitializerManager(t.schemaInitializers,this),this.dataSourceManager=new DataSourceManager(t.dataSourceManager,this),this.flowEngine=new import_flow_engine.FlowEngine,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(t.providers||[]),this.ws=new WebSocketClient(t.ws),this.ws.app=this,this.pluginSettingsManager=new PluginSettingsManager(t.pluginSettings,this),this.addRoutes(),this.i18n.on("languageChanged",o=>{this.apiClient.auth.locale=o}),this.initListeners(),this.jsonLogic=getOperators(),this.aiManager=new AIManager(this)}get pm(){return this.pluginManager}get disableAcl(){return this.options.disableAcl}get isWsAuthorized(){return this.wsAuthorized}updateFavicon(t){let o=document.querySelector('link[rel="shortcut icon"]');t&&(this.favicon=t),o?o.href=this.favicon||"/favicon/favicon.ico":(o=document.createElement("link"),o.rel="shortcut icon",o.href=this.favicon||"/favicon/favicon.ico",document.head.appendChild(o))}setWsAuthorized(t){this.wsAuthorized=t}initListeners(){this.eventBus.addEventListener("auth:tokenChanged",t=>{this.setTokenInWebSocket(t.detail)}),this.eventBus.addEventListener("maintaining:end",()=>{this.apiClient.auth.token&&this.setTokenInWebSocket({token:this.apiClient.auth.token,authenticator:this.apiClient.auth.getAuthenticator()})})}setTokenInWebSocket(t){const{token:o,authenticator:r}=t;this.maintaining||this.ws.send(JSON.stringify({type:"auth:token",payload:{token:o,authenticator:r}}))}setMaintaining(t){this.maintaining!==t&&(this.maintaining=t,t||this.eventBus.dispatchEvent(new Event("maintaining:end")))}initRequireJs(){if(window.requirejs){this.requirejs=window.requirejs;return}window.requirejs=this.requirejs=getRequireJs(),defineGlobalDeps(this.requirejs),window.define=this.requirejs.define}addDefaultProviders(){this.use(APIClientProvider,{apiClient:this.apiClient}),this.use(import_react_i18next.I18nextProvider,{i18n:this.i18n}),this.use(GlobalThemeProvider),this.use(CSSVariableProvider),this.use(AppSchemaComponentProvider,{designable:this.options.designable,appName:this.name,components:this.components,scope:this.scopes}),this.use(AntdAppProvider),this.use(DataSourceApplicationProvider,{dataSourceManager:this.dataSourceManager}),this.use(OpenModeProvider),this.flowEngine.context.defineProperty("app",{value:this}),this.flowEngine.context.defineProperty("routeRepository",{value:new RouteRepository(this.flowEngine.context)}),this.flowEngine.context.defineProperty("appInfo",{get:()=>L(this,null,function*(){var o;return((o=(yield this.apiClient.request({url:"app:getInfo"})).data)==null?void 0:o.data)||{}})}),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(import_flow_engine.FlowEngineProvider,{engine:this.flowEngine}),this.use(import_flow_engine.FlowEngineGlobalsContextProvider);const t=(0,import_reactive.observable)({version:void 0});this.flowEngine.context.defineProperty("pageInfo",{value:t})}addReactRouterComponents(){this.addComponents({Link:import_react_router_dom.Link,Navigate:import_react_router_dom.Navigate,NavLink:import_react_router_dom.NavLink})}addRoutes(){this.router.add("not-found",{path:"*",Component:this.components.AppNotFound})}getOptions(){return this.options}getName(){return(0,import_sdk.getSubAppName)(this.getPublicPath())||null}getPublicPath(){let t=this.options.publicPath||"/";return t.endsWith("/")||(t+="/"),t}getApiUrl(t=""){let o=this.apiClient.axios.defaults.baseURL;if(!o.startsWith("http://")&&!o.startsWith("https://")){const{protocol:r,host:i}=window.location;o=`${r}//${i}${o}`}return o.replace(/\/$/g,"")+"/"+t.replace(/^\//g,"")}getRouteUrl(t){return this.getPublicPath()+t.replace(/^\//g,"")}getHref(t){const o=this.name;return o&&o!=="main"?this.getPublicPath()+"apps/"+o+"/"+t.replace(/^\//g,""):this.getPublicPath()+t.replace(/^\//g,"")}getCollectionManager(t){var o;return(o=this.dataSourceManager.getDataSource(t))==null?void 0:o.collectionManager}getComposeProviders(){const t=compose(...this.providers)(BlankComponent);return t.displayName="Providers",t}use(t,o){return this.addProvider(t,o)}addProvider(t,o){return this.providers.push([t,o])}addProviders(t){t.forEach(o=>{Array.isArray(o)?this.addProvider(o[0],o[1]):this.addProvider(o)})}load(){return L(this,null,function*(){var t,o,r,i,n;try{this.loading=!0,yield this.loadWebSocket(),yield this.pm.load(),yield this.flowEngine.flowSettings.load()}catch(l){this.hasLoadError=!0,((i=(r=(o=(t=l==null?void 0:l.response)==null?void 0:t.data)==null?void 0:o.errors)==null?void 0:r[0])==null?void 0:i.code)==="BLOCKED_IP"&&(this.hasLoadError=!1),this.ws.enabled&&(yield new Promise(a=>{setTimeout(()=>a(null),1e3)})),this.error=x({code:"LOAD_ERROR"},(n=this.apiClient.toErrMessages(l))==null?void 0:n[0]),console.error(l,this.error)}this.loading=!1,this.updateFavicon()})}loadWebSocket(){return L(this,null,function*(){this.eventBus.addEventListener("ws:message:authorized",()=>{this.setWsAuthorized(!0)}),this.ws.on("message",t=>{var o,r,i;const n=JSON.parse(t.data);if((o=n==null?void 0:n.payload)!=null&&o.refresh){window.location.reload();return}if(n.type==="notification"){this.notification[((r=n.payload)==null?void 0:r.type)||"info"]({message:(i=n.payload)==null?void 0:i.message});return}if(n.type==="maintaining"&&n.payload.code!=="APP_RUNNING")this.setMaintaining(!0),this.error=n.payload;else{this.hasLoadError&&window.location.reload(),this.setMaintaining(!1),this.maintained=!0,this.error=null;const l=n.type;if(!l)return;const a=`ws:message:${l}`;this.eventBus.dispatchEvent(new CustomEvent(a,{detail:n.payload}))}}),this.ws.on("serverDown",()=>{this.maintaining=!0,this.maintained=!1}),this.ws.on("open",()=>{const t=this.apiClient.auth.token;t&&this.setTokenInWebSocket({token:t,authenticator:this.apiClient.auth.getAuthenticator()})}),this.ws.connect()})}getComponent(t,o=!0){const r=i=>o&&console.error(i);if(!t){r(`getComponent called with ${t}`);return}if(typeof t=="function")return t;if(typeof t=="string"){const i=(0,import_get.default)(this.components,t);if(!i){r(`Component ${t} not found`);return}return i}r(`Component ${t} should be a string or a React component`)}renderComponent(t,o,r){return import_react2.default.createElement(this.getComponent(t),o,r)}addComponent(t,o){const r=o||t.displayName||t.name;if(!r){console.error("Component must have a displayName or pass name as second argument");return}(0,import_set.default)(this.components,r,t)}addComponents(t){Object.keys(t).forEach(o=>{this.addComponent(t[o],o)})}addScopes(t){this.scopes=(0,import_merge.default)(this.scopes,t)}getRootComponent(){return({children:t})=>(0,import_jsx_runtime.jsx)(AppComponent,{app:this,children:t})}mount(t){const o=normalizeContainer(t);if(!o)return;const r=this.getRootComponent(),i=(0,import_client3.createRoot)(o);return i.render((0,import_jsx_runtime.jsx)(r,{})),i}addFieldInterfaces(t=[]){return this.dataSourceManager.collectionFieldInterfaceManager.addFieldInterfaces(t)}addFieldInterfaceComponentOption(t,o){return this.dataSourceManager.collectionFieldInterfaceManager.addFieldInterfaceComponentOption(t,o)}addFieldInterfaceOperator(t,o){return this.dataSourceManager.collectionFieldInterfaceManager.addFieldInterfaceOperator(t,o)}addGlobalVar(t,o,r){(0,import_set.default)(this.globalVars,t,o),r&&(0,import_set.default)(this.globalVarCtxs,t,r)}getGlobalVar(t){return(0,import_get.default)(this.globalVars,t)}getGlobalVarCtx(t){return(0,import_get.default)(this.globalVarCtxs,t)}addUserCenterSettingsItem(t){const o=t.useVisible||(()=>!0),r=()=>{const{allow:i}=useAclSnippets();return o()?t.aclSnippet?i(t.aclSnippet):!0:!1};this.schemaSettingsManager.addItem("userCenterSettings",t.name,A(x({},t),{useVisible:r}))}registerVariable(t){if(this.variables.find(o=>o.name===t.name)){console.warn(`Variable ${t.name} already registered`);return}this.variables.push(t)}getVariables(){return this.variables}setAppsComponent({Component:t}){this.apps.Component=t}}function getNewSchema(e){const{fieldSchema:t,schemaKey:o,parentSchemaKey:r,value:i,valueKeys:n}=e;if(o)import_lodash.default.set(t,o,i);else if(r){if(i==null)return t;typeof i=="object"?Object.keys(i).forEach(l=>{n&&!n.includes(l)||import_lodash.default.set(t,`${r}.${l}`,i[l])}):console.error("value must be object")}return t}const useHookDefault=e=>e,useSchemaByType=(e="common")=>{const t=(0,import_react.useFieldSchema)(),{fieldSchema:o}=useColumnSchema$1()||{};return e==="field"&&o||t};function createModalSettingsItem(e){const{name:t,parentSchemaKey:o,valueKeys:r,schema:i,title:n,useSubmit:l=useHookDefault,useVisible:a,defaultValue:c,useDefaultValue:u=useHookDefault,width:d,type:m="common"}=e;return{name:t,type:"actionModal",useVisible:a,useComponentProps(){const p=useSchemaByType(m),{dn:h}=useDesignable(),g=u(c),f=o?import_lodash.default.get(p,o):void 0,_=useCompile(),{t:v}=(0,import_react_i18next.useTranslation)(),b=l(),{fieldSchema:C}=useColumnSchema$1()||{};return{title:typeof n=="function"?n(v):_(n),width:d,schema:i(x(x({},g),f)),onSubmit(y){const F=getNewSchema({fieldSchema:p,parentSchemaKey:o,value:y,valueKeys:r});return C?(h.emit("patch",{schema:F}),h.refresh()):h.deepMerge(F),b==null?void 0:b(y)}}}}}const createSelectSchemaSettingsItem=e=>{const{name:t,title:o,options:r,useOptions:i=useHookDefault,schemaKey:n,useVisible:l,type:a="common",defaultValue:c,useDefaultValue:u=useHookDefault}=e;return{name:t,type:"select",useVisible:l,useComponentProps(){const d=useSchemaByType(a),{fieldSchema:m}=useColumnSchema$1()||{},{dn:p}=useDesignable(),h=i(r),g=u(c),f=useCompile(),{t:_}=(0,import_react_i18next.useTranslation)();return{title:typeof o=="function"?o(_):f(o),options:h,value:import_lodash.default.get(d,n,g),onChange(v){const b=getNewSchema({fieldSchema:d,schemaKey:n,value:v});m?(p.emit("patch",{schema:b}),p.refresh()):p.deepMerge(b)}}}}};function createSwitchSettingsItem(e){const{name:t,useVisible:o,schemaKey:r,title:i,type:n="common",defaultValue:l,useDefaultValue:a=useHookDefault,useComponentProps:c}=e;return{name:t,useVisible:o,type:"switch",useComponentProps(){const u=useSchemaByType(n),{dn:d}=useDesignable(),m=a(l),p=useCompile(),{t:h}=(0,import_react_i18next.useTranslation)(),{fieldSchema:g}=useColumnSchema$1()||{},f=c==null?void 0:c();return{title:typeof i=="function"?i(h):p(i),checked:(f==null?void 0:f.checked)===void 0?!!import_lodash.default.get(u,r,m):f==null?void 0:f.checked,onChange(_){var v;(v=f==null?void 0:f.onChange)==null||v.call(f,_);const b=getNewSchema({fieldSchema:u,schemaKey:r,value:_});g?(d.emit("patch",{schema:b}),d.refresh()):d.deepMerge(b)}}}}}function createTextSettingsItem(e){const{name:t,useVisible:o,title:r,useTextClick:i=useHookDefault}=e;return{name:t,type:"item",useVisible:o,useComponentProps(){const n=useCompile(),{t:l}=(0,import_react_i18next.useTranslation)(),a=i();return{title:typeof r=="function"?r(l):n(r),onClick:a}}}}const linkageAction$1=(e,t)=>L(void 0,[e,t],function*({operator:o,condition:r,variables:i,localVariables:n,conditionType:l,displayResult:a},c){switch(o){case"visible":return(yield conditionAnalyses({ruleGroup:r,variables:i,localVariables:n,conditionType:l},c))&&a.push("visible"),a;case"hidden":return(yield conditionAnalyses({ruleGroup:r,variables:i,localVariables:n,conditionType:l},c))&&a.push("hidden"),a;default:return null}}),useReactiveLinkageEffect=(e,t,o,r)=>{const i=useApp().jsonLogic,[n,l]=(0,import_react2.useState)(null),a=useCollectionRecord();return(0,import_react2.useEffect)(()=>{L(void 0,null,function*(){const c=[];for(const u of e.filter(d=>!d.disabled))for(const d of u.actions||[])yield linkageAction$1({operator:d.operator,condition:u.condition,variables:t,localVariables:o,conditionType:u.conditionType,displayResult:c},i);l(c)})},[e,r,a]),n};function forEachLinkageRule(e,t){e.forEach(o=>{var r;(r=o.actions)==null||r.forEach(i=>{t(i,o)})})}const getLinkageRules$2=e=>{if(!e)return[];let t=(e==null?void 0:e["x-block-linkage-rules"])||[];return e.mapProperties(o=>{o["x-block-linkage-rules"]&&(t=o["x-block-linkage-rules"])}),t==null?void 0:t.filter(o=>!o.disabled)},BlockLinkageRuleProvider=e=>{const t=(0,import_react.useFieldSchema)(),o=useVariables$1(),r=useLocalVariables$1(),{designable:i}=useDesignable(),n=(0,import_react.useForm)(),l=(0,import_react2.useMemo)(()=>getLinkageRules$2(t),[t]),[a,c]=(0,import_react2.useState)(null),u=useReactiveLinkageEffect(l,o,r,a),d=(t==null?void 0:t["x-decorator"])==="FormItem"&&!n.readPretty&&l.length;return(0,import_react2.useEffect)(()=>{if(d){const m=(0,import_shared.uid)();return setTimeout(()=>{n.addEffects(m,()=>{forEachLinkageRule(l,(p,h)=>(0,import_reactive.reaction)(()=>{const g=getVariableValuesInCondition({linkageRules:l,localVariables:r}),f=getVariableValuesInExpression({action:p,localVariables:r});return[g,f].map(_=>JSON.stringify(_)).join(",")},()=>{c((0,import_shared.uid)())},{fireImmediately:!0,equals:import_lodash.isEqual}))})}),()=>{n.removeEffects(m)}}},[l,d]),l.length?u===null?null:(0,import_lodash.last)(u)==="hidden"?i?(0,import_jsx_runtime.jsx)("div",{style:{opacity:.3},children:e.children}):null:e.children:e.children},DataBlockContext=(0,import_react2.createContext)({});DataBlockContext.displayName="DataBlockContext";const DataBlockResourceContext=(0,import_react2.createContext)(null),RerenderDataBlockProvider=({children:e})=>{const[t,o]=import_react2.default.useState(!1),r=(0,import_react2.useMemo)(()=>({rerenderDataBlock:()=>{o(!0),setTimeout(()=>{o(!1)})}}),[]);return t?null:(0,import_jsx_runtime.jsx)(DataBlockResourceContext.Provider,{value:r,children:e})},AssociationOrCollectionProvider=e=>{const{collection:t,association:o,allowNull:r=!1}=e,i=(0,import_react2.useMemo)(()=>o?{Component:AssociationProvider,name:o}:{Component:SanitizedCollectionProvider,name:t},[t,o]);return(0,import_jsx_runtime.jsx)(i.Component,{name:i.name,allowNull:r,children:e.children})},DataBlockProvider=withDynamicSchemaProps(import_react2.default.memo(e=>{const t=e,{collection:o,association:r,dataSource:i,children:n,hidden:l}=t,a=te(t,["collection","association","dataSource","children","hidden"]),{dn:c}=useDesignable(),u=(0,import_react.useFieldSchema)();return l?null:(0,import_jsx_runtime.jsx)(VariableScope,{scopeId:u==null?void 0:u["x-uid"],type:"dataBlock",children:(0,import_jsx_runtime.jsx)(DataBlockContext.Provider,{value:{dn:c,props:A(x({},a),{collection:o,association:r,dataSource:i})},children:(0,import_jsx_runtime.jsx)(CollectionManagerProvider,{dataSource:i,children:(0,import_jsx_runtime.jsx)(AssociationOrCollectionProvider,{collection:o,association:r,children:(0,import_jsx_runtime.jsx)(ACLCollectionProvider,{children:(0,import_jsx_runtime.jsx)(BlockLinkageRuleProvider,{children:(0,import_jsx_runtime.jsx)(DataBlockResourceProvider,{children:(0,import_jsx_runtime.jsx)(BlockRequestProvider,{children:(0,import_jsx_runtime.jsx)(DataBlockCollector,{params:e.params,children:(0,import_jsx_runtime.jsx)(RerenderDataBlockProvider,{children:n})})})})})})})})})})}),{displayName:"DataBlockProvider"}),useDataBlock=()=>{const e=(0,import_react2.useContext)(DataBlockContext);if(!e)throw new Error("useDataBlock() must be used within a DataBlockProvider");return e},useDataBlockProps=()=>useDataBlock().props,useRerenderDataBlock=()=>{const e=(0,import_react2.useContext)(DataBlockResourceContext);if(!e)throw new Error("useRerenderDataBlock() must be used within a DataBlockProvider");return e},BlockRequestRefContext=(0,import_react2.createContext)(null);BlockRequestRefContext.displayName="BlockRequestRefContext";const BlockRequestLoadingContext=(0,import_react2.createContext)(!1);BlockRequestLoadingContext.displayName="BlockRequestLoadingContext";const BlockRequestDataContext=(0,import_react2.createContext)(null);BlockRequestDataContext.displayName="BlockRequestDataContext";function useRecordRequest(e){const t=useDataLoadingMode(),o=useDataBlockResource(),{action:r,params:i={},record:n,requestService:l,requestOptions:a,sourceId:c,association:u,parentRecord:d}=e,m=useAPIClient(),p=useDataBlockProps(),h=useDataSourceHeaders(p.dataSource),g=useSourceKey(u),[f,_]=(0,import_react2.useMemo)(()=>[JSON.stringify(i),JSON.stringify(n)],[i,n]),{isBlockTemplate:v,templateFinished:b}=useTemplateBlockContext(),C=S=>{var P;if(n)return Promise.resolve({data:n});if(!r)throw new Error("[nocobase]: The 'action' parameter is missing in the 'DataBlockRequestProvider' component");if(r==="get"&&import_lodash.default.isNil(i.filterByTk))return console.warn('[nocobase]: The "filterByTk" parameter is missing in the "DataBlockRequestProvider" component');const j=i.filterByTk===void 0?import_lodash.default.omit(i,"filterByTk"):i,I=x(x({},j),S);return(P=o[r])==null?void 0:P.call(o,I).then(M=>M.data)},y=(...S)=>v!=null&&v()&&!b?null:(l||C)(...S),F=useRequest((...S)=>L(this,null,function*(){const[P,j]=yield Promise.all([y(...S),requestParentRecordData({sourceId:c,association:u,parentRecord:d,api:m,headers:h,sourceKey:g})]);return P&&(P.parentRecord=j==null?void 0:j.data),P}),A(x({},a),{manual:t==="manual",ready:!!r,refreshDeps:[r,f,_,o,u,d,c,b]}));return F._defaultParams=i,F}function requestParentRecordData(e){return L(this,arguments,function*({sourceId:t,association:o,parentRecord:r,api:i,headers:n,sourceKey:l}){if(r)return Promise.resolve({data:r});if(!o||!l||!t)return Promise.resolve({data:void 0});const a=`${o.split(".")[0]}:get?filter[${l}]=${t}`;return(yield i.request({url:a,headers:n})).data})}const BlockRequestContextProvider=e=>{var t,o,r,i,n,l;const a=(0,import_react2.useRef)(e.recordRequest),c=(0,import_react2.useRef)((t=e.recordRequest)==null?void 0:t.data),{active:u}=useKeepAlive(),d=(0,import_react2.useRef)(u),m=(0,import_react2.useDeferredValue)(u),p=useDataBlockProps();return m&&!d.current&&(import_lodash.default.isNil(p.dataLoadingMode)||p.dataLoadingMode==="auto")&&((o=e.recordRequest)==null||o.refresh()),m&&d.current&&!((r=e.recordRequest)!=null&&r.loading)&&!import_lodash.default.isEqual(c.current,(i=e.recordRequest)==null?void 0:i.data)&&(c.current=(n=e.recordRequest)==null?void 0:n.data),m!==d.current&&(d.current=m),a.current=e.recordRequest,(0,import_jsx_runtime.jsx)(BlockRequestRefContext.Provider,{value:a,children:(0,import_jsx_runtime.jsx)(BlockRequestLoadingContext.Provider,{value:(l=e.recordRequest)==null?void 0:l.loading,children:(0,import_jsx_runtime.jsx)(BlockRequestDataContext.Provider,{value:c.current,children:e.children})})})},BlockRequestProvider=import_react2.default.memo(({children:e})=>{var t,o;const r=useDataBlockProps(),{action:i,filterByTk:n,sourceId:l,params:a=EMPTY_OBJECT,association:c,collection:u,record:d,parentRecord:m,requestOptions:p,requestService:h}=r,g=(0,import_react2.useMemo)(()=>A(x({},a),{filterByTk:n||a.filterByTk}),[n,a]),f=useRecordRequest({action:i,sourceId:l,record:d,association:c,collection:u,requestOptions:p,requestService:h,params:g,parentRecord:m}),_=(t=f.data)==null?void 0:t.parentRecord,v=(0,import_react2.useMemo)(()=>_&&new CollectionRecord({isNew:!1,data:_ instanceof CollectionRecord?_.data:_}),[_]);return(0,import_jsx_runtime.jsx)(BlockRequestContextProvider,{recordRequest:f,children:i!=="list"?(0,import_jsx_runtime.jsx)(CollectionRecordProvider,{isNew:i==null,record:((o=f.data)==null?void 0:o.data)||d,parentRecord:v||m,children:e}):(0,import_jsx_runtime.jsx)(CollectionRecordProvider,{isNew:!1,record:null,parentRecord:v||m,children:e})})});BlockRequestProvider.displayName="DataBlockRequestProvider";const useDataBlockRequest=()=>{const e=(0,import_react2.useContext)(BlockRequestRefContext),t=(0,import_react2.useContext)(BlockRequestLoadingContext),o=(0,import_react2.useContext)(BlockRequestDataContext);return(0,import_react2.useMemo)(()=>e?A(x({},e.current),{loading:t,data:o}):null,[e,o,t])},useDataBlockRequestGetter=()=>{const e=(0,import_react2.useContext)(BlockRequestRefContext);return(0,import_react2.useMemo)(()=>({getDataBlockRequest:()=>e?e.current:null}),[e])},useDataBlockRequestData=()=>(0,import_react2.useContext)(BlockRequestDataContext),FilterContext$1=(0,import_react2.createContext)(null);FilterContext$1.displayName="FilterContext";const FilterBlockProvider=import_react2.default.memo(({children:e})=>{const t=import_react2.default.useRef([]),o=(0,import_react2.useCallback)(n=>{typeof n=="function"?t.current=n(t.current):t.current=n},[]),r=(0,import_react2.useCallback)(()=>t.current,[]),i=(0,import_react2.useMemo)(()=>({getDataBlocks:r,setDataBlocks:o}),[r,o]);return(0,import_jsx_runtime.jsx)(FilterContext$1.Provider,{value:i,children:e})});FilterBlockProvider.displayName="FilterBlockProvider";const DataBlockCollector=({children:e,params:t})=>{const o=useCollection(),{recordDataBlocks:r}=useFilterBlock(),{getDataBlockRequest:i}=useDataBlockRequestGetter(),n=(0,import_react.useField)(),l=(0,import_react.useFieldSchema)(),a=useAssociatedFields(),c=(0,import_react2.useRef)(null),u=useDataLoadingMode(),d=n&&n.decoratorType!=="FilterFormBlockProvider"&&n.decoratorType!=="FormBlockProvider"&&n.decoratorProps.blockType!=="filter",m=(0,import_react2.useCallback)(()=>{const p=i();r({uid:l["x-uid"],title:n.componentProps.title,doFilter:p.runAsync,collection:o,associatedFields:a,foreignKeyFields:o==null?void 0:o.getFields("isForeignKey"),defaultFilter:(t==null?void 0:t.filter)||{},service:p,dom:c.current,dataLoadingMode:u,clearFilter(h){var g,f,_;const v=((g=this.service.params)==null?void 0:g[0])||{},b=((_=(f=this.service.params)==null?void 0:f[1])==null?void 0:_.filters)||{};delete b[h];const C=mergeFilter([...Object.values(b).map(y=>removeNullCondition(y)),(t==null?void 0:t.filter)||{}]);this.service.run(A(x({},v),{page:1,filter:C}),{filters:b})},clearData(){this.service.mutate(void 0)},clearSelection(){var h,g;n&&((g=(h=n.data)==null?void 0:h.clearSelectedRowKeys)==null||g.call(h))},highlightBlock(){var h;const g=c.current;if(!g)return;const f=g.querySelector(".ant-nb-schema-toolbar");f&&f.classList.remove("hidden"),g.style.boxShadow="0 3px 12px rgba(0, 0, 0, 0.15)",g.style.transition="box-shadow 0.3s ease, transform 0.2s ease",(h=g.scrollIntoView)==null||h.call(g,{behavior:"smooth",block:"start"})},unhighlightBlock(){const h=c.current;if(!h)return;const g=h.querySelector(".ant-nb-schema-toolbar");g&&g.classList.add("hidden"),h.style.boxShadow="none",h.style.transition="box-shadow 0.3s ease, transform 0.2s ease"}})},[a,o,u,l,t==null?void 0:t.filter,r,i,n]);return(0,import_react2.useEffect)(()=>{d&&m()},[m,d]),(0,import_jsx_runtime.jsx)("div",{ref:c,children:e})},useFilterBlock=()=>{const e=import_react2.default.useContext(FilterContext$1),t=useAllDataBlocks(),o=(0,import_react2.useCallback)(()=>(e==null?void 0:e.getDataBlocks())||[],[e]),r=(0,import_react2.useCallback)(n=>{t.recordDataBlocks(n);const l=e==null?void 0:e.getDataBlocks().find(a=>a.uid===n.uid);if(l){Object.assign(l,n);return}e==null||e.setDataBlocks(a=>[...a,n])},[e]),i=(0,import_react2.useCallback)(n=>{t.removeDataBlock(n),!(e!=null&&e.getDataBlocks().every(l=>l.uid!==n))&&(e==null||e.setDataBlocks(l=>l.filter(a=>a.uid!==n)))},[e]);return e?{recordDataBlocks:r,getDataBlocks:o,removeDataBlock:i,inProvider:!0}:{inProvider:!1,recordDataBlocks:import_lodash.default.noop,getDataBlocks:o,removeDataBlock:import_lodash.default.noop}},MarkdownVoidDesigner=()=>{const e=(0,import_react.useField)(),{t}=(0,import_react_i18next.useTranslation)();return(0,import_jsx_runtime.jsxs)(GeneralSchemaDesigner,{children:[(0,import_jsx_runtime.jsx)(SchemaSettingsItem,{title:t("Edit markdown"),onClick:()=>{e.editable=!0}}),(0,import_jsx_runtime.jsx)(SchemaSettingsRenderEngine,{}),(0,import_jsx_runtime.jsx)(SchemaSettingsBlockHeightItem,{}),(0,import_jsx_runtime.jsx)(SchemaSettingsDivider,{}),(0,import_jsx_runtime.jsx)(SchemaSettingsRemove,{removeParentsIfNoChildren:!0,breakRemoveOn:{"x-component":"Grid"}})]})};class QRCodeWebComponent extends HTMLElement{constructor(){super(),R(this,"root"),this.attachShadow({mode:"open"}),this.root=null}getProps(t,o={}){return[...t].filter(r=>r.name!=="style").map(r=>this.convert(o,r.name,r.value)).reduce((r,i)=>A(x({},r),{[i.name]:i.value}),{})}convert(t,o,r){const i=Object.keys(t).find(l=>l.toLowerCase()==o);let n=r;return r==="true"||r==="false"?n=r=="true":!isNaN(r)&&r!==""?n=+r:/^{.*}/.exec(r)&&(n=JSON.parse(r)),{name:i||o,value:n}}connectedCallback(){const t=x({},this.getProps(this.attributes));this.root=(0,import_client3.createRoot)(this.shadowRoot),this.root.render((0,import_jsx_runtime.jsx)(import_antd.QRCode,x({},t)))}disconnectedCallback(){this.root.unmount()}}function registerQrcodeWebComponent(){customElements.get("qr-code")||customElements.define("qr-code",QRCodeWebComponent)}const useStyles$a=genStyleHook("nb-markdown",(e,{isDarkTheme:t})=>{const{componentCls:o}=e,r=new import_tinycolor.TinyColor(e.colorFillAlter).onBackground(e.colorBgContainer).toHexShortString(),i={lineHeight:"inherit","&.nb-markdown-default":{"pre code.hljs":{display:"block",overflowX:"auto",padding:"1em"},"code.hljs":{padding:"3px 5px"},":not(pre) code":{padding:"2px 5px",color:"#d56161",background:e.colorFillQuaternary,border:`1px solid ${e.colorBorder}`,borderRadius:e.borderRadiusSM},blockquote:{borderLeft:"4px solid #ccc",paddingLeft:"20px",marginLeft:"0",color:"#666",fontStyle:"italic"},img:{maxWidth:"100%"},".hljs":{background:"#f8f8f8",color:"#444"},".hljs-comment":{color:"#697070"},".hljs-punctuation,.hljs-tag":{color:"#444a"},".hljs-tag .hljs-attr,.hljs-tag .hljs-name":{color:"#444"},".hljs-attribute,.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-name,.hljs-selector-tag":{fontWeight:700},".hljs-deletion,.hljs-number,.hljs-quote,.hljs-selector-class,.hljs-selector-id,.hljs-string,.hljs-template-tag,.hljs-type":{color:"#800"},".hljs-section,.hljs-title":{color:"#800",fontWeight:700},".hljs-link,.hljs-operator,.hljs-regexp,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-symbol,.hljs-template-variable,.hljs-variable":{color:"#ab5656"},".hljs-literal":{color:"#695"},".hljs-addition,.hljs-built_in,.hljs-bullet,.hljs-code":{color:"#397300"},".hljs-meta":{color:"#1f7199"},".hljs-meta .hljs-string":{color:"#38a"},".hljs-emphasis":{fontStyle:"italic"},".hljs-strong":{fontWeight:700}},"&.nb-markdown-table":{table:{borderCollapse:"collapse",width:"100%",fontFamily:"Arial, sans-serif",marginBottom:"1.5rem"},"th, td":{borderBottom:`1px solid ${e.colorBorderSecondary}`,padding:`${e.paddingContentVertical}px ${e.paddingContentHorizontal}px`,textAlign:"left"},th:{backgroundColor:r,fontWeight:"bold",color:e.colorText},"tr:hover":{backgroundColor:e.colorFillTertiary},"tr:last-child td":{borderBottom:"none"},"tr:first-child th":{borderTop:"none"}}},n={"&.nb-markdown-default":{"pre code.hljs":{display:"block",overflowX:"auto",padding:"1em"},"code.hljs":{padding:"3px 5px"},":not(pre) code":{padding:"2px 5px",color:"#d56161",background:e.colorFillQuaternary,border:`1px solid ${e.colorBorder}`,borderRadius:e.borderRadiusSM},".hljs":{color:"#adbac7",background:"#22272e"},".hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_":{color:"#f47067"},".hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_":{color:"#dcbdfb"},".hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable":{color:"#6cb6ff"},".hljs-meta .hljs-string,.hljs-regexp,.hljs-string":{color:"#96d0ff"},".hljs-built_in,.hljs-symbol":{color:"#f69d50"},".hljs-code,.hljs-comment,.hljs-formula":{color:"#768390"},".hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag":{color:"#8ddb8c"},".hljs-subst":{color:"#adbac7"},".hljs-section":{color:"#316dca",fontWeight:700},".hljs-bullet":{color:"#eac55f"},".hljs-emphasis":{color:"#adbac7",fontStyle:"italic"},".hljs-strong":{color:"#adbac7",fontWeight:700},".hljs-addition":{color:"#b4f1b4",backgroundColor:"#1b4721"},".hljs-deletion":{color:"#ffd8d3",backgroundColor:"#78191b"}},"&.nb-markdown-table":{table:{borderCollapse:"collapse",width:"100%",fontFamily:"Arial, sans-serif",marginBottom:"1.5rem"},"th, td":{borderBottom:`1px solid ${e.colorBorderSecondary}`,padding:`${e.paddingContentVertical}px ${e.paddingContentHorizontal}px`,textAlign:"left"},th:{backgroundColor:r,fontWeight:"bold",color:e.colorText},"tr:hover":{backgroundColor:e.colorFillTertiary},"tr:last-child td":{borderBottom:"none"},"tr:first-child th":{borderTop:"none"}}};return{[o]:x({lineHeight:e.lineHeight,"& > *:last-child":{marginBottom:"0"},".ant-description-textarea, .ant-description-input":{lineHeight:e.lineHeight},".field-interface-datetime":{minWidth:"100px"}},t?n:i)}}),parseMarkdown$1=import_lodash.default.memoize(e=>L(void 0,null,function*(){return e&&(yield Promise.resolve().then(()=>require("./md-oH2RssNY-IQIU5F3r.js"))).default.render(e)}));function useParseMarkdown$1(e){const[t,o]=(0,import_react2.useState)(""),[r,i]=(0,import_react2.useState)(!0);return(0,import_react2.useEffect)(()=>{i(!0),parseMarkdown$1(e).then(n=>{o(n),i(!1)}).catch(n=>console.log(n))},[e]),{html:t,loading:r}}function convertToText$2(e){const t=e;let o=document.createElement("div");o.innerHTML=t;const r=o.innerText;return o=null,(r==null?void 0:r.replace(/[\n\r]/g,""))||""}const MarkdownEditor=e=>{const{scope:t}=e,{t:o,i18n:r}=(0,import_react_i18next.useTranslation)(),[i,n]=(0,import_react2.useState)(e.defaultValue),l=(0,import_react2.useRef)(null),[a,c]=(0,import_react2.useState)([]),[u,d]=(0,import_react2.useState)(null);(0,import_react2.useEffect)(()=>{c(t)},[t]),(0,import_react2.useEffect)(()=>{var p,h;const g=(h=(p=l==null?void 0:l.current)==null?void 0:p.resizableTextArea)==null?void 0:h.textArea;u&&g&&g.setSelectionRange(u,u)},[u]);const m=(0,import_react2.useCallback)(function(p){var h;const g=p.filter(F=>!!F.trim()),{current:f}=l,_=(h=f==null?void 0:f.resizableTextArea)==null?void 0:h.textArea;if(!_||!g)return;f.focus();const v=`{{${p.join(".")}}}`,b=_.selectionStart||0,C=i.substring(0,b)+v+i.substring(b,i.length),y=b+v.length;n(C),d(y)},[i]);return(0,import_jsx_runtime.jsxs)("div",{className:"mb-markdown",style:{position:"relative",paddingTop:"20px"},children:[(0,import_jsx_runtime.jsx)(import_antd.Input.TextArea,A(x({ref:l,autoSize:{minRows:3}},e),{value:i,onChange:p=>{n(p.target.value)},style:{paddingBottom:"40px"}})),(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsxs)("span",{style:{marginLeft:".25em"},className:"ant-formily-item-extra",children:[o("Syntax references"),":"]}),(0,import_jsx_runtime.jsx)("a",{href:`https://${r.language==="zh-CN"?"docs-cn":"docs"}.nocobase.com/handbook/template-handlebars`,target:"_blank",rel:"noreferrer",children:"Handlebars.js"})]}),(0,import_jsx_runtime.jsx)("div",{style:{position:"absolute",top:21,right:1},children:(0,import_jsx_runtime.jsx)(VariableSelect,{options:a,setOptions:c,onInsert:m})}),(0,import_jsx_runtime.jsxs)(import_antd.Space,{style:{position:"absolute",bottom:30,right:5},children:[(0,import_jsx_runtime.jsx)(import_antd.Button,{onClick:p=>{var h;(h=e.onCancel)==null||h.call(e,p)},children:o("Cancel")}),(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"primary",onClick:()=>{var p;(p=e.onSubmit)==null||p.call(e,i)},children:o("Save")})]})]})},useMarkdownHeight=()=>{const{token:e}=import_antd.theme.useToken(),t=useBlockHeight$2();if(t)return t-2*e.paddingLG};function extractNFormPaths(e){const t=/\{\{\$nForm\.([\w.]+)\}\}/g;return[...e.matchAll(t)].map(o=>o[1])}function getValuesByPaths(e,t){const o={};for(const r of t){const i=r.split(".");let n=e;for(const l of i)if(n&&typeof n=="object"&&l in n)n=n[l];else{n=void 0;break}o[r]=n}return o}const MarkdownVoidInner=withDynamicSchemaProps((0,import_react.observer)(e=>{const{isDarkTheme:t}=useGlobalTheme(),{componentCls:o,hashId:r}=useStyles$a({isDarkTheme:t}),{content:i,className:n}=e,l=(0,import_react.useField)(),a=(0,import_react.useFieldSchema)(),{dn:c}=useDesignable(),{onSave:u,onCancel:d,form:m}=e,p=useCollectionRecord(),[h,g]=(0,import_react2.useState)(""),f=useVariables$1(),_=useLocalVariables$1(),{engine:v}=(a==null?void 0:a["x-decorator-props"])||{},[b,C]=(0,import_react2.useState)(!1),{t:y,i18n:F}=(0,import_react_i18next.useTranslation)(),S=(0,import_react.useForm)(),P=extractNFormPaths(i),[j,I]=(0,import_react2.useState)(null);(0,import_react2.useEffect)(()=>{if(P.length>0){const D=(0,import_shared.uid)();return setTimeout(()=>{S.addEffects(D,()=>(0,import_reactive.reaction)(()=>{const k=getValuesByPaths(S.values,P);return JSON.stringify(k)},()=>{I((0,import_shared.uid)())},{fireImmediately:!0,equals:import_lodash.isEqual}))}),()=>{S.removeEffects(D)}}},[]),(0,import_react2.useEffect)(()=>{C(!0),L(void 0,null,function*(){setTimeout(()=>L(void 0,null,function*(){const D=yield getRenderContent(v,i,f,_,parseMarkdown$1,y);g(D)})),C(!1)})},[i,f,_,v,j]);const M=useMarkdownHeight(),E=useVariableOptions({collectionField:{uiSchema:a},form:m,record:p,uiSchema:a,noDisabled:!0});return(0,import_react2.useEffect)(()=>{registerQrcodeWebComponent()},[]),b?(0,import_jsx_runtime.jsx)(import_antd.Spin,{}):l!=null&&l.editable?(0,import_jsx_runtime.jsx)(MarkdownEditor,A(x({scope:E},e),{className:!0,defaultValue:i,onCancel:()=>{l.editable=!1,d==null||d()},onSubmit:D=>L(void 0,null,function*(){l.editable=!1,a["x-component-props"]!=null||(a["x-component-props"]={}),a["x-component-props"].content=D,l.componentProps.content=D,u==null||u(a),c.emit("patch",{schema:{"x-uid":a["x-uid"],"x-component-props":{content:D}}})})})):(0,import_jsx_runtime.jsx)("div",{className:(0,import_classnames.default)([o,r,"nb-markdown nb-markdown-default nb-markdown-table",n]),style:A(x({},e.style),{height:M||"100%",overflowY:M?"auto":"null"}),dangerouslySetInnerHTML:{__html:h}})}),{displayName:"MarkdownVoid"}),MarkdownVoid=e=>{const t=useFlag(),o=(0,import_react.useFieldSchema)();return(0,import_jsx_runtime.jsx)(VariableScope,{scopeId:o==null?void 0:o["x-uid"],type:"markdownBlock",children:(0,import_jsx_runtime.jsx)(FlagProvider,A(x({},t),{collectionField:!0,children:(0,import_jsx_runtime.jsx)(MarkdownVoidInner,x({},e))}))})};MarkdownVoid.Designer=MarkdownVoidDesigner;const Markdown$1=(0,import_react.connect)(import_antd.Input.TextArea,(0,import_react.mapProps)((e,t)=>A(x({autoSize:{maxRows:10,minRows:3}},e),{suffix:(0,import_jsx_runtime.jsx)("span",{children:t!=null&&t.loading||t!=null&&t.validating?(0,import_jsx_runtime.jsx)(import_icons.LoadingOutlined,{}):e.suffix})})),(0,import_react.mapReadPretty)(e=>(0,import_jsx_runtime.jsx)(MarkdownReadPretty,x({},e)))),MarkdownReadPretty=e=>{const{isDarkTheme:t}=useGlobalTheme(),{wrapSSR:o,hashId:r,componentCls:i}=useStyles$a({isDarkTheme:t}),{html:n="",loading:l}=useParseMarkdown$1(e.value),a=(0,import_react2.useMemo)(()=>convertToText$2(n),[n]);if(l)return o((0,import_jsx_runtime.jsx)(import_antd.Spin,{}));const c=(0,import_jsx_runtime.jsx)("div",{className:`${r} ${i} nb-markdown nb-markdown-default nb-markdown-table`,dangerouslySetInnerHTML:{__html:n}});return o((0,import_jsx_runtime.jsx)(ReadPretty$c.TextArea,A(x({},e),{autop:!1,text:a,value:c})))};Markdown$1.Void=MarkdownVoid;const BlockItemCardContext=(0,import_react2.createContext)({}),BlockItemCard$1=import_react2.default.forwardRef((e,t)=>{var o=e,{children:r}=o,i=te(o,["children"]);const{token:n}=useToken(),l=i,{title:a,description:c}=l,u=te(l,["title","description"]),d=(0,import_react2.useMemo)(()=>({marginBottom:n.marginBlock,height:"100%"}),[n.marginBlock]),[m,p]=(0,import_react2.useState)(0),h=(0,import_react2.useRef)(null),{t:g}=(0,import_react_i18next.useTranslation)(),f=(0,import_react.useFieldSchema)(),_=f==null?void 0:f["x-block-linkage-rules"];(0,import_react2.useEffect)(()=>{const C=setTimeout(()=>{if(h.current){const y=c?h.current.parentElement.parentElement.parentElement.offsetHeight:n.fontSizeLG*n.lineHeightLG+n.padding*2-1;p(y)}else m&&p(0)},500);return()=>clearTimeout(C)},[a,c]);const v=(a||c)&&(0,import_jsx_runtime.jsxs)("div",{ref:h,style:{padding:"8px 0px 8px"},children:[(0,import_jsx_runtime.jsxs)("span",{children:[" ",g(a,{ns:NAMESPACE_UI_SCHEMA})]}),c&&(0,import_jsx_runtime.jsx)(MarkdownReadPretty,{value:g(c,{ns:NAMESPACE_UI_SCHEMA}),style:{overflowWrap:"break-word",whiteSpace:"normal",fontWeight:400,color:n.colorTextDescription,borderRadius:"4px"}})]}),b=(0,import_jsx_runtime.jsx)(BlockItemCardContext.Provider,{value:{titleHeight:m},children:(0,import_jsx_runtime.jsx)(import_antd.Card,A(x({ref:t,variant:"borderless",style:d},u),{title:v,children:r}))});return _?(0,import_jsx_runtime.jsx)(BlockLinkageRuleProvider,{children:b}):b});BlockItemCard$1.displayName="BlockItemCard";const useBlockHeightProps=()=>{var e,t,o;const r=(0,import_react.useFieldSchema)(),i=getCardItemSchema(r),n=(e=useBlockTemplateContext())==null?void 0:e.fieldSchema,l=(0,import_react2.useMemo)(()=>getPageSchema(n||r),[]),{disablePageHeader:a,enablePageTabs:c,hidePageTitle:u}=(l==null?void 0:l["x-component-props"])||{},{titleHeight:d}=(0,import_react2.useContext)(BlockItemCardContext)||{},{allAccessRoutes:m}=useAllAccessDesktopRoutes(),p=useCurrentPageUid(),h=(0,import_react2.useMemo)(()=>findRouteBySchemaUid(p,m),[p,m]);return{heightProps:A(x({},i==null?void 0:i["x-component-props"]),{title:((t=i==null?void 0:i["x-component-props"])==null?void 0:t.title)||((o=i==null?void 0:i["x-component-props"])==null?void 0:o.description),disablePageHeader:a,enablePageTabs:(h==null?void 0:h.enableTabs)||c,hidePageTitle:u,titleHeight:d})}},getPageSchema=e=>e?e["x-component"]==="Page"?e:getPageSchema(e.parent):null,getCardItemSchema=e=>e?["BlockItem","CardItem"].includes(e["x-component"])?e:getCardItemSchema(e.parent):null,useDataBlockParentRecord=({association:e})=>{var t;const o=useCollectionRecordData(),r=useCollectionParentRecordData(),i=useCollectionManager(),n=useCollection();if(!e)return;const l=i.getCollection(e.split(".")[0]);return n.name===l.name||(t=n.getParentCollectionsName)!=null&&t.call(n).includes(l.name)?o:r},usePickActionProps$1=()=>{const e=(0,import_react.useForm)();return{onClick(){console.log("usePickActionProps",e.values)}}};function renderTemplate(e,t){const o=/\{\{\s*((\w+\.?)+)\s*\}\}/g;return e.replace(o,function(r,i){return(0,import_get.default)(t,i)||""})}function getFilteredFormValues(e){const t=import_lodash.default.cloneDeep(e.values),o=[];return e.query("*").forEach(r=>{r&&o.push(r)}),import_lodash.default.uniq(o.filter(r=>{var i,n;const l=((i=r.path)==null?void 0:i.segments)||[],a=l.length<=1?l.join("."):l.slice(0,-1).join(".");return((n=r==null?void 0:r.componentProps)==null?void 0:n.readOnlySubmit)&&!(0,import_get.default)(t,a)[r==null?void 0:r.componentProps.filterTargetKey]}).map(r=>{var i;const n=((i=r.path)==null?void 0:i.segments)||[];return n.length<=1?n.join("."):n.slice(0,-1).join(".")})).forEach((r,i)=>{(i!==0||r.includes("."))&&!t[r]&&import_lodash.default.unset(t,r)}),t}function getFormValues({filterByTk:e,field:t,form:o,fieldNames:r,getField:i,resource:n,actionFields:l}){if(e&&l){const a=Object.keys(o.values).filter(c=>{const u=i(c);return!l.includes(c)&&["hasOne","hasMany","belongsTo","belongsToMany"].includes(u==null?void 0:u.type)});return(0,import_omit.default)(x({},o.values),a)}return getFilteredFormValues(o)}function useCollectValuesToSubmit(e){const t=(0,import_react.useForm)(),o=e??t,r=useFilterByTk(),{field:i,resource:n}=useBlockRequestContext(),{fields:l,getField:a,getTreeParentField:c,name:u}=useCollection_deprecated(),d=l.map(v=>v.name),{fieldSchema:m}=useActionContext(),{getActiveFieldsName:p}=useFormActiveFields()||{},h=useVariables$1(),g=useLocalVariables$1({currentForm:o}),f=(0,import_react.useFieldSchema)(),_=useTreeParentRecord();return(0,import_react2.useCallback)(()=>L(this,null,function*(){var v,b,C,y;const{assignedValues:F={},overwriteValues:S}=(v=f==null?void 0:f["x-action-settings"])!=null?v:{},P=getFormValues({filterByTk:r,field:i,form:o,fieldNames:d,getField:a,resource:n,actionFields:(p==null?void 0:p("form"))||[]}),j={},I=Object.keys(F).map(M=>L(this,null,function*(){const E=F[M],D=a(M);if(isVariable$1(E)){const{value:k}=(yield h==null?void 0:h.parseVariable(E,g))||{};j[M]=transformVariableValue(k,{targetCollectionField:D})}else E!==""&&(j[M]=E)}));if(yield Promise.all(I),(b=m==null?void 0:m["x-component-props"])==null?void 0:b.addChild){const M=c();P[(C=M==null?void 0:M.name)!=null?C:"parent"]=_,P[(y=M==null?void 0:M.foreignKey)!=null?y:"parentId"]=_==null?void 0:_.id}return x(x(x({},P),S),j)}),[f,i,d,m,r,o,p,a,c,g,u,n,_,h])}const useCreateActionProps=()=>{var e;const t=useFilterByTk(),o=useCollectionRecord(),r=(0,import_react.useForm)(),{field:i,resource:n}=useBlockRequestContext(),{setVisible:l,setSubmitted:a,setFormValueChanged:c}=useActionContext(),u=useNavigateNoUpdate(),d=(0,import_react.useFieldSchema)(),m=(0,import_react.useField)(),p=useCompile(),{modal:h}=import_antd.App.useApp(),{t:g}=(0,import_react_i18next.useTranslation)(),{updateAssociationValues:f}=useFormBlockContext(),_=useCollectValuesToSubmit(),v=o.isNew?m.componentProps.saveMode||"create":"update",b=((e=m.componentProps.filterKeys)==null?void 0:e.checked)||[],C=useLocalVariables$1(),y=useVariables$1();return{onClick(){return L(this,null,function*(){var F,S;const{onSuccess:P,skipValidator:j,triggerWorkflows:I}=(F=d==null?void 0:d["x-action-settings"])!=null?F:{},{manualClose:M,redirecting:E,redirectTo:D,successMessage:k,actionAfterSuccess:w}=P||{};j||(yield r.submit());const B=yield _();m.data=i.data||{},m.data.loading=!0;try{const N=yield n[v]({values:B,filterKeys:b,filterByTk:t,triggerWorkflows:I!=null&&I.length?I.map($=>[$.workflowKey,$.context].filter(Boolean).join("!")).join(","):void 0,updateAssociationValues:f});let T=D;if(D&&(T=yield getVariableValue(D,{variables:y,localVariables:[...C,{name:"$record",ctx:new Proxy((S=N==null?void 0:N.data)==null?void 0:S.data,{})}]})),(w==="previous"||!w&&E!==!0)&&(l==null||l(!1)),a==null||a(!0),c==null||c(!1),m.data.loading=!1,m.data.data=N,!k){import_antd.message.success(g("Saved successfully")),yield resetFormCorrectly(r),(E&&!w||w==="redirect")&&T&&((0,import_client.isURL)(T)?window.location.href=T:u(T));return}M?h.success({title:p(k),onOk:()=>L(this,null,function*(){yield resetFormCorrectly(r),(E&&!w||w==="redirect")&&T&&((0,import_client.isURL)(T)?window.location.href=T:u(T))})}):(import_antd.message.success(p(k)),yield resetFormCorrectly(r),(E&&!w||w==="redirect")&&T&&((0,import_client.isURL)(T)?window.location.href=T:u(T)))}catch{m.data.loading=!1}})}}},useAssociationCreateActionProps=()=>{var e;const t=(0,import_react.useForm)(),{field:o,resource:r,__parent:i}=useBlockRequestContext(),{setVisible:n,fieldSchema:l,setSubmitted:a}=useActionContext(),c=(0,import_react.useFieldSchema)(),u=(0,import_react.useField)(),{fields:d,getField:m,getTreeParentField:p,name:h}=useCollection_deprecated(),g=useCompile(),f=useFilterByTk(),_=useRecord(),v=useVariables$1(),b=useLocalVariables$1({currentForm:t}),{getActiveFieldsName:C}=useFormActiveFields()||{},y=u.componentProps.saveMode||"create",F=((e=u.componentProps.filterKeys)==null?void 0:e.checked)||[];return{onClick(){return L(this,null,function*(){var S,P,j,I,M,E;const D=d.map(U=>U.name),{assignedValues:k={},onSuccess:w,overwriteValues:B,skipValidator:N,triggerWorkflows:T}=(S=c==null?void 0:c["x-action-settings"])!=null?S:{},$=(P=l==null?void 0:l["x-component-props"])==null?void 0:P.addChild,{successMessage:q}=w||{},O={},V=Object.keys(k).map(U=>L(this,null,function*(){const K=k[U],W=m(U);if(isVariable$1(K)){const{value:Y}=(yield v==null?void 0:v.parseVariable(K,b))||{};O[U]=transformVariableValue(Y,{targetCollectionField:W})}else K!==""&&(O[U]=K)}));yield Promise.all(V),N||(yield t.submit());const z=getFormValues({filterByTk:f,field:o,form:t,fieldNames:D,getField:m,resource:r,actionFields:(C==null?void 0:C("form"))||[]});if($){const U=p();z[(j=U==null?void 0:U.name)!=null?j:"parent"]=_,z[(I=U==null?void 0:U.foreignKey)!=null?I:"parentId"]=_.id}u.data=o.data||{},u.data.loading=!0;try{const U=yield r[y]({values:x(x(x({},z),B),O),filterKeys:F,triggerWorkflows:T!=null&&T.length?T.map(K=>[K.workflowKey,K.context].filter(Boolean).join("!")).join(","):void 0});if(u.data.loading=!1,u.data.data=U,(E=(M=i==null?void 0:i.service)==null?void 0:M.refresh)==null||E.call(M),n==null||n(!1),a==null||a(!0),!q)return;import_antd.message.success(g(q))}catch{u.data.data=null,u.data.loading=!1}})}}},findFilterTargets=e=>{for(;e;){if(e["x-filter-targets"])return{targets:e["x-filter-targets"],uid:e["x-uid"]};e=e.parent}return{}},updateFilterTargets=(e,t)=>{for(;e;){if(e["x-filter-targets"]){e["x-filter-targets"]=t;return}e=e.parent}},useDoFilter=()=>{const e=(0,import_react.useForm)(),{getDataBlocks:t}=useFilterBlock(),o=useCollectionManager(),{getOperators:r}=useOperators(),i=(0,import_react.useFieldSchema)(),{name:n}=useCollection(),{targets:l=[],uid:a}=(0,import_react2.useMemo)(()=>findFilterTargets(i),[i]),c=(0,import_react2.useCallback)(()=>removeNullCondition(transformToFilter(e.values,r(),o.getCollectionField.bind(o),n)),[e.values,o,r,n]),u=(0,import_react2.useCallback)((...d)=>L(void 0,[...d],function*({doNothingWhenFilterIsEmpty:m=!1}={}){try{yield Promise.all(t().map(p=>L(void 0,null,function*(){var h,g,f,_;if(!l.find(y=>y.uid===p.uid))return;const v=((h=p.service.params)==null?void 0:h[0])||{},b=((f=(g=p.service.params)==null?void 0:g[1])==null?void 0:f.filters)||{};b[a]=c();const C=mergeFilter([...Object.values(b).map(y=>removeNullCondition(y)),p.defaultFilter]);if(import_lodash.default.isEmpty(b[a])&&((_=p.clearSelection)==null||_.call(p)),!(m&&import_lodash.default.isEmpty(b[a])))return p.dataLoadingMode==="manual"&&import_lodash.default.isEmpty(b[a])?p.clearData():(import_lodash.default.set(p.service.params,"1.filters",b),p.doFilter(A(x({},v),{page:1,filter:C}),{filters:b}))})))}catch(p){console.error(p)}}),[t,c,l,a]);return(0,import_react2.useEffect)(()=>{setTimeout(()=>{u({doNothingWhenFilterIsEmpty:!0})},500)},[u]),{doFilter:u,getFilterFromCurrentForm:c}},useFilterBlockActionProps=()=>{const{doFilter:e}=useDoFilter(),t=(0,import_react.useField)();return t.data=t.data||{},{onClick(){return L(this,null,function*(){t.data.loading=!0,yield e(),t.data.loading=!1})}}},useDoReset=()=>{const e=(0,import_react.useForm)(),t=(0,import_react.useFieldSchema)(),{getDataBlocks:o}=useFilterBlock(),{targets:r,uid:i}=findFilterTargets(t),{doFilter:n,getFilterFromCurrentForm:l}=useDoFilter();return{doReset:()=>L(void 0,null,function*(){var a;if(yield e.reset(void 0,{forceClear:!!((a=t==null?void 0:t["x-component-props"])!=null&&a.clearDefaultValue)}),import_lodash.default.isEmpty(l()))return doReset({getDataBlocks:o,targets:r,uid:i});yield n()})}},useResetBlockActionProps=()=>{const e=(0,import_react.useField)(),{doReset:t}=useDoReset();return e.data=e.data||{},{onClick(){return L(this,null,function*(){e.data.loading=!0,yield t(),e.data.loading=!1})}}},useCustomizeUpdateActionProps=()=>{const{resource:e,__parent:t,field:o,service:r}=useBlockRequestContext(),i=useFilterByTk(),n=(0,import_react.useFieldSchema)(),l=(0,import_react.useField)(),a=useNavigateNoUpdate(),c=useCompile(),u=(0,import_react.useForm)(),{modal:d}=import_antd.App.useApp(),m=useVariables$1(),p=useLocalVariables$1({currentForm:u}),{name:h,getField:g}=useCollection_deprecated(),{setVisible:f}=useActionContext();return{onClick(_,v){return L(this,null,function*(){var b,C,y,F;const{assignedValues:S={},onSuccess:P,skipValidator:j,triggerWorkflows:I}=(b=n==null?void 0:n["x-action-settings"])!=null?b:{},{manualClose:M,redirecting:E,redirectTo:D,successMessage:k,actionAfterSuccess:w}=P||{},B={},N=Object.keys(S).map(T=>L(this,null,function*(){const $=S[T],q=g(T);if(isVariable$1($)){const{value:O}=(yield m==null?void 0:m.parseVariable($,p))||{};B[T]=transformVariableValue(O,{targetCollectionField:q})}else $!==""&&(B[T]=$)}));if(yield Promise.all(N),j===!1&&(yield u.submit()),l.data=l.data||{},!l.data.loading){l.data.loading=!0;try{const T=yield e.update({filterByTk:i,values:x({},B),triggerWorkflows:I!=null&&I.length?I.map(q=>[q.workflowKey,q.context].filter(Boolean).join("!")).join(","):void 0});let $=D;if(D&&($=yield getVariableValue(D,{variables:m,localVariables:[...p,{name:"$record",ctx:new Proxy((C=T==null?void 0:T.data)==null?void 0:C.data,{})}]})),(w==="previous"||!w&&E!==!0)&&(f==null||f(!1)),v&&(v==null||v()),e instanceof TableFieldResource||(F=(y=t==null?void 0:t.service)==null?void 0:y.refresh)==null||F.call(y),!k)return;M?d.success({title:c(k),onOk:()=>L(this,null,function*(){(E&&!w||w==="redirect")&&$&&((0,import_client.isURL)($)?window.location.href=$:a($))})}):(import_antd.message.success(c(k)),(E&&!w||w==="redirect")&&$&&((0,import_client.isURL)($)?window.location.href=$:a($)))}catch(T){console.error(T)}finally{l.data.loading=!1}}})}}},useCustomizeBulkUpdateActionProps=()=>{var e,t,o,r;const{field:i,resource:n,__parent:l,service:a}=useBlockRequestContext(),c=(0,import_react2.useContext)(import_react.SchemaExpressionScopeContext),u=(0,import_react.useFieldSchema)(),d=useTableBlockContext(),{rowKey:m}=d,p=(r=(o=(t=(e=d.field)==null?void 0:e.data)==null?void 0:t.selectedRowKeys)!=null?o:c==null?void 0:c.selectedRecordKeys)!=null?r:{},h=useNavigateNoUpdate(),g=useCompile(),{t:f}=(0,import_react_i18next.useTranslation)(),_=(0,import_react.useField)(),{modal:v}=import_antd.App.useApp(),b=useVariables$1();useRecord();const{name:C,getField:y}=useCollection_deprecated(),F=useLocalVariables$1(),{setVisible:S}=useActionContext();return{onClick(){return L(this,null,function*(){var P;const{assignedValues:j={},onSuccess:I,updateMode:M}=(P=u==null?void 0:u["x-action-settings"])!=null?P:{},{manualClose:E,redirecting:D,redirectTo:k,successMessage:w,actionAfterSuccess:B}=I||{};_.data=i.data||{},_.data.loading=!0;const N={},T=Object.keys(j).map($=>L(this,null,function*(){const q=j[$],O=y($);if(isVariable$1(q)){const{value:V}=(yield b==null?void 0:b.parseVariable(q,F))||{};N[$]=transformVariableValue(V,{targetCollectionField:O})}else q!==""&&(N[$]=q)}));yield Promise.all(T),(B==="previous"||!B&&D!==!0)&&(S==null||S(!1)),v.confirm({title:f("Bulk update"),content:f(M==="selected"?"Update selected data?":"Update all data?"),onOk(){return L(this,null,function*(){var $,q,O,V;const{filter:z}=(q=($=a.params)==null?void 0:$[0])!=null?q:{},U={values:x({},N),filter:z,forceUpdate:!1};if(M==="selected"){if(!(p!=null&&p.length)){import_antd.message.error(f("Please select the records to be updated")),_.data.loading=!1;return}U.filter={$and:[{[m||"id"]:{$in:p}}]}}U.filter||(U.forceUpdate=!0);try{yield n.update(U)}catch{}finally{_.data.loading=!1}n instanceof TableFieldResource||(V=(O=l==null?void 0:l.service)==null?void 0:O.refresh)==null||V.call(O),w&&(E?v.success({title:g(w),onOk:()=>L(this,null,function*(){(D&&!B||B==="redirect")&&k&&((0,import_client.isURL)(k)?window.location.href=k:h(k))})}):(import_antd.message.success(g(w)),(D&&!B||B==="redirect")&&k&&((0,import_client.isURL)(k)?window.location.href=k:h(k))))})},onCancel(){return L(this,null,function*(){_.data.loading=!1})}})})}}},useCustomizeRequestActionProps=()=>{var e;const t=useAPIClient(),o=useNavigateNoUpdate(),r=useFilterByTk(),i=(0,import_react.useFieldSchema)(),n=useCompile(),l=(0,import_react.useForm)(),{fields:a,getField:c}=useCollection_deprecated(),{field:u,resource:d,__parent:m,service:p}=useBlockRequestContext(),h=useRecord(),g=useCurrentUserContext(),f=(e=g==null?void 0:g.data)==null?void 0:e.data,_=(0,import_react.useField)(),{t:v}=(0,import_react_i18next.useTranslation)(),{setVisible:b}=useActionContext(),{modal:C}=import_antd.App.useApp(),{getActiveFieldsName:y}=useFormActiveFields()||{};return{onClick(){return L(this,null,function*(){var F,S,P,j;const{skipValidator:I,onSuccess:M,requestSettings:E}=(F=i==null?void 0:i["x-action-settings"])!=null?F:{},{manualClose:D,redirecting:k,redirectTo:w,successMessage:B,actionAfterSuccess:N}=M||{},T=i==null?void 0:i["x-action"];if(!E.url)return;I!==!0&&T==="customize:form:request"&&(yield l.submit());const $=E.headers?JSON.parse(E.headers):{},q=E.params?JSON.parse(E.params):{},O=E.data?JSON.parse(E.data):{};if(T==="customize:form:request"&&["POST","PUT","PATCH"].includes(E.method)){const z=a.map(K=>K.name),U=getFormValues({filterByTk:r,field:u,form:l,fieldNames:z,getField:c,resource:d,actionFields:(y==null?void 0:y("form"))||[]});Object.assign(O,U)}const V={url:renderTemplate(E.url,{currentRecord:h,currentUser:f}),method:E.method,headers:(0,import_client.parse)($)({currentRecord:h,currentUser:f}),params:(0,import_client.parse)(q)({currentRecord:h,currentUser:f}),data:(0,import_client.parse)(O)({currentRecord:h,currentUser:f})};_.data=u.data||{},_.data.loading=!0;try{yield t.request(x({},V)),_.data.loading=!1,d instanceof TableFieldResource||(P=(S=m==null?void 0:m.service)==null?void 0:S.refresh)==null||P.call(S),(j=p==null?void 0:p.refresh)==null||j.call(p),T==="customize:form:request"&&(N==="previous"||!N&&k!==!0)&&(b==null||b(!1)),B||(import_antd.message.success(v("Saved successfully")),yield resetFormCorrectly(l),(k&&!N||N==="redirect")&&w&&((0,import_client.isURL)(w)?window.location.href=w:o(w))),D?C.success({title:n(B),onOk:()=>L(this,null,function*(){(k&&!N||N==="redirect")&&w&&((0,import_client.isURL)(w)?window.location.href=w:o(w))})}):import_antd.message.success(n(B))}finally{_.data.loading=!1}})}}},useUpdateActionProps=()=>{const e=(0,import_react.useForm)(),t=useFilterByTk(),{field:o,resource:r,__parent:i}=useBlockRequestContext(),{setVisible:n,setFormValueChanged:l}=useActionContext(),a=(0,import_react.useFieldSchema)(),c=useNavigateNoUpdate(),{fields:u,getField:d,name:m}=useCollection_deprecated(),p=useCompile(),h=(0,import_react.useField)(),{updateAssociationValues:g}=useFormBlockContext(),{modal:f}=import_antd.App.useApp(),_=useParamsFromRecord(),v=useVariables$1(),b=useLocalVariables$1({currentForm:e}),{getActiveFieldsName:C}=useFormActiveFields()||{};return{onClick(y,F){return L(this,null,function*(){var S,P;const{assignedValues:j={},onSuccess:I,overwriteValues:M,skipValidator:E,triggerWorkflows:D}=(S=a==null?void 0:a["x-action-settings"])!=null?S:{},{manualClose:k,redirecting:w,redirectTo:B,successMessage:N,actionAfterSuccess:T}=I||{},$={},q=Object.keys(j).map(z=>L(this,null,function*(){const U=j[z],K=d(z);if(isVariable$1(U)){const{value:W}=(yield v==null?void 0:v.parseVariable(U,b))||{};$[z]=transformVariableValue(W,{targetCollectionField:K})}else U!==""&&($[z]=U)}));yield Promise.all(q),E||(yield e.submit());const O=u.map(z=>z.name),V=getFormValues({filterByTk:t,field:o,form:e,fieldNames:O,getField:d,resource:r,actionFields:(C==null?void 0:C("form"))||[]});h.data=o.data||{},h.data.loading=!0;try{const z=yield r.update(A(x({filterByTk:t,values:x(x(x({},V),M),$)},_),{updateAssociationValues:g,triggerWorkflows:D!=null&&D.length?D.map(K=>[K.workflowKey,K.context].filter(Boolean).join("!")).join(","):void 0}));h.data.loading=!1,F&&(F==null||F());let U=B;if(B&&(U=yield getVariableValue(B,{variables:v,localVariables:[...b,{name:"$record",ctx:new Proxy((P=z==null?void 0:z.data)==null?void 0:P.data,{})}]})),(T==="previous"||!T&&w!==!0)&&(n==null||n(!1)),l==null||l(!1),!N)return;k?f.success({title:p(N),onOk:()=>L(this,null,function*(){yield e.reset(),(w&&!T||T==="redirect")&&U&&((0,import_client.isURL)(U)?window.location.href=U:c(U))})}):(import_antd.message.success(p(N)),(w&&!T||T==="redirect"||T==="redirect")&&U&&((0,import_client.isURL)(U)?window.location.href=U:c(U)))}catch{h.data.loading=!1}})}}},useDestroyActionProps=()=>{const e=useFilterByTk(),{resource:t,service:o,block:r,field:i,__parent:n}=useBlockRequestContext(),{setVisible:l,setSubmitted:a}=useActionContext(),c=useParamsFromRecord(),u=(0,import_react.useFieldSchema)(),d=(0,import_react.useField)();return{onClick(m,p){return L(this,null,function*(){var h,g,f,_,v,b,C;const{triggerWorkflows:y}=(h=u==null?void 0:u["x-action-settings"])!=null?h:{};d.data=i.data||{},d.data.loading=!0;try{yield t.destroy(x({filterByTk:e,triggerWorkflows:y!=null&&y.length?y.map(j=>[j.workflowKey,j.context].filter(Boolean).join("!")).join(","):void 0},c));const{count:F=0,page:S=0,pageSize:P=0}=((g=o==null?void 0:o.data)==null?void 0:g.meta)||{};if(F%P===1&&S!==1){const j=(f=o.params[0])==null?void 0:f.page,I=(v=(_=o.data)==null?void 0:_.meta)==null?void 0:v.totalPage;j===I&&o.params[0]&&j!==1&&(o.params[0].page=j-1)}p&&(p==null||p()),a==null||a(!0),r&&r!=="TableField"&&((C=(b=n==null?void 0:n.service)==null?void 0:b.refresh)==null||C.call(b),l==null||l(!1),a==null||a(!0))}catch(F){console.error(F),d.data.loading=!0}})}}},useRemoveActionProps=e=>{const t=useFilterByTk(),o=useAPIClient().resource(e,t);return{onClick(r){return L(this,null,function*(){yield o.remove({values:[r.id]})})}}},useDisassociateActionProps=()=>{const e=useFilterByTk(),{resource:t,service:o,block:r,__parent:i}=useBlockRequestContext(),{setVisible:n,setSubmitted:l,setFormValueChanged:a}=useActionContext();return{onClick(c,u){return L(this,null,function*(){var d,m,p,h;yield t.remove({values:[e]});const{count:g=0,page:f=0,pageSize:_=0}=((d=o==null?void 0:o.data)==null?void 0:d.meta)||{};g%_===1&&f!==1?o.run(A(x({},(m=o==null?void 0:o.params)==null?void 0:m[0]),{page:f-1})):u&&(u==null||u()),l==null||l(!0),r&&r!=="TableField"&&((h=(p=i==null?void 0:i.service)==null?void 0:p.refresh)==null||h.call(p),n==null||n(!1),a==null||a(!1))})}}},useBulkDestroyActionProps=()=>{const{field:e}=useBlockRequestContext(),{resource:t,service:o}=useBlockRequestContext(),{setSubmitted:r}=useActionContext(),i=useCollection_deprecated(),{filterTargetKey:n}=i;return{onClick(l,a){return L(this,null,function*(){var c,u,d,m,p,h,g;let f=(c=e.data)==null?void 0:c.selectedRowKeys;if(Array.isArray(n)&&(f=e.data.selectedRowData.map(b=>{const C={};return n.map(y=>{C[y]=b[y]}),C})),!((d=(u=e==null?void 0:e.data)==null?void 0:u.selectedRowKeys)!=null&&d.length))return;yield t.destroy({filterByTk:f}),e.data.selectedRowKeys=[];const _=(m=o.params[0])==null?void 0:m.page,v=(h=(p=o.data)==null?void 0:p.meta)==null?void 0:h.totalPage;_===v&&o.params[0]&&_!==1&&(o.params[0].page=_-1),a&&(a==null||a()),r==null||r(!0),(g=o==null?void 0:o.refresh)==null||g.call(o)})}}},useRefreshActionProps=()=>{const{service:e}=useBlockRequestContext();return{onClick(){return L(this,null,function*(){var t;(t=e==null?void 0:e.refresh)==null||t.call(e)})}}},useTableColumns$2=()=>{const e=(0,import_react.useFieldSchema)(),t=useCompile(),{t:o}=(0,import_react_i18next.useTranslation)(),r=useCollection();return(0,import_react2.useMemo)(()=>{const i=[],n=c=>{let u=c;for(;u&&!((u==null?void 0:u["x-component"])==="ActionBar"||!u.parent);)u=u.parent;const d=u.parent;if(d){const m=d==null?void 0:d.reduceProperties((p,h)=>(h==null?void 0:h["x-component"])==="TableV2"?p.concat([h]):p,[]);return m==null?void 0:m[0]}return null},l=(c,u=0)=>{var d,m,p,h,g,f,_,v,b;if(!(!c||u>1)){if((m=(d=c==null?void 0:c["x-component"])==null?void 0:d.includes)!=null&&m.call(d,"Table.Column")||(h=(p=c==null?void 0:c["x-decorator"])==null?void 0:p.includes)!=null&&h.call(p,"Table.Column")||(c==null?void 0:c["x-component"])==="TableV2.Column"){const C=c.reduceProperties?c.reduceProperties((j,I)=>(I==null?void 0:I["x-component"])==="CollectionField"?j.concat([I]):j,[]):[],y=(C==null?void 0:C.length)>0?C[0].name:c.name,F=(g=r==null?void 0:r.getField)==null?void 0:g.call(r,y);let S=o(c==null?void 0:c.title,{ns:NAMESPACE_UI_SCHEMA})||c.title;!S&&c.name==="actions"&&(S=o("Actions")),!S&&F&&(S=o((f=F.uiSchema)==null?void 0:f.title,{ns:NAMESPACE_UI_SCHEMA})||((_=F.uiSchema)==null?void 0:_.title)||F.name),S||(S=c.name||`Column ${i.length+1}`),S=t(S)||S;const P={key:c["x-uid"]||c.name||`column-${i.length}`,title:S,dataIndex:y||`column-${i.length}`,visible:c["x-display"]!=="hidden",fixed:((v=c["x-component-props"])==null?void 0:v.fixed)||!1,width:(b=c["x-component-props"])==null?void 0:b.width,order:c["x-index"]||i.length};i.push(P)}c.properties&&Object.keys(c.properties).forEach(C=>{l(c.properties[C],u+1)}),c.items&&l(c.items,u+1)}},a=n(e);return l(a),i.sort((c,u)=>(c.order||0)-(u.order||0))},[e,t,o,r])},useEditTableActionProps=()=>{const e=(0,import_react.useField)(),t=(0,import_react.useFieldSchema)(),o=useTableColumns$2(),r=(0,import_react2.useCallback)(()=>{let h=t;for(;h;){const g=_=>{if(!(_!=null&&_.properties))return null;for(const v in _.properties){const b=_.properties[v];if(b["x-component"]==="TableV2")return b;const C=g(b);if(C)return C}return null},f=g(h);if(f)return f;if(!h.parent)break;h=h.parent}return h},[t]),i=(0,import_react2.useMemo)(()=>r(),[r]);(0,import_react2.useMemo)(()=>(i==null?void 0:i["x-uid"])||"default",[i]);const{getSettings:n,saveSettings:l,clearSettings:a}=useColumnSettings(),[c,u]=(0,import_react2.useState)(n()),d=(0,import_react2.useMemo)(()=>{if(o.length===0)return[];if(!c||c.length===0)return o;const h=new Map;return c.forEach(g=>{h.set(g.key,g)}),o.map(g=>{const f=h.get(g.key);return f?A(x({},g),{visible:f.visible,order:f.order,width:f.width||g.width,fixed:f.fixed||g.fixed}):g}).sort((g,f)=>(g.order||0)-(f.order||0))},[o,c]);(0,import_react2.useEffect)(()=>{d.length>0&&(e.dataSource=d)},[d,e]);const m=(0,import_react2.useCallback)(h=>{if(!(h!=null&&h.columns)||!Array.isArray(h.columns))return;const g=h.columns.map((f,_)=>({key:f.key,title:f.title,dataIndex:f.dataIndex,visible:f.visible,fixed:f.fixed,width:f.width,order:_}));l(g)},[l]),p=(0,import_react2.useCallback)(()=>{a(),u(n())},[a]);return{columns:d,onSubmit:m,onReset:p}},useDetailsPaginationProps=()=>{var e,t,o,r,i,n,l,a,c,u,d,m,p,h,g,f,_;const v=useDetailsBlockContext(),b=((o=(t=(e=v.service)==null?void 0:e.data)==null?void 0:t.meta)==null?void 0:o.count)||0,C=(n=(i=(r=v.service)==null?void 0:r.data)==null?void 0:i.meta)==null?void 0:n.page,{hasNext:y}=((a=(l=v.service)==null?void 0:l.data)==null?void 0:a.meta)||{};return!b&&C?{simple:!0,current:((d=(u=(c=v.service)==null?void 0:c.data)==null?void 0:u.meta)==null?void 0:d.page)||1,pageSize:1,showSizeChanger:!1,align:"center",onChange(F){return L(this,null,function*(){var S,P;const j=(P=(S=v.service)==null?void 0:S.params)==null?void 0:P[0];v.service.run(A(x({},j),{page:F}))})},style:{marginTop:24,textAlign:"center"},showTotal:!1,showTitle:!1,total:((h=(p=(m=v.service)==null?void 0:m.data)==null?void 0:p.data)==null?void 0:h.length)<1||!y?1*C:1*C+1,className:import_css.css`
628
+ https://requirejs.org/docs/errors.html#`+e);return i.requireType=e,i.requireModules=r,o&&(i.originalError=o),i}if(typeof define<"u")return;if(typeof requirejs<"u"){if(isFunction(requirejs))return;cfg=requirejs,requirejs=void 0}typeof require<"u"&&!isFunction(require)&&(cfg=require,require=void 0);function newContext(e){var t,o,r,i,n,l={waitSeconds:7,baseUrl:"./",paths:{},bundles:{},pkgs:{},shim:{},config:{}},a={},c={},u={},d=[],m={},p={},h={},g=1,f=1;function _(T){var $,q;for($=0;$<T.length;$++)if(q=T[$],q===".")T.splice($,1),$-=1;else if(q===".."){if($===0||$===1&&T[2]===".."||T[$-1]==="..")continue;$>0&&(T.splice($-1,2),$-=2)}}function v(T,$,q){var O,V,z,U,K,W,Y,Z,H,J,oe,G,Q=$&&$.split("/"),X=l.map,ee=X&&X["*"];if(T&&(T=T.split("/"),Y=T.length-1,l.nodeIdCompat&&jsSuffixRegExp.test(T[Y])&&(T[Y]=T[Y].replace(jsSuffixRegExp,"")),T[0].charAt(0)==="."&&Q&&(G=Q.slice(0,Q.length-1),T=G.concat(T)),_(T),T=T.join("/")),q&&X&&(Q||ee)){z=T.split("/");e:for(U=z.length;U>0;U-=1){if(W=z.slice(0,U).join("/"),Q){for(K=Q.length;K>0;K-=1)if(V=getOwn(X,Q.slice(0,K).join("/")),V&&(V=getOwn(V,W),V)){Z=V,H=U;break e}}!J&&ee&&getOwn(ee,W)&&(J=getOwn(ee,W),oe=U)}!Z&&J&&(Z=J,H=oe),Z&&(z.splice(0,H,Z),T=z.join("/"))}return O=getOwn(l.pkgs,T),O||T}function b(T){isBrowser&&each(scripts(),function($){if($.getAttribute("data-requiremodule")===T&&$.getAttribute("data-requirecontext")===r.contextName)return $.parentNode.removeChild($),!0})}function C(T){var $=getOwn(l.paths,T);if($&&isArray($)&&$.length>1)return $.shift(),r.require.undef(T),r.makeRequire(null,{skipMap:!0})([T]),!0}function y(T){var $,q=T?T.indexOf("!"):-1;return q>-1&&($=T.substring(0,q),T=T.substring(q+1,T.length)),[$,T]}function F(T,$,q,O){var V,z,U,K,W=null,Y=$?$.name:null,Z=T,H=!0,J="";return T||(H=!1,T="_@r"+(g+=1)),K=y(T),W=K[0],T=K[1],W&&(W=v(W,Y,O),z=getOwn(m,W)),T&&(W?q?J=T:z&&z.normalize?J=z.normalize(T,function(oe){return v(oe,Y,O)}):J=T.indexOf("!")===-1?v(T,Y,O):T:(J=v(T,Y,O),K=y(J),W=K[0],J=K[1],q=!0,V=r.nameToUrl(J))),U=W&&!z&&!q?"_unnormalized"+(f+=1):"",{prefix:W,name:J,parentMap:$,unnormalized:!!U,url:V,originalName:Z,isDefine:H,id:(W?W+"!"+J:J)+U}}function S(T){var $=T.id,q=getOwn(a,$);return q||(q=a[$]=new r.Module(T)),q}function P(T,$,q){var O=T.id,V=getOwn(a,O);hasProp(m,O)&&(!V||V.defineEmitComplete)?$==="defined"&&q(m[O]):(V=S(T),V.error&&$==="error"?q(V.error):V.on($,q))}function j(T,$){var q=T.requireModules,O=!1;$?$(T):(each(q,function(V){var z=getOwn(a,V);z&&(z.error=T,z.events.error&&(O=!0,z.emit("error",T)))}),O||req.onError(T))}function I(){globalDefQueue.length&&(each(globalDefQueue,function(T){var $=T[0];typeof $=="string"&&(r.defQueueMap[$]=!0),d.push(T)}),globalDefQueue=[])}i={require:function(T){return T.require?T.require:T.require=r.makeRequire(T.map)},exports:function(T){if(T.usingExports=!0,T.map.isDefine)return T.exports?m[T.map.id]=T.exports:T.exports=m[T.map.id]={}},module:function(T){return T.module?T.module:T.module={id:T.map.id,uri:T.map.url,config:function(){return getOwn(l.config,T.map.id)||{}},exports:T.exports||(T.exports={})}}};function M(T){delete a[T],delete c[T]}function E(T,$,q){var O=T.map.id;T.error?T.emit("error",T.error):($[O]=!0,each(T.depMaps,function(V,z){var U=V.id,K=getOwn(a,U);K&&!T.depMatched[z]&&!q[U]&&(getOwn($,U)?(T.defineDep(z,m[U]),T.check()):E(K,$,q))}),q[O]=!0)}function D(){var T,$,q=l.waitSeconds*1e3,O=q&&r.startTime+q<new Date().getTime(),V=[],z=[],U=!1,K=!0;if(!t){if(t=!0,eachProp(c,function(W){var Y=W.map,Z=Y.id;if(W.enabled&&(Y.isDefine||z.push(W),!W.error)){if(!W.inited&&O)C(Z)?($=!0,U=!0):(V.push(Z),b(Z));else if(!W.inited&&W.fetched&&Y.isDefine&&(U=!0,!Y.prefix))return K=!1}}),O&&V.length)return T=makeError("timeout","Load timeout for modules: "+V,null,V),T.contextName=r.contextName,j(T);K&&each(z,function(W){E(W,{},{})}),(!O||$)&&U&&(isBrowser||isWebWorker)&&!n&&(n=setTimeout(function(){n=0,D()},50)),t=!1}}o=function(T){this.events=getOwn(u,T.id)||{},this.map=T,this.shim=getOwn(l.shim,T.id),this.depExports=[],this.depMaps=[],this.depMatched=[],this.pluginMaps={},this.depCount=0},o.prototype={init:function(T,$,q,O){O=O||{},!this.inited&&(this.factory=$,q?this.on("error",q):this.events.error&&(q=bind(this,function(V){this.emit("error",V)})),this.depMaps=T&&T.slice(0),this.errback=q,this.inited=!0,this.ignore=O.ignore,O.enabled||this.enabled?this.enable():this.check())},defineDep:function(T,$){this.depMatched[T]||(this.depMatched[T]=!0,this.depCount-=1,this.depExports[T]=$)},fetch:function(){if(!this.fetched){this.fetched=!0,r.startTime=new Date().getTime();var T=this.map;if(this.shim)r.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],bind(this,function(){return T.prefix?this.callPlugin():this.load()}));else return T.prefix?this.callPlugin():this.load()}},load:function(){var T=this.map.url;p[T]||(p[T]=!0,r.load(this.map.id,T))},check:function(){if(!(!this.enabled||this.enabling)){var T,$,q=this.map.id,O=this.depExports,V=this.exports,z=this.factory;if(!this.inited)hasProp(r.defQueueMap,q)||this.fetch();else if(this.error)this.emit("error",this.error);else if(!this.defining){if(this.defining=!0,this.depCount<1&&!this.defined){if(isFunction(z)){if(this.events.error&&this.map.isDefine||req.onError!==defaultOnError)try{V=r.execCb(q,z,O,V)}catch(K){T=K}else V=r.execCb(q,z,O,V);if(this.map.isDefine&&V===void 0&&($=this.module,$?V=$.exports:this.usingExports&&(V=this.exports)),T)return T.requireMap=this.map,T.requireModules=this.map.isDefine?[this.map.id]:null,T.requireType=this.map.isDefine?"define":"require",j(this.error=T)}else V=z;if(this.exports=V,this.map.isDefine&&!this.ignore&&(m[q]=V,req.onResourceLoad)){var U=[];each(this.depMaps,function(K){U.push(K.normalizedMap||K)}),req.onResourceLoad(r,this.map,U)}M(q),this.defined=!0}this.defining=!1,this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=!0)}}},callPlugin:function(){var T=this.map,$=T.id,q=F(T.prefix);this.depMaps.push(q),P(q,"defined",bind(this,function(O){var V,z,U,K=getOwn(h,this.map.id),W=this.map.name,Y=this.map.parentMap?this.map.parentMap.name:null,Z=r.makeRequire(T.parentMap,{enableBuildCallback:!0});if(this.map.unnormalized){O.normalize&&(W=O.normalize(W,function(H){return v(H,Y,!0)})||""),z=F(T.prefix+"!"+W,this.map.parentMap,!0),P(z,"defined",bind(this,function(H){this.map.normalizedMap=z,this.init([],function(){return H},null,{enabled:!0,ignore:!0})})),U=getOwn(a,z.id),U&&(this.depMaps.push(z),this.events.error&&U.on("error",bind(this,function(H){this.emit("error",H)})),U.enable());return}if(K){this.map.url=r.nameToUrl(K),this.load();return}V=bind(this,function(H){this.init([],function(){return H},null,{enabled:!0})}),V.error=bind(this,function(H){this.inited=!0,this.error=H,H.requireModules=[$],eachProp(a,function(J){J.map.id.indexOf($+"_unnormalized")===0&&M(J.map.id)}),j(H)}),V.fromText=bind(this,function(H,J){var oe=T.name,G=F(oe),Q=useInteractive;J&&(H=J),Q&&(useInteractive=!1),S(G),hasProp(l.config,$)&&(l.config[oe]=l.config[$]);try{req.exec(H)}catch(X){return j(makeError("fromtexteval","fromText eval for "+$+" failed: "+X,X,[$]))}Q&&(useInteractive=!0),this.depMaps.push(G),r.completeLoad(oe),Z([oe],V)}),O.load(T.name,Z,V,l)})),r.enable(q,this),this.pluginMaps[q.id]=q},enable:function(){c[this.map.id]=this,this.enabled=!0,this.enabling=!0,each(this.depMaps,bind(this,function(T,$){var q,O,V;if(typeof T=="string"){if(T=F(T,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap),this.depMaps[$]=T,V=getOwn(i,T.id),V){this.depExports[$]=V(this);return}this.depCount+=1,P(T,"defined",bind(this,function(z){this.undefed||(this.defineDep($,z),this.check())})),this.errback?P(T,"error",bind(this,this.errback)):this.events.error&&P(T,"error",bind(this,function(z){this.emit("error",z)}))}q=T.id,O=a[q],!hasProp(i,q)&&O&&!O.enabled&&r.enable(T,this)})),eachProp(this.pluginMaps,bind(this,function(T){var $=getOwn(a,T.id);$&&!$.enabled&&r.enable(T,this)})),this.enabling=!1,this.check()},on:function(T,$){var q=this.events[T];q||(q=this.events[T]=[]),q.push($)},emit:function(T,$){each(this.events[T],function(q){q($)}),T==="error"&&delete this.events[T]}};function k(T){hasProp(m,T[0])||S(F(T[0],null,!0)).init(T[1],T[2])}function w(T,$,q,O){T.detachEvent&&!isOpera?O&&T.detachEvent(O,$):T.removeEventListener(q,$,!1)}function B(T){var $=T.currentTarget||T.srcElement;return w($,r.onScriptLoad,"load","onreadystatechange"),w($,r.onScriptError,"error"),{node:$,id:$&&$.getAttribute("data-requiremodule")}}function N(){var T;for(I();d.length;){if(T=d.shift(),T[0]===null)return j(makeError("mismatch","Mismatched anonymous define() module: "+T[T.length-1]));k(T)}r.defQueueMap={}}return r={config:l,contextName:e,registry:a,defined:m,urlFetched:p,defQueue:d,defQueueMap:{},Module:o,makeModuleMap:F,nextTick:req.nextTick,onError:j,configure:function(T){if(T.baseUrl&&T.baseUrl.charAt(T.baseUrl.length-1)!=="/"&&(T.baseUrl+="/"),typeof T.urlArgs=="string"){var $=T.urlArgs;T.urlArgs=function(V,z){return(z.indexOf("?")===-1?"?":"&")+$}}var q=l.shim,O={paths:!0,bundles:!0,config:!0,map:!0};eachProp(T,function(V,z){O[z]?(l[z]||(l[z]={}),mixin(l[z],V,!0,!0)):l[z]=V}),T.bundles&&eachProp(T.bundles,function(V,z){each(V,function(U){U!==z&&(h[U]=z)})}),T.shim&&(eachProp(T.shim,function(V,z){isArray(V)&&(V={deps:V}),(V.exports||V.init)&&!V.exportsFn&&(V.exportsFn=r.makeShimExports(V)),q[z]=V}),l.shim=q),T.packages&&each(T.packages,function(V){var z,U;V=typeof V=="string"?{name:V}:V,U=V.name,z=V.location,z&&(l.paths[U]=V.location),l.pkgs[U]=V.name+"/"+(V.main||"main").replace(currDirRegExp,"").replace(jsSuffixRegExp,"")}),eachProp(a,function(V,z){!V.inited&&!V.map.unnormalized&&(V.map=F(z,null,!0))}),(T.deps||T.callback)&&r.require(T.deps||[],T.callback)},makeShimExports:function(T){function $(){var q;return T.init&&(q=T.init.apply(global,arguments)),q||T.exports&&getGlobal(T.exports)}return $},makeRequire:function(T,$){$=$||{};function q(O,V,z){var U,K,W;return $.enableBuildCallback&&V&&isFunction(V)&&(V.__requireJsBuild=!0),typeof O=="string"?isFunction(V)?j(makeError("requireargs","Invalid require call"),z):T&&hasProp(i,O)?i[O](a[T.id]):req.get?req.get(r,O,T,q):(K=F(O,T,!1,!0),U=K.id,hasProp(m,U)?m[U]:j(makeError("notloaded",'Module name "'+U+'" has not been loaded yet for context: '+e+(T?"":". Use require([])")))):(N(),r.nextTick(function(){N(),W=S(F(null,T)),W.skipMap=$.skipMap,W.init(O,V,z,{enabled:!0}),D()}),q)}return mixin(q,{isBrowser,toUrl:function(O){var V,z=O.lastIndexOf("."),U=O.split("/")[0],K=U==="."||U==="..";return z!==-1&&(!K||z>1)&&(V=O.substring(z,O.length),O=O.substring(0,z)),r.nameToUrl(v(O,T&&T.id,!0),V,!0)},defined:function(O){return hasProp(m,F(O,T,!1,!0).id)},specified:function(O){return O=F(O,T,!1,!0).id,hasProp(m,O)||hasProp(a,O)}}),T||(q.undef=function(O){I();var V=F(O,T,!0),z=getOwn(a,O);z.undefed=!0,b(O),delete m[O],delete p[V.url],delete u[O],eachReverse(d,function(U,K){U[0]===O&&d.splice(K,1)}),delete r.defQueueMap[O],z&&(z.events.defined&&(u[O]=z.events),M(O))}),q},enable:function(T){var $=getOwn(a,T.id);$&&S(T).enable()},completeLoad:function(T){var $,q,O,V=getOwn(l.shim,T)||{},z=V.exports;for(I();d.length;){if(q=d.shift(),q[0]===null){if(q[0]=T,$)break;$=!0}else q[0]===T&&($=!0);k(q)}if(r.defQueueMap={},O=getOwn(a,T),!$&&!hasProp(m,T)&&O&&!O.inited){if(l.enforceDefine&&(!z||!getGlobal(z)))return C(T)?void 0:j(makeError("nodefine","No define call for "+T,null,[T]));k([T,V.deps||[],V.exportsFn])}D()},nameToUrl:function(T,$,q){var O,V,z,U,K,W,Y,Z=getOwn(l.pkgs,T);if(Z&&(T=Z),Y=getOwn(h,T),Y)return r.nameToUrl(Y,$,q);if(req.jsExtRegExp.test(T))K=T+($||"");else{for(O=l.paths,V=T.split("/"),z=V.length;z>0;z-=1)if(U=V.slice(0,z).join("/"),W=getOwn(O,U),W){isArray(W)&&(W=W[0]),V.splice(0,z,W);break}K=V.join("/"),K+=$||(/^data\:|^blob\:|\?/.test(K)||q?"":".js"),K=(K.charAt(0)==="/"||K.match(/^[\w\+\.\-]+:/)?"":l.baseUrl)+K}return l.urlArgs&&!/^blob\:/.test(K)?K+l.urlArgs(T,K):K},load:function(T,$){req.load(r,T,$)},execCb:function(T,$,q,O){return $.apply(O,q)},onScriptLoad:function(T){if(T.type==="load"||readyRegExp.test((T.currentTarget||T.srcElement).readyState)){interactiveScript=null;var $=B(T);r.completeLoad($.id)}},onScriptError:function(T){var $=B(T);if(!C($.id)){var q=[];return eachProp(a,function(O,V){V.indexOf("_@r")!==0&&each(O.depMaps,function(z){if(z.id===$.id)return q.push(V),!0})}),j(makeError("scripterror",'Script error for "'+$.id+(q.length?'", needed by: '+q.join(", "):'"'),T,[$.id]))}}},r.require=r.makeRequire(),r}req=requirejs=function(e,t,o,r){var i,n,l=defContextName;return!isArray(e)&&typeof e!="string"&&(n=e,isArray(t)?(e=t,t=o,o=r):e=[]),n&&n.context&&(l=n.context),i=getOwn(contexts,l),i||(i=contexts[l]=req.s.newContext(l)),n&&i.configure(n),i.require(e,t,o)},req.config=function(e){return req(e)},req.nextTick=typeof setTimeout<"u"?function(e){setTimeout(e,4)}:function(e){e()},require||(require=req),req.version=version,req.jsExtRegExp=/^\/|:|\?|\.js$/,req.isBrowser=isBrowser,s=req.s={contexts,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],baseElement&&(head=s.head=baseElement.parentNode)),req.onError=defaultOnError,req.createNode=function(e,t,o){var r=e.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script");return r.type=e.scriptType||"text/javascript",r.charset="utf-8",r.async=!0,r},req.load=function(e,t,o){var r=e&&e.config||{},i;if(isBrowser)return i=req.createNode(r,t,o),i.setAttribute("data-requirecontext",e.contextName),i.setAttribute("data-requiremodule",t),i.attachEvent&&!(i.attachEvent.toString&&i.attachEvent.toString().indexOf("[native code")<0)&&!isOpera?(useInteractive=!0,i.attachEvent("onreadystatechange",e.onScriptLoad)):(i.addEventListener("load",e.onScriptLoad,!1),i.addEventListener("error",e.onScriptError,!1)),i.src=o,r.onNodeCreated&&r.onNodeCreated(i,r,t,o),currentlyAddingScript=i,baseElement?head.insertBefore(i,baseElement):head.appendChild(i),currentlyAddingScript=null,i;if(isWebWorker)try{setTimeout(function(){},0),importScripts(o),e.completeLoad(t)}catch(n){e.onError(makeError("importscripts","importScripts failed for "+t+" at "+o,n,[t]))}};function getInteractiveScript(){return interactiveScript&&interactiveScript.readyState==="interactive"||eachReverse(scripts(),function(e){if(e.readyState==="interactive")return interactiveScript=e}),interactiveScript}return isBrowser&&!cfg.skipDataMain&&eachReverse(scripts(),function(e){if(head||(head=e.parentNode),dataMain=e.getAttribute("data-main"),dataMain)return mainScript=dataMain,!cfg.baseUrl&&mainScript.indexOf("!")===-1&&(src=mainScript.split("/"),mainScript=src.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,o){var r,i;typeof e!="string"&&(o=t,t=e,e=null),isArray(t)||(o=t,t=null),!t&&isFunction(o)&&(t=[],o.length&&(o.toString().replace(commentRegExp,commentReplace).replace(cjsRequireRegExp,function(n,l){t.push(l)}),t=(o.length===1?["require"]:["require","exports","module"]).concat(t))),useInteractive&&(r=currentlyAddingScript||getInteractiveScript(),r&&(e||(e=r.getAttribute("data-requiremodule")),i=contexts[r.getAttribute("data-requirecontext")])),i?(i.defQueue.push([e,t,o]),i.defQueueMap[e]=!0):globalDefQueue.push([e,t,o])},define.amd={jQuery:!0},req.exec=function(text){return eval(text)},req(cfg),{requirejs,require,define}}const setFieldProps=(e,t,o)=>{(0,import_reactive.untracked)(()=>{e[t]===void 0&&(e[t]=o)})},setRequired=(e,t,o)=>{typeof t.required>"u"&&(e.required=!!o.required)},CollectionFieldInternalField_deprecated=e=>{var t;const o=useCompile(),r=(0,import_react.useField)(),i=(0,import_react.useFieldSchema)(),{uiSchema:n,defaultValue:l}=useCollectionField(),{isAllowToSetDefaultValue:a}=useIsAllowToSetDefaultValue(),c=useComponent(((t=i["x-component-props"])==null?void 0:t.component)||(n==null?void 0:n["x-component"])||"Input"),u=useFormBlockContext(),d=useDynamicComponentProps(n==null?void 0:n["x-use-component-props"],e);return(0,import_react2.useEffect)(()=>{if(!n)return;const m=o(n);if(setFieldProps(r,"content",m["x-content"]),setFieldProps(r,"title",m.title),setFieldProps(r,"description",m.description),u!=null&&u.form){const h=a()?i.default||l:void 0;h!=null&&setFieldProps(r,"initialValue",h)}if(!r.validator&&(m["x-validator"]||i["x-validator"])){const h=(0,import_lodash.concat)([],m["x-validator"]||[],i["x-validator"]||[]);r.validator=h}i["x-disabled"]===!0&&(r.disabled=!0),i["x-read-pretty"]===!0&&(r.readPretty=!0),setRequired(r,i,m),r.dataSource=m.enum,r.data=r.data||{},r.data.dataSource=m==null?void 0:m.enum;const p=o(m["x-component-props"])||{};r.componentProps=(0,import_shared.merge)(p,r.componentProps||{},d||{})},[n]),n?(0,import_jsx_runtime.jsx)(c,x(x({},e),d)):null},CollectionFieldInternalField=e=>{var t;const o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{uiSchema:i}=useCollectionFieldUISchema(),n=useComponent(((t=r["x-component-props"])==null?void 0:t.component)||(i==null?void 0:i["x-component"])||"Input"),l=useDynamicComponentProps(i==null?void 0:i["x-use-component-props"],e);if((0,import_react2.useEffect)(()=>{r["x-read-pretty"]===!0&&!o.readPretty&&(o.readPretty=!0),r["x-disabled"]===!0&&(o.disabled=!0),o.data=o.data||{},o.data.dataSource=i==null?void 0:i.enum},[o,r]),!i)return null;const a=x(x({},e),l);return isVariable$1(a.value)&&a.value===r.default&&(a.value=void 0),(0,import_jsx_runtime.jsx)(n,x({},a))},CollectionField$1=(0,import_react.connect)(e=>{const t=(0,import_react.useFieldSchema)(),o=useIsInNocoBaseRecursionFieldContext();return(0,import_jsx_runtime.jsx)(CollectionFieldProvider,{name:t.name,children:o?(0,import_jsx_runtime.jsx)(CollectionFieldInternalField,x({},e)):(0,import_jsx_runtime.jsx)(CollectionFieldInternalField_deprecated,x({},e))})});CollectionField$1.displayName="CollectionField";const getKeyByName=e=>e?`nocobase_${e}_designable`.toUpperCase():"nocobase_designable".toUpperCase(),SchemaComponentProviderWithLocalStorageState=e=>{const[t,o]=(0,import_ahooks.useLocalStorageState)(getKeyByName(e.appName),{defaultValue:!!e.designable});return(0,import_jsx_runtime.jsx)(SchemaComponentProvider,A(x({},e),{designable:t,onDesignableChange:r=>{o(r)}}))},AppSchemaComponentProvider=e=>typeof e.designable=="boolean"?(0,import_jsx_runtime.jsx)(SchemaComponentProvider,x({},e)):(0,import_jsx_runtime.jsx)(SchemaComponentProviderWithLocalStorageState,x({},e));function getOperators(){Array.isArray||(Array.isArray=function(i){return Object.prototype.toString.call(i)==="[object Array]"});function e(i){for(var n=[],l=0,a=i.length;l<a;l++)n.indexOf(i[l])===-1&&n.push(i[l]);return n}function t(i,n){return JSON.stringify(i)===JSON.stringify(n)}var o={},r={$is:function(i,n){return i===n},$match:function(i,n){return Array.isArray(i)&&Array.isArray(n)&&i.some(l=>Array.isArray(l))?i.some(l=>(l==null?void 0:l.length)===n.length&&(l==null?void 0:l.every((a,c)=>a===n[c]))):JSON.stringify(i)===JSON.stringify(n)},$eq:function(i,n){return Array.isArray(i)&&Array.isArray(n)?t(i,n):Array.isArray(i)?i.includes(n):i==n},$ne:function(i,n){return i!=n},"!==":function(i,n){return i!==n},$gt:function(i,n){return Array.isArray(i)?i.some(l=>l>n):i>n},$gte:function(i,n){return i>=n},$lt:function(i,n,l){return Array.isArray(i)?i.some(a=>a<n):l===void 0?i<n:i<n&&n<l},$lte:function(i,n,l){return l===void 0?i<=n:i<=n&&n<=l},$exists:function(i){return o.truthy(i)},$notEmpty:function(i){return!r.$empty(i)},$empty:function(i){return Array.isArray(i)||typeof i=="string"?i.length===0:i==null},$notExists:function(i){return!o.truthy(i)},"%":function(i,n){return i%n},log:function(i){return i},$in:function(i,n){return!n||typeof n.indexOf>"u"?!1:Array.isArray(i)&&Array.isArray(n)?n.some(l=>i.includes(l)):n.indexOf(i)!==-1},$notIn:function(i,n){return!n||typeof n.indexOf>"u"?!1:n.indexOf(i)===-1},$includes:function(i,n){return!i||typeof i.indexOf>"u"?!1:Array.isArray(i)?i.some(l=>l==null?void 0:l.includes(n)):i.indexOf(n)!==-1},$notIncludes:function(i,n){return Array.isArray(i)?!i.some(l=>(l||"").includes(n)):(i=i||"",!i.includes(n))},$anyOf:function(i,n){return i==null||i.length===0?!1:Array.isArray(i)&&Array.isArray(n)&&i.some(l=>Array.isArray(l))?i.some(l=>l.some(a=>n.includes(a))):i.some(l=>n.includes(l))},$noneOf:function(i,n){return!i||i.length===0||!n||n.length===0?!0:(Array.isArray(i)||(i=[i]),Array.isArray(n)||(n=[n]),!n.some(l=>i.includes(l)))},$notMatch:function(i,n){if((i==null?void 0:i.length)!==(n==null?void 0:n.length))return!0;for(let l=0;l<((i==null?void 0:i.length)||0);l++)if((i==null?void 0:i[l])!==(n==null?void 0:n[l]))return!0;return!1},$dateOn:function(i,n){if(!i||!n)return!1;if(n.type&&(n=(0,import_client.getDayRangeByParams)(n)),Array.isArray(n))return r.$dateBetween(i,n);const l=parseDate(i),a=parseDate(n);return!l||!a?!1:l.getTime()===a.getTime()},$dateBefore:function(i,n){if(!i||!n)return!1;n.type&&(n=(0,import_client.getDayRangeByParams)(n)),Array.isArray(n)&&(n=n[0]);const l=parseDate(i),a=parseDate(n);return!l||!a?!1:l.getTime()<a.getTime()},$dateNotBefore:function(i,n){if(!i||!n)return!1;n.type&&(n=(0,import_client.getDayRangeByParams)(n)),Array.isArray(n)&&(n=n[0]);const l=parseDate(i),a=parseDate(n);if(!l||!a)throw new Error("Invalid date format");return l.getTime()>=a.getTime()},$dateAfter:function(i,n){if(!i||!n)return!1;n.type&&(n=(0,import_client.getDayRangeByParams)(n)),Array.isArray(n)&&(n=n[1]);const l=parseDate(i),a=parseDate(n);return l.getTime()>a.getTime()},$dateNotAfter:function(i,n){if(!i||!n)return!1;n.type&&(n=(0,import_client.getDayRangeByParams)(n)),Array.isArray(n)&&(n=n[1]);const l=parseDate(i),a=parseDate(n);if(!l||!a)throw new Error("Invalid date format");return l.getTime()<=a.getTime()},$dateBetween:function(i,n){if(!i||!n)return!1;n.type&&(n=(0,import_client.getDayRangeByParams)(n));const l=parseDate(i),a=parseFullDate(n[0]),c=parseFullDate(n[1]);if(!l||!a||!c)throw new Error("Invalid date format");return l.getTime()>=a.getTime()&&l.getTime()<=c.getTime()},$dateNotOn:function(i,n){if(!i||!n)return!1;if(n.type&&(n=(0,import_client.getDayRangeByParams)(n)),Array.isArray(n))return!r.$dateBetween(i,n);const l=parseDate(i),a=parseDate(n);return l.getTime()!==a.getTime()},$isTruly:function(i){return Array.isArray(i)?i.some(n=>n===!0||n===1):i===!0||i===1},$isFalsy:function(i){return Array.isArray(i)?i.some(n=>!o.truthy(n)):!o.truthy(i)},cat:function(){return Array.prototype.join.call(arguments,"")},substr:function(i,n,l){if(l<0){var a=String(i).substr(n);return a.substr(0,a.length+l)}return String(i).substr(n,l)},"+":function(){return Array.prototype.reduce.call(arguments,function(i,n){return parseFloat(i,10)+parseFloat(n,10)},0)},"*":function(){return Array.prototype.reduce.call(arguments,function(i,n){return parseFloat(i,10)*parseFloat(n,10)})},"-":function(i,n){return n===void 0?-i:i-n},"/":function(i,n){return i/n},min:function(){return Math.min.apply(this,arguments)},max:function(){return Math.max.apply(this,arguments)},merge:function(){return Array.prototype.reduce.call(arguments,function(i,n){return i.concat(n)},[])},var:function(i,n){var l=n===void 0?null:n,a=this;if(typeof i>"u"||i===""||i===null)return a;for(var c=String(i).split("."),u=0;u<c.length;u++)if(a==null||(a=a[c[u]],a===void 0))return l;return a},missing:function(){for(var i=[],n=Array.isArray(arguments[0])?arguments[0]:arguments,l=0;l<n.length;l++){var a=n[l],c=o.apply({var:a},this);(c===null||c==="")&&i.push(a)}return i},missing_some:function(i,n){var l=o.apply({missing:n},this);return n.length-l.length>=i?[]:l}};return o.is_logic=function(i){return typeof i=="object"&&i!==null&&!Array.isArray(i)&&Object.keys(i).length===1&&!i.type},o.truthy=function(i){return Array.isArray(i)&&i.length===0?!1:!!i},o.getOperator=function(i){return Object.keys(i)[0]},o.getValues=function(i){return i[o.getOperator(i)]},o.apply=function(i,n){if(Array.isArray(i))return i.map(function(f){return o.apply(f,n)});if(!o.is_logic(i))return i;var l=o.getOperator(i),a=i[l],c,u,d,m,p;if(Array.isArray(a)||(a=[a]),l==="if"||l=="?:"){for(c=0;c<a.length-1;c+=2)if(o.truthy(o.apply(a[c],n)))return o.apply(a[c+1],n);return a.length===c+1?o.apply(a[c],n):null}else if(l==="$and"){for(c=0;c<a.length;c+=1)if(u=o.apply(a[c],n),!o.truthy(u))return u;return u}else if(l==="or"){for(c=0;c<a.length;c+=1)if(u=o.apply(a[c],n),o.truthy(u))return u;return u}else{if(l==="filter")return m=o.apply(a[0],n),d=a[1],Array.isArray(m)?m.filter(function(f){return o.truthy(o.apply(d,f))}):[];if(l==="map")return m=o.apply(a[0],n),d=a[1],Array.isArray(m)?m.map(function(f){return o.apply(d,f)}):[];if(l==="reduce")return m=o.apply(a[0],n),d=a[1],p=typeof a[2]<"u"?a[2]:null,Array.isArray(m)?m.reduce(function(f,_){return o.apply(d,{current:_,accumulator:f})},p):p;if(l==="all"){if(m=o.apply(a[0],n),d=a[1],!Array.isArray(m)||!m.length)return!1;for(c=0;c<m.length;c+=1)if(!o.truthy(o.apply(d,m[c])))return!1;return!0}else if(l==="none"){if(m=o.apply(a[0],n),d=a[1],!Array.isArray(m)||!m.length)return!0;for(c=0;c<m.length;c+=1)if(o.truthy(o.apply(d,m[c])))return!1;return!0}else if(l==="some"){if(m=o.apply(a[0],n),d=a[1],!Array.isArray(m)||!m.length)return!1;for(c=0;c<m.length;c+=1)if(o.truthy(o.apply(d,m[c])))return!0;return!1}}if(a=a.map(function(f){return o.apply(f,n)}),r.hasOwnProperty(l)&&typeof r[l]=="function")return r[l].apply(n,a);if(l.indexOf(".")>0){var h=String(l).split("."),g=r;for(c=0;c<h.length;c++){if(!g.hasOwnProperty(h[c]))throw new Error("Unrecognized operation "+l+" (failed at "+h.slice(0,c+1).join(".")+")");g=g[h[c]]}return g.apply(n,a)}throw new Error("Unrecognized operation "+l)},o.uses_data=function(i){var n=[];if(o.is_logic(i)){var l=o.getOperator(i),a=i[l];Array.isArray(a)||(a=[a]),l==="var"?n.push(a[0]):a.forEach(function(c){n.push.apply(n,o.uses_data(c))})}return e(n)},o.addOperation=function(i,n){r[i]=n},o.rmOperation=function(i){delete r[i]},o.rule_like=function(i,n){if(n===i||n==="@")return!0;if(n==="number")return typeof i=="number";if(n==="string")return typeof i=="string";if(n==="array")return Array.isArray(i)&&!o.is_logic(i);if(o.is_logic(n)){if(o.is_logic(i)){var l=o.getOperator(n),a=o.getOperator(i);if(l==="@"||l===a)return o.rule_like(o.get_values(i,!1),o.get_values(n,!1))}return!1}if(Array.isArray(n))if(Array.isArray(i)){if(n.length!==i.length)return!1;for(var c=0;c<n.length;c+=1)if(!o.rule_like(i[c],n[c]))return!1;return!0}else return!1;return!1},o}function parseFullDate(e){return e.includes("T")&&e.endsWith("Z")?new Date(e):e.includes(" ")?new Date(e.replace(" ","T")):new Date(`${e}T00:00:00`)}function parseMonth(e){const[t,o]=e.split("-").map(Number);return new Date(t,o-1)}function parseQuarter(e){const t=parseInt(e.slice(0,4)),o=(parseInt(e.slice(5,6))-1)*3;return new Date(t,o)}function parseYear(e){const t=parseInt(e);return new Date(t,0)}function parseDate(e){var t;let o=Array.isArray(e)?(t=e[1])!=null?t:e[0]:e;return/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/.test(o)?new Date(o):/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/.test(o)?new Date(o.replace(" ","T")):/^\d{4}-\d{2}-\d{2}$/.test(o)?parseFullDate(o):/^\d{4}-\d{2}$/.test(o)?parseMonth(o):/^\d{4}Q[1-4]$/.test(o)?parseQuarter(o):/^\d{4}$/.test(o)?parseYear(o):null}class RouteRepository{constructor(t){R(this,"routes",[]),this.ctx=t}setRoutes(t){this.routes=t}listAccessible(){return this.routes}getRouteBySchemaUid(t){return this.findRoute(this.routes,t)}findRoute(t,o){for(const r of t){if(r.schemaUid===o)return r;if(r.children){const i=this.findRoute(r.children,o);if(i)return i}}}}class DefaultToolsManager{constructor(t,o=new import_client.Registry){this.app=t,this.tools=o}listTools(t){return L(this,null,function*(){const{data:o}=yield this.app.apiClient.resource("aiTools").list({filter:t}),r=o==null?void 0:o.data;return r?r.map(i=>{var n;return x(x({},i),(n=this.tools.get(i.definition.name))!=null?n:{})}):[]})}useTools(){var t,o;const r=new import_client.Registry;for(const[i,n]of this.tools.getEntities())r.register(i,x({},(o=(t=n.useHooks)==null?void 0:t.call(n))!=null?o:n));return r}registerTools(t,o){this.tools.register(t,x({},o))}}class AIManager{constructor(t){R(this,"toolsManager"),this.app=t,this.toolsManager=new DefaultToolsManager(this.app)}}const toToolsMap=e=>new Map(e.map(t=>[t.definition.name,t]));class Application{constructor(t={}){R(this,"eventBus",new EventTarget),R(this,"aiManager"),R(this,"providers",[]),R(this,"router"),R(this,"scopes",{}),R(this,"i18n"),R(this,"ws"),R(this,"apiClient"),R(this,"components",A(x(x({DataBlockProvider},defaultAppComponents),schemaInitializerComponents),{CollectionField:CollectionField$1})),R(this,"pluginManager"),R(this,"pluginSettingsManager"),R(this,"devDynamicImport"),R(this,"requirejs"),R(this,"notification"),R(this,"schemaInitializerManager"),R(this,"schemaSettingsManager"),R(this,"dataSourceManager"),R(this,"name"),R(this,"favicon"),R(this,"globalVars",{}),R(this,"globalVarCtxs",{}),R(this,"jsonLogic"),R(this,"flowEngine"),R(this,"context"),R(this,"loading",!0),R(this,"maintained",!1),R(this,"maintaining",!1),R(this,"error",null),R(this,"hasLoadError",!1),R(this,"locales",null),R(this,"wsAuthorized",!1),R(this,"variables",[]),R(this,"apps",{Component:null}),this.options=t,this.initRequireJs(),(0,import_reactive.define)(this,{maintained:import_reactive.observable.ref,loading:import_reactive.observable.ref,maintaining:import_reactive.observable.ref,error:import_reactive.observable.ref}),this.devDynamicImport=t.devDynamicImport,this.scopes=(0,import_merge.default)(this.scopes,t.scopes),this.components=(0,import_merge.default)(this.components,t.components),this.name=this.options.name||(0,import_sdk.getSubAppName)(t.publicPath)||"main",this.apiClient=t.apiClient instanceof APIClient?t.apiClient:new APIClient(A(x({},t.apiClient),{appName:this.options.name||(0,import_sdk.getSubAppName)(t.publicPath)})),this.apiClient.app=this,this.i18n=t.i18n||i18n,this.router=new RouterManager(t.router,this),this.schemaSettingsManager=new SchemaSettingsManager(t.schemaSettings,this),this.pluginManager=new PluginManager$1(t.plugins,t.loadRemotePlugins,this),this.schemaInitializerManager=new SchemaInitializerManager(t.schemaInitializers,this),this.dataSourceManager=new DataSourceManager(t.dataSourceManager,this),this.flowEngine=new import_flow_engine.FlowEngine,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(t.providers||[]),this.ws=new WebSocketClient(t.ws),this.ws.app=this,this.pluginSettingsManager=new PluginSettingsManager(t.pluginSettings,this),this.addRoutes(),this.i18n.on("languageChanged",o=>{this.apiClient.auth.locale=o}),this.initListeners(),this.jsonLogic=getOperators(),this.aiManager=new AIManager(this)}get pm(){return this.pluginManager}get disableAcl(){return this.options.disableAcl}get isWsAuthorized(){return this.wsAuthorized}updateFavicon(t){let o=document.querySelector('link[rel="shortcut icon"]');t&&(this.favicon=t),o?o.href=this.favicon||"/favicon/favicon.ico":(o=document.createElement("link"),o.rel="shortcut icon",o.href=this.favicon||"/favicon/favicon.ico",document.head.appendChild(o))}setWsAuthorized(t){this.wsAuthorized=t}initListeners(){this.eventBus.addEventListener("auth:tokenChanged",t=>{this.setTokenInWebSocket(t.detail)}),this.eventBus.addEventListener("maintaining:end",()=>{this.apiClient.auth.token&&this.setTokenInWebSocket({token:this.apiClient.auth.token,authenticator:this.apiClient.auth.getAuthenticator()})})}setTokenInWebSocket(t){const{token:o,authenticator:r}=t;this.maintaining||this.ws.send(JSON.stringify({type:"auth:token",payload:{token:o,authenticator:r}}))}setMaintaining(t){this.maintaining!==t&&(this.maintaining=t,t||this.eventBus.dispatchEvent(new Event("maintaining:end")))}initRequireJs(){if(window.requirejs){this.requirejs=window.requirejs;return}window.requirejs=this.requirejs=getRequireJs(),defineGlobalDeps(this.requirejs),window.define=this.requirejs.define}addDefaultProviders(){this.use(APIClientProvider,{apiClient:this.apiClient}),this.use(import_react_i18next.I18nextProvider,{i18n:this.i18n}),this.use(GlobalThemeProvider),this.use(CSSVariableProvider),this.use(AppSchemaComponentProvider,{designable:this.options.designable,appName:this.name,components:this.components,scope:this.scopes}),this.use(AntdAppProvider),this.use(DataSourceApplicationProvider,{dataSourceManager:this.dataSourceManager}),this.use(OpenModeProvider),this.flowEngine.context.defineProperty("app",{value:this}),this.flowEngine.context.defineProperty("routeRepository",{value:new RouteRepository(this.flowEngine.context)}),this.flowEngine.context.defineProperty("appInfo",{get:()=>L(this,null,function*(){var o;return((o=(yield this.apiClient.request({url:"app:getInfo"})).data)==null?void 0:o.data)||{}})}),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(import_flow_engine.FlowEngineProvider,{engine:this.flowEngine}),this.use(import_flow_engine.FlowEngineGlobalsContextProvider);const t=(0,import_reactive.observable)({version:void 0});this.flowEngine.context.defineProperty("pageInfo",{value:t})}addReactRouterComponents(){this.addComponents({Link:import_react_router_dom.Link,Navigate:import_react_router_dom.Navigate,NavLink:import_react_router_dom.NavLink})}addRoutes(){this.router.add("not-found",{path:"*",Component:this.components.AppNotFound})}getOptions(){return this.options}getName(){return(0,import_sdk.getSubAppName)(this.getPublicPath())||null}getPublicPath(){let t=this.options.publicPath||"/";return t.endsWith("/")||(t+="/"),t}getApiUrl(t=""){let o=this.apiClient.axios.defaults.baseURL;if(!o.startsWith("http://")&&!o.startsWith("https://")){const{protocol:r,host:i}=window.location;o=`${r}//${i}${o}`}return o.replace(/\/$/g,"")+"/"+t.replace(/^\//g,"")}getRouteUrl(t){return this.getPublicPath()+t.replace(/^\//g,"")}getHref(t){const o=this.name;return o&&o!=="main"?this.getPublicPath()+"apps/"+o+"/"+t.replace(/^\//g,""):this.getPublicPath()+t.replace(/^\//g,"")}getCollectionManager(t){var o;return(o=this.dataSourceManager.getDataSource(t))==null?void 0:o.collectionManager}getComposeProviders(){const t=compose(...this.providers)(BlankComponent);return t.displayName="Providers",t}use(t,o){return this.addProvider(t,o)}addProvider(t,o){return this.providers.push([t,o])}addProviders(t){t.forEach(o=>{Array.isArray(o)?this.addProvider(o[0],o[1]):this.addProvider(o)})}load(){return L(this,null,function*(){var t,o,r,i,n;try{this.loading=!0,yield this.loadWebSocket(),yield this.pm.load(),yield this.flowEngine.flowSettings.load()}catch(l){this.hasLoadError=!0,((i=(r=(o=(t=l==null?void 0:l.response)==null?void 0:t.data)==null?void 0:o.errors)==null?void 0:r[0])==null?void 0:i.code)==="BLOCKED_IP"&&(this.hasLoadError=!1),this.ws.enabled&&(yield new Promise(a=>{setTimeout(()=>a(null),1e3)})),this.error=x({code:"LOAD_ERROR"},(n=this.apiClient.toErrMessages(l))==null?void 0:n[0]),console.error(l,this.error)}this.loading=!1,this.updateFavicon()})}loadWebSocket(){return L(this,null,function*(){this.eventBus.addEventListener("ws:message:authorized",()=>{this.setWsAuthorized(!0)}),this.ws.on("message",t=>{var o,r,i;const n=JSON.parse(t.data);if((o=n==null?void 0:n.payload)!=null&&o.refresh){window.location.reload();return}if(n.type==="notification"){this.notification[((r=n.payload)==null?void 0:r.type)||"info"]({message:(i=n.payload)==null?void 0:i.message});return}if(n.type==="maintaining"&&n.payload.code!=="APP_RUNNING")this.setMaintaining(!0),this.error=n.payload;else{this.hasLoadError&&window.location.reload(),this.setMaintaining(!1),this.maintained=!0,this.error=null;const l=n.type;if(!l)return;const a=`ws:message:${l}`;this.eventBus.dispatchEvent(new CustomEvent(a,{detail:n.payload}))}}),this.ws.on("serverDown",()=>{this.maintaining=!0,this.maintained=!1}),this.ws.on("open",()=>{const t=this.apiClient.auth.token;t&&this.setTokenInWebSocket({token:t,authenticator:this.apiClient.auth.getAuthenticator()})}),this.ws.connect()})}getComponent(t,o=!0){const r=i=>o&&console.error(i);if(!t){r(`getComponent called with ${t}`);return}if(typeof t=="function")return t;if(typeof t=="string"){const i=(0,import_get.default)(this.components,t);if(!i){r(`Component ${t} not found`);return}return i}r(`Component ${t} should be a string or a React component`)}renderComponent(t,o,r){return import_react2.default.createElement(this.getComponent(t),o,r)}addComponent(t,o){const r=o||t.displayName||t.name;if(!r){console.error("Component must have a displayName or pass name as second argument");return}(0,import_set.default)(this.components,r,t)}addComponents(t){Object.keys(t).forEach(o=>{this.addComponent(t[o],o)})}addScopes(t){this.scopes=(0,import_merge.default)(this.scopes,t)}getRootComponent(){return({children:t})=>(0,import_jsx_runtime.jsx)(AppComponent,{app:this,children:t})}mount(t){const o=normalizeContainer(t);if(!o)return;const r=this.getRootComponent(),i=(0,import_client3.createRoot)(o);return i.render((0,import_jsx_runtime.jsx)(r,{})),i}addFieldInterfaces(t=[]){return this.dataSourceManager.collectionFieldInterfaceManager.addFieldInterfaces(t)}addFieldInterfaceComponentOption(t,o){return this.dataSourceManager.collectionFieldInterfaceManager.addFieldInterfaceComponentOption(t,o)}addFieldInterfaceOperator(t,o){return this.dataSourceManager.collectionFieldInterfaceManager.addFieldInterfaceOperator(t,o)}addGlobalVar(t,o,r){(0,import_set.default)(this.globalVars,t,o),r&&(0,import_set.default)(this.globalVarCtxs,t,r)}getGlobalVar(t){return(0,import_get.default)(this.globalVars,t)}getGlobalVarCtx(t){return(0,import_get.default)(this.globalVarCtxs,t)}addUserCenterSettingsItem(t){const o=t.useVisible||(()=>!0),r=()=>{const{allow:i}=useAclSnippets();return o()?t.aclSnippet?i(t.aclSnippet):!0:!1};this.schemaSettingsManager.addItem("userCenterSettings",t.name,A(x({},t),{useVisible:r}))}registerVariable(t){if(this.variables.find(o=>o.name===t.name)){console.warn(`Variable ${t.name} already registered`);return}this.variables.push(t)}getVariables(){return this.variables}setAppsComponent({Component:t}){this.apps.Component=t}}function getNewSchema(e){const{fieldSchema:t,schemaKey:o,parentSchemaKey:r,value:i,valueKeys:n}=e;if(o)import_lodash.default.set(t,o,i);else if(r){if(i==null)return t;typeof i=="object"?Object.keys(i).forEach(l=>{n&&!n.includes(l)||import_lodash.default.set(t,`${r}.${l}`,i[l])}):console.error("value must be object")}return t}const useHookDefault=e=>e,useSchemaByType=(e="common")=>{const t=(0,import_react.useFieldSchema)(),{fieldSchema:o}=useColumnSchema$1()||{};return e==="field"&&o||t};function createModalSettingsItem(e){const{name:t,parentSchemaKey:o,valueKeys:r,schema:i,title:n,useSubmit:l=useHookDefault,useVisible:a,defaultValue:c,useDefaultValue:u=useHookDefault,width:d,type:m="common"}=e;return{name:t,type:"actionModal",useVisible:a,useComponentProps(){const p=useSchemaByType(m),{dn:h}=useDesignable(),g=u(c),f=o?import_lodash.default.get(p,o):void 0,_=useCompile(),{t:v}=(0,import_react_i18next.useTranslation)(),b=l(),{fieldSchema:C}=useColumnSchema$1()||{};return{title:typeof n=="function"?n(v):_(n),width:d,schema:i(x(x({},g),f)),onSubmit(y){const F=getNewSchema({fieldSchema:p,parentSchemaKey:o,value:y,valueKeys:r});return C?(h.emit("patch",{schema:F}),h.refresh()):h.deepMerge(F),b==null?void 0:b(y)}}}}}const createSelectSchemaSettingsItem=e=>{const{name:t,title:o,options:r,useOptions:i=useHookDefault,schemaKey:n,useVisible:l,type:a="common",defaultValue:c,useDefaultValue:u=useHookDefault}=e;return{name:t,type:"select",useVisible:l,useComponentProps(){const d=useSchemaByType(a),{fieldSchema:m}=useColumnSchema$1()||{},{dn:p}=useDesignable(),h=i(r),g=u(c),f=useCompile(),{t:_}=(0,import_react_i18next.useTranslation)();return{title:typeof o=="function"?o(_):f(o),options:h,value:import_lodash.default.get(d,n,g),onChange(v){const b=getNewSchema({fieldSchema:d,schemaKey:n,value:v});m?(p.emit("patch",{schema:b}),p.refresh()):p.deepMerge(b)}}}}};function createSwitchSettingsItem(e){const{name:t,useVisible:o,schemaKey:r,title:i,type:n="common",defaultValue:l,useDefaultValue:a=useHookDefault,useComponentProps:c}=e;return{name:t,useVisible:o,type:"switch",useComponentProps(){const u=useSchemaByType(n),{dn:d}=useDesignable(),m=a(l),p=useCompile(),{t:h}=(0,import_react_i18next.useTranslation)(),{fieldSchema:g}=useColumnSchema$1()||{},f=c==null?void 0:c();return{title:typeof i=="function"?i(h):p(i),checked:(f==null?void 0:f.checked)===void 0?!!import_lodash.default.get(u,r,m):f==null?void 0:f.checked,onChange(_){var v;(v=f==null?void 0:f.onChange)==null||v.call(f,_);const b=getNewSchema({fieldSchema:u,schemaKey:r,value:_});g?(d.emit("patch",{schema:b}),d.refresh()):d.deepMerge(b)}}}}}function createTextSettingsItem(e){const{name:t,useVisible:o,title:r,useTextClick:i=useHookDefault}=e;return{name:t,type:"item",useVisible:o,useComponentProps(){const n=useCompile(),{t:l}=(0,import_react_i18next.useTranslation)(),a=i();return{title:typeof r=="function"?r(l):n(r),onClick:a}}}}const linkageAction$1=(e,t)=>L(void 0,[e,t],function*({operator:o,condition:r,variables:i,localVariables:n,conditionType:l,displayResult:a},c){switch(o){case"visible":return(yield conditionAnalyses({ruleGroup:r,variables:i,localVariables:n,conditionType:l},c))&&a.push("visible"),a;case"hidden":return(yield conditionAnalyses({ruleGroup:r,variables:i,localVariables:n,conditionType:l},c))&&a.push("hidden"),a;default:return null}}),useReactiveLinkageEffect=(e,t,o,r)=>{const i=useApp().jsonLogic,[n,l]=(0,import_react2.useState)(null),a=useCollectionRecord();return(0,import_react2.useEffect)(()=>{L(void 0,null,function*(){const c=[];for(const u of e.filter(d=>!d.disabled))for(const d of u.actions||[])yield linkageAction$1({operator:d.operator,condition:u.condition,variables:t,localVariables:o,conditionType:u.conditionType,displayResult:c},i);l(c)})},[e,r,a]),n};function forEachLinkageRule(e,t){e.forEach(o=>{var r;(r=o.actions)==null||r.forEach(i=>{t(i,o)})})}const getLinkageRules$2=e=>{if(!e)return[];let t=(e==null?void 0:e["x-block-linkage-rules"])||[];return e.mapProperties(o=>{o["x-block-linkage-rules"]&&(t=o["x-block-linkage-rules"])}),t==null?void 0:t.filter(o=>!o.disabled)},BlockLinkageRuleProvider=e=>{const t=(0,import_react.useFieldSchema)(),o=useVariables$1(),r=useLocalVariables$1(),{designable:i}=useDesignable(),n=(0,import_react.useForm)(),l=(0,import_react2.useMemo)(()=>getLinkageRules$2(t),[t]),[a,c]=(0,import_react2.useState)(null),u=useReactiveLinkageEffect(l,o,r,a),d=(t==null?void 0:t["x-decorator"])==="FormItem"&&!n.readPretty&&l.length;return(0,import_react2.useEffect)(()=>{if(d){const m=(0,import_shared.uid)();return setTimeout(()=>{n.addEffects(m,()=>{forEachLinkageRule(l,(p,h)=>(0,import_reactive.reaction)(()=>{const g=getVariableValuesInCondition({linkageRules:l,localVariables:r}),f=getVariableValuesInExpression({action:p,localVariables:r});return[g,f].map(_=>JSON.stringify(_)).join(",")},()=>{c((0,import_shared.uid)())},{fireImmediately:!0,equals:import_lodash.isEqual}))})}),()=>{n.removeEffects(m)}}},[l,d]),l.length?u===null?null:(0,import_lodash.last)(u)==="hidden"?i?(0,import_jsx_runtime.jsx)("div",{style:{opacity:.3},children:e.children}):null:e.children:e.children},DataBlockContext=(0,import_react2.createContext)({});DataBlockContext.displayName="DataBlockContext";const DataBlockResourceContext=(0,import_react2.createContext)(null),RerenderDataBlockProvider=({children:e})=>{const[t,o]=import_react2.default.useState(!1),r=(0,import_react2.useMemo)(()=>({rerenderDataBlock:()=>{o(!0),setTimeout(()=>{o(!1)})}}),[]);return t?null:(0,import_jsx_runtime.jsx)(DataBlockResourceContext.Provider,{value:r,children:e})},AssociationOrCollectionProvider=e=>{const{collection:t,association:o,allowNull:r=!1}=e,i=(0,import_react2.useMemo)(()=>o?{Component:AssociationProvider,name:o}:{Component:SanitizedCollectionProvider,name:t},[t,o]);return(0,import_jsx_runtime.jsx)(i.Component,{name:i.name,allowNull:r,children:e.children})},DataBlockProvider=withDynamicSchemaProps(import_react2.default.memo(e=>{const t=e,{collection:o,association:r,dataSource:i,children:n,hidden:l}=t,a=te(t,["collection","association","dataSource","children","hidden"]),{dn:c}=useDesignable(),u=(0,import_react.useFieldSchema)();return l?null:(0,import_jsx_runtime.jsx)(VariableScope,{scopeId:u==null?void 0:u["x-uid"],type:"dataBlock",children:(0,import_jsx_runtime.jsx)(DataBlockContext.Provider,{value:{dn:c,props:A(x({},a),{collection:o,association:r,dataSource:i})},children:(0,import_jsx_runtime.jsx)(CollectionManagerProvider,{dataSource:i,children:(0,import_jsx_runtime.jsx)(AssociationOrCollectionProvider,{collection:o,association:r,children:(0,import_jsx_runtime.jsx)(ACLCollectionProvider,{children:(0,import_jsx_runtime.jsx)(BlockLinkageRuleProvider,{children:(0,import_jsx_runtime.jsx)(DataBlockResourceProvider,{children:(0,import_jsx_runtime.jsx)(BlockRequestProvider,{children:(0,import_jsx_runtime.jsx)(DataBlockCollector,{params:e.params,children:(0,import_jsx_runtime.jsx)(RerenderDataBlockProvider,{children:n})})})})})})})})})})}),{displayName:"DataBlockProvider"}),useDataBlock=()=>{const e=(0,import_react2.useContext)(DataBlockContext);if(!e)throw new Error("useDataBlock() must be used within a DataBlockProvider");return e},useDataBlockProps=()=>useDataBlock().props,useRerenderDataBlock=()=>{const e=(0,import_react2.useContext)(DataBlockResourceContext);if(!e)throw new Error("useRerenderDataBlock() must be used within a DataBlockProvider");return e},BlockRequestRefContext=(0,import_react2.createContext)(null);BlockRequestRefContext.displayName="BlockRequestRefContext";const BlockRequestLoadingContext=(0,import_react2.createContext)(!1);BlockRequestLoadingContext.displayName="BlockRequestLoadingContext";const BlockRequestDataContext=(0,import_react2.createContext)(null);BlockRequestDataContext.displayName="BlockRequestDataContext";function useRecordRequest(e){const t=useDataLoadingMode(),o=useDataBlockResource(),{action:r,params:i={},record:n,requestService:l,requestOptions:a,sourceId:c,association:u,parentRecord:d}=e,m=useAPIClient(),p=useDataBlockProps(),h=useDataSourceHeaders(p.dataSource),g=useSourceKey(u),[f,_]=(0,import_react2.useMemo)(()=>[JSON.stringify(i),JSON.stringify(n)],[i,n]),{isBlockTemplate:v,templateFinished:b}=useTemplateBlockContext(),C=S=>{var P;if(n)return Promise.resolve({data:n});if(!r)throw new Error("[nocobase]: The 'action' parameter is missing in the 'DataBlockRequestProvider' component");if(r==="get"&&import_lodash.default.isNil(i.filterByTk))return console.warn('[nocobase]: The "filterByTk" parameter is missing in the "DataBlockRequestProvider" component');const j=i.filterByTk===void 0?import_lodash.default.omit(i,"filterByTk"):i,I=x(x({},j),S);return(P=o[r])==null?void 0:P.call(o,I).then(M=>M.data)},y=(...S)=>v!=null&&v()&&!b?null:(l||C)(...S),F=useRequest((...S)=>L(this,null,function*(){const[P,j]=yield Promise.all([y(...S),requestParentRecordData({sourceId:c,association:u,parentRecord:d,api:m,headers:h,sourceKey:g})]);return P&&(P.parentRecord=j==null?void 0:j.data),P}),A(x({},a),{manual:t==="manual",ready:!!r,refreshDeps:[r,f,_,o,u,d,c,b]}));return F._defaultParams=i,F}function requestParentRecordData(e){return L(this,arguments,function*({sourceId:t,association:o,parentRecord:r,api:i,headers:n,sourceKey:l}){if(r)return Promise.resolve({data:r});if(!o||!l||!t)return Promise.resolve({data:void 0});const a=`${o.split(".")[0]}:get?filter[${l}]=${t}`;return(yield i.request({url:a,headers:n})).data})}const BlockRequestContextProvider=e=>{var t,o,r,i,n,l;const a=(0,import_react2.useRef)(e.recordRequest),c=(0,import_react2.useRef)((t=e.recordRequest)==null?void 0:t.data),{active:u}=useKeepAlive(),d=(0,import_react2.useRef)(u),m=(0,import_react2.useDeferredValue)(u),p=useDataBlockProps();return m&&!d.current&&(import_lodash.default.isNil(p.dataLoadingMode)||p.dataLoadingMode==="auto")&&((o=e.recordRequest)==null||o.refresh()),m&&d.current&&!((r=e.recordRequest)!=null&&r.loading)&&!import_lodash.default.isEqual(c.current,(i=e.recordRequest)==null?void 0:i.data)&&(c.current=(n=e.recordRequest)==null?void 0:n.data),m!==d.current&&(d.current=m),a.current=e.recordRequest,(0,import_jsx_runtime.jsx)(BlockRequestRefContext.Provider,{value:a,children:(0,import_jsx_runtime.jsx)(BlockRequestLoadingContext.Provider,{value:(l=e.recordRequest)==null?void 0:l.loading,children:(0,import_jsx_runtime.jsx)(BlockRequestDataContext.Provider,{value:c.current,children:e.children})})})},BlockRequestProvider=import_react2.default.memo(({children:e})=>{var t,o;const r=useDataBlockProps(),{action:i,filterByTk:n,sourceId:l,params:a=EMPTY_OBJECT,association:c,collection:u,record:d,parentRecord:m,requestOptions:p,requestService:h}=r,g=(0,import_react2.useMemo)(()=>A(x({},a),{filterByTk:n||a.filterByTk}),[n,a]),f=useRecordRequest({action:i,sourceId:l,record:d,association:c,collection:u,requestOptions:p,requestService:h,params:g,parentRecord:m}),_=(t=f.data)==null?void 0:t.parentRecord,v=(0,import_react2.useMemo)(()=>_&&new CollectionRecord({isNew:!1,data:_ instanceof CollectionRecord?_.data:_}),[_]);return(0,import_jsx_runtime.jsx)(BlockRequestContextProvider,{recordRequest:f,children:i!=="list"?(0,import_jsx_runtime.jsx)(CollectionRecordProvider,{isNew:i==null,record:((o=f.data)==null?void 0:o.data)||d,parentRecord:v||m,children:e}):(0,import_jsx_runtime.jsx)(CollectionRecordProvider,{isNew:!1,record:null,parentRecord:v||m,children:e})})});BlockRequestProvider.displayName="DataBlockRequestProvider";const useDataBlockRequest=()=>{const e=(0,import_react2.useContext)(BlockRequestRefContext),t=(0,import_react2.useContext)(BlockRequestLoadingContext),o=(0,import_react2.useContext)(BlockRequestDataContext);return(0,import_react2.useMemo)(()=>e?A(x({},e.current),{loading:t,data:o}):null,[e,o,t])},useDataBlockRequestGetter=()=>{const e=(0,import_react2.useContext)(BlockRequestRefContext);return(0,import_react2.useMemo)(()=>({getDataBlockRequest:()=>e?e.current:null}),[e])},useDataBlockRequestData=()=>(0,import_react2.useContext)(BlockRequestDataContext),FilterContext$1=(0,import_react2.createContext)(null);FilterContext$1.displayName="FilterContext";const FilterBlockProvider=import_react2.default.memo(({children:e})=>{const t=import_react2.default.useRef([]),o=(0,import_react2.useCallback)(n=>{typeof n=="function"?t.current=n(t.current):t.current=n},[]),r=(0,import_react2.useCallback)(()=>t.current,[]),i=(0,import_react2.useMemo)(()=>({getDataBlocks:r,setDataBlocks:o}),[r,o]);return(0,import_jsx_runtime.jsx)(FilterContext$1.Provider,{value:i,children:e})});FilterBlockProvider.displayName="FilterBlockProvider";const DataBlockCollector=({children:e,params:t})=>{const o=useCollection(),{recordDataBlocks:r}=useFilterBlock(),{getDataBlockRequest:i}=useDataBlockRequestGetter(),n=(0,import_react.useField)(),l=(0,import_react.useFieldSchema)(),a=useAssociatedFields(),c=(0,import_react2.useRef)(null),u=useDataLoadingMode(),d=n&&n.decoratorType!=="FilterFormBlockProvider"&&n.decoratorType!=="FormBlockProvider"&&n.decoratorProps.blockType!=="filter",m=(0,import_react2.useCallback)(()=>{const p=i();r({uid:l["x-uid"],title:n.componentProps.title,doFilter:p.runAsync,collection:o,associatedFields:a,foreignKeyFields:o==null?void 0:o.getFields("isForeignKey"),defaultFilter:(t==null?void 0:t.filter)||{},service:p,dom:c.current,dataLoadingMode:u,clearFilter(h){var g,f,_;const v=((g=this.service.params)==null?void 0:g[0])||{},b=((_=(f=this.service.params)==null?void 0:f[1])==null?void 0:_.filters)||{};delete b[h];const C=mergeFilter([...Object.values(b).map(y=>removeNullCondition(y)),(t==null?void 0:t.filter)||{}]);this.service.run(A(x({},v),{page:1,filter:C}),{filters:b})},clearData(){this.service.mutate(void 0)},clearSelection(){var h,g;n&&((g=(h=n.data)==null?void 0:h.clearSelectedRowKeys)==null||g.call(h))},highlightBlock(){var h;const g=c.current;if(!g)return;const f=g.querySelector(".ant-nb-schema-toolbar");f&&f.classList.remove("hidden"),g.style.boxShadow="0 3px 12px rgba(0, 0, 0, 0.15)",g.style.transition="box-shadow 0.3s ease, transform 0.2s ease",(h=g.scrollIntoView)==null||h.call(g,{behavior:"smooth",block:"start"})},unhighlightBlock(){const h=c.current;if(!h)return;const g=h.querySelector(".ant-nb-schema-toolbar");g&&g.classList.add("hidden"),h.style.boxShadow="none",h.style.transition="box-shadow 0.3s ease, transform 0.2s ease"}})},[a,o,u,l,t==null?void 0:t.filter,r,i,n]);return(0,import_react2.useEffect)(()=>{d&&m()},[m,d]),(0,import_jsx_runtime.jsx)("div",{ref:c,children:e})},useFilterBlock=()=>{const e=import_react2.default.useContext(FilterContext$1),t=useAllDataBlocks(),o=(0,import_react2.useCallback)(()=>(e==null?void 0:e.getDataBlocks())||[],[e]),r=(0,import_react2.useCallback)(n=>{t.recordDataBlocks(n);const l=e==null?void 0:e.getDataBlocks().find(a=>a.uid===n.uid);if(l){Object.assign(l,n);return}e==null||e.setDataBlocks(a=>[...a,n])},[e]),i=(0,import_react2.useCallback)(n=>{t.removeDataBlock(n),!(e!=null&&e.getDataBlocks().every(l=>l.uid!==n))&&(e==null||e.setDataBlocks(l=>l.filter(a=>a.uid!==n)))},[e]);return e?{recordDataBlocks:r,getDataBlocks:o,removeDataBlock:i,inProvider:!0}:{inProvider:!1,recordDataBlocks:import_lodash.default.noop,getDataBlocks:o,removeDataBlock:import_lodash.default.noop}},MarkdownVoidDesigner=()=>{const e=(0,import_react.useField)(),{t}=(0,import_react_i18next.useTranslation)();return(0,import_jsx_runtime.jsxs)(GeneralSchemaDesigner,{children:[(0,import_jsx_runtime.jsx)(SchemaSettingsItem,{title:t("Edit markdown"),onClick:()=>{e.editable=!0}}),(0,import_jsx_runtime.jsx)(SchemaSettingsRenderEngine,{}),(0,import_jsx_runtime.jsx)(SchemaSettingsBlockHeightItem,{}),(0,import_jsx_runtime.jsx)(SchemaSettingsDivider,{}),(0,import_jsx_runtime.jsx)(SchemaSettingsRemove,{removeParentsIfNoChildren:!0,breakRemoveOn:{"x-component":"Grid"}})]})};class QRCodeWebComponent extends HTMLElement{constructor(){super(),R(this,"root"),this.attachShadow({mode:"open"}),this.root=null}getProps(t,o={}){return[...t].filter(r=>r.name!=="style").map(r=>this.convert(o,r.name,r.value)).reduce((r,i)=>A(x({},r),{[i.name]:i.value}),{})}convert(t,o,r){const i=Object.keys(t).find(l=>l.toLowerCase()==o);let n=r;return r==="true"||r==="false"?n=r=="true":!isNaN(r)&&r!==""?n=+r:/^{.*}/.exec(r)&&(n=JSON.parse(r)),{name:i||o,value:n}}connectedCallback(){const t=x({},this.getProps(this.attributes));this.root=(0,import_client3.createRoot)(this.shadowRoot),this.root.render((0,import_jsx_runtime.jsx)(import_antd.QRCode,x({},t)))}disconnectedCallback(){this.root.unmount()}}function registerQrcodeWebComponent(){customElements.get("qr-code")||customElements.define("qr-code",QRCodeWebComponent)}const useStyles$a=genStyleHook("nb-markdown",(e,{isDarkTheme:t})=>{const{componentCls:o}=e,r=new import_tinycolor.TinyColor(e.colorFillAlter).onBackground(e.colorBgContainer).toHexShortString(),i={lineHeight:"inherit","&.nb-markdown-default":{"pre code.hljs":{display:"block",overflowX:"auto",padding:"1em"},"code.hljs":{padding:"3px 5px"},":not(pre) code":{padding:"2px 5px",color:"#d56161",background:e.colorFillQuaternary,border:`1px solid ${e.colorBorder}`,borderRadius:e.borderRadiusSM},blockquote:{borderLeft:"4px solid #ccc",paddingLeft:"20px",marginLeft:"0",color:"#666",fontStyle:"italic"},img:{maxWidth:"100%"},".hljs":{background:"#f8f8f8",color:"#444"},".hljs-comment":{color:"#697070"},".hljs-punctuation,.hljs-tag":{color:"#444a"},".hljs-tag .hljs-attr,.hljs-tag .hljs-name":{color:"#444"},".hljs-attribute,.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-name,.hljs-selector-tag":{fontWeight:700},".hljs-deletion,.hljs-number,.hljs-quote,.hljs-selector-class,.hljs-selector-id,.hljs-string,.hljs-template-tag,.hljs-type":{color:"#800"},".hljs-section,.hljs-title":{color:"#800",fontWeight:700},".hljs-link,.hljs-operator,.hljs-regexp,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-symbol,.hljs-template-variable,.hljs-variable":{color:"#ab5656"},".hljs-literal":{color:"#695"},".hljs-addition,.hljs-built_in,.hljs-bullet,.hljs-code":{color:"#397300"},".hljs-meta":{color:"#1f7199"},".hljs-meta .hljs-string":{color:"#38a"},".hljs-emphasis":{fontStyle:"italic"},".hljs-strong":{fontWeight:700}},"&.nb-markdown-table":{table:{borderCollapse:"collapse",width:"100%",fontFamily:"Arial, sans-serif",marginBottom:"1.5rem"},"th, td":{borderBottom:`1px solid ${e.colorBorderSecondary}`,padding:`${e.paddingContentVertical}px ${e.paddingContentHorizontal}px`,textAlign:"left"},th:{backgroundColor:r,fontWeight:"bold",color:e.colorText},"tr:hover":{backgroundColor:e.colorFillTertiary},"tr:last-child td":{borderBottom:"none"},"tr:first-child th":{borderTop:"none"}}},n={"&.nb-markdown-default":{"pre code.hljs":{display:"block",overflowX:"auto",padding:"1em"},"code.hljs":{padding:"3px 5px"},":not(pre) code":{padding:"2px 5px",color:"#d56161",background:e.colorFillQuaternary,border:`1px solid ${e.colorBorder}`,borderRadius:e.borderRadiusSM},".hljs":{color:"#adbac7",background:"#22272e"},".hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_":{color:"#f47067"},".hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_":{color:"#dcbdfb"},".hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable":{color:"#6cb6ff"},".hljs-meta .hljs-string,.hljs-regexp,.hljs-string":{color:"#96d0ff"},".hljs-built_in,.hljs-symbol":{color:"#f69d50"},".hljs-code,.hljs-comment,.hljs-formula":{color:"#768390"},".hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag":{color:"#8ddb8c"},".hljs-subst":{color:"#adbac7"},".hljs-section":{color:"#316dca",fontWeight:700},".hljs-bullet":{color:"#eac55f"},".hljs-emphasis":{color:"#adbac7",fontStyle:"italic"},".hljs-strong":{color:"#adbac7",fontWeight:700},".hljs-addition":{color:"#b4f1b4",backgroundColor:"#1b4721"},".hljs-deletion":{color:"#ffd8d3",backgroundColor:"#78191b"}},"&.nb-markdown-table":{table:{borderCollapse:"collapse",width:"100%",fontFamily:"Arial, sans-serif",marginBottom:"1.5rem"},"th, td":{borderBottom:`1px solid ${e.colorBorderSecondary}`,padding:`${e.paddingContentVertical}px ${e.paddingContentHorizontal}px`,textAlign:"left"},th:{backgroundColor:r,fontWeight:"bold",color:e.colorText},"tr:hover":{backgroundColor:e.colorFillTertiary},"tr:last-child td":{borderBottom:"none"},"tr:first-child th":{borderTop:"none"}}};return{[o]:x({lineHeight:e.lineHeight,"& > *:last-child":{marginBottom:"0"},".ant-description-textarea, .ant-description-input":{lineHeight:e.lineHeight},".field-interface-datetime":{minWidth:"100px"}},t?n:i)}}),parseMarkdown$1=import_lodash.default.memoize(e=>L(void 0,null,function*(){return e&&(yield Promise.resolve().then(()=>require("./md-BbvRKckr-IQIU5F3r.js"))).default.render(e)}));function useParseMarkdown$1(e){const[t,o]=(0,import_react2.useState)(""),[r,i]=(0,import_react2.useState)(!0);return(0,import_react2.useEffect)(()=>{i(!0),parseMarkdown$1(e).then(n=>{o(n),i(!1)}).catch(n=>console.log(n))},[e]),{html:t,loading:r}}function convertToText$2(e){const t=e;let o=document.createElement("div");o.innerHTML=t;const r=o.innerText;return o=null,(r==null?void 0:r.replace(/[\n\r]/g,""))||""}const MarkdownEditor=e=>{const{scope:t}=e,{t:o,i18n:r}=(0,import_react_i18next.useTranslation)(),[i,n]=(0,import_react2.useState)(e.defaultValue),l=(0,import_react2.useRef)(null),[a,c]=(0,import_react2.useState)([]),[u,d]=(0,import_react2.useState)(null);(0,import_react2.useEffect)(()=>{c(t)},[t]),(0,import_react2.useEffect)(()=>{var p,h;const g=(h=(p=l==null?void 0:l.current)==null?void 0:p.resizableTextArea)==null?void 0:h.textArea;u&&g&&g.setSelectionRange(u,u)},[u]);const m=(0,import_react2.useCallback)(function(p){var h;const g=p.filter(F=>!!F.trim()),{current:f}=l,_=(h=f==null?void 0:f.resizableTextArea)==null?void 0:h.textArea;if(!_||!g)return;f.focus();const v=`{{${p.join(".")}}}`,b=_.selectionStart||0,C=i.substring(0,b)+v+i.substring(b,i.length),y=b+v.length;n(C),d(y)},[i]);return(0,import_jsx_runtime.jsxs)("div",{className:"mb-markdown",style:{position:"relative",paddingTop:"20px"},children:[(0,import_jsx_runtime.jsx)(import_antd.Input.TextArea,A(x({ref:l,autoSize:{minRows:3}},e),{value:i,onChange:p=>{n(p.target.value)},style:{paddingBottom:"40px"}})),(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsxs)("span",{style:{marginLeft:".25em"},className:"ant-formily-item-extra",children:[o("Syntax references"),":"]}),(0,import_jsx_runtime.jsx)("a",{href:`https://${r.language==="zh-CN"?"docs-cn":"docs"}.nocobase.com/handbook/template-handlebars`,target:"_blank",rel:"noreferrer",children:"Handlebars.js"})]}),(0,import_jsx_runtime.jsx)("div",{style:{position:"absolute",top:21,right:1},children:(0,import_jsx_runtime.jsx)(VariableSelect,{options:a,setOptions:c,onInsert:m})}),(0,import_jsx_runtime.jsxs)(import_antd.Space,{style:{position:"absolute",bottom:30,right:5},children:[(0,import_jsx_runtime.jsx)(import_antd.Button,{onClick:p=>{var h;(h=e.onCancel)==null||h.call(e,p)},children:o("Cancel")}),(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"primary",onClick:()=>{var p;(p=e.onSubmit)==null||p.call(e,i)},children:o("Save")})]})]})},useMarkdownHeight=()=>{const{token:e}=import_antd.theme.useToken(),t=useBlockHeight$2();if(t)return t-2*e.paddingLG};function extractNFormPaths(e){const t=/\{\{\$nForm\.([\w.]+)\}\}/g;return[...e.matchAll(t)].map(o=>o[1])}function getValuesByPaths(e,t){const o={};for(const r of t){const i=r.split(".");let n=e;for(const l of i)if(n&&typeof n=="object"&&l in n)n=n[l];else{n=void 0;break}o[r]=n}return o}const MarkdownVoidInner=withDynamicSchemaProps((0,import_react.observer)(e=>{const{isDarkTheme:t}=useGlobalTheme(),{componentCls:o,hashId:r}=useStyles$a({isDarkTheme:t}),{content:i,className:n}=e,l=(0,import_react.useField)(),a=(0,import_react.useFieldSchema)(),{dn:c}=useDesignable(),{onSave:u,onCancel:d,form:m}=e,p=useCollectionRecord(),[h,g]=(0,import_react2.useState)(""),f=useVariables$1(),_=useLocalVariables$1(),{engine:v}=(a==null?void 0:a["x-decorator-props"])||{},[b,C]=(0,import_react2.useState)(!1),{t:y,i18n:F}=(0,import_react_i18next.useTranslation)(),S=(0,import_react.useForm)(),P=extractNFormPaths(i),[j,I]=(0,import_react2.useState)(null);(0,import_react2.useEffect)(()=>{if(P.length>0){const D=(0,import_shared.uid)();return setTimeout(()=>{S.addEffects(D,()=>(0,import_reactive.reaction)(()=>{const k=getValuesByPaths(S.values,P);return JSON.stringify(k)},()=>{I((0,import_shared.uid)())},{fireImmediately:!0,equals:import_lodash.isEqual}))}),()=>{S.removeEffects(D)}}},[]),(0,import_react2.useEffect)(()=>{C(!0),L(void 0,null,function*(){setTimeout(()=>L(void 0,null,function*(){const D=yield getRenderContent(v,i,f,_,parseMarkdown$1,y);g(D)})),C(!1)})},[i,f,_,v,j]);const M=useMarkdownHeight(),E=useVariableOptions({collectionField:{uiSchema:a},form:m,record:p,uiSchema:a,noDisabled:!0});return(0,import_react2.useEffect)(()=>{registerQrcodeWebComponent()},[]),b?(0,import_jsx_runtime.jsx)(import_antd.Spin,{}):l!=null&&l.editable?(0,import_jsx_runtime.jsx)(MarkdownEditor,A(x({scope:E},e),{className:!0,defaultValue:i,onCancel:()=>{l.editable=!1,d==null||d()},onSubmit:D=>L(void 0,null,function*(){l.editable=!1,a["x-component-props"]!=null||(a["x-component-props"]={}),a["x-component-props"].content=D,l.componentProps.content=D,u==null||u(a),c.emit("patch",{schema:{"x-uid":a["x-uid"],"x-component-props":{content:D}}})})})):(0,import_jsx_runtime.jsx)("div",{className:(0,import_classnames.default)([o,r,"nb-markdown nb-markdown-default nb-markdown-table",n]),style:A(x({},e.style),{height:M||"100%",overflowY:M?"auto":"null"}),dangerouslySetInnerHTML:{__html:h}})}),{displayName:"MarkdownVoid"}),MarkdownVoid=e=>{const t=useFlag(),o=(0,import_react.useFieldSchema)();return(0,import_jsx_runtime.jsx)(VariableScope,{scopeId:o==null?void 0:o["x-uid"],type:"markdownBlock",children:(0,import_jsx_runtime.jsx)(FlagProvider,A(x({},t),{collectionField:!0,children:(0,import_jsx_runtime.jsx)(MarkdownVoidInner,x({},e))}))})};MarkdownVoid.Designer=MarkdownVoidDesigner;const Markdown$1=(0,import_react.connect)(import_antd.Input.TextArea,(0,import_react.mapProps)((e,t)=>A(x({autoSize:{maxRows:10,minRows:3}},e),{suffix:(0,import_jsx_runtime.jsx)("span",{children:t!=null&&t.loading||t!=null&&t.validating?(0,import_jsx_runtime.jsx)(import_icons.LoadingOutlined,{}):e.suffix})})),(0,import_react.mapReadPretty)(e=>(0,import_jsx_runtime.jsx)(MarkdownReadPretty,x({},e)))),MarkdownReadPretty=e=>{const{isDarkTheme:t}=useGlobalTheme(),{wrapSSR:o,hashId:r,componentCls:i}=useStyles$a({isDarkTheme:t}),{html:n="",loading:l}=useParseMarkdown$1(e.value),a=(0,import_react2.useMemo)(()=>convertToText$2(n),[n]);if(l)return o((0,import_jsx_runtime.jsx)(import_antd.Spin,{}));const c=(0,import_jsx_runtime.jsx)("div",{className:`${r} ${i} nb-markdown nb-markdown-default nb-markdown-table`,dangerouslySetInnerHTML:{__html:n}});return o((0,import_jsx_runtime.jsx)(ReadPretty$c.TextArea,A(x({},e),{autop:!1,text:a,value:c})))};Markdown$1.Void=MarkdownVoid;const BlockItemCardContext=(0,import_react2.createContext)({}),BlockItemCard$1=import_react2.default.forwardRef((e,t)=>{var o=e,{children:r}=o,i=te(o,["children"]);const{token:n}=useToken(),l=i,{title:a,description:c}=l,u=te(l,["title","description"]),d=(0,import_react2.useMemo)(()=>({marginBottom:n.marginBlock,height:"100%"}),[n.marginBlock]),[m,p]=(0,import_react2.useState)(0),h=(0,import_react2.useRef)(null),{t:g}=(0,import_react_i18next.useTranslation)(),f=(0,import_react.useFieldSchema)(),_=f==null?void 0:f["x-block-linkage-rules"];(0,import_react2.useEffect)(()=>{const C=setTimeout(()=>{if(h.current){const y=c?h.current.parentElement.parentElement.parentElement.offsetHeight:n.fontSizeLG*n.lineHeightLG+n.padding*2-1;p(y)}else m&&p(0)},500);return()=>clearTimeout(C)},[a,c]);const v=(a||c)&&(0,import_jsx_runtime.jsxs)("div",{ref:h,style:{padding:"8px 0px 8px"},children:[(0,import_jsx_runtime.jsxs)("span",{children:[" ",g(a,{ns:NAMESPACE_UI_SCHEMA})]}),c&&(0,import_jsx_runtime.jsx)(MarkdownReadPretty,{value:g(c,{ns:NAMESPACE_UI_SCHEMA}),style:{overflowWrap:"break-word",whiteSpace:"normal",fontWeight:400,color:n.colorTextDescription,borderRadius:"4px"}})]}),b=(0,import_jsx_runtime.jsx)(BlockItemCardContext.Provider,{value:{titleHeight:m},children:(0,import_jsx_runtime.jsx)(import_antd.Card,A(x({ref:t,variant:"borderless",style:d},u),{title:v,children:r}))});return _?(0,import_jsx_runtime.jsx)(BlockLinkageRuleProvider,{children:b}):b});BlockItemCard$1.displayName="BlockItemCard";const useBlockHeightProps=()=>{var e,t,o;const r=(0,import_react.useFieldSchema)(),i=getCardItemSchema(r),n=(e=useBlockTemplateContext())==null?void 0:e.fieldSchema,l=(0,import_react2.useMemo)(()=>getPageSchema(n||r),[]),{disablePageHeader:a,enablePageTabs:c,hidePageTitle:u}=(l==null?void 0:l["x-component-props"])||{},{titleHeight:d}=(0,import_react2.useContext)(BlockItemCardContext)||{},{allAccessRoutes:m}=useAllAccessDesktopRoutes(),p=useCurrentPageUid(),h=(0,import_react2.useMemo)(()=>findRouteBySchemaUid(p,m),[p,m]);return{heightProps:A(x({},i==null?void 0:i["x-component-props"]),{title:((t=i==null?void 0:i["x-component-props"])==null?void 0:t.title)||((o=i==null?void 0:i["x-component-props"])==null?void 0:o.description),disablePageHeader:a,enablePageTabs:(h==null?void 0:h.enableTabs)||c,hidePageTitle:u,titleHeight:d})}},getPageSchema=e=>e?e["x-component"]==="Page"?e:getPageSchema(e.parent):null,getCardItemSchema=e=>e?["BlockItem","CardItem"].includes(e["x-component"])?e:getCardItemSchema(e.parent):null,useDataBlockParentRecord=({association:e})=>{var t;const o=useCollectionRecordData(),r=useCollectionParentRecordData(),i=useCollectionManager(),n=useCollection();if(!e)return;const l=i.getCollection(e.split(".")[0]);return n.name===l.name||(t=n.getParentCollectionsName)!=null&&t.call(n).includes(l.name)?o:r},usePickActionProps$1=()=>{const e=(0,import_react.useForm)();return{onClick(){console.log("usePickActionProps",e.values)}}};function renderTemplate(e,t){const o=/\{\{\s*((\w+\.?)+)\s*\}\}/g;return e.replace(o,function(r,i){return(0,import_get.default)(t,i)||""})}function getFilteredFormValues(e){const t=import_lodash.default.cloneDeep(e.values),o=[];return e.query("*").forEach(r=>{r&&o.push(r)}),import_lodash.default.uniq(o.filter(r=>{var i,n;const l=((i=r.path)==null?void 0:i.segments)||[],a=l.length<=1?l.join("."):l.slice(0,-1).join(".");return((n=r==null?void 0:r.componentProps)==null?void 0:n.readOnlySubmit)&&!(0,import_get.default)(t,a)[r==null?void 0:r.componentProps.filterTargetKey]}).map(r=>{var i;const n=((i=r.path)==null?void 0:i.segments)||[];return n.length<=1?n.join("."):n.slice(0,-1).join(".")})).forEach((r,i)=>{(i!==0||r.includes("."))&&!t[r]&&import_lodash.default.unset(t,r)}),t}function getFormValues({filterByTk:e,field:t,form:o,fieldNames:r,getField:i,resource:n,actionFields:l}){if(e&&l){const a=Object.keys(o.values).filter(c=>{const u=i(c);return!l.includes(c)&&["hasOne","hasMany","belongsTo","belongsToMany"].includes(u==null?void 0:u.type)});return(0,import_omit.default)(x({},o.values),a)}return getFilteredFormValues(o)}function useCollectValuesToSubmit(e){const t=(0,import_react.useForm)(),o=e??t,r=useFilterByTk(),{field:i,resource:n}=useBlockRequestContext(),{fields:l,getField:a,getTreeParentField:c,name:u}=useCollection_deprecated(),d=l.map(v=>v.name),{fieldSchema:m}=useActionContext(),{getActiveFieldsName:p}=useFormActiveFields()||{},h=useVariables$1(),g=useLocalVariables$1({currentForm:o}),f=(0,import_react.useFieldSchema)(),_=useTreeParentRecord();return(0,import_react2.useCallback)(()=>L(this,null,function*(){var v,b,C,y;const{assignedValues:F={},overwriteValues:S}=(v=f==null?void 0:f["x-action-settings"])!=null?v:{},P=getFormValues({filterByTk:r,field:i,form:o,fieldNames:d,getField:a,resource:n,actionFields:(p==null?void 0:p("form"))||[]}),j={},I=Object.keys(F).map(M=>L(this,null,function*(){const E=F[M],D=a(M);if(isVariable$1(E)){const{value:k}=(yield h==null?void 0:h.parseVariable(E,g))||{};j[M]=transformVariableValue(k,{targetCollectionField:D})}else E!==""&&(j[M]=E)}));if(yield Promise.all(I),(b=m==null?void 0:m["x-component-props"])==null?void 0:b.addChild){const M=c();P[(C=M==null?void 0:M.name)!=null?C:"parent"]=_,P[(y=M==null?void 0:M.foreignKey)!=null?y:"parentId"]=_==null?void 0:_.id}return x(x(x({},P),S),j)}),[f,i,d,m,r,o,p,a,c,g,u,n,_,h])}const useCreateActionProps=()=>{var e;const t=useFilterByTk(),o=useCollectionRecord(),r=(0,import_react.useForm)(),{field:i,resource:n}=useBlockRequestContext(),{setVisible:l,setSubmitted:a,setFormValueChanged:c}=useActionContext(),u=useNavigateNoUpdate(),d=(0,import_react.useFieldSchema)(),m=(0,import_react.useField)(),p=useCompile(),{modal:h}=import_antd.App.useApp(),{t:g}=(0,import_react_i18next.useTranslation)(),{updateAssociationValues:f}=useFormBlockContext(),_=useCollectValuesToSubmit(),v=o.isNew?m.componentProps.saveMode||"create":"update",b=((e=m.componentProps.filterKeys)==null?void 0:e.checked)||[],C=useLocalVariables$1(),y=useVariables$1();return{onClick(){return L(this,null,function*(){var F,S;const{onSuccess:P,skipValidator:j,triggerWorkflows:I}=(F=d==null?void 0:d["x-action-settings"])!=null?F:{},{manualClose:M,redirecting:E,redirectTo:D,successMessage:k,actionAfterSuccess:w}=P||{};j||(yield r.submit());const B=yield _();m.data=i.data||{},m.data.loading=!0;try{const N=yield n[v]({values:B,filterKeys:b,filterByTk:t,triggerWorkflows:I!=null&&I.length?I.map($=>[$.workflowKey,$.context].filter(Boolean).join("!")).join(","):void 0,updateAssociationValues:f});let T=D;if(D&&(T=yield getVariableValue(D,{variables:y,localVariables:[...C,{name:"$record",ctx:new Proxy((S=N==null?void 0:N.data)==null?void 0:S.data,{})}]})),(w==="previous"||!w&&E!==!0)&&(l==null||l(!1)),a==null||a(!0),c==null||c(!1),m.data.loading=!1,m.data.data=N,!k){import_antd.message.success(g("Saved successfully")),yield resetFormCorrectly(r),(E&&!w||w==="redirect")&&T&&((0,import_client.isURL)(T)?window.location.href=T:u(T));return}M?h.success({title:p(k),onOk:()=>L(this,null,function*(){yield resetFormCorrectly(r),(E&&!w||w==="redirect")&&T&&((0,import_client.isURL)(T)?window.location.href=T:u(T))})}):(import_antd.message.success(p(k)),yield resetFormCorrectly(r),(E&&!w||w==="redirect")&&T&&((0,import_client.isURL)(T)?window.location.href=T:u(T)))}catch{m.data.loading=!1}})}}},useAssociationCreateActionProps=()=>{var e;const t=(0,import_react.useForm)(),{field:o,resource:r,__parent:i}=useBlockRequestContext(),{setVisible:n,fieldSchema:l,setSubmitted:a}=useActionContext(),c=(0,import_react.useFieldSchema)(),u=(0,import_react.useField)(),{fields:d,getField:m,getTreeParentField:p,name:h}=useCollection_deprecated(),g=useCompile(),f=useFilterByTk(),_=useRecord(),v=useVariables$1(),b=useLocalVariables$1({currentForm:t}),{getActiveFieldsName:C}=useFormActiveFields()||{},y=u.componentProps.saveMode||"create",F=((e=u.componentProps.filterKeys)==null?void 0:e.checked)||[];return{onClick(){return L(this,null,function*(){var S,P,j,I,M,E;const D=d.map(U=>U.name),{assignedValues:k={},onSuccess:w,overwriteValues:B,skipValidator:N,triggerWorkflows:T}=(S=c==null?void 0:c["x-action-settings"])!=null?S:{},$=(P=l==null?void 0:l["x-component-props"])==null?void 0:P.addChild,{successMessage:q}=w||{},O={},V=Object.keys(k).map(U=>L(this,null,function*(){const K=k[U],W=m(U);if(isVariable$1(K)){const{value:Y}=(yield v==null?void 0:v.parseVariable(K,b))||{};O[U]=transformVariableValue(Y,{targetCollectionField:W})}else K!==""&&(O[U]=K)}));yield Promise.all(V),N||(yield t.submit());const z=getFormValues({filterByTk:f,field:o,form:t,fieldNames:D,getField:m,resource:r,actionFields:(C==null?void 0:C("form"))||[]});if($){const U=p();z[(j=U==null?void 0:U.name)!=null?j:"parent"]=_,z[(I=U==null?void 0:U.foreignKey)!=null?I:"parentId"]=_.id}u.data=o.data||{},u.data.loading=!0;try{const U=yield r[y]({values:x(x(x({},z),B),O),filterKeys:F,triggerWorkflows:T!=null&&T.length?T.map(K=>[K.workflowKey,K.context].filter(Boolean).join("!")).join(","):void 0});if(u.data.loading=!1,u.data.data=U,(E=(M=i==null?void 0:i.service)==null?void 0:M.refresh)==null||E.call(M),n==null||n(!1),a==null||a(!0),!q)return;import_antd.message.success(g(q))}catch{u.data.data=null,u.data.loading=!1}})}}},findFilterTargets=e=>{for(;e;){if(e["x-filter-targets"])return{targets:e["x-filter-targets"],uid:e["x-uid"]};e=e.parent}return{}},updateFilterTargets=(e,t)=>{for(;e;){if(e["x-filter-targets"]){e["x-filter-targets"]=t;return}e=e.parent}},useDoFilter=()=>{const e=(0,import_react.useForm)(),{getDataBlocks:t}=useFilterBlock(),o=useCollectionManager(),{getOperators:r}=useOperators(),i=(0,import_react.useFieldSchema)(),{name:n}=useCollection(),{targets:l=[],uid:a}=(0,import_react2.useMemo)(()=>findFilterTargets(i),[i]),c=(0,import_react2.useCallback)(()=>removeNullCondition(transformToFilter(e.values,r(),o.getCollectionField.bind(o),n)),[e.values,o,r,n]),u=(0,import_react2.useCallback)((...d)=>L(void 0,[...d],function*({doNothingWhenFilterIsEmpty:m=!1}={}){try{yield Promise.all(t().map(p=>L(void 0,null,function*(){var h,g,f,_;if(!l.find(y=>y.uid===p.uid))return;const v=((h=p.service.params)==null?void 0:h[0])||{},b=((f=(g=p.service.params)==null?void 0:g[1])==null?void 0:f.filters)||{};b[a]=c();const C=mergeFilter([...Object.values(b).map(y=>removeNullCondition(y)),p.defaultFilter]);if(import_lodash.default.isEmpty(b[a])&&((_=p.clearSelection)==null||_.call(p)),!(m&&import_lodash.default.isEmpty(b[a])))return p.dataLoadingMode==="manual"&&import_lodash.default.isEmpty(b[a])?p.clearData():(import_lodash.default.set(p.service.params,"1.filters",b),p.doFilter(A(x({},v),{page:1,filter:C}),{filters:b}))})))}catch(p){console.error(p)}}),[t,c,l,a]);return(0,import_react2.useEffect)(()=>{setTimeout(()=>{u({doNothingWhenFilterIsEmpty:!0})},500)},[u]),{doFilter:u,getFilterFromCurrentForm:c}},useFilterBlockActionProps=()=>{const{doFilter:e}=useDoFilter(),t=(0,import_react.useField)();return t.data=t.data||{},{onClick(){return L(this,null,function*(){t.data.loading=!0,yield e(),t.data.loading=!1})}}},useDoReset=()=>{const e=(0,import_react.useForm)(),t=(0,import_react.useFieldSchema)(),{getDataBlocks:o}=useFilterBlock(),{targets:r,uid:i}=findFilterTargets(t),{doFilter:n,getFilterFromCurrentForm:l}=useDoFilter();return{doReset:()=>L(void 0,null,function*(){var a;if(yield e.reset(void 0,{forceClear:!!((a=t==null?void 0:t["x-component-props"])!=null&&a.clearDefaultValue)}),import_lodash.default.isEmpty(l()))return doReset({getDataBlocks:o,targets:r,uid:i});yield n()})}},useResetBlockActionProps=()=>{const e=(0,import_react.useField)(),{doReset:t}=useDoReset();return e.data=e.data||{},{onClick(){return L(this,null,function*(){e.data.loading=!0,yield t(),e.data.loading=!1})}}},useCustomizeUpdateActionProps=()=>{const{resource:e,__parent:t,field:o,service:r}=useBlockRequestContext(),i=useFilterByTk(),n=(0,import_react.useFieldSchema)(),l=(0,import_react.useField)(),a=useNavigateNoUpdate(),c=useCompile(),u=(0,import_react.useForm)(),{modal:d}=import_antd.App.useApp(),m=useVariables$1(),p=useLocalVariables$1({currentForm:u}),{name:h,getField:g}=useCollection_deprecated(),{setVisible:f}=useActionContext();return{onClick(_,v){return L(this,null,function*(){var b,C,y,F;const{assignedValues:S={},onSuccess:P,skipValidator:j,triggerWorkflows:I}=(b=n==null?void 0:n["x-action-settings"])!=null?b:{},{manualClose:M,redirecting:E,redirectTo:D,successMessage:k,actionAfterSuccess:w}=P||{},B={},N=Object.keys(S).map(T=>L(this,null,function*(){const $=S[T],q=g(T);if(isVariable$1($)){const{value:O}=(yield m==null?void 0:m.parseVariable($,p))||{};B[T]=transformVariableValue(O,{targetCollectionField:q})}else $!==""&&(B[T]=$)}));if(yield Promise.all(N),j===!1&&(yield u.submit()),l.data=l.data||{},!l.data.loading){l.data.loading=!0;try{const T=yield e.update({filterByTk:i,values:x({},B),triggerWorkflows:I!=null&&I.length?I.map(q=>[q.workflowKey,q.context].filter(Boolean).join("!")).join(","):void 0});let $=D;if(D&&($=yield getVariableValue(D,{variables:m,localVariables:[...p,{name:"$record",ctx:new Proxy((C=T==null?void 0:T.data)==null?void 0:C.data,{})}]})),(w==="previous"||!w&&E!==!0)&&(f==null||f(!1)),v&&(v==null||v()),e instanceof TableFieldResource||(F=(y=t==null?void 0:t.service)==null?void 0:y.refresh)==null||F.call(y),!k)return;M?d.success({title:c(k),onOk:()=>L(this,null,function*(){(E&&!w||w==="redirect")&&$&&((0,import_client.isURL)($)?window.location.href=$:a($))})}):(import_antd.message.success(c(k)),(E&&!w||w==="redirect")&&$&&((0,import_client.isURL)($)?window.location.href=$:a($)))}catch(T){console.error(T)}finally{l.data.loading=!1}}})}}},useCustomizeBulkUpdateActionProps=()=>{var e,t,o,r;const{field:i,resource:n,__parent:l,service:a}=useBlockRequestContext(),c=(0,import_react2.useContext)(import_react.SchemaExpressionScopeContext),u=(0,import_react.useFieldSchema)(),d=useTableBlockContext(),{rowKey:m}=d,p=(r=(o=(t=(e=d.field)==null?void 0:e.data)==null?void 0:t.selectedRowKeys)!=null?o:c==null?void 0:c.selectedRecordKeys)!=null?r:{},h=useNavigateNoUpdate(),g=useCompile(),{t:f}=(0,import_react_i18next.useTranslation)(),_=(0,import_react.useField)(),{modal:v}=import_antd.App.useApp(),b=useVariables$1();useRecord();const{name:C,getField:y}=useCollection_deprecated(),F=useLocalVariables$1(),{setVisible:S}=useActionContext();return{onClick(){return L(this,null,function*(){var P;const{assignedValues:j={},onSuccess:I,updateMode:M}=(P=u==null?void 0:u["x-action-settings"])!=null?P:{},{manualClose:E,redirecting:D,redirectTo:k,successMessage:w,actionAfterSuccess:B}=I||{};_.data=i.data||{},_.data.loading=!0;const N={},T=Object.keys(j).map($=>L(this,null,function*(){const q=j[$],O=y($);if(isVariable$1(q)){const{value:V}=(yield b==null?void 0:b.parseVariable(q,F))||{};N[$]=transformVariableValue(V,{targetCollectionField:O})}else q!==""&&(N[$]=q)}));yield Promise.all(T),(B==="previous"||!B&&D!==!0)&&(S==null||S(!1)),v.confirm({title:f("Bulk update"),content:f(M==="selected"?"Update selected data?":"Update all data?"),onOk(){return L(this,null,function*(){var $,q,O,V;const{filter:z}=(q=($=a.params)==null?void 0:$[0])!=null?q:{},U={values:x({},N),filter:z,forceUpdate:!1};if(M==="selected"){if(!(p!=null&&p.length)){import_antd.message.error(f("Please select the records to be updated")),_.data.loading=!1;return}U.filter={$and:[{[m||"id"]:{$in:p}}]}}U.filter||(U.forceUpdate=!0);try{yield n.update(U)}catch{}finally{_.data.loading=!1}n instanceof TableFieldResource||(V=(O=l==null?void 0:l.service)==null?void 0:O.refresh)==null||V.call(O),w&&(E?v.success({title:g(w),onOk:()=>L(this,null,function*(){(D&&!B||B==="redirect")&&k&&((0,import_client.isURL)(k)?window.location.href=k:h(k))})}):(import_antd.message.success(g(w)),(D&&!B||B==="redirect")&&k&&((0,import_client.isURL)(k)?window.location.href=k:h(k))))})},onCancel(){return L(this,null,function*(){_.data.loading=!1})}})})}}},useCustomizeRequestActionProps=()=>{var e;const t=useAPIClient(),o=useNavigateNoUpdate(),r=useFilterByTk(),i=(0,import_react.useFieldSchema)(),n=useCompile(),l=(0,import_react.useForm)(),{fields:a,getField:c}=useCollection_deprecated(),{field:u,resource:d,__parent:m,service:p}=useBlockRequestContext(),h=useRecord(),g=useCurrentUserContext(),f=(e=g==null?void 0:g.data)==null?void 0:e.data,_=(0,import_react.useField)(),{t:v}=(0,import_react_i18next.useTranslation)(),{setVisible:b}=useActionContext(),{modal:C}=import_antd.App.useApp(),{getActiveFieldsName:y}=useFormActiveFields()||{};return{onClick(){return L(this,null,function*(){var F,S,P,j;const{skipValidator:I,onSuccess:M,requestSettings:E}=(F=i==null?void 0:i["x-action-settings"])!=null?F:{},{manualClose:D,redirecting:k,redirectTo:w,successMessage:B,actionAfterSuccess:N}=M||{},T=i==null?void 0:i["x-action"];if(!E.url)return;I!==!0&&T==="customize:form:request"&&(yield l.submit());const $=E.headers?JSON.parse(E.headers):{},q=E.params?JSON.parse(E.params):{},O=E.data?JSON.parse(E.data):{};if(T==="customize:form:request"&&["POST","PUT","PATCH"].includes(E.method)){const z=a.map(K=>K.name),U=getFormValues({filterByTk:r,field:u,form:l,fieldNames:z,getField:c,resource:d,actionFields:(y==null?void 0:y("form"))||[]});Object.assign(O,U)}const V={url:renderTemplate(E.url,{currentRecord:h,currentUser:f}),method:E.method,headers:(0,import_client.parse)($)({currentRecord:h,currentUser:f}),params:(0,import_client.parse)(q)({currentRecord:h,currentUser:f}),data:(0,import_client.parse)(O)({currentRecord:h,currentUser:f})};_.data=u.data||{},_.data.loading=!0;try{yield t.request(x({},V)),_.data.loading=!1,d instanceof TableFieldResource||(P=(S=m==null?void 0:m.service)==null?void 0:S.refresh)==null||P.call(S),(j=p==null?void 0:p.refresh)==null||j.call(p),T==="customize:form:request"&&(N==="previous"||!N&&k!==!0)&&(b==null||b(!1)),B||(import_antd.message.success(v("Saved successfully")),yield resetFormCorrectly(l),(k&&!N||N==="redirect")&&w&&((0,import_client.isURL)(w)?window.location.href=w:o(w))),D?C.success({title:n(B),onOk:()=>L(this,null,function*(){(k&&!N||N==="redirect")&&w&&((0,import_client.isURL)(w)?window.location.href=w:o(w))})}):import_antd.message.success(n(B))}finally{_.data.loading=!1}})}}},useUpdateActionProps=()=>{const e=(0,import_react.useForm)(),t=useFilterByTk(),{field:o,resource:r,__parent:i}=useBlockRequestContext(),{setVisible:n,setFormValueChanged:l}=useActionContext(),a=(0,import_react.useFieldSchema)(),c=useNavigateNoUpdate(),{fields:u,getField:d,name:m}=useCollection_deprecated(),p=useCompile(),h=(0,import_react.useField)(),{updateAssociationValues:g}=useFormBlockContext(),{modal:f}=import_antd.App.useApp(),_=useParamsFromRecord(),v=useVariables$1(),b=useLocalVariables$1({currentForm:e}),{getActiveFieldsName:C}=useFormActiveFields()||{};return{onClick(y,F){return L(this,null,function*(){var S,P;const{assignedValues:j={},onSuccess:I,overwriteValues:M,skipValidator:E,triggerWorkflows:D}=(S=a==null?void 0:a["x-action-settings"])!=null?S:{},{manualClose:k,redirecting:w,redirectTo:B,successMessage:N,actionAfterSuccess:T}=I||{},$={},q=Object.keys(j).map(z=>L(this,null,function*(){const U=j[z],K=d(z);if(isVariable$1(U)){const{value:W}=(yield v==null?void 0:v.parseVariable(U,b))||{};$[z]=transformVariableValue(W,{targetCollectionField:K})}else U!==""&&($[z]=U)}));yield Promise.all(q),E||(yield e.submit());const O=u.map(z=>z.name),V=getFormValues({filterByTk:t,field:o,form:e,fieldNames:O,getField:d,resource:r,actionFields:(C==null?void 0:C("form"))||[]});h.data=o.data||{},h.data.loading=!0;try{const z=yield r.update(A(x({filterByTk:t,values:x(x(x({},V),M),$)},_),{updateAssociationValues:g,triggerWorkflows:D!=null&&D.length?D.map(K=>[K.workflowKey,K.context].filter(Boolean).join("!")).join(","):void 0}));h.data.loading=!1,F&&(F==null||F());let U=B;if(B&&(U=yield getVariableValue(B,{variables:v,localVariables:[...b,{name:"$record",ctx:new Proxy((P=z==null?void 0:z.data)==null?void 0:P.data,{})}]})),(T==="previous"||!T&&w!==!0)&&(n==null||n(!1)),l==null||l(!1),!N)return;k?f.success({title:p(N),onOk:()=>L(this,null,function*(){yield e.reset(),(w&&!T||T==="redirect")&&U&&((0,import_client.isURL)(U)?window.location.href=U:c(U))})}):(import_antd.message.success(p(N)),(w&&!T||T==="redirect"||T==="redirect")&&U&&((0,import_client.isURL)(U)?window.location.href=U:c(U)))}catch{h.data.loading=!1}})}}},useDestroyActionProps=()=>{const e=useFilterByTk(),{resource:t,service:o,block:r,field:i,__parent:n}=useBlockRequestContext(),{setVisible:l,setSubmitted:a}=useActionContext(),c=useParamsFromRecord(),u=(0,import_react.useFieldSchema)(),d=(0,import_react.useField)();return{onClick(m,p){return L(this,null,function*(){var h,g,f,_,v,b,C;const{triggerWorkflows:y}=(h=u==null?void 0:u["x-action-settings"])!=null?h:{};d.data=i.data||{},d.data.loading=!0;try{yield t.destroy(x({filterByTk:e,triggerWorkflows:y!=null&&y.length?y.map(j=>[j.workflowKey,j.context].filter(Boolean).join("!")).join(","):void 0},c));const{count:F=0,page:S=0,pageSize:P=0}=((g=o==null?void 0:o.data)==null?void 0:g.meta)||{};if(F%P===1&&S!==1){const j=(f=o.params[0])==null?void 0:f.page,I=(v=(_=o.data)==null?void 0:_.meta)==null?void 0:v.totalPage;j===I&&o.params[0]&&j!==1&&(o.params[0].page=j-1)}p&&(p==null||p()),a==null||a(!0),r&&r!=="TableField"&&((C=(b=n==null?void 0:n.service)==null?void 0:b.refresh)==null||C.call(b),l==null||l(!1),a==null||a(!0))}catch(F){console.error(F),d.data.loading=!0}})}}},useRemoveActionProps=e=>{const t=useFilterByTk(),o=useAPIClient().resource(e,t);return{onClick(r){return L(this,null,function*(){yield o.remove({values:[r.id]})})}}},useDisassociateActionProps=()=>{const e=useFilterByTk(),{resource:t,service:o,block:r,__parent:i}=useBlockRequestContext(),{setVisible:n,setSubmitted:l,setFormValueChanged:a}=useActionContext();return{onClick(c,u){return L(this,null,function*(){var d,m,p,h;yield t.remove({values:[e]});const{count:g=0,page:f=0,pageSize:_=0}=((d=o==null?void 0:o.data)==null?void 0:d.meta)||{};g%_===1&&f!==1?o.run(A(x({},(m=o==null?void 0:o.params)==null?void 0:m[0]),{page:f-1})):u&&(u==null||u()),l==null||l(!0),r&&r!=="TableField"&&((h=(p=i==null?void 0:i.service)==null?void 0:p.refresh)==null||h.call(p),n==null||n(!1),a==null||a(!1))})}}},useBulkDestroyActionProps=()=>{const{field:e}=useBlockRequestContext(),{resource:t,service:o}=useBlockRequestContext(),{setSubmitted:r}=useActionContext(),i=useCollection_deprecated(),{filterTargetKey:n}=i;return{onClick(l,a){return L(this,null,function*(){var c,u,d,m,p,h,g;let f=(c=e.data)==null?void 0:c.selectedRowKeys;if(Array.isArray(n)&&(f=e.data.selectedRowData.map(b=>{const C={};return n.map(y=>{C[y]=b[y]}),C})),!((d=(u=e==null?void 0:e.data)==null?void 0:u.selectedRowKeys)!=null&&d.length))return;yield t.destroy({filterByTk:f}),e.data.selectedRowKeys=[];const _=(m=o.params[0])==null?void 0:m.page,v=(h=(p=o.data)==null?void 0:p.meta)==null?void 0:h.totalPage;_===v&&o.params[0]&&_!==1&&(o.params[0].page=_-1),a&&(a==null||a()),r==null||r(!0),(g=o==null?void 0:o.refresh)==null||g.call(o)})}}},useRefreshActionProps=()=>{const{service:e}=useBlockRequestContext();return{onClick(){return L(this,null,function*(){var t;(t=e==null?void 0:e.refresh)==null||t.call(e)})}}},useTableColumns$2=()=>{const e=(0,import_react.useFieldSchema)(),t=useCompile(),{t:o}=(0,import_react_i18next.useTranslation)(),r=useCollection();return(0,import_react2.useMemo)(()=>{const i=[],n=c=>{let u=c;for(;u&&!((u==null?void 0:u["x-component"])==="ActionBar"||!u.parent);)u=u.parent;const d=u.parent;if(d){const m=d==null?void 0:d.reduceProperties((p,h)=>(h==null?void 0:h["x-component"])==="TableV2"?p.concat([h]):p,[]);return m==null?void 0:m[0]}return null},l=(c,u=0)=>{var d,m,p,h,g,f,_,v,b;if(!(!c||u>1)){if((m=(d=c==null?void 0:c["x-component"])==null?void 0:d.includes)!=null&&m.call(d,"Table.Column")||(h=(p=c==null?void 0:c["x-decorator"])==null?void 0:p.includes)!=null&&h.call(p,"Table.Column")||(c==null?void 0:c["x-component"])==="TableV2.Column"){const C=c.reduceProperties?c.reduceProperties((j,I)=>(I==null?void 0:I["x-component"])==="CollectionField"?j.concat([I]):j,[]):[],y=(C==null?void 0:C.length)>0?C[0].name:c.name,F=(g=r==null?void 0:r.getField)==null?void 0:g.call(r,y);let S=o(c==null?void 0:c.title,{ns:NAMESPACE_UI_SCHEMA})||c.title;!S&&c.name==="actions"&&(S=o("Actions")),!S&&F&&(S=o((f=F.uiSchema)==null?void 0:f.title,{ns:NAMESPACE_UI_SCHEMA})||((_=F.uiSchema)==null?void 0:_.title)||F.name),S||(S=c.name||`Column ${i.length+1}`),S=t(S)||S;const P={key:c["x-uid"]||c.name||`column-${i.length}`,title:S,dataIndex:y||`column-${i.length}`,visible:c["x-display"]!=="hidden",fixed:((v=c["x-component-props"])==null?void 0:v.fixed)||!1,width:(b=c["x-component-props"])==null?void 0:b.width,order:c["x-index"]||i.length};i.push(P)}c.properties&&Object.keys(c.properties).forEach(C=>{l(c.properties[C],u+1)}),c.items&&l(c.items,u+1)}},a=n(e);return l(a),i.sort((c,u)=>(c.order||0)-(u.order||0))},[e,t,o,r])},useEditTableActionProps=()=>{const e=(0,import_react.useField)(),t=(0,import_react.useFieldSchema)(),o=useTableColumns$2(),r=(0,import_react2.useCallback)(()=>{let h=t;for(;h;){const g=_=>{if(!(_!=null&&_.properties))return null;for(const v in _.properties){const b=_.properties[v];if(b["x-component"]==="TableV2")return b;const C=g(b);if(C)return C}return null},f=g(h);if(f)return f;if(!h.parent)break;h=h.parent}return h},[t]),i=(0,import_react2.useMemo)(()=>r(),[r]);(0,import_react2.useMemo)(()=>(i==null?void 0:i["x-uid"])||"default",[i]);const{getSettings:n,saveSettings:l,clearSettings:a}=useColumnSettings(),[c,u]=(0,import_react2.useState)(n()),d=(0,import_react2.useMemo)(()=>{if(o.length===0)return[];if(!c||c.length===0)return o;const h=new Map;return c.forEach(g=>{h.set(g.key,g)}),o.map(g=>{const f=h.get(g.key);return f?A(x({},g),{visible:f.visible,order:f.order,width:f.width||g.width,fixed:f.fixed||g.fixed}):g}).sort((g,f)=>(g.order||0)-(f.order||0))},[o,c]);(0,import_react2.useEffect)(()=>{d.length>0&&(e.dataSource=d)},[d,e]);const m=(0,import_react2.useCallback)(h=>{if(!(h!=null&&h.columns)||!Array.isArray(h.columns))return;const g=h.columns.map((f,_)=>({key:f.key,title:f.title,dataIndex:f.dataIndex,visible:f.visible,fixed:f.fixed,width:f.width,order:_}));l(g)},[l]),p=(0,import_react2.useCallback)(()=>{a(),u(n())},[a]);return{columns:d,onSubmit:m,onReset:p}},useDetailsPaginationProps=()=>{var e,t,o,r,i,n,l,a,c,u,d,m,p,h,g,f,_;const v=useDetailsBlockContext(),b=((o=(t=(e=v.service)==null?void 0:e.data)==null?void 0:t.meta)==null?void 0:o.count)||0,C=(n=(i=(r=v.service)==null?void 0:r.data)==null?void 0:i.meta)==null?void 0:n.page,{hasNext:y}=((a=(l=v.service)==null?void 0:l.data)==null?void 0:a.meta)||{};return!b&&C?{simple:!0,current:((d=(u=(c=v.service)==null?void 0:c.data)==null?void 0:u.meta)==null?void 0:d.page)||1,pageSize:1,showSizeChanger:!1,align:"center",onChange(F){return L(this,null,function*(){var S,P;const j=(P=(S=v.service)==null?void 0:S.params)==null?void 0:P[0];v.service.run(A(x({},j),{page:F}))})},style:{marginTop:24,textAlign:"center"},showTotal:!1,showTitle:!1,total:((h=(p=(m=v.service)==null?void 0:m.data)==null?void 0:p.data)==null?void 0:h.length)<1||!y?1*C:1*C+1,className:import_css.css`
629
629
  .ant-pagination-simple-pager {
630
630
  display: none !important;
631
631
  }
@@ -1759,22 +1759,18 @@ ${t}
1759
1759
 
1760
1760
  ${u}`;return clampText(m,MAX_MESSAGE_CHARS)}}const i=e.issues.filter(c=>c.type==="runtime"),n=pickKeyRuntimeIssue(i),l=n?`Key runtime issue: ${formatIssueLine(n)}`:"",a=["RunJS preview output was truncated.",t,e.execution?formatExecution(e.execution):void 0,l||void 0].filter(Boolean).join(`
1761
1761
  `).trim();return a.length<=MAX_MESSAGE_CHARS?a:clampText(a,MAX_MESSAGE_CHARS-1)+`
1762
- `}function formatRunJSPreviewMessage(e){return buildPreviewMessageWithTruncation(e)}function diagnoseRunJS(e,t){return L(this,arguments,function*(o,r,i={}){const n=typeof o=="string"?o:String(o??""),l=[],a=[],c=i==null?void 0:i.version,u=(0,import_flow_engine.shouldPreprocessRunJSTemplates)({version:c});a.push(...collectLezerSyntaxIssues(n)),a.push(...collectHeuristicIssues(n));const d=typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now(),m={started:!1,finished:!1,timeout:!1,durationMs:void 0};try{m.started=!0;const{consoleCapture:p,loggerCapture:h}=createLogCollectors(l),g={console:p};try{if(typeof window<"u"){const b=(0,import_flow_engine.createSafeNavigator)();g.navigator=b,g.window=(0,import_flow_engine.createSafeWindow)({navigator:b}),g.document=(0,import_flow_engine.createSafeDocument)()}}catch{}let f=n;try{f=yield(0,import_flow_engine.prepareRunJsCode)(n,{preprocessTemplates:u})}catch(b){const C=String((b==null?void 0:b.name)||""),y=safeToString((b==null?void 0:b.message)||b),F=b instanceof SyntaxError||/^SyntaxError\b/i.test(C)||/SyntaxError\b/i.test(y);return a.push({type:"runtime",ruleId:F?"preview-start-failed":"internal",message:F?y:`Preview internal failure: ${y}`,stack:safeStack(b)}),m.finished=!0,m.timeout=!1,{issues:sortIssuesStable(a),logs:l,execution:m}}const _=yield r.createJSRunner({globals:g,timeoutMs:PREVIEW_TIMEOUT_MS,version:c});_.globals.ctx.defineProperty("logger",{value:h});const v=yield _.run(f);if(m.finished=!0,m.timeout=!!(v!=null&&v.timeout),!(v!=null&&v.success)){const b=v==null?void 0:v.error,C=v!=null&&v.timeout?"Execution timed out":safeToString((b==null?void 0:b.message)||b||"Unknown error"),y=b instanceof SyntaxError||/^SyntaxError\b/i.test(String((b==null?void 0:b.name)||""));a.push({type:"runtime",ruleId:v!=null&&v.timeout?"timeout":y?"preview-start-failed":"runtime-error",message:C,stack:safeStack(b)})}}catch(p){m.finished=!0,m.timeout=!1,a.push({type:"runtime",ruleId:"internal",message:`Preview internal failure: ${safeToString((p==null?void 0:p.message)||p)}`,stack:safeStack(p)})}finally{const p=typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now(),h=Math.max(0,p-d);m.durationMs=Number.isFinite(h)?h:void 0}return{issues:sortIssuesStable(a),logs:l,execution:m}})}function createPreviewFlowContext(e){const t=new import_flow_engine.FlowContext;if(t.addDelegate(e),typeof document<"u"&&typeof document.createElement=="function"&&!e.element)try{const o=document.createElement("div");t.defineProperty("element",{value:o})}catch{}return t}function previewRunJS(e,t){return L(this,arguments,function*(o,r,i={}){const n=createPreviewFlowContext(r),l=yield diagnoseRunJS(o,n,i),a=l.issues.length===0,c=formatRunJSPreviewMessage(l),u=c.length>MAX_MESSAGE_CHARS?clampText(c,MAX_MESSAGE_CHARS):c;return{success:a,message:u}})}const runjsDiagnostics=Object.freeze(Object.defineProperty({__proto__:null,MAX_MESSAGE_CHARS,diagnoseRunJS,formatRunJSPreviewMessage,previewRunJS},Symbol.toStringTag,{value:"Module"})),CodeEditor=({value:e="",onChange:t,placeholder:o="",height:r="100%",minHeight:i,theme:n="light",readonly:l=!1,enableLinter:a=!1,wrapperStyle:c,extraCompletions:u,version:d="v1",name:m,language:p,scene:h,RightExtra:g})=>{const f=(0,import_react2.useRef)(null),_=(0,import_react2.useRef)(null),{isFullscreen:v,toggleFullscreen:b,placeholderRef:C,placeholderStyle:y,container:F}=useFullscreenOverlay(),S=(0,import_flow_engine.useFlowContext)(),P=(0,import_react2.useMemo)(()=>{if(h&&(!Array.isArray(h)||h.length))return h;if(S)try{const z=(0,import_flow_engine.getRunJSScenesForContext)(S,{version:d});return z.length?z:void 0}catch{return}},[h,S,d]),{completions:j,entries:I}=useRunJSDocCompletions(S,d,P),{run:M,logs:E,running:D}=useCodeRunner(S,d),[k,w]=(0,import_react2.useState)(!1),B=(0,import_react2.useCallback)(()=>{const z=f.current;return z&&(z.closest(".ant-drawer-content-wrapper")||z.closest(".ant-drawer-content")||z.closest(".ant-modal-content")||z.parentElement)||document.body},[]),N=(0,import_react2.useCallback)((z,U)=>{try{return S!=null&&S.t?S.t(z,U):z}catch{return z}},[S]),T=(0,import_react2.useMemo)(()=>{const z=[];return Array.isArray(j)&&z.push(...j),Array.isArray(u)&&z.push(...u),z},[u,j]),$=(0,import_react2.useMemo)(()=>createRunJSCompletionSource({hostCtx:S,staticOptions:T}),[S,T]),q=(0,import_react2.useRef)({write(z){const U=_.current;U&&U.state.doc.toString()!==z&&U.dispatch({changes:{from:0,to:U.state.doc.length,insert:z}})},read(){const z=_.current;return z?z.state.doc.toString():""},buttonGroupHeight:0,snippetEntries:[],logs:[]});q.current.snippetEntries=I,q.current.logs=E,(0,import_react2.useEffect)(()=>{var z;(z=_.current)==null||z.requestMeasure()},[v]);const O=(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:N(v?"Exit fullscreen":"Fullscreen"),children:(0,import_jsx_runtime.jsx)(import_antd.Button,{size:"small","aria-label":N(v?"Exit fullscreen":"Fullscreen"),icon:v?(0,import_jsx_runtime.jsx)(import_icons.FullscreenExitOutlined,{}):(0,import_jsx_runtime.jsx)(import_icons.FullscreenOutlined,{}),onClick:b})}),V=(0,import_jsx_runtime.jsxs)("div",{style:x({border:v?"none":"1px solid #d9d9d9",borderRadius:v?0:"6px",overflow:"visible",position:"relative",display:"flex",flexDirection:"column",boxSizing:v?"border-box":void 0,padding:v?16:void 0,height:v?"100%":void 0,minHeight:v?0:void 0},c),ref:f,children:[(0,import_jsx_runtime.jsx)(RightExtra,{name:m,language:p,scene:P,extraEditorRef:q.current,extraContent:(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[g?(0,import_jsx_runtime.jsx)(g,{viewRef:_}):(0,import_jsx_runtime.jsxs)("div",{style:{display:"flex",gap:8,alignItems:"center"},children:[(0,import_jsx_runtime.jsx)(import_antd.Button,{size:"small",onClick:()=>w(!0),children:N("Snippets")}),(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:(0,import_jsx_runtime.jsx)(import_antd.Button,{size:"small",loading:D,onClick:()=>L(void 0,null,function*(){var z;const U=((z=_.current)==null?void 0:z.state.doc.toString())||"";clearDiagnostics(_.current);const K=yield M(U);if(!(K!=null&&K.success)){const W=K==null?void 0:K.error,Y=K!=null&&K.timeout?N("Execution timed out"):String(W||N("Unknown error")),Z=parseErrorLineColumn(W);Z&&_.current&&markErrorAt(_.current,Z.line,Z.column,Y)}}),children:N("Run")})})]}),O]})}),(0,import_jsx_runtime.jsx)(EditorCore,{value:e,onChange:t,placeholder:o,height:v?"100%":r,minHeight:i,theme:n,readonly:l,enableLinter:a,completionSource:$,viewRef:_}),(0,import_jsx_runtime.jsx)(LogsPanel,{logs:E,onJumpTo:(z,U)=>{const K=_.current;K&&jumpTo(K,z,U)},tr:N}),(0,import_jsx_runtime.jsx)(SnippetsDrawer,{open:k,onClose:()=>w(!1),getContainer:B,entries:I,tr:N,onInsert:z=>{const U=_.current;if(!U)return;const{from:K,to:W}=U.state.selection.main,Y=K+z.length;U.dispatch({changes:{from:K,to:W,insert:z},selection:{anchor:Y},scrollIntoView:!0}),U.focus(),w(!1)}})]});return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)("div",{ref:C,style:v?y:{display:"contents"}}),F?(0,import_react_dom.createPortal)(V,F):null]})},RunJSValueEditor=e=>{var t;const{t:o,value:r,onChange:i,height:n="200px",scene:l="formValue",containerStyle:a={flex:1,minWidth:0}}=e,c=(0,import_flow_engine.isRunJSValue)(r)?(0,import_flow_engine.normalizeRunJSValue)(r):{code:"",version:"v2"},u=`// ${(t=o==null?void 0:o("Use return to output value"))!=null?t:"Use return to output value"}`;return(0,import_jsx_runtime.jsx)("div",{style:a,children:(0,import_jsx_runtime.jsx)(CodeEditor,{value:c.code,onChange:d=>i==null?void 0:i(A(x({},c),{code:d})),version:c.version,height:n,enableLinter:!0,placeholder:u,scene:l})})},ConditionBuilder=(0,import_flow_engine.observer)(e=>{const t=(0,import_flow_engine.useFlowContext)();return(0,import_jsx_runtime.jsx)(FilterGroup,{value:e.value||{logic:"$and",items:[]},FilterItem:o=>(0,import_jsx_runtime.jsx)(LinkageFilterItem,{model:t.model,value:o.value,extraMetaTree:e.extraMetaTree}),onChange:e.onChange})}),commonConditionHandler=(e,t)=>{const{condition:o={logic:"$and",items:[]}}=t,r=(i,n,l)=>e.app.jsonLogic.apply({[n]:[i,l]});(0,import_client.evaluateConditions)((0,import_client.removeInvalidFilterItems)(o),r)||e.exit()};function ActionWithoutPermission(e){const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_flow_engine.useFlowModel)(),r=o.context.blockModel,i=e.collection||r.collection,n=i.dataSource,l=(0,import_react2.useMemo)(()=>{const u=`${t(n.displayName||n.key)} > `,d=i?`${t(i.title)||i.name||i.tableName} `:"";return`${u}${d}`},[]),{actionName:a}=(e==null?void 0:e.forbidden)||o.forbidden,c=(0,import_react2.useMemo)(()=>t(`The current user only has the UI configuration permission, but don't have "{{actionName}}" permission for collection "{{name}}"`,{name:l,actionName:t(import_lodash.default.capitalize(a))}).replaceAll("&gt;",">"),[a,l,t]);return(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:e.message||c,children:e.children})}const ActionSceneEnum={collection:"collection",record:"record",all:["collection","record"],both:["collection","record"]};class ActionModel extends import_flow_engine.FlowModel{constructor(){super(...arguments),R(this,"defaultProps",{type:"default",title:(0,import_flow_engine.tExpr)("Action")}),R(this,"enableEditTooltip",!0),R(this,"enableEditTitle",!0),R(this,"enableEditIcon",!0),R(this,"enableEditType",!0),R(this,"enableEditDanger",!0),R(this,"enableEditColor",!1)}static _getScene(){return import_lodash.default.castArray(this.scene||[])}static _isScene(t){return this._getScene().includes(t)}getAclActionName(){return null}onInit(t){super.onInit(t),this.context.defineProperty("actionName",{get:()=>this.getAclActionName(),cache:!1})}getInputArgs(){const t={},o=[];if(this.context.resource){const r=this.context.resource.getSourceId();r&&(t.sourceId=r,o.push("sourceId"))}if(this.context.collection&&this.context.record){const r=this.context.collection.getFilterByTK(this.context.record);r&&(t.filterByTk=r,o.push("filterByTk"))}return o.length&&(t.defaultInputKeys=o),t}onClick(t){this.dispatchEvent("click",x({event:t},this.getInputArgs()),{debounce:!0})}getTitle(){return this.props.title}getIcon(){return this.props.icon}renderButton(){const t=this.props,o=this.getIcon()?(0,import_jsx_runtime.jsx)(Icon,{type:this.getIcon()}):void 0;return(0,import_jsx_runtime.jsx)(import_antd.Button,A(x({},t),{onClick:this.onClick.bind(this),icon:o,children:t.children||this.getTitle()}))}render(){return this.props.tooltip?(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:this.props.tooltip,children:this.renderButton()}):this.renderButton()}renderHiddenInConfig(){const t=this.props,o=this.getIcon()?(0,import_jsx_runtime.jsx)(Icon,{type:this.getIcon()}):void 0;return this.forbidden?(0,import_jsx_runtime.jsx)(ActionWithoutPermission,{children:(0,import_jsx_runtime.jsx)(import_antd.Button,A(x({},t),{onClick:this.onClick.bind(this),icon:o,style:{opacity:"0.3"},children:t.children||this.getTitle()}))}):(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:this.context.t("The button is hidden and only visible when the UI Editor is active"),children:(0,import_jsx_runtime.jsx)(import_antd.Button,A(x({},t),{onClick:this.onClick.bind(this),icon:o,style:{opacity:"0.3"},children:t.children||this.getTitle()}))})}}ActionModel.registerFlow({key:"buttonSettings",title:(0,import_flow_engine.tExpr)("Button settings"),sort:-999,steps:{general:{title:(0,import_flow_engine.tExpr)("Edit button"),uiSchema(e){return{title:e.model.enableEditTitle?{"x-decorator":"FormItem","x-component":"Input",title:(0,import_flow_engine.tExpr)("Button title")}:void 0,tooltip:e.model.enableEditTooltip?{"x-decorator":"FormItem","x-component":"Input",title:(0,import_flow_engine.tExpr)("Button tooltip")}:void 0,icon:e.model.enableEditIcon?{"x-decorator":"FormItem","x-component":"IconPicker",title:(0,import_flow_engine.tExpr)("Button icon")}:void 0,type:e.model.enableEditType?{"x-decorator":"FormItem","x-component":"Radio.Group",title:(0,import_flow_engine.tExpr)("Button type"),enum:[{value:"default",label:'{{t("Default")}}'},{value:"primary",label:'{{t("Primary")}}'},{value:"dashed",label:'{{t("Dashed")}}'},{value:"link",label:'{{t("Link")}}'},{value:"text",label:'{{t("Text")}}'}]}:void 0,danger:e.model.enableEditDanger?{"x-decorator":"FormItem","x-component":"Switch",title:(0,import_flow_engine.tExpr)("Danger action")}:void 0,color:e.model.enableEditColor?{"x-decorator":"FormItem","x-component":ColorPicker,title:(0,import_flow_engine.tExpr)("Color")}:void 0}},defaultParams(e){return e.model.defaultProps},handler(e,t){const o=t,{title:r,tooltip:i}=o,n=te(o,["title","tooltip"]);e.model.setProps(x({title:e.t(r,{ns:"lm-flow-engine"}),tooltip:e.t(i,{ns:"lm-flow-engine"})},n))}},linkageRules:{use:"actionLinkageRules"}}});ActionModel.registerFlow({key:"buttonAclSettings",steps:{aclCheck:{use:"aclCheck"}}});ActionModel.registerFlow({key:"paginationChange",on:"paginationChange",steps:{aclCheckRefresh:{use:"aclCheckRefresh"},linkageRulesRefresh:{use:"linkageRulesRefresh",defaultParams:{actionName:"actionLinkageRules",flowKey:"buttonSettings",stepKey:"linkageRules"}}}});ActionModel.registerEvents({click:{title:(0,import_flow_engine.tExpr)("Click"),name:"click",uiSchema:{condition:{type:"object",title:(0,import_flow_engine.tExpr)("Trigger condition"),"x-decorator":"FormItem","x-component":ConditionBuilder}},handler:commonConditionHandler}});class ActionGroupModel extends import_flow_engine.FlowModel{static getAllParentClasses(){const t=[];let o=this;for(;o&&o!==Object;)o=Object.getPrototypeOf(o),o!=null&&o.currentModels&&t.push(o);return t}static get currentModels(){return(!Object.prototype.hasOwnProperty.call(this,"_models")||!this._models)&&(this._models=new Map),this._models}static get models(){const t=new Map,o=this.getAllParentClasses();for(const r of o)for(const[i,n]of r.currentModels)t.set(i,n);for(const[r,i]of this.currentModels)t.set(r,i);return t}static registerActionModels(t){for(const[o,r]of Object.entries(t))Object.defineProperty(r,"name",{value:o}),this.currentModels.set(o,r)}static defineChildren(t){return L(this,null,function*(){const o=this.baseClass?yield(0,import_flow_engine.buildSubModelItems)(this.baseClass)(t):[],r=[],i=o.filter(n=>this.scene?t.engine.getModelClass(n.useModel)._isScene(this.scene):!0);for(const[n,l]of this.models){if(i.find(c=>c.useModel===l.name))continue;const a=yield(0,import_flow_engine.buildSubModelItem)(l,t);a&&r.push(a)}return import_lodash.default.sortBy([...i,...r],"sort")})}}R(ActionGroupModel,"baseClass"),R(ActionGroupModel,"scene"),R(ActionGroupModel,"_models");class CollectionActionGroupModel extends ActionGroupModel{}R(CollectionActionGroupModel,"baseClass",ActionModel),R(CollectionActionGroupModel,"scene",ActionSceneEnum.collection);class RecordActionGroupModel extends ActionGroupModel{}R(RecordActionGroupModel,"baseClass",ActionModel),R(RecordActionGroupModel,"scene",ActionSceneEnum.record);class AssociationFieldGroupModel extends import_flow_engine.FlowModel{static defineChildren(t){const o=this.itemModelName,r=(i,n="")=>i.getToOneAssociationFields().map(l=>{const a=n?`${n}.${l.name}`:l.name;if(!l.targetCollection){console.error(`AssociationFieldGroupModel: target collection ${l.target} not found for field ${l.name}`);return}return{key:`${a}-assocationField`,label:l.title,children:()=>[{key:`${a}-children-collectionField`,label:t.t("Display fields"),type:"group",children:l.targetCollection.getFields().map(c=>{const u=`${a}.${c.name}`,d=import_flow_engine.DisplayItemModel.getDefaultBindingByField(t,c,{fallbackToTargetTitleField:!0});if(!d)return;const m=d.modelName;return{key:`c-${a}.${c.name}`,label:c.title,useModel:o,toggleable:p=>{var h;return((h=p.getStepParams("fieldSettings","init"))==null?void 0:h.fieldPath)===u},createModelOptions:{stepParams:{fieldSettings:{init:{dataSourceKey:t.collection.dataSourceKey,collectionName:t.prefixFieldPath?t.blockModel.context.collection.name:t.collection.name,fieldPath:u,associationPathName:a}}},subModels:{field:{use:m}}}}}).filter(Boolean)},{key:`${a}-children-associationField`,label:"Display association fields",type:"group",children:(r(l.targetCollection,a)||[]).filter(Boolean)}]}}).filter(Boolean);return r(t.collection,t.prefixFieldPath)}}R(AssociationFieldGroupModel,"itemModelName","DetailsItemModel");AssociationFieldGroupModel.define({label:'{{t("Display fields")}}'});function getDefaultOperator(e){var t,o,r,i,n,l;return e.operator||((t=e.getStepParams("filterFormItemSettings","defaultOperator"))==null?void 0:t.value)||((o=e.subModels.field)==null?void 0:o.operator)||((l=(n=(i=(r=e.collectionField)==null?void 0:r.filterable)==null?void 0:i.operators)==null?void 0:n[0])==null?void 0:l.value)||"$includes"}function isFilterValueEmpty(e){return!!(e==null||typeof e=="string"&&e.trim()===""||Array.isArray(e)&&e.filter(t=>!(t==null||typeof t=="string"&&t.trim()==="")).length===0||typeof e=="object"&&e.constructor===Object&&Object.keys(e).length===0)}function getAllDataModels(e){return e.filterSubModels("items",t=>{var o;return!!((o=t.resource)!=null&&o.supportsFilter)})}class FilterManager{constructor(t,o){R(this,"filterConfigs"),R(this,"gridModel"),this.gridModel=t,this.filterConfigs=o||[]}saveFilterConfigs(){return L(this,null,function*(){yield this.gridModel.saveStepParams()})}getFilterConfigs(){return this.filterConfigs}getConnectFieldsConfig(t){const o=this.filterConfigs.filter(r=>r.filterId===t);if(o.length!==0)return{targets:o.map(r=>({targetId:r.targetId,filterPaths:r.filterPaths}))}}saveConnectFieldsConfig(t,o){return L(this,null,function*(){const r=o.targets.map(n=>({filterId:t,targetId:n.targetId,filterPaths:n.filterPaths})),i=this.filterConfigs.filter(n=>n.filterId!==t);this.filterConfigs=[],this.filterConfigs.push(...i,...r),yield this.saveFilterConfigs()})}addFilterConfig(t){return L(this,null,function*(){if(!t.filterId||!t.targetId){console.error("FilterConfig must have filterId, targetId, and operator");return}if(!Array.isArray(t.filterPaths)||t.filterPaths.length===0){console.error("FilterConfig must have non-empty filterPaths array");return}const o=this.filterConfigs.findIndex(r=>r.filterId===t.filterId&&r.targetId===t.targetId);o>=0?this.filterConfigs[o]=x({},t):this.filterConfigs.push(x({},t)),yield this.saveFilterConfigs()})}removeFilterConfig(t){return L(this,arguments,function*({filterId:o,targetId:r,persist:i=!0}){if(!o&&!r)return console.error("At least one of filterId or targetId must be provided"),0;const n=this.filterConfigs.length;this.filterConfigs=this.filterConfigs.filter(a=>o&&r?!(a.filterId===o&&a.targetId===r):o?a.filterId!==o:r?a.targetId!==r:!0);const l=n-this.filterConfigs.length;return l>0&&i&&(yield this.saveFilterConfigs()),l})}bindToTarget(t){if(!t||typeof t!="string"){console.error("[NocoBase]: targetId must be a non-empty string");return}const o=this.gridModel.flowEngine.getModel(t);if(!o){console.error(`[NocoBase]: Target model with uid "${t}" not found`);return}if(!o.resource||typeof o.resource.addFilterGroup!="function"){console.error(`[NocoBase]: Target model with uid "${t}" does not have a valid resource with addFilterGroup method`);return}if(typeof o.resource.removeFilterGroup!="function"){console.error(`[NocoBase]: Target model with uid "${t}" does not have a valid resource with removeFilterGroup method`);return}const r=this.filterConfigs.filter(n=>n.targetId===t);if(r.length===0)return;const i=o;r.forEach(n=>{const l=this.gridModel.flowEngine.getModel(n.filterId);if(!l){console.error(`[NocoBase]: Filter model with uid "${n.filterId}" not found`);return}if(!l.getFilterValue){console.error(`[NocoBase]: Filter model with uid "${n.filterId}" does not have getFilterValue method`);return}const a=l.getFilterValue();if(isFilterValueEmpty(a)){try{o.resource.removeFilterGroup(n.filterId),i.setFilterActive(n.filterId,!1)}catch(u){console.error(`[NocoBase]: Failed to remove filter configuration from target model: ${u.message}`);return}return}i.setFilterActive(n.filterId,!0);const c=n.filterPaths.map(u=>({path:u,operator:n.operator||getDefaultOperator(l),value:a}));try{if(c.length===1)o.resource.addFilterGroup(n.filterId,new import_flow_engine.FilterItem({path:c[0].path,operator:c[0].operator,value:c[0].value}));else if(c.length>1){const u={logic:"$or",items:c};o.resource.addFilterGroup(n.filterId,new import_flow_engine.FilterGroup(u))}}catch(u){console.error(`Failed to bind filter configuration to target model: ${u.message}`);return}})}unbindFromTarget(t){if(!t||typeof t!="string"){console.error("targetId must be a non-empty string");return}const o=this.gridModel.flowEngine.getModel(t);if(!o){console.error(`Target model with uid "${t}" not found`);return}if(!o.resource||typeof o.resource.removeFilterGroup!="function"){console.error(`Target model with uid "${t}" does not have a valid resource with removeFilterGroup method`);return}const r=this.filterConfigs.filter(n=>n.targetId===t);if(r.length===0)return;const i=o;r.forEach(n=>{try{o.resource.removeFilterGroup(n.filterId),typeof(i==null?void 0:i.removeFilterSource)=="function"&&i.removeFilterSource(n.filterId)}catch(l){console.error(`Failed to unbind filter configuration from target model: ${l.message}`);return}})}refreshTargetsByFilter(t){return L(this,null,function*(){if(!t){console.error("filterId must be provided");return}const o=Array.isArray(t)?t:[t];if(o.length===0||o.some(n=>!n||typeof n!="string")){console.error("filterId must be non-empty string(s)");return}const r=this.filterConfigs.filter(n=>o.includes(n.filterId));if(r.length===0)return;const i=[...new Set(r.map(n=>n.targetId))].map(n=>L(this,null,function*(){try{this.bindToTarget(n);const l=this.gridModel.flowEngine.getModel(n);if(!l){console.error(`Target model with uid "${n}" not found`);return}if(!l.resource||typeof l.resource.refresh!="function"){console.error(`Target model with uid "${n}" does not have a valid resource with refresh method`);return}const a=l,c=l.resource;if(a.getDataLoadingMode()==="manual"&&!a.hasActiveFilters()){c.setData([]),c.setMeta({count:0,hasNext:!1}),typeof c.setPage=="function"&&c.setPage(1),c.loading=!1;return}typeof c.setPage=="function"&&c.setPage(1),yield c.refresh()}catch(l){console.error(`Failed to refresh target model "${n}": ${l.message}`);return}}));yield Promise.all(i)})}}function Grid({rows:e,sizes:t={},renderItem:o,rowGap:r=16,colGap:i=16,dragOverlayRect:n}){return Object.keys(e||{}).length===0?(0,import_jsx_runtime.jsx)("div",{style:{position:"relative"},"data-grid-empty-container":!0,children:n&&(0,import_jsx_runtime.jsx)(GridDragOverlay,{rect:n})}):(0,import_jsx_runtime.jsxs)("div",{style:{position:"relative",display:"flex",flexDirection:"column",gap:r},children:[n&&(0,import_jsx_runtime.jsx)(GridDragOverlay,{rect:n}),Object.entries(e).map(([l,a])=>{const c=a.length,u=t[l]||[],d=u.some(p=>p!=null&&p!==void 0),m=a.map((p,h)=>{var g;if(d){const f=u.reduce((b,C)=>b+(C||0),0),_=c-u.filter(Boolean).length,v=_>0?(24-f)/_:0;return(g=u[h])!=null?g:v}else return 24/c});return(0,import_jsx_runtime.jsx)(import_antd.Row,{gutter:i,"data-grid-row-id":l,children:a.map((p,h)=>(0,import_jsx_runtime.jsx)(GridColumn,{rowKey:l,columnIndex:h,span:m[h],rowGap:r,cell:p,renderItem:o},`${l}:${p.join("|")||"empty"}`))},l)})]})}const GridColumn=import_react2.default.memo(function e({rowKey:t,columnIndex:o,span:r,rowGap:i,cell:n,renderItem:l}){return(0,import_jsx_runtime.jsx)(import_antd.Col,{span:r,"data-grid-column-row-id":t,"data-grid-column-index":o,children:(0,import_jsx_runtime.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:i},children:n.map((a,c)=>a===import_flow_engine.EMPTY_COLUMN_UID?null:(0,import_jsx_runtime.jsx)("div",{"data-grid-item-row-id":t,"data-grid-column-index":o,"data-grid-item-index":c,"data-grid-item-uid":a,children:l(a)},a))})})});GridColumn.displayName="GridColumn";function GridDragOverlay({rect:e}){const t={position:"absolute",top:e.top,left:e.left,width:e.width,height:e.height,borderRadius:6,pointerEvents:"none",transition:"all 60ms ease-out",zIndex:100},o={column:{border:"2px dashed var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.08)"},"column-edge":{border:"2px solid var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.12)"},"row-gap":{border:"2px dashed var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.05)"},"empty-row":{border:"2px dashed var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.04)"},"empty-column":{border:"2px dashed var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.04)"}};return(0,import_jsx_runtime.jsx)("div",{style:x(x({},t),o[e.type])})}const InnerJsonEditor=e=>{var t=e,{value:o,onChange:r,rows:i=10}=t,n=te(t,["value","onChange","rows"]);const[l,a]=(0,import_react2.useState)(()=>o?JSON.stringify(o,null,2):""),[c,u]=(0,import_react2.useState)(null);(0,import_react2.useEffect)(()=>{a(o?JSON.stringify(o,null,2):"")},[o]);const d=m=>{const p=m.target.value;a(p);try{const h=p.trim()?JSON.parse(p):void 0;u(null),r==null||r(h)}catch(h){u(h.message)}};return(0,import_jsx_runtime.jsxs)("div",{children:[(0,import_jsx_runtime.jsx)(import_antd.Input.TextArea,x({value:l,autoSize:{minRows:i,maxRows:i+10},onChange:d},n)),c&&(0,import_jsx_runtime.jsx)(import_antd.Alert,{type:"error",message:c,showIcon:!0,style:{marginTop:8}})]})},JsonEditor=(0,import_react.connect)(InnerJsonEditor);function SkeletonFallback(e){return(0,import_jsx_runtime.jsx)(import_antd.Card,A(x({},e),{children:(0,import_jsx_runtime.jsx)(import_antd.Skeleton,{paragraph:{rows:3}})}))}const GRID_FLOW_KEY="gridSettings",GRID_STEP="grid",getClientPoint=e=>{if(!e)return null;if(typeof e.clientX=="number"&&typeof e.clientY=="number")return{x:e.clientX,y:e.clientY};if(e.touches&&e.touches.length>0){const t=e.touches[0];return{x:t.clientX,y:t.clientY}}if(e.changedTouches&&e.changedTouches.length>0){const t=e.changedTouches[0];return{x:t.clientX,y:t.clientY}}return null};class GridModel extends import_flow_engine.FlowModel{constructor(){super(...arguments),R(this,"subModelBaseClass","BlockModel"),R(this,"gridContainerRef",import_react2.default.createRef()),R(this,"prevMoveDistance",0),R(this,"itemSettingsMenuLevel",1),R(this,"itemFlowSettings",{}),R(this,"dragOverlayConfig"),R(this,"itemFallback",(0,import_jsx_runtime.jsx)(SkeletonFallback,{})),R(this,"itemExtraToolbarItems",[{key:"drag-handler",component:import_flow_engine.DragHandler,sort:1}]),R(this,"dragState"),R(this,"_memoItemFlowSettings")}deriveRowOrder(t,o){const r=[],i=new Set;return(o||Object.keys(t)).forEach(n=>{t[n]&&!i.has(n)&&(r.push(n),i.add(n))}),Object.keys(t).forEach(n=>{i.has(n)||(r.push(n),i.add(n))}),r}normalizeRowsWithOrder(t,o){const r=this.deriveRowOrder(t,o),i={};return r.forEach(n=>{t[n]&&(i[n]=t[n])}),Object.keys(t).forEach(n=>{i[n]||(i[n]=t[n])}),{rows:i,rowOrder:r}}orderSizesByRowOrder(t,o){const r={};return o.forEach(i=>{t[i]&&(r[i]=t[i])}),Object.keys(t).forEach(i=>{r[i]||(r[i]=t[i])}),r}getItemFlowSettings(){return this._memoItemFlowSettings||(this._memoItemFlowSettings=x({showBackground:!1,showDragHandle:!0},this.itemFlowSettings)),this._memoItemFlowSettings}onMount(){super.onMount(),this.emitter.on("onSubModelAdded",t=>{if(!t.isNew)return;this.resetRows(!0);const o=(0,import_flow_engine.findModelUidPosition)(t.uid,this.props.rows||{});if(o){const r=import_lodash.default.cloneDeep(this.props.sizes||{});r[o.rowId]=[24];const{rowOrder:i}=this.normalizeRowsWithOrder(this.props.rows||{},this.props.rowOrder),n=this.orderSizesByRowOrder(r,i);this.setStepParams(GRID_FLOW_KEY,GRID_STEP,{rows:this.props.rows||{},sizes:n,rowOrder:i}),this.setProps("sizes",n),this.setProps("rowOrder",i)}}),this.emitter.on("onSubModelDestroyed",t=>{var o,r,i,n;const l=t.uid,a=(0,import_flow_engine.findModelUidPosition)(l,this.props.rows||{});if(this.resetRows(!0),a){const c=this.props.rows||{},u=import_lodash.default.cloneDeep(this.props.sizes||{});((o=c[a.rowId])==null?void 0:o[a.columnIndex])===void 0&&((r=u[a.rowId])==null||r.splice(a.columnIndex,1)),c[a.rowId]===void 0&&delete u[a.rowId];const{rowOrder:d}=this.normalizeRowsWithOrder(c,this.props.rowOrder),m=this.orderSizesByRowOrder(u,d);this.setStepParams(GRID_FLOW_KEY,GRID_STEP,{rows:c,sizes:m,rowOrder:d}),this.setProps("sizes",m),this.setProps("rowOrder",d)}(i=this.context.filterManager)==null||i.removeFilterConfig({targetId:l}),(n=this.context.filterManager)==null||n.removeFilterConfig({filterId:l}),this.saveStepParams()}),this.emitter.on("onSubModelMoved",()=>{this.resetRows(!0)}),this.emitter.on("onResizeLeft",({resizeDistance:t,model:o})=>{var r;const i=(0,import_flow_engine.findModelUidPosition)(o.uid,this.props.rows||{}),n=((r=this.gridContainerRef.current)==null?void 0:r.clientWidth)||0,{newRows:l,newSizes:a,moveDistance:c}=recalculateGridSizes({position:i,direction:"left",resizeDistance:t,prevMoveDistance:this.prevMoveDistance,oldRows:this.props.rows||{},oldSizes:this.props.sizes||{},gutter:this.context.themeToken.marginBlock,gridContainerWidth:n});this.prevMoveDistance=c,this.setProps("rows",l),this.setProps("sizes",a)}),this.emitter.on("onResizeRight",({resizeDistance:t,model:o})=>{var r;const i=(0,import_flow_engine.findModelUidPosition)(o.uid,this.props.rows||{}),n=((r=this.gridContainerRef.current)==null?void 0:r.clientWidth)||0,{newRows:l,newSizes:a,moveDistance:c}=recalculateGridSizes({position:i,direction:"right",resizeDistance:t,prevMoveDistance:this.prevMoveDistance,oldRows:this.props.rows||{},oldSizes:this.props.sizes||{},gutter:this.context.themeToken.marginBlock,gridContainerWidth:n});this.prevMoveDistance=c,this.setProps("rows",l),this.setProps("sizes",a)}),this.emitter.on("onResizeBottom",({resizeDistance:t,model:o})=>{}),this.emitter.on("onResizeEnd",()=>{this.prevMoveDistance=0,this.saveGridLayout()})}saveGridLayout(t){var o,r,i,n,l;const a=(r=(o=t==null?void 0:t.rows)!=null?o:this.props.rows)!=null?r:{},c=(i=t==null?void 0:t.rowOrder)!=null?i:this.props.rowOrder,{rows:u,rowOrder:d}=this.normalizeRowsWithOrder(a,c),m=this.orderSizesByRowOrder((l=(n=t==null?void 0:t.sizes)!=null?n:this.props.sizes)!=null?l:{},d);this.setStepParams(GRID_FLOW_KEY,GRID_STEP,{rows:u,sizes:m,rowOrder:d}),this.setProps("rowOrder",d),this.saveStepParams()}mergeRowsWithItems(t){const o=this.subModels.items||[];if(!o||o.length===0)return{};const r=new Set(o.map(a=>a.uid));r.add(import_flow_engine.EMPTY_COLUMN_UID);const i=new Set,n={};for(const[a,c]of Object.entries(t)){const u=c.map(d=>import_lodash.default.castArray(d).filter(m=>r.has(m))).filter(d=>d.length>0);u.length>0&&(n[a]=u,u.forEach(d=>d.forEach(m=>i.add(m))))}const l=new Set;Object.values(n).forEach(a=>a.forEach(c=>c.forEach(u=>l.add(u))));for(const a of o)l.has(a.uid)||(n[(0,import_shared.uid)()]=[[a.uid]]);return n}resetRows(t=!1){const o=this.getStepParams(GRID_FLOW_KEY,GRID_STEP)||{},r=this.mergeRowsWithItems(o.rows||{}),{rows:i,rowOrder:n}=this.normalizeRowsWithOrder(r,o.rowOrder),l=this.orderSizesByRowOrder(o.sizes||{},n);this.setStepParams(GRID_FLOW_KEY,GRID_STEP,{rows:i,sizes:l,rowOrder:n}),t&&(this.setProps("rows",i),this.setProps("sizes",l),this.setProps("rowOrder",n))}computePointerPosition(t){var o;if(!this.dragState)return null;const r=this.dragState.pointerOrigin;if(r)return{x:r.x+t.delta.x,y:r.y+t.delta.y};const i=getClientPoint(t.activatorEvent);if(i)return this.dragState.pointerOrigin=i,{x:i.x+t.delta.x,y:i.y+t.delta.y};const n=(o=t.over)==null?void 0:o.rect;return n?{x:n.left+n.width/2,y:n.top+n.height/2}:null}updateLayoutSnapshot(){if(!this.dragState)return;const t=(0,import_flow_engine.buildLayoutSnapshot)({container:this.gridContainerRef.current});this.dragState.slots=t.slots,this.dragState.containerRect=t.containerRect}scheduleSnapshotRefresh(){this.dragState&&(this.dragState.refreshTimer&&clearTimeout(this.dragState.refreshTimer),this.dragState.refreshTimer=setTimeout(()=>{this.dragState&&(this.dragState.refreshTimer=null,this.updateLayoutSnapshot())},16))}computeOverlayRect(t){var o,r,i,n,l,a,c,u,d;const m=this.dragOverlayConfig,p=t.rect;switch(t.type){case"column":{const h=(o=m==null?void 0:m.columnInsert)==null?void 0:o[t.position],g=(r=h==null?void 0:h.height)!=null?r:p.height,f=(i=h==null?void 0:h.offsetTop)!=null?i:0;return{top:p.top+f,left:p.left,width:p.width,height:g}}case"column-edge":{const h=(n=m==null?void 0:m.columnEdge)==null?void 0:n[t.direction],g=(l=h==null?void 0:h.width)!=null?l:p.width,f=(a=h==null?void 0:h.offsetLeft)!=null?a:0;return{top:p.top,left:p.left+f,width:g,height:p.height}}case"row-gap":{const h=(c=m==null?void 0:m.rowGap)==null?void 0:c[t.position],g=(u=h==null?void 0:h.height)!=null?u:p.height,f=(d=h==null?void 0:h.offsetTop)!=null?d:0;return{top:p.top+f,left:p.left,width:p.width,height:g}}case"empty-column":case"empty-row":return{top:p.top,left:p.left,width:p.width,height:p.height};default:return{top:p.top,left:p.left,width:p.width,height:p.height}}}applyPreview(t){var o,r;if(!this.dragState)return;if(!t){this.dragState.activeSlotKey!==null&&(this.dragState.activeSlotKey=null,this.dragState.previewLayout=void 0,this.setProps("dragOverlayRect",null));return}const i=(0,import_flow_engine.getSlotKey)(t);if(this.dragState.activeSlotKey===i&&this.dragState.previewLayout)return;const n=(0,import_flow_engine.simulateLayoutForSlot)({slot:t,sourceUid:this.dragState.sourceUid,layout:this.dragState.snapshot,generateRowId:import_shared.uid});this.dragState.previewLayout={rows:import_lodash.default.cloneDeep(n.rows),sizes:import_lodash.default.cloneDeep(n.sizes),rowOrder:import_lodash.default.cloneDeep(n.rowOrder)};const l=this.gridContainerRef.current,a=(o=l==null?void 0:l.scrollTop)!=null?o:0,c=(r=l==null?void 0:l.scrollLeft)!=null?r:0,u=this.computeOverlayRect(t),d={top:u.top-this.dragState.containerRect.top+a,left:u.left-this.dragState.containerRect.left+c,width:u.width,height:u.height,type:t.type};this.setProps("dragOverlayRect",d),this.dragState.activeSlotKey=i}handleDragStart(t){var o;const r=t.active.id,{rows:i,rowOrder:n}=this.normalizeRowsWithOrder(this.props.rows||{},this.props.rowOrder),l=this.orderSizesByRowOrder(this.props.sizes||{},n);this.dragState={sourceUid:r,snapshot:{rows:import_lodash.default.cloneDeep(i),sizes:import_lodash.default.cloneDeep(l),rowOrder:n},slots:[],containerRect:{top:0,left:0,width:0,height:0},pointerOrigin:(o=getClientPoint(t.activatorEvent))!=null?o:void 0,activeSlotKey:null,previewLayout:void 0,refreshTimer:null},this.setProps("dragOverlayRect",null),this.updateLayoutSnapshot(),this.scheduleSnapshotRefresh()}handleDragMove(t){if(!this.dragState)return;this.dragState.slots.length||this.updateLayoutSnapshot();const o=this.computePointerPosition(t);if(!o){this.applyPreview(null);return}const r=(0,import_flow_engine.resolveDropIntent)(o,this.dragState.slots);this.applyPreview(r)}finishDrag(){this.dragState&&(this.dragState.refreshTimer&&clearTimeout(this.dragState.refreshTimer),this.dragState=void 0,this.setProps("dragOverlayRect",null))}handleDragEnd(t){if(!this.dragState)return;const o=this.dragState.previewLayout;o&&(this.setProps("rows",import_lodash.default.cloneDeep(o.rows)),this.setProps("sizes",import_lodash.default.cloneDeep(o.sizes)),o.rowOrder&&this.setProps("rowOrder",import_lodash.default.cloneDeep(o.rowOrder)),this.saveGridLayout(o)),this.finishDrag()}handleDragCancel(t){this.finishDrag()}renderAddSubModelButton(){throw new Error("renderAddSubModelButton method must be implemented in subclasses of GridModel")}getVisibleLayout(){var t;const o=this.props.rows||{},r=this.props.sizes||{},i=this.context.isMobileLayout?transformRowsToSingleColumn(o):o,n=this.context.isMobileLayout?{}:r,{rows:l,rowOrder:a}=this.normalizeRowsWithOrder(i,this.props.rowOrder),c=this.orderSizesByRowOrder(n,a);if(this.context.flowSettingsEnabled)return{rows:l,sizes:c};const u=((t=this.subModels)==null?void 0:t.items)||[];if(!u.length)return{rows:i,sizes:n};const d=new Map(u.map(h=>[h.uid,h])),m={},p={};return a.forEach(h=>{const g=l[h],f=c[h]||[],_=[],v=[];g.forEach((b,C)=>{b=b.filter(y=>{var F;return y===import_flow_engine.EMPTY_COLUMN_UID?!1:((F=d.get(y))==null?void 0:F.hidden)!==!0}),b.some(y=>{if(y===import_flow_engine.EMPTY_COLUMN_UID)return!1;const F=d.get(y);return!F||!F.hidden})&&(_.push(b),v.push(f[C]))}),_.length>0&&(m[h]=_,v.length>0&&(p[h]=v))}),{rows:m,sizes:p}}render(){const{rows:t,sizes:o}=this.getVisibleLayout(),r=Object.keys(t||{}).length>0;return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[r&&(0,import_jsx_runtime.jsx)(import_antd.Space,{ref:this.gridContainerRef,direction:"vertical",style:{width:"100%",marginBottom:this.props.rowGap},size:this.props.rowGap,children:(0,import_jsx_runtime.jsx)(import_flow_engine.DndProvider,{onDragStart:this.handleDragStart.bind(this),onDragMove:this.handleDragMove.bind(this),onDragEnd:this.handleDragEnd.bind(this),onDragCancel:this.handleDragCancel.bind(this),children:(0,import_jsx_runtime.jsx)(Grid,{rowGap:this.props.rowGap,colGap:this.props.colGap,rows:t,sizes:o,dragOverlayRect:this.props.dragOverlayRect,renderItem:i=>{var n,l,a,c,u,d;const m=this.flowEngine.getModel(i);if(!m)return this.itemFallback;const p=this.context.fieldKey,h=this.context.fieldIndex,g=this.context.getPropertyOptions("item"),f=(l=(n=this.context).getPropertyOptions)==null?void 0:l.call(n,"record"),_=(c=(a=this.context).getPropertyOptions)==null?void 0:c.call(a,"currentObject"),v=h==null?m:(()=>{const b=m.createFork({},`${p}:${i}`);b.context.defineProperty("fieldIndex",{get:()=>h}),b.context.defineProperty("fieldKey",{get:()=>p}),b.context.defineProperty("record",{get:()=>this.context.record,cache:!1,meta:f==null?void 0:f.meta,resolveOnServer:f==null?void 0:f.resolveOnServer,serverOnlyWhenContextParams:f==null?void 0:f.serverOnlyWhenContextParams}),b.context.defineProperty("currentObject",{get:()=>this.context.currentObject,cache:!1,resolveOnServer:_==null?void 0:_.resolveOnServer,serverOnlyWhenContextParams:_==null?void 0:_.serverOnlyWhenContextParams});const C=g||{},y=te(C,["value"]);return b.context.defineProperty("item",A(x({},y),{get:()=>this.context.item,cache:!1})),b})();return(0,import_jsx_runtime.jsx)(import_flow_engine.Droppable,{model:v,children:(0,import_jsx_runtime.jsx)(import_flow_engine.MemoFlowModelRenderer,{model:v,fallback:m.skeleton||this.itemFallback,showFlowSettings:this.context.flowSettingsEnabled?this.getItemFlowSettings():!1,showErrorFallback:!0,settingsMenuLevel:(u=v==null?void 0:v.settingsMenuLevel)!=null?u:this.itemSettingsMenuLevel,showTitle:!0,extraToolbarItems:this.itemExtraToolbarItems},`${v.uid}:${p}:${(v==null?void 0:v.use)||((d=v==null?void 0:v.constructor)==null?void 0:d.name)||"m"}`)})}})})}),this.context.flowSettingsEnabled&&(0,import_jsx_runtime.jsx)("div",{style:{marginBottom:16},children:this.renderAddSubModelButton()})]})}}GridModel.registerFlow({key:GRID_FLOW_KEY,steps:{resetRows:{handler(e){e.model.resetRows()}},grid:{uiSchema:{rows:{title:(0,import_flow_engine.tExpr)("Rows"),"x-decorator":"FormItem","x-component":JsonEditor,"x-component-props":{autoSize:{minRows:10,maxRows:20},description:(0,import_flow_engine.tExpr)("Configure the rows and columns of the grid.")}},sizes:{title:(0,import_flow_engine.tExpr)("Sizes"),"x-decorator":"FormItem","x-component":JsonEditor,"x-component-props":{rows:5},description:(0,import_flow_engine.tExpr)("Configure the sizes of each row. The value is an array of numbers representing the width of each column in the row.")}},handler(e,t){return L(this,null,function*(){const o=e.model.mergeRowsWithItems(t.rows||{}),{rows:r,rowOrder:i}=e.model.normalizeRowsWithOrder(o,t.rowOrder),n=e.model.orderSizesByRowOrder(t.sizes||{},i);e.model.setProps("rows",r),e.model.setProps("sizes",n),e.model.setProps("rowOrder",i)})}}}});function transformRowsToSingleColumn(e,t){var o;const r=(o=t==null?void 0:t.emptyColumnUid)!=null?o:import_flow_engine.EMPTY_COLUMN_UID,i={};return Object.keys(e).forEach(n=>{e[n].forEach(l=>{const a=l.filter(c=>c!==r);a.length>0&&(i[(0,import_shared.uid)()]=[a])})}),i}function recalculateGridSizes({position:e,direction:t,resizeDistance:o,prevMoveDistance:r,oldSizes:i,oldRows:n,gridContainerWidth:l,gutter:a=16,columnCount:c=24}){var u;const d=import_lodash.default.cloneDeep(n),m=import_lodash.default.cloneDeep(i),p=m[e.rowId]||[],h=a*(p.length-1);let g=Math.floor(o/(l-h)*c);if(g===r)return{newRows:d,newSizes:m,moveDistance:g};m[u=e.rowId]!=null||(m[u]=[c]);const f=m[e.rowId];let _=g-r;const v=t==="left"&&e.columnIndex>0,b=t==="right"&&e.columnIndex<f.length-1;if(!v&&!b&&_>0){const C=f.reduce((F,S)=>F+S,0),y=c-C;if(y<=0)return{newRows:d,newSizes:m,moveDistance:r};_>y&&(g=r+y,_=y)}if(m[e.rowId][e.columnIndex]+=_,t==="left"&&e.columnIndex>0&&(m[e.rowId][e.columnIndex-1]-=_,m[e.rowId][e.columnIndex-1]===0&&removeEmptyColumnFromRow({rows:d,sizes:m,position:e,direction:"left"})),t==="left"&&e.columnIndex===0){const C=m[e.rowId].slice(1).reduce((y,F)=>y+F,0);m[e.rowId][0]<c-C&&addEmptyColumnToRow({rows:d,sizes:m,position:e,direction:"left"})}if(t==="right"&&e.columnIndex<m[e.rowId].length-1&&(m[e.rowId][e.columnIndex+1]-=_,m[e.rowId][e.columnIndex+1]===0&&removeEmptyColumnFromRow({rows:d,sizes:m,position:e,direction:"right"})),t==="right"&&e.columnIndex===m[e.rowId].length-1){const C=m[e.rowId].slice(0,-1).reduce((y,F)=>y+F,0);m[e.rowId][e.columnIndex]<c-C&&addEmptyColumnToRow({rows:d,sizes:m,position:e,direction:"right"})}return{newRows:d,newSizes:m,moveDistance:g}}function addEmptyColumnToRow({rows:e,sizes:t,position:o,direction:r}){const i=e[o.rowId]||[],n=t[o.rowId]||[];if(r==="left"){const l=i[o.columnIndex-1];if(l!=null&&l.includes(import_flow_engine.EMPTY_COLUMN_UID))return;i.splice(o.columnIndex,0,[import_flow_engine.EMPTY_COLUMN_UID]),n.splice(o.columnIndex,0,1)}if(r==="right"){const l=i[o.columnIndex+1];if(l!=null&&l.includes(import_flow_engine.EMPTY_COLUMN_UID))return;i.splice(o.columnIndex+1,0,[import_flow_engine.EMPTY_COLUMN_UID]),n.splice(o.columnIndex+1,0,1)}}function removeEmptyColumnFromRow({rows:e,sizes:t,position:o,direction:r}){const i=e[o.rowId]||[],n=t[o.rowId]||[];if(r==="left"){const l=i[o.columnIndex-1];if(!(l!=null&&l.includes(import_flow_engine.EMPTY_COLUMN_UID)))return;i.splice(o.columnIndex-1,1),n.splice(o.columnIndex-1,1)}if(r==="right"){const l=i[o.columnIndex+1];if(!(l!=null&&l.includes(import_flow_engine.EMPTY_COLUMN_UID)))return;i.splice(o.columnIndex+1,1),n.splice(o.columnIndex+1,1)}}class BlockGridModel extends GridModel{constructor(){super(...arguments),R(this,"dragOverlayConfig",{columnInsert:{before:{offsetTop:-24},after:{offsetTop:24}},columnEdge:{left:{offsetLeft:-5},right:{offsetLeft:6}}})}onInit(t){super.onInit(t),this.context.defineProperty("blockGridModel",{value:this}),this.context.defineProperty("filterManager",{once:!0,get:()=>new FilterManager(this,t.filterManager)})}get subModelBaseClasses(){var t,o;const r=(o=(t=this.context.view)==null?void 0:t.inputArgs)!=null?o:{};return r.collectionName&&!r.filterByTk?["DataBlockModel","FilterBlockModel","BlockModel"]:["DataBlockModel","FilterBlockModel","BlockModel"]}get filterManager(){return this.context.filterManager}serialize(){const t=super.serialize();return t.filterManager=this.filterManager.getFilterConfigs(),t}renderAddSubModelButton(){return(0,import_jsx_runtime.jsx)(import_flow_engine.AddSubModelButton,{model:this,subModelKey:"items",subModelBaseClasses:this.subModelBaseClasses,children:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowSettingsButton,{icon:(0,import_jsx_runtime.jsx)(import_icons.PlusOutlined,{}),"data-flow-add-block":!0,children:this.context.t("Add block")})})}render(){return(0,import_jsx_runtime.jsx)("div",{className:"nb-block-grid",style:this.context.disableBlockGridPadding?null:{padding:this.context.isMobileLayout?8:this.context.themeToken.marginBlock,paddingBottom:0},children:super.render()})}}BlockGridModel.registerFlow({key:"blockGridSettings",steps:{grid:{handler(e,t){e.model.setProps("rowGap",e.isMobileLayout?12:e.themeToken.marginBlock),e.model.setProps("colGap",e.themeToken.marginBlock)}}}});const parseMarkdown=import_lodash.default.memoize(e=>L(void 0,null,function*(){return e&&(yield Promise.resolve().then(()=>require("./md-BbvRKckr-IQIU5F3r.js"))).default.render(e)}));function useParseMarkdown(e){const[t,o]=(0,import_react2.useState)(""),[r,i]=(0,import_react2.useState)(!0);return(0,import_react2.useEffect)(()=>{i(!0),parseMarkdown(e).then(n=>{o(n),i(!1)}).catch(n=>console.log(n))},[e]),{html:t,loading:r}}function convertToText$1(e){const t=e;let o=document.createElement("div");o.innerHTML=t;const r=o.innerText;return o=null,(r==null?void 0:r.replace(/[\n\r]/g,""))||""}const useMarkdownStyles=()=>{const{token:e}=import_antd.theme.useToken(),{isDarkTheme:t}=useGlobalTheme(),o=new import_tinycolor.TinyColor(e.colorFillAlter).onBackground(e.colorBgContainer).toHexShortString(),r={lineHeight:"inherit","&.nb-markdown-default":{"pre code.hljs":{display:"block",overflowX:"auto",padding:"1em"},"code.hljs":{padding:"3px 5px"},":not(pre) code":{padding:"2px 5px",color:"#d56161",background:e.colorFillQuaternary,border:`1px solid ${e.colorBorder}`,borderRadius:e.borderRadiusSM},blockquote:{borderLeft:"4px solid #ccc",paddingLeft:"20px",marginLeft:"0",color:"#666",fontStyle:"italic"},img:{maxWidth:"100%"},".hljs":{background:"#f8f8f8",color:"#444"},".hljs-comment":{color:"#697070"},".hljs-punctuation,.hljs-tag":{color:"#444a"},".hljs-tag .hljs-attr,.hljs-tag .hljs-name":{color:"#444"},".hljs-attribute,.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-name,.hljs-selector-tag":{fontWeight:700},".hljs-deletion,.hljs-number,.hljs-quote,.hljs-selector-class,.hljs-selector-id,.hljs-string,.hljs-template-tag,.hljs-type":{color:"#800"},".hljs-section,.hljs-title":{color:"#800",fontWeight:700},".hljs-link,.hljs-operator,.hljs-regexp,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-symbol,.hljs-template-variable,.hljs-variable":{color:"#ab5656"},".hljs-literal":{color:"#695"},".hljs-addition,.hljs-built_in,.hljs-bullet,.hljs-code":{color:"#397300"},".hljs-meta":{color:"#1f7199"},".hljs-meta .hljs-string":{color:"#38a"},".hljs-emphasis":{fontStyle:"italic"},".hljs-strong":{fontWeight:700}},"&.nb-markdown-table":{table:{borderCollapse:"collapse",width:"100%",fontFamily:"Arial, sans-serif",marginBottom:"1.5rem"},"th, td":{borderBottom:`1px solid ${e.colorBorderSecondary}`,padding:`${e.paddingContentVertical}px ${e.paddingContentHorizontal}px`,textAlign:"left"},th:{backgroundColor:o,fontWeight:"bold",color:e.colorText},"tr:hover":{backgroundColor:e.colorFillTertiary},"tr:last-child td":{borderBottom:"none"},"tr:first-child th":{borderTop:"none"}}},i={"&.nb-markdown-default":{"pre code.hljs":{display:"block",overflowX:"auto",padding:"1em"},"code.hljs":{padding:"3px 5px"},":not(pre) code":{padding:"2px 5px",color:"#d56161",background:e.colorFillQuaternary,border:`1px solid ${e.colorBorder}`,borderRadius:e.borderRadiusSM},".hljs":{color:"#adbac7",background:"#22272e"},".hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_":{color:"#f47067"},".hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_":{color:"#dcbdfb"},".hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable":{color:"#6cb6ff"},".hljs-meta .hljs-string,.hljs-regexp,.hljs-string":{color:"#96d0ff"},".hljs-built_in,.hljs-symbol":{color:"#f69d50"},".hljs-code,.hljs-comment,.hljs-formula":{color:"#768390"},".hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag":{color:"#8ddb8c"},".hljs-subst":{color:"#adbac7"},".hljs-section":{color:"#316dca",fontWeight:700},".hljs-bullet":{color:"#eac55f"},".hljs-emphasis":{color:"#adbac7",fontStyle:"italic"},".hljs-strong":{color:"#adbac7",fontWeight:700},".hljs-addition":{color:"#b4f1b4",backgroundColor:"#1b4721"},".hljs-deletion":{color:"#ffd8d3",backgroundColor:"#78191b"}},"&.nb-markdown-table":{table:{borderCollapse:"collapse",width:"100%",fontFamily:"Arial, sans-serif",marginBottom:"1.5rem"},"th, td":{borderBottom:`1px solid ${e.colorBorderSecondary}`,padding:`${e.paddingContentVertical}px ${e.paddingContentHorizontal}px`,textAlign:"left"},th:{backgroundColor:o,fontWeight:"bold",color:e.colorText},"tr:hover":{backgroundColor:e.colorFillTertiary},"tr:last-child td":{borderBottom:"none"},"tr:first-child th":{borderTop:"none"}}};return(0,import_css.css)(x({lineHeight:e.lineHeight,"& > *:last-child":{marginBottom:"0"},".ant-description-textarea, .ant-description-input":{lineHeight:e.lineHeight},".field-interface-datetime":{minWidth:"100px"},img:{maxWidth:"100%"}},t?i:r))},DisplayMarkdown=e=>{const{textOnly:t,overflowMode:o,style:r}=e,i=useMarkdownStyles(),{html:n=""}=useParseMarkdown(e.value),l=convertToText$1(n),a=o==="ellipsis",c=(0,import_react2.useRef)(null),[u,d]=(0,import_react2.useState)(!1);(0,import_react2.useEffect)(()=>{if(c.current){const h=c.current,g=h.scrollWidth>h.clientWidth||h.scrollHeight>h.clientHeight;d(g)}},[n,r,o]);const m=x(x({},r||{}),a?{display:"-webkit-box",WebkitLineClamp:1,WebkitBoxOrient:"vertical",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"normal",wordBreak:"break-word",cursor:"default"}:{}),p=(0,import_jsx_runtime.jsx)("div",{ref:c,className:`${i} nb-markdown`,dangerouslySetInnerHTML:{__html:t?l:n},style:m});return a&&u?(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:(0,import_jsx_runtime.jsx)("div",{dangerouslySetInnerHTML:{__html:n},style:{maxHeight:500,overflowY:"auto",padding:10,color:"#000"}}),overlayInnerStyle:{background:"#fff",color:"#000",boxShadow:"0 2px 8px rgba(0,0,0,0.15)"},color:"#fff",children:p}):p},getRootElement=e=>e&&(e.closest(".nb-block-grid")||e.closest(".nb-page-wrapper")||e.closest(".nb-page"))||document.documentElement,getOuterHeight$2=e=>{if(!e)return 0;const t=e.getBoundingClientRect(),o=window.getComputedStyle(e),r=parseFloat(o.marginTop)||0,i=parseFloat(o.marginBottom)||0;return t.height+r+i},getPadding=e=>{if(!e||e===document.documentElement)return{top:0,bottom:0};const t=window.getComputedStyle(e);return{top:parseFloat(t.paddingTop)||0,bottom:parseFloat(t.paddingBottom)||0}},getPageHeader=e=>{const t=e.closest(".nb-page");return t?t.querySelector(".ant-page-header")||t.querySelector(".pageHeaderCss"):null},getAddBlockContainer=e=>{const t=e.querySelector("[data-flow-add-block]");return t?t.parentElement||t:null};function getValidPageTop(e,t){return e>0?e:t}const useBlockHeight$1=({height:e,heightMode:t,cardRef:o})=>{const[r,i]=(0,import_react2.useState)(),n=(0,import_flow_engine.useFlowContext)(),l=(0,import_react2.useCallback)(()=>{if(t!=="fullHeight"||typeof window>"u"){i(v=>v===void 0?v:void 0);return}const a=o.current;if(!a)return;const c=getRootElement(a),u=a.getBoundingClientRect(),d=c===document.documentElement?{top:0}:c.getBoundingClientRect(),m=getPadding(c),p=getAddBlockContainer(c),h=d.top+m.top,g=Math.min(Math.max(0,u.top-h),0);let f=m.bottom+n.themeToken.marginBlock;p&&(f=n.themeToken.marginBlock+getOuterHeight$2(p)+m.bottom);const _=Math.max(0,Math.floor(window.innerHeight-getValidPageTop(h,110)-g-f));i(v=>v===_?v:_)},[t,o]);return(0,import_react2.useLayoutEffect)(()=>{l()},[l]),(0,import_react2.useEffect)(()=>{if(t!=="fullHeight"||typeof window>"u")return;const a=o.current;if(!a||typeof ResizeObserver>"u")return;const c=getRootElement(a),u=getPageHeader(c),d=getAddBlockContainer(c),m=new ResizeObserver(()=>l());return m.observe(a),c instanceof HTMLElement&&m.observe(c),u&&m.observe(u),d&&m.observe(d),window.addEventListener("resize",l),()=>{m.disconnect(),window.removeEventListener("resize",l)}},[t,o,l]),t==="specifyValue"?e:t==="fullHeight"?r:null},BlockItemCard=import_react2.default.forwardRef((e,t)=>{(0,import_react_i18next.useTranslation)();const{token:o}=import_antd.theme.useToken(),r=e,{title:i,description:n,children:l,className:a,heightMode:c}=r,u=te(r,["title","description","children","className","heightMode"]),d=(0,import_react2.useRef)(null),m=(0,import_react2.useCallback)(g=>{d.current=g,typeof t=="function"?t(g):t&&(t.current=g)},[t]),p=useBlockHeight$1(A(x({},e),{cardRef:d})),h=(i||n)&&(0,import_jsx_runtime.jsxs)("div",{children:[(0,import_jsx_runtime.jsxs)("span",{children:[" ",i]}),n&&(0,import_jsx_runtime.jsx)(DisplayMarkdown,{value:n,style:{overflowWrap:"break-word",whiteSpace:"normal",fontWeight:400,color:o.colorTextDescription,borderRadius:"4px"}})]});return(0,import_jsx_runtime.jsxs)(import_antd.Card,A(x({ref:m,title:h,style:{display:"flex",flexDirection:"column",height:p},styles:{body:{flex:1,display:"flex",flexDirection:"column",overflow:"auto"},header:{marginTop:"8px"}},className:a},u),{children:[e.beforeContent,l,e.afterContent]}))}),getContentWidth$1=e=>{if(e){const t=document.createRange();return t.selectNodeContents(e),t.getBoundingClientRect().width}},ellipsisDefaultStyle={overflow:"hidden",overflowWrap:"break-word",textOverflow:"ellipsis",whiteSpace:"nowrap",wordBreak:"break-all"},wrappingDefaultStyle={overflowWrap:"break-word",whiteSpace:"normal",wordBreak:"break-word"},isOverflowTooltip=e=>{if(!e)return!1;const t=getContentWidth$1(e),o=e.offsetWidth;return t>o},popoverStyle={maxWidth:600,overflow:"auto",maxHeight:400},EllipsisWithTooltip=(0,import_react2.forwardRef)((e,t)=>{const[o,r]=(0,import_react2.useState)(!1),[i,n]=(0,import_react2.useState)(!1),l=(0,import_react2.useRef)();(0,import_react2.useImperativeHandle)(t,()=>({setPopoverVisible:n}),[]);const a=(0,import_react2.useCallback)(u=>{const d=u.target;isOverflowTooltip(l.current)&&r(d.scrollWidth>=d.clientWidth)},[]),c=(0,import_react2.useMemo)(()=>{const u=e.ellipsis?{onMouseEnter:a}:{};return(0,import_jsx_runtime.jsx)("div",A(x({ref:l,role:e.role,style:e.ellipsis?ellipsisDefaultStyle:wrappingDefaultStyle},u),{children:e.children}))},[a,e.children,e.ellipsis,e.role]);return!e.ellipsis||!o?c:(0,import_jsx_runtime.jsx)(import_antd.Popover,{open:o&&i,onOpenChange:u=>{n(o&&u)},content:(0,import_jsx_runtime.jsx)("div",{style:popoverStyle,children:e.popoverContent||e.children}),children:c})});EllipsisWithTooltip.displayName="EllipsisWithTooltip";const date=(0,import_dayjs.default)(),spaceCSS=import_css.css`
1762
+ `}function formatRunJSPreviewMessage(e){return buildPreviewMessageWithTruncation(e)}function diagnoseRunJS(e,t){return L(this,arguments,function*(o,r,i={}){const n=typeof o=="string"?o:String(o??""),l=[],a=[],c=i==null?void 0:i.version,u=(0,import_flow_engine.shouldPreprocessRunJSTemplates)({version:c});a.push(...collectLezerSyntaxIssues(n)),a.push(...collectHeuristicIssues(n));const d=typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now(),m={started:!1,finished:!1,timeout:!1,durationMs:void 0};try{m.started=!0;const{consoleCapture:p,loggerCapture:h}=createLogCollectors(l),g={console:p};try{if(typeof window<"u"){const b=(0,import_flow_engine.createSafeNavigator)();g.navigator=b,g.window=(0,import_flow_engine.createSafeWindow)({navigator:b}),g.document=(0,import_flow_engine.createSafeDocument)()}}catch{}let f=n;try{f=yield(0,import_flow_engine.prepareRunJsCode)(n,{preprocessTemplates:u})}catch(b){const C=String((b==null?void 0:b.name)||""),y=safeToString((b==null?void 0:b.message)||b),F=b instanceof SyntaxError||/^SyntaxError\b/i.test(C)||/SyntaxError\b/i.test(y);return a.push({type:"runtime",ruleId:F?"preview-start-failed":"internal",message:F?y:`Preview internal failure: ${y}`,stack:safeStack(b)}),m.finished=!0,m.timeout=!1,{issues:sortIssuesStable(a),logs:l,execution:m}}const _=yield r.createJSRunner({globals:g,timeoutMs:PREVIEW_TIMEOUT_MS,version:c});_.globals.ctx.defineProperty("logger",{value:h});const v=yield _.run(f);if(m.finished=!0,m.timeout=!!(v!=null&&v.timeout),!(v!=null&&v.success)){const b=v==null?void 0:v.error,C=v!=null&&v.timeout?"Execution timed out":safeToString((b==null?void 0:b.message)||b||"Unknown error"),y=b instanceof SyntaxError||/^SyntaxError\b/i.test(String((b==null?void 0:b.name)||""));a.push({type:"runtime",ruleId:v!=null&&v.timeout?"timeout":y?"preview-start-failed":"runtime-error",message:C,stack:safeStack(b)})}}catch(p){m.finished=!0,m.timeout=!1,a.push({type:"runtime",ruleId:"internal",message:`Preview internal failure: ${safeToString((p==null?void 0:p.message)||p)}`,stack:safeStack(p)})}finally{const p=typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now(),h=Math.max(0,p-d);m.durationMs=Number.isFinite(h)?h:void 0}return{issues:sortIssuesStable(a),logs:l,execution:m}})}function createPreviewFlowContext(e){const t=new import_flow_engine.FlowContext;if(t.addDelegate(e),typeof document<"u"&&typeof document.createElement=="function"&&!e.element)try{const o=document.createElement("div");t.defineProperty("element",{value:o})}catch{}return t}function previewRunJS(e,t){return L(this,arguments,function*(o,r,i={}){const n=createPreviewFlowContext(r),l=yield diagnoseRunJS(o,n,i),a=l.issues.length===0,c=formatRunJSPreviewMessage(l),u=c.length>MAX_MESSAGE_CHARS?clampText(c,MAX_MESSAGE_CHARS):c;return{success:a,message:u}})}const runjsDiagnostics=Object.freeze(Object.defineProperty({__proto__:null,MAX_MESSAGE_CHARS,diagnoseRunJS,formatRunJSPreviewMessage,previewRunJS},Symbol.toStringTag,{value:"Module"})),CodeEditor=({value:e="",onChange:t,placeholder:o="",height:r="100%",minHeight:i,theme:n="light",readonly:l=!1,enableLinter:a=!1,wrapperStyle:c,extraCompletions:u,version:d="v1",name:m,language:p,scene:h,RightExtra:g})=>{const f=(0,import_react2.useRef)(null),_=(0,import_react2.useRef)(null),{isFullscreen:v,toggleFullscreen:b,placeholderRef:C,placeholderStyle:y,container:F}=useFullscreenOverlay(),S=(0,import_flow_engine.useFlowContext)(),P=(0,import_react2.useMemo)(()=>{if(h&&(!Array.isArray(h)||h.length))return h;if(S)try{const z=(0,import_flow_engine.getRunJSScenesForContext)(S,{version:d});return z.length?z:void 0}catch{return}},[h,S,d]),{completions:j,entries:I}=useRunJSDocCompletions(S,d,P),{run:M,logs:E,running:D}=useCodeRunner(S,d),[k,w]=(0,import_react2.useState)(!1),B=(0,import_react2.useCallback)(()=>{const z=f.current;return z&&(z.closest(".ant-drawer-content-wrapper")||z.closest(".ant-drawer-content")||z.closest(".ant-modal-content")||z.parentElement)||document.body},[]),N=(0,import_react2.useCallback)((z,U)=>{try{return S!=null&&S.t?S.t(z,U):z}catch{return z}},[S]),T=(0,import_react2.useMemo)(()=>{const z=[];return Array.isArray(j)&&z.push(...j),Array.isArray(u)&&z.push(...u),z},[u,j]),$=(0,import_react2.useMemo)(()=>createRunJSCompletionSource({hostCtx:S,staticOptions:T}),[S,T]),q=(0,import_react2.useRef)({write(z){const U=_.current;U&&U.state.doc.toString()!==z&&U.dispatch({changes:{from:0,to:U.state.doc.length,insert:z}})},read(){const z=_.current;return z?z.state.doc.toString():""},buttonGroupHeight:0,snippetEntries:[],logs:[]});q.current.snippetEntries=I,q.current.logs=E,(0,import_react2.useEffect)(()=>{var z;(z=_.current)==null||z.requestMeasure()},[v]);const O=(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:N(v?"Exit fullscreen":"Fullscreen"),children:(0,import_jsx_runtime.jsx)(import_antd.Button,{size:"small","aria-label":N(v?"Exit fullscreen":"Fullscreen"),icon:v?(0,import_jsx_runtime.jsx)(import_icons.FullscreenExitOutlined,{}):(0,import_jsx_runtime.jsx)(import_icons.FullscreenOutlined,{}),onClick:b})}),V=(0,import_jsx_runtime.jsxs)("div",{style:x({border:v?"none":"1px solid #d9d9d9",borderRadius:v?0:"6px",overflow:"visible",position:"relative",display:"flex",flexDirection:"column",boxSizing:v?"border-box":void 0,padding:v?16:void 0,height:v?"100%":void 0,minHeight:v?0:void 0},c),ref:f,children:[(0,import_jsx_runtime.jsx)(RightExtra,{name:m,language:p,scene:P,extraEditorRef:q.current,extraContent:(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[g?(0,import_jsx_runtime.jsx)(g,{viewRef:_}):(0,import_jsx_runtime.jsxs)("div",{style:{display:"flex",gap:8,alignItems:"center"},children:[(0,import_jsx_runtime.jsx)(import_antd.Button,{size:"small",onClick:()=>w(!0),children:N("Snippets")}),(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:(0,import_jsx_runtime.jsx)(import_antd.Button,{size:"small",loading:D,onClick:()=>L(void 0,null,function*(){var z;const U=((z=_.current)==null?void 0:z.state.doc.toString())||"";clearDiagnostics(_.current);const K=yield M(U);if(!(K!=null&&K.success)){const W=K==null?void 0:K.error,Y=K!=null&&K.timeout?N("Execution timed out"):String(W||N("Unknown error")),Z=parseErrorLineColumn(W);Z&&_.current&&markErrorAt(_.current,Z.line,Z.column,Y)}}),children:N("Run")})})]}),O]})}),(0,import_jsx_runtime.jsx)(EditorCore,{value:e,onChange:t,placeholder:o,height:v?"100%":r,minHeight:i,theme:n,readonly:l,enableLinter:a,completionSource:$,viewRef:_}),(0,import_jsx_runtime.jsx)(LogsPanel,{logs:E,onJumpTo:(z,U)=>{const K=_.current;K&&jumpTo(K,z,U)},tr:N}),(0,import_jsx_runtime.jsx)(SnippetsDrawer,{open:k,onClose:()=>w(!1),getContainer:B,entries:I,tr:N,onInsert:z=>{const U=_.current;if(!U)return;const{from:K,to:W}=U.state.selection.main,Y=K+z.length;U.dispatch({changes:{from:K,to:W,insert:z},selection:{anchor:Y},scrollIntoView:!0}),U.focus(),w(!1)}})]});return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)("div",{ref:C,style:v?y:{display:"contents"}}),F?(0,import_react_dom.createPortal)(V,F):null]})},RunJSValueEditor=e=>{var t;const{t:o,value:r,onChange:i,height:n="200px",scene:l="formValue",containerStyle:a={flex:1,minWidth:0}}=e,c=(0,import_flow_engine.isRunJSValue)(r)?(0,import_flow_engine.normalizeRunJSValue)(r):{code:"",version:"v2"},u=`// ${(t=o==null?void 0:o("Use return to output value"))!=null?t:"Use return to output value"}`;return(0,import_jsx_runtime.jsx)("div",{style:a,children:(0,import_jsx_runtime.jsx)(CodeEditor,{value:c.code,onChange:d=>i==null?void 0:i(A(x({},c),{code:d})),version:c.version,height:n,enableLinter:!0,placeholder:u,scene:l})})},ConditionBuilder=(0,import_flow_engine.observer)(e=>{const t=(0,import_flow_engine.useFlowContext)();return(0,import_jsx_runtime.jsx)(FilterGroup,{value:e.value||{logic:"$and",items:[]},FilterItem:o=>(0,import_jsx_runtime.jsx)(LinkageFilterItem,{model:t.model,value:o.value,extraMetaTree:e.extraMetaTree}),onChange:e.onChange})}),commonConditionHandler=(e,t)=>{const{condition:o={logic:"$and",items:[]}}=t,r=(i,n,l)=>e.app.jsonLogic.apply({[n]:[i,l]});(0,import_client.evaluateConditions)((0,import_client.removeInvalidFilterItems)(o),r)||e.exit()};function ActionWithoutPermission(e){const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_flow_engine.useFlowModel)(),r=o.context.blockModel,i=e.collection||r.collection,n=i.dataSource,l=(0,import_react2.useMemo)(()=>{const u=`${t(n.displayName||n.key)} > `,d=i?`${t(i.title)||i.name||i.tableName} `:"";return`${u}${d}`},[]),{actionName:a}=(e==null?void 0:e.forbidden)||o.forbidden,c=(0,import_react2.useMemo)(()=>t(`The current user only has the UI configuration permission, but don't have "{{actionName}}" permission for collection "{{name}}"`,{name:l,actionName:t(import_lodash.default.capitalize(a))}).replaceAll("&gt;",">"),[a,l,t]);return(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:e.message||c,children:e.children})}const ActionSceneEnum={collection:"collection",record:"record",all:["collection","record"],both:["collection","record"]};class ActionModel extends import_flow_engine.FlowModel{constructor(){super(...arguments),R(this,"defaultProps",{type:"default",title:(0,import_flow_engine.tExpr)("Action")}),R(this,"enableEditTooltip",!0),R(this,"enableEditTitle",!0),R(this,"enableEditIcon",!0),R(this,"enableEditType",!0),R(this,"enableEditDanger",!0),R(this,"enableEditColor",!1)}static _getScene(){return import_lodash.default.castArray(this.scene||[])}static _isScene(t){return this._getScene().includes(t)}getAclActionName(){return null}onInit(t){super.onInit(t),this.context.defineProperty("actionName",{get:()=>this.getAclActionName(),cache:!1})}getInputArgs(){const t={},o=[];if(this.context.resource){const r=this.context.resource.getSourceId();r&&(t.sourceId=r,o.push("sourceId"))}if(this.context.collection&&this.context.record){const r=this.context.collection.getFilterByTK(this.context.record);r&&(t.filterByTk=r,o.push("filterByTk"))}return o.length&&(t.defaultInputKeys=o),t}onClick(t){this.dispatchEvent("click",x({event:t},this.getInputArgs()),{debounce:!0})}getTitle(){return this.props.title}getIcon(){return this.props.icon}renderButton(){const t=this.props,o=this.getIcon()?(0,import_jsx_runtime.jsx)(Icon,{type:this.getIcon()}):void 0;return(0,import_jsx_runtime.jsx)(import_antd.Button,A(x({},t),{onClick:this.onClick.bind(this),icon:o,children:t.children||this.getTitle()}))}render(){return this.props.tooltip?(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:this.props.tooltip,children:this.renderButton()}):this.renderButton()}renderHiddenInConfig(){const t=this.props,o=this.getIcon()?(0,import_jsx_runtime.jsx)(Icon,{type:this.getIcon()}):void 0;return this.forbidden?(0,import_jsx_runtime.jsx)(ActionWithoutPermission,{children:(0,import_jsx_runtime.jsx)(import_antd.Button,A(x({},t),{onClick:this.onClick.bind(this),icon:o,style:{opacity:"0.3"},children:t.children||this.getTitle()}))}):(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:this.context.t("The button is hidden and only visible when the UI Editor is active"),children:(0,import_jsx_runtime.jsx)(import_antd.Button,A(x({},t),{onClick:this.onClick.bind(this),icon:o,style:{opacity:"0.3"},children:t.children||this.getTitle()}))})}}ActionModel.registerFlow({key:"buttonSettings",title:(0,import_flow_engine.tExpr)("Button settings"),sort:-999,steps:{general:{title:(0,import_flow_engine.tExpr)("Edit button"),uiSchema(e){return{title:e.model.enableEditTitle?{"x-decorator":"FormItem","x-component":"Input",title:(0,import_flow_engine.tExpr)("Button title")}:void 0,tooltip:e.model.enableEditTooltip?{"x-decorator":"FormItem","x-component":"Input",title:(0,import_flow_engine.tExpr)("Button tooltip")}:void 0,icon:e.model.enableEditIcon?{"x-decorator":"FormItem","x-component":"IconPicker",title:(0,import_flow_engine.tExpr)("Button icon")}:void 0,type:e.model.enableEditType?{"x-decorator":"FormItem","x-component":"Radio.Group",title:(0,import_flow_engine.tExpr)("Button type"),enum:[{value:"default",label:'{{t("Default")}}'},{value:"primary",label:'{{t("Primary")}}'},{value:"dashed",label:'{{t("Dashed")}}'},{value:"link",label:'{{t("Link")}}'},{value:"text",label:'{{t("Text")}}'}]}:void 0,danger:e.model.enableEditDanger?{"x-decorator":"FormItem","x-component":"Switch",title:(0,import_flow_engine.tExpr)("Danger action")}:void 0,color:e.model.enableEditColor?{"x-decorator":"FormItem","x-component":ColorPicker,title:(0,import_flow_engine.tExpr)("Color")}:void 0}},defaultParams(e){return e.model.defaultProps},handler(e,t){const o=t,{title:r,tooltip:i}=o,n=te(o,["title","tooltip"]);e.model.setProps(x({title:e.t(r,{ns:"lm-flow-engine"}),tooltip:e.t(i,{ns:"lm-flow-engine"})},n))}},linkageRules:{use:"actionLinkageRules"}}});ActionModel.registerFlow({key:"buttonAclSettings",steps:{aclCheck:{use:"aclCheck"}}});ActionModel.registerFlow({key:"paginationChange",on:"paginationChange",steps:{aclCheckRefresh:{use:"aclCheckRefresh"},linkageRulesRefresh:{use:"linkageRulesRefresh",defaultParams:{actionName:"actionLinkageRules",flowKey:"buttonSettings",stepKey:"linkageRules"}}}});ActionModel.registerEvents({click:{title:(0,import_flow_engine.tExpr)("Click"),name:"click",uiSchema:{condition:{type:"object",title:(0,import_flow_engine.tExpr)("Trigger condition"),"x-decorator":"FormItem","x-component":ConditionBuilder}},handler:commonConditionHandler}});const VIEW_ACTION_ALIASES={view:"get"},normalizeCapabilityActionName=e=>e?VIEW_ACTION_ALIASES[e]||e:null,getExplicitCapabilityNames=(e,t)=>{for(const o of t){if(!(o in e))continue;const r=e[o];return r==null?null:(Array.isArray(r)?r:[r]).map(i=>normalizeCapabilityActionName(i)).filter(Boolean)}},isCapabilitySupported=(e,t)=>{const o=normalizeCapabilityActionName(t);if(!o||!(e!=null&&e.options))return!0;const{availableActions:r,unavailableActions:i}=e.options;return Array.isArray(r)?r.includes(o):Array.isArray(i)?!i.includes(o):!0},areCapabilitiesSupported=(e,t)=>t!=null&&t.length?t.every(o=>isCapabilitySupported(e,o)):!0,getActionCapabilityNamesFromModelClass=e=>{var t;const o=getExplicitCapabilityNames(e,["capabilityActionNames","capabilityActionName"]);if(o!==void 0)return o;const r=(t=e==null?void 0:e.prototype)==null?void 0:t.getAclActionName;if(typeof r!="function")return null;try{const i=r.call({}),n=normalizeCapabilityActionName(i);return n?[n]:null}catch{return null}},getBlockCapabilityNamesFromModelClass=e=>{const t=getExplicitCapabilityNames(e,["blockCapabilityActionNames","blockCapabilityActionName"]);return t??null};class ActionGroupModel extends import_flow_engine.FlowModel{static getAllParentClasses(){const t=[];let o=this;for(;o&&o!==Object;)o=Object.getPrototypeOf(o),o!=null&&o.currentModels&&t.push(o);return t}static get currentModels(){return(!Object.prototype.hasOwnProperty.call(this,"_models")||!this._models)&&(this._models=new Map),this._models}static get models(){const t=new Map,o=this.getAllParentClasses();for(const r of o)for(const[i,n]of r.currentModels)t.set(i,n);for(const[r,i]of this.currentModels)t.set(r,i);return t}static registerActionModels(t){for(const[o,r]of Object.entries(t))Object.defineProperty(r,"name",{value:o}),this.currentModels.set(o,r)}static isActionModelVisible(t,o){var r;const i=o.collection||((r=o.blockModel)==null?void 0:r.collection),n=getActionCapabilityNamesFromModelClass(t);return areCapabilitiesSupported(i,n)}static defineChildren(t){return L(this,null,function*(){const o=this.baseClass?yield(0,import_flow_engine.buildSubModelItems)(this.baseClass)(t):[],r=[],i=o.filter(n=>{const l=t.engine.getModelClass(n.useModel);return this.isActionModelVisible(l,t)?this.scene?l._isScene(this.scene):!0:!1});for(const[n,l]of this.models){if(!this.isActionModelVisible(l,t)||i.find(c=>c.useModel===l.name))continue;const a=yield(0,import_flow_engine.buildSubModelItem)(l,t);a&&r.push(a)}return import_lodash.default.sortBy([...i,...r],"sort")})}}R(ActionGroupModel,"baseClass"),R(ActionGroupModel,"scene"),R(ActionGroupModel,"_models");class CollectionActionGroupModel extends ActionGroupModel{}R(CollectionActionGroupModel,"baseClass",ActionModel),R(CollectionActionGroupModel,"scene",ActionSceneEnum.collection);class RecordActionGroupModel extends ActionGroupModel{}R(RecordActionGroupModel,"baseClass",ActionModel),R(RecordActionGroupModel,"scene",ActionSceneEnum.record);class AssociationFieldGroupModel extends import_flow_engine.FlowModel{static defineChildren(t){const o=this.itemModelName,r=(i,n="")=>i.getToOneAssociationFields().map(l=>{const a=n?`${n}.${l.name}`:l.name;if(!l.targetCollection){console.error(`AssociationFieldGroupModel: target collection ${l.target} not found for field ${l.name}`);return}return{key:`${a}-assocationField`,label:l.title,children:()=>[{key:`${a}-children-collectionField`,label:t.t("Display fields"),type:"group",children:l.targetCollection.getFields().map(c=>{const u=`${a}.${c.name}`,d=import_flow_engine.DisplayItemModel.getDefaultBindingByField(t,c,{fallbackToTargetTitleField:!0});if(!d)return;const m=d.modelName;return{key:`c-${a}.${c.name}`,label:c.title,useModel:o,toggleable:p=>{var h;return((h=p.getStepParams("fieldSettings","init"))==null?void 0:h.fieldPath)===u},createModelOptions:{stepParams:{fieldSettings:{init:{dataSourceKey:t.collection.dataSourceKey,collectionName:t.prefixFieldPath?t.blockModel.context.collection.name:t.collection.name,fieldPath:u,associationPathName:a}}},subModels:{field:{use:m}}}}}).filter(Boolean)},{key:`${a}-children-associationField`,label:"Display association fields",type:"group",children:(r(l.targetCollection,a)||[]).filter(Boolean)}]}}).filter(Boolean);return r(t.collection,t.prefixFieldPath)}}R(AssociationFieldGroupModel,"itemModelName","DetailsItemModel");AssociationFieldGroupModel.define({label:'{{t("Display fields")}}'});function getDefaultOperator(e){var t,o,r,i,n,l;return e.operator||((t=e.getStepParams("filterFormItemSettings","defaultOperator"))==null?void 0:t.value)||((o=e.subModels.field)==null?void 0:o.operator)||((l=(n=(i=(r=e.collectionField)==null?void 0:r.filterable)==null?void 0:i.operators)==null?void 0:n[0])==null?void 0:l.value)||"$includes"}function isFilterValueEmpty(e){return!!(e==null||typeof e=="string"&&e.trim()===""||Array.isArray(e)&&e.filter(t=>!(t==null||typeof t=="string"&&t.trim()==="")).length===0||typeof e=="object"&&e.constructor===Object&&Object.keys(e).length===0)}function getAllDataModels(e){return e.filterSubModels("items",t=>{var o;return!!((o=t.resource)!=null&&o.supportsFilter)})}class FilterManager{constructor(t,o){R(this,"filterConfigs"),R(this,"gridModel"),this.gridModel=t,this.filterConfigs=o||[]}saveFilterConfigs(){return L(this,null,function*(){yield this.gridModel.saveStepParams()})}getFilterConfigs(){return this.filterConfigs}getConnectFieldsConfig(t){const o=this.filterConfigs.filter(r=>r.filterId===t);if(o.length!==0)return{targets:o.map(r=>({targetId:r.targetId,filterPaths:r.filterPaths}))}}saveConnectFieldsConfig(t,o){return L(this,null,function*(){const r=o.targets.map(n=>({filterId:t,targetId:n.targetId,filterPaths:n.filterPaths})),i=this.filterConfigs.filter(n=>n.filterId!==t);this.filterConfigs=[],this.filterConfigs.push(...i,...r),yield this.saveFilterConfigs()})}addFilterConfig(t){return L(this,null,function*(){if(!t.filterId||!t.targetId){console.error("FilterConfig must have filterId, targetId, and operator");return}if(!Array.isArray(t.filterPaths)||t.filterPaths.length===0){console.error("FilterConfig must have non-empty filterPaths array");return}const o=this.filterConfigs.findIndex(r=>r.filterId===t.filterId&&r.targetId===t.targetId);o>=0?this.filterConfigs[o]=x({},t):this.filterConfigs.push(x({},t)),yield this.saveFilterConfigs()})}removeFilterConfig(t){return L(this,arguments,function*({filterId:o,targetId:r,persist:i=!0}){if(!o&&!r)return console.error("At least one of filterId or targetId must be provided"),0;const n=this.filterConfigs.length;this.filterConfigs=this.filterConfigs.filter(a=>o&&r?!(a.filterId===o&&a.targetId===r):o?a.filterId!==o:r?a.targetId!==r:!0);const l=n-this.filterConfigs.length;return l>0&&i&&(yield this.saveFilterConfigs()),l})}bindToTarget(t){if(!t||typeof t!="string"){console.error("[NocoBase]: targetId must be a non-empty string");return}const o=this.gridModel.flowEngine.getModel(t);if(!o){console.error(`[NocoBase]: Target model with uid "${t}" not found`);return}if(!o.resource||typeof o.resource.addFilterGroup!="function"){console.error(`[NocoBase]: Target model with uid "${t}" does not have a valid resource with addFilterGroup method`);return}if(typeof o.resource.removeFilterGroup!="function"){console.error(`[NocoBase]: Target model with uid "${t}" does not have a valid resource with removeFilterGroup method`);return}const r=this.filterConfigs.filter(n=>n.targetId===t);if(r.length===0)return;const i=o;r.forEach(n=>{const l=this.gridModel.flowEngine.getModel(n.filterId);if(!l){console.error(`[NocoBase]: Filter model with uid "${n.filterId}" not found`);return}if(!l.getFilterValue){console.error(`[NocoBase]: Filter model with uid "${n.filterId}" does not have getFilterValue method`);return}const a=l.getFilterValue();if(isFilterValueEmpty(a)){try{o.resource.removeFilterGroup(n.filterId),i.setFilterActive(n.filterId,!1)}catch(u){console.error(`[NocoBase]: Failed to remove filter configuration from target model: ${u.message}`);return}return}i.setFilterActive(n.filterId,!0);const c=n.filterPaths.map(u=>({path:u,operator:n.operator||getDefaultOperator(l),value:a}));try{if(c.length===1)o.resource.addFilterGroup(n.filterId,new import_flow_engine.FilterItem({path:c[0].path,operator:c[0].operator,value:c[0].value}));else if(c.length>1){const u={logic:"$or",items:c};o.resource.addFilterGroup(n.filterId,new import_flow_engine.FilterGroup(u))}}catch(u){console.error(`Failed to bind filter configuration to target model: ${u.message}`);return}})}unbindFromTarget(t){if(!t||typeof t!="string"){console.error("targetId must be a non-empty string");return}const o=this.gridModel.flowEngine.getModel(t);if(!o){console.error(`Target model with uid "${t}" not found`);return}if(!o.resource||typeof o.resource.removeFilterGroup!="function"){console.error(`Target model with uid "${t}" does not have a valid resource with removeFilterGroup method`);return}const r=this.filterConfigs.filter(n=>n.targetId===t);if(r.length===0)return;const i=o;r.forEach(n=>{try{o.resource.removeFilterGroup(n.filterId),typeof(i==null?void 0:i.removeFilterSource)=="function"&&i.removeFilterSource(n.filterId)}catch(l){console.error(`Failed to unbind filter configuration from target model: ${l.message}`);return}})}refreshTargetsByFilter(t){return L(this,null,function*(){if(!t){console.error("filterId must be provided");return}const o=Array.isArray(t)?t:[t];if(o.length===0||o.some(n=>!n||typeof n!="string")){console.error("filterId must be non-empty string(s)");return}const r=this.filterConfigs.filter(n=>o.includes(n.filterId));if(r.length===0)return;const i=[...new Set(r.map(n=>n.targetId))].map(n=>L(this,null,function*(){try{this.bindToTarget(n);const l=this.gridModel.flowEngine.getModel(n);if(!l){console.error(`Target model with uid "${n}" not found`);return}if(!l.resource||typeof l.resource.refresh!="function"){console.error(`Target model with uid "${n}" does not have a valid resource with refresh method`);return}const a=l,c=l.resource;if(a.getDataLoadingMode()==="manual"&&!a.hasActiveFilters()){c.setData([]),c.setMeta({count:0,hasNext:!1}),typeof c.setPage=="function"&&c.setPage(1),c.loading=!1;return}typeof c.setPage=="function"&&c.setPage(1),yield c.refresh()}catch(l){console.error(`Failed to refresh target model "${n}": ${l.message}`);return}}));yield Promise.all(i)})}}function Grid({rows:e,sizes:t={},renderItem:o,rowGap:r=16,colGap:i=16,dragOverlayRect:n}){return Object.keys(e||{}).length===0?(0,import_jsx_runtime.jsx)("div",{style:{position:"relative"},"data-grid-empty-container":!0,children:n&&(0,import_jsx_runtime.jsx)(GridDragOverlay,{rect:n})}):(0,import_jsx_runtime.jsxs)("div",{style:{position:"relative",display:"flex",flexDirection:"column",gap:r},children:[n&&(0,import_jsx_runtime.jsx)(GridDragOverlay,{rect:n}),Object.entries(e).map(([l,a])=>{const c=a.length,u=t[l]||[],d=u.some(p=>p!=null&&p!==void 0),m=a.map((p,h)=>{var g;if(d){const f=u.reduce((b,C)=>b+(C||0),0),_=c-u.filter(Boolean).length,v=_>0?(24-f)/_:0;return(g=u[h])!=null?g:v}else return 24/c});return(0,import_jsx_runtime.jsx)(import_antd.Row,{gutter:i,"data-grid-row-id":l,children:a.map((p,h)=>(0,import_jsx_runtime.jsx)(GridColumn,{rowKey:l,columnIndex:h,span:m[h],rowGap:r,cell:p,renderItem:o},`${l}:${p.join("|")||"empty"}`))},l)})]})}const GridColumn=import_react2.default.memo(function e({rowKey:t,columnIndex:o,span:r,rowGap:i,cell:n,renderItem:l}){return(0,import_jsx_runtime.jsx)(import_antd.Col,{span:r,"data-grid-column-row-id":t,"data-grid-column-index":o,children:(0,import_jsx_runtime.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:i},children:n.map((a,c)=>a===import_flow_engine.EMPTY_COLUMN_UID?null:(0,import_jsx_runtime.jsx)("div",{"data-grid-item-row-id":t,"data-grid-column-index":o,"data-grid-item-index":c,"data-grid-item-uid":a,children:l(a)},a))})})});GridColumn.displayName="GridColumn";function GridDragOverlay({rect:e}){const t={position:"absolute",top:e.top,left:e.left,width:e.width,height:e.height,borderRadius:6,pointerEvents:"none",transition:"all 60ms ease-out",zIndex:100},o={column:{border:"2px dashed var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.08)"},"column-edge":{border:"2px solid var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.12)"},"row-gap":{border:"2px dashed var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.05)"},"empty-row":{border:"2px dashed var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.04)"},"empty-column":{border:"2px dashed var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.04)"}};return(0,import_jsx_runtime.jsx)("div",{style:x(x({},t),o[e.type])})}const InnerJsonEditor=e=>{var t=e,{value:o,onChange:r,rows:i=10}=t,n=te(t,["value","onChange","rows"]);const[l,a]=(0,import_react2.useState)(()=>o?JSON.stringify(o,null,2):""),[c,u]=(0,import_react2.useState)(null);(0,import_react2.useEffect)(()=>{a(o?JSON.stringify(o,null,2):"")},[o]);const d=m=>{const p=m.target.value;a(p);try{const h=p.trim()?JSON.parse(p):void 0;u(null),r==null||r(h)}catch(h){u(h.message)}};return(0,import_jsx_runtime.jsxs)("div",{children:[(0,import_jsx_runtime.jsx)(import_antd.Input.TextArea,x({value:l,autoSize:{minRows:i,maxRows:i+10},onChange:d},n)),c&&(0,import_jsx_runtime.jsx)(import_antd.Alert,{type:"error",message:c,showIcon:!0,style:{marginTop:8}})]})},JsonEditor=(0,import_react.connect)(InnerJsonEditor);function SkeletonFallback(e){return(0,import_jsx_runtime.jsx)(import_antd.Card,A(x({},e),{children:(0,import_jsx_runtime.jsx)(import_antd.Skeleton,{paragraph:{rows:3}})}))}const GRID_FLOW_KEY="gridSettings",GRID_STEP="grid",getClientPoint=e=>{if(!e)return null;if(typeof e.clientX=="number"&&typeof e.clientY=="number")return{x:e.clientX,y:e.clientY};if(e.touches&&e.touches.length>0){const t=e.touches[0];return{x:t.clientX,y:t.clientY}}if(e.changedTouches&&e.changedTouches.length>0){const t=e.changedTouches[0];return{x:t.clientX,y:t.clientY}}return null};class GridModel extends import_flow_engine.FlowModel{constructor(){super(...arguments),R(this,"subModelBaseClass","BlockModel"),R(this,"gridContainerRef",import_react2.default.createRef()),R(this,"prevMoveDistance",0),R(this,"itemSettingsMenuLevel",1),R(this,"itemFlowSettings",{}),R(this,"dragOverlayConfig"),R(this,"itemFallback",(0,import_jsx_runtime.jsx)(SkeletonFallback,{})),R(this,"itemExtraToolbarItems",[{key:"drag-handler",component:import_flow_engine.DragHandler,sort:1}]),R(this,"dragState"),R(this,"_memoItemFlowSettings")}deriveRowOrder(t,o){const r=[],i=new Set;return(o||Object.keys(t)).forEach(n=>{t[n]&&!i.has(n)&&(r.push(n),i.add(n))}),Object.keys(t).forEach(n=>{i.has(n)||(r.push(n),i.add(n))}),r}normalizeRowsWithOrder(t,o){const r=this.deriveRowOrder(t,o),i={};return r.forEach(n=>{t[n]&&(i[n]=t[n])}),Object.keys(t).forEach(n=>{i[n]||(i[n]=t[n])}),{rows:i,rowOrder:r}}orderSizesByRowOrder(t,o){const r={};return o.forEach(i=>{t[i]&&(r[i]=t[i])}),Object.keys(t).forEach(i=>{r[i]||(r[i]=t[i])}),r}getItemFlowSettings(){return this._memoItemFlowSettings||(this._memoItemFlowSettings=x({showBackground:!1,showDragHandle:!0},this.itemFlowSettings)),this._memoItemFlowSettings}onMount(){super.onMount(),this.emitter.on("onSubModelAdded",t=>{if(!t.isNew)return;this.resetRows(!0);const o=(0,import_flow_engine.findModelUidPosition)(t.uid,this.props.rows||{});if(o){const r=import_lodash.default.cloneDeep(this.props.sizes||{});r[o.rowId]=[24];const{rowOrder:i}=this.normalizeRowsWithOrder(this.props.rows||{},this.props.rowOrder),n=this.orderSizesByRowOrder(r,i);this.setStepParams(GRID_FLOW_KEY,GRID_STEP,{rows:this.props.rows||{},sizes:n,rowOrder:i}),this.setProps("sizes",n),this.setProps("rowOrder",i)}}),this.emitter.on("onSubModelDestroyed",t=>{var o,r,i,n;const l=t.uid,a=(0,import_flow_engine.findModelUidPosition)(l,this.props.rows||{});if(this.resetRows(!0),a){const c=this.props.rows||{},u=import_lodash.default.cloneDeep(this.props.sizes||{});((o=c[a.rowId])==null?void 0:o[a.columnIndex])===void 0&&((r=u[a.rowId])==null||r.splice(a.columnIndex,1)),c[a.rowId]===void 0&&delete u[a.rowId];const{rowOrder:d}=this.normalizeRowsWithOrder(c,this.props.rowOrder),m=this.orderSizesByRowOrder(u,d);this.setStepParams(GRID_FLOW_KEY,GRID_STEP,{rows:c,sizes:m,rowOrder:d}),this.setProps("sizes",m),this.setProps("rowOrder",d)}(i=this.context.filterManager)==null||i.removeFilterConfig({targetId:l}),(n=this.context.filterManager)==null||n.removeFilterConfig({filterId:l}),this.saveStepParams()}),this.emitter.on("onSubModelMoved",()=>{this.resetRows(!0)}),this.emitter.on("onResizeLeft",({resizeDistance:t,model:o})=>{var r;const i=(0,import_flow_engine.findModelUidPosition)(o.uid,this.props.rows||{}),n=((r=this.gridContainerRef.current)==null?void 0:r.clientWidth)||0,{newRows:l,newSizes:a,moveDistance:c}=recalculateGridSizes({position:i,direction:"left",resizeDistance:t,prevMoveDistance:this.prevMoveDistance,oldRows:this.props.rows||{},oldSizes:this.props.sizes||{},gutter:this.context.themeToken.marginBlock,gridContainerWidth:n});this.prevMoveDistance=c,this.setProps("rows",l),this.setProps("sizes",a)}),this.emitter.on("onResizeRight",({resizeDistance:t,model:o})=>{var r;const i=(0,import_flow_engine.findModelUidPosition)(o.uid,this.props.rows||{}),n=((r=this.gridContainerRef.current)==null?void 0:r.clientWidth)||0,{newRows:l,newSizes:a,moveDistance:c}=recalculateGridSizes({position:i,direction:"right",resizeDistance:t,prevMoveDistance:this.prevMoveDistance,oldRows:this.props.rows||{},oldSizes:this.props.sizes||{},gutter:this.context.themeToken.marginBlock,gridContainerWidth:n});this.prevMoveDistance=c,this.setProps("rows",l),this.setProps("sizes",a)}),this.emitter.on("onResizeBottom",({resizeDistance:t,model:o})=>{}),this.emitter.on("onResizeEnd",()=>{this.prevMoveDistance=0,this.saveGridLayout()})}saveGridLayout(t){var o,r,i,n,l;const a=(r=(o=t==null?void 0:t.rows)!=null?o:this.props.rows)!=null?r:{},c=(i=t==null?void 0:t.rowOrder)!=null?i:this.props.rowOrder,{rows:u,rowOrder:d}=this.normalizeRowsWithOrder(a,c),m=this.orderSizesByRowOrder((l=(n=t==null?void 0:t.sizes)!=null?n:this.props.sizes)!=null?l:{},d);this.setStepParams(GRID_FLOW_KEY,GRID_STEP,{rows:u,sizes:m,rowOrder:d}),this.setProps("rowOrder",d),this.saveStepParams()}mergeRowsWithItems(t){const o=this.subModels.items||[];if(!o||o.length===0)return{};const r=new Set(o.map(a=>a.uid));r.add(import_flow_engine.EMPTY_COLUMN_UID);const i=new Set,n={};for(const[a,c]of Object.entries(t)){const u=c.map(d=>import_lodash.default.castArray(d).filter(m=>r.has(m))).filter(d=>d.length>0);u.length>0&&(n[a]=u,u.forEach(d=>d.forEach(m=>i.add(m))))}const l=new Set;Object.values(n).forEach(a=>a.forEach(c=>c.forEach(u=>l.add(u))));for(const a of o)l.has(a.uid)||(n[(0,import_shared.uid)()]=[[a.uid]]);return n}resetRows(t=!1){const o=this.getStepParams(GRID_FLOW_KEY,GRID_STEP)||{},r=this.mergeRowsWithItems(o.rows||{}),{rows:i,rowOrder:n}=this.normalizeRowsWithOrder(r,o.rowOrder),l=this.orderSizesByRowOrder(o.sizes||{},n);this.setStepParams(GRID_FLOW_KEY,GRID_STEP,{rows:i,sizes:l,rowOrder:n}),t&&(this.setProps("rows",i),this.setProps("sizes",l),this.setProps("rowOrder",n))}computePointerPosition(t){var o;if(!this.dragState)return null;const r=this.dragState.pointerOrigin;if(r)return{x:r.x+t.delta.x,y:r.y+t.delta.y};const i=getClientPoint(t.activatorEvent);if(i)return this.dragState.pointerOrigin=i,{x:i.x+t.delta.x,y:i.y+t.delta.y};const n=(o=t.over)==null?void 0:o.rect;return n?{x:n.left+n.width/2,y:n.top+n.height/2}:null}updateLayoutSnapshot(){if(!this.dragState)return;const t=(0,import_flow_engine.buildLayoutSnapshot)({container:this.gridContainerRef.current});this.dragState.slots=t.slots,this.dragState.containerRect=t.containerRect}scheduleSnapshotRefresh(){this.dragState&&(this.dragState.refreshTimer&&clearTimeout(this.dragState.refreshTimer),this.dragState.refreshTimer=setTimeout(()=>{this.dragState&&(this.dragState.refreshTimer=null,this.updateLayoutSnapshot())},16))}computeOverlayRect(t){var o,r,i,n,l,a,c,u,d;const m=this.dragOverlayConfig,p=t.rect;switch(t.type){case"column":{const h=(o=m==null?void 0:m.columnInsert)==null?void 0:o[t.position],g=(r=h==null?void 0:h.height)!=null?r:p.height,f=(i=h==null?void 0:h.offsetTop)!=null?i:0;return{top:p.top+f,left:p.left,width:p.width,height:g}}case"column-edge":{const h=(n=m==null?void 0:m.columnEdge)==null?void 0:n[t.direction],g=(l=h==null?void 0:h.width)!=null?l:p.width,f=(a=h==null?void 0:h.offsetLeft)!=null?a:0;return{top:p.top,left:p.left+f,width:g,height:p.height}}case"row-gap":{const h=(c=m==null?void 0:m.rowGap)==null?void 0:c[t.position],g=(u=h==null?void 0:h.height)!=null?u:p.height,f=(d=h==null?void 0:h.offsetTop)!=null?d:0;return{top:p.top+f,left:p.left,width:p.width,height:g}}case"empty-column":case"empty-row":return{top:p.top,left:p.left,width:p.width,height:p.height};default:return{top:p.top,left:p.left,width:p.width,height:p.height}}}applyPreview(t){var o,r;if(!this.dragState)return;if(!t){this.dragState.activeSlotKey!==null&&(this.dragState.activeSlotKey=null,this.dragState.previewLayout=void 0,this.setProps("dragOverlayRect",null));return}const i=(0,import_flow_engine.getSlotKey)(t);if(this.dragState.activeSlotKey===i&&this.dragState.previewLayout)return;const n=(0,import_flow_engine.simulateLayoutForSlot)({slot:t,sourceUid:this.dragState.sourceUid,layout:this.dragState.snapshot,generateRowId:import_shared.uid});this.dragState.previewLayout={rows:import_lodash.default.cloneDeep(n.rows),sizes:import_lodash.default.cloneDeep(n.sizes),rowOrder:import_lodash.default.cloneDeep(n.rowOrder)};const l=this.gridContainerRef.current,a=(o=l==null?void 0:l.scrollTop)!=null?o:0,c=(r=l==null?void 0:l.scrollLeft)!=null?r:0,u=this.computeOverlayRect(t),d={top:u.top-this.dragState.containerRect.top+a,left:u.left-this.dragState.containerRect.left+c,width:u.width,height:u.height,type:t.type};this.setProps("dragOverlayRect",d),this.dragState.activeSlotKey=i}handleDragStart(t){var o;const r=t.active.id,{rows:i,rowOrder:n}=this.normalizeRowsWithOrder(this.props.rows||{},this.props.rowOrder),l=this.orderSizesByRowOrder(this.props.sizes||{},n);this.dragState={sourceUid:r,snapshot:{rows:import_lodash.default.cloneDeep(i),sizes:import_lodash.default.cloneDeep(l),rowOrder:n},slots:[],containerRect:{top:0,left:0,width:0,height:0},pointerOrigin:(o=getClientPoint(t.activatorEvent))!=null?o:void 0,activeSlotKey:null,previewLayout:void 0,refreshTimer:null},this.setProps("dragOverlayRect",null),this.updateLayoutSnapshot(),this.scheduleSnapshotRefresh()}handleDragMove(t){if(!this.dragState)return;this.dragState.slots.length||this.updateLayoutSnapshot();const o=this.computePointerPosition(t);if(!o){this.applyPreview(null);return}const r=(0,import_flow_engine.resolveDropIntent)(o,this.dragState.slots);this.applyPreview(r)}finishDrag(){this.dragState&&(this.dragState.refreshTimer&&clearTimeout(this.dragState.refreshTimer),this.dragState=void 0,this.setProps("dragOverlayRect",null))}handleDragEnd(t){if(!this.dragState)return;const o=this.dragState.previewLayout;o&&(this.setProps("rows",import_lodash.default.cloneDeep(o.rows)),this.setProps("sizes",import_lodash.default.cloneDeep(o.sizes)),o.rowOrder&&this.setProps("rowOrder",import_lodash.default.cloneDeep(o.rowOrder)),this.saveGridLayout(o)),this.finishDrag()}handleDragCancel(t){this.finishDrag()}renderAddSubModelButton(){throw new Error("renderAddSubModelButton method must be implemented in subclasses of GridModel")}getVisibleLayout(){var t;const o=this.props.rows||{},r=this.props.sizes||{},i=this.context.isMobileLayout?transformRowsToSingleColumn(o):o,n=this.context.isMobileLayout?{}:r,{rows:l,rowOrder:a}=this.normalizeRowsWithOrder(i,this.props.rowOrder),c=this.orderSizesByRowOrder(n,a);if(this.context.flowSettingsEnabled)return{rows:l,sizes:c};const u=((t=this.subModels)==null?void 0:t.items)||[];if(!u.length)return{rows:i,sizes:n};const d=new Map(u.map(h=>[h.uid,h])),m={},p={};return a.forEach(h=>{const g=l[h],f=c[h]||[],_=[],v=[];g.forEach((b,C)=>{b=b.filter(y=>{var F;return y===import_flow_engine.EMPTY_COLUMN_UID?!1:((F=d.get(y))==null?void 0:F.hidden)!==!0}),b.some(y=>{if(y===import_flow_engine.EMPTY_COLUMN_UID)return!1;const F=d.get(y);return!F||!F.hidden})&&(_.push(b),v.push(f[C]))}),_.length>0&&(m[h]=_,v.length>0&&(p[h]=v))}),{rows:m,sizes:p}}render(){const{rows:t,sizes:o}=this.getVisibleLayout(),r=Object.keys(t||{}).length>0;return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[r&&(0,import_jsx_runtime.jsx)(import_antd.Space,{ref:this.gridContainerRef,direction:"vertical",style:{width:"100%",marginBottom:this.props.rowGap},size:this.props.rowGap,children:(0,import_jsx_runtime.jsx)(import_flow_engine.DndProvider,{onDragStart:this.handleDragStart.bind(this),onDragMove:this.handleDragMove.bind(this),onDragEnd:this.handleDragEnd.bind(this),onDragCancel:this.handleDragCancel.bind(this),children:(0,import_jsx_runtime.jsx)(Grid,{rowGap:this.props.rowGap,colGap:this.props.colGap,rows:t,sizes:o,dragOverlayRect:this.props.dragOverlayRect,renderItem:i=>{var n,l,a,c,u,d;const m=this.flowEngine.getModel(i);if(!m)return this.itemFallback;const p=this.context.fieldKey,h=this.context.fieldIndex,g=this.context.getPropertyOptions("item"),f=(l=(n=this.context).getPropertyOptions)==null?void 0:l.call(n,"record"),_=(c=(a=this.context).getPropertyOptions)==null?void 0:c.call(a,"currentObject"),v=h==null?m:(()=>{const b=m.createFork({},`${p}:${i}`);b.context.defineProperty("fieldIndex",{get:()=>h}),b.context.defineProperty("fieldKey",{get:()=>p}),b.context.defineProperty("record",{get:()=>this.context.record,cache:!1,meta:f==null?void 0:f.meta,resolveOnServer:f==null?void 0:f.resolveOnServer,serverOnlyWhenContextParams:f==null?void 0:f.serverOnlyWhenContextParams}),b.context.defineProperty("currentObject",{get:()=>this.context.currentObject,cache:!1,resolveOnServer:_==null?void 0:_.resolveOnServer,serverOnlyWhenContextParams:_==null?void 0:_.serverOnlyWhenContextParams});const C=g||{},y=te(C,["value"]);return b.context.defineProperty("item",A(x({},y),{get:()=>this.context.item,cache:!1})),b})();return(0,import_jsx_runtime.jsx)(import_flow_engine.Droppable,{model:v,children:(0,import_jsx_runtime.jsx)(import_flow_engine.MemoFlowModelRenderer,{model:v,fallback:m.skeleton||this.itemFallback,showFlowSettings:this.context.flowSettingsEnabled?this.getItemFlowSettings():!1,showErrorFallback:!0,settingsMenuLevel:(u=v==null?void 0:v.settingsMenuLevel)!=null?u:this.itemSettingsMenuLevel,showTitle:!0,extraToolbarItems:this.itemExtraToolbarItems},`${v.uid}:${p}:${(v==null?void 0:v.use)||((d=v==null?void 0:v.constructor)==null?void 0:d.name)||"m"}`)})}})})}),this.context.flowSettingsEnabled&&(0,import_jsx_runtime.jsx)("div",{style:{marginBottom:16},children:this.renderAddSubModelButton()})]})}}GridModel.registerFlow({key:GRID_FLOW_KEY,steps:{resetRows:{handler(e){e.model.resetRows()}},grid:{uiSchema:{rows:{title:(0,import_flow_engine.tExpr)("Rows"),"x-decorator":"FormItem","x-component":JsonEditor,"x-component-props":{autoSize:{minRows:10,maxRows:20},description:(0,import_flow_engine.tExpr)("Configure the rows and columns of the grid.")}},sizes:{title:(0,import_flow_engine.tExpr)("Sizes"),"x-decorator":"FormItem","x-component":JsonEditor,"x-component-props":{rows:5},description:(0,import_flow_engine.tExpr)("Configure the sizes of each row. The value is an array of numbers representing the width of each column in the row.")}},handler(e,t){return L(this,null,function*(){const o=e.model.mergeRowsWithItems(t.rows||{}),{rows:r,rowOrder:i}=e.model.normalizeRowsWithOrder(o,t.rowOrder),n=e.model.orderSizesByRowOrder(t.sizes||{},i);e.model.setProps("rows",r),e.model.setProps("sizes",n),e.model.setProps("rowOrder",i)})}}}});function transformRowsToSingleColumn(e,t){var o;const r=(o=t==null?void 0:t.emptyColumnUid)!=null?o:import_flow_engine.EMPTY_COLUMN_UID,i={};return Object.keys(e).forEach(n=>{e[n].forEach(l=>{const a=l.filter(c=>c!==r);a.length>0&&(i[(0,import_shared.uid)()]=[a])})}),i}function recalculateGridSizes({position:e,direction:t,resizeDistance:o,prevMoveDistance:r,oldSizes:i,oldRows:n,gridContainerWidth:l,gutter:a=16,columnCount:c=24}){var u;const d=import_lodash.default.cloneDeep(n),m=import_lodash.default.cloneDeep(i),p=m[e.rowId]||[],h=a*(p.length-1);let g=Math.floor(o/(l-h)*c);if(g===r)return{newRows:d,newSizes:m,moveDistance:g};m[u=e.rowId]!=null||(m[u]=[c]);const f=m[e.rowId];let _=g-r;const v=t==="left"&&e.columnIndex>0,b=t==="right"&&e.columnIndex<f.length-1;if(!v&&!b&&_>0){const C=f.reduce((F,S)=>F+S,0),y=c-C;if(y<=0)return{newRows:d,newSizes:m,moveDistance:r};_>y&&(g=r+y,_=y)}if(m[e.rowId][e.columnIndex]+=_,t==="left"&&e.columnIndex>0&&(m[e.rowId][e.columnIndex-1]-=_,m[e.rowId][e.columnIndex-1]===0&&removeEmptyColumnFromRow({rows:d,sizes:m,position:e,direction:"left"})),t==="left"&&e.columnIndex===0){const C=m[e.rowId].slice(1).reduce((y,F)=>y+F,0);m[e.rowId][0]<c-C&&addEmptyColumnToRow({rows:d,sizes:m,position:e,direction:"left"})}if(t==="right"&&e.columnIndex<m[e.rowId].length-1&&(m[e.rowId][e.columnIndex+1]-=_,m[e.rowId][e.columnIndex+1]===0&&removeEmptyColumnFromRow({rows:d,sizes:m,position:e,direction:"right"})),t==="right"&&e.columnIndex===m[e.rowId].length-1){const C=m[e.rowId].slice(0,-1).reduce((y,F)=>y+F,0);m[e.rowId][e.columnIndex]<c-C&&addEmptyColumnToRow({rows:d,sizes:m,position:e,direction:"right"})}return{newRows:d,newSizes:m,moveDistance:g}}function addEmptyColumnToRow({rows:e,sizes:t,position:o,direction:r}){const i=e[o.rowId]||[],n=t[o.rowId]||[];if(r==="left"){const l=i[o.columnIndex-1];if(l!=null&&l.includes(import_flow_engine.EMPTY_COLUMN_UID))return;i.splice(o.columnIndex,0,[import_flow_engine.EMPTY_COLUMN_UID]),n.splice(o.columnIndex,0,1)}if(r==="right"){const l=i[o.columnIndex+1];if(l!=null&&l.includes(import_flow_engine.EMPTY_COLUMN_UID))return;i.splice(o.columnIndex+1,0,[import_flow_engine.EMPTY_COLUMN_UID]),n.splice(o.columnIndex+1,0,1)}}function removeEmptyColumnFromRow({rows:e,sizes:t,position:o,direction:r}){const i=e[o.rowId]||[],n=t[o.rowId]||[];if(r==="left"){const l=i[o.columnIndex-1];if(!(l!=null&&l.includes(import_flow_engine.EMPTY_COLUMN_UID)))return;i.splice(o.columnIndex-1,1),n.splice(o.columnIndex-1,1)}if(r==="right"){const l=i[o.columnIndex+1];if(!(l!=null&&l.includes(import_flow_engine.EMPTY_COLUMN_UID)))return;i.splice(o.columnIndex+1,1),n.splice(o.columnIndex+1,1)}}class BlockGridModel extends GridModel{constructor(){super(...arguments),R(this,"dragOverlayConfig",{columnInsert:{before:{offsetTop:-24},after:{offsetTop:24}},columnEdge:{left:{offsetLeft:-5},right:{offsetLeft:6}}})}onInit(t){super.onInit(t),this.context.defineProperty("blockGridModel",{value:this}),this.context.defineProperty("filterManager",{once:!0,get:()=>new FilterManager(this,t.filterManager)})}get subModelBaseClasses(){var t,o;const r=(o=(t=this.context.view)==null?void 0:t.inputArgs)!=null?o:{};return r.collectionName&&!r.filterByTk?["DataBlockModel","FilterBlockModel","BlockModel"]:["DataBlockModel","FilterBlockModel","BlockModel"]}get filterManager(){return this.context.filterManager}serialize(){const t=super.serialize();return t.filterManager=this.filterManager.getFilterConfigs(),t}renderAddSubModelButton(){return(0,import_jsx_runtime.jsx)(import_flow_engine.AddSubModelButton,{model:this,subModelKey:"items",subModelBaseClasses:this.subModelBaseClasses,children:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowSettingsButton,{icon:(0,import_jsx_runtime.jsx)(import_icons.PlusOutlined,{}),"data-flow-add-block":!0,children:this.context.t("Add block")})})}render(){return(0,import_jsx_runtime.jsx)("div",{className:"nb-block-grid",style:this.context.disableBlockGridPadding?null:{padding:this.context.isMobileLayout?8:this.context.themeToken.marginBlock,paddingBottom:0},children:super.render()})}}BlockGridModel.registerFlow({key:"blockGridSettings",steps:{grid:{handler(e,t){e.model.setProps("rowGap",e.isMobileLayout?12:e.themeToken.marginBlock),e.model.setProps("colGap",e.themeToken.marginBlock)}}}});const parseMarkdown=import_lodash.default.memoize(e=>L(void 0,null,function*(){return e&&(yield Promise.resolve().then(()=>require("./md-oH2RssNY-IQIU5F3r.js"))).default.render(e)}));function useParseMarkdown(e){const[t,o]=(0,import_react2.useState)(""),[r,i]=(0,import_react2.useState)(!0);return(0,import_react2.useEffect)(()=>{i(!0),parseMarkdown(e).then(n=>{o(n),i(!1)}).catch(n=>console.log(n))},[e]),{html:t,loading:r}}function convertToText$1(e){const t=e;let o=document.createElement("div");o.innerHTML=t;const r=o.innerText;return o=null,(r==null?void 0:r.replace(/[\n\r]/g,""))||""}const useMarkdownStyles=()=>{const{token:e}=import_antd.theme.useToken(),{isDarkTheme:t}=useGlobalTheme(),o=new import_tinycolor.TinyColor(e.colorFillAlter).onBackground(e.colorBgContainer).toHexShortString(),r={lineHeight:"inherit","&.nb-markdown-default":{"pre code.hljs":{display:"block",overflowX:"auto",padding:"1em"},"code.hljs":{padding:"3px 5px"},":not(pre) code":{padding:"2px 5px",color:"#d56161",background:e.colorFillQuaternary,border:`1px solid ${e.colorBorder}`,borderRadius:e.borderRadiusSM},blockquote:{borderLeft:"4px solid #ccc",paddingLeft:"20px",marginLeft:"0",color:"#666",fontStyle:"italic"},img:{maxWidth:"100%"},".hljs":{background:"#f8f8f8",color:"#444"},".hljs-comment":{color:"#697070"},".hljs-punctuation,.hljs-tag":{color:"#444a"},".hljs-tag .hljs-attr,.hljs-tag .hljs-name":{color:"#444"},".hljs-attribute,.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-name,.hljs-selector-tag":{fontWeight:700},".hljs-deletion,.hljs-number,.hljs-quote,.hljs-selector-class,.hljs-selector-id,.hljs-string,.hljs-template-tag,.hljs-type":{color:"#800"},".hljs-section,.hljs-title":{color:"#800",fontWeight:700},".hljs-link,.hljs-operator,.hljs-regexp,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-symbol,.hljs-template-variable,.hljs-variable":{color:"#ab5656"},".hljs-literal":{color:"#695"},".hljs-addition,.hljs-built_in,.hljs-bullet,.hljs-code":{color:"#397300"},".hljs-meta":{color:"#1f7199"},".hljs-meta .hljs-string":{color:"#38a"},".hljs-emphasis":{fontStyle:"italic"},".hljs-strong":{fontWeight:700}},"&.nb-markdown-table":{table:{borderCollapse:"collapse",width:"100%",fontFamily:"Arial, sans-serif",marginBottom:"1.5rem"},"th, td":{borderBottom:`1px solid ${e.colorBorderSecondary}`,padding:`${e.paddingContentVertical}px ${e.paddingContentHorizontal}px`,textAlign:"left"},th:{backgroundColor:o,fontWeight:"bold",color:e.colorText},"tr:hover":{backgroundColor:e.colorFillTertiary},"tr:last-child td":{borderBottom:"none"},"tr:first-child th":{borderTop:"none"}}},i={"&.nb-markdown-default":{"pre code.hljs":{display:"block",overflowX:"auto",padding:"1em"},"code.hljs":{padding:"3px 5px"},":not(pre) code":{padding:"2px 5px",color:"#d56161",background:e.colorFillQuaternary,border:`1px solid ${e.colorBorder}`,borderRadius:e.borderRadiusSM},".hljs":{color:"#adbac7",background:"#22272e"},".hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_":{color:"#f47067"},".hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_":{color:"#dcbdfb"},".hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable":{color:"#6cb6ff"},".hljs-meta .hljs-string,.hljs-regexp,.hljs-string":{color:"#96d0ff"},".hljs-built_in,.hljs-symbol":{color:"#f69d50"},".hljs-code,.hljs-comment,.hljs-formula":{color:"#768390"},".hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag":{color:"#8ddb8c"},".hljs-subst":{color:"#adbac7"},".hljs-section":{color:"#316dca",fontWeight:700},".hljs-bullet":{color:"#eac55f"},".hljs-emphasis":{color:"#adbac7",fontStyle:"italic"},".hljs-strong":{color:"#adbac7",fontWeight:700},".hljs-addition":{color:"#b4f1b4",backgroundColor:"#1b4721"},".hljs-deletion":{color:"#ffd8d3",backgroundColor:"#78191b"}},"&.nb-markdown-table":{table:{borderCollapse:"collapse",width:"100%",fontFamily:"Arial, sans-serif",marginBottom:"1.5rem"},"th, td":{borderBottom:`1px solid ${e.colorBorderSecondary}`,padding:`${e.paddingContentVertical}px ${e.paddingContentHorizontal}px`,textAlign:"left"},th:{backgroundColor:o,fontWeight:"bold",color:e.colorText},"tr:hover":{backgroundColor:e.colorFillTertiary},"tr:last-child td":{borderBottom:"none"},"tr:first-child th":{borderTop:"none"}}};return(0,import_css.css)(x({lineHeight:e.lineHeight,"& > *:last-child":{marginBottom:"0"},".ant-description-textarea, .ant-description-input":{lineHeight:e.lineHeight},".field-interface-datetime":{minWidth:"100px"},img:{maxWidth:"100%"}},t?i:r))},DisplayMarkdown=e=>{const{textOnly:t,overflowMode:o,style:r}=e,i=useMarkdownStyles(),{html:n=""}=useParseMarkdown(e.value),l=convertToText$1(n),a=o==="ellipsis",c=(0,import_react2.useRef)(null),[u,d]=(0,import_react2.useState)(!1);(0,import_react2.useEffect)(()=>{if(c.current){const h=c.current,g=h.scrollWidth>h.clientWidth||h.scrollHeight>h.clientHeight;d(g)}},[n,r,o]);const m=x(x({},r||{}),a?{display:"-webkit-box",WebkitLineClamp:1,WebkitBoxOrient:"vertical",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"normal",wordBreak:"break-word",cursor:"default"}:{}),p=(0,import_jsx_runtime.jsx)("div",{ref:c,className:`${i} nb-markdown`,dangerouslySetInnerHTML:{__html:t?l:n},style:m});return a&&u?(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:(0,import_jsx_runtime.jsx)("div",{dangerouslySetInnerHTML:{__html:n},style:{maxHeight:500,overflowY:"auto",padding:10,color:"#000"}}),overlayInnerStyle:{background:"#fff",color:"#000",boxShadow:"0 2px 8px rgba(0,0,0,0.15)"},color:"#fff",children:p}):p},getRootElement=e=>e&&(e.closest(".nb-block-grid")||e.closest(".nb-page-wrapper")||e.closest(".nb-page"))||document.documentElement,getOuterHeight$2=e=>{if(!e)return 0;const t=e.getBoundingClientRect(),o=window.getComputedStyle(e),r=parseFloat(o.marginTop)||0,i=parseFloat(o.marginBottom)||0;return t.height+r+i},getPadding=e=>{if(!e||e===document.documentElement)return{top:0,bottom:0};const t=window.getComputedStyle(e);return{top:parseFloat(t.paddingTop)||0,bottom:parseFloat(t.paddingBottom)||0}},getPageHeader=e=>{const t=e.closest(".nb-page");return t?t.querySelector(".ant-page-header")||t.querySelector(".pageHeaderCss"):null},getAddBlockContainer=e=>{const t=e.querySelector("[data-flow-add-block]");return t?t.parentElement||t:null};function getValidPageTop(e,t){return e>0?e:t}const useBlockHeight$1=({height:e,heightMode:t,cardRef:o})=>{const[r,i]=(0,import_react2.useState)(),n=(0,import_flow_engine.useFlowContext)(),l=(0,import_react2.useCallback)(()=>{if(t!=="fullHeight"||typeof window>"u"){i(v=>v===void 0?v:void 0);return}const a=o.current;if(!a)return;const c=getRootElement(a),u=a.getBoundingClientRect(),d=c===document.documentElement?{top:0}:c.getBoundingClientRect(),m=getPadding(c),p=getAddBlockContainer(c),h=d.top+m.top,g=Math.min(Math.max(0,u.top-h),0);let f=m.bottom+n.themeToken.marginBlock;p&&(f=n.themeToken.marginBlock+getOuterHeight$2(p)+m.bottom);const _=Math.max(0,Math.floor(window.innerHeight-getValidPageTop(h,110)-g-f));i(v=>v===_?v:_)},[t,o]);return(0,import_react2.useLayoutEffect)(()=>{l()},[l]),(0,import_react2.useEffect)(()=>{if(t!=="fullHeight"||typeof window>"u")return;const a=o.current;if(!a||typeof ResizeObserver>"u")return;const c=getRootElement(a),u=getPageHeader(c),d=getAddBlockContainer(c),m=new ResizeObserver(()=>l());return m.observe(a),c instanceof HTMLElement&&m.observe(c),u&&m.observe(u),d&&m.observe(d),window.addEventListener("resize",l),()=>{m.disconnect(),window.removeEventListener("resize",l)}},[t,o,l]),t==="specifyValue"?e:t==="fullHeight"?r:null},BlockItemCard=import_react2.default.forwardRef((e,t)=>{(0,import_react_i18next.useTranslation)();const{token:o}=import_antd.theme.useToken(),r=e,{title:i,description:n,children:l,className:a,heightMode:c}=r,u=te(r,["title","description","children","className","heightMode"]),d=(0,import_react2.useRef)(null),m=(0,import_react2.useCallback)(g=>{d.current=g,typeof t=="function"?t(g):t&&(t.current=g)},[t]),p=useBlockHeight$1(A(x({},e),{cardRef:d})),h=(i||n)&&(0,import_jsx_runtime.jsxs)("div",{children:[(0,import_jsx_runtime.jsxs)("span",{children:[" ",i]}),n&&(0,import_jsx_runtime.jsx)(DisplayMarkdown,{value:n,style:{overflowWrap:"break-word",whiteSpace:"normal",fontWeight:400,color:o.colorTextDescription,borderRadius:"4px"}})]});return(0,import_jsx_runtime.jsxs)(import_antd.Card,A(x({ref:m,title:h,style:{display:"flex",flexDirection:"column",height:p},styles:{body:{flex:1,display:"flex",flexDirection:"column",overflow:"auto"},header:{marginTop:"8px"}},className:a},u),{children:[e.beforeContent,l,e.afterContent]}))}),getContentWidth$1=e=>{if(e){const t=document.createRange();return t.selectNodeContents(e),t.getBoundingClientRect().width}},ellipsisDefaultStyle={overflow:"hidden",overflowWrap:"break-word",textOverflow:"ellipsis",whiteSpace:"nowrap",wordBreak:"break-all"},wrappingDefaultStyle={overflowWrap:"break-word",whiteSpace:"normal",wordBreak:"break-word"},isOverflowTooltip=e=>{if(!e)return!1;const t=getContentWidth$1(e),o=e.offsetWidth;return t>o},popoverStyle={maxWidth:600,overflow:"auto",maxHeight:400},EllipsisWithTooltip=(0,import_react2.forwardRef)((e,t)=>{const[o,r]=(0,import_react2.useState)(!1),[i,n]=(0,import_react2.useState)(!1),l=(0,import_react2.useRef)();(0,import_react2.useImperativeHandle)(t,()=>({setPopoverVisible:n}),[]);const a=(0,import_react2.useCallback)(u=>{const d=u.target;isOverflowTooltip(l.current)&&r(d.scrollWidth>=d.clientWidth)},[]),c=(0,import_react2.useMemo)(()=>{const u=e.ellipsis?{onMouseEnter:a}:{};return(0,import_jsx_runtime.jsx)("div",A(x({ref:l,role:e.role,style:e.ellipsis?ellipsisDefaultStyle:wrappingDefaultStyle},u),{children:e.children}))},[a,e.children,e.ellipsis,e.role]);return!e.ellipsis||!o?c:(0,import_jsx_runtime.jsx)(import_antd.Popover,{open:o&&i,onOpenChange:u=>{n(o&&u)},content:(0,import_jsx_runtime.jsx)("div",{style:popoverStyle,children:e.popoverContent||e.children}),children:c})});EllipsisWithTooltip.displayName="EllipsisWithTooltip";const date=(0,import_dayjs.default)(),spaceCSS=import_css.css`
1763
1763
  width: 100%;
1764
1764
  & > .ant-space-item {
1765
1765
  flex: 1;
1766
1766
  }
1767
1767
  `,DateFormatCom=e=>{const t=(0,import_dayjs.default)();return(0,import_jsx_runtime.jsxs)("div",{style:{display:"inline-flex"},children:[(0,import_jsx_runtime.jsx)("span",{children:e.format}),(0,import_jsx_runtime.jsx)(DateTimeFormatPreview,{content:t.format(e.format)})]})},DateTimeFormatPreview=({content:e})=>{const{token:t}=import_antd.theme.useToken();return(0,import_jsx_runtime.jsx)("span",{style:{display:"inline-block",background:t.colorBgTextHover,marginLeft:t.marginMD,lineHeight:"1",padding:t.paddingXXS,borderRadius:t.borderRadiusOuter},children:e})},InternalExpiresRadio=e=>{const{onChange:t,defaultValue:o,formats:r,picker:i}=e,[n,{setFalse:l,setTrue:a}]=(0,import_ahooks.useBoolean)(e.value&&!r.includes(e.value)),[c,u]=(0,import_react2.useState)(e.value&&!r.includes(e.value)?e.value:o),[d,m]=(0,import_react2.useState)(c?date.format(c):null),p=h=>{h.target.value==="custom"?(a(),t(c)):(l(),t(h.target.value))};return(0,import_react2.useEffect)(()=>{r.includes(e.value)?l():a(),u(e.value&&!r.includes(e.value)?e.value:o)},[e.value]),(0,import_react2.useEffect)(()=>{m(c?date.format(c):null)},[c]),(0,import_jsx_runtime.jsx)(import_antd.Space,{className:spaceCSS,children:(0,import_jsx_runtime.jsx)(import_antd.Radio.Group,{value:n?"custom":e.value,onChange:p,children:(0,import_jsx_runtime.jsx)(import_antd.Space,{direction:"vertical",children:e.options.map(h=>{if(h.value==="custom")return(0,import_jsx_runtime.jsxs)(import_antd.Radio,{value:h.value,children:[(0,import_jsx_runtime.jsx)(import_antd.Input,{style:{width:"150px"},value:c,onChange:g=>{g.target.value?m(date.format(g.target.value)):m(null),n&&t(g.target.value),u(g.target.value)}}),(0,import_jsx_runtime.jsx)(DateTimeFormatPreview,{content:d})]},h.value);if(!i||i==="date")return(0,import_jsx_runtime.jsx)(import_antd.Radio,{value:h.value,"aria-label":h.value,children:(0,import_jsx_runtime.jsx)("span",{role:"button","aria-label":h.value,children:h.label})},h.value)})})})})},ExpiresRadio=(0,import_react.connect)(InternalExpiresRadio,(0,import_react.mapProps)({dataSource:"options"},e=>x({},e))),BlockPlaceholder=()=>{const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_flow_engine.useFlowModel)(),o=t.context.blockModel.collection,r=o.dataSource,i=(0,import_react2.useMemo)(()=>{const a=`${e(r.displayName||r.key)} > `,c=o?`${e(o.title)||o.name||o.tableName} `:"";return`${a}${c}`},[]),{actionName:n}=t.forbidden,l=(0,import_react2.useMemo)(()=>e(`The current user only has the UI configuration permission, but don't have "{{actionName}}" permission for collection "{{name}}"`,{name:i,actionName:e(import_lodash.default.capitalize(n))}).replaceAll("&gt;",">"),[n,i,e]);return(0,import_jsx_runtime.jsx)(BlockItemCard,{children:(0,import_jsx_runtime.jsx)(import_antd.Result,{status:"403",subTitle:l})})};function BlockDeletePlaceholder(){const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_flow_engine.useFlowModel)(),o=t.dataSource,r=(0,import_react2.useMemo)(()=>{const n=`${e(o.displayName||o.key)} > `,l=t.resource.resourceName;return`${n}${l}`},[]),i=(0,import_react2.useMemo)(()=>e('The {{type}} "{{name}}" may have been deleted. Please remove this {{blockType}}.',{type:e("Collection"),name:r,blockType:e("Block")}).replaceAll("&gt;",">"),[r,e]);return(0,import_jsx_runtime.jsx)(BlockItemCard,{children:(0,import_jsx_runtime.jsx)(import_antd.Result,{status:"404",subTitle:i})})}const BlockSceneEnum={new:"new",one:"one",many:"many",select:"select",filter:"filter",oam:["one","many"],subForm:"subForm",bulkEditForm:"bulkEditForm"};class BlockModel extends import_flow_engine.FlowModel{constructor(){super(...arguments),R(this,"decoratorProps",(0,import_reactive.observable)({})),R(this,"_defaultCustomModelClasses",{}),R(this,"customModelClasses",{}),R(this,"collectionRequired",!1),R(this,"ObservedRenderComponent",null),R(this,"activeFilterSources",new Map)}setFilterActive(t,o){this.activeFilterSources.set(t,o)}hasActiveFilters(){const t=this.resource;if(t&&t.filter&&Object.keys(t.filter).length>0)return!0;for(const[,o]of this.activeFilterSources)if(o)return!0;return!1}removeFilterSource(t){this.activeFilterSources.delete(t)}getDataLoadingMode(){var t;return((t=this.getStepParams("dataLoadingModeSettings"))==null?void 0:t.mode)||"auto"}static _getScene(){return import_lodash.default.castArray(this.scene||[])}static _isScene(t){return this._getScene().includes(t)}getModelClassName(t){return Object.keys(this.customModelClasses).includes(t)?this.customModelClasses[t]:this._defaultCustomModelClasses[t]||t}renderHiddenInConfig(){return this.forbidden?(0,import_jsx_runtime.jsx)(BlockPlaceholder,{}):(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:this.context.t("The block is hidden and only visible when the UI Editor is active"),children:(0,import_jsx_runtime.jsx)(BlockItemCard,A(x({ref:this.context.ref},this.decoratorProps),{style:{opacity:"0.3"},children:(0,import_jsx_runtime.jsx)(this.ObservedRenderComponent,{})}))})}onInit(t){super.onInit(t),this.context.defineProperty("blockModel",{value:this}),this.context.defineMethod("getModelClassName",o=>this.getModelClassName(o)),this.ObservedRenderComponent=(0,import_flow_engine.observer)(()=>this.renderComponent(),{displayName:"ObservedRenderComponent"})}setDecoratorProps(t){Object.assign(this.decoratorProps,t)}get title(){return this._title||(this._title=this.defaultBlockTitle()),this._title}defaultBlockTitle(){var t;return`${this.translate(((t=this.constructor.meta)==null?void 0:t.label)||this.constructor.name)}`}renderComponent(){throw new Error("renderComponent method must be implemented in subclasses of BlockModel")}render(){return this.collectionRequired&&!this.context.collection?(0,import_jsx_runtime.jsx)(BlockDeletePlaceholder,{}):(0,import_jsx_runtime.jsx)(BlockItemCard,A(x({ref:this.context.ref},this.decoratorProps),{children:(0,import_jsx_runtime.jsx)(this.ObservedRenderComponent,{})}))}}R(BlockModel,"scene");BlockModel.registerFlow({key:"cardSettings",title:(0,import_flow_engine.tExpr)("Card settings"),steps:{titleDescription:{title:(0,import_flow_engine.tExpr)("Title & description"),uiSchema:{title:{"x-component":"Input","x-decorator":"FormItem",title:(0,import_flow_engine.tExpr)("Title")},description:{"x-component":"Input.TextArea","x-decorator":"FormItem",title:(0,import_flow_engine.tExpr)("Description")}},handler(e,t){const o=e.t(t.title,{ns:"lm-flow-engine"}),r=e.t(t.description,{ns:"lm-flow-engine"});e.model.setDecoratorProps({title:o,description:r})}},linkageRules:{use:"blockLinkageRules"},blockHeight:{use:"blockHeight"}}});BlockModel.define({hide:!0,label:(0,import_flow_engine.tExpr)("Other blocks")});import_flow_engine.FlowModel.registerEvents({beforeRender:{title:(0,import_flow_engine.tExpr)("Before render"),name:"beforeRender",uiSchema:{condition:{type:"object",title:(0,import_flow_engine.tExpr)("Trigger condition"),"x-decorator":"FormItem","x-component":ConditionBuilder}},handler:commonConditionHandler}});class CollectionActionModel extends ActionModel{}CollectionActionModel.define({children:e=>L(void 0,null,function*(){return(yield(0,import_flow_engine.buildSubModelItems)(ActionModel)(e)).filter(t=>e.engine.getModelClass(t.useModel)._isScene(ActionSceneEnum.collection))})});function createDefaultCollectionBlockTitle(e){const{blockLabel:t,dsName:o,dsCount:r,collectionTitle:i,sourceCollectionTitle:n,associationTitle:l}=e,a=r>1&&!!o;let c=i;if(n&&l){const u=`${n} > ${l} (${i})`;c=`${a?`${o} > `:""}${u}`}else c=`${a?`${o} > `:""}${i}`;return`
1768
1768
  ${t}:
1769
- ${c}`}class DataBlockModel extends BlockModel{}DataBlockModel.define({hide:!0,label:(0,import_flow_engine.tExpr)("Data blocks"),children(e){return L(this,null,function*(){const t=yield(0,import_flow_engine.buildSubModelItems)(DataBlockModel)(e),{collectionName:o,filterByTk:r,scene:i}=e.view.inputArgs;return t.filter(n=>{var l,a,c,u,d,m,p;const h=e.engine.getModelClass(n.useModel);return i==="select"?(l=h._isScene)==null?void 0:l.call(h,"select"):i==="subForm"?(a=h._isScene)==null?void 0:a.call(h,"subForm"):i==="bulkEditForm"?(c=h._isScene)==null?void 0:c.call(h,"bulkEditForm"):i==="new"||o&&!r?(u=h._isScene)==null?void 0:u.call(h,"new"):!h._isScene||!((d=h._isScene)!=null&&d.call(h,"select"))&&!((m=h._isScene)!=null&&m.call(h,"subForm"))&&!((p=h._isScene)!=null&&p.call(h,"bulkEditForm"))})})}});class CollectionBlockModel extends DataBlockModel{constructor(){super(...arguments),R(this,"isManualRefresh",!1),R(this,"collectionRequired",!0),R(this,"previousBeforeRenderHash"),R(this,"lastSeenDirtyVersion",null),R(this,"dirtyRefreshing",!1)}onMount(){super.onMount(),this.previousBeforeRenderHash=this.context.location.search}getDirtyTrackingVersion(t,o,r,i){var n;const l=new Set,a=((n=r==null?void 0:r.getResourceName)==null?void 0:n.call(r))||i.associationName||i.collectionName;a&&l.add(String(a)),i.associationName&&l.add(String(i.associationName)),i.collectionName&&l.add(String(i.collectionName));let c=0;for(const u of l)c+=t.getDataSourceDirtyVersion(o,u);return c}onActive(t=!1){if(!this.hidden&&this.previousBeforeRenderHash!==this.context.location.search&&(this.rerender(),!t)||this.hidden)return;const o=this.context.resource;if(!o)return;const r=this.getResourceSettingsInitParams(),i=o.getDataSourceKey()||r.dataSourceKey||"main",n=this.context.engine,l=this.getDirtyTrackingVersion(n,i,o,r);if(t){if(this.dirtyRefreshing)return;this.dirtyRefreshing=!0,o.refresh().then(()=>{this.lastSeenDirtyVersion=this.getDirtyTrackingVersion(n,i,o,r)}).catch(()=>{}).finally(()=>{this.dirtyRefreshing=!1});return}this.isManualRefresh||!(this.lastSeenDirtyVersion===null||l!==this.lastSeenDirtyVersion)||this.dirtyRefreshing||(this.dirtyRefreshing=!0,o.refresh().then(()=>{this.lastSeenDirtyVersion=this.getDirtyTrackingVersion(n,i,o,r)}).catch(()=>{}).finally(()=>{this.dirtyRefreshing=!1}))}static filterCollection(t){return!!t.filterTargetKey}static defineChildren(t){return L(this,null,function*(){const o=m=>{var p;if(!((p=this.meta)!=null&&p.createModelOptions))return m||{};if(typeof this.meta.createModelOptions=="function"){const h=this.meta.createModelOptions(t);return import_lodash.default.merge({},h,m)}return import_lodash.default.merge({},this.meta.createModelOptions,m)},r=m=>this.name+m,{dataSourceKey:i,collectionName:n,associationName:l,filterByTk:a}=t.view.inputArgs,c=t.dataSourceManager.getDataSources().map(m=>m.getCollections().length===0?null:{key:r(`ds-${m.key}`),label:m.displayName,searchable:!0,searchPlaceholder:(0,import_flow_engine.tExpr)("Search"),children:p=>m.getCollections().map(h=>{if(!this.filterCollection(h))return null;const g={dataSourceKey:h.dataSourceKey,collectionName:h.name};return{key:r(`ds-${m.key}.${h.name}`),label:h.title,useModel:this.name,createModelOptions:o({stepParams:{resourceSettings:{init:g}}})}}).filter(Boolean)}).filter(Boolean),u=m=>c.length===1?c[0].children(m):c;if(!n)return u(t);if(this._isScene("select")){const m={dataSourceKey:i,collectionName:n};return l&&(m.associationName=l,m.sourceId="{{ctx.view.inputArgs.sourceId}}"),[{key:r("current-collection"),label:"Current collection",useModel:this.name,createModelOptions:o({stepParams:{resourceSettings:{init:m}}})},{key:r("others-collections"),label:"Other collections",children:u(t)}]}if(this._isScene("new")){const m={dataSourceKey:i,collectionName:n};l&&(m.associationName=l,m.sourceId="{{ctx.view.inputArgs.sourceId}}");const p=[{key:r("current-collection"),label:"Current collection",useModel:this.name,createModelOptions:o({stepParams:{resourceSettings:{init:m}}})}];return typeof a<"u"&&a!==null&&p.push({key:r("associated"),label:"Associated records",children:()=>t.dataSourceManager.getCollection(i,n).getAssociationFields(this._getScene()).map(h=>{if(!h.targetCollection||h.type==="belongsToArray"||!this.filterCollection(h.targetCollection))return null;let g=`{{ctx.popup.record.${h.sourceKey||h.collection.filterTargetKey}}}`;h.sourceKey===h.collection.filterTargetKey&&(g="{{ctx.view.inputArgs.filterByTk}}");const f={dataSourceKey:i,collectionName:h.target,associationName:h.resourceName,sourceId:g};return{key:r(`associated-${h.name}`),label:h.title,useModel:this.name,createModelOptions:o({stepParams:{resourceSettings:{init:f}}})}}).filter(Boolean)}),p.push({key:r("others-collections"),label:"Other collections",children:u(t)}),p}const d=[{key:r("associated"),label:"Associated records",children:()=>t.dataSourceManager.getCollection(i,n).getAssociationFields(this._getScene()).map(m=>{if(!m.targetCollection||m.type==="belongsToArray"||!this.filterCollection(m.targetCollection))return null;let p=`{{ctx.popup.record.${m.sourceKey||m.collection.filterTargetKey}}}`;m.sourceKey===m.collection.filterTargetKey&&(p="{{ctx.view.inputArgs.filterByTk}}");const h={dataSourceKey:i,collectionName:m.target,associationName:m.resourceName,sourceId:p};return{key:r(`associated-${m.name}`),label:m.title,useModel:this.name,createModelOptions:o({stepParams:{resourceSettings:{init:h}}})}}).filter(Boolean)},{key:r("others-records"),label:"Other records",children:u(t)}];if(this._isScene("one")){const m=t.dataSourceManager.getCollection(i,n);if(!m||!this.filterCollection(m))return d;const p={dataSourceKey:i,collectionName:n,filterByTk:"{{ctx.view.inputArgs.filterByTk}}"};l&&(p.associationName=l,p.sourceId="{{ctx.view.inputArgs.sourceId}}"),d.unshift({key:r("current-record"),label:"Current record",useModel:this.name,createModelOptions:o({stepParams:{resourceSettings:{init:p}}})})}return d})}get dataSource(){return this.context.dataSource}get collection(){return this.context.collection}get resource(){return this.context.resource}get association(){return this.context.association}get associationField(){return this.context.association}getAclActionName(){return"view"}getFilterFields(){return L(this,null,function*(){return this.collection.getFields().filter(t=>t.filterable)})}getResourceSettingsInitParams(){return this.getStepParams("resourceSettings","init")}onInit(t){super.onInit(t),this.context.defineProperty("blockModel",{value:this}),this.context.defineProperty("actionName",{get:()=>this.getAclActionName(),cache:!1}),this.context.defineProperty("resourceName",{get:()=>this.resource.getResourceName(),cache:!1}),this.context.defineProperty("dataSource",{get:()=>{const o=this.getResourceSettingsInitParams();return this.context.dataSourceManager.getDataSource(o.dataSourceKey)}}),this.context.defineProperty("collection",{get:()=>{const o=this.getResourceSettingsInitParams();return this.context.dataSourceManager.getCollection(o.dataSourceKey,o.collectionName)}}),this.context.defineProperty("resource",{get:()=>{const o=this.getResourceSettingsInitParams(),r=this.createResource(this.context,o);r.setDataSourceKey(o.dataSourceKey),r.setResourceName(o.associationName||o.collectionName);const i=()=>{var n;const l=this.context.engine;if(!(l!=null&&l.getDataSourceDirtyVersion))return;const a=((n=r.getDataSourceKey)==null?void 0:n.call(r))||o.dataSourceKey||"main";this.lastSeenDirtyVersion=this.getDirtyTrackingVersion(l,a,r,o)};return i(),r.on("refresh",()=>{i(),this.invalidateFlowCache("beforeRender")}),r}}),this.context.defineProperty("association",{get:()=>{const o=this.getResourceSettingsInitParams();if(o.associationName)return this.dataSource.getAssociation(o.associationName)}})}createResource(t,o){throw new Error("createResource method must be implemented in subclasses of CollectionBlockModel")}refresh(){return this.resource?this.resource.refresh():super.refresh()}defaultBlockTitle(){var t,o,r,i,n,l,a;const c=this.translate(((t=this.constructor.meta)==null?void 0:t.label)||this.constructor.name),u=((o=this.dataSource)==null?void 0:o.displayName)||((r=this.dataSource)==null?void 0:r.key),d=((l=(n=(i=this.context)==null?void 0:i.dataSourceManager)==null?void 0:n.getDataSources)==null?void 0:l.call(n).length)||0,m=(a=this.collection)==null?void 0:a.title;if(this.association){const p=this.resource.getResourceName(),h=this.dataSource.getCollection(p.split(".")[0]);return createDefaultCollectionBlockTitle({blockLabel:c,dsName:u,dsCount:d,collectionTitle:m,sourceCollectionTitle:h.title,associationTitle:this.association.title})}return createDefaultCollectionBlockTitle({blockLabel:c,dsName:u,dsCount:d,collectionTitle:m})}addAppends(t,o=!1){var r,i;if(t)if(t.includes(".")){const[n,l]=t.split("."),a=this.context.dataSourceManager.getCollectionField(`${this.collection.dataSourceKey}.${this.collection.name}.${n}`);if(!a)return;const c=a.target;if(!c)return;const u=this.context.dataSourceManager.getCollectionField(`${this.collection.dataSourceKey}.${c}.${l}`);if(u&&u.isAssociationField()){if(this.resource.addAppends(t),((r=u.targetCollection)==null?void 0:r.template)==="tree"){const d=t.includes(".")?t.slice(t.lastIndexOf(".")+1):t;u.name===d&&this.resource.addAppends(`${t}.parent(recursively=true)`)}o&&this.resource.refresh()}}else{if(!this.collection)return;const n=this.context.dataSourceManager.getCollectionField(`${this.collection.dataSourceKey}.${this.collection.name}.${t}`);if(!n)return;n.isAssociationField()&&(this.resource.addAppends(n.name),((i=n.targetCollection)==null?void 0:i.template)==="tree"&&this.resource.addAppends(`${n.name}.parent(recursively=true)`),o&&this.resource.refresh())}}}CollectionBlockModel.registerFlow({key:"resourceSettings",sort:-999,steps:{collectionCheck:{handler(e){e.collection||e.exitAll()}},aclCheck:{use:"aclCheck"},init:{handler(e,t){if(!t.dataSourceKey)throw new Error("dataSourceKey is required");if(!t.collectionName)throw new Error("collectionName is required");Object.keys(t).includes("sourceId")&&e.resource.setSourceId(t.sourceId),Object.keys(t).includes("filterByTk")&&e.resource.setFilterByTk(t.filterByTk)}}}});CollectionBlockModel.registerFlow({key:"refreshSettings",sort:1e4,steps:{refresh:{handler(e){return L(this,null,function*(){const t=e.model,o=e.model.context.filterManager;o&&o.bindToTarget(e.model.uid);const r=t.getDataLoadingMode(),i=t.resource;if(i instanceof import_flow_engine.MultiRecordResource&&r==="manual"&&!t.hasActiveFilters()){i.setData([]),i.setMeta({count:0,hasNext:!1,page:1}),i.loading=!1;return}e.model.isManualRefresh?e.model.resource.loading=!1:yield e.model.resource.refresh()})}}}});CollectionBlockModel.registerFlow({key:"dataLoadingModeSettings",sort:800,title:(0,import_flow_engine.tExpr)("Set data loading mode"),steps:{dataLoadingMode:{use:"dataLoadingMode"}}});CollectionBlockModel.define({hide:!0});class CommonItemModel extends import_flow_engine.FlowModel{}class FieldModel extends import_flow_engine.FlowModel{static resolveUse(t,o,r){var i,n;const l=(n=(i=t==null?void 0:t.stepParams)==null?void 0:i.fieldBinding)==null?void 0:n.use;return l&&l!==(t==null?void 0:t.use)?l:t==null?void 0:t.use}}class FilterBlockModel extends BlockModel{}FilterBlockModel.define({hide:!0,label:"Filter blocks"});const TABS_BASE_ROOT_CLASS_NAME=import_css.css`
1770
- > .ant-tabs-nav .ant-tabs-nav-list {
1771
- padding-inline-start: var(--nb-flow-page-tabs-nav-padding-inline-start, 16px);
1772
- }
1773
- `,TABS_DESIGN_MODE_ROOT_CLASS_NAME=import_css.css`
1769
+ ${c}`}class DataBlockModel extends BlockModel{}DataBlockModel.define({hide:!0,label:(0,import_flow_engine.tExpr)("Data blocks"),children(e){return L(this,null,function*(){const t=yield(0,import_flow_engine.buildSubModelItems)(DataBlockModel)(e),{collectionName:o,filterByTk:r,scene:i}=e.view.inputArgs;return t.filter(n=>{var l,a,c,u,d,m,p;const h=e.engine.getModelClass(n.useModel);return i==="select"?(l=h._isScene)==null?void 0:l.call(h,"select"):i==="subForm"?(a=h._isScene)==null?void 0:a.call(h,"subForm"):i==="bulkEditForm"?(c=h._isScene)==null?void 0:c.call(h,"bulkEditForm"):i==="new"||o&&!r?(u=h._isScene)==null?void 0:u.call(h,"new"):!h._isScene||!((d=h._isScene)!=null&&d.call(h,"select"))&&!((m=h._isScene)!=null&&m.call(h,"subForm"))&&!((p=h._isScene)!=null&&p.call(h,"bulkEditForm"))})})}});class CollectionBlockModel extends DataBlockModel{constructor(){super(...arguments),R(this,"isManualRefresh",!1),R(this,"collectionRequired",!0),R(this,"previousBeforeRenderHash"),R(this,"lastSeenDirtyVersion",null),R(this,"dirtyRefreshing",!1)}onMount(){super.onMount(),this.previousBeforeRenderHash=this.context.location.search}getDirtyTrackingVersion(t,o,r,i){var n;const l=new Set,a=((n=r==null?void 0:r.getResourceName)==null?void 0:n.call(r))||i.associationName||i.collectionName;a&&l.add(String(a)),i.associationName&&l.add(String(i.associationName)),i.collectionName&&l.add(String(i.collectionName));let c=0;for(const u of l)c+=t.getDataSourceDirtyVersion(o,u);return c}onActive(t=!1){if(!this.hidden&&this.previousBeforeRenderHash!==this.context.location.search&&(this.rerender(),!t)||this.hidden)return;const o=this.context.resource;if(!o)return;const r=this.getResourceSettingsInitParams(),i=o.getDataSourceKey()||r.dataSourceKey||"main",n=this.context.engine,l=this.getDirtyTrackingVersion(n,i,o,r);if(t){if(this.dirtyRefreshing)return;this.dirtyRefreshing=!0,o.refresh().then(()=>{this.lastSeenDirtyVersion=this.getDirtyTrackingVersion(n,i,o,r)}).catch(()=>{}).finally(()=>{this.dirtyRefreshing=!1});return}this.isManualRefresh||!(this.lastSeenDirtyVersion===null||l!==this.lastSeenDirtyVersion)||this.dirtyRefreshing||(this.dirtyRefreshing=!0,o.refresh().then(()=>{this.lastSeenDirtyVersion=this.getDirtyTrackingVersion(n,i,o,r)}).catch(()=>{}).finally(()=>{this.dirtyRefreshing=!1}))}static filterCollection(t){return!!t.filterTargetKey}static isCollectionAvailable(t){if(!t)return!1;const o=getBlockCapabilityNamesFromModelClass(this);return areCapabilitiesSupported(t,o)}static defineChildren(t){return L(this,null,function*(){const o=m=>{var p;if(!((p=this.meta)!=null&&p.createModelOptions))return m||{};if(typeof this.meta.createModelOptions=="function"){const h=this.meta.createModelOptions(t);return import_lodash.default.merge({},h,m)}return import_lodash.default.merge({},this.meta.createModelOptions,m)},r=m=>this.name+m,{dataSourceKey:i,collectionName:n,associationName:l,filterByTk:a}=t.view.inputArgs,c=t.dataSourceManager.getDataSources().map(m=>m.getCollections().length===0?null:{key:r(`ds-${m.key}`),label:m.displayName,searchable:!0,searchPlaceholder:(0,import_flow_engine.tExpr)("Search"),children:p=>m.getCollections().map(h=>{if(!this.filterCollection(h)||!this.isCollectionAvailable(h))return null;const g={dataSourceKey:h.dataSourceKey,collectionName:h.name};return{key:r(`ds-${m.key}.${h.name}`),label:h.title,useModel:this.name,createModelOptions:o({stepParams:{resourceSettings:{init:g}}})}}).filter(Boolean)}).filter(Boolean),u=m=>c.length===1?c[0].children(m):c;if(!n)return u(t);if(this._isScene("select")){const m={dataSourceKey:i,collectionName:n};l&&(m.associationName=l,m.sourceId="{{ctx.view.inputArgs.sourceId}}");const p=t.dataSourceManager.getCollection(i,n),h=[];return this.isCollectionAvailable(p)&&h.push({key:r("current-collection"),label:"Current collection",useModel:this.name,createModelOptions:o({stepParams:{resourceSettings:{init:m}}})}),h.push({key:r("others-collections"),label:"Other collections",children:u(t)}),h}if(this._isScene("new")){const m={dataSourceKey:i,collectionName:n};l&&(m.associationName=l,m.sourceId="{{ctx.view.inputArgs.sourceId}}");const p=[],h=t.dataSourceManager.getCollection(i,n);return this.isCollectionAvailable(h)&&p.push({key:r("current-collection"),label:"Current collection",useModel:this.name,createModelOptions:o({stepParams:{resourceSettings:{init:m}}})}),typeof a<"u"&&a!==null&&p.push({key:r("associated"),label:"Associated records",children:()=>t.dataSourceManager.getCollection(i,n).getAssociationFields(this._getScene()).map(g=>{if(!g.targetCollection||g.type==="belongsToArray"||!this.filterCollection(g.targetCollection)||!this.isCollectionAvailable(g.targetCollection))return null;let f=`{{ctx.popup.record.${g.sourceKey||g.collection.filterTargetKey}}}`;g.sourceKey===g.collection.filterTargetKey&&(f="{{ctx.view.inputArgs.filterByTk}}");const _={dataSourceKey:i,collectionName:g.target,associationName:g.resourceName,sourceId:f};return{key:r(`associated-${g.name}`),label:g.title,useModel:this.name,createModelOptions:o({stepParams:{resourceSettings:{init:_}}})}}).filter(Boolean)}),p.push({key:r("others-collections"),label:"Other collections",children:u(t)}),p}const d=[{key:r("associated"),label:"Associated records",children:()=>t.dataSourceManager.getCollection(i,n).getAssociationFields(this._getScene()).map(m=>{if(!m.targetCollection||m.type==="belongsToArray"||!this.filterCollection(m.targetCollection)||!this.isCollectionAvailable(m.targetCollection))return null;let p=`{{ctx.popup.record.${m.sourceKey||m.collection.filterTargetKey}}}`;m.sourceKey===m.collection.filterTargetKey&&(p="{{ctx.view.inputArgs.filterByTk}}");const h={dataSourceKey:i,collectionName:m.target,associationName:m.resourceName,sourceId:p};return{key:r(`associated-${m.name}`),label:m.title,useModel:this.name,createModelOptions:o({stepParams:{resourceSettings:{init:h}}})}}).filter(Boolean)},{key:r("others-records"),label:"Other records",children:u(t)}];if(this._isScene("one")){const m=t.dataSourceManager.getCollection(i,n);if(!m||!this.filterCollection(m)||!this.isCollectionAvailable(m))return d;const p={dataSourceKey:i,collectionName:n,filterByTk:"{{ctx.view.inputArgs.filterByTk}}"};l&&(p.associationName=l,p.sourceId="{{ctx.view.inputArgs.sourceId}}"),d.unshift({key:r("current-record"),label:"Current record",useModel:this.name,createModelOptions:o({stepParams:{resourceSettings:{init:p}}})})}return d})}get dataSource(){return this.context.dataSource}get collection(){return this.context.collection}get resource(){return this.context.resource}get association(){return this.context.association}get associationField(){return this.context.association}getAclActionName(){return"view"}getFilterFields(){return L(this,null,function*(){return this.collection.getFields().filter(t=>t.filterable)})}getResourceSettingsInitParams(){return this.getStepParams("resourceSettings","init")}onInit(t){super.onInit(t),this.context.defineProperty("blockModel",{value:this}),this.context.defineProperty("actionName",{get:()=>this.getAclActionName(),cache:!1}),this.context.defineProperty("resourceName",{get:()=>this.resource.getResourceName(),cache:!1}),this.context.defineProperty("dataSource",{get:()=>{const o=this.getResourceSettingsInitParams();return this.context.dataSourceManager.getDataSource(o.dataSourceKey)}}),this.context.defineProperty("collection",{get:()=>{const o=this.getResourceSettingsInitParams();return this.context.dataSourceManager.getCollection(o.dataSourceKey,o.collectionName)}}),this.context.defineProperty("resource",{get:()=>{const o=this.getResourceSettingsInitParams(),r=this.createResource(this.context,o);r.setDataSourceKey(o.dataSourceKey),r.setResourceName(o.associationName||o.collectionName);const i=()=>{var n;const l=this.context.engine;if(!(l!=null&&l.getDataSourceDirtyVersion))return;const a=((n=r.getDataSourceKey)==null?void 0:n.call(r))||o.dataSourceKey||"main";this.lastSeenDirtyVersion=this.getDirtyTrackingVersion(l,a,r,o)};return i(),r.on("refresh",()=>{i(),this.invalidateFlowCache("beforeRender")}),r}}),this.context.defineProperty("association",{get:()=>{const o=this.getResourceSettingsInitParams();if(o.associationName)return this.dataSource.getAssociation(o.associationName)}})}createResource(t,o){throw new Error("createResource method must be implemented in subclasses of CollectionBlockModel")}refresh(){return this.resource?this.resource.refresh():super.refresh()}defaultBlockTitle(){var t,o,r,i,n,l,a;const c=this.translate(((t=this.constructor.meta)==null?void 0:t.label)||this.constructor.name),u=((o=this.dataSource)==null?void 0:o.displayName)||((r=this.dataSource)==null?void 0:r.key),d=((l=(n=(i=this.context)==null?void 0:i.dataSourceManager)==null?void 0:n.getDataSources)==null?void 0:l.call(n).length)||0,m=(a=this.collection)==null?void 0:a.title;if(this.association){const p=this.resource.getResourceName(),h=this.dataSource.getCollection(p.split(".")[0]);return createDefaultCollectionBlockTitle({blockLabel:c,dsName:u,dsCount:d,collectionTitle:m,sourceCollectionTitle:h.title,associationTitle:this.association.title})}return createDefaultCollectionBlockTitle({blockLabel:c,dsName:u,dsCount:d,collectionTitle:m})}addAppends(t,o=!1){var r,i;if(t)if(t.includes(".")){const[n,l]=t.split("."),a=this.context.dataSourceManager.getCollectionField(`${this.collection.dataSourceKey}.${this.collection.name}.${n}`);if(!a)return;const c=a.target;if(!c)return;const u=this.context.dataSourceManager.getCollectionField(`${this.collection.dataSourceKey}.${c}.${l}`);if(u&&u.isAssociationField()){if(this.resource.addAppends(t),((r=u.targetCollection)==null?void 0:r.template)==="tree"){const d=t.includes(".")?t.slice(t.lastIndexOf(".")+1):t;u.name===d&&this.resource.addAppends(`${t}.parent(recursively=true)`)}o&&this.resource.refresh()}}else{if(!this.collection)return;const n=this.context.dataSourceManager.getCollectionField(`${this.collection.dataSourceKey}.${this.collection.name}.${t}`);if(!n)return;n.isAssociationField()&&(this.resource.addAppends(n.name),((i=n.targetCollection)==null?void 0:i.template)==="tree"&&this.resource.addAppends(`${n.name}.parent(recursively=true)`),o&&this.resource.refresh())}}}CollectionBlockModel.registerFlow({key:"resourceSettings",sort:-999,steps:{collectionCheck:{handler(e){e.collection||e.exitAll()}},aclCheck:{use:"aclCheck"},init:{handler(e,t){if(!t.dataSourceKey)throw new Error("dataSourceKey is required");if(!t.collectionName)throw new Error("collectionName is required");Object.keys(t).includes("sourceId")&&e.resource.setSourceId(t.sourceId),Object.keys(t).includes("filterByTk")&&e.resource.setFilterByTk(t.filterByTk)}}}});CollectionBlockModel.registerFlow({key:"refreshSettings",sort:1e4,steps:{refresh:{handler(e){return L(this,null,function*(){const t=e.model,o=e.model.context.filterManager;o&&o.bindToTarget(e.model.uid);const r=t.getDataLoadingMode(),i=t.resource;if(i instanceof import_flow_engine.MultiRecordResource&&r==="manual"&&!t.hasActiveFilters()){i.setData([]),i.setMeta({count:0,hasNext:!1,page:1}),i.loading=!1;return}e.model.isManualRefresh?e.model.resource.loading=!1:yield e.model.resource.refresh()})}}}});CollectionBlockModel.registerFlow({key:"dataLoadingModeSettings",sort:800,title:(0,import_flow_engine.tExpr)("Set data loading mode"),steps:{dataLoadingMode:{use:"dataLoadingMode"}}});CollectionBlockModel.define({hide:!0});class CommonItemModel extends import_flow_engine.FlowModel{}class FieldModel extends import_flow_engine.FlowModel{static resolveUse(t,o,r){var i,n;const l=(n=(i=t==null?void 0:t.stepParams)==null?void 0:i.fieldBinding)==null?void 0:n.use;return l&&l!==(t==null?void 0:t.use)?l:t==null?void 0:t.use}}class FilterBlockModel extends BlockModel{}FilterBlockModel.define({hide:!0,label:"Filter blocks"});const TABS_DESIGN_MODE_ROOT_CLASS_NAME=import_css.css`
1774
1770
  > .ant-tabs-nav .ant-tabs-tab {
1775
1771
  min-width: 54px;
1776
1772
  }
1777
- `;class PageModel extends import_flow_engine.FlowModel{constructor(){super(...arguments),R(this,"tabBarExtraContent",{}),R(this,"viewActivatedListener"),R(this,"dataSourceDirtyListener"),R(this,"lastSeenEmitterViewActivatedVersion",0),R(this,"dirtyRefreshScheduled",!1),R(this,"unmounted",!1),R(this,"documentTitleUpdateVersion",0),R(this,"createPageTabModelOptions",()=>{const t=(0,import_shared.uid)();return{uid:t,use:"RootPageTabModel",props:{route:{parentId:this.props.routeId,type:"tabs",schemaUid:t,tabSchemaName:(0,import_shared.uid)(),params:[],hideInMenu:!1,enableTabs:!1}}}})}getActiveTabKey(){var t,o,r,i;const n=(o=(t=this.context.view)==null?void 0:t.navigation)==null?void 0:o.viewParams;return n?n.tabUid||((r=this.getFirstTab())==null?void 0:r.uid):this.props.tabActiveKey||((i=this.getFirstTab())==null?void 0:i.uid)}scheduleActiveLifecycleRefresh(t=!1){this.dirtyRefreshScheduled||(this.dirtyRefreshScheduled=!0,Promise.resolve().then(()=>{if(this.dirtyRefreshScheduled=!1,this.unmounted||(0,import_flow_engine.getPageActive)(this.context)===!1)return;const o=this.getActiveTabKey();o&&this.invokeTabModelLifecycleMethod(o,"onActive",t)}).catch(()=>{}))}onMount(){var t,o,r,i,n,l,a,c,u;super.onMount(),this.unmounted=!1,this.setProps("tabActiveKey",(t=this.context.view.inputArgs)==null?void 0:t.tabUid),(o=this.context)!=null&&o.pageInfo&&(this.context.pageInfo.version="v2"),this.updateDocumentTitle(),this.viewActivatedListener||(this.viewActivatedListener=p=>{const h=this.getActiveTabKey();h&&this.invokeTabModelLifecycleMethod(h,"onActive")},(n=(i=(r=this.flowEngine)==null?void 0:r.emitter)==null?void 0:i.on)==null||n.call(i,import_flow_engine.VIEW_ACTIVATED_EVENT,this.viewActivatedListener));const d=(0,import_flow_engine.getEmitterViewActivatedVersion)((l=this.flowEngine)==null?void 0:l.emitter),m=d>0&&d!==this.lastSeenEmitterViewActivatedVersion;if(this.lastSeenEmitterViewActivatedVersion=d,m&&(0,import_flow_engine.getPageActive)(this.context)!==!1){const p=this.getActiveTabKey();p&&this.invokeTabModelLifecycleMethod(p,"onActive")}this.dataSourceDirtyListener||(this.dataSourceDirtyListener=p=>{this.scheduleActiveLifecycleRefresh()},(u=(c=(a=this.flowEngine)==null?void 0:a.emitter)==null?void 0:c.on)==null||u.call(c,import_flow_engine.DATA_SOURCE_DIRTY_EVENT,this.dataSourceDirtyListener))}onUnmount(){var t,o,r,i,n,l;this.unmounted=!0,this.viewActivatedListener&&((r=(o=(t=this.flowEngine)==null?void 0:t.emitter)==null?void 0:o.off)==null||r.call(o,import_flow_engine.VIEW_ACTIVATED_EVENT,this.viewActivatedListener),this.viewActivatedListener=void 0),this.dataSourceDirtyListener&&((l=(n=(i=this.flowEngine)==null?void 0:i.emitter)==null?void 0:n.off)==null||l.call(n,import_flow_engine.DATA_SOURCE_DIRTY_EVENT,this.dataSourceDirtyListener),this.dataSourceDirtyListener=void 0),super.onUnmount()}invokeTabModelLifecycleMethod(t,o,r=!1){var i,n;o==="onActive"&&(i=this.context)!=null&&i.pageInfo&&(this.context.pageInfo.version="v2");const l=this.flowEngine.getModel(t);if(l){if(l.context.tabActive){const a=(0,import_flow_engine.getPageActive)(l.context)!==!1;l.context.tabActive.value=a&&o==="onActive"}(n=l.subModels.grid)==null||n.mapSubModels("items",a=>{var c;(c=a[o])==null||c.call(a,r)})}o==="onActive"&&this.updateDocumentTitle(t)}updateDocumentTitle(t,o=0){return L(this,null,function*(){var r,i,n,l,a,c,u,d,m,p,h,g,f,_,v,b;if(this.unmounted||(0,import_flow_engine.getPageActive)(this.context)===!1)return;const C=!!((i=(r=this.context)==null?void 0:r.view)!=null&&i.navigation),y=(a=(l=(n=this.context)==null?void 0:n.view)==null?void 0:l.inputArgs)==null?void 0:a.viewUid,F=(d=(u=(c=this.flowEngine)==null?void 0:c.context)==null?void 0:u.route)==null?void 0:d.pathname;if(C&&y&&typeof F=="string"){const I=(m=(0,import_flow_engine.parsePathnameToViewParams)(F).at(-1))==null?void 0:m.viewUid;if(I&&I!==y)return}const S=++this.documentTitleUpdateVersion,P=I=>L(this,null,function*(){var M,E;if(!I||typeof I!="string")return"";try{const D=yield(E=(M=this.context).resolveJsonTemplate)==null?void 0:E.call(M,I);return D==null?"":String(D)}catch{return I}});let j="";if(this.props.enableTabs){const I=t||this.getActiveTabKey(),M=I?this.flowEngine.getModel(I):this.getFirstTab();if(!M&&o<5){window.setTimeout(()=>{this.unmounted||S===this.documentTitleUpdateVersion&&this.updateDocumentTitle(I,o+1)},0);return}j=(yield P((g=(h=(p=M==null?void 0:M.stepParams)==null?void 0:p.pageTabSettings)==null?void 0:h.tab)==null?void 0:g.documentTitle))||((f=M==null?void 0:M.getTabTitle)==null?void 0:f.call(M))||""}else j=(yield P((b=(v=(_=this.stepParams)==null?void 0:_.pageSettings)==null?void 0:v.general)==null?void 0:b.documentTitle))||this.props.title||"";S===this.documentTitleUpdateVersion&&typeof j=="string"&&j!==""&&(document.title=j)})}mapTabs(){return this.mapSubModels("tabs",t=>!this.context.flowSettingsEnabled&&t.hidden?null:{key:t.uid,label:(0,import_jsx_runtime.jsx)(import_flow_engine.Droppable,{model:t,children:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,{model:t,showFlowSettings:{showBackground:!0,showBorder:!1,toolbarPosition:"above",style:{transform:"translateY(8px)"}},extraToolbarItems:[{key:"drag-handler",component:import_flow_engine.DragHandler,sort:1}]})}),children:t.renderChildren()}).filter(Boolean)}getFirstTab(){var t;return(t=this.subModels.tabs)==null?void 0:t[0]}renderFirstTab(){var t;const o=this.getFirstTab();return(t=o==null?void 0:o.renderChildren)==null?void 0:t.call(o)}handleDragEnd(t){return L(this,null,function*(){throw new Error("Method not implemented.")})}renderTabs(){var t,o,r,i,n;const l=(o=(t=this.context.themeToken)==null?void 0:t.paddingLG)!=null?o:16,a=typeof l=="number"?`${l}px`:l,c=this.context.flowSettingsEnabled?`${TABS_BASE_ROOT_CLASS_NAME} ${TABS_DESIGN_MODE_ROOT_CLASS_NAME}`:TABS_BASE_ROOT_CLASS_NAME,u={"--nb-flow-page-tabs-nav-padding-inline-start":a};return(0,import_jsx_runtime.jsx)(import_flow_engine.DndProvider,{onDragEnd:this.handleDragEnd.bind(this),children:(0,import_jsx_runtime.jsx)(import_antd.Tabs,{style:u,rootClassName:c,activeKey:(i=(r=this.context.view)==null?void 0:r.navigation)!=null&&i.viewParams?this.context.view.navigation.viewParams.tabUid||((n=this.getFirstTab())==null?void 0:n.uid):this.props.tabActiveKey,tabBarStyle:this.props.tabBarStyle,items:this.mapTabs(),onChange:d=>{var m,p;(p=(m=this.context.view.navigation)==null?void 0:m.changeTo)==null||p.call(m,{tabUid:d}),this.invokeTabModelLifecycleMethod(d,"onActive"),this.invokeTabModelLifecycleMethod(this.props.tabActiveKey,"onInactive"),this.setProps("tabActiveKey",d)},tabBarExtraContent:x({right:(0,import_jsx_runtime.jsx)(import_flow_engine.AddSubModelButton,{model:this,subModelKey:"tabs",items:[{key:"blank",label:this.context.t("Blank tab"),createModelOptions:this.createPageTabModelOptions}],children:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowSettingsButton,{icon:(0,import_jsx_runtime.jsx)(import_icons.PlusOutlined,{}),children:this.context.t("Add tab")})})},this.tabBarExtraContent)})})}render(){const t=this.context.themeToken,o=x({},this.props.headerStyle);return t&&(o.paddingBlock=t.paddingSM,o.paddingInline=t.paddingLG),this.props.enableTabs&&(o.paddingBottom=0),(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[this.props.displayTitle&&(0,import_jsx_runtime.jsx)(import_pro_layout.PageHeader,{title:this.props.title,style:o}),this.props.enableTabs?this.renderTabs():this.renderFirstTab()]})}}PageModel.registerFlow({key:"pageSettings",title:(0,import_flow_engine.tExpr)("Page settings"),steps:{general:{title:(0,import_flow_engine.tExpr)("Edit page"),uiSchema:{title:{type:"string",title:(0,import_flow_engine.tExpr)("Page title"),"x-decorator":"FormItem","x-component":"Input","x-reactions":{dependencies:["displayTitle"],fulfill:{state:{visible:"{{$deps[0]}}"}}}},documentTitle:{type:"string",title:(0,import_flow_engine.tExpr)("Document title"),description:(0,import_flow_engine.tExpr)("Used as the browser tab title when tabs are disabled. Supports variables. Leave empty to use Page title."),"x-decorator":"FormItem","x-component":TextAreaWithContextSelector,"x-component-props":{rows:1,maxRows:6}},displayTitle:{type:"boolean",title:(0,import_flow_engine.tExpr)("Display page title"),"x-decorator":"FormItem","x-component":"Switch"},enableTabs:{type:"boolean",title:(0,import_flow_engine.tExpr)("Enable tabs"),"x-decorator":"FormItem","x-component":"Switch"}},defaultParams(e){return{displayTitle:!0,enableTabs:!1}},handler(e,t){return L(this,null,function*(){var o,r;if(e.model.setProps("displayTitle",t.displayTitle),e.model.context.closable)e.model.setProps("title",e.t(t.title,{ns:"lm-desktop-routes"}));else{const i=(r=(o=e.model.context)==null?void 0:o.currentRoute)==null?void 0:r.title;e.model.setProps("title",e.t(t.title||i,{ns:"lm-desktop-routes"}))}e.model.setProps("enableTabs",t.enableTabs),e.view.type==="embed"?(e.model.setProps("headerStyle",{backgroundColor:"var(--colorBgContainer)"}),e.model.setProps("tabBarStyle",{backgroundColor:"var(--colorBgContainer)",marginBottom:0})):(e.model.setProps("headerStyle",{backgroundColor:"var(--colorBgLayout)"}),e.model.setProps("tabBarStyle",{backgroundColor:"var(--colorBgLayout)",marginBottom:0})),e.model.updateDocumentTitle()})}}}});class ChildPageModel extends PageModel{constructor(){super(...arguments),R(this,"tabBarExtraContent",{left:(0,import_jsx_runtime.jsx)(BackButtonUsedInSubPage,{})}),R(this,"createPageTabModelOptions",()=>({use:"ChildPageTabModel"}))}handleDragEnd(t){return L(this,null,function*(){var o,r;if(!((o=t.active)!=null&&o.id)||!((r=t.over)!=null&&r.id))throw new Error("Invalid drag event");this.flowEngine.moveModel(t.active.id,t.over.id)})}render(){return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[this.props.displayTitle&&this.props.title&&(0,import_jsx_runtime.jsx)(import_pro_layout.PageHeader,{title:this.props.title,style:this.props.headerStyle}),this.props.enableTabs?this.renderTabs():this.renderFirstTab()]})}}const BackButtonUsedInSubPage=()=>{const e=(0,import_flow_engine.useFlowContext)(),t=e.themeToken,o=32,r=(0,import_react2.useMemo)(()=>({width:"auto",height:"auto",lineHeight:1,padding:t.paddingXS,marginRight:o-t.paddingXS}),[t.paddingXS]);return e.view.type!=="embed"?null:(0,import_jsx_runtime.jsx)(import_antd.Button,{"aria-label":"back-button",type:"text",icon:(0,import_jsx_runtime.jsx)(import_icons.ArrowLeftOutlined,{}),style:r,onClick:e.view.close})};class OldPageModel extends import_flow_engine.FlowModel{}OldPageModel.registerFlow({key:"pageSettings",title:(0,import_flow_engine.tExpr)("Page settings"),steps:{general:{title:(0,import_flow_engine.tExpr)("General"),uiSchema:{title:{type:"string",title:(0,import_flow_engine.tExpr)("Page title"),"x-decorator":"FormItem","x-component":"Input","x-reactions":{dependencies:["displayTitle"],fulfill:{state:{visible:"{{$deps[0]}}"}}}},displayTitle:{type:"boolean",title:(0,import_flow_engine.tExpr)("Display page title"),"x-decorator":"FormItem","x-component":"Switch"}},defaultParams(e){return{displayTitle:!0,enableTabs:!1}},handler(e,t){return L(this,null,function*(){var o,r;if(e.model.setProps("displayTitle",t.displayTitle),e.model.context.closable)e.model.setProps("title",t.title?e.t(t.title):null);else{const i=(r=(o=e.model.context)==null?void 0:o.currentRoute)==null?void 0:r.title;e.model.setProps("title",e.t(t.title||i))}e.model.setProps("enableTabs",t.enableTabs),e.model.context.closable?(e.model.setProps("headerStyle",{backgroundColor:e.themeToken.colorBgContainer}),e.model.setProps("tabBarStyle",{backgroundColor:e.themeToken.colorBgLayout,paddingInline:16,marginBottom:0})):(e.model.setProps("headerStyle",{backgroundColor:e.themeToken.colorBgContainer}),e.model.setProps("tabBarStyle",{backgroundColor:e.themeToken.colorBgContainer,paddingInline:16,marginBottom:0}))})}}}});class MainPageModel extends OldPageModel{renderFirstTab(){var t;return(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,{model:(t=this.subModels.tabs)==null?void 0:t[0]})}render(){return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[this.props.displayTitle&&(0,import_jsx_runtime.jsx)(import_pro_layout.PageHeader,{title:this.props.title,style:this.props.headerStyle}),this.renderFirstTab()]})}}class RouteModel extends import_flow_engine.FlowModel{}RouteModel.registerFlow({key:"popupSettings",on:"click",steps:{openView:{use:"openView",defaultParams(e){return{mode:"embed",preventClose:!0,pageModelClass:"RootPageModel"}}}}});function resolveViewParamsToViewList(e,t,o){return t.map((r,i)=>{let n,l=r.viewUid;return i===0?(n=o,l=o.uid):n=e.getModel(r.viewUid,!0),{params:r,modelUid:l,model:n,hidden:import_flow_engine.observable.ref(!1),index:i}})}function updateViewListHidden(e){let t=!1;for(let o=e.length-1;o>=0;o--){const r=e[o];getViewType(r)==="embed"&&!t?(t=!0,r.hidden.value=!1):r.hidden.value=t}}function getViewType(e){if(e.model instanceof RouteModel)return"embed";if(!e.model)return"drawer";const t=e.model.getStepParams("popupSettings","openView");return(t==null?void 0:t.mode)||"drawer"}const stableStringify=e=>e==null?"":typeof e=="object"?Array.isArray(e)?"["+e.map(stableStringify).join(",")+"]":"{"+Object.keys(e).sort().map(t=>`${t}:${stableStringify(e[t])}`).join(",")+"}":String(e),getKey=e=>{const{params:t,index:o}=e;return[stableStringify(t.viewUid),stableStringify(t.sourceId),stableStringify(t.filterByTk),String(o)].join("_")};function getViewDiffAndUpdateHidden(e,t){const o=new Map,r=new Map;e.forEach(l=>{const a=getKey(l);o.set(a,l)}),t.forEach(l=>{r.set(getKey(l),l)});const i=[];o.forEach((l,a)=>{r.has(a)?r.get(a).hidden=l.hidden:i.push(l)});const n=[];return r.forEach((l,a)=>{o.has(a)||n.push(l)}),{viewsToClose:i,viewsToOpen:n}}const openViewFlow=(0,import_flow_engine.defineFlow)({key:"popupSettings",title:(0,import_flow_engine.tExpr)("Popup settings"),on:"click",sort:300,steps:{openView:{use:"openView",hideInSettings:e=>L(void 0,null,function*(){var t,o,r,i;const n=(r=(o=(t=e.model).getStepParams)==null?void 0:o.call(t,"displayFieldSettings","clickToOpen"))==null?void 0:r.clickToOpen;return e.collectionField?n===void 0?!((i=e.collectionField)!=null&&i.isAssociationField())||e.disableFieldClickToOpen:n===!1:!1})}},defaultParams:e=>{var t,o,r,i,n,l,a,c;let u,d,m;const p=e.collectionField,h=e.blockModel,g=(o=(t=e.model)==null?void 0:t.parent)==null?void 0:o.associationPathName,f=e.collection||(h==null?void 0:h.collection),_=C=>{var y;return!!((y=C==null?void 0:C.isAssociationField)!=null&&y.call(C))},v=!_(p)&&g?(r=f==null?void 0:f.getFieldByPath)==null?void 0:r.call(f,g):void 0,b=_(p)?p:v;if(_(b)){const C=b.targetCollection;h==null||h.collection,u=C==null?void 0:C.name,d=C==null?void 0:C.dataSourceKey,m=b==null?void 0:b.resourceName}else p?(u=(i=e.collection)==null?void 0:i.name,d=(n=e.collection)==null?void 0:n.dataSourceKey,m=p==null?void 0:p.target):(u=(l=e.collection)==null?void 0:l.name,d=(a=e.collection)==null?void 0:a.dataSourceKey,m=(c=e.association)==null?void 0:c.resourceName);return{openView:{collectionName:u,associationName:m,dataSourceKey:d}}}}),getOpenViewStepParams=e=>e.getStepParams("popupSettings","openView");function InternalFlowPage(e){var t=e,{uid:o}=t,r=te(t,["uid"]);const i=(0,import_flow_engine.useFlowModelById)(o);return(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,x({model:i,fallback:(0,import_jsx_runtime.jsx)(SkeletonFallback,{style:{margin:i!=null&&i.context.isMobileLayout?8:i==null?void 0:i.context.themeToken.marginBlock}}),hideRemoveInSettings:!0,showFlowSettings:{showBackground:!1,showBorder:!1}},r))}const FlowRoute=()=>{const e=(0,import_react2.useRef)(null),t=(0,import_flow_engine.useFlowEngine)(),o=useCurrentRoute(),{refresh:r}=useAllAccessDesktopRoutes(),{isMobileLayout:i}=useMobileLayout(),n=(0,import_react2.useRef)(t.context.route.params.name),l=(0,import_react2.useRef)({}),a=(0,import_react2.useRef)([]),c=(0,import_react2.useRef)(!1),{designable:u}=useDesignable(),{active:d}=useKeepAlive(),m=(0,import_react2.useRef)(!1),p=(0,import_react2.useMemo)(()=>t.createModel({uid:n.current,use:"RouteModel"}),[t]);return(0,import_react2.useEffect)(()=>{p.context.defineProperty("pageActive",{value:import_flow_engine.observable.ref(!1),info:{description:"Whether current page route is active (keep-alive). This is an observable.ref<boolean> (use ctx.pageActive.value to read/write).",detail:"observable.ref<boolean>"}})},[p]),(0,import_react2.useEffect)(()=>{p.context.pageActive.value=d},[d,p]),(0,import_react2.useEffect)(()=>{t.context.defineProperty("isMobileLayout",{get:()=>i,info:{description:"Whether current layout is mobile layout.",detail:"boolean"}}),t.context.defineProperty("deviceType",{get:()=>import_react_device_detect.deviceType==="browser"?"computer":import_react_device_detect.deviceType,cache:!1,meta:{type:"string",title:t.translate("Current device type"),interface:"select",uiSchema:{enum:[{label:t.translate("Computer"),value:"computer"},{label:t.translate("Mobile"),value:"mobile"},{label:t.translate("Tablet"),value:"tablet"},{label:t.translate("SmartTv"),value:"smarttv"},{label:t.translate("Console"),value:"console"},{label:t.translate("Wearable"),value:"wearable"},{label:t.translate("Embedded"),value:"embedded"}],"x-component":"Select"}},info:{description:"Current device type (computer/mobile/tablet/...).",detail:"string"}})},[i,t]),(0,import_react2.useEffect)(()=>{i?t.flowSettings.disable():u&&t.flowSettings.enable()},[u,t,i]),(0,import_react2.useEffect)(()=>{e.current&&(t.context.defineProperty("layoutContentElement",{get:()=>e.current}),p.context.defineProperty("currentRoute",{get:()=>o}),t.context.defineProperty("currentRoute",{get:()=>o}),p.context.defineProperty("refreshDesktopRoutes",{get:()=>r}))},[p,o,r,t]),(0,import_react2.useEffect)(()=>{const h=(0,import_flow_engine.reaction)(()=>t.context.route,g=>{var f;if(g.params.name!==n.current){m.current=!0;return}try{m.current=!1;const _=(0,import_flow_engine.parsePathnameToViewParams)(g.pathname),v=resolveViewParamsToViewList(t,_,p);if(a.current.length===0&&v.length>1&&!c.current){const y=F=>{v[F]&&(F===0?new import_flow_engine.ViewNavigation(t.context,[]).navigateTo(v[F].params,{replace:!0}):new import_flow_engine.ViewNavigation(t.context,v.slice(0,F).map(S=>S.params)).navigateTo(v[F].params),y(F+1))};y(0),c.current=!0;return}const{viewsToClose:b,viewsToOpen:C}=getViewDiffAndUpdateHidden(a.current,v);if(console.log("[NocoBase] FlowRoute view diff:",{viewsToClose:b,viewsToOpen:C}),b.length&&(b.forEach(y=>{var F,S;(S=(F=l.current[getKey(y)])==null?void 0:F.destroy)==null||S.call(F,!0),delete l.current[getKey(y)]}),updateViewListHidden(v)),C.length&&L(void 0,null,function*(){const y=C.filter(S=>!S.model);if(y.length>0&&(yield Promise.all(y.map(S=>L(void 0,null,function*(){try{S.model=yield t.loadModel({uid:S.modelUid})}catch(P){console.error(`[NocoBase] Failed to load model ${S.modelUid}:`,P)}})))),m.current)return;updateViewListHidden(v);const F=S=>{if(!C[S])return;const P=C[S];if(!P.model)return;const j=import_react2.default.createRef(),I=import_react2.default.createRef(),M=getOpenViewStepParams(P.model),E=v.slice(0,P.index).map(k=>k.params.viewUid),D=new import_flow_engine.ViewNavigation(t.context,v.slice(0,P.index+1).map(k=>k.params));P.model.dispatchEvent("click",A(x({target:e.current,collectionName:M==null?void 0:M.collectionName,associationName:M==null?void 0:M.associationName,dataSourceKey:M==null?void 0:M.dataSourceKey,destroyRef:j,updateRef:I,openerUids:E},P.params),{navigation:D,onOpen(){F(S+1)},hidden:P.hidden,isMobileLayout:i,triggerByRouter:!0})),l.current[getKey(P)]={destroy:k=>{var w;return(w=j.current)==null?void 0:w.call(j)},update:k=>{var w;return(w=I.current)==null?void 0:w.call(I,k)},navigation:D}};F(0)}),b.length===0&&C.length===0){const y=v.at(-1);y&&((f=l.current[getKey(y)])==null||f.navigation.setViewStack(v.map(F=>F.params)))}a.current=[...v]}catch(_){console.error("[NocoBase] Failed to resolve view params to view list:",_)}},{fireImmediately:!0});return()=>{h==null||h(),a.current.forEach(g=>{var f;t.removeModelWithSubModels(g.params.viewUid),(f=l.current[getKey(g)])==null||f.destroy()})}},[t,i,p]),(0,import_jsx_runtime.jsx)("div",{ref:e})},FlowPage=import_react2.default.memo(e=>{const t=e,{pageModelClass:o="ChildPageModel",parentId:r,onModelLoaded:i,defaultTabTitle:n}=t,l=te(t,["pageModelClass","parentId","onModelLoaded","defaultTabTitle"]),a=(0,import_flow_engine.useFlowEngine)(),c=(0,import_flow_engine.useFlowViewContext)(),{loading:u,data:d}=(0,import_ahooks.useRequest)(()=>L(void 0,null,function*(){var m;const p={async:!0,parentId:r,subKey:"page",subType:"object",use:o};if(o==="ChildPageModel"){const g=n||((m=a.translate)==null?void 0:m.call(a,"Details"));p.subModels={tabs:[{use:"ChildPageTabModel",stepParams:{pageTabSettings:{tab:{title:g}}}}]},p.stepParams={pageSettings:{general:{displayTitle:!1,enableTabs:!0}}}}const h=yield a.loadOrCreateModel(p);return h!=null&&h.uid&&i&&(h.context.addDelegate(c),h.removeParentDelegate(),i(h.uid,h)),h}),{refreshDeps:[r]});return u||!(d!=null&&d.uid)?(0,import_jsx_runtime.jsx)(SkeletonFallback,{style:{margin:c!=null&&c.isMobileLayout?8:c==null?void 0:c.themeToken.marginBlock}}):(0,import_jsx_runtime.jsx)(InternalFlowPage,x({uid:d.uid},l))});FlowPage.displayName="FlowPage";const RemoteFlowModelRenderer=e=>{const t=e,{uid:o,parentId:r,subKey:i}=t,n=te(t,["uid","parentId","subKey"]),l=(0,import_flow_engine.useFlowEngine)(),{loading:a,data:c}=(0,import_ahooks.useRequest)(()=>L(void 0,null,function*(){return yield l.loadModel({uid:o,parentId:r,subKey:i})}),{refreshDeps:[o,r,i]});return a||!(c!=null&&c.uid)?(0,import_jsx_runtime.jsx)(SkeletonFallback,{style:{margin:16}}):(0,import_jsx_runtime.jsx)(InternalFlowPage,x({uid:c.uid},n))};function PageTabChildrenRenderer({ctx:e,options:t}){const{data:o,loading:r}=(0,import_ahooks.useRequest)(()=>L(this,null,function*(){const n=yield e.engine.loadOrCreateModel(t);return n.context.addDelegate(e),n}),{refreshDeps:[e.model.uid]}),i=e!=null&&e.isMobileLayout?8:e==null?void 0:e.themeToken.marginBlock;return r||!(o!=null&&o.uid)?(0,import_jsx_runtime.jsx)(SkeletonFallback,{style:{margin:i}}):(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,{model:o,fallback:(0,import_jsx_runtime.jsx)(SkeletonFallback,{style:{margin:i}})})}class BasePageTabModel extends import_flow_engine.FlowModel{onInit(t){super.onInit(t),this.context.defineProperty("tabActive",{value:import_flow_engine.observable.ref(!0),info:{description:"Whether current tab is active (observable.ref).",detail:"observable.ref<boolean>"}})}getTabTitle(t="Untitled"){var o,r;const i=this.context.t(t,{ns:"client"});return this.context.t((r=(o=this.stepParams.pageTabSettings)==null?void 0:o.tab)==null?void 0:r.title,{ns:"lm-desktop-routes"})||i}getTabIcon(){var t,o;return(o=(t=this.stepParams.pageTabSettings)==null?void 0:t.tab)==null?void 0:o.icon}renderChildren(){return null}renderHiddenInConfig(){return(0,import_jsx_runtime.jsxs)("span",{style:{display:"inline-block",paddingTop:this.context.flowSettingsEnabled?10:0,opacity:.5},children:[(0,import_jsx_runtime.jsx)(Icon,{style:{marginRight:8},type:this.getTabIcon()}),this.getTabTitle()]})}render(){return(0,import_jsx_runtime.jsxs)("span",{style:{display:"inline-block",paddingTop:this.context.flowSettingsEnabled?10:0},children:[(0,import_jsx_runtime.jsx)(Icon,{style:{marginRight:8},type:this.getTabIcon()}),this.getTabTitle()]})}}BasePageTabModel.registerFlow({key:"pageTabSettings",title:(0,import_flow_engine.tExpr)("Tab settings"),steps:{tab:{title:(0,import_flow_engine.tExpr)("Edit tab"),preset:!0,uiSchema:{title:{title:(0,import_flow_engine.tExpr)("Tab name"),"x-component":"Input","x-decorator":"FormItem",required:!0},documentTitle:{type:"string",title:(0,import_flow_engine.tExpr)("Document title"),description:(0,import_flow_engine.tExpr)("Used as the browser tab title when this tab is active. Supports variables. Leave empty to use Tab name."),"x-decorator":"FormItem","x-component":TextAreaWithContextSelector,"x-component-props":{rows:1,maxRows:6}},icon:{title:(0,import_flow_engine.tExpr)("Icon"),"x-decorator":"FormItem","x-component":"IconPicker"}},handler(e,t){return L(this,null,function*(){var o;const r=typeof(e==null?void 0:e.t)=="function"?e.t.bind(e):n=>n;e.model.setProps("title",r(t.title,{ns:"lm-desktop-routes"})),e.model.setProps("icon",t.icon);const i=e.engine.getModel(e.model.parentId);(o=i==null?void 0:i.updateDocumentTitle)==null||o.call(i)})}}}});class RootPageTabModel extends BasePageTabModel{renderChildren(){return(0,import_jsx_runtime.jsx)(PageTabChildrenRenderer,{ctx:this.context,options:{parentId:this.uid,subKey:"grid",async:!0,subType:"object",use:"BlockGridModel"}})}saveStepParams(){return L(this,null,function*(){return this.save()})}save(){return L(this,null,function*(){var t,o,r;const i=this.serialize(),n=(r=(o=(t=this.stepParams)==null?void 0:t.pageTabSettings)==null?void 0:o.tab)==null?void 0:r.documentTitle;yield this.context.api.request({method:"post",url:"desktopRoutes:updateOrCreate",params:{filterKeys:["schemaUid"]},data:A(x({},this.props.route),{title:this.getTabTitle(""),icon:this.getTabIcon(),options:{flowRegistry:i.flowRegistry,documentTitle:n}})})})}destroy(){return L(this,null,function*(){return this.observerDispose(),this.invalidateFlowCache("beforeRender",!0),this.flowEngine.removeModel(this.uid),yield this.context.api.request({method:"post",url:"desktopRoutes:destroy",params:{filter:{schemaUid:this.uid}},data:this.props.route}),!0})}}class ChildPageTabModel extends BasePageTabModel{renderChildren(){return(0,import_jsx_runtime.jsx)(PageTabChildrenRenderer,{ctx:this.context,options:{parentId:this.uid,subKey:"grid",async:!0,subType:"object",use:"BlockGridModel"}})}}class PageTabModel extends import_flow_engine.FlowModel{render(){return(0,import_jsx_runtime.jsx)("div",{children:(0,import_jsx_runtime.jsx)(RemoteFlowModelRenderer,{parentId:this.uid,subKey:"grid",showFlowSettings:!1})})}}class RootPageModel extends PageModel{constructor(){super(...arguments),R(this,"mounted",!1)}onMount(){super.onMount(),(0,import_flow_engine.reaction)(()=>this.context.pageActive.value,()=>{var t,o;if(this.context.pageActive.value&&this.mounted){const r=(t=this.subModels.tabs)==null?void 0:t[0];r&&(this.setProps("tabActiveKey",r.uid),this.invokeTabModelLifecycleMethod(r.uid,"onActive",!0))}if(this.context.pageActive.value===!1)if(this.props.tabActiveKey)this.invokeTabModelLifecycleMethod(this.props.tabActiveKey,"onInactive");else{const r=(o=this.subModels.tabs)==null?void 0:o[0];r&&this.invokeTabModelLifecycleMethod(r.uid,"onInactive")}this.mounted=!0})}saveStepParams(){return L(this,null,function*(){yield Ee(RootPageModel.prototype,this,"saveStepParams").call(this),this.stepParams.pageSettings&&this.context.api.request({url:`desktopRoutes:update?filter[id]=${this.props.routeId}`,method:"post",data:{enableTabs:!!this.stepParams.pageSettings.general.enableTabs}})})}handleDragEnd(t){return L(this,null,function*(){var o,r;const i=this.flowEngine.getModel((o=t.active)==null?void 0:o.id),n=this.flowEngine.getModel((r=t.over)==null?void 0:r.id);!i||!n||(yield this.context.api.request({url:"desktopRoutes:move",method:"post",params:{sourceId:i.props.route.id,targetId:n.props.route.id,sortField:"sort"}}),this.flowEngine.moveModel(i.uid,n.uid,{persist:!1}))})}}RootPageModel.registerFlow({key:"rootPageSettings",steps:{init:{handler(e,t){return L(this,null,function*(){var o,r;if(e.model.hasSubModel("tabs"))return;const i=e.routeRepository.getRouteBySchemaUid(e.model.parentId);e.model.setProps("routeId",i==null?void 0:i.id);const n=import_lodash.default.castArray(i==null?void 0:i.children);for(const l of n.sort((a,c)=>a.sort-c.sort)){if(l.hideInMenu)continue;const a=e.engine.createModel({parentId:e.model.uid,uid:l.schemaUid,subKey:"tabs",subType:"array",use:"RootPageTabModel",sortIndex:l.sort,props:{route:l},flowRegistry:(o=l.options)==null?void 0:o.flowRegistry,stepParams:{pageTabSettings:{tab:{title:l.title,icon:l.icon,documentTitle:(r=l.options)==null?void 0:r.documentTitle}}}});e.model.addSubModel("tabs",a)}})}}}});class SubPageModel extends OldPageModel{renderFirstTab(){var t;return(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,{model:(t=this.subModels.tabs)==null?void 0:t[0]})}render(){return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[this.props.displayTitle&&(0,import_jsx_runtime.jsx)(import_pro_layout.PageHeader,{title:this.props.title,style:this.props.headerStyle}),this.renderFirstTab()]})}}class PopupActionModel extends ActionModel{constructor(){super(...arguments),R(this,"defaultProps",{title:(0,import_flow_engine.tExpr)("Popup"),icon:"ExportOutlined"})}}PopupActionModel.define({label:(0,import_flow_engine.tExpr)("Popup")});PopupActionModel.registerFlow(openViewFlow);class RecordActionModel extends ActionModel{}RecordActionModel.define({children:e=>L(void 0,null,function*(){return(yield(0,import_flow_engine.buildSubModelItems)(ActionModel)(e)).filter(t=>e.engine.getModelClass(t.useModel)._isScene(ActionSceneEnum.record))})});class InputFieldModel extends FieldModel{render(){return(0,import_jsx_runtime.jsx)(import_antd.Input,x({},this.props))}}InputFieldModel.registerFlow({key:"defaultValueForNanoid",steps:{generateNanoid:{handler(e,t){var o,r;(r=(o=e.blockModel)==null?void 0:o.emitter)==null||r.on("onFieldReset",()=>{if(e.collectionField.interface==="nanoid"&&e.collectionField.options.autoFill!==!1){const{size:i,customAlphabet:n}=e.collectionField.options||{size:21};e.model.props.onChange((0,import_nanoid.customAlphabet)(n,i)())}})}}}});InputFieldModel.define({label:(0,import_flow_engine.tExpr)("Input")});import_flow_engine.EditableItemModel.bindModelToInterface("InputFieldModel",["input","email","phone","uuid","url","nanoid"],{isDefault:!0});import_flow_engine.FilterableItemModel.bindModelToInterface("InputFieldModel",["input","email","phone","uuid","url","nanoid","textarea","markdown","vditor","richText","password","color"],{isDefault:!0});const ARRAY_VALUE_OPERATORS=new Set(["$match","$notMatch","$anyOf","$noneOf","$childIn","$childNotIn","$in","$notIn"]);function isObjectWithType(e){return!!e&&typeof e=="object"&&!Array.isArray(e)&&"type"in e}function isEmptyScalar(e){return e===null||typeof e>"u"||typeof e=="string"&&e.trim()===""}function normalizeFilterValueByOperator(e,t){if(!e)return t;if(e==="$dateBetween"){if(t===null||typeof t>"u"||isObjectWithType(t))return t;if(Array.isArray(t)){if(t.length===0)return t;const o=t[0],r=t.length>1?t[1]:void 0,i=isEmptyScalar(o),n=isEmptyScalar(r);return t.length===1&&!i?[o,o]:!i&&n?[o,o]:i&&!n?[r,r]:t}return[t,t]}return ARRAY_VALUE_OPERATORS.has(e)?t===null||typeof t>"u"||Array.isArray(t)?t:typeof t=="string"&&t.trim()===""?[]:[t]:t}const stripTimeFromFormat=e=>e&&e.replace(/\s*HH?:mm(?::ss)?(?:\.SSS)?/g,"").trim();function getRawSingleValue(e,t){if(!t)return e;if(Array.isArray(e))return e[0]}function inferPickerFromRawValue(e,t){return typeof e=="string"?inferPickerType(e,t):t}function parseDateByFormat$1(e,t){const o=String(e||"").trim();if(!o)return null;if(/(?:Z|[+-]\d{2}:\d{2})$/i.test(o)){const i=(0,import_client.dayjs)(o);if(i.isValid())return i}if(t){const i=(0,import_client.dayjs)(o,t,!0);if(i.isValid())return i}const r=(0,import_client.dayjs)(o);if(r.isValid())return r;if(t){const i=(0,import_client.dayjs)(o,t);if(i.isValid())return i}return null}function parseDateFromRawValue$1(e,t){if(import_client.dayjs.isDayjs(e))return e;if(e instanceof Date){const o=(0,import_client.dayjs)(e);return o.isValid()?o:null}return typeof e=="string"?parseDateByFormat$1(e,t):null}function parseRangeValue(e,t){if(!Array.isArray(e))return null;const o=parseDateFromRawValue$1(e[0],t),r=parseDateFromRawValue$1(e[1],t);return!o||!r?null:[o,r]}const FieldAssignExactDatePicker=e=>{const{picker:t="date",format:o,showTime:r,timeFormat:i,value:n,isRange:l=!1,onChange:a,style:c}=e,u=(0,import_flow_engine.useFlowContext)(),d=u.model.translate.bind(u.model),m=(0,import_react2.useMemo)(()=>getRawSingleValue(n,l),[l,n]),[p,h]=(0,import_react2.useState)(()=>inferPickerFromRawValue(m,t)),g=S=>{const P=S===t&&o?o:(0,import_client.getPickerFormat)(S),j=S==="date"?stripTimeFromFormat(P):P;return(0,import_client.getDateTimeFormat)(S,j,r,i)},f=(0,import_react2.useMemo)(()=>g(p),[p,o,t,r,i]),_=(0,import_react2.useMemo)(()=>l?null:parseDateFromRawValue$1(n,f),[l,n,f]),v=(0,import_react2.useMemo)(()=>l?parseRangeValue(n,f):null,[l,n,f]),b=(0,import_react2.useMemo)(()=>[{label:d("Date"),value:"date"},{label:d("Month"),value:"month"},{label:d("Quarter"),value:"quarter"},{label:d("Year"),value:"year"}],[d]),C=S=>{if(h(S),!!a){if(l){v&&a(v);return}_&&a(_)}},y={utc:!0,underFilter:!0,format:f,picker:p,inputReadOnly:u.isMobileLayout,showTime:r?{defaultValue:(0,import_client.dayjs)("00:00:00","HH:mm:ss")}:!1,value:_,onChange:S=>{if(S&&import_client.dayjs.isDayjs(S)){a==null||a(S);return}a==null||a(null)},style:{flex:1}},F={utc:!0,underFilter:!0,format:f,picker:p,inputReadOnly:u.isMobileLayout,showTime:r?{defaultValue:[(0,import_client.dayjs)("00:00:00","HH:mm:ss"),(0,import_client.dayjs)("23:59:59","HH:mm:ss")]}:!1,value:v,onChange:S=>{if(Array.isArray(S)&&S[0]&&S[1]){a==null||a([S[0],S[1]]);return}a==null||a(null)},style:{flex:1}};return(0,import_jsx_runtime.jsxs)(import_antd.Space.Compact,{style:x({width:"100%"},c||{}),children:[(0,import_jsx_runtime.jsx)(import_antd.Select,{style:{width:100},popupMatchSelectWidth:!1,value:p,options:b,onChange:C}),l?(0,import_jsx_runtime.jsx)(import_antd.DatePicker.RangePicker,x({},F)):(0,import_jsx_runtime.jsx)(import_antd.DatePicker,x({},y))]})},DATE_FIELD_INTERFACES=new Set(["date","datetime","datetimeNoTz","createdAt","updatedAt","unixTimestamp"]),TZ_AWARE_DATE_INTERFACES=new Set(["datetime","createdAt","updatedAt","unixTimestamp"]),DATE_ONLY_OUTPUT_FORMAT="YYYY-MM-DD",DATETIME_NO_TZ_OUTPUT_FORMAT="YYYY-MM-DD HH:mm:ss",DATE_DYNAMIC_OPTION_KEYS=["exact","past","next","today","yesterday","tomorrow","thisWeek","lastWeek","nextWeek","thisMonth","lastMonth","nextMonth","thisQuarter","lastQuarter","nextQuarter","thisYear","lastYear","nextYear"],DATE_DYNAMIC_OPTION_LABELS={exact:"Exact day",past:"Past",next:"Next",today:"Today",yesterday:"Yesterday",tomorrow:"Tomorrow",thisWeek:"This Week",lastWeek:"Last Week",nextWeek:"Next Week",thisMonth:"This Month",lastMonth:"Last Month",nextMonth:"Next Month",thisQuarter:"This Quarter",lastQuarter:"Last Quarter",nextQuarter:"Next Quarter",thisYear:"This Year",lastYear:"Last Year",nextYear:"Next Year"};function buildDateDynamicOptions(e,t=!1){var o;const r=DATE_DYNAMIC_OPTION_KEYS.map(i=>{var n;return{value:i,label:(n=e==null?void 0:e(DATE_DYNAMIC_OPTION_LABELS[i]))!=null?n:DATE_DYNAMIC_OPTION_LABELS[i]}});return t&&r.splice(3,0,{value:"now",label:(o=e==null?void 0:e("Now"))!=null?o:"Now"}),r}function parseDateByFormat(e,t){const o=String(e||"").trim();if(!o)return null;if(/(?:Z|[+-]\d{2}:\d{2})$/i.test(o)){const i=(0,import_client.dayjs)(o);if(i.isValid())return i}if(t){const i=(0,import_client.dayjs)(o,t,!0);if(i.isValid())return i}const r=(0,import_client.dayjs)(o);if(r.isValid())return r;if(t){const i=(0,import_client.dayjs)(o,t);if(i.isValid())return i}return null}function parseDateFromRawValue(e,t){if(import_client.dayjs.isDayjs(e))return e;if(e instanceof Date){const o=(0,import_client.dayjs)(e);return o.isValid()?o:null}return typeof e=="string"?parseDateByFormat(e,t):null}function normalizeExactDateValue(e,t){const o=parseDateFromRawValue(e,t.format);if(!(o!=null&&o.isValid()))return e;switch(t.exactNormalizeMode){case"date":return o.format(DATE_ONLY_OUTPUT_FORMAT);case"datetimeNoTz":return o.format(t.showTime?DATETIME_NO_TZ_OUTPUT_FORMAT:DATE_ONLY_OUTPUT_FORMAT);case"iso":return o.toISOString();default:return e}}function toExactPickerSingleValue(e,t){const o=parseDateFromRawValue(e,t);return o!=null&&o.isValid()?o:null}function toExactPickerRangeValue(e,t){if(!Array.isArray(e))return null;const o=toExactPickerSingleValue(e[0],t),r=toExactPickerSingleValue(e[1],t);return!o||!r?null:[o,r]}function toExactPickerDisplayValue(e,t){return t.isRange?toExactPickerRangeValue(e,t.format):toExactPickerSingleValue(e,t.format)}function getDateVariableExactNormalizeMode(e){return e==="date"?"date":e==="datetimeNoTz"?"datetimeNoTz":TZ_AWARE_DATE_INTERFACES.has(e)?"iso":"none"}function normalizeDateVariableExactValue(e,t){return t.exactNormalizeMode==="none"?e:typeof e=="string"||import_client.dayjs.isDayjs(e)||e instanceof Date?normalizeExactDateValue(e,t):Array.isArray(e)?e.map(o=>typeof o=="string"||import_client.dayjs.isDayjs(o)||o instanceof Date?normalizeExactDateValue(o,t):o):e}function normalizeExactDatePickerMode(e){return e==="year"||e==="quarter"||e==="month"||e==="date"?e:"date"}const DEFAULT_DATE_VARIABLE_COMPONENT_PROPS={picker:"date",showTime:!1,timeFormat:"HH:mm:ss",format:"YYYY-MM-DD",exactNormalizeMode:"none"};function getFieldInterface(e){return typeof(e==null?void 0:e.interface)=="string"?e.interface:""}function getFieldComponentProps(e){var t;return(typeof(e==null?void 0:e.getComponentProps)=="function"?e.getComponentProps():null)||((t=e==null?void 0:e.uiSchema)==null?void 0:t["x-component-props"])||{}}function normalizeDateVariableOutput(e,t){if(e===null||(0,import_flow_engine.isRunJSValue)(e)||typeof e=="string"&&(0,import_flow_engine.isVariableExpression)(e)&&!(0,import_flow_engine.isCtxDateExpression)(e))return e;if(e===""||typeof e>"u")return"";const o=normalizeDateVariableExactValue(e,{exactNormalizeMode:t.exactNormalizeMode,format:t.format||"YYYY-MM-DD HH:mm:ss",showTime:t.showTime});return(0,import_flow_engine.serializeCtxDateValue)(o)||o}function isPlainObject$1(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function pickStyle(e){return isPlainObject$1(e)?e:void 0}function withFullWidthStyle(e){return A(x({},e),{width:"100%",minWidth:0})}function rewrapReactiveRender$1(e){var t;e&&(e._reactiveWrapperCache=void 0,(t=e.setupReactiveRender)==null||t.call(e))}function remapMetaTreePaths(e,t,o){const r=Array.isArray(e==null?void 0:e.paths)?e.paths.map(l=>String(l)):[];let i=r;t.length&&r.length>=t.length&&t.every((l,a)=>r[a]===l)&&(i=[...o,...r.slice(t.length)]);const n=l=>Array.isArray(l)?l.map(a=>remapMetaTreePaths(a,t,o)):typeof l=="function"?()=>L(this,null,function*(){const a=yield l();return Array.isArray(a)?a.map(c=>remapMetaTreePaths(c,t,o)):[]}):l;return A(x({},e),{paths:i,children:e!=null&&e.children?n(e.children):void 0})}function attachBaseItemAsParent(e,t){var o;if(!t)return e;const r=remapMetaTreePaths(t,["item"],["item","parentItem"]),i=A(x({},r),{name:"parentItem",title:((o=r.title)==null?void 0:o.replace("Current item","Parent item"))||"Parent item"}),n=l=>{const a=Array.isArray(l.children)?l.children:[];if(!a.some(u=>(u==null?void 0:u.name)==="parentItem"))return A(x({},l),{children:[...a,i]});const c=a.map(u=>(u==null?void 0:u.name)!=="parentItem"?u:n(u));return A(x({},l),{children:c})};return n(e)}function mergeItemMetaTreeForAssignValue(e,t){const o=Array.isArray(e)?e:[],r=Array.isArray(t)?t:[];if(!r.length)return o;const i=o.find(u=>(u==null?void 0:u.name)==="item"),n=r.find(u=>(u==null?void 0:u.name)==="item");if(!n)return o;const l=attachBaseItemAsParent(n,i),a=[];let c=!1;for(const u of o){if(!c&&(u==null?void 0:u.name)==="item"){a.push(l),c=!0;continue}a.push(u)}return c||a.push(l),a}const FieldAssignValueInput=({targetPath:e,value:t,onChange:o,placeholder:r,extraMetaTree:i,operator:n,operatorMetaList:l,preferFormItemFieldModel:a,associationFieldNamesOverride:c,enableDateVariableAsConstant:u=!1})=>{var d,m,p,h;const g=(0,import_flow_engine.useFlowContext)(),f=import_react2.default.useCallback(G=>{if(!G||typeof G!="object"||!("target"in G))return G;const Q=G.target;return!Q||typeof Q!="object"||!("value"in Q)?G:Q.value},[]),_=import_react2.default.useRef(i);import_react2.default.useEffect(()=>{_.current=i},[i]);const v=import_react2.default.useMemo(()=>e?findFormItemModelByFieldPath(g.model,e):null,[g.model,e]),b=import_react2.default.useCallback((G,Q)=>{var X;if(!G||typeof Q!="string"||!Q.includes("."))return null;const ee=Q.split(".").filter(Boolean);if(ee.length<2)return null;let ie=G;for(let re=0;re<ee.length;re++){const se=ee[re],ce=re===ee.length-1,ae=typeof(ie==null?void 0:ie.getField)=="function"?ie.getField(se):void 0;if(!ae)return null;if(ce)return{collection:ie,fieldName:se,collectionField:ae};if(!((X=ae==null?void 0:ae.isAssociationField)!=null&&X.call(ae))||!(ae!=null&&ae.targetCollection))return null;ie=ae.targetCollection}return null},[]),C=import_react2.default.useMemo(()=>{var G,Q,X,ee,ie,re,se,ce,ae,ge,me,fe,pe,xe,de;if(v){const ye=v.context,{collection:be,dataSource:Pe,blockModel:Ce}=ye,je=((G=v==null?void 0:v.getStepParams)==null?void 0:G.call(v,"fieldSettings","init"))||{},we=((Q=v==null?void 0:v.context)==null?void 0:Q.dataSourceManager)||((ee=(X=g.model)==null?void 0:X.context)==null?void 0:ee.dataSourceManager),Ne=be||(je!=null&&je.dataSourceKey&&je!=null&&je.collectionName?(ie=we==null?void 0:we.getCollection)==null?void 0:ie.call(we,je.dataSourceKey,je.collectionName):void 0),Re=Pe||(je!=null&&je.dataSourceKey?(re=we==null?void 0:we.getDataSource)==null?void 0:re.call(we,je.dataSourceKey):void 0),Te=je==null?void 0:je.fieldPath,Ie=Te==null?void 0:Te.split(".").slice(-1)[0],ke=Ie?(se=Ne==null?void 0:Ne.getField)==null?void 0:se.call(Ne,Ie):void 0;return{itemModel:v,collection:Ne||null,dataSource:Re||null,blockModel:Ce,fieldPath:Te||null,fieldName:Ie||null,collectionField:ke||null}}const le=getCollectionFromModel(g.model),ne=((ae=(ce=g.model)==null?void 0:ce.context)==null?void 0:ae.blockModel)||g.model,ue={itemModel:null,collection:null,dataSource:null,blockModel:ne,fieldPath:null,fieldName:null,collectionField:null},he=typeof(le==null?void 0:le.getField)=="function"?le.getField(e):null;if(he){const ye=String((he==null?void 0:he.name)||e||""),be=(me=(ge=g.model)==null?void 0:ge.context)==null?void 0:me.dataSourceManager,Pe=(le!=null&&le.dataSourceKey?(fe=be==null?void 0:be.getDataSource)==null?void 0:fe.call(be,le.dataSourceKey):void 0)||null;return A(x({},ue),{collection:le,dataSource:Pe,blockModel:ne,fieldPath:ye,fieldName:ye,collectionField:he||null})}const _e=b(le,e);if(!_e)return ue;const ve=_e.collection,Se=_e.fieldName,Ae=(xe=(pe=g.model)==null?void 0:pe.context)==null?void 0:xe.dataSourceManager,Me=(ve!=null&&ve.dataSourceKey?(de=Ae==null?void 0:Ae.getDataSource)==null?void 0:de.call(Ae,ve.dataSourceKey):void 0)||null;return A(x({},ue),{collection:ve,dataSource:Me,blockModel:ne,fieldPath:Se,fieldName:Se,collectionField:_e.collectionField||null})},[g.model,v,b,e]),{collection:y,dataSource:F,blockModel:S,fieldPath:P,fieldName:j,collectionField:I}=C,M=(m=(d=C==null?void 0:C.itemModel)==null?void 0:d.context)==null?void 0:m.collectionField,E=import_react2.default.useMemo(()=>getFieldInterface(I)||getFieldInterface(M),[I,M]),D=I||M,k=import_react2.default.useMemo(()=>{var G;if(isToManyAssociationField(I))return!0;const Q=getFieldInterface(I);return Q==="multipleSelect"||Q==="checkboxGroup"||((G=I==null?void 0:I.uiSchema)==null?void 0:G.type)==="array"},[I]),w=import_react2.default.useMemo(()=>{if(E&&DATE_FIELD_INTERFACES.has(E))return!0;const G=typeof j=="string"&&j||(typeof e=="string"?e.split(".").filter(Boolean).slice(-1)[0]:"");return G==="createdAt"||G==="updatedAt"},[j,E,e]),B=u&&w,N=import_react2.default.useMemo(()=>{if(!B)return DEFAULT_DATE_VARIABLE_COMPONENT_PROPS;const G=getFieldComponentProps(D),Q=normalizeExactDatePickerMode(G==null?void 0:G.picker),X=["datetime","datetimeNoTz","createdAt","updatedAt","unixTimestamp"].includes(E),ee=typeof(G==null?void 0:G.showTime)=="boolean"?G.showTime:X,ie=typeof(G==null?void 0:G.dateFormat)=="string"&&G.dateFormat?G.dateFormat:typeof(G==null?void 0:G.format)=="string"&&G.format?G.format.split(" ")[0]:"YYYY-MM-DD",re=typeof(G==null?void 0:G.timeFormat)=="string"&&G.timeFormat?G.timeFormat:"HH:mm:ss",se=typeof(G==null?void 0:G.format)=="string"&&G.format?G.format:ee?`${ie} ${re}`:ie;return{picker:Q,showTime:ee,timeFormat:re,format:se,exactNormalizeMode:getDateVariableExactNormalizeMode(E)}},[D,E,B]),T=import_react2.default.useMemo(()=>te(N,["exactNormalizeMode"]),[N]),$=import_react2.default.useRef(T);$.current=T;const q=import_react2.default.useRef(g.t);q.current=g.t;const O=import_react2.default.useCallback(G=>{let Q=G;if(n&&(Q=normalizeFilterValueByOperator(n,Q)),k){if(Q==null||Q==="")return[];if(!Array.isArray(Q))return[Q]}return Q},[k,n]),[V,z]=import_react2.default.useState(null);import_react2.default.useEffect(()=>{var G,Q,X,ee,ie,re,se,ce,ae,ge,me,fe,pe,xe,de,le,ne,ue,he,_e,ve,Se,Ae,Me,ye,be,Pe;if(!y||!P||!j)return;const Ce=((Q=(G=C==null?void 0:C.itemModel)==null?void 0:G.context)==null?void 0:Q.engine)||((ee=(X=g.model)==null?void 0:X.context)==null?void 0:ee.engine),je=(typeof y.getFields=="function"?y.getFields()||[]:[]).find(De=>(De==null?void 0:De.name)===j)||(typeof y.getField=="function"?y.getField(j):void 0)||I,we=je?import_flow_engine.EditableItemModel.getDefaultBindingByField(((ie=C==null?void 0:C.itemModel)==null?void 0:ie.context)||((re=g.model)==null?void 0:re.context),je):null,Ne=we==null?void 0:we.modelName,Re=(se=v==null?void 0:v.subModels)==null?void 0:se.field,Te=Re&&!Array.isArray(Re)?Re.use:void 0,Ie=a?Te||Ne:Ne||Te;if(!Ie)return;const ke=(ce=Ce==null?void 0:Ce.createModel)==null?void 0:ce.call(Ce,{use:"VariableFieldFormModel",subModels:{fields:[{use:Ie,stepParams:{fieldSettings:{init:{dataSourceKey:y==null?void 0:y.dataSourceKey,collectionName:y==null?void 0:y.name,fieldPath:P}}},props:{placeholder:r}}]}});if(!ke)return;(ge=(ae=ke.context)==null?void 0:ae.defineProperty)==null||ge.call(ae,"collection",{value:y}),F&&((fe=(me=ke.context)==null?void 0:me.defineProperty)==null||fe.call(me,"dataSource",{value:F})),I&&((xe=(pe=ke.context)==null?void 0:pe.defineProperty)==null||xe.call(pe,"collectionField",{value:I})),S&&((le=(de=ke.context)==null?void 0:de.defineProperty)==null||le.call(de,"blockModel",{value:S})),ke.context&&Object.defineProperty(ke.context,"resource",{configurable:!0,enumerable:!0,get:()=>S==null?void 0:S.resource});const Fe=(ue=(ne=ke==null?void 0:ke.subModels)==null?void 0:ne.fields)==null?void 0:ue[0],ht=isToManyAssociationField(I),gt=withFullWidthStyle(pickStyle((he=Fe==null?void 0:Fe.props)==null?void 0:he.style)),ze=typeof(c==null?void 0:c.label)=="string"&&c.label?c.label:void 0;ze&&typeof(Fe==null?void 0:Fe.setStepParams)=="function"&&Fe.setStepParams("selectSettings","fieldNames",{label:ze}),(_e=Fe==null?void 0:Fe.setProps)==null||_e.call(Fe,{disabled:!1,readPretty:!1,pattern:"editable",updateAssociation:!1,multiple:ht,style:gt}),(ve=Fe==null?void 0:Fe.dispatchEvent)==null||ve.call(Fe,"beforeRender",void 0,{sequential:!0,useCache:!0}),ensureOptionsFromUiSchemaEnumIfAbsent(Fe,I);const xt=typeof((Se=Fe==null?void 0:Fe.props)==null?void 0:Se.mode)<"u",$e=(Me=(Ae=I==null?void 0:I.uiSchema)==null?void 0:Ae["x-component-props"])==null?void 0:Me.mode,Ue=(I==null?void 0:I.interface)==="multipleSelect"?typeof $e=="string"?$e:"multiple":typeof $e=="string"?$e:void 0;if(!xt&&Ue&&((ye=Fe==null?void 0:Fe.setProps)==null||ye.call(Fe,{mode:Ue})),I!=null&&I.targetCollection){const De=I.targetCollection,Be=((be=Fe==null?void 0:Fe.props)==null?void 0:be.fieldNames)||{},Oe=typeof(c==null?void 0:c.value)=="string"&&c.value||typeof(Be==null?void 0:Be.value)=="string"&&Be.value||(I==null?void 0:I.targetKey)||(De==null?void 0:De.filterTargetKey)||"id",ft=typeof(Be==null?void 0:Be.label)=="string"&&Be.label?Be.label:void 0,_t=typeof(De==null?void 0:De.titleField)=="string"?De.titleField:void 0,Ze=typeof(c==null?void 0:c.label)=="string"&&c.label||ft||_t;(Pe=Fe==null?void 0:Fe.setProps)==null||Pe.call(Fe,{fieldNames:A(x(x({},Be),Ze?{label:Ze}:{}),{value:Oe})})}return z(ke),()=>{var De,Be;(Be=(De=ke.subModels.fields).forEach)==null||Be.call(De,Oe=>Oe.remove()),ke.remove()}},[y,F,S,P,j,g,r,C,I,v,a,c==null?void 0:c.label,c==null?void 0:c.value]),import_react2.default.useEffect(()=>{var G,Q,X,ee,ie,re,se,ce;const ae=(Q=(G=V==null?void 0:V.subModels)==null?void 0:G.fields)==null?void 0:Q[0];if(!ae||!n||!Array.isArray(l)||l.length===0)return;const ge=l.find(xe=>(xe==null?void 0:xe.value)===n),me=(X=ge==null?void 0:ge.schema)==null?void 0:X["x-component-props"];if(me&&typeof(ae==null?void 0:ae.setProps)=="function"){const xe=withFullWidthStyle(pickStyle(me==null?void 0:me.style)||pickStyle((ee=ae==null?void 0:ae.props)==null?void 0:ee.style));ae.setProps(A(x({},me),{style:xe}))}const fe=((re=(ie=C==null?void 0:C.itemModel)==null?void 0:ie.context)==null?void 0:re.app)||((ce=(se=g==null?void 0:g.model)==null?void 0:se.context)==null?void 0:ce.app),pe=resolveOperatorComponent(fe,n,l);if(pe&&ae instanceof InputFieldModel){const xe=ae.__originalRender||ae.render;ae.__originalRender=xe;const{Comp:de,props:le}=pe;ae.render=()=>{var ne;return(0,import_jsx_runtime.jsx)(de,A(x(x({},ae.props),le),{style:x(x({width:"100%"},(ne=ae.props)==null?void 0:ne.style),le==null?void 0:le.style)}))},rewrapReactiveRender$1(ae)}else typeof ae.__originalRender=="function"&&(ae.render=ae.__originalRender,rewrapReactiveRender$1(ae))},[n,l,V,g,C]);const U=import_react2.default.useMemo(()=>G=>{const Q=pickStyle(G==null?void 0:G.style);return import_react2.default.useEffect(()=>{var X,ee,ie,re;const se=O(G==null?void 0:G.value),ce=ge=>{var me,fe,pe,xe,de;const le=f(ge),ne=n?normalizeFilterValueByOperator(n,le):le,ue=O(ne);(me=V==null?void 0:V.setProps)==null||me.call(V,{value:ue});const he=(pe=(fe=V==null?void 0:V.subModels)==null?void 0:fe.fields)==null?void 0:pe[0];(xe=he==null?void 0:he.setProps)==null||xe.call(he,{value:ue}),(de=G==null?void 0:G.onChange)==null||de.call(G,ne)},ae=(ee=(X=V==null?void 0:V.subModels)==null?void 0:X.fields)==null?void 0:ee[0];(ie=ae==null?void 0:ae.setProps)==null||ie.call(ae,{value:se,onChange:ce,onCompositionStart:G==null?void 0:G.onCompositionStart,onCompositionUpdate:G==null?void 0:G.onCompositionUpdate,onCompositionEnd:G==null?void 0:G.onCompositionEnd}),(re=V==null?void 0:V.setProps)==null||re.call(V,A(x({},G),{value:se,onChange:ce}))},[G]),V?(0,import_jsx_runtime.jsx)("div",{style:A(x({},withFullWidthStyle(Q)),{flex:1}),children:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,{model:V,showFlowSettings:!1})}):(0,import_jsx_runtime.jsx)(import_antd.Input,{value:G==null?void 0:G.value,onChange:X=>{var ee;return(ee=G==null?void 0:G.onChange)==null?void 0:ee.call(G,f(X))},placeholder:r,style:withFullWidthStyle(Q)})},[r,V,O,f]),K=import_react2.default.useMemo(()=>G=>{var Q,X,ee,ie;const re=pickStyle(G==null?void 0:G.style),se=G==null?void 0:G.value,ce=(0,import_flow_engine.isCtxDateExpression)(se)?(0,import_flow_engine.parseCtxDateExpression)(se):se,ae=typeof ce>"u"?void 0:ce,{token:ge}=import_antd.theme.useToken(),[me,fe]=import_react2.default.useState(!1),pe=q.current,xe=$.current,de=import_react2.default.useMemo(()=>buildDateDynamicOptions(pe,!0),[pe]),le=ae&&typeof ae=="object"&&!Array.isArray(ae)?ae==null?void 0:ae.type:void 0,ne=typeof le=="string"&&le?le:"exact",ue=Array.isArray(ae),he=toExactPickerDisplayValue(ae,{format:xe.format,isRange:!1}),_e=toExactPickerDisplayValue(ae,{format:xe.format,isRange:!0}),ve=ye=>{var be,Pe;if(fe(!1),ye==="exact"){(be=G==null?void 0:G.onChange)==null||be.call(G,"");return}const Ce={type:ye};(ye==="past"||ye==="next")&&(Ce.number=1,Ce.unit="day"),(Pe=G==null?void 0:G.onChange)==null||Pe.call(G,Ce)},Se=ye=>{var be;(be=G==null?void 0:G.onChange)==null||be.call(G,ye||"")},Ae=ye=>{var be;(be=G==null?void 0:G.onChange)==null||be.call(G,ye||"")},Me=()=>{const ye=de.slice(0,3),be=de.slice(3),Pe=import_css.css`
1773
+ `;class PageModel extends import_flow_engine.FlowModel{constructor(){super(...arguments),R(this,"tabBarExtraContent",{}),R(this,"viewActivatedListener"),R(this,"dataSourceDirtyListener"),R(this,"lastSeenEmitterViewActivatedVersion",0),R(this,"dirtyRefreshScheduled",!1),R(this,"unmounted",!1),R(this,"documentTitleUpdateVersion",0),R(this,"createPageTabModelOptions",()=>{const t=(0,import_shared.uid)();return{uid:t,use:"RootPageTabModel",props:{route:{parentId:this.props.routeId,type:"tabs",schemaUid:t,tabSchemaName:(0,import_shared.uid)(),params:[],hideInMenu:!1,enableTabs:!1}}}})}getActiveTabKey(){var t,o,r,i;const n=(o=(t=this.context.view)==null?void 0:t.navigation)==null?void 0:o.viewParams;return n?n.tabUid||((r=this.getFirstTab())==null?void 0:r.uid):this.props.tabActiveKey||((i=this.getFirstTab())==null?void 0:i.uid)}scheduleActiveLifecycleRefresh(t=!1){this.dirtyRefreshScheduled||(this.dirtyRefreshScheduled=!0,Promise.resolve().then(()=>{if(this.dirtyRefreshScheduled=!1,this.unmounted||(0,import_flow_engine.getPageActive)(this.context)===!1)return;const o=this.getActiveTabKey();o&&this.invokeTabModelLifecycleMethod(o,"onActive",t)}).catch(()=>{}))}onMount(){var t,o,r,i,n,l,a,c,u;super.onMount(),this.unmounted=!1,this.setProps("tabActiveKey",(t=this.context.view.inputArgs)==null?void 0:t.tabUid),(o=this.context)!=null&&o.pageInfo&&(this.context.pageInfo.version="v2"),this.updateDocumentTitle(),this.viewActivatedListener||(this.viewActivatedListener=p=>{const h=this.getActiveTabKey();h&&this.invokeTabModelLifecycleMethod(h,"onActive")},(n=(i=(r=this.flowEngine)==null?void 0:r.emitter)==null?void 0:i.on)==null||n.call(i,import_flow_engine.VIEW_ACTIVATED_EVENT,this.viewActivatedListener));const d=(0,import_flow_engine.getEmitterViewActivatedVersion)((l=this.flowEngine)==null?void 0:l.emitter),m=d>0&&d!==this.lastSeenEmitterViewActivatedVersion;if(this.lastSeenEmitterViewActivatedVersion=d,m&&(0,import_flow_engine.getPageActive)(this.context)!==!1){const p=this.getActiveTabKey();p&&this.invokeTabModelLifecycleMethod(p,"onActive")}this.dataSourceDirtyListener||(this.dataSourceDirtyListener=p=>{this.scheduleActiveLifecycleRefresh()},(u=(c=(a=this.flowEngine)==null?void 0:a.emitter)==null?void 0:c.on)==null||u.call(c,import_flow_engine.DATA_SOURCE_DIRTY_EVENT,this.dataSourceDirtyListener))}onUnmount(){var t,o,r,i,n,l;this.unmounted=!0,this.viewActivatedListener&&((r=(o=(t=this.flowEngine)==null?void 0:t.emitter)==null?void 0:o.off)==null||r.call(o,import_flow_engine.VIEW_ACTIVATED_EVENT,this.viewActivatedListener),this.viewActivatedListener=void 0),this.dataSourceDirtyListener&&((l=(n=(i=this.flowEngine)==null?void 0:i.emitter)==null?void 0:n.off)==null||l.call(n,import_flow_engine.DATA_SOURCE_DIRTY_EVENT,this.dataSourceDirtyListener),this.dataSourceDirtyListener=void 0),super.onUnmount()}invokeTabModelLifecycleMethod(t,o,r=!1){var i,n;o==="onActive"&&(i=this.context)!=null&&i.pageInfo&&(this.context.pageInfo.version="v2");const l=this.flowEngine.getModel(t);if(l){if(l.context.tabActive){const a=(0,import_flow_engine.getPageActive)(l.context)!==!1;l.context.tabActive.value=a&&o==="onActive"}(n=l.subModels.grid)==null||n.mapSubModels("items",a=>{var c;(c=a[o])==null||c.call(a,r)})}o==="onActive"&&this.updateDocumentTitle(t)}updateDocumentTitle(t,o=0){return L(this,null,function*(){var r,i,n,l,a,c,u,d,m,p,h,g,f,_,v,b;if(this.unmounted||(0,import_flow_engine.getPageActive)(this.context)===!1)return;const C=!!((i=(r=this.context)==null?void 0:r.view)!=null&&i.navigation),y=(a=(l=(n=this.context)==null?void 0:n.view)==null?void 0:l.inputArgs)==null?void 0:a.viewUid,F=(d=(u=(c=this.flowEngine)==null?void 0:c.context)==null?void 0:u.route)==null?void 0:d.pathname;if(C&&y&&typeof F=="string"){const I=(m=(0,import_flow_engine.parsePathnameToViewParams)(F).at(-1))==null?void 0:m.viewUid;if(I&&I!==y)return}const S=++this.documentTitleUpdateVersion,P=I=>L(this,null,function*(){var M,E;if(!I||typeof I!="string")return"";try{const D=yield(E=(M=this.context).resolveJsonTemplate)==null?void 0:E.call(M,I);return D==null?"":String(D)}catch{return I}});let j="";if(this.props.enableTabs){const I=t||this.getActiveTabKey(),M=I?this.flowEngine.getModel(I):this.getFirstTab();if(!M&&o<5){window.setTimeout(()=>{this.unmounted||S===this.documentTitleUpdateVersion&&this.updateDocumentTitle(I,o+1)},0);return}j=(yield P((g=(h=(p=M==null?void 0:M.stepParams)==null?void 0:p.pageTabSettings)==null?void 0:h.tab)==null?void 0:g.documentTitle))||((f=M==null?void 0:M.getTabTitle)==null?void 0:f.call(M))||""}else j=(yield P((b=(v=(_=this.stepParams)==null?void 0:_.pageSettings)==null?void 0:v.general)==null?void 0:b.documentTitle))||this.props.title||"";S===this.documentTitleUpdateVersion&&typeof j=="string"&&j!==""&&(document.title=j)})}mapTabs(){return this.mapSubModels("tabs",t=>!this.context.flowSettingsEnabled&&t.hidden?null:{key:t.uid,label:(0,import_jsx_runtime.jsx)(import_flow_engine.Droppable,{model:t,children:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,{model:t,showFlowSettings:{showBackground:!0,showBorder:!1,toolbarPosition:"above",style:{transform:"translateY(8px)"}},extraToolbarItems:[{key:"drag-handler",component:import_flow_engine.DragHandler,sort:1}]})}),children:t.renderChildren()}).filter(Boolean)}getFirstTab(){var t;return(t=this.subModels.tabs)==null?void 0:t[0]}renderFirstTab(){var t;const o=this.getFirstTab();return(t=o==null?void 0:o.renderChildren)==null?void 0:t.call(o)}handleDragEnd(t){return L(this,null,function*(){throw new Error("Method not implemented.")})}renderTabs(){var t,o,r,i,n;const l=(o=(t=this.context.themeToken)==null?void 0:t.paddingLG)!=null?o:16,a=this.context.flowSettingsEnabled?TABS_DESIGN_MODE_ROOT_CLASS_NAME:void 0,c=this.tabBarExtraContent.left!==void 0?this.tabBarExtraContent.left:(0,import_jsx_runtime.jsx)("span",{"aria-hidden":"true",style:{display:"inline-block",width:l,height:1}}),u=this.tabBarExtraContent.right!==void 0?this.tabBarExtraContent.right:(0,import_jsx_runtime.jsx)(import_flow_engine.AddSubModelButton,{model:this,subModelKey:"tabs",items:[{key:"blank",label:this.context.t("Blank tab"),createModelOptions:this.createPageTabModelOptions}],children:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowSettingsButton,{icon:(0,import_jsx_runtime.jsx)(import_icons.PlusOutlined,{}),children:this.context.t("Add tab")})});return(0,import_jsx_runtime.jsx)(import_flow_engine.DndProvider,{onDragEnd:this.handleDragEnd.bind(this),children:(0,import_jsx_runtime.jsx)(import_antd.Tabs,{className:a,activeKey:(i=(r=this.context.view)==null?void 0:r.navigation)!=null&&i.viewParams?this.context.view.navigation.viewParams.tabUid||((n=this.getFirstTab())==null?void 0:n.uid):this.props.tabActiveKey,tabBarStyle:this.props.tabBarStyle,items:this.mapTabs(),onChange:d=>{var m,p;(p=(m=this.context.view.navigation)==null?void 0:m.changeTo)==null||p.call(m,{tabUid:d}),this.invokeTabModelLifecycleMethod(d,"onActive"),this.invokeTabModelLifecycleMethod(this.props.tabActiveKey,"onInactive"),this.setProps("tabActiveKey",d)},tabBarExtraContent:{left:c,right:u}})})}render(){const t=this.context.themeToken,o=x({},this.props.headerStyle);return t&&(o.paddingBlock=t.paddingSM,o.paddingInline=t.paddingLG),this.props.enableTabs&&(o.paddingBottom=0),(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[this.props.displayTitle&&(0,import_jsx_runtime.jsx)(import_pro_layout.PageHeader,{title:this.props.title,style:o}),this.props.enableTabs?this.renderTabs():this.renderFirstTab()]})}}PageModel.registerFlow({key:"pageSettings",title:(0,import_flow_engine.tExpr)("Page settings"),steps:{general:{title:(0,import_flow_engine.tExpr)("Edit page"),uiSchema:{title:{type:"string",title:(0,import_flow_engine.tExpr)("Page title"),"x-decorator":"FormItem","x-component":"Input","x-reactions":{dependencies:["displayTitle"],fulfill:{state:{visible:"{{$deps[0]}}"}}}},documentTitle:{type:"string",title:(0,import_flow_engine.tExpr)("Document title"),description:(0,import_flow_engine.tExpr)("Used as the browser tab title when tabs are disabled. Supports variables. Leave empty to use Page title."),"x-decorator":"FormItem","x-component":TextAreaWithContextSelector,"x-component-props":{rows:1,maxRows:6}},displayTitle:{type:"boolean",title:(0,import_flow_engine.tExpr)("Display page title"),"x-decorator":"FormItem","x-component":"Switch"},enableTabs:{type:"boolean",title:(0,import_flow_engine.tExpr)("Enable tabs"),"x-decorator":"FormItem","x-component":"Switch"}},defaultParams(e){return{displayTitle:!0,enableTabs:!1}},handler(e,t){return L(this,null,function*(){var o,r;if(e.model.setProps("displayTitle",t.displayTitle),e.model.context.closable)e.model.setProps("title",e.t(t.title,{ns:"lm-desktop-routes"}));else{const i=(r=(o=e.model.context)==null?void 0:o.currentRoute)==null?void 0:r.title;e.model.setProps("title",e.t(t.title||i,{ns:"lm-desktop-routes"}))}e.model.setProps("enableTabs",t.enableTabs),e.view.type==="embed"?(e.model.setProps("headerStyle",{backgroundColor:"var(--colorBgContainer)"}),e.model.setProps("tabBarStyle",{backgroundColor:"var(--colorBgContainer)",marginBottom:0})):(e.model.setProps("headerStyle",{backgroundColor:"var(--colorBgLayout)"}),e.model.setProps("tabBarStyle",{backgroundColor:"var(--colorBgLayout)",marginBottom:0})),e.model.updateDocumentTitle()})}}}});class ChildPageModel extends PageModel{constructor(){super(...arguments),R(this,"tabBarExtraContent",{left:(0,import_jsx_runtime.jsx)(BackButtonUsedInSubPage,{})}),R(this,"createPageTabModelOptions",()=>({use:"ChildPageTabModel"}))}handleDragEnd(t){return L(this,null,function*(){var o,r;if(!((o=t.active)!=null&&o.id)||!((r=t.over)!=null&&r.id))throw new Error("Invalid drag event");this.flowEngine.moveModel(t.active.id,t.over.id)})}render(){return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[this.props.displayTitle&&this.props.title&&(0,import_jsx_runtime.jsx)(import_pro_layout.PageHeader,{title:this.props.title,style:this.props.headerStyle}),this.props.enableTabs?this.renderTabs():this.renderFirstTab()]})}}const BackButtonUsedInSubPage=()=>{var e;const t=(0,import_flow_engine.useFlowContext)(),o=t.themeToken,r=32,i=(e=o==null?void 0:o.paddingLG)!=null?e:16,n=(0,import_react2.useMemo)(()=>({width:"auto",height:"auto",lineHeight:1,padding:o.paddingXS,marginLeft:o.paddingLG,marginRight:r-o.paddingXS}),[o.paddingLG,o.paddingXS]);return t.view.type!=="embed"?(0,import_jsx_runtime.jsx)("span",{"aria-hidden":"true",style:{display:"inline-block",width:i,height:1}}):(0,import_jsx_runtime.jsx)(import_antd.Button,{"aria-label":"back-button",type:"text",icon:(0,import_jsx_runtime.jsx)(import_icons.ArrowLeftOutlined,{}),style:n,onClick:t.view.close})};class OldPageModel extends import_flow_engine.FlowModel{}OldPageModel.registerFlow({key:"pageSettings",title:(0,import_flow_engine.tExpr)("Page settings"),steps:{general:{title:(0,import_flow_engine.tExpr)("General"),uiSchema:{title:{type:"string",title:(0,import_flow_engine.tExpr)("Page title"),"x-decorator":"FormItem","x-component":"Input","x-reactions":{dependencies:["displayTitle"],fulfill:{state:{visible:"{{$deps[0]}}"}}}},displayTitle:{type:"boolean",title:(0,import_flow_engine.tExpr)("Display page title"),"x-decorator":"FormItem","x-component":"Switch"}},defaultParams(e){return{displayTitle:!0,enableTabs:!1}},handler(e,t){return L(this,null,function*(){var o,r;if(e.model.setProps("displayTitle",t.displayTitle),e.model.context.closable)e.model.setProps("title",t.title?e.t(t.title):null);else{const i=(r=(o=e.model.context)==null?void 0:o.currentRoute)==null?void 0:r.title;e.model.setProps("title",e.t(t.title||i))}e.model.setProps("enableTabs",t.enableTabs),e.model.context.closable?(e.model.setProps("headerStyle",{backgroundColor:e.themeToken.colorBgContainer}),e.model.setProps("tabBarStyle",{backgroundColor:e.themeToken.colorBgLayout,paddingInline:16,marginBottom:0})):(e.model.setProps("headerStyle",{backgroundColor:e.themeToken.colorBgContainer}),e.model.setProps("tabBarStyle",{backgroundColor:e.themeToken.colorBgContainer,paddingInline:16,marginBottom:0}))})}}}});class MainPageModel extends OldPageModel{renderFirstTab(){var t;return(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,{model:(t=this.subModels.tabs)==null?void 0:t[0]})}render(){return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[this.props.displayTitle&&(0,import_jsx_runtime.jsx)(import_pro_layout.PageHeader,{title:this.props.title,style:this.props.headerStyle}),this.renderFirstTab()]})}}class RouteModel extends import_flow_engine.FlowModel{}RouteModel.registerFlow({key:"popupSettings",on:"click",steps:{openView:{use:"openView",defaultParams(e){return{mode:"embed",preventClose:!0,pageModelClass:"RootPageModel"}}}}});function resolveViewParamsToViewList(e,t,o){return t.map((r,i)=>{let n,l=r.viewUid;return i===0?(n=o,l=o.uid):n=e.getModel(r.viewUid,!0),{params:r,modelUid:l,model:n,hidden:import_flow_engine.observable.ref(!1),index:i}})}function updateViewListHidden(e){let t=!1;for(let o=e.length-1;o>=0;o--){const r=e[o];getViewType(r)==="embed"&&!t?(t=!0,r.hidden.value=!1):r.hidden.value=t}}function getViewType(e){if(e.model instanceof RouteModel)return"embed";if(!e.model)return"drawer";const t=e.model.getStepParams("popupSettings","openView");return(t==null?void 0:t.mode)||"drawer"}const stableStringify=e=>e==null?"":typeof e=="object"?Array.isArray(e)?"["+e.map(stableStringify).join(",")+"]":"{"+Object.keys(e).sort().map(t=>`${t}:${stableStringify(e[t])}`).join(",")+"}":String(e),getKey=e=>{const{params:t,index:o}=e;return[stableStringify(t.viewUid),stableStringify(t.sourceId),stableStringify(t.filterByTk),String(o)].join("_")};function getViewDiffAndUpdateHidden(e,t){const o=new Map,r=new Map;e.forEach(l=>{const a=getKey(l);o.set(a,l)}),t.forEach(l=>{r.set(getKey(l),l)});const i=[];o.forEach((l,a)=>{r.has(a)?r.get(a).hidden=l.hidden:i.push(l)});const n=[];return r.forEach((l,a)=>{o.has(a)||n.push(l)}),{viewsToClose:i,viewsToOpen:n}}const openViewFlow=(0,import_flow_engine.defineFlow)({key:"popupSettings",title:(0,import_flow_engine.tExpr)("Popup settings"),on:"click",sort:300,steps:{openView:{use:"openView",hideInSettings:e=>L(void 0,null,function*(){var t,o,r,i;const n=(r=(o=(t=e.model).getStepParams)==null?void 0:o.call(t,"displayFieldSettings","clickToOpen"))==null?void 0:r.clickToOpen;return e.collectionField?n===void 0?!((i=e.collectionField)!=null&&i.isAssociationField())||e.disableFieldClickToOpen:n===!1:!1})}},defaultParams:e=>{var t,o,r,i,n,l,a,c;let u,d,m;const p=e.collectionField,h=e.blockModel,g=(o=(t=e.model)==null?void 0:t.parent)==null?void 0:o.associationPathName,f=e.collection||(h==null?void 0:h.collection),_=C=>{var y;return!!((y=C==null?void 0:C.isAssociationField)!=null&&y.call(C))},v=!_(p)&&g?(r=f==null?void 0:f.getFieldByPath)==null?void 0:r.call(f,g):void 0,b=_(p)?p:v;if(_(b)){const C=b.targetCollection;h==null||h.collection,u=C==null?void 0:C.name,d=C==null?void 0:C.dataSourceKey,m=b==null?void 0:b.resourceName}else p?(u=(i=e.collection)==null?void 0:i.name,d=(n=e.collection)==null?void 0:n.dataSourceKey,m=p==null?void 0:p.target):(u=(l=e.collection)==null?void 0:l.name,d=(a=e.collection)==null?void 0:a.dataSourceKey,m=(c=e.association)==null?void 0:c.resourceName);return{openView:{collectionName:u,associationName:m,dataSourceKey:d}}}}),getOpenViewStepParams=e=>e.getStepParams("popupSettings","openView");function InternalFlowPage(e){var t=e,{uid:o}=t,r=te(t,["uid"]);const i=(0,import_flow_engine.useFlowModelById)(o);return(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,x({model:i,fallback:(0,import_jsx_runtime.jsx)(SkeletonFallback,{style:{margin:i!=null&&i.context.isMobileLayout?8:i==null?void 0:i.context.themeToken.marginBlock}}),hideRemoveInSettings:!0,showFlowSettings:{showBackground:!1,showBorder:!1}},r))}const FlowRoute=()=>{const e=(0,import_react2.useRef)(null),t=(0,import_flow_engine.useFlowEngine)(),o=useCurrentRoute(),{refresh:r}=useAllAccessDesktopRoutes(),{isMobileLayout:i}=useMobileLayout(),n=(0,import_react2.useRef)(t.context.route.params.name),l=(0,import_react2.useRef)({}),a=(0,import_react2.useRef)([]),c=(0,import_react2.useRef)(!1),{designable:u}=useDesignable(),{active:d}=useKeepAlive(),m=(0,import_react2.useRef)(!1),p=(0,import_react2.useMemo)(()=>t.createModel({uid:n.current,use:"RouteModel"}),[t]);return(0,import_react2.useEffect)(()=>{p.context.defineProperty("pageActive",{value:import_flow_engine.observable.ref(!1),info:{description:"Whether current page route is active (keep-alive). This is an observable.ref<boolean> (use ctx.pageActive.value to read/write).",detail:"observable.ref<boolean>"}})},[p]),(0,import_react2.useEffect)(()=>{p.context.pageActive.value=d},[d,p]),(0,import_react2.useEffect)(()=>{t.context.defineProperty("isMobileLayout",{get:()=>i,info:{description:"Whether current layout is mobile layout.",detail:"boolean"}}),t.context.defineProperty("deviceType",{get:()=>import_react_device_detect.deviceType==="browser"?"computer":import_react_device_detect.deviceType,cache:!1,meta:{type:"string",title:t.translate("Current device type"),interface:"select",uiSchema:{enum:[{label:t.translate("Computer"),value:"computer"},{label:t.translate("Mobile"),value:"mobile"},{label:t.translate("Tablet"),value:"tablet"},{label:t.translate("SmartTv"),value:"smarttv"},{label:t.translate("Console"),value:"console"},{label:t.translate("Wearable"),value:"wearable"},{label:t.translate("Embedded"),value:"embedded"}],"x-component":"Select"}},info:{description:"Current device type (computer/mobile/tablet/...).",detail:"string"}})},[i,t]),(0,import_react2.useEffect)(()=>{i?t.flowSettings.disable():u&&t.flowSettings.enable()},[u,t,i]),(0,import_react2.useEffect)(()=>{e.current&&(t.context.defineProperty("layoutContentElement",{get:()=>e.current}),p.context.defineProperty("currentRoute",{get:()=>o}),t.context.defineProperty("currentRoute",{get:()=>o}),p.context.defineProperty("refreshDesktopRoutes",{get:()=>r}))},[p,o,r,t]),(0,import_react2.useEffect)(()=>{const h=(0,import_flow_engine.reaction)(()=>t.context.route,g=>{var f;if(g.params.name!==n.current){m.current=!0;return}try{m.current=!1;const _=(0,import_flow_engine.parsePathnameToViewParams)(g.pathname),v=resolveViewParamsToViewList(t,_,p);if(a.current.length===0&&v.length>1&&!c.current){const y=F=>{v[F]&&(F===0?new import_flow_engine.ViewNavigation(t.context,[]).navigateTo(v[F].params,{replace:!0}):new import_flow_engine.ViewNavigation(t.context,v.slice(0,F).map(S=>S.params)).navigateTo(v[F].params),y(F+1))};y(0),c.current=!0;return}const{viewsToClose:b,viewsToOpen:C}=getViewDiffAndUpdateHidden(a.current,v);if(console.log("[NocoBase] FlowRoute view diff:",{viewsToClose:b,viewsToOpen:C}),b.length&&(b.forEach(y=>{var F,S;(S=(F=l.current[getKey(y)])==null?void 0:F.destroy)==null||S.call(F,!0),delete l.current[getKey(y)]}),updateViewListHidden(v)),C.length&&L(void 0,null,function*(){const y=C.filter(S=>!S.model);if(y.length>0&&(yield Promise.all(y.map(S=>L(void 0,null,function*(){try{S.model=yield t.loadModel({uid:S.modelUid})}catch(P){console.error(`[NocoBase] Failed to load model ${S.modelUid}:`,P)}})))),m.current)return;updateViewListHidden(v);const F=S=>{if(!C[S])return;const P=C[S];if(!P.model)return;const j=import_react2.default.createRef(),I=import_react2.default.createRef(),M=getOpenViewStepParams(P.model),E=v.slice(0,P.index).map(k=>k.params.viewUid),D=new import_flow_engine.ViewNavigation(t.context,v.slice(0,P.index+1).map(k=>k.params));P.model.dispatchEvent("click",A(x({target:e.current,collectionName:M==null?void 0:M.collectionName,associationName:M==null?void 0:M.associationName,dataSourceKey:M==null?void 0:M.dataSourceKey,destroyRef:j,updateRef:I,openerUids:E},P.params),{navigation:D,onOpen(){F(S+1)},hidden:P.hidden,isMobileLayout:i,triggerByRouter:!0})),l.current[getKey(P)]={destroy:k=>{var w;return(w=j.current)==null?void 0:w.call(j)},update:k=>{var w;return(w=I.current)==null?void 0:w.call(I,k)},navigation:D}};F(0)}),b.length===0&&C.length===0){const y=v.at(-1);y&&((f=l.current[getKey(y)])==null||f.navigation.setViewStack(v.map(F=>F.params)))}a.current=[...v]}catch(_){console.error("[NocoBase] Failed to resolve view params to view list:",_)}},{fireImmediately:!0});return()=>{h==null||h(),a.current.forEach(g=>{var f;t.removeModelWithSubModels(g.params.viewUid),(f=l.current[getKey(g)])==null||f.destroy()})}},[t,i,p]),(0,import_jsx_runtime.jsx)("div",{ref:e})},FlowPage=import_react2.default.memo(e=>{const t=e,{pageModelClass:o="ChildPageModel",parentId:r,onModelLoaded:i,defaultTabTitle:n}=t,l=te(t,["pageModelClass","parentId","onModelLoaded","defaultTabTitle"]),a=(0,import_flow_engine.useFlowEngine)(),c=(0,import_flow_engine.useFlowViewContext)(),{loading:u,data:d}=(0,import_ahooks.useRequest)(()=>L(void 0,null,function*(){var m;const p={async:!0,parentId:r,subKey:"page",subType:"object",use:o};if(o==="ChildPageModel"){const g=n||((m=a.translate)==null?void 0:m.call(a,"Details"));p.subModels={tabs:[{use:"ChildPageTabModel",stepParams:{pageTabSettings:{tab:{title:g}}}}]},p.stepParams={pageSettings:{general:{displayTitle:!1,enableTabs:!0}}}}const h=yield a.loadOrCreateModel(p);return h!=null&&h.uid&&i&&(h.context.addDelegate(c),h.removeParentDelegate(),i(h.uid,h)),h}),{refreshDeps:[r]});return u||!(d!=null&&d.uid)?(0,import_jsx_runtime.jsx)(SkeletonFallback,{style:{margin:c!=null&&c.isMobileLayout?8:c==null?void 0:c.themeToken.marginBlock}}):(0,import_jsx_runtime.jsx)(InternalFlowPage,x({uid:d.uid},l))});FlowPage.displayName="FlowPage";const RemoteFlowModelRenderer=e=>{const t=e,{uid:o,parentId:r,subKey:i}=t,n=te(t,["uid","parentId","subKey"]),l=(0,import_flow_engine.useFlowEngine)(),{loading:a,data:c}=(0,import_ahooks.useRequest)(()=>L(void 0,null,function*(){return yield l.loadModel({uid:o,parentId:r,subKey:i})}),{refreshDeps:[o,r,i]});return a||!(c!=null&&c.uid)?(0,import_jsx_runtime.jsx)(SkeletonFallback,{style:{margin:16}}):(0,import_jsx_runtime.jsx)(InternalFlowPage,x({uid:c.uid},n))};function PageTabChildrenRenderer({ctx:e,options:t}){const{data:o,loading:r}=(0,import_ahooks.useRequest)(()=>L(this,null,function*(){const n=yield e.engine.loadOrCreateModel(t);return n.context.addDelegate(e),n}),{refreshDeps:[e.model.uid]}),i=e!=null&&e.isMobileLayout?8:e==null?void 0:e.themeToken.marginBlock;return r||!(o!=null&&o.uid)?(0,import_jsx_runtime.jsx)(SkeletonFallback,{style:{margin:i}}):(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,{model:o,fallback:(0,import_jsx_runtime.jsx)(SkeletonFallback,{style:{margin:i}})})}function normalizePersistedRoute(e){if(Array.isArray(e))return e.find(t=>!!t&&typeof t=="object");if(e&&typeof e=="object")return e}class BasePageTabModel extends import_flow_engine.FlowModel{onInit(t){super.onInit(t),this.context.defineProperty("tabActive",{value:import_flow_engine.observable.ref(!0),info:{description:"Whether current tab is active (observable.ref).",detail:"observable.ref<boolean>"}})}getTabTitle(t="Untitled"){var o,r;const i=this.context.t(t,{ns:"client"});return this.context.t((r=(o=this.stepParams.pageTabSettings)==null?void 0:o.tab)==null?void 0:r.title,{ns:"lm-desktop-routes"})||i}getTabIcon(){var t,o;return(o=(t=this.stepParams.pageTabSettings)==null?void 0:t.tab)==null?void 0:o.icon}renderChildren(){return null}renderHiddenInConfig(){return(0,import_jsx_runtime.jsxs)("span",{style:{display:"inline-block",paddingTop:this.context.flowSettingsEnabled?10:0,opacity:.5},children:[(0,import_jsx_runtime.jsx)(Icon,{style:{marginRight:8},type:this.getTabIcon()}),this.getTabTitle()]})}render(){return(0,import_jsx_runtime.jsxs)("span",{style:{display:"inline-block",paddingTop:this.context.flowSettingsEnabled?10:0},children:[(0,import_jsx_runtime.jsx)(Icon,{style:{marginRight:8},type:this.getTabIcon()}),this.getTabTitle()]})}}BasePageTabModel.registerFlow({key:"pageTabSettings",title:(0,import_flow_engine.tExpr)("Tab settings"),steps:{tab:{title:(0,import_flow_engine.tExpr)("Edit tab"),preset:!0,uiSchema:{title:{title:(0,import_flow_engine.tExpr)("Tab name"),"x-component":"Input","x-decorator":"FormItem",required:!0},documentTitle:{type:"string",title:(0,import_flow_engine.tExpr)("Document title"),description:(0,import_flow_engine.tExpr)("Used as the browser tab title when this tab is active. Supports variables. Leave empty to use Tab name."),"x-decorator":"FormItem","x-component":TextAreaWithContextSelector,"x-component-props":{rows:1,maxRows:6}},icon:{title:(0,import_flow_engine.tExpr)("Icon"),"x-decorator":"FormItem","x-component":"IconPicker"}},handler(e,t){return L(this,null,function*(){var o;const r=typeof(e==null?void 0:e.t)=="function"?e.t.bind(e):n=>n;e.model.setProps("title",r(t.title,{ns:"lm-desktop-routes"})),e.model.setProps("icon",t.icon);const i=e.engine.getModel(e.model.parentId);(o=i==null?void 0:i.updateDocumentTitle)==null||o.call(i)})}}}});class RootPageTabModel extends BasePageTabModel{renderChildren(){return(0,import_jsx_runtime.jsx)(PageTabChildrenRenderer,{ctx:this.context,options:{parentId:this.uid,subKey:"grid",async:!0,subType:"object",use:"BlockGridModel"}})}saveStepParams(){return L(this,null,function*(){return this.save()})}save(){return L(this,null,function*(){var t,o,r,i,n;const l=this.serialize(),a=(r=(o=(t=this.stepParams)==null?void 0:t.pageTabSettings)==null?void 0:o.tab)==null?void 0:r.documentTitle,c=yield this.context.api.request({method:"post",url:"desktopRoutes:updateOrCreate",params:{filterKeys:["schemaUid"]},data:A(x({},this.props.route),{title:this.getTabTitle(""),icon:this.getTabIcon(),options:{flowRegistry:l.flowRegistry,documentTitle:a}})}),u=normalizePersistedRoute((i=c==null?void 0:c.data)==null?void 0:i.data);u&&this.setProps("route",A(x(x({},this.props.route),u),{options:x(x({},(n=this.props.route)==null?void 0:n.options),u.options)}))})}destroy(){return L(this,null,function*(){return this.observerDispose(),this.invalidateFlowCache("beforeRender",!0),this.flowEngine.removeModel(this.uid),yield this.context.api.request({method:"post",url:"desktopRoutes:destroy",params:{filter:{schemaUid:this.uid}},data:this.props.route}),!0})}}class ChildPageTabModel extends BasePageTabModel{renderChildren(){return(0,import_jsx_runtime.jsx)(PageTabChildrenRenderer,{ctx:this.context,options:{parentId:this.uid,subKey:"grid",async:!0,subType:"object",use:"BlockGridModel"}})}}class PageTabModel extends import_flow_engine.FlowModel{render(){return(0,import_jsx_runtime.jsx)("div",{children:(0,import_jsx_runtime.jsx)(RemoteFlowModelRenderer,{parentId:this.uid,subKey:"grid",showFlowSettings:!1})})}}class RootPageModel extends PageModel{constructor(){super(...arguments),R(this,"mounted",!1)}ensurePersistedRouteId(t){return L(this,null,function*(){var o,r,i,n;const l=(r=(o=t==null?void 0:t.props)==null?void 0:o.route)==null?void 0:r.id;return l??(typeof(t==null?void 0:t.save)=="function"&&(yield t.save()),(n=(i=t==null?void 0:t.props)==null?void 0:i.route)==null?void 0:n.id)})}onMount(){super.onMount(),(0,import_flow_engine.reaction)(()=>this.context.pageActive.value,()=>{var t,o;if(this.context.pageActive.value&&this.mounted){const r=(t=this.subModels.tabs)==null?void 0:t[0];r&&(this.setProps("tabActiveKey",r.uid),this.invokeTabModelLifecycleMethod(r.uid,"onActive",!0))}if(this.context.pageActive.value===!1)if(this.props.tabActiveKey)this.invokeTabModelLifecycleMethod(this.props.tabActiveKey,"onInactive");else{const r=(o=this.subModels.tabs)==null?void 0:o[0];r&&this.invokeTabModelLifecycleMethod(r.uid,"onInactive")}this.mounted=!0})}saveStepParams(){return L(this,null,function*(){yield Ee(RootPageModel.prototype,this,"saveStepParams").call(this),this.stepParams.pageSettings&&this.context.api.request({url:`desktopRoutes:update?filter[id]=${this.props.routeId}`,method:"post",data:{enableTabs:!!this.stepParams.pageSettings.general.enableTabs}})})}handleDragEnd(t){return L(this,null,function*(){var o,r;const i=this.flowEngine.getModel((o=t.active)==null?void 0:o.id),n=this.flowEngine.getModel((r=t.over)==null?void 0:r.id);if(!i||!n||i.uid===n.uid)return;const[l,a]=yield Promise.all([this.ensurePersistedRouteId(i),this.ensurePersistedRouteId(n)]);l==null||a==null||(yield this.context.api.request({url:"desktopRoutes:move",method:"post",params:{sourceId:l,targetId:a,sortField:"sort"}}),this.flowEngine.moveModel(i.uid,n.uid,{persist:!1}))})}}RootPageModel.registerFlow({key:"rootPageSettings",steps:{init:{handler(e,t){return L(this,null,function*(){var o,r;if(e.model.hasSubModel("tabs"))return;const i=e.routeRepository.getRouteBySchemaUid(e.model.parentId);e.model.setProps("routeId",i==null?void 0:i.id);const n=import_lodash.default.castArray(i==null?void 0:i.children);for(const l of n.sort((a,c)=>a.sort-c.sort)){if(l.hideInMenu)continue;const a=e.engine.createModel({parentId:e.model.uid,uid:l.schemaUid,subKey:"tabs",subType:"array",use:"RootPageTabModel",sortIndex:l.sort,props:{route:l},flowRegistry:(o=l.options)==null?void 0:o.flowRegistry,stepParams:{pageTabSettings:{tab:{title:l.title,icon:l.icon,documentTitle:(r=l.options)==null?void 0:r.documentTitle}}}});e.model.addSubModel("tabs",a)}})}}}});class SubPageModel extends OldPageModel{renderFirstTab(){var t;return(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,{model:(t=this.subModels.tabs)==null?void 0:t[0]})}render(){return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[this.props.displayTitle&&(0,import_jsx_runtime.jsx)(import_pro_layout.PageHeader,{title:this.props.title,style:this.props.headerStyle}),this.renderFirstTab()]})}}class PopupActionModel extends ActionModel{constructor(){super(...arguments),R(this,"defaultProps",{title:(0,import_flow_engine.tExpr)("Popup"),icon:"ExportOutlined"})}}PopupActionModel.define({label:(0,import_flow_engine.tExpr)("Popup")});PopupActionModel.registerFlow(openViewFlow);class RecordActionModel extends ActionModel{}RecordActionModel.define({children:e=>L(void 0,null,function*(){return(yield(0,import_flow_engine.buildSubModelItems)(ActionModel)(e)).filter(t=>e.engine.getModelClass(t.useModel)._isScene(ActionSceneEnum.record))})});class InputFieldModel extends FieldModel{render(){return(0,import_jsx_runtime.jsx)(import_antd.Input,x({},this.props))}}InputFieldModel.registerFlow({key:"defaultValueForNanoid",steps:{generateNanoid:{handler(e,t){var o,r;(r=(o=e.blockModel)==null?void 0:o.emitter)==null||r.on("onFieldReset",()=>{if(e.collectionField.interface==="nanoid"&&e.collectionField.options.autoFill!==!1){const{size:i,customAlphabet:n}=e.collectionField.options||{size:21};e.model.props.onChange((0,import_nanoid.customAlphabet)(n,i)())}})}}}});InputFieldModel.define({label:(0,import_flow_engine.tExpr)("Input")});import_flow_engine.EditableItemModel.bindModelToInterface("InputFieldModel",["input","email","phone","uuid","url","nanoid"],{isDefault:!0});import_flow_engine.FilterableItemModel.bindModelToInterface("InputFieldModel",["input","email","phone","uuid","url","nanoid","textarea","markdown","vditor","richText","password","color"],{isDefault:!0});const ARRAY_VALUE_OPERATORS=new Set(["$match","$notMatch","$anyOf","$noneOf","$childIn","$childNotIn","$in","$notIn"]);function isObjectWithType(e){return!!e&&typeof e=="object"&&!Array.isArray(e)&&"type"in e}function isEmptyScalar(e){return e===null||typeof e>"u"||typeof e=="string"&&e.trim()===""}function normalizeFilterValueByOperator(e,t){if(!e)return t;if(e==="$dateBetween"){if(t===null||typeof t>"u"||isObjectWithType(t))return t;if(Array.isArray(t)){if(t.length===0)return t;const o=t[0],r=t.length>1?t[1]:void 0,i=isEmptyScalar(o),n=isEmptyScalar(r);return t.length===1&&!i?[o,o]:!i&&n?[o,o]:i&&!n?[r,r]:t}return[t,t]}return ARRAY_VALUE_OPERATORS.has(e)?t===null||typeof t>"u"||Array.isArray(t)?t:typeof t=="string"&&t.trim()===""?[]:[t]:t}const stripTimeFromFormat=e=>e&&e.replace(/\s*HH?:mm(?::ss)?(?:\.SSS)?/g,"").trim();function getRawSingleValue(e,t){if(!t)return e;if(Array.isArray(e))return e[0]}function inferPickerFromRawValue(e,t){return typeof e=="string"?inferPickerType(e,t):t}function parseDateByFormat$1(e,t){const o=String(e||"").trim();if(!o)return null;if(/(?:Z|[+-]\d{2}:\d{2})$/i.test(o)){const i=(0,import_client.dayjs)(o);if(i.isValid())return i}if(t){const i=(0,import_client.dayjs)(o,t,!0);if(i.isValid())return i}const r=(0,import_client.dayjs)(o);if(r.isValid())return r;if(t){const i=(0,import_client.dayjs)(o,t);if(i.isValid())return i}return null}function parseDateFromRawValue$1(e,t){if(import_client.dayjs.isDayjs(e))return e;if(e instanceof Date){const o=(0,import_client.dayjs)(e);return o.isValid()?o:null}return typeof e=="string"?parseDateByFormat$1(e,t):null}function parseRangeValue(e,t){if(!Array.isArray(e))return null;const o=parseDateFromRawValue$1(e[0],t),r=parseDateFromRawValue$1(e[1],t);return!o||!r?null:[o,r]}const FieldAssignExactDatePicker=e=>{const{picker:t="date",format:o,showTime:r,timeFormat:i,value:n,isRange:l=!1,onChange:a,style:c}=e,u=(0,import_flow_engine.useFlowContext)(),d=u.model.translate.bind(u.model),m=(0,import_react2.useMemo)(()=>getRawSingleValue(n,l),[l,n]),[p,h]=(0,import_react2.useState)(()=>inferPickerFromRawValue(m,t)),g=S=>{const P=S===t&&o?o:(0,import_client.getPickerFormat)(S),j=S==="date"?stripTimeFromFormat(P):P;return(0,import_client.getDateTimeFormat)(S,j,r,i)},f=(0,import_react2.useMemo)(()=>g(p),[p,o,t,r,i]),_=(0,import_react2.useMemo)(()=>l?null:parseDateFromRawValue$1(n,f),[l,n,f]),v=(0,import_react2.useMemo)(()=>l?parseRangeValue(n,f):null,[l,n,f]),b=(0,import_react2.useMemo)(()=>[{label:d("Date"),value:"date"},{label:d("Month"),value:"month"},{label:d("Quarter"),value:"quarter"},{label:d("Year"),value:"year"}],[d]),C=S=>{if(h(S),!!a){if(l){v&&a(v);return}_&&a(_)}},y={utc:!0,underFilter:!0,format:f,picker:p,inputReadOnly:u.isMobileLayout,showTime:r?{defaultValue:(0,import_client.dayjs)("00:00:00","HH:mm:ss")}:!1,value:_,onChange:S=>{if(S&&import_client.dayjs.isDayjs(S)){a==null||a(S);return}a==null||a(null)},style:{flex:1}},F={utc:!0,underFilter:!0,format:f,picker:p,inputReadOnly:u.isMobileLayout,showTime:r?{defaultValue:[(0,import_client.dayjs)("00:00:00","HH:mm:ss"),(0,import_client.dayjs)("23:59:59","HH:mm:ss")]}:!1,value:v,onChange:S=>{if(Array.isArray(S)&&S[0]&&S[1]){a==null||a([S[0],S[1]]);return}a==null||a(null)},style:{flex:1}};return(0,import_jsx_runtime.jsxs)(import_antd.Space.Compact,{style:x({width:"100%"},c||{}),children:[(0,import_jsx_runtime.jsx)(import_antd.Select,{style:{width:100},popupMatchSelectWidth:!1,value:p,options:b,onChange:C}),l?(0,import_jsx_runtime.jsx)(import_antd.DatePicker.RangePicker,x({},F)):(0,import_jsx_runtime.jsx)(import_antd.DatePicker,x({},y))]})},DATE_FIELD_INTERFACES=new Set(["date","datetime","datetimeNoTz","createdAt","updatedAt","unixTimestamp"]),TZ_AWARE_DATE_INTERFACES=new Set(["datetime","createdAt","updatedAt","unixTimestamp"]),DATE_ONLY_OUTPUT_FORMAT="YYYY-MM-DD",DATETIME_NO_TZ_OUTPUT_FORMAT="YYYY-MM-DD HH:mm:ss",DATE_DYNAMIC_OPTION_KEYS=["exact","past","next","today","yesterday","tomorrow","thisWeek","lastWeek","nextWeek","thisMonth","lastMonth","nextMonth","thisQuarter","lastQuarter","nextQuarter","thisYear","lastYear","nextYear"],DATE_DYNAMIC_OPTION_LABELS={exact:"Exact day",past:"Past",next:"Next",today:"Today",yesterday:"Yesterday",tomorrow:"Tomorrow",thisWeek:"This Week",lastWeek:"Last Week",nextWeek:"Next Week",thisMonth:"This Month",lastMonth:"Last Month",nextMonth:"Next Month",thisQuarter:"This Quarter",lastQuarter:"Last Quarter",nextQuarter:"Next Quarter",thisYear:"This Year",lastYear:"Last Year",nextYear:"Next Year"};function buildDateDynamicOptions(e,t=!1){var o;const r=DATE_DYNAMIC_OPTION_KEYS.map(i=>{var n;return{value:i,label:(n=e==null?void 0:e(DATE_DYNAMIC_OPTION_LABELS[i]))!=null?n:DATE_DYNAMIC_OPTION_LABELS[i]}});return t&&r.splice(3,0,{value:"now",label:(o=e==null?void 0:e("Now"))!=null?o:"Now"}),r}function parseDateByFormat(e,t){const o=String(e||"").trim();if(!o)return null;if(/(?:Z|[+-]\d{2}:\d{2})$/i.test(o)){const i=(0,import_client.dayjs)(o);if(i.isValid())return i}if(t){const i=(0,import_client.dayjs)(o,t,!0);if(i.isValid())return i}const r=(0,import_client.dayjs)(o);if(r.isValid())return r;if(t){const i=(0,import_client.dayjs)(o,t);if(i.isValid())return i}return null}function parseDateFromRawValue(e,t){if(import_client.dayjs.isDayjs(e))return e;if(e instanceof Date){const o=(0,import_client.dayjs)(e);return o.isValid()?o:null}return typeof e=="string"?parseDateByFormat(e,t):null}function normalizeExactDateValue(e,t){const o=parseDateFromRawValue(e,t.format);if(!(o!=null&&o.isValid()))return e;switch(t.exactNormalizeMode){case"date":return o.format(DATE_ONLY_OUTPUT_FORMAT);case"datetimeNoTz":return o.format(t.showTime?DATETIME_NO_TZ_OUTPUT_FORMAT:DATE_ONLY_OUTPUT_FORMAT);case"iso":return o.toISOString();default:return e}}function toExactPickerSingleValue(e,t){const o=parseDateFromRawValue(e,t);return o!=null&&o.isValid()?o:null}function toExactPickerRangeValue(e,t){if(!Array.isArray(e))return null;const o=toExactPickerSingleValue(e[0],t),r=toExactPickerSingleValue(e[1],t);return!o||!r?null:[o,r]}function toExactPickerDisplayValue(e,t){return t.isRange?toExactPickerRangeValue(e,t.format):toExactPickerSingleValue(e,t.format)}function getDateVariableExactNormalizeMode(e){return e==="date"?"date":e==="datetimeNoTz"?"datetimeNoTz":TZ_AWARE_DATE_INTERFACES.has(e)?"iso":"none"}function normalizeDateVariableExactValue(e,t){return t.exactNormalizeMode==="none"?e:typeof e=="string"||import_client.dayjs.isDayjs(e)||e instanceof Date?normalizeExactDateValue(e,t):Array.isArray(e)?e.map(o=>typeof o=="string"||import_client.dayjs.isDayjs(o)||o instanceof Date?normalizeExactDateValue(o,t):o):e}function normalizeExactDatePickerMode(e){return e==="year"||e==="quarter"||e==="month"||e==="date"?e:"date"}const DEFAULT_DATE_VARIABLE_COMPONENT_PROPS={picker:"date",showTime:!1,timeFormat:"HH:mm:ss",format:"YYYY-MM-DD",exactNormalizeMode:"none"};function getFieldInterface(e){return typeof(e==null?void 0:e.interface)=="string"?e.interface:""}function getFieldComponentProps(e){var t;return(typeof(e==null?void 0:e.getComponentProps)=="function"?e.getComponentProps():null)||((t=e==null?void 0:e.uiSchema)==null?void 0:t["x-component-props"])||{}}function normalizeDateVariableOutput(e,t){if(e===null||(0,import_flow_engine.isRunJSValue)(e)||typeof e=="string"&&(0,import_flow_engine.isVariableExpression)(e)&&!(0,import_flow_engine.isCtxDateExpression)(e))return e;if(e===""||typeof e>"u")return"";const o=normalizeDateVariableExactValue(e,{exactNormalizeMode:t.exactNormalizeMode,format:t.format||"YYYY-MM-DD HH:mm:ss",showTime:t.showTime});return(0,import_flow_engine.serializeCtxDateValue)(o)||o}function isPlainObject$1(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function pickStyle(e){return isPlainObject$1(e)?e:void 0}function withFullWidthStyle(e){return A(x({},e),{width:"100%",minWidth:0})}function rewrapReactiveRender$1(e){var t;e&&(e._reactiveWrapperCache=void 0,(t=e.setupReactiveRender)==null||t.call(e))}function remapMetaTreePaths(e,t,o){const r=Array.isArray(e==null?void 0:e.paths)?e.paths.map(l=>String(l)):[];let i=r;t.length&&r.length>=t.length&&t.every((l,a)=>r[a]===l)&&(i=[...o,...r.slice(t.length)]);const n=l=>Array.isArray(l)?l.map(a=>remapMetaTreePaths(a,t,o)):typeof l=="function"?()=>L(this,null,function*(){const a=yield l();return Array.isArray(a)?a.map(c=>remapMetaTreePaths(c,t,o)):[]}):l;return A(x({},e),{paths:i,children:e!=null&&e.children?n(e.children):void 0})}function attachBaseItemAsParent(e,t){var o;if(!t)return e;const r=remapMetaTreePaths(t,["item"],["item","parentItem"]),i=A(x({},r),{name:"parentItem",title:((o=r.title)==null?void 0:o.replace("Current item","Parent item"))||"Parent item"}),n=l=>{const a=Array.isArray(l.children)?l.children:[];if(!a.some(u=>(u==null?void 0:u.name)==="parentItem"))return A(x({},l),{children:[...a,i]});const c=a.map(u=>(u==null?void 0:u.name)!=="parentItem"?u:n(u));return A(x({},l),{children:c})};return n(e)}function mergeItemMetaTreeForAssignValue(e,t){const o=Array.isArray(e)?e:[],r=Array.isArray(t)?t:[];if(!r.length)return o;const i=o.find(u=>(u==null?void 0:u.name)==="item"),n=r.find(u=>(u==null?void 0:u.name)==="item");if(!n)return o;const l=attachBaseItemAsParent(n,i),a=[];let c=!1;for(const u of o){if(!c&&(u==null?void 0:u.name)==="item"){a.push(l),c=!0;continue}a.push(u)}return c||a.push(l),a}const FieldAssignValueInput=({targetPath:e,value:t,onChange:o,placeholder:r,extraMetaTree:i,operator:n,operatorMetaList:l,preferFormItemFieldModel:a,associationFieldNamesOverride:c,enableDateVariableAsConstant:u=!1})=>{var d,m,p,h;const g=(0,import_flow_engine.useFlowContext)(),f=import_react2.default.useCallback(G=>{if(!G||typeof G!="object"||!("target"in G))return G;const Q=G.target;return!Q||typeof Q!="object"||!("value"in Q)?G:Q.value},[]),_=import_react2.default.useRef(i);import_react2.default.useEffect(()=>{_.current=i},[i]);const v=import_react2.default.useMemo(()=>e?findFormItemModelByFieldPath(g.model,e):null,[g.model,e]),b=import_react2.default.useCallback((G,Q)=>{var X;if(!G||typeof Q!="string"||!Q.includes("."))return null;const ee=Q.split(".").filter(Boolean);if(ee.length<2)return null;let ie=G;for(let re=0;re<ee.length;re++){const se=ee[re],ce=re===ee.length-1,ae=typeof(ie==null?void 0:ie.getField)=="function"?ie.getField(se):void 0;if(!ae)return null;if(ce)return{collection:ie,fieldName:se,collectionField:ae};if(!((X=ae==null?void 0:ae.isAssociationField)!=null&&X.call(ae))||!(ae!=null&&ae.targetCollection))return null;ie=ae.targetCollection}return null},[]),C=import_react2.default.useMemo(()=>{var G,Q,X,ee,ie,re,se,ce,ae,ge,me,fe,pe,xe,de;if(v){const ye=v.context,{collection:be,dataSource:Pe,blockModel:Ce}=ye,je=((G=v==null?void 0:v.getStepParams)==null?void 0:G.call(v,"fieldSettings","init"))||{},we=((Q=v==null?void 0:v.context)==null?void 0:Q.dataSourceManager)||((ee=(X=g.model)==null?void 0:X.context)==null?void 0:ee.dataSourceManager),Ne=be||(je!=null&&je.dataSourceKey&&je!=null&&je.collectionName?(ie=we==null?void 0:we.getCollection)==null?void 0:ie.call(we,je.dataSourceKey,je.collectionName):void 0),Re=Pe||(je!=null&&je.dataSourceKey?(re=we==null?void 0:we.getDataSource)==null?void 0:re.call(we,je.dataSourceKey):void 0),Te=je==null?void 0:je.fieldPath,Ie=Te==null?void 0:Te.split(".").slice(-1)[0],ke=Ie?(se=Ne==null?void 0:Ne.getField)==null?void 0:se.call(Ne,Ie):void 0;return{itemModel:v,collection:Ne||null,dataSource:Re||null,blockModel:Ce,fieldPath:Te||null,fieldName:Ie||null,collectionField:ke||null}}const le=getCollectionFromModel(g.model),ne=((ae=(ce=g.model)==null?void 0:ce.context)==null?void 0:ae.blockModel)||g.model,ue={itemModel:null,collection:null,dataSource:null,blockModel:ne,fieldPath:null,fieldName:null,collectionField:null},he=typeof(le==null?void 0:le.getField)=="function"?le.getField(e):null;if(he){const ye=String((he==null?void 0:he.name)||e||""),be=(me=(ge=g.model)==null?void 0:ge.context)==null?void 0:me.dataSourceManager,Pe=(le!=null&&le.dataSourceKey?(fe=be==null?void 0:be.getDataSource)==null?void 0:fe.call(be,le.dataSourceKey):void 0)||null;return A(x({},ue),{collection:le,dataSource:Pe,blockModel:ne,fieldPath:ye,fieldName:ye,collectionField:he||null})}const _e=b(le,e);if(!_e)return ue;const ve=_e.collection,Se=_e.fieldName,Ae=(xe=(pe=g.model)==null?void 0:pe.context)==null?void 0:xe.dataSourceManager,Me=(ve!=null&&ve.dataSourceKey?(de=Ae==null?void 0:Ae.getDataSource)==null?void 0:de.call(Ae,ve.dataSourceKey):void 0)||null;return A(x({},ue),{collection:ve,dataSource:Me,blockModel:ne,fieldPath:Se,fieldName:Se,collectionField:_e.collectionField||null})},[g.model,v,b,e]),{collection:y,dataSource:F,blockModel:S,fieldPath:P,fieldName:j,collectionField:I}=C,M=(m=(d=C==null?void 0:C.itemModel)==null?void 0:d.context)==null?void 0:m.collectionField,E=import_react2.default.useMemo(()=>getFieldInterface(I)||getFieldInterface(M),[I,M]),D=I||M,k=import_react2.default.useMemo(()=>{var G;if(isToManyAssociationField(I))return!0;const Q=getFieldInterface(I);return Q==="multipleSelect"||Q==="checkboxGroup"||((G=I==null?void 0:I.uiSchema)==null?void 0:G.type)==="array"},[I]),w=import_react2.default.useMemo(()=>{if(E&&DATE_FIELD_INTERFACES.has(E))return!0;const G=typeof j=="string"&&j||(typeof e=="string"?e.split(".").filter(Boolean).slice(-1)[0]:"");return G==="createdAt"||G==="updatedAt"},[j,E,e]),B=u&&w,N=import_react2.default.useMemo(()=>{if(!B)return DEFAULT_DATE_VARIABLE_COMPONENT_PROPS;const G=getFieldComponentProps(D),Q=normalizeExactDatePickerMode(G==null?void 0:G.picker),X=["datetime","datetimeNoTz","createdAt","updatedAt","unixTimestamp"].includes(E),ee=typeof(G==null?void 0:G.showTime)=="boolean"?G.showTime:X,ie=typeof(G==null?void 0:G.dateFormat)=="string"&&G.dateFormat?G.dateFormat:typeof(G==null?void 0:G.format)=="string"&&G.format?G.format.split(" ")[0]:"YYYY-MM-DD",re=typeof(G==null?void 0:G.timeFormat)=="string"&&G.timeFormat?G.timeFormat:"HH:mm:ss",se=typeof(G==null?void 0:G.format)=="string"&&G.format?G.format:ee?`${ie} ${re}`:ie;return{picker:Q,showTime:ee,timeFormat:re,format:se,exactNormalizeMode:getDateVariableExactNormalizeMode(E)}},[D,E,B]),T=import_react2.default.useMemo(()=>te(N,["exactNormalizeMode"]),[N]),$=import_react2.default.useRef(T);$.current=T;const q=import_react2.default.useRef(g.t);q.current=g.t;const O=import_react2.default.useCallback(G=>{let Q=G;if(n&&(Q=normalizeFilterValueByOperator(n,Q)),k){if(Q==null||Q==="")return[];if(!Array.isArray(Q))return[Q]}return Q},[k,n]),[V,z]=import_react2.default.useState(null);import_react2.default.useEffect(()=>{var G,Q,X,ee,ie,re,se,ce,ae,ge,me,fe,pe,xe,de,le,ne,ue,he,_e,ve,Se,Ae,Me,ye,be,Pe;if(!y||!P||!j)return;const Ce=((Q=(G=C==null?void 0:C.itemModel)==null?void 0:G.context)==null?void 0:Q.engine)||((ee=(X=g.model)==null?void 0:X.context)==null?void 0:ee.engine),je=(typeof y.getFields=="function"?y.getFields()||[]:[]).find(De=>(De==null?void 0:De.name)===j)||(typeof y.getField=="function"?y.getField(j):void 0)||I,we=je?import_flow_engine.EditableItemModel.getDefaultBindingByField(((ie=C==null?void 0:C.itemModel)==null?void 0:ie.context)||((re=g.model)==null?void 0:re.context),je):null,Ne=we==null?void 0:we.modelName,Re=(se=v==null?void 0:v.subModels)==null?void 0:se.field,Te=Re&&!Array.isArray(Re)?Re.use:void 0,Ie=a?Te||Ne:Ne||Te;if(!Ie)return;const ke=(ce=Ce==null?void 0:Ce.createModel)==null?void 0:ce.call(Ce,{use:"VariableFieldFormModel",subModels:{fields:[{use:Ie,stepParams:{fieldSettings:{init:{dataSourceKey:y==null?void 0:y.dataSourceKey,collectionName:y==null?void 0:y.name,fieldPath:P}}},props:{placeholder:r}}]}});if(!ke)return;(ge=(ae=ke.context)==null?void 0:ae.defineProperty)==null||ge.call(ae,"collection",{value:y}),F&&((fe=(me=ke.context)==null?void 0:me.defineProperty)==null||fe.call(me,"dataSource",{value:F})),I&&((xe=(pe=ke.context)==null?void 0:pe.defineProperty)==null||xe.call(pe,"collectionField",{value:I})),S&&((le=(de=ke.context)==null?void 0:de.defineProperty)==null||le.call(de,"blockModel",{value:S})),ke.context&&Object.defineProperty(ke.context,"resource",{configurable:!0,enumerable:!0,get:()=>S==null?void 0:S.resource});const Fe=(ue=(ne=ke==null?void 0:ke.subModels)==null?void 0:ne.fields)==null?void 0:ue[0],ht=isToManyAssociationField(I),gt=withFullWidthStyle(pickStyle((he=Fe==null?void 0:Fe.props)==null?void 0:he.style)),ze=typeof(c==null?void 0:c.label)=="string"&&c.label?c.label:void 0;ze&&typeof(Fe==null?void 0:Fe.setStepParams)=="function"&&Fe.setStepParams("selectSettings","fieldNames",{label:ze}),(_e=Fe==null?void 0:Fe.setProps)==null||_e.call(Fe,{disabled:!1,readPretty:!1,pattern:"editable",updateAssociation:!1,multiple:ht,style:gt}),(ve=Fe==null?void 0:Fe.dispatchEvent)==null||ve.call(Fe,"beforeRender",void 0,{sequential:!0,useCache:!0}),ensureOptionsFromUiSchemaEnumIfAbsent(Fe,I);const xt=typeof((Se=Fe==null?void 0:Fe.props)==null?void 0:Se.mode)<"u",$e=(Me=(Ae=I==null?void 0:I.uiSchema)==null?void 0:Ae["x-component-props"])==null?void 0:Me.mode,Ue=(I==null?void 0:I.interface)==="multipleSelect"?typeof $e=="string"?$e:"multiple":typeof $e=="string"?$e:void 0;if(!xt&&Ue&&((ye=Fe==null?void 0:Fe.setProps)==null||ye.call(Fe,{mode:Ue})),I!=null&&I.targetCollection){const De=I.targetCollection,Be=((be=Fe==null?void 0:Fe.props)==null?void 0:be.fieldNames)||{},Oe=typeof(c==null?void 0:c.value)=="string"&&c.value||typeof(Be==null?void 0:Be.value)=="string"&&Be.value||(I==null?void 0:I.targetKey)||(De==null?void 0:De.filterTargetKey)||"id",ft=typeof(Be==null?void 0:Be.label)=="string"&&Be.label?Be.label:void 0,_t=typeof(De==null?void 0:De.titleField)=="string"?De.titleField:void 0,Ze=typeof(c==null?void 0:c.label)=="string"&&c.label||ft||_t;(Pe=Fe==null?void 0:Fe.setProps)==null||Pe.call(Fe,{fieldNames:A(x(x({},Be),Ze?{label:Ze}:{}),{value:Oe})})}return z(ke),()=>{var De,Be;(Be=(De=ke.subModels.fields).forEach)==null||Be.call(De,Oe=>Oe.remove()),ke.remove()}},[y,F,S,P,j,g,r,C,I,v,a,c==null?void 0:c.label,c==null?void 0:c.value]),import_react2.default.useEffect(()=>{var G,Q,X,ee,ie,re,se,ce;const ae=(Q=(G=V==null?void 0:V.subModels)==null?void 0:G.fields)==null?void 0:Q[0];if(!ae||!n||!Array.isArray(l)||l.length===0)return;const ge=l.find(xe=>(xe==null?void 0:xe.value)===n),me=(X=ge==null?void 0:ge.schema)==null?void 0:X["x-component-props"];if(me&&typeof(ae==null?void 0:ae.setProps)=="function"){const xe=withFullWidthStyle(pickStyle(me==null?void 0:me.style)||pickStyle((ee=ae==null?void 0:ae.props)==null?void 0:ee.style));ae.setProps(A(x({},me),{style:xe}))}const fe=((re=(ie=C==null?void 0:C.itemModel)==null?void 0:ie.context)==null?void 0:re.app)||((ce=(se=g==null?void 0:g.model)==null?void 0:se.context)==null?void 0:ce.app),pe=resolveOperatorComponent(fe,n,l);if(pe&&ae instanceof InputFieldModel){const xe=ae.__originalRender||ae.render;ae.__originalRender=xe;const{Comp:de,props:le}=pe;ae.render=()=>{var ne;return(0,import_jsx_runtime.jsx)(de,A(x(x({},ae.props),le),{style:x(x({width:"100%"},(ne=ae.props)==null?void 0:ne.style),le==null?void 0:le.style)}))},rewrapReactiveRender$1(ae)}else typeof ae.__originalRender=="function"&&(ae.render=ae.__originalRender,rewrapReactiveRender$1(ae))},[n,l,V,g,C]);const U=import_react2.default.useMemo(()=>G=>{const Q=pickStyle(G==null?void 0:G.style);return import_react2.default.useEffect(()=>{var X,ee,ie,re;const se=O(G==null?void 0:G.value),ce=ge=>{var me,fe,pe,xe,de;const le=f(ge),ne=n?normalizeFilterValueByOperator(n,le):le,ue=O(ne);(me=V==null?void 0:V.setProps)==null||me.call(V,{value:ue});const he=(pe=(fe=V==null?void 0:V.subModels)==null?void 0:fe.fields)==null?void 0:pe[0];(xe=he==null?void 0:he.setProps)==null||xe.call(he,{value:ue}),(de=G==null?void 0:G.onChange)==null||de.call(G,ne)},ae=(ee=(X=V==null?void 0:V.subModels)==null?void 0:X.fields)==null?void 0:ee[0];(ie=ae==null?void 0:ae.setProps)==null||ie.call(ae,{value:se,onChange:ce,onCompositionStart:G==null?void 0:G.onCompositionStart,onCompositionUpdate:G==null?void 0:G.onCompositionUpdate,onCompositionEnd:G==null?void 0:G.onCompositionEnd}),(re=V==null?void 0:V.setProps)==null||re.call(V,A(x({},G),{value:se,onChange:ce}))},[G]),V?(0,import_jsx_runtime.jsx)("div",{style:A(x({},withFullWidthStyle(Q)),{flex:1}),children:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,{model:V,showFlowSettings:!1})}):(0,import_jsx_runtime.jsx)(import_antd.Input,{value:G==null?void 0:G.value,onChange:X=>{var ee;return(ee=G==null?void 0:G.onChange)==null?void 0:ee.call(G,f(X))},placeholder:r,style:withFullWidthStyle(Q)})},[r,V,O,f]),K=import_react2.default.useMemo(()=>G=>{var Q,X,ee,ie;const re=pickStyle(G==null?void 0:G.style),se=G==null?void 0:G.value,ce=(0,import_flow_engine.isCtxDateExpression)(se)?(0,import_flow_engine.parseCtxDateExpression)(se):se,ae=typeof ce>"u"?void 0:ce,{token:ge}=import_antd.theme.useToken(),[me,fe]=import_react2.default.useState(!1),pe=q.current,xe=$.current,de=import_react2.default.useMemo(()=>buildDateDynamicOptions(pe,!0),[pe]),le=ae&&typeof ae=="object"&&!Array.isArray(ae)?ae==null?void 0:ae.type:void 0,ne=typeof le=="string"&&le?le:"exact",ue=Array.isArray(ae),he=toExactPickerDisplayValue(ae,{format:xe.format,isRange:!1}),_e=toExactPickerDisplayValue(ae,{format:xe.format,isRange:!0}),ve=ye=>{var be,Pe;if(fe(!1),ye==="exact"){(be=G==null?void 0:G.onChange)==null||be.call(G,"");return}const Ce={type:ye};(ye==="past"||ye==="next")&&(Ce.number=1,Ce.unit="day"),(Pe=G==null?void 0:G.onChange)==null||Pe.call(G,Ce)},Se=ye=>{var be;(be=G==null?void 0:G.onChange)==null||be.call(G,ye||"")},Ae=ye=>{var be;(be=G==null?void 0:G.onChange)==null||be.call(G,ye||"")},Me=()=>{const ye=de.slice(0,3),be=de.slice(3),Pe=import_css.css`
1778
1774
  padding: 3px 10px;
1779
1775
  cursor: pointer;
1780
1776
  white-space: nowrap;
@@ -1783,7 +1779,7 @@ ${u}`;return clampText(m,MAX_MESSAGE_CHARS)}}const i=e.issues.filter(c=>c.type==
1783
1779
  &:hover {
1784
1780
  background-color: ${ge.colorFillSecondary};
1785
1781
  }
1786
- `;return(0,import_jsx_runtime.jsxs)("div",{style:{maxHeight:300,overflowY:"auto"},children:[ye.map(Ce=>(0,import_jsx_runtime.jsx)("div",{role:"option",onClick:()=>ve(Ce.value),className:Pe,children:Ce.label},Ce.value)),(0,import_jsx_runtime.jsx)(import_antd.Divider,{style:{margin:"4px 0"}}),be.map(Ce=>(0,import_jsx_runtime.jsx)("div",{role:"option",className:Pe,onClick:()=>ve(Ce.value),title:Ce.label,children:Ce.label},Ce.value))]})};return(0,import_jsx_runtime.jsxs)(import_antd.Space.Compact,{style:withFullWidthStyle(re),children:[(0,import_jsx_runtime.jsx)(import_antd.Select,{options:de,open:me,onDropdownVisibleChange:fe,allowClear:!1,style:{width:"100%",minWidth:100,maxWidth:["past","next","exact",void 0].includes(le)?100:null},value:ne,onChange:ve,dropdownRender:Me}),["past","next"].includes(ne)&&[(0,import_jsx_runtime.jsx)(import_antd.InputNumber,{style:{flex:1},value:ae==null?void 0:ae.number,onChange:ye=>{var be;(be=G==null?void 0:G.onChange)==null||be.call(G,A(x({},ae),{type:ne,number:ye,unit:(ae==null?void 0:ae.unit)||"day"}))}},"number"),(0,import_jsx_runtime.jsx)(import_antd.Select,{value:ae==null?void 0:ae.unit,style:{minWidth:130,maxWidth:140},onChange:ye=>{var be;(be=G==null?void 0:G.onChange)==null||be.call(G,A(x({},ae),{type:ne,unit:ye,number:(ae==null?void 0:ae.number)||1}))},options:[{value:"day",label:(Q=pe==null?void 0:pe("Day"))!=null?Q:"Day"},{value:"week",label:(X=pe==null?void 0:pe("Calendar week"))!=null?X:"Calendar week"},{value:"month",label:(ee=pe==null?void 0:pe("Calendar Month"))!=null?ee:"Calendar Month"},{value:"year",label:(ie=pe==null?void 0:pe("Calendar Year"))!=null?ie:"Calendar Year"}],popupMatchSelectWidth:!0},"unit")],(ne==="exact"||!ne)&&(0,import_jsx_runtime.jsx)(FieldAssignExactDatePicker,A(x({},xe),{isRange:ue,value:ue?_e:he,onChange:ue?Ae:Se,style:{flex:1}}))]})},[]),W=import_react2.default.useMemo(()=>()=>{var G,Q;return(0,import_jsx_runtime.jsx)(import_antd.Input,{placeholder:`<${(Q=(G=g.t)==null?void 0:G.call(g,"Null"))!=null?Q:"Null"}>`,readOnly:!0,style:{width:"100%"}})},[g]),Y=import_react2.default.useMemo(()=>G=>(0,import_jsx_runtime.jsx)(RunJSValueEditor,{t:g.t,value:G==null?void 0:G.value,onChange:G==null?void 0:G.onChange}),[g]),Z=B?K:U,H=import_react2.default.useMemo(()=>()=>L(void 0,null,function*(){var G;const Q=(yield(G=g.getPropertyMetaTree)==null?void 0:G.call(g))||[],X=_.current,ee=Array.isArray(X)?X:[],ie=mergeItemMetaTreeForAssignValue(Q,ee);return[{title:(0,import_flow_engine.tExpr)("Constant"),name:"constant",type:"string",paths:["constant"],render:Z},{title:(0,import_flow_engine.tExpr)("Null"),name:"null",type:"object",paths:["null"],render:W},{title:(0,import_flow_engine.tExpr)("RunJS"),name:"runjs",type:"object",paths:["runjs"],render:Y},...ie]}),[g,Z,W,Y]),J=import_react2.default.useMemo(()=>{if(!B)return t;if((0,import_flow_engine.isCtxDateExpression)(t)){const G=(0,import_flow_engine.parseCtxDateExpression)(t);return typeof G>"u"?"":G}return t},[B,t]),oe=import_react2.default.useCallback(G=>{if(!B){o(G);return}o(normalizeDateVariableOutput(G,N))},[N,o,B]);return P?(0,import_jsx_runtime.jsx)(import_flow_engine.VariableInput,{value:J,onChange:oe,metaTree:H,style:{width:"100%"},clearValue:"",converters:{renderInputComponent:G=>{var Q;const X=(Q=G==null?void 0:G.paths)==null?void 0:Q[0];return X==="constant"?Z:X==="null"?W:X==="runjs"?Y:null},resolveValueFromPath:G=>{var Q;const X=(Q=G==null?void 0:G.paths)==null?void 0:Q[0];if(X==="constant")return B?{type:"today"}:"";if(X==="null")return null;if(X==="runjs")return{code:"",version:"v2"}},resolvePathFromValue:G=>G===null?["null"]:(0,import_flow_engine.isRunJSValue)(G)?["runjs"]:B&&(0,import_flow_engine.isCtxDateExpression)(G)?["constant"]:(0,import_flow_engine.isVariableExpression)(G)?(0,import_flow_engine.parseValueToPath)(G):["constant"]}}):(0,import_jsx_runtime.jsx)(import_antd.Input,{disabled:!0,placeholder:(h=(p=g.t)==null?void 0:p.call(g,"Please select a field"))!=null?h:"Please select a field"})},{DateFilterDynamicComponent:DateFilterDynamicComponentLazy}=lazy(()=>Promise.resolve().then(()=>DateFilterDynamicComponent$1),"DateFilterDynamicComponent");function createStaticInputRenderer(e,t,o){var r,i,n;const l=e==null?void 0:e["x-component"],a=((r=t==null?void 0:t.uiSchema)==null?void 0:r["x-component-props"])||{},c=(e==null?void 0:e["x-component-props"])||{},u=(0,import_merge.default)({},a,c),d=Array.isArray((i=t==null?void 0:t.uiSchema)==null?void 0:i.enum)?(n=t==null?void 0:t.uiSchema)==null?void 0:n.enum:void 0,m=enumToOptions(d,o),p=x({style:x({width:200},(u==null?void 0:u.style)||{}),placeholder:(u==null?void 0:u.placeholder)||o("Enter value")},u);return h=>{const g=h||{},{value:f,onChange:_}=g,v=te(g,["value","onChange"]);if(l==="InputNumber")return(0,import_jsx_runtime.jsx)(import_antd.InputNumber,A(x(x({},p),v),{value:f,onChange:_}));if(l==="NumberPicker")return(0,import_jsx_runtime.jsx)(import_antd_v5.NumberPicker,A(x(x({},p),v),{value:f,onChange:_}));if(l==="Switch")return(0,import_jsx_runtime.jsx)(import_antd.Switch,A(x(x({},p),v),{checked:!!f,onChange:_}));if(l==="Select"){let b=p;return Array.isArray(b==null?void 0:b.options)&&b.options.length>0?b=A(x({},b),{options:translateOptions(b.options,o)}):m&&(b=A(x({},b),{options:m})),(0,import_jsx_runtime.jsx)(import_antd.Select,A(x(x({},b),v),{value:f,onChange:_}))}return l==="DateFilterDynamicComponent"?(0,import_jsx_runtime.jsx)(DateFilterDynamicComponentLazy,A(x(x({},p),v),{value:f,onChange:_})):(0,import_jsx_runtime.jsx)(import_antd.Input,A(x(x({},p),v),{value:f,onChange:b=>{var C;return _==null?void 0:_((C=b==null?void 0:b.target)==null?void 0:C.value)}}))}}const fallbackStringOperators=[{value:"$includes",label:"contains",selected:!0},{value:"$notIncludes",label:"does not contain"},{value:"$eq",label:"is"},{value:"$ne",label:"is not"},{value:"$empty",label:"is empty",noValue:!0},{value:"$notEmpty",label:"is not empty",noValue:!0}];function mergeExtraMetaTreeWithBase(e,t){const o=Array.isArray(e)?e:[],r=Array.isArray(t)?t:[];if(!r.length)return o;const i=r.find(l=>(l==null?void 0:l.name)==="item");if(!i)return[...r,...o];const n=mergeItemMetaTreeForAssignValue(o,[i]);return[...r.filter(l=>(l==null?void 0:l.name)!=="item"),...n]}function toFilterableChildMetaNode(e,t){var o,r;return{name:t.name,title:t.title||t.name,type:((o=t.schema)==null?void 0:o.type)||"string",interface:((r=t.schema)==null?void 0:r["x-component"])==="Select"?"select":"input",uiSchema:A(x({},t.schema||{}),{"x-filter-operators":t.operators}),paths:[...e.paths||[],t.name],parentTitles:[...e.parentTitles||[],e.title]}}function enhanceMetaTreeNodeWithFilterableChildren(e,t){return L(this,null,function*(){var o,r;const i=e.interface&&t?t(e.interface):void 0,n=(Array.isArray((o=i==null?void 0:i.filterable)==null?void 0:o.children)?(r=i==null?void 0:i.filterable)==null?void 0:r.children:[]).map(a=>toFilterableChildMetaNode(e,a)),l=a=>L(this,null,function*(){const c=[...yield Promise.all(a.map(u=>enhanceMetaTreeNodeWithFilterableChildren(u,t))),...n];return(0,import_uniqBy.default)(c,u=>u.name)});if(typeof e.children=="function"){const a=e.children;return A(x({},e),{children:()=>L(this,null,function*(){const c=yield a(),u=Array.isArray(c)?c:[];return yield l(u)})})}return Array.isArray(e.children)?A(x({},e),{children:yield l(e.children)}):n.length?A(x({},e),{children:n}):e})}function enhanceMetaTreeWithFilterableChildren(e,t){return L(this,null,function*(){const o=Array.isArray(e)?e:[];return yield Promise.all(o.map(r=>enhanceMetaTreeNodeWithFilterableChildren(r,t)))})}const LinkageFilterItem=(0,import_flow_engine.observer)(e=>{var t;const{value:o,model:r,extraMetaTree:i}=e,n=(0,import_flow_engine.useFlowViewContext)(),l=r.translate,{path:a,operator:c,value:u}=o||{},[d,m]=(0,import_react2.useState)(null),p=(0,import_react2.useRef)(!1),h=(0,import_react2.useMemo)(()=>{var M,E;if(d){const D=r.context.app.dataSourceManager,k=d.interface?D.collectionFieldInterfaceManager.getFieldInterface(d.interface):void 0,w=(M=d==null?void 0:d.uiSchema)==null?void 0:M["x-filter-operators"];return((Array.isArray(w)&&w.length?w:(E=k==null?void 0:k.filterable)==null?void 0:E.operators)||fallbackStringOperators).filter(B=>!B.visible||B.visible(d)).map(B=>({value:B.value,label:typeof B.label=="string"?B.label:String(B.label),noValue:!!B.noValue,schema:B.schema,selected:!!B.selected}))}return[]},[d,r]),g=(0,import_react2.useMemo)(()=>h.map(M=>({value:M.value,label:l(M.label)})),[h,l]);(0,import_react2.useEffect)(()=>{if(h.length!==0){if(!c){if(p.current){const M=h.find(E=>E.selected)||h[0];o.operator=(M==null?void 0:M.value)||"",M!=null&&M.noValue?(o.value=!0,o.noValue=!0):o.noValue=!1,p.current=!1}return}if(!h.some(M=>M.value===c)){const M=h.find(E=>E.selected)||h[0];o.operator=(M==null?void 0:M.value)||"",M!=null&&M.noValue?(o.value=!0,o.noValue=!0):o.noValue=!1}}},[h,c,o]);const f=(0,import_react2.useMemo)(()=>h.find(M=>M.value===c),[h,c]),_=(0,import_react2.useMemo)(()=>{const M=(d==null?void 0:d.uiSchema)||{},E=(f==null?void 0:f.schema)||{};return(0,import_merge.default)({},M,E)},[d,f]),v=(0,import_react2.useRef)(l);(0,import_react2.useEffect)(()=>{v.current=l},[l]);const b=(0,import_react2.useCallback)(M=>{var E,D;return(D=(E=v.current)==null?void 0:E.call(v,M))!=null?D:M},[]),C=(0,import_react2.useMemo)(()=>createStaticInputRenderer(_,d,b),[_,d,b]),y=(0,import_react2.useMemo)(()=>function(){return(0,import_jsx_runtime.jsx)(import_antd.Input,{placeholder:`<${l("Null")}>`,readOnly:!0})},[l]),F=(0,import_react2.useMemo)(()=>()=>L(void 0,null,function*(){const M=(r==null?void 0:r.context.getPropertyMetaTree())||n.getPropertyMetaTree(),E=mergeExtraMetaTreeWithBase(M,i);return[{title:l("Constant"),name:"constant",type:"string",paths:["constant"]},{title:l("Null"),name:"null",type:"object",paths:["null"]},...E]}),[n,r,l,i]),S=(0,import_react2.useCallback)(()=>L(void 0,null,function*(){var M,E;const D=((E=(M=r==null?void 0:r.context)==null?void 0:M.getPropertyMetaTree)==null?void 0:E.call(M))||n.getPropertyMetaTree(),k=Array.isArray(D)?D:[],w=mergeExtraMetaTreeWithBase(k,i);return yield enhanceMetaTreeWithFilterableChildren(w,B=>{var N,T,$,q;return(q=($=(T=(N=r.context.app)==null?void 0:N.dataSourceManager)==null?void 0:T.collectionFieldInterfaceManager)==null?void 0:$.getFieldInterface)==null?void 0:q.call($,B)})}),[n,r,i]),P=(0,import_react2.useMemo)(()=>({renderInputComponent:M=>{var E;const D=(E=M==null?void 0:M.paths)==null?void 0:E[0];return D==="constant"?C:D==="null"?y:null},resolveValueFromPath:M=>{var E;const D=(E=M==null?void 0:M.paths)==null?void 0:E[0];if(D==="constant")return"";if(D==="null")return null},resolvePathFromValue:M=>M===null?["null"]:(0,import_flow_engine.parseValueToPath)(M)||["constant"]}),[y,C]),j=(0,import_react2.useCallback)((M,E)=>{const D=o.path||"",k=M||"",w=k!==D;o.path=k,w&&D&&(o.operator="",o.value="",p.current=!0),!D&&k&&!o.operator&&(p.current=!0),E&&m(E)},[o]),I=(0,import_react2.useCallback)(M=>{o.operator=M;const E=h.find(D=>D.value===M);E!=null&&E.noValue?(o.value=!0,o.noValue=!0):o.noValue=!1},[o,h]);return(0,import_jsx_runtime.jsxs)(import_antd.Space,{wrap:!0,style:{width:"100%"},children:[(0,import_jsx_runtime.jsx)(import_flow_engine.VariableInput,{value:a,onChange:j,metaTree:S,showValueComponent:!0,style:{flex:"1 1 40%",minWidth:160,maxWidth:"100%"},placeholder:l("Select variable"),onlyLeafSelectable:!0}),(0,import_jsx_runtime.jsx)(import_antd.Select,{style:{flex:"0 0 140px",minWidth:120,maxWidth:"100%"},placeholder:l("Comparison"),value:c||void 0,onChange:I,children:g.map(M=>(0,import_jsx_runtime.jsx)(import_antd.Select.Option,{value:M.value,children:M.label},M.value))}),!((t=h.find(M=>M.value===c))!=null&&t.noValue)&&(0,import_jsx_runtime.jsx)(import_flow_engine.VariableInput,{value:u,onChange:M=>o.value=M,metaTree:F,converters:P,showValueComponent:!0,style:{flex:"1 1 40%",minWidth:160,maxWidth:"100%"},placeholder:l("Enter value"),clearValue:""})]})}),dataScope=(0,import_flow_engine.defineAction)({name:"dataScope",title:(0,import_flow_engine.tExpr)("Data scope"),uiMode:{type:"dialog",props:{width:800}},uiSchema:{filter:{type:"object","x-decorator":"FormItem","x-component":function e(t){const o=(0,import_flow_engine.useFlowSettingsContext)();return(0,import_jsx_runtime.jsx)(FilterGroup,{value:t.value,FilterItem:r=>(0,import_jsx_runtime.jsx)(VariableFilterItem,A(x({},r),{model:o.model,rightAsVariable:!0}))})}}},defaultParams(e){return{filter:{logic:"$and",items:[]}}},handler(e,t){return L(this,null,function*(){var o;const r=(o=e.model)==null?void 0:o.resource;if(!r)return;const i=(0,import_flow_engine.pruneFilter)((0,import_client.transformFilter)(t.filter));(0,import_client.isEmptyFilter)(i)?r.removeFilterGroup(e.model.uid):r.addFilterGroup(e.model.uid,i)})}});class AddNewActionModel extends PopupActionModel{constructor(){super(...arguments),R(this,"defaultPopupTitle",(0,import_flow_engine.tExpr)("Add new")),R(this,"defaultProps",{type:"primary",title:(0,import_flow_engine.tExpr)("Add new"),icon:"PlusOutlined"})}getAclActionName(){return"create"}}R(AddNewActionModel,"scene",ActionSceneEnum.collection);AddNewActionModel.define({label:(0,import_flow_engine.tExpr)("Add new"),sort:10});class BulkDeleteActionModel extends ActionModel{constructor(){super(...arguments),R(this,"defaultProps",{title:(0,import_flow_engine.tExpr)("Delete"),icon:"DeleteOutlined"})}getAclActionName(){return"destroy"}}R(BulkDeleteActionModel,"scene",ActionSceneEnum.collection);BulkDeleteActionModel.define({label:(0,import_flow_engine.tExpr)("Delete")});BulkDeleteActionModel.registerFlow({key:"deleteSettings",title:(0,import_flow_engine.tExpr)("Delete settings"),on:"click",steps:{confirm:{use:"confirm",defaultParams:{enable:!0,title:(0,import_flow_engine.tExpr)("Delete record"),content:(0,import_flow_engine.tExpr)("Are you sure you want to delete it?")}},delete:{handler(e,t){return L(this,null,function*(){var o;if(!((o=e.blockModel)!=null&&o.resource)){e.message.error(e.t("No resource selected for deletion"));return}const r=e.blockModel.resource;if(r.getSelectedRows().length===0){e.message.warning(e.t("Please select at least one record to delete"));return}yield r.destroy(e.blockModel.collection.getFilterByTK(r.getSelectedRows())),e.message.success(e.t("Selected records deleted successfully"))})}}}});class DeleteActionModel extends ActionModel{constructor(){super(...arguments),R(this,"defaultProps",{type:"link",title:(0,import_flow_engine.tExpr)("Delete"),icon:"DeleteOutlined"})}getAclActionName(){return"destroy"}}R(DeleteActionModel,"scene",ActionSceneEnum.record);DeleteActionModel.define({label:(0,import_flow_engine.tExpr)("Delete"),sort:60});DeleteActionModel.registerFlow({key:"deleteSettings",title:(0,import_flow_engine.tExpr)("Delete settings"),on:"click",steps:{confirm:{use:"confirm",defaultParams:{enable:!0,title:(0,import_flow_engine.tExpr)("Delete record"),content:(0,import_flow_engine.tExpr)("Are you sure you want to delete it?")}},delete:{handler(e,t){return L(this,null,function*(){if(!e.resource){e.message.error(e.t("No resource selected for deletion"));return}if(!e.record){e.message.error(e.t("No resource or record selected for deletion"));return}yield e.resource.destroy(e.blockModel.collection.getFilterByTK(e.record)),e.message.success(e.t("Record deleted successfully"))})}}}});class EditActionModel extends PopupActionModel{constructor(){super(...arguments),R(this,"defaultPopupTitle",(0,import_flow_engine.tExpr)("Edit")),R(this,"defaultProps",{title:(0,import_flow_engine.tExpr)("Edit"),icon:"EditOutlined"})}getAclActionName(){return"update"}}R(EditActionModel,"scene",ActionSceneEnum.record);EditActionModel.define({label:(0,import_flow_engine.tExpr)("Edit"),sort:20});class FilterActionModel extends ActionModel{constructor(){super(...arguments),R(this,"map",new WeakMap),R(this,"defaultProps",{type:"default",title:(0,import_flow_engine.tExpr)("Filter"),icon:"FilterOutlined",filterValue:{logic:"$and",items:[]}})}getIgnoreFieldNames(){var t;if(this.map.has(this.props.filterableFieldNames))return this.map.get(this.props.filterableFieldNames);const o=((t=this.context.blockModel.collection)==null?void 0:t.getFields())||[],r=getIgnoreFieldNames(this.props.filterableFieldNames||[],o.map(i=>i.name));return this.map.set(this.props.filterableFieldNames,r),r}render(){return this.context.isMobileLayout?(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(import_flow_engine.MobilePopup,{title:this.context.t("Filter"),visible:this.props.open,onClose:()=>{this.setProps("open",!1)},children:(0,import_jsx_runtime.jsxs)("div",{style:{padding:this.context.themeToken.paddingMD,backgroundColor:this.context.themeToken.colorBgContainer},children:[(0,import_jsx_runtime.jsx)(FilterContainer,{value:this.props.filterValue||this.props.defaultFilterValue,ctx:this.context,FilterItem:t=>(0,import_jsx_runtime.jsx)(VariableFilterItem,A(x({},t),{model:this,ignoreFieldNames:this.getIgnoreFieldNames()}))}),(0,import_jsx_runtime.jsx)("div",{style:{height:150}})]})}),super.render()]}):(0,import_jsx_runtime.jsx)(import_antd.Popover,{open:this.props.open,content:(0,import_jsx_runtime.jsx)(FilterContainer,{value:this.props.filterValue||this.props.defaultFilterValue,ctx:this.context,FilterItem:t=>(0,import_jsx_runtime.jsx)(VariableFilterItem,A(x({},t),{model:this,ignoreFieldNames:this.getIgnoreFieldNames()}))}),trigger:"click",placement:"bottomLeft",onOpenChange:t=>{t===!1&&this.setProps("open",void 0)},children:super.render()})}}R(FilterActionModel,"scene","collection");FilterActionModel.define({label:(0,import_flow_engine.tExpr)("Filter"),toggleable:!0,sort:5});FilterActionModel.registerFlow({key:"filterSettings",title:(0,import_flow_engine.tExpr)("Filter settings"),steps:{position:{handler(e,t){e.model.setProps("position",t.position||"left")}},filterableFieldNames:{title:(0,import_flow_engine.tExpr)("Filterable fields"),uiSchema:{filterableFieldNames:{type:"array","x-decorator":"FormItem","x-component":e=>{var t,o;const{model:r}=(0,import_flow_engine.useFlowSettingsContext)(),i=(o=(t=r==null?void 0:r.context)==null?void 0:t.app)==null?void 0:o.dataSourceManager,n=i==null?void 0:i.collectionFieldInterfaceManager,l=getFilterableFields(r.context.blockModel.collection,n).map(a=>({key:a.name,title:a.title}));return(0,import_jsx_runtime.jsx)(import_antd.Transfer,A(x({},e),{dataSource:l,targetKeys:e.value||[],onChange:a=>{var c;return(c=e.onChange)==null?void 0:c.call(e,a)},render:a=>a.title}))},"x-component-props":{showSearch:!0,listStyle:{width:280,height:360}}}},defaultParams(e){var t,o,r;const i=(r=(o=(t=e==null?void 0:e.model)==null?void 0:t.context)==null?void 0:o.app)==null?void 0:r.dataSourceManager,n=i==null?void 0:i.collectionFieldInterfaceManager;return{filterableFieldNames:getFilterableFields(e.blockModel.collection,n).map(l=>l.name)||[]}},handler(e,t){e.model.setProps("filterableFieldNames",t.filterableFieldNames)}},defaultFilter:{title:(0,import_flow_engine.tExpr)("Default filter conditions"),uiSchema:{defaultFilter:{type:"object","x-decorator":"FormItem","x-component":e=>{const{model:t}=(0,import_flow_engine.useFlowSettingsContext)();return(0,import_jsx_runtime.jsx)(FilterGroup,{value:e.value||{},FilterItem:o=>(0,import_jsx_runtime.jsx)(VariableFilterItem,A(x({},o),{model:t}))})}}},defaultParams(e){return{defaultFilter:e.model.defaultProps.filterValue}},handler(e,t){e.model.setProps("defaultFilterValue",import_lodash.default.cloneDeep(t.defaultFilter)),e.model.setProps("filterValue",import_lodash.default.cloneDeep(t.defaultFilter))}}}});FilterActionModel.registerFlow({key:"submitSettings",on:"submit",steps:{submit:{handler(e,t){const o=e.blockModel,r=o==null?void 0:o.resource;if(!o||!r)return;const i=(0,import_client.transformFilter)(e.model.props.filterValue),n=!(0,import_client.isEmptyFilter)(i);o.setFilterActive(e.model.uid,n),n?(r.addFilterGroup(e.model.uid,i),r.setPage(1)):r.removeFilterGroup(e.model.uid),o.getDataLoadingMode()==="manual"&&!n&&!o.hasActiveFilters()?(r.setData([]),r.setMeta({count:0,hasNext:!1}),typeof r.setPage=="function"&&r.setPage(1),r.loading=!1):r.refresh(),e.model.setProps("open",!1)}}}});FilterActionModel.registerFlow({key:"resetSettings",title:(0,import_flow_engine.tExpr)("Reset"),on:"reset",steps:{reset:{handler(e,t){const o=e.blockModel,r=o==null?void 0:o.resource;if(!o||!r)return;r.removeFilterGroup(e.model.uid),o.setFilterActive(e.model.uid,!1);const i=o.getDataLoadingMode(),n=e.model.props.defaultFilterValue,l=!(0,import_client.isEmptyFilter)((0,import_client.transformFilter)(n));i==="manual"&&!l&&!o.hasActiveFilters()?(r.setData([]),r.setMeta({count:0,hasNext:!1}),typeof r.setPage=="function"&&r.setPage(1),r.loading=!1):(l&&(r.addFilterGroup(e.model.uid,(0,import_client.transformFilter)(n)),o.setFilterActive(e.model.uid,!0),r.setPage(1)),r.refresh()),e.model.setProps("open",!1),e.model.setProps("filterValue",import_lodash.default.cloneDeep(n))}}}});FilterActionModel.registerFlow({key:"openSettings",on:"click",steps:{open:{handler(e,t){e.model.setProps("open",!e.model.props.open)}}}});function getFilterableFields(e,t){var o;const r=((o=e==null?void 0:e.getFields)==null?void 0:o.call(e))||[];return t?r.filter(i=>{if(!(i!=null&&i.interface)||(i==null?void 0:i.filterable)===!1)return!1;const n=t.getFieldInterface(i.interface);return!!(n!=null&&n.filterable)}):[]}function getIgnoreFieldNames(e,t){return t==null?void 0:t.filter(o=>!e.includes(o))}function resolveRunJsParams(e,t){var o,r,i,n;const l=((o=e.inputArgs)==null?void 0:o.preview)||{},a=(i=(r=l==null?void 0:l.version)!=null?r:t==null?void 0:t.version)!=null?i:"v1",c=typeof(l==null?void 0:l.code)=="string"?l.code:void 0;return{code:(n=c??(t==null?void 0:t.code))!=null?n:"",version:a}}class JSActionModel extends ActionModel{constructor(){super(...arguments),R(this,"defaultProps",{type:"default",title:(0,import_flow_engine.tExpr)("JS action"),icon:"JavaScriptOutlined"})}}JSActionModel.define({label:(0,import_flow_engine.tExpr)("JS action"),sort:9999,createModelOptions:{use:"JSActionModel"}});JSActionModel.registerFlow({key:"clickSettings",on:"click",title:(0,import_flow_engine.tExpr)("Click settings"),steps:{runJs:{title:(0,import_flow_engine.tExpr)("Write JavaScript"),useRawParams:!0,uiSchema:{code:{type:"string","x-component":CodeEditor,"x-component-props":{minHeight:"320px",theme:"light",enableLinter:!0,wrapperStyle:{position:"fixed",inset:8}}}},uiMode:{type:"embed",props:{styles:{body:{transform:"translateX(0)"}}}},defaultParams(e){return{version:"v2",code:`
1782
+ `;return(0,import_jsx_runtime.jsxs)("div",{style:{maxHeight:300,overflowY:"auto"},children:[ye.map(Ce=>(0,import_jsx_runtime.jsx)("div",{role:"option",onClick:()=>ve(Ce.value),className:Pe,children:Ce.label},Ce.value)),(0,import_jsx_runtime.jsx)(import_antd.Divider,{style:{margin:"4px 0"}}),be.map(Ce=>(0,import_jsx_runtime.jsx)("div",{role:"option",className:Pe,onClick:()=>ve(Ce.value),title:Ce.label,children:Ce.label},Ce.value))]})};return(0,import_jsx_runtime.jsxs)(import_antd.Space.Compact,{style:withFullWidthStyle(re),children:[(0,import_jsx_runtime.jsx)(import_antd.Select,{options:de,open:me,onDropdownVisibleChange:fe,allowClear:!1,style:{width:"100%",minWidth:100,maxWidth:["past","next","exact",void 0].includes(le)?100:null},value:ne,onChange:ve,dropdownRender:Me}),["past","next"].includes(ne)&&[(0,import_jsx_runtime.jsx)(import_antd.InputNumber,{style:{flex:1},value:ae==null?void 0:ae.number,onChange:ye=>{var be;(be=G==null?void 0:G.onChange)==null||be.call(G,A(x({},ae),{type:ne,number:ye,unit:(ae==null?void 0:ae.unit)||"day"}))}},"number"),(0,import_jsx_runtime.jsx)(import_antd.Select,{value:ae==null?void 0:ae.unit,style:{minWidth:130,maxWidth:140},onChange:ye=>{var be;(be=G==null?void 0:G.onChange)==null||be.call(G,A(x({},ae),{type:ne,unit:ye,number:(ae==null?void 0:ae.number)||1}))},options:[{value:"day",label:(Q=pe==null?void 0:pe("Day"))!=null?Q:"Day"},{value:"week",label:(X=pe==null?void 0:pe("Calendar week"))!=null?X:"Calendar week"},{value:"month",label:(ee=pe==null?void 0:pe("Calendar Month"))!=null?ee:"Calendar Month"},{value:"year",label:(ie=pe==null?void 0:pe("Calendar Year"))!=null?ie:"Calendar Year"}],popupMatchSelectWidth:!0},"unit")],(ne==="exact"||!ne)&&(0,import_jsx_runtime.jsx)(FieldAssignExactDatePicker,A(x({},xe),{isRange:ue,value:ue?_e:he,onChange:ue?Ae:Se,style:{flex:1}}))]})},[]),W=import_react2.default.useMemo(()=>()=>{var G,Q;return(0,import_jsx_runtime.jsx)(import_antd.Input,{placeholder:`<${(Q=(G=g.t)==null?void 0:G.call(g,"Null"))!=null?Q:"Null"}>`,readOnly:!0,style:{width:"100%"}})},[g]),Y=import_react2.default.useMemo(()=>G=>(0,import_jsx_runtime.jsx)(RunJSValueEditor,{t:g.t,value:G==null?void 0:G.value,onChange:G==null?void 0:G.onChange}),[g]),Z=B?K:U,H=import_react2.default.useMemo(()=>()=>L(void 0,null,function*(){var G;const Q=(yield(G=g.getPropertyMetaTree)==null?void 0:G.call(g))||[],X=_.current,ee=Array.isArray(X)?X:[],ie=mergeItemMetaTreeForAssignValue(Q,ee);return[{title:(0,import_flow_engine.tExpr)("Constant"),name:"constant",type:"string",paths:["constant"],render:Z},{title:(0,import_flow_engine.tExpr)("Null"),name:"null",type:"object",paths:["null"],render:W},{title:(0,import_flow_engine.tExpr)("RunJS"),name:"runjs",type:"object",paths:["runjs"],render:Y},...ie]}),[g,Z,W,Y]),J=import_react2.default.useMemo(()=>{if(!B)return t;if((0,import_flow_engine.isCtxDateExpression)(t)){const G=(0,import_flow_engine.parseCtxDateExpression)(t);return typeof G>"u"?"":G}return t},[B,t]),oe=import_react2.default.useCallback(G=>{if(!B){o(G);return}o(normalizeDateVariableOutput(G,N))},[N,o,B]);return P?(0,import_jsx_runtime.jsx)(import_flow_engine.VariableInput,{value:J,onChange:oe,metaTree:H,style:{width:"100%"},clearValue:"",converters:{renderInputComponent:G=>{var Q;const X=(Q=G==null?void 0:G.paths)==null?void 0:Q[0];return X==="constant"?Z:X==="null"?W:X==="runjs"?Y:null},resolveValueFromPath:G=>{var Q;const X=(Q=G==null?void 0:G.paths)==null?void 0:Q[0];if(X==="constant")return B?{type:"today"}:"";if(X==="null")return null;if(X==="runjs")return{code:"",version:"v2"}},resolvePathFromValue:G=>G===null?["null"]:(0,import_flow_engine.isRunJSValue)(G)?["runjs"]:B&&(0,import_flow_engine.isCtxDateExpression)(G)?["constant"]:(0,import_flow_engine.isVariableExpression)(G)?(0,import_flow_engine.parseValueToPath)(G):["constant"]}}):(0,import_jsx_runtime.jsx)(import_antd.Input,{disabled:!0,placeholder:(h=(p=g.t)==null?void 0:p.call(g,"Please select a field"))!=null?h:"Please select a field"})},{DateFilterDynamicComponent:DateFilterDynamicComponentLazy}=lazy(()=>Promise.resolve().then(()=>DateFilterDynamicComponent$1),"DateFilterDynamicComponent");function createStaticInputRenderer(e,t,o){var r,i,n;const l=e==null?void 0:e["x-component"],a=((r=t==null?void 0:t.uiSchema)==null?void 0:r["x-component-props"])||{},c=(e==null?void 0:e["x-component-props"])||{},u=(0,import_merge.default)({},a,c),d=Array.isArray((i=t==null?void 0:t.uiSchema)==null?void 0:i.enum)?(n=t==null?void 0:t.uiSchema)==null?void 0:n.enum:void 0,m=enumToOptions(d,o),p=x({style:x({width:200},(u==null?void 0:u.style)||{}),placeholder:(u==null?void 0:u.placeholder)||o("Enter value")},u);return h=>{const g=h||{},{value:f,onChange:_}=g,v=te(g,["value","onChange"]);if(l==="InputNumber")return(0,import_jsx_runtime.jsx)(import_antd.InputNumber,A(x(x({},p),v),{value:f,onChange:_}));if(l==="NumberPicker")return(0,import_jsx_runtime.jsx)(import_antd_v5.NumberPicker,A(x(x({},p),v),{value:f,onChange:_}));if(l==="Switch")return(0,import_jsx_runtime.jsx)(import_antd.Switch,A(x(x({},p),v),{checked:!!f,onChange:_}));if(l==="Select"){let b=p;return Array.isArray(b==null?void 0:b.options)&&b.options.length>0?b=A(x({},b),{options:translateOptions(b.options,o)}):m&&(b=A(x({},b),{options:m})),(0,import_jsx_runtime.jsx)(import_antd.Select,A(x(x({},b),v),{value:f,onChange:_}))}return l==="DateFilterDynamicComponent"?(0,import_jsx_runtime.jsx)(DateFilterDynamicComponentLazy,A(x(x({},p),v),{value:f,onChange:_})):(0,import_jsx_runtime.jsx)(import_antd.Input,A(x(x({},p),v),{value:f,onChange:b=>{var C;return _==null?void 0:_((C=b==null?void 0:b.target)==null?void 0:C.value)}}))}}const fallbackStringOperators=[{value:"$includes",label:"contains",selected:!0},{value:"$notIncludes",label:"does not contain"},{value:"$eq",label:"is"},{value:"$ne",label:"is not"},{value:"$empty",label:"is empty",noValue:!0},{value:"$notEmpty",label:"is not empty",noValue:!0}];function mergeExtraMetaTreeWithBase(e,t){const o=Array.isArray(e)?e:[],r=Array.isArray(t)?t:[];if(!r.length)return o;const i=r.find(l=>(l==null?void 0:l.name)==="item");if(!i)return[...r,...o];const n=mergeItemMetaTreeForAssignValue(o,[i]);return[...r.filter(l=>(l==null?void 0:l.name)!=="item"),...n]}function toFilterableChildMetaNode(e,t){var o,r;return{name:t.name,title:t.title||t.name,type:((o=t.schema)==null?void 0:o.type)||"string",interface:((r=t.schema)==null?void 0:r["x-component"])==="Select"?"select":"input",uiSchema:A(x({},t.schema||{}),{"x-filter-operators":t.operators}),paths:[...e.paths||[],t.name],parentTitles:[...e.parentTitles||[],e.title]}}function enhanceMetaTreeNodeWithFilterableChildren(e,t){return L(this,null,function*(){var o,r;const i=e.interface&&t?t(e.interface):void 0,n=(Array.isArray((o=i==null?void 0:i.filterable)==null?void 0:o.children)?(r=i==null?void 0:i.filterable)==null?void 0:r.children:[]).map(a=>toFilterableChildMetaNode(e,a)),l=a=>L(this,null,function*(){const c=[...yield Promise.all(a.map(u=>enhanceMetaTreeNodeWithFilterableChildren(u,t))),...n];return(0,import_uniqBy.default)(c,u=>u.name)});if(typeof e.children=="function"){const a=e.children;return A(x({},e),{children:()=>L(this,null,function*(){const c=yield a(),u=Array.isArray(c)?c:[];return yield l(u)})})}return Array.isArray(e.children)?A(x({},e),{children:yield l(e.children)}):n.length?A(x({},e),{children:n}):e})}function enhanceMetaTreeWithFilterableChildren(e,t){return L(this,null,function*(){const o=Array.isArray(e)?e:[];return yield Promise.all(o.map(r=>enhanceMetaTreeNodeWithFilterableChildren(r,t)))})}const LinkageFilterItem=(0,import_flow_engine.observer)(e=>{var t;const{value:o,model:r,extraMetaTree:i}=e,n=(0,import_flow_engine.useFlowViewContext)(),l=r.translate,{path:a,operator:c,value:u}=o||{},[d,m]=(0,import_react2.useState)(null),p=(0,import_react2.useRef)(!1),h=(0,import_react2.useMemo)(()=>{var M,E;if(d){const D=r.context.app.dataSourceManager,k=d.interface?D.collectionFieldInterfaceManager.getFieldInterface(d.interface):void 0,w=(M=d==null?void 0:d.uiSchema)==null?void 0:M["x-filter-operators"];return((Array.isArray(w)&&w.length?w:(E=k==null?void 0:k.filterable)==null?void 0:E.operators)||fallbackStringOperators).filter(B=>!B.visible||B.visible(d)).map(B=>({value:B.value,label:typeof B.label=="string"?B.label:String(B.label),noValue:!!B.noValue,schema:B.schema,selected:!!B.selected}))}return[]},[d,r]),g=(0,import_react2.useMemo)(()=>h.map(M=>({value:M.value,label:l(M.label)})),[h,l]);(0,import_react2.useEffect)(()=>{if(h.length!==0){if(!c){if(p.current){const M=h.find(E=>E.selected)||h[0];o.operator=(M==null?void 0:M.value)||"",M!=null&&M.noValue?(o.value=!0,o.noValue=!0):o.noValue=!1,p.current=!1}return}if(!h.some(M=>M.value===c)){const M=h.find(E=>E.selected)||h[0];o.operator=(M==null?void 0:M.value)||"",M!=null&&M.noValue?(o.value=!0,o.noValue=!0):o.noValue=!1}}},[h,c,o]);const f=(0,import_react2.useMemo)(()=>h.find(M=>M.value===c),[h,c]),_=(0,import_react2.useMemo)(()=>{const M=(d==null?void 0:d.uiSchema)||{},E=(f==null?void 0:f.schema)||{};return(0,import_merge.default)({},M,E)},[d,f]),v=(0,import_react2.useRef)(l);(0,import_react2.useEffect)(()=>{v.current=l},[l]);const b=(0,import_react2.useCallback)(M=>{var E,D;return(D=(E=v.current)==null?void 0:E.call(v,M))!=null?D:M},[]),C=(0,import_react2.useMemo)(()=>createStaticInputRenderer(_,d,b),[_,d,b]),y=(0,import_react2.useMemo)(()=>function(){return(0,import_jsx_runtime.jsx)(import_antd.Input,{placeholder:`<${l("Null")}>`,readOnly:!0})},[l]),F=(0,import_react2.useMemo)(()=>()=>L(void 0,null,function*(){const M=(r==null?void 0:r.context.getPropertyMetaTree())||n.getPropertyMetaTree(),E=mergeExtraMetaTreeWithBase(M,i);return[{title:l("Constant"),name:"constant",type:"string",paths:["constant"]},{title:l("Null"),name:"null",type:"object",paths:["null"]},...E]}),[n,r,l,i]),S=(0,import_react2.useCallback)(()=>L(void 0,null,function*(){var M,E;const D=((E=(M=r==null?void 0:r.context)==null?void 0:M.getPropertyMetaTree)==null?void 0:E.call(M))||n.getPropertyMetaTree(),k=Array.isArray(D)?D:[],w=mergeExtraMetaTreeWithBase(k,i);return yield enhanceMetaTreeWithFilterableChildren(w,B=>{var N,T,$,q;return(q=($=(T=(N=r.context.app)==null?void 0:N.dataSourceManager)==null?void 0:T.collectionFieldInterfaceManager)==null?void 0:$.getFieldInterface)==null?void 0:q.call($,B)})}),[n,r,i]),P=(0,import_react2.useMemo)(()=>({renderInputComponent:M=>{var E;const D=(E=M==null?void 0:M.paths)==null?void 0:E[0];return D==="constant"?C:D==="null"?y:null},resolveValueFromPath:M=>{var E;const D=(E=M==null?void 0:M.paths)==null?void 0:E[0];if(D==="constant")return"";if(D==="null")return null},resolvePathFromValue:M=>M===null?["null"]:(0,import_flow_engine.parseValueToPath)(M)||["constant"]}),[y,C]),j=(0,import_react2.useCallback)((M,E)=>{const D=o.path||"",k=M||"",w=k!==D;o.path=k,w&&D&&(o.operator="",o.value="",p.current=!0),!D&&k&&!o.operator&&(p.current=!0),E&&m(E)},[o]),I=(0,import_react2.useCallback)(M=>{o.operator=M;const E=h.find(D=>D.value===M);E!=null&&E.noValue?(o.value=!0,o.noValue=!0):o.noValue=!1},[o,h]);return(0,import_jsx_runtime.jsxs)(import_antd.Space,{wrap:!0,style:{width:"100%"},children:[(0,import_jsx_runtime.jsx)(import_flow_engine.VariableInput,{value:a,onChange:j,metaTree:S,showValueComponent:!0,style:{flex:"1 1 40%",minWidth:160,maxWidth:"100%"},placeholder:l("Select variable"),onlyLeafSelectable:!0}),(0,import_jsx_runtime.jsx)(import_antd.Select,{style:{flex:"0 0 140px",minWidth:120,maxWidth:"100%"},placeholder:l("Comparison"),value:c||void 0,onChange:I,children:g.map(M=>(0,import_jsx_runtime.jsx)(import_antd.Select.Option,{value:M.value,children:M.label},M.value))}),!((t=h.find(M=>M.value===c))!=null&&t.noValue)&&(0,import_jsx_runtime.jsx)(import_flow_engine.VariableInput,{value:u,onChange:M=>o.value=M,metaTree:F,converters:P,showValueComponent:!0,style:{flex:"1 1 40%",minWidth:160,maxWidth:"100%"},placeholder:l("Enter value"),clearValue:""})]})}),dataScope=(0,import_flow_engine.defineAction)({name:"dataScope",title:(0,import_flow_engine.tExpr)("Data scope"),uiMode:{type:"dialog",props:{width:800}},uiSchema:{filter:{type:"object","x-decorator":"FormItem","x-component":function e(t){const o=(0,import_flow_engine.useFlowSettingsContext)();return(0,import_jsx_runtime.jsx)(FilterGroup,{value:t.value,FilterItem:r=>(0,import_jsx_runtime.jsx)(VariableFilterItem,A(x({},r),{model:o.model,rightAsVariable:!0}))})}}},defaultParams(e){return{filter:{logic:"$and",items:[]}}},handler(e,t){return L(this,null,function*(){var o;const r=(o=e.model)==null?void 0:o.resource;if(!r)return;const i=(0,import_flow_engine.pruneFilter)((0,import_client.transformFilter)(t.filter));(0,import_client.isEmptyFilter)(i)?r.removeFilterGroup(e.model.uid):r.addFilterGroup(e.model.uid,i)})}});class AddNewActionModel extends PopupActionModel{constructor(){super(...arguments),R(this,"defaultPopupTitle",(0,import_flow_engine.tExpr)("Add new")),R(this,"defaultProps",{type:"primary",title:(0,import_flow_engine.tExpr)("Add new"),icon:"PlusOutlined"})}getAclActionName(){return"create"}}R(AddNewActionModel,"scene",ActionSceneEnum.collection);AddNewActionModel.define({label:(0,import_flow_engine.tExpr)("Add new"),sort:10});class BulkDeleteActionModel extends ActionModel{constructor(){super(...arguments),R(this,"defaultProps",{title:(0,import_flow_engine.tExpr)("Delete"),icon:"DeleteOutlined"})}getAclActionName(){return"destroy"}}R(BulkDeleteActionModel,"scene",ActionSceneEnum.collection),R(BulkDeleteActionModel,"capabilityActionName","destroyMany");BulkDeleteActionModel.define({label:(0,import_flow_engine.tExpr)("Delete")});BulkDeleteActionModel.registerFlow({key:"deleteSettings",title:(0,import_flow_engine.tExpr)("Delete settings"),on:"click",steps:{confirm:{use:"confirm",defaultParams:{enable:!0,title:(0,import_flow_engine.tExpr)("Delete record"),content:(0,import_flow_engine.tExpr)("Are you sure you want to delete it?")}},delete:{handler(e,t){return L(this,null,function*(){var o;if(!((o=e.blockModel)!=null&&o.resource)){e.message.error(e.t("No resource selected for deletion"));return}const r=e.blockModel.resource;if(r.getSelectedRows().length===0){e.message.warning(e.t("Please select at least one record to delete"));return}yield r.destroy(e.blockModel.collection.getFilterByTK(r.getSelectedRows())),e.message.success(e.t("Selected records deleted successfully"))})}}}});class DeleteActionModel extends ActionModel{constructor(){super(...arguments),R(this,"defaultProps",{type:"link",title:(0,import_flow_engine.tExpr)("Delete"),icon:"DeleteOutlined"})}getAclActionName(){return"destroy"}}R(DeleteActionModel,"scene",ActionSceneEnum.record);DeleteActionModel.define({label:(0,import_flow_engine.tExpr)("Delete"),sort:60});DeleteActionModel.registerFlow({key:"deleteSettings",title:(0,import_flow_engine.tExpr)("Delete settings"),on:"click",steps:{confirm:{use:"confirm",defaultParams:{enable:!0,title:(0,import_flow_engine.tExpr)("Delete record"),content:(0,import_flow_engine.tExpr)("Are you sure you want to delete it?")}},delete:{handler(e,t){return L(this,null,function*(){if(!e.resource){e.message.error(e.t("No resource selected for deletion"));return}if(!e.record){e.message.error(e.t("No resource or record selected for deletion"));return}yield e.resource.destroy(e.blockModel.collection.getFilterByTK(e.record)),e.message.success(e.t("Record deleted successfully"))})}}}});class EditActionModel extends PopupActionModel{constructor(){super(...arguments),R(this,"defaultPopupTitle",(0,import_flow_engine.tExpr)("Edit")),R(this,"defaultProps",{title:(0,import_flow_engine.tExpr)("Edit"),icon:"EditOutlined"})}getAclActionName(){return"update"}}R(EditActionModel,"scene",ActionSceneEnum.record);EditActionModel.define({label:(0,import_flow_engine.tExpr)("Edit"),sort:20});class FilterActionModel extends ActionModel{constructor(){super(...arguments),R(this,"map",new WeakMap),R(this,"defaultProps",{type:"default",title:(0,import_flow_engine.tExpr)("Filter"),icon:"FilterOutlined",filterValue:{logic:"$and",items:[]}})}getIgnoreFieldNames(){var t;if(this.map.has(this.props.filterableFieldNames))return this.map.get(this.props.filterableFieldNames);const o=((t=this.context.blockModel.collection)==null?void 0:t.getFields())||[],r=getIgnoreFieldNames(this.props.filterableFieldNames||[],o.map(i=>i.name));return this.map.set(this.props.filterableFieldNames,r),r}render(){return this.context.isMobileLayout?(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(import_flow_engine.MobilePopup,{title:this.context.t("Filter"),visible:this.props.open,onClose:()=>{this.setProps("open",!1)},children:(0,import_jsx_runtime.jsxs)("div",{style:{padding:this.context.themeToken.paddingMD,backgroundColor:this.context.themeToken.colorBgContainer},children:[(0,import_jsx_runtime.jsx)(FilterContainer,{value:this.props.filterValue||this.props.defaultFilterValue,ctx:this.context,FilterItem:t=>(0,import_jsx_runtime.jsx)(VariableFilterItem,A(x({},t),{model:this,ignoreFieldNames:this.getIgnoreFieldNames()}))}),(0,import_jsx_runtime.jsx)("div",{style:{height:150}})]})}),super.render()]}):(0,import_jsx_runtime.jsx)(import_antd.Popover,{open:this.props.open,content:(0,import_jsx_runtime.jsx)(FilterContainer,{value:this.props.filterValue||this.props.defaultFilterValue,ctx:this.context,FilterItem:t=>(0,import_jsx_runtime.jsx)(VariableFilterItem,A(x({},t),{model:this,ignoreFieldNames:this.getIgnoreFieldNames()}))}),trigger:"click",placement:"bottomLeft",onOpenChange:t=>{t===!1&&this.setProps("open",void 0)},children:super.render()})}}R(FilterActionModel,"scene","collection");FilterActionModel.define({label:(0,import_flow_engine.tExpr)("Filter"),toggleable:!0,sort:5});FilterActionModel.registerFlow({key:"filterSettings",title:(0,import_flow_engine.tExpr)("Filter settings"),steps:{position:{handler(e,t){e.model.setProps("position",t.position||"left")}},filterableFieldNames:{title:(0,import_flow_engine.tExpr)("Filterable fields"),uiSchema:{filterableFieldNames:{type:"array","x-decorator":"FormItem","x-component":e=>{var t,o;const{model:r}=(0,import_flow_engine.useFlowSettingsContext)(),i=(o=(t=r==null?void 0:r.context)==null?void 0:t.app)==null?void 0:o.dataSourceManager,n=i==null?void 0:i.collectionFieldInterfaceManager,l=getFilterableFields(r.context.blockModel.collection,n).map(a=>({key:a.name,title:a.title}));return(0,import_jsx_runtime.jsx)(import_antd.Transfer,A(x({},e),{dataSource:l,targetKeys:e.value||[],onChange:a=>{var c;return(c=e.onChange)==null?void 0:c.call(e,a)},render:a=>a.title}))},"x-component-props":{showSearch:!0,listStyle:{width:280,height:360}}}},defaultParams(e){var t,o,r;const i=(r=(o=(t=e==null?void 0:e.model)==null?void 0:t.context)==null?void 0:o.app)==null?void 0:r.dataSourceManager,n=i==null?void 0:i.collectionFieldInterfaceManager;return{filterableFieldNames:getFilterableFields(e.blockModel.collection,n).map(l=>l.name)||[]}},handler(e,t){e.model.setProps("filterableFieldNames",t.filterableFieldNames)}},defaultFilter:{title:(0,import_flow_engine.tExpr)("Default filter conditions"),uiSchema:{defaultFilter:{type:"object","x-decorator":"FormItem","x-component":e=>{const{model:t}=(0,import_flow_engine.useFlowSettingsContext)();return(0,import_jsx_runtime.jsx)(FilterGroup,{value:e.value||{},FilterItem:o=>(0,import_jsx_runtime.jsx)(VariableFilterItem,A(x({},o),{model:t}))})}}},defaultParams(e){return{defaultFilter:e.model.defaultProps.filterValue}},handler(e,t){e.model.setProps("defaultFilterValue",import_lodash.default.cloneDeep(t.defaultFilter)),e.model.setProps("filterValue",import_lodash.default.cloneDeep(t.defaultFilter))}}}});FilterActionModel.registerFlow({key:"submitSettings",on:"submit",steps:{submit:{handler(e,t){const o=e.blockModel,r=o==null?void 0:o.resource;if(!o||!r)return;const i=(0,import_client.transformFilter)(e.model.props.filterValue),n=!(0,import_client.isEmptyFilter)(i);o.setFilterActive(e.model.uid,n),n?(r.addFilterGroup(e.model.uid,i),r.setPage(1)):r.removeFilterGroup(e.model.uid),o.getDataLoadingMode()==="manual"&&!n&&!o.hasActiveFilters()?(r.setData([]),r.setMeta({count:0,hasNext:!1}),typeof r.setPage=="function"&&r.setPage(1),r.loading=!1):r.refresh(),e.model.setProps("open",!1)}}}});FilterActionModel.registerFlow({key:"resetSettings",title:(0,import_flow_engine.tExpr)("Reset"),on:"reset",steps:{reset:{handler(e,t){const o=e.blockModel,r=o==null?void 0:o.resource;if(!o||!r)return;r.removeFilterGroup(e.model.uid),o.setFilterActive(e.model.uid,!1);const i=o.getDataLoadingMode(),n=e.model.props.defaultFilterValue,l=!(0,import_client.isEmptyFilter)((0,import_client.transformFilter)(n));i==="manual"&&!l&&!o.hasActiveFilters()?(r.setData([]),r.setMeta({count:0,hasNext:!1}),typeof r.setPage=="function"&&r.setPage(1),r.loading=!1):(l&&(r.addFilterGroup(e.model.uid,(0,import_client.transformFilter)(n)),o.setFilterActive(e.model.uid,!0),r.setPage(1)),r.refresh()),e.model.setProps("open",!1),e.model.setProps("filterValue",import_lodash.default.cloneDeep(n))}}}});FilterActionModel.registerFlow({key:"openSettings",on:"click",steps:{open:{handler(e,t){e.model.setProps("open",!e.model.props.open)}}}});function getFilterableFields(e,t){var o;const r=((o=e==null?void 0:e.getFields)==null?void 0:o.call(e))||[];return t?r.filter(i=>{if(!(i!=null&&i.interface)||(i==null?void 0:i.filterable)===!1)return!1;const n=t.getFieldInterface(i.interface);return!!(n!=null&&n.filterable)}):[]}function getIgnoreFieldNames(e,t){return t==null?void 0:t.filter(o=>!e.includes(o))}function resolveRunJsParams(e,t){var o,r,i,n;const l=((o=e.inputArgs)==null?void 0:o.preview)||{},a=(i=(r=l==null?void 0:l.version)!=null?r:t==null?void 0:t.version)!=null?i:"v1",c=typeof(l==null?void 0:l.code)=="string"?l.code:void 0;return{code:(n=c??(t==null?void 0:t.code))!=null?n:"",version:a}}class JSActionModel extends ActionModel{constructor(){super(...arguments),R(this,"defaultProps",{type:"default",title:(0,import_flow_engine.tExpr)("JS action"),icon:"JavaScriptOutlined"})}}JSActionModel.define({label:(0,import_flow_engine.tExpr)("JS action"),sort:9999,createModelOptions:{use:"JSActionModel"}});JSActionModel.registerFlow({key:"clickSettings",on:"click",title:(0,import_flow_engine.tExpr)("Click settings"),steps:{runJs:{title:(0,import_flow_engine.tExpr)("Write JavaScript"),useRawParams:!0,uiSchema:{code:{type:"string","x-component":CodeEditor,"x-component-props":{minHeight:"320px",theme:"light",enableLinter:!0,wrapperStyle:{position:"fixed",inset:8}}}},uiMode:{type:"embed",props:{styles:{body:{transform:"translateX(0)"}}}},defaultParams(e){return{version:"v2",code:`
1787
1783
  ctx.message.info('Hello JS action.');
1788
1784
  `}},handler(e,t){return L(this,null,function*(){const{code:o,version:r}=resolveRunJsParams(e,t),i=(0,import_flow_engine.createSafeNavigator)();yield e.runjs(o,{window:(0,import_flow_engine.createSafeWindow)({navigator:i}),document:(0,import_flow_engine.createSafeDocument)(),navigator:i},{version:r})})}}}});class JSCollectionActionModel extends ActionModel{constructor(){super(...arguments),R(this,"defaultProps",{title:(0,import_flow_engine.tExpr)("JS action"),icon:"JavaScriptOutlined"})}}R(JSCollectionActionModel,"scene",ActionSceneEnum.collection);JSCollectionActionModel.define({label:(0,import_flow_engine.tExpr)("JS action"),sort:9999,createModelOptions:{use:"JSCollectionActionModel"}});JSCollectionActionModel.registerFlow({key:"clickSettings",on:"click",title:(0,import_flow_engine.tExpr)("Click settings"),steps:{runJs:{title:(0,import_flow_engine.tExpr)("Write JavaScript"),useRawParams:!0,uiSchema:{code:{type:"string","x-component":CodeEditor,"x-component-props":{minHeight:"320px",theme:"light",enableLinter:!0,wrapperStyle:{position:"fixed",inset:8}}}},uiMode:{type:"embed",props:{styles:{body:{transform:"translateX(0)"}}}},defaultParams(e){return{version:"v2",code:`
1789
1785
  const rows = ctx.resource?.getSelectedRows?.() || [];
@@ -1811,7 +1807,7 @@ if (!ctx.record) {
1811
1807
  flex-shrink: 0;
1812
1808
  flex: 1;
1813
1809
  }
1814
- `},properties:{name:{type:"string","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:'{{t("Name")}}'}},value:{type:"string","x-decorator":"FormItem","x-component":TextAreaWithContextSelector,"x-component-props":{rows:1}},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}}}}},"x-reactions":{dependencies:["mode"],fulfill:{state:{hidden:'{{$deps[0] === "html"}}'}}},properties:{add:{type:"void",title:'{{t("Add parameter")}}',"x-component":"ArrayItems.Addition"}}},openInNewWindow:{type:"boolean","x-content":t("Open in new window"),"x-decorator":"FormItem","x-component":"Checkbox","x-reactions":{dependencies:["mode"],fulfill:{state:{hidden:'{{$deps[0] === "html"}}'}}}}}},handler(e,t){e.model.setProps({url:t.url,searchParams:t.searchParams,openInNewWindow:t.openInNewWindow})}}}});class ExpandCollapseActionModel extends ActionModel{constructor(){super(...arguments),R(this,"expandFlag"),R(this,"defaultProps",{type:"default",icon:"DownOutlined"})}setTitle(t){this.setProps({title:t})}setExpandFlag(t){this.expandFlag=t}getTitle(){return this.expandFlag?this.context.t("Collapse all"):this.context.t("Expand all")}getIcon(){return this.expandFlag?"NodeCollapseOutlined":"NodeExpandOutlined"}}R(ExpandCollapseActionModel,"scene",ActionSceneEnum.collection);function getIdsWithChildren(e,{idKey:t="id",childrenKey:o="children"}={}){const r=[];function i(n){if(Array.isArray(n))for(const l of n){const a=l[o];r.push(l[t]),Array.isArray(a)&&a.length>0&&i(a)}}return i(e),r}const allIncludesChildren=e=>getIdsWithChildren(e);ExpandCollapseActionModel.registerFlow({key:"expandCollapseSettingsInit",sort:200,steps:{init:{handler(e,t){e.blockModel.props.defaultExpandAllRows?e.model.setExpandFlag(!0):e.model.setExpandFlag(!1)}}}});ExpandCollapseActionModel.registerFlow({key:"expandCollapseSettings",on:"click",steps:{expandCollapse:{handler(e,t){return L(this,null,function*(){var o;if(!((o=e.blockModel)!=null&&o.resource))return;const r=e.blockModel.resource,{treeTable:i}=e.blockModel.props;if(i)if(e.model.expandFlag)e.blockModel.setProps({expandedRowKeys:[]}),e.model.setExpandFlag(!1);else{const n=allIncludesChildren(r.getData());e.blockModel.setProps({expandedRowKeys:n}),e.model.setExpandFlag(!0)}})}}}});ExpandCollapseActionModel.define({label:(0,import_flow_engine.escapeT)("Expand/Collapse"),hide(e){var t;return((t=e.collection)==null?void 0:t.template)!=="tree"||e.model.props.treeTable===!1}});class AddChildActionModel extends PopupActionModel{constructor(){super(...arguments),R(this,"defaultProps",{type:"link",title:(0,import_flow_engine.tExpr)("Add child"),icon:"PlusOutlined"})}getAclActionName(){return"create"}onInit(t){super.onInit(t),this.context.defineProperty("association",{get:()=>this.context.blockModel.dataSource.getAssociation(`${this.context.blockModel.collection.name}.children`)})}}AddChildActionModel.registerFlow({key:"addChildSettingsInit",steps:{addChildInit:{handler(e,t){return L(this,null,function*(){e.model.onClick=o=>{e.resource.setSourceId(e.record.id),e.model.dispatchEvent("click",A(x({event:o},e.inputArgs),{filterByTk:null}),{debounce:!0})}})}}}});AddChildActionModel.define({label:(0,import_flow_engine.tExpr)("Add child"),hide(e){var t;return((t=e.collection)==null?void 0:t.template)!=="tree"||e.blockModel.props.treeTable===!1}});RecordActionGroupModel.registerActionModels({AddChildActionModel});const SAVE_STEP_PARAMS_WITH_SUB_MODELS_FLAG="__saveStepParamsWithSubModels";function markSaveStepParamsWithSubModels(e){if(!e||typeof e!="object"&&typeof e!="function")throw new Error("[saveStepParamsWithSubModels] model is not an object");e[SAVE_STEP_PARAMS_WITH_SUB_MODELS_FLAG]=!0}function saveStepParamsWithSubModelsIfNeeded(e,t){return L(this,null,function*(){if(!e||typeof e!="object"&&typeof e!="function")throw new Error("[saveStepParamsWithSubModels] model is not an object");const o=e;if(o[SAVE_STEP_PARAMS_WITH_SUB_MODELS_FLAG]!==!0)return yield t();if(typeof o.save!="function")throw new Error("[saveStepParamsWithSubModels] model.save is not a function");try{return yield o.save()}finally{delete o[SAVE_STEP_PARAMS_WITH_SUB_MODELS_FLAG]}})}function evaluateCondition(e,t){const o=(r,i,n)=>{var l,a,c;return i?(c=(a=(l=e==null?void 0:e.app)==null?void 0:l.jsonLogic)==null?void 0:a.apply)==null?void 0:c.call(a,{[i]:[r,n]}):!0};try{return(0,import_client.evaluateConditions)((0,import_client.removeInvalidFilterItems)(t),o)}catch{return!1}}function parsePathString(e){const t=[];let o=0;const r=e.length,i=()=>{const n=o;for(;o<r&&e[o]!=="."&&e[o]!=="[";)o++;const l=e.slice(n,o);l&&t.push(l)};for(;o<r;){const n=e[o];if(n==="."){o++;continue}if(n==="["){o++;const l=o;for(;o<r&&e[o]!=="]";)o++;const a=e.slice(l,o);o++,/^\d+$/.test(a)?t.push(Number(a)):a&&t.push({placeholder:a});continue}i()}return t}function parseFieldIndexEntries(e){const t=Array.isArray(e)?e:[],o=[];for(const r of t){if(typeof r!="string")continue;const[i,n]=r.split(":"),l=Number(n);!i||Number.isNaN(l)||o.push({name:i,index:l})}return o}function resolveDynamicNamePath(e,t){const o=Array.isArray(e)?[...e]:parsePathString(e),r=parseFieldIndexEntries(t),i=[];let n=0;for(let l=0;l<o.length;l++){const a=o[l];if(typeof a=="object"&&a&&"placeholder"in a){const c=i[i.length-1],u=typeof c=="string"?c:void 0;if(!u)return null;for(;n<r.length&&r[n].name!==u;)n++;if(n>=r.length)return null;i.push(r[n].index),n++;continue}if(i.push(a),typeof a=="string"&&n<r.length&&r[n].name===a){const c=o[l+1];typeof c=="number"?n++:typeof c=="object"&&c&&"placeholder"in c||(i.push(r[n].index),n++)}}return i}function namePathToPathKey(e){let t="";for(const o of e){if(typeof o=="number"){t+=`[${o}]`;continue}t?t+=`.${o}`:t=o}return t}function pathKeyToNamePath(e){return parsePathString(e).filter(t=>typeof t!="object")}function buildAncestorKeys(e){const t=[],o=[];for(const r of e)o.push(r),t.push(namePathToPathKey(o));return t}function shouldProxyObjectValue(e){return!e||typeof e!="object"?!1:Array.isArray(e)||import_lodash.default.isPlainObject(e)}function recordDep(e,t){if(t)for(const o of buildAncestorKeys(e))t.deps.add(`fv:${o}`)}function createFormValuesProxy(e){const{valuesMirror:t,collector:o,basePath:r,getFormValuesSnapshot:i,getFormValueAtPath:n}=e,l=()=>r.length?import_lodash.default.get(t,r):t,a=l(),c=a&&(typeof a=="object"||typeof a=="function")?a:Array.isArray(a)?[]:{},u=d=>createFormValuesProxy({valuesMirror:t,basePath:d,collector:o,getFormValuesSnapshot:i,getFormValueAtPath:n});return new Proxy(c,{get(d,m){if(m==="toJSON")return o&&(o.wildcard=!0),r.length===0?()=>i():()=>(0,import_reactive.toJS)(l());if(typeof m=="symbol"){o&&(o.wildcard=!0);const b=l();return b==null?void 0:b[m]}const p=l();if(p==null)return;if(m==="__raw")return p;if(m==="__proto__"||m==="prototype"||m==="constructor"){o&&(o.wildcard=!0);return}const h=Array.isArray(p),g=h&&(typeof m=="number"&&Number.isInteger(m)||typeof m=="string"&&/^\d+$/.test(m));if(h&&!g){o&&(o.wildcard=!0);const b=p[m];return typeof b=="function"?b.bind(p):b}const f=g?Number(m):m,_=[...r,f];recordDep(_,o);let v=p[m];if(typeof v>"u"){const b=n(_);import_lodash.default.isEqual(b,v)||(import_lodash.default.set(t,_,b),v=b)}return v==null||typeof v!="object"?v:shouldProxyObjectValue(v)?u(_):v},ownKeys(){o&&(o.wildcard=!0);const d=l();return d?Reflect.ownKeys(d):[]},getOwnPropertyDescriptor(d,m){const p=l();if(p)return Object.getOwnPropertyDescriptor(p,m)},has(d,m){const p=l();return p?m in p:!1}})}function collectStaticDepsFromTemplateValue(e,t){try{const o=(0,import_flow_engine.extractUsedVariablePaths)(e)||{};for(const[r,i]of Object.entries(o)){const n=Array.isArray(i)?i:[],l=n.length?n:[""];for(const a of l){if(r==="formValues"){if(!a){t.wildcard=!0;continue}const u=parsePathString(String(a)).filter(d=>typeof d!="object");recordDep(u,t);continue}const c=a?`ctx:${r}:${String(a)}`:`ctx:${r}`;t.deps.add(c)}}}catch{}}function collectStaticDepsFromRunJSValue(e,t){if((0,import_flow_engine.isRunJSValue)(e))try{const o=(0,import_flow_engine.extractUsedVariablePathsFromRunJS)(e.code)||{};for(const[r,i]of Object.entries(o)){const n=Array.isArray(i)?i:[],l=n.length?n:[""];for(const a of l){if(r==="formValues"){if(!a){t.wildcard=!0;continue}const u=parsePathString(String(a)).filter(d=>typeof d!="object");recordDep(u,t);continue}const c=a?`ctx:${r}:${String(a)}`:`ctx:${r}`;t.deps.add(c)}}}catch{}}function createFormPatcher(e){let t,o,r;const i=()=>{const n=t;n&&(o&&(n.setFieldValue=o),r&&(n.setFieldsValue=r),t=void 0,o=void 0,r=void 0)};return{patch:n=>{if(t===n)return;i();const l=typeof(n==null?void 0:n.setFieldValue)=="function"?n.setFieldValue.bind(n):void 0,a=typeof(n==null?void 0:n.setFieldsValue)=="function"?n.setFieldsValue.bind(n):void 0;t=n,o=l,r=a,l&&(n.setFieldValue=(c,u)=>{if(e.isSuppressed()){l(c,u);return}e.setFormValues(e.getCallerContext(),[{path:c,value:u}],{source:"system"}).catch(()=>{})}),a&&(n.setFieldsValue=c=>{if(e.isSuppressed()){a(c);return}e.setFormValues(e.getCallerContext(),c,{source:"system"}).catch(()=>{})})},restore:i}}const MAX_WRITES_PER_PATH_PER_TX=20;function isEmptyValue(e){return e==null?!0:typeof e=="string"||Array.isArray(e)?e.length===0:import_lodash.default.isPlainObject(e)?Object.keys(e).length===0:!1}function createTxId(){return`${Date.now()}-${Math.random().toString(16).slice(2)}`}const SKIP_RULE_VALUE=Symbol("SKIP_RULE_VALUE"),UNRESOLVED_ASSOCIATION_IDENTITY=Symbol("UNRESOLVED_ASSOCIATION_IDENTITY"),LINKAGE_DEFAULT_RULE_PRIORITY=1e3;class RuleEngine{constructor(t){R(this,"options"),R(this,"rules",new Map),R(this,"lastRuleWriteByTargetKey",new Map),R(this,"assignTemplatesByTargetPath",new Map),R(this,"formItemTargetPaths",new Set),R(this,"updateAssociationByTargetPath",new Map),R(this,"pendingRuleIds",new Set),R(this,"ruleDebounceUntilById",new Map),R(this,"ruleDebounceTimersById",new Map),R(this,"defaultRuleIdsByMasterUid",new Map),R(this,"defaultRuleMasterDisposers",new Map),R(this,"runningRules",!1),R(this,"rulesEnabled",!1),R(this,"currentRuleTxId",null),this.options=t}getAssignRuleBlockId(t){return`form-assign:${t}:block`}removeAssignRuleBlockInstance(t){const o=this.getAssignRuleBlockId(t);this.rules.has(o)&&this.removeRule(o)}removeRowGridAssignRuleInstances(t){var o,r;const i=`form-assign:${t}:`,n=this.getAssignRuleBlockId(t),l=[];for(const[a,c]of this.rules.entries()){if(!a.startsWith(i)||a===n)continue;const u=(r=(o=c==null?void 0:c.rule)==null?void 0:o.getContext)==null?void 0:r.call(o),d=u==null?void 0:u.model;d&&this.isRowGridModel(d)&&l.push(a)}for(const a of l)this.removeRule(a)}hasAnyNonBlockAssignRuleInstance(t){const o=`form-assign:${t}:`,r=this.getAssignRuleBlockId(t);for(const i of this.rules.keys())if(i.startsWith(o)&&i!==r)return!0;return!1}ensureBlockAssignRuleInstancesForTargetPath(t){if(this.options.isDisposed()||!t||!this.shouldCreateBlockLevelAssignRule(t))return;const o=this.assignTemplatesByTargetPath.get(t)||[];if(o.length)for(const r of o){const i=r!=null&&r.__key?String(r.__key):"";if(!i||this.hasAnyNonBlockAssignRuleInstance(i))continue;const n=((r==null?void 0:r.mode)==="default"?"default":"assign")=="default"?"default":"system",l=(r==null?void 0:r.enable)!==!1,a=this.getAssignRuleBlockId(i);if(this.rules.has(a))continue;const c={id:a,source:n,priority:10+(r.__order||0),debounceMs:0,getEnabled:()=>l&&!!t,getTarget:()=>t,getValue:()=>r==null?void 0:r.value,getCondition:()=>r==null?void 0:r.condition,getContext:()=>this.options.getBlockContext()};this.rules.set(a,{rule:c,state:{deps:new Set,depDisposers:[],runSeq:0,scheduledAtWriteSeq:0}}),this.scheduleRule(a)}}getCollectionFromContext(t){var o,r,i;return(i=t==null?void 0:t.collection)!=null?i:(r=(o=t==null?void 0:t.model)==null?void 0:o.context)==null?void 0:r.collection}getRootCollection(){const t=this.options.getBlockContext();return this.getCollectionFromContext(t)}shouldCreateBlockLevelAssignRule(t){var o,r;const i=this.options.getBlockContext();let n=this.getCollectionFromContext(i);if(!(n!=null&&n.getField))return!0;const l=parsePathString(t).filter(a=>typeof a!="object");if(l.length<=1)return!0;for(let a=0;a<l.length-1;a++){const c=l[a];if(typeof c!="string")continue;const u=(o=n==null?void 0:n.getField)==null?void 0:o.call(n,c);if(!((r=u==null?void 0:u.isAssociationField)!=null&&r.call(u)))break;if(isToManyAssociationField(u)){if(typeof l[a+1]!="number")return!1;a+=1}if(n=u==null?void 0:u.targetCollection,!(n!=null&&n.getField))break}return!0}collectAssociationPrefixPaths(t,o){var r,i;const n=[];let l=this.getRootCollection()||this.getCollectionFromContext(t);if(!(l!=null&&l.getField))return n;const a=[];for(let c=0;c<o.length-1;c++){const u=o[c];if(typeof u!="string")break;const d=(r=l==null?void 0:l.getField)==null?void 0:r.call(l,u);if(!((i=d==null?void 0:d.isAssociationField)!=null&&i.call(d)))break;if(a.push(u),isToManyAssociationField(d)){const m=o[c+1];if(typeof m!="number")break;a.push(m),c+=1}if(n.push([...a]),l=d==null?void 0:d.targetCollection,!(l!=null&&l.getField))break}return n}shouldSkipToManyAssociationWriteWithoutIndex(t,o){var r,i;let n=this.getRootCollection()||this.getCollectionFromContext(t);if(!(n!=null&&n.getField))return!1;for(let l=0;l<o.length-1;l++){const a=o[l];if(typeof a!="string")continue;const c=(r=n==null?void 0:n.getField)==null?void 0:r.call(n,a);if(!((i=c==null?void 0:c.isAssociationField)!=null&&i.call(c)))break;if(isToManyAssociationField(c)){if(typeof o[l+1]!="number")return!0;l+=1}if(n=c==null?void 0:c.targetCollection,!(n!=null&&n.getField))break}return!1}shouldSkipAssociationNestedWrite(t,o){const r=this.collectAssociationPrefixPaths(t,o);if(!r.length)return!1;for(const i of r){const n=this.options.getFormValueAtPath(i);if(n==null){const l=i.filter(a=>typeof a=="string").join(".");if(l&&this.getUpdateAssociationForTargetPath(l)||this.isAssociationTargetKeyWrite(t,o,i))continue;return!0}if(typeof n!="object")return!0}return!1}getAssociationTargetKeyFields(t){var o,r,i,n,l;const a=(l=(n=(r=t==null?void 0:t.targetKey)!=null?r:(o=t==null?void 0:t.targetCollection)==null?void 0:o.filterTargetKey)!=null?n:(i=t==null?void 0:t.targetCollection)==null?void 0:i.filterByTk)!=null?l:"id";return Array.isArray(a)?a.filter(c=>typeof c=="string"&&!!c):typeof a=="string"&&a?[a]:["id"]}resolveAssociationFieldByPrefixPath(t,o){var r,i;let n=this.getRootCollection()||this.getCollectionFromContext(t);if(!(n!=null&&n.getField))return null;let l=null;for(const a of o){if(typeof a=="number")continue;if(typeof a!="string"||!a)break;const c=(r=n==null?void 0:n.getField)==null?void 0:r.call(n,a);if(!((i=c==null?void 0:c.isAssociationField)!=null&&i.call(c))||(l=c,n=c==null?void 0:c.targetCollection,!(n!=null&&n.getField)))break}return l}isAssociationTargetKeyWrite(t,o,r){var i;if(!Array.isArray(o)||!Array.isArray(r)||o.length!==r.length+1)return!1;const n=o[r.length];if(typeof n!="string"||!n)return!1;const l=this.resolveAssociationFieldByPrefixPath(t,r);return!((i=l==null?void 0:l.isAssociationField)!=null&&i.call(l))||isToManyAssociationField(l)?!1:this.getAssociationTargetKeyFields(l).includes(n)}collectUpdateAssociationInitPatches(t,o){const r=this.collectAssociationPrefixPaths(t,o);if(!r.length)return[];const i=[];for(const l of r){const a=this.options.getFormValueAtPath(l);if(a==null){const c=l.filter(u=>typeof u=="string").join(".");if(!c)return null;if(this.getUpdateAssociationForTargetPath(c)){i.push({path:[...l,"__is_new__"],value:!0});continue}if(this.isAssociationTargetKeyWrite(t,o,l)){i.push({path:[...l],value:{}});continue}return null}if(typeof a!="object")return null}const n=new Map;for(const l of i){const a=namePathToPathKey(l.path);n.has(a)||n.set(a,l)}return Array.from(n.values())}dispose(){for(const{state:t}of this.rules.values())t.depDisposers.forEach(o=>o());this.rules.clear(),this.pendingRuleIds.clear(),this.assignTemplatesByTargetPath.clear();for(const t of this.defaultRuleMasterDisposers.values())t();this.defaultRuleMasterDisposers.clear(),this.defaultRuleIdsByMasterUid.clear();for(const t of this.ruleDebounceTimersById.values())clearTimeout(t);this.ruleDebounceTimersById.clear(),this.ruleDebounceUntilById.clear()}enable(){this.rulesEnabled=!0,this.pendingRuleIds.size&&!this.runningRules&&this.flushRules()}syncAssignRules(t){if(this.options.isDisposed())return;const o=(Array.isArray(t)?t:[]).map((a,c)=>A(x({},a),{key:a!=null&&a.key?String(a.key):`idx:${c}`})),r="form-assign:";for(const a of Array.from(this.rules.keys()))a.startsWith(r)&&this.removeRule(a);this.assignTemplatesByTargetPath.clear(),this.formItemTargetPaths.clear(),this.updateAssociationByTargetPath.clear();let i=0;for(const a of o){const c=a!=null&&a.targetPath?String(a.targetPath):"";if(!c)continue;const u=this.assignTemplatesByTargetPath.get(c)||[];i+=1,u.push(A(x({},a),{__key:String(a.key),__order:i})),this.assignTemplatesByTargetPath.set(c,u)}const n=this.options.getEngine(),l=new Set;if(n!=null&&n.forEachModel){n.forEachModel(c=>{var u;if(!this.isModelInThisForm(c)||!((u=c==null?void 0:c.subModels)!=null&&u.field))return;const d=this.getModelTargetPath(c);d&&this.formItemTargetPaths.add(d),this.cacheUpdateAssociationForModel(c)});const a=c=>{this.cacheUpdateAssociationForModel(c),this.tryRegisterAssignRuleInstancesForModel(c,l);const u=c==null?void 0:c.forks;u&&typeof u.forEach=="function"&&u.forEach(d=>{!d||d!=null&&d.disposed||this.tryRegisterAssignRuleInstancesForModel(d,l)})};n.forEachModel(c=>{a(c)})}for(const[a,c]of this.assignTemplatesByTargetPath.entries())if(!l.has(a)&&this.shouldCreateBlockLevelAssignRule(a))for(const u of c){const d=((u==null?void 0:u.mode)==="default"?"default":"assign")=="default"?"default":"system",m=(u==null?void 0:u.enable)!==!1,p=`${r}${u.__key}:block`;this.rules.has(p)&&this.removeRule(p);const h={id:p,source:d,priority:10+(u.__order||0),debounceMs:0,getEnabled:()=>m&&!!a,getTarget:()=>a,getValue:()=>u==null?void 0:u.value,getCondition:()=>u==null?void 0:u.condition,getContext:()=>this.options.getBlockContext()};this.rules.set(p,{rule:h,state:{deps:new Set,depDisposers:[],runSeq:0,scheduledAtWriteSeq:0}}),this.scheduleRule(p)}}onModelMounted(t){var o;if(this.isModelInThisForm(t)&&!(t!=null&&t.isFork)&&(o=t==null?void 0:t.subModels)!=null&&o.field){const r=this.getModelTargetPath(t);r&&this.formItemTargetPaths.add(r),this.cacheUpdateAssociationForModel(t)}this.tryRegisterDefaultRuleInstance(t),this.tryRegisterAssignRuleInstancesForModel(t)}onModelUnmounted(t){var o;if(this.tryUnregisterDefaultRuleInstance(t),this.tryUnregisterAssignRuleInstancesForModel(t),this.isModelInThisForm(t)&&(o=t==null?void 0:t.subModels)!=null&&o.field){const r=this.getModelTargetPath(t);if(r&&(this.ensureBlockAssignRuleInstancesForTargetPath(r),!(t!=null&&t.isFork))){this.updateAssociationByTargetPath.delete(r),this.formItemTargetPaths.delete(r);const i=`${r}.`;for(const l of this.assignTemplatesByTargetPath.keys())l.startsWith(i)&&this.ensureBlockAssignRuleInstancesForTargetPath(l);const n=this.options.getEngine();if(n!=null&&n.forEachModel){const l=a=>{this.tryRegisterAssignRuleInstancesForModel(a);const c=a==null?void 0:a.forks;c&&typeof c.forEach=="function"&&c.forEach(u=>{!u||u!=null&&u.disposed||this.tryRegisterAssignRuleInstancesForModel(u)})};n.forEachModel(a=>l(a))}}}}isModelInThisForm(t){var o;const r=(o=t==null?void 0:t.context)==null?void 0:o.blockModel;return r?String(r.uid)===String(this.options.getBlockModelUid()):!1}cacheUpdateAssociationForModel(t){var o,r;if(this.options.isDisposed()||!this.isModelInThisForm(t)||!t||typeof t!="object"||t!=null&&t.isFork||!((o=t==null?void 0:t.subModels)!=null&&o.field))return;const i=this.getModelTargetPath(t);if(!i)return;const n=(r=t==null?void 0:t.subModels)==null?void 0:r.field,l=!!(n!=null&&n.updateAssociation);this.updateAssociationByTargetPath.get(i)!==!0&&this.updateAssociationByTargetPath.set(i,l)}getUpdateAssociationForTargetPath(t){const o=String(t||"");if(!o)return!1;if(this.updateAssociationByTargetPath.has(o))return!!this.updateAssociationByTargetPath.get(o);const r=this.options.getEngine();return r!=null&&r.forEachModel&&r.forEachModel(i=>{this.cacheUpdateAssociationForModel(i)}),this.updateAssociationByTargetPath.has(o)?!!this.updateAssociationByTargetPath.get(o):(this.updateAssociationByTargetPath.set(o,!1),!1)}getDefaultRuleId(t){var o;const r=t!=null&&t.isFork?String((o=t==null?void 0:t.forkId)!=null?o:"fork"):"master";return`default:${t!=null&&t.uid?String(t.uid):String(t)}:${r}`}getModelTargetNamePath(t){var o;const r=(o=t==null?void 0:t.context)==null?void 0:o.fieldPathArray;if(Array.isArray(r)&&r.length)return r;const i=typeof(t==null?void 0:t.getProps)=="function"?t.getProps():t==null?void 0:t.props,n=i==null?void 0:i.name;return Array.isArray(n)?n:typeof n=="string"?n.includes(".")?n.split("."):[n]:null}tryRegisterDefaultRuleInstance(t){if(this.options.isDisposed()||!this.isModelInThisForm(t)||!t||typeof t!="object")return;const o=typeof t.getProps=="function"?t.getProps():t.props;if(!o||typeof o!="object")return;const r=this.getModelTargetNamePath(t);if(!r)return;const i=this.getDefaultRuleId(t);if(this.rules.has(i))return;const n=t.master||t;this.bindMasterInitialValue(n,i);const l=()=>{var d,m;const p=(m=(d=n==null?void 0:n.getProps)==null?void 0:d.call(n))!=null?m:n==null?void 0:n.props;return p==null?void 0:p.initialValue},a=()=>typeof l()<"u"?LINKAGE_DEFAULT_RULE_PRIORITY:0,c=()=>{var d,m,p,h;try{const g=(m=(d=n==null?void 0:n.getStepParams)==null?void 0:d.call(n,"editItemSettings","initialValue"))==null?void 0:m.defaultValue;if(typeof g<"u")return g;const f=(h=(p=n==null?void 0:n.getStepParams)==null?void 0:p.call(n,"formItemSettings","initialValue"))==null?void 0:h.defaultValue;if(typeof f<"u")return f}catch{}},u={id:i,source:"default",priority:a(),debounceMs:0,getEnabled:()=>typeof l()<"u"?!0:typeof c()<"u",getTarget:()=>this.getModelTargetNamePath(t)||r,getValue:()=>{const d=l();return typeof d<"u"?d:c()},getContext:()=>t==null?void 0:t.context};this.rules.set(i,{rule:u,state:{deps:new Set,depDisposers:[],runSeq:0,scheduledAtWriteSeq:0}}),this.scheduleRule(i)}getModelTargetPath(t){var o;try{const n=(o=t==null?void 0:t.getStepParams)==null?void 0:o.call(t,"fieldSettings","init"),l=n==null?void 0:n.fieldPath;if(l)return String(l)}catch{}const r=t==null?void 0:t.fieldPath;if(r)return String(r);const i=this.getModelTargetNamePath(t);return i!=null&&i.length&&i.filter(n=>typeof n=="string").join(".")||null}getAssignRuleInstanceId(t,o){var r;const i=o!=null&&o.isFork?String((r=o==null?void 0:o.forkId)!=null?r:"fork"):"master",n=o!=null&&o.uid?String(o.uid):String(o);return`form-assign:${t}:${n}:${i}`}getDeepestFieldIndexKey(t){var o,r,i;const n=(i=(r=(o=t==null?void 0:t.model)==null?void 0:o.context)==null?void 0:r.fieldIndex)!=null?i:t==null?void 0:t.fieldIndex,l=Array.isArray(n)?n:[];if(!l.length)return null;const a=l[l.length-1];if(typeof a!="string")return null;const[c,u]=a.split(":");if(!c)return null;const d=Number(u);return Number.isNaN(d)?null:c}getDeepestToManyAssociationKey(t){var o,r;const i=this.getRootCollection();if(!(i!=null&&i.getField))return null;const n=parsePathString(String(t||"")).filter(c=>typeof c!="object");if(n.length<2)return null;let l=i,a=null;for(let c=0;c<n.length-1;c++){const u=n[c];if(typeof u!="string")continue;const d=(o=l==null?void 0:l.getField)==null?void 0:o.call(l,u);if(!((r=d==null?void 0:d.isAssociationField)!=null&&r.call(d)))break;const m=isToManyAssociationField(d);if(m&&(a=u),m&&typeof n[c+1]=="number"&&(c+=1),l=d==null?void 0:d.targetCollection,!(l!=null&&l.getField))break}return a}isRowGridModel(t){var o,r;if(!t||typeof t!="object"||(o=t==null?void 0:t.subModels)!=null&&o.field||!((r=t==null?void 0:t.subModels)!=null&&r.items))return!1;const i=t==null?void 0:t.context;return!!this.getDeepestFieldIndexKey(i)}tryRegisterAssignRuleInstancesForModel(t,o){var r,i,n,l;if(this.options.isDisposed()||!this.isModelInThisForm(t))return;const a=(g,f)=>{var _;if(!(!f||f.length===0)){o==null||o.add(g);for(const v of f){this.removeAssignRuleBlockInstance(v.__key),(_=t==null?void 0:t.subModels)!=null&&_.field&&this.removeRowGridAssignRuleInstances(v.__key);const b=((v==null?void 0:v.mode)==="default"?"default":"assign")=="default"?"default":"system",C=(v==null?void 0:v.enable)!==!1,y=this.getAssignRuleInstanceId(v.__key,t);this.rules.has(y)&&this.removeRule(y);const F={id:y,source:b,priority:10+(v.__order||0),debounceMs:0,getEnabled:()=>C&&!!g,getTarget:()=>g,getValue:()=>v==null?void 0:v.value,getCondition:()=>v==null?void 0:v.condition,getContext:()=>t==null?void 0:t.context};this.rules.set(y,{rule:F,state:{deps:new Set,depDisposers:[],runSeq:0,scheduledAtWriteSeq:0}}),this.scheduleRule(y)}}};if(this.isRowGridModel(t)){const g=t==null?void 0:t.context,f=this.getDeepestFieldIndexKey(g);if(f)for(const[_,v]of this.assignTemplatesByTargetPath.entries()){if(this.formItemTargetPaths.has(_))continue;const b=this.getDeepestToManyAssociationKey(_);!b||b!==f||a(_,v)}return}if(!((r=t==null?void 0:t.subModels)!=null&&r.field))return;const c=this.getModelTargetPath(t);if(!c)return;const u=this.assignTemplatesByTargetPath.get(c)||[];u.length&&a(c,u);const d=(i=t==null?void 0:t.subModels)==null?void 0:i.field,m=(n=d==null?void 0:d.context)==null?void 0:n.collectionField,p=!!((l=m==null?void 0:m.isAssociationField)!=null&&l.call(m)),h=isToManyAssociationField(m);if(p&&!h){const g=`${c}.`;for(const[f,_]of this.assignTemplatesByTargetPath.entries())!f||typeof f!="string"||f.startsWith(g)&&a(f,_)}}tryUnregisterAssignRuleInstancesForModel(t){var o,r,i,n;if(this.options.isDisposed()||!this.isModelInThisForm(t))return;const l=h=>{for(const g of h||[]){const f=this.getAssignRuleInstanceId(g.__key,t);this.rules.has(f)&&this.removeRule(f)}};if(this.isRowGridModel(t)){const h=t==null?void 0:t.context,g=this.getDeepestFieldIndexKey(h);if(!g)return;for(const[f,_]of this.assignTemplatesByTargetPath.entries()){if(this.formItemTargetPaths.has(f))continue;const v=this.getDeepestToManyAssociationKey(f);!v||v!==g||l(_)}return}if(!((o=t==null?void 0:t.subModels)!=null&&o.field))return;const a=this.getModelTargetPath(t);if(!a)return;const c=this.assignTemplatesByTargetPath.get(a)||[];c.length&&l(c);const u=(r=t==null?void 0:t.subModels)==null?void 0:r.field,d=(i=u==null?void 0:u.context)==null?void 0:i.collectionField,m=!!((n=d==null?void 0:d.isAssociationField)!=null&&n.call(d)),p=isToManyAssociationField(d);if(m&&!p){const h=`${a}.`;for(const[g,f]of this.assignTemplatesByTargetPath.entries())!g||typeof g!="string"||g.startsWith(h)&&l(f)}}tryUnregisterDefaultRuleInstance(t){if(this.options.isDisposed()||!this.isModelInThisForm(t))return;const o=this.getDefaultRuleId(t);this.rules.has(o)&&this.removeRule(o)}bindMasterInitialValue(t,o){const r=t!=null&&t.uid?String(t.uid):o,i=this.defaultRuleIdsByMasterUid.get(r)||new Set;if(i.add(o),this.defaultRuleIdsByMasterUid.set(r,i),this.defaultRuleMasterDisposers.has(r))return;const n=(0,import_reactive.reaction)(()=>{var l,a;const c=(a=(l=t==null?void 0:t.getProps)==null?void 0:l.call(t))!=null?a:t==null?void 0:t.props;return c==null?void 0:c.initialValue},(l,a)=>{var c,u;if(import_lodash.default.isEqual(l,a))return;const d=this.defaultRuleIdsByMasterUid.get(r);if(!d)return;const m=(u=(c=t==null?void 0:t.getProps)==null?void 0:c.call(t))!=null?u:t==null?void 0:t.props,p=typeof(m==null?void 0:m.initialValue)<"u"?LINKAGE_DEFAULT_RULE_PRIORITY:0;for(const h of d){const g=this.rules.get(h);g&&(g.rule.priority=p),this.scheduleRule(h)}});this.defaultRuleMasterDisposers.set(r,n)}removeRule(t){const o=this.rules.get(t);if(!o)return;try{const i=o.rule.getContext(),n=o.rule.getTarget(),l=this.options.tryResolveNamePath(i,n);if(l){const a=namePathToPathKey(l),c=this.options.observableBindings.get(a);c&&c.source===o.rule.source&&(c.dispose(),this.options.observableBindings.delete(a))}}catch{}o.state.depDisposers.forEach(i=>i()),this.rules.delete(t),this.pendingRuleIds.delete(t);const r=this.ruleDebounceTimersById.get(t);r&&clearTimeout(r),this.ruleDebounceTimersById.delete(t),this.ruleDebounceUntilById.delete(t);for(const[i,n]of this.defaultRuleIdsByMasterUid.entries()){if(!n.has(t)||(n.delete(t),n.size>0))continue;this.defaultRuleIdsByMasterUid.delete(i);const l=this.defaultRuleMasterDisposers.get(i);l&&l(),this.defaultRuleMasterDisposers.delete(i)}}scheduleRule(t){var o;if(this.options.isDisposed())return;const r=this.rules.get(t);if(!r)return;const{rule:i,state:n}=r;n.scheduledAtWriteSeq=this.options.getWriteSeq();const l=(o=i==null?void 0:i.debounceMs)!=null?o:0;if(this.pendingRuleIds.add(t),l>0){const a=Date.now()+l,c=this.ruleDebounceUntilById.get(t)||0;a>c&&this.ruleDebounceUntilById.set(t,a);const u=this.ruleDebounceTimersById.get(t);u&&clearTimeout(u);const d=setTimeout(()=>{this.ruleDebounceTimersById.delete(t),this.rulesEnabled&&(this.runningRules||this.pendingRuleIds.has(t)&&this.flushRules())},l);this.ruleDebounceTimersById.set(t,d)}else{const a=this.ruleDebounceTimersById.get(t);a&&clearTimeout(a),this.ruleDebounceTimersById.delete(t),this.ruleDebounceUntilById.delete(t)}this.rulesEnabled&&(this.runningRules||this.flushRules())}flushRules(){return L(this,null,function*(){if(this.runningRules)return;this.runningRules=!0;const t=this.currentRuleTxId||createTxId();this.currentRuleTxId=t;try{for(;this.pendingRuleIds.size;){const o=Date.now(),r=[];for(const i of this.pendingRuleIds)(this.ruleDebounceUntilById.get(i)||0)>o||r.push(i);if(!r.length)break;for(const i of r)this.pendingRuleIds.delete(i),this.ruleDebounceUntilById.delete(i);r.sort((i,n)=>{var l,a,c,u;const d=(l=this.rules.get(i))==null?void 0:l.rule,m=(a=this.rules.get(n))==null?void 0:a.rule,p=(c=d==null?void 0:d.priority)!=null?c:0,h=(u=m==null?void 0:m.priority)!=null?u:0;return p!==h?p-h:i.localeCompare(n)});for(const i of r)yield this.runRule(i)}}finally{this.runningRules=!1,this.currentRuleTxId=null,this.options.txWriteCounts.delete(t)}})}runRule(t){return L(this,null,function*(){var o;const r=this.rules.get(t);if(!r)return;const{rule:i,state:n}=r;n.runSeq+=1;const l=n.runSeq,a=n.scheduledAtWriteSeq,c=this.prepareRuleContext(i),{baseCtx:u,targetNamePath:d,targetKey:m,clearDeps:p,disposeBinding:h}=c;if(!this.shouldRunRule(i,d,m,u)){p(n),h();return}if(!d||!m){p(n),h();return}const g=d,f=m,{collector:_,evalCtx:v}=this.createRuleCollectorAndContext(i,c);if(i.getCondition&&!(yield this.evaluateRuleCondition(i,n,l,v,_)))return;const b=yield this.resolveRuleValue(i,n,l,v,_);if(b===SKIP_RULE_VALUE||l!==n.runSeq)return;this.commitRuleDeps(i,n,_);const C=this.normalizeResolvedValueForTarget(u,b),y=this.normalizeResolvedValueForAssociationTarget(u,g,C);if(i.source==="default"&&!this.checkDefaultRuleCanApply(y,g,f,p,h,n))return;if(i.source==="default"){const E=this.lastRuleWriteByTargetKey.get(f);if((E==null?void 0:E.source)==="default"&&E.priority>i.priority&&E.writeSeq>=a){h();return}}if(i.source==="system"){const E=this.options.lastWriteMetaByPathKey.get(f);if((E==null?void 0:E.source)==="linkage"&&E.writeSeq>=a){h();return}}if(this.shouldSkipAssociationNestedWrite(u,g)||this.shouldSkipToManyAssociationWriteWithoutIndex(u,g))return;const F=y,S=this.options.getFormValueAtPath(g);if(this.isAssociationTargetSemanticallyEqual(u,g,S,F))return;const P=this.collectUpdateAssociationInitPatches(u,g);if(P==null)return;if(i.source==="system"){const E=u==null?void 0:u.model;if((o=E==null?void 0:E.subModels)!=null&&o.field){const D=this.getModelTargetNamePath(E);D&&namePathToPathKey(D)===f&&E.setProps({value:y})}}const j=this.options.getWriteSeq(),I=[...P,{path:g,value:y}];yield this.options.setFormValues(v,I,{source:i.source,txId:this.currentRuleTxId||void 0});const M=this.options.getWriteSeq();M!==j&&this.lastRuleWriteByTargetKey.set(f,{source:i.source,priority:i.priority,writeSeq:M})})}isTzAwareTargetInterface(t){return typeof t!="string"?!1:["datetime","createdAt","updatedAt","unixTimestamp"].includes(t)}normalizeDateOnlyToStartOfDayIso(t){const o=String(t||"").trim();if(!o||!/^\d{4}-\d{2}-\d{2}$/.test(o))return t;const r=(0,import_client.dayjs)(o,"YYYY-MM-DD",!0);return r.isValid()?r.startOf("day").toISOString():t}normalizeResolvedValueForTarget(t,o){var r,i,n;const l=(n=(i=(r=t==null?void 0:t.model)==null?void 0:r.context)==null?void 0:i.collectionField)==null?void 0:n.interface;return this.isTzAwareTargetInterface(l)?typeof o=="string"?this.normalizeDateOnlyToStartOfDayIso(o):Array.isArray(o)?o.map(a=>typeof a=="string"?this.normalizeDateOnlyToStartOfDayIso(a):a):o:o}isPrimitiveAssociationTargetValue(t){return typeof t=="string"||typeof t=="number"||typeof t=="boolean"}extractAssociationIdentity(t,o){const r=this.getAssociationTargetKeyFields(t),i=r.length===1?r[0]:null,n=a=>{if(a==null)return a;if(this.isPrimitiveAssociationTargetValue(a))return i?a:UNRESOLVED_ASSOCIATION_IDENTITY;if(!a||typeof a!="object")return UNRESOLVED_ASSOCIATION_IDENTITY;if(i)return typeof a[i]>"u"?UNRESOLVED_ASSOCIATION_IDENTITY:a[i];const c={};for(const u of r){if(typeof a[u]>"u")return UNRESOLVED_ASSOCIATION_IDENTITY;c[u]=a[u]}return c};if(isToManyAssociationField(t)){const a=Array.isArray(o)?o:[o],c=[];for(const u of a){if(u==null)continue;const d=n(u);if(d===UNRESOLVED_ASSOCIATION_IDENTITY)return UNRESOLVED_ASSOCIATION_IDENTITY;c.push(d)}return c}const l=Array.isArray(o)?o.find(a=>a!=null):o;return l==null?l:n(l)}isAssociationTargetSemanticallyEqual(t,o,r,i){var n;const l=this.resolveCollectionFieldByNamePath(t,o);if(!((n=l==null?void 0:l.isAssociationField)!=null&&n.call(l)))return import_lodash.default.isEqual(r,i);const a=this.extractAssociationIdentity(l,r),c=this.extractAssociationIdentity(l,i);return a===UNRESOLVED_ASSOCIATION_IDENTITY||c===UNRESOLVED_ASSOCIATION_IDENTITY?import_lodash.default.isEqual(r,i):import_lodash.default.isEqual(a,c)}resolveCollectionFieldByNamePath(t,o){var r,i;if(!Array.isArray(o)||!o.length)return null;let n=this.getRootCollection()||this.getCollectionFromContext(t);if(!(n!=null&&n.getField))return null;for(let l=0;l<o.length;l++){const a=o[l];if(typeof a!="string"||!a)return null;const c=(r=n==null?void 0:n.getField)==null?void 0:r.call(n,a);if(!c)return null;if(l===o.length-1)return c;if(!((i=c==null?void 0:c.isAssociationField)!=null&&i.call(c))||!(c!=null&&c.targetCollection))return null;if(isToManyAssociationField(c)){if(typeof o[l+1]!="number")return null;l+=1}if(n=c.targetCollection,!(n!=null&&n.getField))return null}return null}normalizeResolvedValueForAssociationTarget(t,o,r){var i;const n=this.resolveCollectionFieldByNamePath(t,o);if(!((i=n==null?void 0:n.isAssociationField)!=null&&i.call(n)))return r;const l=this.getAssociationTargetKeyFields(n),a=l.length===1?l[0]:null,c=d=>{if(d!=null)return a&&this.isPrimitiveAssociationTargetValue(d)?{[a]:d}:d};if(isToManyAssociationField(n))return(Array.isArray(r)?r:[r]).map(d=>c(d)).filter(d=>typeof d<"u"&&d!==null);const u=Array.isArray(r)?r.find(d=>d!=null):r;return u==null?u:c(u)}prepareRuleContext(t){const o=t.getContext(),r=t.getTarget(),i=this.options.tryResolveNamePath(o,r),n=i?namePathToPathKey(i):null;return{baseCtx:o,targetNamePath:i,targetKey:n,clearDeps:l=>{l.depDisposers.forEach(a=>a()),l.depDisposers=[],l.deps=new Set},disposeBinding:()=>{if(!n)return;const l=this.options.observableBindings.get(n);l&&l.source===t.source&&(l.dispose(),this.options.observableBindings.delete(n))}}}shouldApplyDefaultRuleInCurrentState(t){var o,r;if(((r=(o=this.options).getActionName)==null?void 0:r.call(o))!=="update")return!0;let i;try{i=t==null?void 0:t.item}catch{i=void 0}return!i||typeof i!="object"?!1:i.__is_new__===!0}shouldRunRule(t,o,r,i){return!(!t.getEnabled()||!o||!r||t.source==="default"&&(!this.shouldApplyDefaultRuleInCurrentState(i)||this.options.findExplicitHit(r)))}createRuleCollectorAndContext(t,o){const{baseCtx:r,targetNamePath:i}=o,n=t.getValue(),l=(0,import_flow_engine.isRunJSValue)(n),a={deps:new Set,wildcard:!1};if(t.getCondition&&collectStaticDepsFromTemplateValue(t.getCondition(),a),l?collectStaticDepsFromRunJSValue(n,a):collectStaticDepsFromTemplateValue(n,a),i){recordDep(i,a);for(const u of this.collectAssociationPrefixPaths(r,i))recordDep(u,a)}const c=this.createRuleEvaluationContext(r,a,i);return{collector:a,evalCtx:c,rawValue:n,isRunJS:l}}evaluateRuleCondition(t,o,r,i,n){return L(this,null,function*(){var l;const a=t.getCondition;if(!a)return!0;const c=a();let u=c;if(c)try{u=yield(l=i==null?void 0:i.resolveJsonTemplate)==null?void 0:l.call(i,c)}catch{u=c}return r!==o.runSeq?!1:c&&!evaluateCondition(i,u)?(this.commitRuleDeps(t,o,n),!1):!0})}resolveRuleValue(t,o,r,i,n){return L(this,null,function*(){const l=t.getValue();return(0,import_flow_engine.isRunJSValue)(l)?this.resolveRunJSValue(l,o,r,i,n,t):this.resolveTemplateValue(l,o,r,i,n,t)})}resolveRunJSValue(t,o,r,i,n,l){return L(this,null,function*(){try{const{code:a,version:c}=(0,import_flow_engine.normalizeRunJSValue)(t),u=yield(0,import_flow_engine.runjsWithSafeGlobals)(i,a,{version:c});return u!=null&&u.success?u.value:(r!==o.runSeq||this.commitRuleDeps(l,o,n),SKIP_RULE_VALUE)}catch{return r!==o.runSeq||this.commitRuleDeps(l,o,n),SKIP_RULE_VALUE}})}resolveTemplateValue(t,o,r,i,n,l){return L(this,null,function*(){var a;try{return yield(a=i==null?void 0:i.resolveJsonTemplate)==null?void 0:a.call(i,t)}catch{return r!==o.runSeq||this.commitRuleDeps(l,o,n),SKIP_RULE_VALUE}})}commitRuleDeps(t,o,r){const i=new Set(r.deps);r.wildcard&&i.add("fv:*"),this.updateRuleDeps(t,o,i)}checkDefaultRuleCanApply(t,o,r,i,n,l){if(typeof t>"u")return!1;if(this.options.findExplicitHit(r))return i(l),n(),!1;const a=this.options.getFormValueAtPath(o),c=this.options.lastDefaultValueByPathKey.get(r),u=isEmptyValue(a)||typeof c<"u"&&import_lodash.default.isEqual(a,c),d=(0,import_reactive.isObservable)(t)?(0,import_reactive.toJS)(t):t;return!u&&import_lodash.default.isEqual(a,d)?(this.options.lastDefaultValueByPathKey.set(r,d),!1):u}createRuleEvaluationContext(t,o,r){const i=this.options.createTrackingFormValues(o),n=new import_flow_engine.FlowContext;try{n.delegate(t)}catch{}const l=typeof(t==null?void 0:t.getPropertyOptions)=="function"?t.getPropertyOptions("formValues"):null;l&&typeof l=="object"?n.defineProperty("formValues",A(x({},l),{get:()=>i,cache:!1})):n.defineProperty("formValues",{get:()=>i,cache:!1});let a,c=!1;const u=()=>{try{return t==null?void 0:t.item}catch{return}},d=()=>{if(!c){const m=this.buildItemChainValue(t,i,r);a=typeof m>"u"?u():m,c=!0}return a};return n.defineProperty("item",{get:d,cache:!1}),n}buildItemChainValue(t,o,r){var i,n;const l=this.getRootCollection()||this.getCollectionFromContext(t),a=(h,g,f,_)=>({index:g,length:f,__is_new__:h==null?void 0:h.__is_new__,__is_stored__:h==null?void 0:h.__is_stored__,value:h,parentItem:_}),c=a(o,void 0,void 0,void 0);if(!r||!Array.isArray(r)||!r.length||!(l!=null&&l.getField))return;const u=[],d=[];let m=l;for(let h=0;h<r.length-1;h++){const g=r[h];if(typeof g!="string")break;const f=(i=m==null?void 0:m.getField)==null?void 0:i.call(m,g);if(!((n=f==null?void 0:f.isAssociationField)!=null&&n.call(f)))break;const _=isToManyAssociationField(f);if(d.push(g),_){const b=r[h+1];if(typeof b!="number")break;d.push(b),h+=1}const v=f==null?void 0:f.targetCollection;if(!v)break;u.push({path:[...d],toMany:_}),m=v}const p=h=>{if(h<0)return c;const g=u[h],f=import_lodash.default.get(o,g.path),_=g.path[g.path.length-1],v=g.toMany&&typeof _=="number"?_:void 0,b=(()=>{if(!g.toMany)return;const C=g.path.slice(0,-1),y=import_lodash.default.get(o,C);return Array.isArray(y)?y.length:void 0})();return a(f,v,b,p(h-1))};return u.length?p(u.length-1):void 0}getFieldIndexSignature(t){var o,r,i;const n=(i=(r=(o=t==null?void 0:t.model)==null?void 0:o.context)==null?void 0:r.fieldIndex)!=null?i:t==null?void 0:t.fieldIndex;return(Array.isArray(n)?n:[]).filter(l=>typeof l=="string").join("|")}updateRuleDeps(t,o,r){if(o.depDisposers.forEach(n=>n()),o.depDisposers=[],o.deps=r,r.has("fv:*")){const n=(0,import_reactive.reaction)(()=>this.options.changeTick.value,()=>this.scheduleRule(t.id));o.depDisposers.push(n)}const i=(()=>{try{return t.getContext()}catch{return}})();for(const n of r){if(n==="fv:*")continue;if(!n.startsWith("fv:")&&!n.startsWith("ctx:")){const p=pathKeyToNamePath(n),h=(0,import_reactive.reaction)(()=>import_lodash.default.get(this.options.valuesMirror,p),()=>this.scheduleRule(t.id));o.depDisposers.push(h);continue}if(n.startsWith("fv:")){const p=n.slice(3),h=pathKeyToNamePath(p),g=(0,import_reactive.reaction)(()=>import_lodash.default.get(this.options.valuesMirror,h),()=>this.scheduleRule(t.id));o.depDisposers.push(g);continue}const l=n.slice(4),a=l.indexOf(":"),c=a>=0?l.slice(0,a):l,u=a>=0?l.slice(a+1):"";if(c==="item"){const p=(0,import_reactive.reaction)(()=>this.getFieldIndexSignature(i),()=>this.scheduleRule(t.id));o.depDisposers.push(p);continue}const d=u?parsePathString(u).filter(p=>typeof p!="object"):[],m=(0,import_reactive.reaction)(()=>{const p=i?i[c]:void 0;return d.length?import_lodash.default.get(p,d):p},()=>this.scheduleRule(t.id));o.depDisposers.push(m)}}}class FormValueRuntime{constructor(t){R(this,"model"),R(this,"getForm"),R(this,"valuesMirror",(0,import_reactive.observable)({})),R(this,"explicitSet",new Set),R(this,"lastDefaultValueByPathKey",new Map),R(this,"lastWriteMetaByPathKey",new Map),R(this,"observableBindings",new Map),R(this,"changeTick",import_reactive.observable.ref(0)),R(this,"txWriteCounts",new Map),R(this,"writeSeq",0),R(this,"disposed",!1),R(this,"suppressFormCallbackDepth",0),R(this,"lastObservedChangedPaths",null),R(this,"lastObservedSource",null),R(this,"lastObservedToken",0),R(this,"formValuesProxy"),R(this,"mountedListener"),R(this,"unmountedListener"),R(this,"formPatcher"),R(this,"ruleEngine"),this.model=t.model,this.getForm=t.getForm,this.formPatcher=createFormPatcher({isSuppressed:()=>this.isSuppressed(),getCallerContext:()=>{var o;return(o=this.model)==null?void 0:o.context},setFormValues:this.setFormValues.bind(this)}),this.ruleEngine=new RuleEngine({getBlockModelUid:()=>{var o;return String((o=this.model)==null?void 0:o.uid)},getActionName:()=>{var o,r,i,n,l;return(l=(r=(o=this.model)==null?void 0:o.getAclActionName)==null?void 0:r.call(o))!=null?l:(n=(i=this.model)==null?void 0:i.context)==null?void 0:n.actionName},getBlockContext:()=>{var o;return(o=this.model)==null?void 0:o.context},getEngine:()=>{var o,r;return(r=(o=this.model)==null?void 0:o.context)==null?void 0:r.engine},getEngineModel:o=>{var r,i,n,l,a;return(a=(l=(n=(i=(r=this.model)==null?void 0:r.context)==null?void 0:i.engine)==null?void 0:n.getModel)==null?void 0:l.call(n,o))!=null?a:null},isDisposed:()=>this.disposed,valuesMirror:this.valuesMirror,changeTick:this.changeTick,getWriteSeq:()=>this.writeSeq,txWriteCounts:this.txWriteCounts,createTrackingFormValues:o=>createFormValuesProxy({valuesMirror:this.valuesMirror,basePath:[],collector:o,getFormValuesSnapshot:()=>this.getFormValuesSnapshot(),getFormValueAtPath:r=>this.getFormValueAtPath(r)}),tryResolveNamePath:(o,r)=>this.tryResolveNamePath(o,r),getFormValueAtPath:o=>this.getFormValueAtPath(o),setFormValues:(o,r,i)=>this.setFormValues(o,r,i),findExplicitHit:o=>this.findExplicitHit(o),lastDefaultValueByPathKey:this.lastDefaultValueByPathKey,lastWriteMetaByPathKey:this.lastWriteMetaByPathKey,observableBindings:this.observableBindings}),this.formValuesProxy=createFormValuesProxy({valuesMirror:this.valuesMirror,basePath:[],getFormValuesSnapshot:()=>this.getFormValuesSnapshot(),getFormValueAtPath:o=>this.getFormValueAtPath(o)})}syncAssignRules(t){this.ruleEngine.syncAssignRules(t)}get formValues(){return this.disposed||this.formPatcher.patch(this.getForm()),this.formValuesProxy}getFormValuesSnapshot(){if(!this.disposed){const t=this.getForm();this.formPatcher.patch(t)}return this.getForm().getFieldsValue(!0)}getFormValueAtPath(t){var o;const r=(o=this.getForm)==null?void 0:o.call(this);if(r&&typeof r.getFieldValue=="function")return r.getFieldValue(t);if(r&&typeof r.getFieldsValue=="function"){const i=r.getFieldsValue(!0);return import_lodash.default.get(i,t)}}mount(t){var o,r;if(this.disposed)return;this.formPatcher.patch(this.getForm());const i=(r=(o=this.model)==null?void 0:o.flowEngine)==null?void 0:r.emitter;if(i&&(!this.mountedListener&&!this.unmountedListener&&(this.mountedListener=({model:n})=>{this.ruleEngine.onModelMounted(n)},this.unmountedListener=({model:n})=>{this.ruleEngine.onModelUnmounted(n)},i.on("model:mounted",this.mountedListener),i.on("model:unmounted",this.unmountedListener)),t!=null&&t.sync)){const n=this.getFormValuesSnapshot();n&&typeof n=="object"&&(import_lodash.default.merge(this.valuesMirror,n),this.bumpChangeTick()),this.ruleEngine.enable()}}dispose(){var t,o;if(this.disposed)return;this.disposed=!0,this.formPatcher.restore();const r=(o=(t=this.model)==null?void 0:t.flowEngine)==null?void 0:o.emitter;r&&this.mountedListener&&this.unmountedListener&&(r.off("model:mounted",this.mountedListener),r.off("model:unmounted",this.unmountedListener)),this.ruleEngine.dispose();for(const i of this.observableBindings.values())i.dispose();this.observableBindings.clear(),this.txWriteCounts.clear()}isSuppressed(){return this.suppressFormCallbackDepth>0}handleFormFieldsChange(t){if(this.disposed)return;const o=this.getForm();if(!o.getFieldValue)return;const r=[],i=new Set;let n=!1;for(const d of t||[]){const m=d==null?void 0:d.name,p=Array.isArray(m)?m:typeof m=="string"||typeof m=="number"?[m]:null;if(!(p!=null&&p.length))continue;const h=o.getFieldValue(p),g=import_lodash.default.get(this.valuesMirror,p);import_lodash.default.isEqual(h,g)||(n||(this.writeSeq+=1,n=!0),import_lodash.default.set(this.valuesMirror,p,h),r.push(p),(d==null?void 0:d.touched)===!0&&i.add(namePathToPathKey(p)))}if(!r.length)return;const l=this.isSuppressed();if(!l&&i.size)for(const d of i)this.markExplicit(d);if(this.bumpChangeTick(),l)return;const a=t.some(d=>(d==null?void 0:d.touched)===!0)?"user":"system",c=this.writeSeq;for(const d of r)this.lastWriteMetaByPathKey.set(namePathToPathKey(d),{source:a,writeSeq:c});this.lastObservedChangedPaths=r,this.lastObservedSource=a;const u=++this.lastObservedToken;queueMicrotask(()=>{this.disposed||this.lastObservedToken===u&&(this.lastObservedChangedPaths=null,this.lastObservedSource=null)})}handleFormValuesChange(t,o){var r;if(this.disposed||this.isSuppressed())return;const i=this.lastObservedChangedPaths&&this.lastObservedChangedPaths.length?this.lastObservedChangedPaths:Object.keys(t||{}).map(p=>[p]),n=(r=this.lastObservedSource)!=null?r:"user";this.lastObservedChangedPaths=null,this.lastObservedSource=null;const l=o&&typeof o=="object"?o:this.getFormValuesSnapshot(),a=this.deriveExplicitPaths(i,l,this.valuesMirror);let c=!1,u=!1;const d=[];for(const p of i){if(!(p!=null&&p.length))continue;const h=import_lodash.default.get(l,p),g=import_lodash.default.get(this.valuesMirror,p);import_lodash.default.isEqual(g,h)||(u||(this.writeSeq+=1,u=!0),import_lodash.default.set(this.valuesMirror,p,h),c=!0,d.push(p))}c&&this.bumpChangeTick();for(const p of a)this.markExplicit(namePathToPathKey(p));if(c){const p=this.writeSeq;for(const h of d)h!=null&&h.length&&this.lastWriteMetaByPathKey.set(namePathToPathKey(h),{source:n,writeSeq:p})}const m=createTxId();this.emitFormValuesChange({source:n,txId:m,changedPaths:i,changedValues:t,allValues:l,allValuesSnapshot:l})}deriveExplicitPaths(t,o,r){const i=[],n=new Set;for(const l of t||[]){if(!(l!=null&&l.length))continue;const a=import_lodash.default.get(r,l),c=import_lodash.default.get(o,l);this.collectExplicitDiffPaths(a,c,l,i,n)}return i}collectExplicitDiffPaths(t,o,r,i,n){if(import_lodash.default.isEqual(t,o))return 0;const l=Array.isArray(t),a=Array.isArray(o);if(l||a){if(l&&a){const d=Math.min(t.length,o.length);let m=0;for(let p=0;p<d;p++)m+=this.collectExplicitDiffPaths(t[p],o[p],[...r,p],i,n);return m}return this.pushExplicitPath(r,i,n)?1:0}const c=this.isPlainObjectValue(t),u=this.isPlainObjectValue(o);if(c||u){if(c&&u){const d=new Set([...Object.keys(t),...Object.keys(o)]);let m=0;for(const p of d)m+=this.collectExplicitDiffPaths(t[p],o[p],[...r,p],i,n);return m===0&&this.isObjectCleared(t,o)?this.pushExplicitPath(r,i,n)?1:0:m}return this.isObjectCleared(t,o)?this.pushExplicitPath(r,i,n)?1:0:this.pushExplicitPath(r,i,n)?1:0}return this.pushExplicitPath(r,i,n)?1:0}pushExplicitPath(t,o,r){if(!(t!=null&&t.length))return!1;const i=namePathToPathKey(t);return!i||r.has(i)?!1:(r.add(i),o.push([...t]),!0)}isPlainObjectValue(t){return import_lodash.default.isPlainObject(t)}isObjectCleared(t,o){return this.isPlainObjectValue(t)?!!(o==null||this.isPlainObjectValue(o)&&Object.keys(o).length===0):!1}setFormValues(t,o,r){return L(this,null,function*(){var i,n,l,a,c,u;if(this.disposed)return;const d=(i=this.getForm)==null?void 0:i.call(this);if(!d)return;const m=(n=r==null?void 0:r.source)!=null?n:"system",p=(r==null?void 0:r.triggerEvent)!==!1,h=(l=r==null?void 0:r.txId)!=null?l:createTxId(),g=(a=r==null?void 0:r.markExplicit)!=null?a:m!=="default",f=typeof(r==null?void 0:r.txId)>"u",_=m==="linkage"&&Number.isFinite(Number(r==null?void 0:r.linkageScopeDepth))?Number(r==null?void 0:r.linkageScopeDepth):0,v=m==="linkage"&&typeof(r==null?void 0:r.linkageTxId)=="string"&&r.linkageTxId?String(r.linkageTxId):void 0,b=F=>{if(m!=="linkage"||!v)return!1;const S=this.lastWriteMetaByPathKey.get(F);return!S||S.source!=="linkage"||!S.linkageTxId||S.linkageTxId!==v?!1:(Number.isFinite(Number(S.linkageScopeDepth))?Number(S.linkageScopeDepth):0)>_},C=F=>m==="linkage"?{source:m,writeSeq:F,linkageScopeDepth:_,linkageTxId:v}:{source:m,writeSeq:F},y=F=>m==="linkage"&&v?A(x({},F),{linkageTxId:v}):F;try{const F=[];if(!Array.isArray(o)){const D=Object.entries(o||{}).filter(([N])=>!b(N)),k=Object.fromEntries(D),w=D.map(([N])=>N);if(!w.length)return;w.length&&(this.writeSeq+=1),this.suppressFormCallbackDepth++;try{(c=d.setFieldsValue)==null||c.call(d,k),import_lodash.default.merge(this.valuesMirror,k),this.bumpChangeTick()}finally{this.suppressFormCallbackDepth--}const B=this.writeSeq;for(const N of w)this.lastWriteMetaByPathKey.set(N,C(B));if(g)for(const N of w)this.markExplicit(N);if(p){const N=this.getFormValuesSnapshot();this.emitFormValuesChange(y({source:m,txId:h,changedPaths:w.map(T=>[T]),changedValues:k,allValues:N,allValuesSnapshot:N}))}return}const S=new Map;let P=0;for(const D of o){const k=D==null?void 0:D.condition;if(k&&!evaluateCondition(t,k))continue;const w=this.resolveNamePath(t,D.path),B=namePathToPathKey(w),N=D.value,T=(0,import_reactive.isObservable)(N)?(0,import_reactive.toJS)(N):N;if(b(B))continue;const $=this.getFormValueAtPath(w);import_lodash.default.isEqual($,T)||(P+=1,S.set(B,{order:P,namePath:w,value:T,rawValue:N,pathKey:B}))}const j=Array.from(S.values()).sort((D,k)=>D.order-k.order).map(D=>({namePath:D.namePath,value:D.value,rawValue:D.rawValue,pathKey:D.pathKey}));if(!j.length)return;const I=this.txWriteCounts.get(h)||new Map;this.txWriteCounts.set(h,I);const M=[];for(const D of j){const k=(I.get(D.pathKey)||0)+1;I.set(D.pathKey,k),!(k>MAX_WRITES_PER_PATH_PER_TX)&&M.push(D)}if(!M.length)return;this.writeSeq+=1;const E=this.writeSeq;for(const{pathKey:D,rawValue:k}of M)if(!(0,import_reactive.isObservable)(k)){const w=this.observableBindings.get(D);w&&(w.dispose(),this.observableBindings.delete(D))}this.suppressFormCallbackDepth++;try{for(const{namePath:D,value:k}of M)(u=d.setFieldValue)==null||u.call(d,D,k),import_lodash.default.set(this.valuesMirror,D,k),F.push(D);this.bumpChangeTick()}finally{this.suppressFormCallbackDepth--}for(const{pathKey:D}of M)this.lastWriteMetaByPathKey.set(D,C(E));if(g)for(const{pathKey:D}of M)this.markExplicit(D);if(m==="default")for(const{namePath:D,pathKey:k}of M){const w=this.getFormValueAtPath(D);this.lastDefaultValueByPathKey.set(k,w)}for(const{namePath:D,rawValue:k,pathKey:w}of M){if(!(0,import_reactive.isObservable)(k))continue;const B=k,N=(0,import_reactive.observe)(B,()=>{this.applyBoundValue(t,D,w,(0,import_reactive.toJS)(B),m,_,v)}),T=this.observableBindings.get(w);T&&T.dispose(),this.observableBindings.set(w,{source:m,dispose:N})}if(p){const D=this.getFormValuesSnapshot();this.emitFormValuesChange(y({source:m,txId:h,changedPaths:F,changedValues:{},allValues:D,allValuesSnapshot:D}))}}finally{f&&this.txWriteCounts.delete(h)}})}applyBoundValue(t,o,r,i,n,l,a){var c,u;if(this.disposed)return;const d=(c=this.getForm)==null?void 0:c.call(this);if(!d)return;const m=import_lodash.default.get(this.valuesMirror,o);if(import_lodash.default.isEqual(m,i))return;this.writeSeq+=1;const p=this.writeSeq;this.suppressFormCallbackDepth++;try{(u=d.setFieldValue)==null||u.call(d,o,i),import_lodash.default.set(this.valuesMirror,o,i),this.bumpChangeTick()}finally{this.suppressFormCallbackDepth--}const h=n==="linkage"?{source:n,writeSeq:p,linkageScopeDepth:Number.isFinite(Number(l))?Number(l):0,linkageTxId:typeof a=="string"&&a?a:void 0}:{source:n,writeSeq:p};this.lastWriteMetaByPathKey.set(r,h);const g=createTxId(),f=this.getFormValuesSnapshot(),_={source:n,txId:g,changedPaths:[o],changedValues:{},allValues:f,allValuesSnapshot:f};if(n==="linkage"&&a&&(_.linkageTxId=a),this.emitFormValuesChange(_),n==="default"&&this.isExplicit(r)){const v=this.observableBindings.get(r);v&&(v.dispose(),this.observableBindings.delete(r))}n==="default"&&this.lastDefaultValueByPathKey.set(r,this.getFormValueAtPath(o))}resolveNamePath(t,o){const r=this.tryResolveNamePath(t,o);if(!r)throw new Error(`Failed to resolve path '${String(o)}'`);return r}tryResolveNamePath(t,o){var r,i,n;const l=(n=(i=(r=t==null?void 0:t.model)==null?void 0:r.context)==null?void 0:i.fieldIndex)!=null?n:t==null?void 0:t.fieldIndex;return resolveDynamicNamePath(o,l)}bumpChangeTick(){this.changeTick.value+=1}emitFormValuesChange(t){var o,r,i,n;(r=(o=this.model).dispatchEvent)==null||r.call(o,"formValuesChange",t,{debounce:!0}),(n=(i=this.model.emitter)==null?void 0:i.emit)==null||n.call(i,"formValuesChange",t)}markExplicit(t){if(!this.explicitSet.has(t)){this.explicitSet.add(t);for(const o of Array.from(this.lastDefaultValueByPathKey.keys()))(o===t||o.startsWith(`${t}.`)||o.startsWith(`${t}[`))&&this.lastDefaultValueByPathKey.delete(o);for(const[o,r]of Array.from(this.observableBindings.entries()))r.source==="default"&&this.isExplicit(o)&&(r.dispose(),this.observableBindings.delete(o))}}isExplicit(t){return!!this.findExplicitHit(t)}findExplicitHit(t){if(this.explicitSet.has(t))return t;const o=pathKeyToNamePath(t),r=[];for(let i=0;i<o.length;i++){r.push(o[i]);const n=namePathToPathKey(r);if(!(!this.explicitSet.has(n)||typeof o[i+1]=="number"))return n}return null}}function collectUpdateAssociationValuesFromAssignRules(e,t){const o=Array.isArray(e)?e:[],r=new Set,i=n=>{var l,a,c,u,d;if(!t||typeof t.getField!="function"||typeof n!="string"||!n.includes("."))return null;const m=n.split(".").filter(Boolean);if(m.length<2)return null;let p=t;const h=[];let g=null,f=null;for(let _=0;_<m.length-1;_++){const v=m[_],b=(l=p==null?void 0:p.getField)==null?void 0:l.call(p,v);if(!((a=b==null?void 0:b.isAssociationField)!=null&&a.call(b))||!(b!=null&&b.targetCollection))break;h.push(v),g=h.join("."),f=b,p=b.targetCollection}if(g&&f){const _=m[m.length-1],v=(d=(u=f==null?void 0:f.targetKey)!=null?u:(c=f==null?void 0:f.targetCollection)==null?void 0:c.filterTargetKey)!=null?d:"id",b=Array.isArray(v)?v.filter(C=>typeof C=="string"&&!!C):typeof v=="string"&&v?[v]:["id"];if(typeof _=="string"&&b.includes(_))return null}return g};for(const n of o){const l=n!=null&&n.targetPath?String(n.targetPath):"";if(!l)continue;const a=i(l);a&&r.add(a)}return Array.from(r)}function createEmptyCondition(){return{logic:"$and",items:[]}}function getPropsInitialValue(e){if(!e)return;const t=typeof e.getProps=="function"?e.getProps():e.props;if(t&&typeof t.initialValue<"u")return t.initialValue}function getStepParamsInitialValue(e,t){var o,r;if(e)return(r=(o=e.getStepParams)==null?void 0:o.call(e,t,"initialValue"))==null?void 0:r.defaultValue}function createLegacyValueExtractor(e){return t=>{if(!t)return;const o=getPropsInitialValue(t);if(typeof o<"u")return o;for(const r of e){const i=getStepParamsInitialValue(t,r);if(typeof i<"u")return i}}}function deleteStepParams(e,t,o){var r,i,n;if(!((r=e==null?void 0:e.stepParams)!=null&&r[t]))return;const l=e.stepParams[t];!l||typeof l!="object"||Object.prototype.hasOwnProperty.call(l,o)&&(delete l[o],import_lodash.default.isEmpty(l)&&delete e.stepParams[t],(n=(i=e.emitter)==null?void 0:i.emit)==null||n.call(i,"onStepParamsChanged"))}function createLegacyClearer(e){return t=>{var o;if(t){(o=t.setProps)==null||o.call(t,{initialValue:void 0}),t.props&&Object.prototype.hasOwnProperty.call(t.props,"initialValue")&&delete t.props.initialValue;for(const r of e)deleteStepParams(t,r,"initialValue")}}}function collectLegacyDefaultValueRules(e,t){var o,r,i,n,l;const a=(i=(r=(o=e==null?void 0:e.subModels)==null?void 0:o.grid)==null?void 0:r.subModels)==null?void 0:i.items,c=Array.isArray(a)?a:[],u=[];for(const d of c){const m=((l=(n=d==null?void 0:d.getStepParams)==null?void 0:n.call(d,"fieldSettings","init"))==null?void 0:l.fieldPath)||(d==null?void 0:d.fieldPath),p=m?String(m):"";if(!p)continue;const h=t(d);typeof h<"u"&&u.push({key:`legacy-default:${p}`,enable:!0,targetPath:p,mode:"default",condition:createEmptyCondition(),value:h})}return u}function mergeAssignRulesWithLegacyDefaults(e,t){var o,r;const i=Array.isArray(e)?e:[],n=Array.isArray(t)?t:[];if(!n.length)return i;const l=new Set;for(const u of i){if(!u||typeof u!="object")continue;const d=u.targetPath?String(u.targetPath):"";if(d){if(u.mode==="default"){l.add(d);continue}String((o=u.key)!=null?o:"").startsWith("legacy-default:")&&l.add(d)}}const a=new Set(i.map(u=>{var d;return String((d=u.key)!=null?d:"")})),c=[];for(const u of n){const d=u.targetPath?String(u.targetPath):"";if(!d||l.has(d))continue;const m=x({},u),p=String((r=m.key)!=null?r:"");p&&a.has(p)&&(m.key=`${p}:${d}`),c.push(m)}return c.length?[...i,...c]:i}function clearLegacyDefaultValues(e,t,o){var r,i,n;const l=(n=(i=(r=e==null?void 0:e.subModels)==null?void 0:r.grid)==null?void 0:i.subModels)==null?void 0:n.items,a=Array.isArray(l)?l:[],c=[];for(const u of a)typeof t(u)<"u"&&(o(u),c.push(u));return c}const FORM_FLOW_KEYS=["editItemSettings","formItemSettings"],getLegacyFieldInitialValue=createLegacyValueExtractor(FORM_FLOW_KEYS),clearLegacyFieldInitialValue=createLegacyClearer(FORM_FLOW_KEYS);function collectLegacyDefaultValueRulesFromFormModel(e){return collectLegacyDefaultValueRules(e,getLegacyFieldInitialValue)}function clearLegacyDefaultValuesFromFormModel(e){return clearLegacyDefaultValues(e,getLegacyFieldInitialValue,clearLegacyFieldInitialValue)}const GRID_DELEGATED_STEP_KEYS={formModelSettings:new Set(["layout","assignRules"]),eventSettings:new Set(["linkageRules"])},FLOW_KEEP_MOBILE_HORIZONTAL_CLASS="nb-flow-keep-mobile-horizontal",flowKeepMobileHorizontalClassName=import_css.css`
1810
+ `},properties:{name:{type:"string","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:'{{t("Name")}}'}},value:{type:"string","x-decorator":"FormItem","x-component":TextAreaWithContextSelector,"x-component-props":{rows:1}},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}}}}},"x-reactions":{dependencies:["mode"],fulfill:{state:{hidden:'{{$deps[0] === "html"}}'}}},properties:{add:{type:"void",title:'{{t("Add parameter")}}',"x-component":"ArrayItems.Addition"}}},openInNewWindow:{type:"boolean","x-content":t("Open in new window"),"x-decorator":"FormItem","x-component":"Checkbox","x-reactions":{dependencies:["mode"],fulfill:{state:{hidden:'{{$deps[0] === "html"}}'}}}}}},handler(e,t){e.model.setProps({url:t.url,searchParams:t.searchParams,openInNewWindow:t.openInNewWindow})}}}});class ExpandCollapseActionModel extends ActionModel{constructor(){super(...arguments),R(this,"expandFlag"),R(this,"defaultProps",{type:"default",icon:"DownOutlined"})}setTitle(t){this.setProps({title:t})}setExpandFlag(t){this.expandFlag=t}getTitle(){return this.expandFlag?this.context.t("Collapse all"):this.context.t("Expand all")}getIcon(){return this.expandFlag?"NodeCollapseOutlined":"NodeExpandOutlined"}}R(ExpandCollapseActionModel,"scene",ActionSceneEnum.collection);function getIdsWithChildren(e,{idKey:t="id",childrenKey:o="children"}={}){const r=[];function i(n){if(Array.isArray(n))for(const l of n){const a=l[o];r.push(l[t]),Array.isArray(a)&&a.length>0&&i(a)}}return i(e),r}const allIncludesChildren=e=>getIdsWithChildren(e);ExpandCollapseActionModel.registerFlow({key:"expandCollapseSettingsInit",sort:200,steps:{init:{handler(e,t){e.blockModel.props.defaultExpandAllRows?e.model.setExpandFlag(!0):e.model.setExpandFlag(!1)}}}});ExpandCollapseActionModel.registerFlow({key:"expandCollapseSettings",on:"click",steps:{expandCollapse:{handler(e,t){return L(this,null,function*(){var o;if(!((o=e.blockModel)!=null&&o.resource))return;const r=e.blockModel.resource,{treeTable:i}=e.blockModel.props;if(i)if(e.model.expandFlag)e.blockModel.setProps({expandedRowKeys:[]}),e.model.setExpandFlag(!1);else{const n=allIncludesChildren(r.getData());e.blockModel.setProps({expandedRowKeys:n}),e.model.setExpandFlag(!0)}})}}}});ExpandCollapseActionModel.define({label:(0,import_flow_engine.escapeT)("Expand/Collapse"),hide(e){var t;return((t=e.collection)==null?void 0:t.template)!=="tree"||e.model.props.treeTable===!1}});class AddChildActionModel extends PopupActionModel{constructor(){super(...arguments),R(this,"defaultProps",{type:"link",title:(0,import_flow_engine.tExpr)("Add child"),icon:"PlusOutlined"})}getAclActionName(){return"create"}onInit(t){super.onInit(t),this.context.defineProperty("association",{get:()=>this.context.blockModel.dataSource.getAssociation(`${this.context.blockModel.collection.name}.children`)})}}R(AddChildActionModel,"capabilityActionName",null);AddChildActionModel.registerFlow({key:"addChildSettingsInit",steps:{addChildInit:{handler(e,t){return L(this,null,function*(){e.model.onClick=o=>{e.resource.setSourceId(e.record.id),e.model.dispatchEvent("click",A(x({event:o},e.inputArgs),{filterByTk:null}),{debounce:!0})}})}}}});AddChildActionModel.define({label:(0,import_flow_engine.tExpr)("Add child"),hide(e){var t;return((t=e.collection)==null?void 0:t.template)!=="tree"||e.blockModel.props.treeTable===!1}});RecordActionGroupModel.registerActionModels({AddChildActionModel});const SAVE_STEP_PARAMS_WITH_SUB_MODELS_FLAG="__saveStepParamsWithSubModels";function markSaveStepParamsWithSubModels(e){if(!e||typeof e!="object"&&typeof e!="function")throw new Error("[saveStepParamsWithSubModels] model is not an object");e[SAVE_STEP_PARAMS_WITH_SUB_MODELS_FLAG]=!0}function saveStepParamsWithSubModelsIfNeeded(e,t){return L(this,null,function*(){if(!e||typeof e!="object"&&typeof e!="function")throw new Error("[saveStepParamsWithSubModels] model is not an object");const o=e;if(o[SAVE_STEP_PARAMS_WITH_SUB_MODELS_FLAG]!==!0)return yield t();if(typeof o.save!="function")throw new Error("[saveStepParamsWithSubModels] model.save is not a function");try{return yield o.save()}finally{delete o[SAVE_STEP_PARAMS_WITH_SUB_MODELS_FLAG]}})}function evaluateCondition(e,t){const o=(r,i,n)=>{var l,a,c;return i?(c=(a=(l=e==null?void 0:e.app)==null?void 0:l.jsonLogic)==null?void 0:a.apply)==null?void 0:c.call(a,{[i]:[r,n]}):!0};try{return(0,import_client.evaluateConditions)((0,import_client.removeInvalidFilterItems)(t),o)}catch{return!1}}function parsePathString(e){const t=[];let o=0;const r=e.length,i=()=>{const n=o;for(;o<r&&e[o]!=="."&&e[o]!=="[";)o++;const l=e.slice(n,o);l&&t.push(l)};for(;o<r;){const n=e[o];if(n==="."){o++;continue}if(n==="["){o++;const l=o;for(;o<r&&e[o]!=="]";)o++;const a=e.slice(l,o);o++,/^\d+$/.test(a)?t.push(Number(a)):a&&t.push({placeholder:a});continue}i()}return t}function parseFieldIndexEntries(e){const t=Array.isArray(e)?e:[],o=[];for(const r of t){if(typeof r!="string")continue;const[i,n]=r.split(":"),l=Number(n);!i||Number.isNaN(l)||o.push({name:i,index:l})}return o}function resolveDynamicNamePath(e,t){const o=Array.isArray(e)?[...e]:parsePathString(e),r=parseFieldIndexEntries(t),i=[];let n=0;for(let l=0;l<o.length;l++){const a=o[l];if(typeof a=="object"&&a&&"placeholder"in a){const c=i[i.length-1],u=typeof c=="string"?c:void 0;if(!u)return null;for(;n<r.length&&r[n].name!==u;)n++;if(n>=r.length)return null;i.push(r[n].index),n++;continue}if(i.push(a),typeof a=="string"&&n<r.length&&r[n].name===a){const c=o[l+1];typeof c=="number"?n++:typeof c=="object"&&c&&"placeholder"in c||(i.push(r[n].index),n++)}}return i}function namePathToPathKey(e){let t="";for(const o of e){if(typeof o=="number"){t+=`[${o}]`;continue}t?t+=`.${o}`:t=o}return t}function pathKeyToNamePath(e){return parsePathString(e).filter(t=>typeof t!="object")}function buildAncestorKeys(e){const t=[],o=[];for(const r of e)o.push(r),t.push(namePathToPathKey(o));return t}function shouldProxyObjectValue(e){return!e||typeof e!="object"?!1:Array.isArray(e)||import_lodash.default.isPlainObject(e)}function recordDep(e,t){if(t)for(const o of buildAncestorKeys(e))t.deps.add(`fv:${o}`)}function createFormValuesProxy(e){const{valuesMirror:t,collector:o,basePath:r,getFormValuesSnapshot:i,getFormValueAtPath:n}=e,l=()=>r.length?import_lodash.default.get(t,r):t,a=l(),c=a&&(typeof a=="object"||typeof a=="function")?a:Array.isArray(a)?[]:{},u=d=>createFormValuesProxy({valuesMirror:t,basePath:d,collector:o,getFormValuesSnapshot:i,getFormValueAtPath:n});return new Proxy(c,{get(d,m){if(m==="toJSON")return o&&(o.wildcard=!0),r.length===0?()=>i():()=>(0,import_reactive.toJS)(l());if(typeof m=="symbol"){o&&(o.wildcard=!0);const b=l();return b==null?void 0:b[m]}const p=l();if(p==null)return;if(m==="__raw")return p;if(m==="__proto__"||m==="prototype"||m==="constructor"){o&&(o.wildcard=!0);return}const h=Array.isArray(p),g=h&&(typeof m=="number"&&Number.isInteger(m)||typeof m=="string"&&/^\d+$/.test(m));if(h&&!g){o&&(o.wildcard=!0);const b=p[m];return typeof b=="function"?b.bind(p):b}const f=g?Number(m):m,_=[...r,f];recordDep(_,o);let v=p[m];if(typeof v>"u"){const b=n(_);import_lodash.default.isEqual(b,v)||(import_lodash.default.set(t,_,b),v=b)}return v==null||typeof v!="object"?v:shouldProxyObjectValue(v)?u(_):v},ownKeys(){o&&(o.wildcard=!0);const d=l();return d?Reflect.ownKeys(d):[]},getOwnPropertyDescriptor(d,m){const p=l();if(p)return Object.getOwnPropertyDescriptor(p,m)},has(d,m){const p=l();return p?m in p:!1}})}function collectStaticDepsFromTemplateValue(e,t){try{const o=(0,import_flow_engine.extractUsedVariablePaths)(e)||{};for(const[r,i]of Object.entries(o)){const n=Array.isArray(i)?i:[],l=n.length?n:[""];for(const a of l){if(r==="formValues"){if(!a){t.wildcard=!0;continue}const u=parsePathString(String(a)).filter(d=>typeof d!="object");recordDep(u,t);continue}const c=a?`ctx:${r}:${String(a)}`:`ctx:${r}`;t.deps.add(c)}}}catch{}}function collectStaticDepsFromRunJSValue(e,t){if((0,import_flow_engine.isRunJSValue)(e))try{const o=(0,import_flow_engine.extractUsedVariablePathsFromRunJS)(e.code)||{};for(const[r,i]of Object.entries(o)){const n=Array.isArray(i)?i:[],l=n.length?n:[""];for(const a of l){if(r==="formValues"){if(!a){t.wildcard=!0;continue}const u=parsePathString(String(a)).filter(d=>typeof d!="object");recordDep(u,t);continue}const c=a?`ctx:${r}:${String(a)}`:`ctx:${r}`;t.deps.add(c)}}}catch{}}function createFormPatcher(e){let t,o,r;const i=()=>{const n=t;n&&(o&&(n.setFieldValue=o),r&&(n.setFieldsValue=r),t=void 0,o=void 0,r=void 0)};return{patch:n=>{if(t===n)return;i();const l=typeof(n==null?void 0:n.setFieldValue)=="function"?n.setFieldValue.bind(n):void 0,a=typeof(n==null?void 0:n.setFieldsValue)=="function"?n.setFieldsValue.bind(n):void 0;t=n,o=l,r=a,l&&(n.setFieldValue=(c,u)=>{if(e.isSuppressed()){l(c,u);return}e.setFormValues(e.getCallerContext(),[{path:c,value:u}],{source:"system"}).catch(()=>{})}),a&&(n.setFieldsValue=c=>{if(e.isSuppressed()){a(c);return}e.setFormValues(e.getCallerContext(),c,{source:"system"}).catch(()=>{})})},restore:i}}const MAX_WRITES_PER_PATH_PER_TX=20;function isEmptyValue(e){return e==null?!0:typeof e=="string"||Array.isArray(e)?e.length===0:import_lodash.default.isPlainObject(e)?Object.keys(e).length===0:!1}function createTxId(){return`${Date.now()}-${Math.random().toString(16).slice(2)}`}const SKIP_RULE_VALUE=Symbol("SKIP_RULE_VALUE"),UNRESOLVED_ASSOCIATION_IDENTITY=Symbol("UNRESOLVED_ASSOCIATION_IDENTITY"),LINKAGE_DEFAULT_RULE_PRIORITY=1e3;class RuleEngine{constructor(t){R(this,"options"),R(this,"rules",new Map),R(this,"lastRuleWriteByTargetKey",new Map),R(this,"assignTemplatesByTargetPath",new Map),R(this,"formItemTargetPaths",new Set),R(this,"updateAssociationByTargetPath",new Map),R(this,"pendingRuleIds",new Set),R(this,"ruleDebounceUntilById",new Map),R(this,"ruleDebounceTimersById",new Map),R(this,"defaultRuleIdsByMasterUid",new Map),R(this,"defaultRuleMasterDisposers",new Map),R(this,"runningRules",!1),R(this,"rulesEnabled",!1),R(this,"currentRuleTxId",null),this.options=t}getAssignRuleBlockId(t){return`form-assign:${t}:block`}removeAssignRuleBlockInstance(t){const o=this.getAssignRuleBlockId(t);this.rules.has(o)&&this.removeRule(o)}removeRowGridAssignRuleInstances(t){var o,r;const i=`form-assign:${t}:`,n=this.getAssignRuleBlockId(t),l=[];for(const[a,c]of this.rules.entries()){if(!a.startsWith(i)||a===n)continue;const u=(r=(o=c==null?void 0:c.rule)==null?void 0:o.getContext)==null?void 0:r.call(o),d=u==null?void 0:u.model;d&&this.isRowGridModel(d)&&l.push(a)}for(const a of l)this.removeRule(a)}hasAnyNonBlockAssignRuleInstance(t){const o=`form-assign:${t}:`,r=this.getAssignRuleBlockId(t);for(const i of this.rules.keys())if(i.startsWith(o)&&i!==r)return!0;return!1}ensureBlockAssignRuleInstancesForTargetPath(t){if(this.options.isDisposed()||!t||!this.shouldCreateBlockLevelAssignRule(t))return;const o=this.assignTemplatesByTargetPath.get(t)||[];if(o.length)for(const r of o){const i=r!=null&&r.__key?String(r.__key):"";if(!i||this.hasAnyNonBlockAssignRuleInstance(i))continue;const n=((r==null?void 0:r.mode)==="default"?"default":"assign")=="default"?"default":"system",l=(r==null?void 0:r.enable)!==!1,a=this.getAssignRuleBlockId(i);if(this.rules.has(a))continue;const c={id:a,source:n,priority:10+(r.__order||0),debounceMs:0,getEnabled:()=>l&&!!t,getTarget:()=>t,getValue:()=>r==null?void 0:r.value,getCondition:()=>r==null?void 0:r.condition,getContext:()=>this.options.getBlockContext()};this.rules.set(a,{rule:c,state:{deps:new Set,depDisposers:[],runSeq:0,scheduledAtWriteSeq:0}}),this.scheduleRule(a)}}getCollectionFromContext(t){var o,r,i;return(i=t==null?void 0:t.collection)!=null?i:(r=(o=t==null?void 0:t.model)==null?void 0:o.context)==null?void 0:r.collection}getRootCollection(){const t=this.options.getBlockContext();return this.getCollectionFromContext(t)}shouldCreateBlockLevelAssignRule(t){var o,r;const i=this.options.getBlockContext();let n=this.getCollectionFromContext(i);if(!(n!=null&&n.getField))return!0;const l=parsePathString(t).filter(a=>typeof a!="object");if(l.length<=1)return!0;for(let a=0;a<l.length-1;a++){const c=l[a];if(typeof c!="string")continue;const u=(o=n==null?void 0:n.getField)==null?void 0:o.call(n,c);if(!((r=u==null?void 0:u.isAssociationField)!=null&&r.call(u)))break;if(isToManyAssociationField(u)){if(typeof l[a+1]!="number")return!1;a+=1}if(n=u==null?void 0:u.targetCollection,!(n!=null&&n.getField))break}return!0}collectAssociationPrefixPaths(t,o){var r,i;const n=[];let l=this.getRootCollection()||this.getCollectionFromContext(t);if(!(l!=null&&l.getField))return n;const a=[];for(let c=0;c<o.length-1;c++){const u=o[c];if(typeof u!="string")break;const d=(r=l==null?void 0:l.getField)==null?void 0:r.call(l,u);if(!((i=d==null?void 0:d.isAssociationField)!=null&&i.call(d)))break;if(a.push(u),isToManyAssociationField(d)){const m=o[c+1];if(typeof m!="number")break;a.push(m),c+=1}if(n.push([...a]),l=d==null?void 0:d.targetCollection,!(l!=null&&l.getField))break}return n}shouldSkipToManyAssociationWriteWithoutIndex(t,o){var r,i;let n=this.getRootCollection()||this.getCollectionFromContext(t);if(!(n!=null&&n.getField))return!1;for(let l=0;l<o.length-1;l++){const a=o[l];if(typeof a!="string")continue;const c=(r=n==null?void 0:n.getField)==null?void 0:r.call(n,a);if(!((i=c==null?void 0:c.isAssociationField)!=null&&i.call(c)))break;if(isToManyAssociationField(c)){if(typeof o[l+1]!="number")return!0;l+=1}if(n=c==null?void 0:c.targetCollection,!(n!=null&&n.getField))break}return!1}shouldSkipAssociationNestedWrite(t,o){const r=this.collectAssociationPrefixPaths(t,o);if(!r.length)return!1;for(const i of r){const n=this.options.getFormValueAtPath(i);if(n==null){const l=i.filter(a=>typeof a=="string").join(".");if(l&&this.getUpdateAssociationForTargetPath(l)||this.isAssociationTargetKeyWrite(t,o,i))continue;return!0}if(typeof n!="object")return!0}return!1}getAssociationTargetKeyFields(t){var o,r,i,n,l;const a=(l=(n=(r=t==null?void 0:t.targetKey)!=null?r:(o=t==null?void 0:t.targetCollection)==null?void 0:o.filterTargetKey)!=null?n:(i=t==null?void 0:t.targetCollection)==null?void 0:i.filterByTk)!=null?l:"id";return Array.isArray(a)?a.filter(c=>typeof c=="string"&&!!c):typeof a=="string"&&a?[a]:["id"]}resolveAssociationFieldByPrefixPath(t,o){var r,i;let n=this.getRootCollection()||this.getCollectionFromContext(t);if(!(n!=null&&n.getField))return null;let l=null;for(const a of o){if(typeof a=="number")continue;if(typeof a!="string"||!a)break;const c=(r=n==null?void 0:n.getField)==null?void 0:r.call(n,a);if(!((i=c==null?void 0:c.isAssociationField)!=null&&i.call(c))||(l=c,n=c==null?void 0:c.targetCollection,!(n!=null&&n.getField)))break}return l}isAssociationTargetKeyWrite(t,o,r){var i;if(!Array.isArray(o)||!Array.isArray(r)||o.length!==r.length+1)return!1;const n=o[r.length];if(typeof n!="string"||!n)return!1;const l=this.resolveAssociationFieldByPrefixPath(t,r);return!((i=l==null?void 0:l.isAssociationField)!=null&&i.call(l))||isToManyAssociationField(l)?!1:this.getAssociationTargetKeyFields(l).includes(n)}collectUpdateAssociationInitPatches(t,o){const r=this.collectAssociationPrefixPaths(t,o);if(!r.length)return[];const i=[];for(const l of r){const a=this.options.getFormValueAtPath(l);if(a==null){const c=l.filter(u=>typeof u=="string").join(".");if(!c)return null;if(this.getUpdateAssociationForTargetPath(c)){i.push({path:[...l,"__is_new__"],value:!0});continue}if(this.isAssociationTargetKeyWrite(t,o,l)){i.push({path:[...l],value:{}});continue}return null}if(typeof a!="object")return null}const n=new Map;for(const l of i){const a=namePathToPathKey(l.path);n.has(a)||n.set(a,l)}return Array.from(n.values())}dispose(){for(const{state:t}of this.rules.values())t.depDisposers.forEach(o=>o());this.rules.clear(),this.pendingRuleIds.clear(),this.assignTemplatesByTargetPath.clear();for(const t of this.defaultRuleMasterDisposers.values())t();this.defaultRuleMasterDisposers.clear(),this.defaultRuleIdsByMasterUid.clear();for(const t of this.ruleDebounceTimersById.values())clearTimeout(t);this.ruleDebounceTimersById.clear(),this.ruleDebounceUntilById.clear()}enable(){this.rulesEnabled=!0,this.pendingRuleIds.size&&!this.runningRules&&this.flushRules()}syncAssignRules(t){if(this.options.isDisposed())return;const o=(Array.isArray(t)?t:[]).map((a,c)=>A(x({},a),{key:a!=null&&a.key?String(a.key):`idx:${c}`})),r="form-assign:";for(const a of Array.from(this.rules.keys()))a.startsWith(r)&&this.removeRule(a);this.assignTemplatesByTargetPath.clear(),this.formItemTargetPaths.clear(),this.updateAssociationByTargetPath.clear();let i=0;for(const a of o){const c=a!=null&&a.targetPath?String(a.targetPath):"";if(!c)continue;const u=this.assignTemplatesByTargetPath.get(c)||[];i+=1,u.push(A(x({},a),{__key:String(a.key),__order:i})),this.assignTemplatesByTargetPath.set(c,u)}const n=this.options.getEngine(),l=new Set;if(n!=null&&n.forEachModel){n.forEachModel(c=>{var u;if(!this.isModelInThisForm(c)||!((u=c==null?void 0:c.subModels)!=null&&u.field))return;const d=this.getModelTargetPath(c);d&&this.formItemTargetPaths.add(d),this.cacheUpdateAssociationForModel(c)});const a=c=>{this.cacheUpdateAssociationForModel(c),this.tryRegisterAssignRuleInstancesForModel(c,l);const u=c==null?void 0:c.forks;u&&typeof u.forEach=="function"&&u.forEach(d=>{!d||d!=null&&d.disposed||this.tryRegisterAssignRuleInstancesForModel(d,l)})};n.forEachModel(c=>{a(c)})}for(const[a,c]of this.assignTemplatesByTargetPath.entries())if(!l.has(a)&&this.shouldCreateBlockLevelAssignRule(a))for(const u of c){const d=((u==null?void 0:u.mode)==="default"?"default":"assign")=="default"?"default":"system",m=(u==null?void 0:u.enable)!==!1,p=`${r}${u.__key}:block`;this.rules.has(p)&&this.removeRule(p);const h={id:p,source:d,priority:10+(u.__order||0),debounceMs:0,getEnabled:()=>m&&!!a,getTarget:()=>a,getValue:()=>u==null?void 0:u.value,getCondition:()=>u==null?void 0:u.condition,getContext:()=>this.options.getBlockContext()};this.rules.set(p,{rule:h,state:{deps:new Set,depDisposers:[],runSeq:0,scheduledAtWriteSeq:0}}),this.scheduleRule(p)}}onModelMounted(t){var o;if(this.isModelInThisForm(t)&&!(t!=null&&t.isFork)&&(o=t==null?void 0:t.subModels)!=null&&o.field){const r=this.getModelTargetPath(t);r&&this.formItemTargetPaths.add(r),this.cacheUpdateAssociationForModel(t)}this.tryRegisterDefaultRuleInstance(t),this.tryRegisterAssignRuleInstancesForModel(t)}onModelUnmounted(t){var o;if(this.tryUnregisterDefaultRuleInstance(t),this.tryUnregisterAssignRuleInstancesForModel(t),this.isModelInThisForm(t)&&(o=t==null?void 0:t.subModels)!=null&&o.field){const r=this.getModelTargetPath(t);if(r&&(this.ensureBlockAssignRuleInstancesForTargetPath(r),!(t!=null&&t.isFork))){this.updateAssociationByTargetPath.delete(r),this.formItemTargetPaths.delete(r);const i=`${r}.`;for(const l of this.assignTemplatesByTargetPath.keys())l.startsWith(i)&&this.ensureBlockAssignRuleInstancesForTargetPath(l);const n=this.options.getEngine();if(n!=null&&n.forEachModel){const l=a=>{this.tryRegisterAssignRuleInstancesForModel(a);const c=a==null?void 0:a.forks;c&&typeof c.forEach=="function"&&c.forEach(u=>{!u||u!=null&&u.disposed||this.tryRegisterAssignRuleInstancesForModel(u)})};n.forEachModel(a=>l(a))}}}}isModelInThisForm(t){var o;const r=(o=t==null?void 0:t.context)==null?void 0:o.blockModel;return r?String(r.uid)===String(this.options.getBlockModelUid()):!1}cacheUpdateAssociationForModel(t){var o,r;if(this.options.isDisposed()||!this.isModelInThisForm(t)||!t||typeof t!="object"||t!=null&&t.isFork||!((o=t==null?void 0:t.subModels)!=null&&o.field))return;const i=this.getModelTargetPath(t);if(!i)return;const n=(r=t==null?void 0:t.subModels)==null?void 0:r.field,l=!!(n!=null&&n.updateAssociation);this.updateAssociationByTargetPath.get(i)!==!0&&this.updateAssociationByTargetPath.set(i,l)}getUpdateAssociationForTargetPath(t){const o=String(t||"");if(!o)return!1;if(this.updateAssociationByTargetPath.has(o))return!!this.updateAssociationByTargetPath.get(o);const r=this.options.getEngine();return r!=null&&r.forEachModel&&r.forEachModel(i=>{this.cacheUpdateAssociationForModel(i)}),this.updateAssociationByTargetPath.has(o)?!!this.updateAssociationByTargetPath.get(o):(this.updateAssociationByTargetPath.set(o,!1),!1)}getDefaultRuleId(t){var o;const r=t!=null&&t.isFork?String((o=t==null?void 0:t.forkId)!=null?o:"fork"):"master";return`default:${t!=null&&t.uid?String(t.uid):String(t)}:${r}`}getModelTargetNamePath(t){var o;const r=(o=t==null?void 0:t.context)==null?void 0:o.fieldPathArray;if(Array.isArray(r)&&r.length)return r;const i=typeof(t==null?void 0:t.getProps)=="function"?t.getProps():t==null?void 0:t.props,n=i==null?void 0:i.name;return Array.isArray(n)?n:typeof n=="string"?n.includes(".")?n.split("."):[n]:null}tryRegisterDefaultRuleInstance(t){if(this.options.isDisposed()||!this.isModelInThisForm(t)||!t||typeof t!="object")return;const o=typeof t.getProps=="function"?t.getProps():t.props;if(!o||typeof o!="object")return;const r=this.getModelTargetNamePath(t);if(!r)return;const i=this.getDefaultRuleId(t);if(this.rules.has(i))return;const n=t.master||t;this.bindMasterInitialValue(n,i);const l=()=>{var d,m;const p=(m=(d=n==null?void 0:n.getProps)==null?void 0:d.call(n))!=null?m:n==null?void 0:n.props;return p==null?void 0:p.initialValue},a=()=>typeof l()<"u"?LINKAGE_DEFAULT_RULE_PRIORITY:0,c=()=>{var d,m,p,h;try{const g=(m=(d=n==null?void 0:n.getStepParams)==null?void 0:d.call(n,"editItemSettings","initialValue"))==null?void 0:m.defaultValue;if(typeof g<"u")return g;const f=(h=(p=n==null?void 0:n.getStepParams)==null?void 0:p.call(n,"formItemSettings","initialValue"))==null?void 0:h.defaultValue;if(typeof f<"u")return f}catch{}},u={id:i,source:"default",priority:a(),debounceMs:0,getEnabled:()=>typeof l()<"u"?!0:typeof c()<"u",getTarget:()=>this.getModelTargetNamePath(t)||r,getValue:()=>{const d=l();return typeof d<"u"?d:c()},getContext:()=>t==null?void 0:t.context};this.rules.set(i,{rule:u,state:{deps:new Set,depDisposers:[],runSeq:0,scheduledAtWriteSeq:0}}),this.scheduleRule(i)}getModelTargetPath(t){var o;try{const n=(o=t==null?void 0:t.getStepParams)==null?void 0:o.call(t,"fieldSettings","init"),l=n==null?void 0:n.fieldPath;if(l)return String(l)}catch{}const r=t==null?void 0:t.fieldPath;if(r)return String(r);const i=this.getModelTargetNamePath(t);return i!=null&&i.length&&i.filter(n=>typeof n=="string").join(".")||null}getAssignRuleInstanceId(t,o){var r;const i=o!=null&&o.isFork?String((r=o==null?void 0:o.forkId)!=null?r:"fork"):"master",n=o!=null&&o.uid?String(o.uid):String(o);return`form-assign:${t}:${n}:${i}`}getDeepestFieldIndexKey(t){var o,r,i;const n=(i=(r=(o=t==null?void 0:t.model)==null?void 0:o.context)==null?void 0:r.fieldIndex)!=null?i:t==null?void 0:t.fieldIndex,l=Array.isArray(n)?n:[];if(!l.length)return null;const a=l[l.length-1];if(typeof a!="string")return null;const[c,u]=a.split(":");if(!c)return null;const d=Number(u);return Number.isNaN(d)?null:c}getDeepestToManyAssociationKey(t){var o,r;const i=this.getRootCollection();if(!(i!=null&&i.getField))return null;const n=parsePathString(String(t||"")).filter(c=>typeof c!="object");if(n.length<2)return null;let l=i,a=null;for(let c=0;c<n.length-1;c++){const u=n[c];if(typeof u!="string")continue;const d=(o=l==null?void 0:l.getField)==null?void 0:o.call(l,u);if(!((r=d==null?void 0:d.isAssociationField)!=null&&r.call(d)))break;const m=isToManyAssociationField(d);if(m&&(a=u),m&&typeof n[c+1]=="number"&&(c+=1),l=d==null?void 0:d.targetCollection,!(l!=null&&l.getField))break}return a}isRowGridModel(t){var o,r;if(!t||typeof t!="object"||(o=t==null?void 0:t.subModels)!=null&&o.field||!((r=t==null?void 0:t.subModels)!=null&&r.items))return!1;const i=t==null?void 0:t.context;return!!this.getDeepestFieldIndexKey(i)}tryRegisterAssignRuleInstancesForModel(t,o){var r,i,n,l;if(this.options.isDisposed()||!this.isModelInThisForm(t))return;const a=(g,f)=>{var _;if(!(!f||f.length===0)){o==null||o.add(g);for(const v of f){this.removeAssignRuleBlockInstance(v.__key),(_=t==null?void 0:t.subModels)!=null&&_.field&&this.removeRowGridAssignRuleInstances(v.__key);const b=((v==null?void 0:v.mode)==="default"?"default":"assign")=="default"?"default":"system",C=(v==null?void 0:v.enable)!==!1,y=this.getAssignRuleInstanceId(v.__key,t);this.rules.has(y)&&this.removeRule(y);const F={id:y,source:b,priority:10+(v.__order||0),debounceMs:0,getEnabled:()=>C&&!!g,getTarget:()=>g,getValue:()=>v==null?void 0:v.value,getCondition:()=>v==null?void 0:v.condition,getContext:()=>t==null?void 0:t.context};this.rules.set(y,{rule:F,state:{deps:new Set,depDisposers:[],runSeq:0,scheduledAtWriteSeq:0}}),this.scheduleRule(y)}}};if(this.isRowGridModel(t)){const g=t==null?void 0:t.context,f=this.getDeepestFieldIndexKey(g);if(f)for(const[_,v]of this.assignTemplatesByTargetPath.entries()){if(this.formItemTargetPaths.has(_))continue;const b=this.getDeepestToManyAssociationKey(_);!b||b!==f||a(_,v)}return}if(!((r=t==null?void 0:t.subModels)!=null&&r.field))return;const c=this.getModelTargetPath(t);if(!c)return;const u=this.assignTemplatesByTargetPath.get(c)||[];u.length&&a(c,u);const d=(i=t==null?void 0:t.subModels)==null?void 0:i.field,m=(n=d==null?void 0:d.context)==null?void 0:n.collectionField,p=!!((l=m==null?void 0:m.isAssociationField)!=null&&l.call(m)),h=isToManyAssociationField(m);if(p&&!h){const g=`${c}.`;for(const[f,_]of this.assignTemplatesByTargetPath.entries())!f||typeof f!="string"||f.startsWith(g)&&a(f,_)}}tryUnregisterAssignRuleInstancesForModel(t){var o,r,i,n;if(this.options.isDisposed()||!this.isModelInThisForm(t))return;const l=h=>{for(const g of h||[]){const f=this.getAssignRuleInstanceId(g.__key,t);this.rules.has(f)&&this.removeRule(f)}};if(this.isRowGridModel(t)){const h=t==null?void 0:t.context,g=this.getDeepestFieldIndexKey(h);if(!g)return;for(const[f,_]of this.assignTemplatesByTargetPath.entries()){if(this.formItemTargetPaths.has(f))continue;const v=this.getDeepestToManyAssociationKey(f);!v||v!==g||l(_)}return}if(!((o=t==null?void 0:t.subModels)!=null&&o.field))return;const a=this.getModelTargetPath(t);if(!a)return;const c=this.assignTemplatesByTargetPath.get(a)||[];c.length&&l(c);const u=(r=t==null?void 0:t.subModels)==null?void 0:r.field,d=(i=u==null?void 0:u.context)==null?void 0:i.collectionField,m=!!((n=d==null?void 0:d.isAssociationField)!=null&&n.call(d)),p=isToManyAssociationField(d);if(m&&!p){const h=`${a}.`;for(const[g,f]of this.assignTemplatesByTargetPath.entries())!g||typeof g!="string"||g.startsWith(h)&&l(f)}}tryUnregisterDefaultRuleInstance(t){if(this.options.isDisposed()||!this.isModelInThisForm(t))return;const o=this.getDefaultRuleId(t);this.rules.has(o)&&this.removeRule(o)}bindMasterInitialValue(t,o){const r=t!=null&&t.uid?String(t.uid):o,i=this.defaultRuleIdsByMasterUid.get(r)||new Set;if(i.add(o),this.defaultRuleIdsByMasterUid.set(r,i),this.defaultRuleMasterDisposers.has(r))return;const n=(0,import_reactive.reaction)(()=>{var l,a;const c=(a=(l=t==null?void 0:t.getProps)==null?void 0:l.call(t))!=null?a:t==null?void 0:t.props;return c==null?void 0:c.initialValue},(l,a)=>{var c,u;if(import_lodash.default.isEqual(l,a))return;const d=this.defaultRuleIdsByMasterUid.get(r);if(!d)return;const m=(u=(c=t==null?void 0:t.getProps)==null?void 0:c.call(t))!=null?u:t==null?void 0:t.props,p=typeof(m==null?void 0:m.initialValue)<"u"?LINKAGE_DEFAULT_RULE_PRIORITY:0;for(const h of d){const g=this.rules.get(h);g&&(g.rule.priority=p),this.scheduleRule(h)}});this.defaultRuleMasterDisposers.set(r,n)}removeRule(t){const o=this.rules.get(t);if(!o)return;try{const i=o.rule.getContext(),n=o.rule.getTarget(),l=this.options.tryResolveNamePath(i,n);if(l){const a=namePathToPathKey(l),c=this.options.observableBindings.get(a);c&&c.source===o.rule.source&&(c.dispose(),this.options.observableBindings.delete(a))}}catch{}o.state.depDisposers.forEach(i=>i()),this.rules.delete(t),this.pendingRuleIds.delete(t);const r=this.ruleDebounceTimersById.get(t);r&&clearTimeout(r),this.ruleDebounceTimersById.delete(t),this.ruleDebounceUntilById.delete(t);for(const[i,n]of this.defaultRuleIdsByMasterUid.entries()){if(!n.has(t)||(n.delete(t),n.size>0))continue;this.defaultRuleIdsByMasterUid.delete(i);const l=this.defaultRuleMasterDisposers.get(i);l&&l(),this.defaultRuleMasterDisposers.delete(i)}}scheduleRule(t){var o;if(this.options.isDisposed())return;const r=this.rules.get(t);if(!r)return;const{rule:i,state:n}=r;n.scheduledAtWriteSeq=this.options.getWriteSeq();const l=(o=i==null?void 0:i.debounceMs)!=null?o:0;if(this.pendingRuleIds.add(t),l>0){const a=Date.now()+l,c=this.ruleDebounceUntilById.get(t)||0;a>c&&this.ruleDebounceUntilById.set(t,a);const u=this.ruleDebounceTimersById.get(t);u&&clearTimeout(u);const d=setTimeout(()=>{this.ruleDebounceTimersById.delete(t),this.rulesEnabled&&(this.runningRules||this.pendingRuleIds.has(t)&&this.flushRules())},l);this.ruleDebounceTimersById.set(t,d)}else{const a=this.ruleDebounceTimersById.get(t);a&&clearTimeout(a),this.ruleDebounceTimersById.delete(t),this.ruleDebounceUntilById.delete(t)}this.rulesEnabled&&(this.runningRules||this.flushRules())}flushRules(){return L(this,null,function*(){if(this.runningRules)return;this.runningRules=!0;const t=this.currentRuleTxId||createTxId();this.currentRuleTxId=t;try{for(;this.pendingRuleIds.size;){const o=Date.now(),r=[];for(const i of this.pendingRuleIds)(this.ruleDebounceUntilById.get(i)||0)>o||r.push(i);if(!r.length)break;for(const i of r)this.pendingRuleIds.delete(i),this.ruleDebounceUntilById.delete(i);r.sort((i,n)=>{var l,a,c,u;const d=(l=this.rules.get(i))==null?void 0:l.rule,m=(a=this.rules.get(n))==null?void 0:a.rule,p=(c=d==null?void 0:d.priority)!=null?c:0,h=(u=m==null?void 0:m.priority)!=null?u:0;return p!==h?p-h:i.localeCompare(n)});for(const i of r)yield this.runRule(i)}}finally{this.runningRules=!1,this.currentRuleTxId=null,this.options.txWriteCounts.delete(t)}})}runRule(t){return L(this,null,function*(){var o;const r=this.rules.get(t);if(!r)return;const{rule:i,state:n}=r;n.runSeq+=1;const l=n.runSeq,a=n.scheduledAtWriteSeq,c=this.prepareRuleContext(i),{baseCtx:u,targetNamePath:d,targetKey:m,clearDeps:p,disposeBinding:h}=c;if(!this.shouldRunRule(i,d,m,u)){p(n),h();return}if(!d||!m){p(n),h();return}const g=d,f=m,{collector:_,evalCtx:v}=this.createRuleCollectorAndContext(i,c);if(i.getCondition&&!(yield this.evaluateRuleCondition(i,n,l,v,_)))return;const b=yield this.resolveRuleValue(i,n,l,v,_);if(b===SKIP_RULE_VALUE||l!==n.runSeq)return;this.commitRuleDeps(i,n,_);const C=this.normalizeResolvedValueForTarget(u,b),y=this.normalizeResolvedValueForAssociationTarget(u,g,C);if(i.source==="default"&&!this.checkDefaultRuleCanApply(y,g,f,p,h,n))return;if(i.source==="default"){const E=this.lastRuleWriteByTargetKey.get(f);if((E==null?void 0:E.source)==="default"&&E.priority>i.priority&&E.writeSeq>=a){h();return}}if(i.source==="system"){const E=this.options.lastWriteMetaByPathKey.get(f);if((E==null?void 0:E.source)==="linkage"&&E.writeSeq>=a){h();return}}if(this.shouldSkipAssociationNestedWrite(u,g)||this.shouldSkipToManyAssociationWriteWithoutIndex(u,g))return;const F=y,S=this.options.getFormValueAtPath(g);if(this.isAssociationTargetSemanticallyEqual(u,g,S,F))return;const P=this.collectUpdateAssociationInitPatches(u,g);if(P==null)return;if(i.source==="system"){const E=u==null?void 0:u.model;if((o=E==null?void 0:E.subModels)!=null&&o.field){const D=this.getModelTargetNamePath(E);D&&namePathToPathKey(D)===f&&E.setProps({value:y})}}const j=this.options.getWriteSeq(),I=[...P,{path:g,value:y}];yield this.options.setFormValues(v,I,{source:i.source,txId:this.currentRuleTxId||void 0});const M=this.options.getWriteSeq();M!==j&&this.lastRuleWriteByTargetKey.set(f,{source:i.source,priority:i.priority,writeSeq:M})})}isTzAwareTargetInterface(t){return typeof t!="string"?!1:["datetime","createdAt","updatedAt","unixTimestamp"].includes(t)}normalizeDateOnlyToStartOfDayIso(t){const o=String(t||"").trim();if(!o||!/^\d{4}-\d{2}-\d{2}$/.test(o))return t;const r=(0,import_client.dayjs)(o,"YYYY-MM-DD",!0);return r.isValid()?r.startOf("day").toISOString():t}normalizeResolvedValueForTarget(t,o){var r,i,n;const l=(n=(i=(r=t==null?void 0:t.model)==null?void 0:r.context)==null?void 0:i.collectionField)==null?void 0:n.interface;return this.isTzAwareTargetInterface(l)?typeof o=="string"?this.normalizeDateOnlyToStartOfDayIso(o):Array.isArray(o)?o.map(a=>typeof a=="string"?this.normalizeDateOnlyToStartOfDayIso(a):a):o:o}isPrimitiveAssociationTargetValue(t){return typeof t=="string"||typeof t=="number"||typeof t=="boolean"}extractAssociationIdentity(t,o){const r=this.getAssociationTargetKeyFields(t),i=r.length===1?r[0]:null,n=a=>{if(a==null)return a;if(this.isPrimitiveAssociationTargetValue(a))return i?a:UNRESOLVED_ASSOCIATION_IDENTITY;if(!a||typeof a!="object")return UNRESOLVED_ASSOCIATION_IDENTITY;if(i)return typeof a[i]>"u"?UNRESOLVED_ASSOCIATION_IDENTITY:a[i];const c={};for(const u of r){if(typeof a[u]>"u")return UNRESOLVED_ASSOCIATION_IDENTITY;c[u]=a[u]}return c};if(isToManyAssociationField(t)){const a=Array.isArray(o)?o:[o],c=[];for(const u of a){if(u==null)continue;const d=n(u);if(d===UNRESOLVED_ASSOCIATION_IDENTITY)return UNRESOLVED_ASSOCIATION_IDENTITY;c.push(d)}return c}const l=Array.isArray(o)?o.find(a=>a!=null):o;return l==null?l:n(l)}isAssociationTargetSemanticallyEqual(t,o,r,i){var n;const l=this.resolveCollectionFieldByNamePath(t,o);if(!((n=l==null?void 0:l.isAssociationField)!=null&&n.call(l)))return import_lodash.default.isEqual(r,i);const a=this.extractAssociationIdentity(l,r),c=this.extractAssociationIdentity(l,i);return a===UNRESOLVED_ASSOCIATION_IDENTITY||c===UNRESOLVED_ASSOCIATION_IDENTITY?import_lodash.default.isEqual(r,i):import_lodash.default.isEqual(a,c)}resolveCollectionFieldByNamePath(t,o){var r,i;if(!Array.isArray(o)||!o.length)return null;let n=this.getRootCollection()||this.getCollectionFromContext(t);if(!(n!=null&&n.getField))return null;for(let l=0;l<o.length;l++){const a=o[l];if(typeof a!="string"||!a)return null;const c=(r=n==null?void 0:n.getField)==null?void 0:r.call(n,a);if(!c)return null;if(l===o.length-1)return c;if(!((i=c==null?void 0:c.isAssociationField)!=null&&i.call(c))||!(c!=null&&c.targetCollection))return null;if(isToManyAssociationField(c)){if(typeof o[l+1]!="number")return null;l+=1}if(n=c.targetCollection,!(n!=null&&n.getField))return null}return null}normalizeResolvedValueForAssociationTarget(t,o,r){var i;const n=this.resolveCollectionFieldByNamePath(t,o);if(!((i=n==null?void 0:n.isAssociationField)!=null&&i.call(n)))return r;const l=this.getAssociationTargetKeyFields(n),a=l.length===1?l[0]:null,c=d=>{if(d!=null)return a&&this.isPrimitiveAssociationTargetValue(d)?{[a]:d}:d};if(isToManyAssociationField(n))return(Array.isArray(r)?r:[r]).map(d=>c(d)).filter(d=>typeof d<"u"&&d!==null);const u=Array.isArray(r)?r.find(d=>d!=null):r;return u==null?u:c(u)}prepareRuleContext(t){const o=t.getContext(),r=t.getTarget(),i=this.options.tryResolveNamePath(o,r),n=i?namePathToPathKey(i):null;return{baseCtx:o,targetNamePath:i,targetKey:n,clearDeps:l=>{l.depDisposers.forEach(a=>a()),l.depDisposers=[],l.deps=new Set},disposeBinding:()=>{if(!n)return;const l=this.options.observableBindings.get(n);l&&l.source===t.source&&(l.dispose(),this.options.observableBindings.delete(n))}}}shouldApplyDefaultRuleInCurrentState(t){var o,r;if(((r=(o=this.options).getActionName)==null?void 0:r.call(o))!=="update")return!0;let i;try{i=t==null?void 0:t.item}catch{i=void 0}return!i||typeof i!="object"?!1:i.__is_new__===!0}shouldRunRule(t,o,r,i){return!(!t.getEnabled()||!o||!r||t.source==="default"&&(!this.shouldApplyDefaultRuleInCurrentState(i)||this.options.findExplicitHit(r)))}createRuleCollectorAndContext(t,o){const{baseCtx:r,targetNamePath:i}=o,n=t.getValue(),l=(0,import_flow_engine.isRunJSValue)(n),a={deps:new Set,wildcard:!1};if(t.getCondition&&collectStaticDepsFromTemplateValue(t.getCondition(),a),l?collectStaticDepsFromRunJSValue(n,a):collectStaticDepsFromTemplateValue(n,a),i){recordDep(i,a);for(const u of this.collectAssociationPrefixPaths(r,i))recordDep(u,a)}const c=this.createRuleEvaluationContext(r,a,i);return{collector:a,evalCtx:c,rawValue:n,isRunJS:l}}evaluateRuleCondition(t,o,r,i,n){return L(this,null,function*(){var l;const a=t.getCondition;if(!a)return!0;const c=a();let u=c;if(c)try{u=yield(l=i==null?void 0:i.resolveJsonTemplate)==null?void 0:l.call(i,c)}catch{u=c}return r!==o.runSeq?!1:c&&!evaluateCondition(i,u)?(this.commitRuleDeps(t,o,n),!1):!0})}resolveRuleValue(t,o,r,i,n){return L(this,null,function*(){const l=t.getValue();return(0,import_flow_engine.isRunJSValue)(l)?this.resolveRunJSValue(l,o,r,i,n,t):this.resolveTemplateValue(l,o,r,i,n,t)})}resolveRunJSValue(t,o,r,i,n,l){return L(this,null,function*(){try{const{code:a,version:c}=(0,import_flow_engine.normalizeRunJSValue)(t),u=yield(0,import_flow_engine.runjsWithSafeGlobals)(i,a,{version:c});return u!=null&&u.success?u.value:(r!==o.runSeq||this.commitRuleDeps(l,o,n),SKIP_RULE_VALUE)}catch{return r!==o.runSeq||this.commitRuleDeps(l,o,n),SKIP_RULE_VALUE}})}resolveTemplateValue(t,o,r,i,n,l){return L(this,null,function*(){var a;try{return yield(a=i==null?void 0:i.resolveJsonTemplate)==null?void 0:a.call(i,t)}catch{return r!==o.runSeq||this.commitRuleDeps(l,o,n),SKIP_RULE_VALUE}})}commitRuleDeps(t,o,r){const i=new Set(r.deps);r.wildcard&&i.add("fv:*"),this.updateRuleDeps(t,o,i)}checkDefaultRuleCanApply(t,o,r,i,n,l){if(typeof t>"u")return!1;if(this.options.findExplicitHit(r))return i(l),n(),!1;const a=this.options.getFormValueAtPath(o),c=this.options.lastDefaultValueByPathKey.get(r),u=isEmptyValue(a)||typeof c<"u"&&import_lodash.default.isEqual(a,c),d=(0,import_reactive.isObservable)(t)?(0,import_reactive.toJS)(t):t;return!u&&import_lodash.default.isEqual(a,d)?(this.options.lastDefaultValueByPathKey.set(r,d),!1):u}createRuleEvaluationContext(t,o,r){const i=this.options.createTrackingFormValues(o),n=new import_flow_engine.FlowContext;try{n.delegate(t)}catch{}const l=typeof(t==null?void 0:t.getPropertyOptions)=="function"?t.getPropertyOptions("formValues"):null;l&&typeof l=="object"?n.defineProperty("formValues",A(x({},l),{get:()=>i,cache:!1})):n.defineProperty("formValues",{get:()=>i,cache:!1});let a,c=!1;const u=()=>{try{return t==null?void 0:t.item}catch{return}},d=()=>{if(!c){const m=this.buildItemChainValue(t,i,r);a=typeof m>"u"?u():m,c=!0}return a};return n.defineProperty("item",{get:d,cache:!1}),n}buildItemChainValue(t,o,r){var i,n;const l=this.getRootCollection()||this.getCollectionFromContext(t),a=(h,g,f,_)=>({index:g,length:f,__is_new__:h==null?void 0:h.__is_new__,__is_stored__:h==null?void 0:h.__is_stored__,value:h,parentItem:_}),c=a(o,void 0,void 0,void 0);if(!r||!Array.isArray(r)||!r.length||!(l!=null&&l.getField))return;const u=[],d=[];let m=l;for(let h=0;h<r.length-1;h++){const g=r[h];if(typeof g!="string")break;const f=(i=m==null?void 0:m.getField)==null?void 0:i.call(m,g);if(!((n=f==null?void 0:f.isAssociationField)!=null&&n.call(f)))break;const _=isToManyAssociationField(f);if(d.push(g),_){const b=r[h+1];if(typeof b!="number")break;d.push(b),h+=1}const v=f==null?void 0:f.targetCollection;if(!v)break;u.push({path:[...d],toMany:_}),m=v}const p=h=>{if(h<0)return c;const g=u[h],f=import_lodash.default.get(o,g.path),_=g.path[g.path.length-1],v=g.toMany&&typeof _=="number"?_:void 0,b=(()=>{if(!g.toMany)return;const C=g.path.slice(0,-1),y=import_lodash.default.get(o,C);return Array.isArray(y)?y.length:void 0})();return a(f,v,b,p(h-1))};return u.length?p(u.length-1):void 0}getFieldIndexSignature(t){var o,r,i;const n=(i=(r=(o=t==null?void 0:t.model)==null?void 0:o.context)==null?void 0:r.fieldIndex)!=null?i:t==null?void 0:t.fieldIndex;return(Array.isArray(n)?n:[]).filter(l=>typeof l=="string").join("|")}updateRuleDeps(t,o,r){if(o.depDisposers.forEach(n=>n()),o.depDisposers=[],o.deps=r,r.has("fv:*")){const n=(0,import_reactive.reaction)(()=>this.options.changeTick.value,()=>this.scheduleRule(t.id));o.depDisposers.push(n)}const i=(()=>{try{return t.getContext()}catch{return}})();for(const n of r){if(n==="fv:*")continue;if(!n.startsWith("fv:")&&!n.startsWith("ctx:")){const p=pathKeyToNamePath(n),h=(0,import_reactive.reaction)(()=>import_lodash.default.get(this.options.valuesMirror,p),()=>this.scheduleRule(t.id));o.depDisposers.push(h);continue}if(n.startsWith("fv:")){const p=n.slice(3),h=pathKeyToNamePath(p),g=(0,import_reactive.reaction)(()=>import_lodash.default.get(this.options.valuesMirror,h),()=>this.scheduleRule(t.id));o.depDisposers.push(g);continue}const l=n.slice(4),a=l.indexOf(":"),c=a>=0?l.slice(0,a):l,u=a>=0?l.slice(a+1):"";if(c==="item"){const p=(0,import_reactive.reaction)(()=>this.getFieldIndexSignature(i),()=>this.scheduleRule(t.id));o.depDisposers.push(p);continue}const d=u?parsePathString(u).filter(p=>typeof p!="object"):[],m=(0,import_reactive.reaction)(()=>{const p=i?i[c]:void 0;return d.length?import_lodash.default.get(p,d):p},()=>this.scheduleRule(t.id));o.depDisposers.push(m)}}}class FormValueRuntime{constructor(t){R(this,"model"),R(this,"getForm"),R(this,"valuesMirror",(0,import_reactive.observable)({})),R(this,"explicitSet",new Set),R(this,"lastDefaultValueByPathKey",new Map),R(this,"lastWriteMetaByPathKey",new Map),R(this,"observableBindings",new Map),R(this,"changeTick",import_reactive.observable.ref(0)),R(this,"txWriteCounts",new Map),R(this,"writeSeq",0),R(this,"disposed",!1),R(this,"suppressFormCallbackDepth",0),R(this,"lastObservedChangedPaths",null),R(this,"lastObservedSource",null),R(this,"lastObservedToken",0),R(this,"formValuesProxy"),R(this,"mountedListener"),R(this,"unmountedListener"),R(this,"formPatcher"),R(this,"ruleEngine"),this.model=t.model,this.getForm=t.getForm,this.formPatcher=createFormPatcher({isSuppressed:()=>this.isSuppressed(),getCallerContext:()=>{var o;return(o=this.model)==null?void 0:o.context},setFormValues:this.setFormValues.bind(this)}),this.ruleEngine=new RuleEngine({getBlockModelUid:()=>{var o;return String((o=this.model)==null?void 0:o.uid)},getActionName:()=>{var o,r,i,n,l;return(l=(r=(o=this.model)==null?void 0:o.getAclActionName)==null?void 0:r.call(o))!=null?l:(n=(i=this.model)==null?void 0:i.context)==null?void 0:n.actionName},getBlockContext:()=>{var o;return(o=this.model)==null?void 0:o.context},getEngine:()=>{var o,r;return(r=(o=this.model)==null?void 0:o.context)==null?void 0:r.engine},getEngineModel:o=>{var r,i,n,l,a;return(a=(l=(n=(i=(r=this.model)==null?void 0:r.context)==null?void 0:i.engine)==null?void 0:n.getModel)==null?void 0:l.call(n,o))!=null?a:null},isDisposed:()=>this.disposed,valuesMirror:this.valuesMirror,changeTick:this.changeTick,getWriteSeq:()=>this.writeSeq,txWriteCounts:this.txWriteCounts,createTrackingFormValues:o=>createFormValuesProxy({valuesMirror:this.valuesMirror,basePath:[],collector:o,getFormValuesSnapshot:()=>this.getFormValuesSnapshot(),getFormValueAtPath:r=>this.getFormValueAtPath(r)}),tryResolveNamePath:(o,r)=>this.tryResolveNamePath(o,r),getFormValueAtPath:o=>this.getFormValueAtPath(o),setFormValues:(o,r,i)=>this.setFormValues(o,r,i),findExplicitHit:o=>this.findExplicitHit(o),lastDefaultValueByPathKey:this.lastDefaultValueByPathKey,lastWriteMetaByPathKey:this.lastWriteMetaByPathKey,observableBindings:this.observableBindings}),this.formValuesProxy=createFormValuesProxy({valuesMirror:this.valuesMirror,basePath:[],getFormValuesSnapshot:()=>this.getFormValuesSnapshot(),getFormValueAtPath:o=>this.getFormValueAtPath(o)})}syncAssignRules(t){this.ruleEngine.syncAssignRules(t)}get formValues(){return this.disposed||this.formPatcher.patch(this.getForm()),this.formValuesProxy}getFormValuesSnapshot(){if(!this.disposed){const t=this.getForm();this.formPatcher.patch(t)}return this.getForm().getFieldsValue(!0)}getFormValueAtPath(t){var o;const r=(o=this.getForm)==null?void 0:o.call(this);if(r&&typeof r.getFieldValue=="function")return r.getFieldValue(t);if(r&&typeof r.getFieldsValue=="function"){const i=r.getFieldsValue(!0);return import_lodash.default.get(i,t)}}mount(t){var o,r;if(this.disposed)return;this.formPatcher.patch(this.getForm());const i=(r=(o=this.model)==null?void 0:o.flowEngine)==null?void 0:r.emitter;if(i&&(!this.mountedListener&&!this.unmountedListener&&(this.mountedListener=({model:n})=>{this.ruleEngine.onModelMounted(n)},this.unmountedListener=({model:n})=>{this.ruleEngine.onModelUnmounted(n)},i.on("model:mounted",this.mountedListener),i.on("model:unmounted",this.unmountedListener)),t!=null&&t.sync)){const n=this.getFormValuesSnapshot();n&&typeof n=="object"&&(import_lodash.default.merge(this.valuesMirror,n),this.bumpChangeTick()),this.ruleEngine.enable()}}dispose(){var t,o;if(this.disposed)return;this.disposed=!0,this.formPatcher.restore();const r=(o=(t=this.model)==null?void 0:t.flowEngine)==null?void 0:o.emitter;r&&this.mountedListener&&this.unmountedListener&&(r.off("model:mounted",this.mountedListener),r.off("model:unmounted",this.unmountedListener)),this.ruleEngine.dispose();for(const i of this.observableBindings.values())i.dispose();this.observableBindings.clear(),this.txWriteCounts.clear()}isSuppressed(){return this.suppressFormCallbackDepth>0}handleFormFieldsChange(t){if(this.disposed)return;const o=this.getForm();if(!o.getFieldValue)return;const r=[],i=new Set;let n=!1;for(const d of t||[]){const m=d==null?void 0:d.name,p=Array.isArray(m)?m:typeof m=="string"||typeof m=="number"?[m]:null;if(!(p!=null&&p.length))continue;const h=o.getFieldValue(p),g=import_lodash.default.get(this.valuesMirror,p);import_lodash.default.isEqual(h,g)||(n||(this.writeSeq+=1,n=!0),import_lodash.default.set(this.valuesMirror,p,h),r.push(p),(d==null?void 0:d.touched)===!0&&i.add(namePathToPathKey(p)))}if(!r.length)return;const l=this.isSuppressed();if(!l&&i.size)for(const d of i)this.markExplicit(d);if(this.bumpChangeTick(),l)return;const a=t.some(d=>(d==null?void 0:d.touched)===!0)?"user":"system",c=this.writeSeq;for(const d of r)this.lastWriteMetaByPathKey.set(namePathToPathKey(d),{source:a,writeSeq:c});this.lastObservedChangedPaths=r,this.lastObservedSource=a;const u=++this.lastObservedToken;queueMicrotask(()=>{this.disposed||this.lastObservedToken===u&&(this.lastObservedChangedPaths=null,this.lastObservedSource=null)})}handleFormValuesChange(t,o){var r;if(this.disposed||this.isSuppressed())return;const i=this.lastObservedChangedPaths&&this.lastObservedChangedPaths.length?this.lastObservedChangedPaths:Object.keys(t||{}).map(p=>[p]),n=(r=this.lastObservedSource)!=null?r:"user";this.lastObservedChangedPaths=null,this.lastObservedSource=null;const l=o&&typeof o=="object"?o:this.getFormValuesSnapshot(),a=this.deriveExplicitPaths(i,l,this.valuesMirror);let c=!1,u=!1;const d=[];for(const p of i){if(!(p!=null&&p.length))continue;const h=import_lodash.default.get(l,p),g=import_lodash.default.get(this.valuesMirror,p);import_lodash.default.isEqual(g,h)||(u||(this.writeSeq+=1,u=!0),import_lodash.default.set(this.valuesMirror,p,h),c=!0,d.push(p))}c&&this.bumpChangeTick();for(const p of a)this.markExplicit(namePathToPathKey(p));if(c){const p=this.writeSeq;for(const h of d)h!=null&&h.length&&this.lastWriteMetaByPathKey.set(namePathToPathKey(h),{source:n,writeSeq:p})}const m=createTxId();this.emitFormValuesChange({source:n,txId:m,changedPaths:i,changedValues:t,allValues:l,allValuesSnapshot:l})}deriveExplicitPaths(t,o,r){const i=[],n=new Set;for(const l of t||[]){if(!(l!=null&&l.length))continue;const a=import_lodash.default.get(r,l),c=import_lodash.default.get(o,l);this.collectExplicitDiffPaths(a,c,l,i,n)}return i}collectExplicitDiffPaths(t,o,r,i,n){if(import_lodash.default.isEqual(t,o))return 0;const l=Array.isArray(t),a=Array.isArray(o);if(l||a){if(l&&a){const d=Math.min(t.length,o.length);let m=0;for(let p=0;p<d;p++)m+=this.collectExplicitDiffPaths(t[p],o[p],[...r,p],i,n);return m}return this.pushExplicitPath(r,i,n)?1:0}const c=this.isPlainObjectValue(t),u=this.isPlainObjectValue(o);if(c||u){if(c&&u){const d=new Set([...Object.keys(t),...Object.keys(o)]);let m=0;for(const p of d)m+=this.collectExplicitDiffPaths(t[p],o[p],[...r,p],i,n);return m===0&&this.isObjectCleared(t,o)?this.pushExplicitPath(r,i,n)?1:0:m}return this.isObjectCleared(t,o)?this.pushExplicitPath(r,i,n)?1:0:this.pushExplicitPath(r,i,n)?1:0}return this.pushExplicitPath(r,i,n)?1:0}pushExplicitPath(t,o,r){if(!(t!=null&&t.length))return!1;const i=namePathToPathKey(t);return!i||r.has(i)?!1:(r.add(i),o.push([...t]),!0)}isPlainObjectValue(t){return import_lodash.default.isPlainObject(t)}isObjectCleared(t,o){return this.isPlainObjectValue(t)?!!(o==null||this.isPlainObjectValue(o)&&Object.keys(o).length===0):!1}setFormValues(t,o,r){return L(this,null,function*(){var i,n,l,a,c,u;if(this.disposed)return;const d=(i=this.getForm)==null?void 0:i.call(this);if(!d)return;const m=(n=r==null?void 0:r.source)!=null?n:"system",p=(r==null?void 0:r.triggerEvent)!==!1,h=(l=r==null?void 0:r.txId)!=null?l:createTxId(),g=(a=r==null?void 0:r.markExplicit)!=null?a:m!=="default",f=typeof(r==null?void 0:r.txId)>"u",_=m==="linkage"&&Number.isFinite(Number(r==null?void 0:r.linkageScopeDepth))?Number(r==null?void 0:r.linkageScopeDepth):0,v=m==="linkage"&&typeof(r==null?void 0:r.linkageTxId)=="string"&&r.linkageTxId?String(r.linkageTxId):void 0,b=F=>{if(m!=="linkage"||!v)return!1;const S=this.lastWriteMetaByPathKey.get(F);return!S||S.source!=="linkage"||!S.linkageTxId||S.linkageTxId!==v?!1:(Number.isFinite(Number(S.linkageScopeDepth))?Number(S.linkageScopeDepth):0)>_},C=F=>m==="linkage"?{source:m,writeSeq:F,linkageScopeDepth:_,linkageTxId:v}:{source:m,writeSeq:F},y=F=>m==="linkage"&&v?A(x({},F),{linkageTxId:v}):F;try{const F=[];if(!Array.isArray(o)){const D=Object.entries(o||{}).filter(([N])=>!b(N)),k=Object.fromEntries(D),w=D.map(([N])=>N);if(!w.length)return;w.length&&(this.writeSeq+=1),this.suppressFormCallbackDepth++;try{(c=d.setFieldsValue)==null||c.call(d,k),import_lodash.default.merge(this.valuesMirror,k),this.bumpChangeTick()}finally{this.suppressFormCallbackDepth--}const B=this.writeSeq;for(const N of w)this.lastWriteMetaByPathKey.set(N,C(B));if(g)for(const N of w)this.markExplicit(N);if(p){const N=this.getFormValuesSnapshot();this.emitFormValuesChange(y({source:m,txId:h,changedPaths:w.map(T=>[T]),changedValues:k,allValues:N,allValuesSnapshot:N}))}return}const S=new Map;let P=0;for(const D of o){const k=D==null?void 0:D.condition;if(k&&!evaluateCondition(t,k))continue;const w=this.resolveNamePath(t,D.path),B=namePathToPathKey(w),N=D.value,T=(0,import_reactive.isObservable)(N)?(0,import_reactive.toJS)(N):N;if(b(B))continue;const $=this.getFormValueAtPath(w);import_lodash.default.isEqual($,T)||(P+=1,S.set(B,{order:P,namePath:w,value:T,rawValue:N,pathKey:B}))}const j=Array.from(S.values()).sort((D,k)=>D.order-k.order).map(D=>({namePath:D.namePath,value:D.value,rawValue:D.rawValue,pathKey:D.pathKey}));if(!j.length)return;const I=this.txWriteCounts.get(h)||new Map;this.txWriteCounts.set(h,I);const M=[];for(const D of j){const k=(I.get(D.pathKey)||0)+1;I.set(D.pathKey,k),!(k>MAX_WRITES_PER_PATH_PER_TX)&&M.push(D)}if(!M.length)return;this.writeSeq+=1;const E=this.writeSeq;for(const{pathKey:D,rawValue:k}of M)if(!(0,import_reactive.isObservable)(k)){const w=this.observableBindings.get(D);w&&(w.dispose(),this.observableBindings.delete(D))}this.suppressFormCallbackDepth++;try{for(const{namePath:D,value:k}of M)(u=d.setFieldValue)==null||u.call(d,D,k),import_lodash.default.set(this.valuesMirror,D,k),F.push(D);this.bumpChangeTick()}finally{this.suppressFormCallbackDepth--}for(const{pathKey:D}of M)this.lastWriteMetaByPathKey.set(D,C(E));if(g)for(const{pathKey:D}of M)this.markExplicit(D);if(m==="default")for(const{namePath:D,pathKey:k}of M){const w=this.getFormValueAtPath(D);this.lastDefaultValueByPathKey.set(k,w)}for(const{namePath:D,rawValue:k,pathKey:w}of M){if(!(0,import_reactive.isObservable)(k))continue;const B=k,N=(0,import_reactive.observe)(B,()=>{this.applyBoundValue(t,D,w,(0,import_reactive.toJS)(B),m,_,v)}),T=this.observableBindings.get(w);T&&T.dispose(),this.observableBindings.set(w,{source:m,dispose:N})}if(p){const D=this.getFormValuesSnapshot();this.emitFormValuesChange(y({source:m,txId:h,changedPaths:F,changedValues:{},allValues:D,allValuesSnapshot:D}))}}finally{f&&this.txWriteCounts.delete(h)}})}applyBoundValue(t,o,r,i,n,l,a){var c,u;if(this.disposed)return;const d=(c=this.getForm)==null?void 0:c.call(this);if(!d)return;const m=import_lodash.default.get(this.valuesMirror,o);if(import_lodash.default.isEqual(m,i))return;this.writeSeq+=1;const p=this.writeSeq;this.suppressFormCallbackDepth++;try{(u=d.setFieldValue)==null||u.call(d,o,i),import_lodash.default.set(this.valuesMirror,o,i),this.bumpChangeTick()}finally{this.suppressFormCallbackDepth--}const h=n==="linkage"?{source:n,writeSeq:p,linkageScopeDepth:Number.isFinite(Number(l))?Number(l):0,linkageTxId:typeof a=="string"&&a?a:void 0}:{source:n,writeSeq:p};this.lastWriteMetaByPathKey.set(r,h);const g=createTxId(),f=this.getFormValuesSnapshot(),_={source:n,txId:g,changedPaths:[o],changedValues:{},allValues:f,allValuesSnapshot:f};if(n==="linkage"&&a&&(_.linkageTxId=a),this.emitFormValuesChange(_),n==="default"&&this.isExplicit(r)){const v=this.observableBindings.get(r);v&&(v.dispose(),this.observableBindings.delete(r))}n==="default"&&this.lastDefaultValueByPathKey.set(r,this.getFormValueAtPath(o))}resolveNamePath(t,o){const r=this.tryResolveNamePath(t,o);if(!r)throw new Error(`Failed to resolve path '${String(o)}'`);return r}tryResolveNamePath(t,o){var r,i,n;const l=(n=(i=(r=t==null?void 0:t.model)==null?void 0:r.context)==null?void 0:i.fieldIndex)!=null?n:t==null?void 0:t.fieldIndex;return resolveDynamicNamePath(o,l)}bumpChangeTick(){this.changeTick.value+=1}emitFormValuesChange(t){var o,r,i,n;(r=(o=this.model).dispatchEvent)==null||r.call(o,"formValuesChange",t,{debounce:!0}),(n=(i=this.model.emitter)==null?void 0:i.emit)==null||n.call(i,"formValuesChange",t)}markExplicit(t){if(!this.explicitSet.has(t)){this.explicitSet.add(t);for(const o of Array.from(this.lastDefaultValueByPathKey.keys()))(o===t||o.startsWith(`${t}.`)||o.startsWith(`${t}[`))&&this.lastDefaultValueByPathKey.delete(o);for(const[o,r]of Array.from(this.observableBindings.entries()))r.source==="default"&&this.isExplicit(o)&&(r.dispose(),this.observableBindings.delete(o))}}isExplicit(t){return!!this.findExplicitHit(t)}findExplicitHit(t){if(this.explicitSet.has(t))return t;const o=pathKeyToNamePath(t),r=[];for(let i=0;i<o.length;i++){r.push(o[i]);const n=namePathToPathKey(r);if(!(!this.explicitSet.has(n)||typeof o[i+1]=="number"))return n}return null}}function collectUpdateAssociationValuesFromAssignRules(e,t){const o=Array.isArray(e)?e:[],r=new Set,i=n=>{var l,a,c,u,d;if(!t||typeof t.getField!="function"||typeof n!="string"||!n.includes("."))return null;const m=n.split(".").filter(Boolean);if(m.length<2)return null;let p=t;const h=[];let g=null,f=null;for(let _=0;_<m.length-1;_++){const v=m[_],b=(l=p==null?void 0:p.getField)==null?void 0:l.call(p,v);if(!((a=b==null?void 0:b.isAssociationField)!=null&&a.call(b))||!(b!=null&&b.targetCollection))break;h.push(v),g=h.join("."),f=b,p=b.targetCollection}if(g&&f){const _=m[m.length-1],v=(d=(u=f==null?void 0:f.targetKey)!=null?u:(c=f==null?void 0:f.targetCollection)==null?void 0:c.filterTargetKey)!=null?d:"id",b=Array.isArray(v)?v.filter(C=>typeof C=="string"&&!!C):typeof v=="string"&&v?[v]:["id"];if(typeof _=="string"&&b.includes(_))return null}return g};for(const n of o){const l=n!=null&&n.targetPath?String(n.targetPath):"";if(!l)continue;const a=i(l);a&&r.add(a)}return Array.from(r)}function createEmptyCondition(){return{logic:"$and",items:[]}}function getPropsInitialValue(e){if(!e)return;const t=typeof e.getProps=="function"?e.getProps():e.props;if(t&&typeof t.initialValue<"u")return t.initialValue}function getStepParamsInitialValue(e,t){var o,r;if(e)return(r=(o=e.getStepParams)==null?void 0:o.call(e,t,"initialValue"))==null?void 0:r.defaultValue}function createLegacyValueExtractor(e){return t=>{if(!t)return;const o=getPropsInitialValue(t);if(typeof o<"u")return o;for(const r of e){const i=getStepParamsInitialValue(t,r);if(typeof i<"u")return i}}}function deleteStepParams(e,t,o){var r,i,n;if(!((r=e==null?void 0:e.stepParams)!=null&&r[t]))return;const l=e.stepParams[t];!l||typeof l!="object"||Object.prototype.hasOwnProperty.call(l,o)&&(delete l[o],import_lodash.default.isEmpty(l)&&delete e.stepParams[t],(n=(i=e.emitter)==null?void 0:i.emit)==null||n.call(i,"onStepParamsChanged"))}function createLegacyClearer(e){return t=>{var o;if(t){(o=t.setProps)==null||o.call(t,{initialValue:void 0}),t.props&&Object.prototype.hasOwnProperty.call(t.props,"initialValue")&&delete t.props.initialValue;for(const r of e)deleteStepParams(t,r,"initialValue")}}}function collectLegacyDefaultValueRules(e,t){var o,r,i,n,l;const a=(i=(r=(o=e==null?void 0:e.subModels)==null?void 0:o.grid)==null?void 0:r.subModels)==null?void 0:i.items,c=Array.isArray(a)?a:[],u=[];for(const d of c){const m=((l=(n=d==null?void 0:d.getStepParams)==null?void 0:n.call(d,"fieldSettings","init"))==null?void 0:l.fieldPath)||(d==null?void 0:d.fieldPath),p=m?String(m):"";if(!p)continue;const h=t(d);typeof h<"u"&&u.push({key:`legacy-default:${p}`,enable:!0,targetPath:p,mode:"default",condition:createEmptyCondition(),value:h})}return u}function mergeAssignRulesWithLegacyDefaults(e,t){var o,r;const i=Array.isArray(e)?e:[],n=Array.isArray(t)?t:[];if(!n.length)return i;const l=new Set;for(const u of i){if(!u||typeof u!="object")continue;const d=u.targetPath?String(u.targetPath):"";if(d){if(u.mode==="default"){l.add(d);continue}String((o=u.key)!=null?o:"").startsWith("legacy-default:")&&l.add(d)}}const a=new Set(i.map(u=>{var d;return String((d=u.key)!=null?d:"")})),c=[];for(const u of n){const d=u.targetPath?String(u.targetPath):"";if(!d||l.has(d))continue;const m=x({},u),p=String((r=m.key)!=null?r:"");p&&a.has(p)&&(m.key=`${p}:${d}`),c.push(m)}return c.length?[...i,...c]:i}function clearLegacyDefaultValues(e,t,o){var r,i,n;const l=(n=(i=(r=e==null?void 0:e.subModels)==null?void 0:r.grid)==null?void 0:i.subModels)==null?void 0:n.items,a=Array.isArray(l)?l:[],c=[];for(const u of a)typeof t(u)<"u"&&(o(u),c.push(u));return c}const FORM_FLOW_KEYS=["editItemSettings","formItemSettings"],getLegacyFieldInitialValue=createLegacyValueExtractor(FORM_FLOW_KEYS),clearLegacyFieldInitialValue=createLegacyClearer(FORM_FLOW_KEYS);function collectLegacyDefaultValueRulesFromFormModel(e){return collectLegacyDefaultValueRules(e,getLegacyFieldInitialValue)}function clearLegacyDefaultValuesFromFormModel(e){return clearLegacyDefaultValues(e,getLegacyFieldInitialValue,clearLegacyFieldInitialValue)}const GRID_DELEGATED_STEP_KEYS={formModelSettings:new Set(["layout","assignRules"]),eventSettings:new Set(["linkageRules"])},FLOW_KEEP_MOBILE_HORIZONTAL_CLASS="nb-flow-keep-mobile-horizontal",flowKeepMobileHorizontalClassName=import_css.css`
1815
1811
  &.${FLOW_KEEP_MOBILE_HORIZONTAL_CLASS} {
1816
1812
  @media (max-width: 575px) {
1817
1813
  .ant-form-item {
@@ -1851,7 +1847,7 @@ if (!ctx.record) {
1851
1847
  .ant-pagination-item-link {
1852
1848
  min-width: ${o}px;
1853
1849
  }
1854
- `},l,import_react2.default.createElement("div",{style:r},t)):l},applyMobilePaginationProps=(e,t)=>t?A(x({},e),{showTotal:!1,showSizeChanger:!1,showLessItems:!0,className:mergePaginationClassName(e.className,getMobileCompactPaginationClassName())}):e;class EditFormModel extends FormBlockModel{constructor(){super(...arguments),R(this,"actionFlowSettings",{showBackground:!1,showBorder:!1,toolbarPosition:"above"}),R(this,"actionExtraToolbarItems",[{key:"drag-handler",component:import_flow_engine.DragHandler,sort:1}]),R(this,"handlePageChange",t=>L(this,null,function*(){if(this.resource instanceof import_flow_engine.MultiRecordResource){const o=this.resource;o.setPage(t),o.loading=!0,yield o.refresh(),yield dispatchEventDeep(this,"paginationChange")}}))}createResource(t,o){var r,i;if(((r=this.association)==null?void 0:r.type)==="hasOne"||((i=this.association)==null?void 0:i.type)==="belongsTo"){const l=this.context.createResource(import_flow_engine.SingleRecordResource);return l.isNewRecord=!1,l}if(Object.keys(o).includes("filterByTk")){const l=this.context.createResource(import_flow_engine.SingleRecordResource);return l.isNewRecord=!1,l}const n=this.context.createResource(import_flow_engine.MultiRecordResource);return n.setPageSize(1),n}isMultiRecordResource(){return this.resource instanceof import_flow_engine.MultiRecordResource}getCurrentRecord(){const t=this.resource.getData();return Array.isArray(t)?t[0]:t}hasAvailableData(){return this.resource.hasData()}getAclActionName(){return"update"}submitHandler(t,o,r){return L(this,null,function*(){yield submitHandler(t,o,r)})}submit(){return L(this,arguments,function*(t={},o){yield submitHandler(this.context,t,o)})}renderComponent(){var t,o;const{colon:r,labelAlign:i,labelWidth:n,labelWrap:l,layout:a}=this.props,c=!!this.context.flowSettingsEnabled,u=this.hasAvailableData(),d=!c&&!u,{heightMode:m,height:p}=this.decoratorProps,h=!this.resource.loading&&!u?(0,import_jsx_runtime.jsx)("div",{style:{textAlign:"center",marginTop:16,color:(o=(t=this.context)==null?void 0:t.themeToken)==null?void 0:o.colorTextDescription},children:this.translate("No available data currently")}):this.isMultiRecordResource()&&this.resource.getMeta("count")>1?(0,import_jsx_runtime.jsx)("div",{style:{textAlign:"center",marginTop:16},children:(0,import_jsx_runtime.jsx)(import_antd.Pagination,{simple:!0,pageSize:1,showSizeChanger:!1,defaultCurrent:this.resource.getPage(),total:this.resource.getTotalPage(),onChange:this.handlePageChange,style:{display:"inline-block"}})}):null;return(0,import_jsx_runtime.jsx)(FormBlockContent,{model:this,gridModel:this.subModels.grid,layoutProps:{colon:r,labelAlign:i,labelWidth:n,labelWrap:l,layout:a},heightMode:m,height:p,grid:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,{model:this.subModels.grid,showFlowSettings:!1}),actions:(0,import_jsx_runtime.jsx)("div",{style:d?{pointerEvents:"none",opacity:.45}:void 0,children:(0,import_jsx_runtime.jsx)(import_flow_engine.DndProvider,{children:(0,import_jsx_runtime.jsxs)(import_antd.Space,{wrap:!0,children:[this.mapSubModels("actions",g=>{if(!(g.hidden&&!c))return(0,import_jsx_runtime.jsx)(import_flow_engine.Droppable,{model:g,children:(0,import_jsx_runtime.jsx)(import_flow_engine.MemoFlowModelRenderer,{model:g,showFlowSettings:this.context.flowSettingsEnabled?this.actionFlowSettings:!1,extraToolbarItems:this.actionExtraToolbarItems},g.uid)},g.uid)}),this.renderConfigureActions()]})})}),footer:h})}}R(EditFormModel,"scene",BlockSceneEnum.oam);EditFormModel.registerFlow({key:"formSettings",title:(0,import_flow_engine.tExpr)("Edit form settings"),steps:{init:{handler(e){return L(this,null,function*(){if(!e.resource)throw new Error("Resource is not initialized");e.resource.on("refresh",()=>L(this,null,function*(){var t,o,r,i,n,l;const a=e.resource.getMeta("currentFilterByTk"),c=x({},e.model.getCurrentRecord());if(!c)return;const u=(t=e.association)==null?void 0:t.targetKey;if(u&&((o=e.association)==null?void 0:o.interface)!=="m2m"?e.resource.setMeta({currentFilterByTk:c==null?void 0:c[u]}):e.resource.setMeta({currentFilterByTk:e.collection.getFilterByTK(c)}),!e.form)return;const d=e.resource.getMeta("currentFilterByTk"),m=!(0,import_lodash.isEqual)(a,d),p=(i=(r=e.model).getUserModifiedFields)==null?void 0:i.call(r),h=!!(p!=null&&p.size),g=()=>{if(!(p!=null&&p.size))return;const f=_=>_!==null&&typeof _=="object";for(const _ of Array.from(p)){const v=e.form.getFieldValue(_),b=c==null?void 0:c[_];(Object.is(v,b)||f(v)&&f(b)&&(0,import_lodash.isEqual)(v,b))&&p.delete(_)}};if(!m&&h){const f=x({},c);for(const _ of p)f[_]=e.form.getFieldValue(_);e.form.setFieldsValue(f),g();return}m&&((l=(n=e.model).resetUserModifiedFields)==null||l.call(n)),e.form.setFieldsValue(c),g()}))})}},dataScope:{use:"dataScope"},refresh:{handler(e){return L(this,null,function*(){if(!e.resource)throw new Error("Resource is not initialized")})}}}});EditFormModel.registerFlow({key:"paginationChange",on:"paginationChange",steps:{blockLinkageRulesRefresh:{use:"linkageRulesRefresh",defaultParams:{actionName:"blockLinkageRules",flowKey:"cardSettings",stepKey:"linkageRules"}},fieldsLinkageRulesRefresh:{use:"linkageRulesRefresh",defaultParams:{actionName:"fieldLinkageRules",flowKey:"eventSettings",stepKey:"linkageRules"}}}});EditFormModel.define({label:(0,import_flow_engine.tExpr)("Form (Edit)"),searchable:!0,searchPlaceholder:(0,import_flow_engine.tExpr)("Search"),createModelOptions:{use:"EditFormModel",subModels:{grid:{use:"FormGridModel"}}},sort:340});function isToManyAssociation(e){if(!e)return!1;const t=e==null?void 0:e.type;return t==="belongsToMany"||t==="hasMany"||t==="belongsToArray"}function coerceForToOneField(e,t){var o;const r=!!((o=e==null?void 0:e.isAssociationField)!=null&&o.call(e)),i=isToManyAssociation(e);return r&&!i&&Array.isArray(t)?t.length?t[0]:void 0:t}function buildDynamicNamePath(e,t){if(!(t!=null&&t.length))return e;const o=t[t.length-1],[r,i]=String(o).split(":"),n=Number(i);if(!r||!Number.isFinite(n))return e;let l=0;for(const u of t){const[d]=String(u).split(":");d===r&&(l+=1)}let a=-1,c=0;for(let u=0;u<e.length;u++)if(String(e[u])===r&&(c+=1,c===l)){a=u;break}if(a===-1){for(let u=e.length-1;u>=0;u--)if(String(e[u])===r){a=u;break}}return a===-1?e:[n,...e.slice(a+1)]}const interfacesOfUnsupportedDefaultValue=["o2o","oho","obo","o2m","attachment","expression","point","lineString","circle","polygon","sequence","formula"];class FormItemModel extends import_flow_engine.EditableItemModel{static defineChildren(t){const o=t.collection;return o.getFields().map(r=>{const i=this.getDefaultBindingByField(t,r);if(!i)return;const n=i.modelName,l=t.prefixFieldPath?`${t.prefixFieldPath}.${r.name}`:r.name;return{key:l,label:r.title,refreshTargets:["FormItemModel/FormJSFieldItemModel"],toggleable:a=>{var c;return((c=a.getStepParams("fieldSettings","init"))==null?void 0:c.fieldPath)===l},useModel:"FormItemModel",createModelOptions:()=>({use:"FormItemModel",stepParams:{fieldSettings:{init:{dataSourceKey:o.dataSourceKey,collectionName:t.model.context.blockModel.collection.name,fieldPath:l}}},subModels:{field:{use:n,props:typeof i.defaultProps=="function"?i.defaultProps(t,r):i.defaultProps}}})}}).filter(Boolean)}onInit(t){super.onInit(t),this.emitter.on("onSubModelAdded",o=>{if(this.collectionField){const r=this.collectionField.getComponentProps();o.setProps(r),this.setProps(x({},import_lodash.default.pick(r,"rules")||{}))}})}renderItem(){var t,o;const r=this.subModels.field,i=this.context.fieldIndex,n=this.context.fieldKey,l=((t=this.parent)==null?void 0:t.context.fieldPathArray)||[],a=i!=null?(()=>{const p=r.createFork({},`${n}`);p.context.defineProperty("fieldIndex",{get:()=>i}),p.context.defineProperty("fieldKey",{get:()=>n}),this.context.currentObject&&p.context.defineProperty("currentObject",{get:()=>this.context.currentObject});const h=this.context.getPropertyOptions("item");if(this.context.item){const g=h||{},f=te(g,["value"]);p.context.defineProperty("item",A(x({},f),{get:()=>this.context.item,cache:!1}))}return this.context.pattern&&p.context.defineProperty("pattern",{get:()=>this.context.pattern}),p})():r,c=this.context.pattern?A(x({},this.props),{pattern:this.context.pattern}):this.props,u=te(c,["initialValue"]),d=buildDynamicNamePath(this.props.name,i);this.context.defineProperty("fieldPathArray",{value:[...l,...import_lodash.default.castArray(d)]});const m=((o=this.context.item)==null?void 0:o.value)||this.context.record;return(0,import_jsx_runtime.jsx)(import_flow_engine.FormItem,A(x({},u),{name:d,validateFirst:!0,disabled:this.props.disabled||!import_lodash.default.isEmpty(m)&&!m.__is_new__&&this.props.aclDisabled||!import_lodash.default.isEmpty(m)&&m.__is_new__&&this.props.aclCreateDisabled,children:(0,import_jsx_runtime.jsx)(import_flow_engine.FieldModelRenderer,{model:a,name:d})}))}}FormItemModel.define({label:(0,import_flow_engine.tExpr)("Display fields"),sort:100});FormItemModel.registerFlow({key:"editItemSettings",sort:300,title:(0,import_flow_engine.tExpr)("Form item settings"),steps:{showLabel:{title:(0,import_flow_engine.tExpr)("Show label"),uiMode:{type:"switch",key:"showLabel"},defaultParams:{showLabel:!0},handler(e,t){e.model.setProps({showLabel:t.showLabel})}},label:{title:(0,import_flow_engine.tExpr)("Label"),uiSchema:e=>({label:{"x-component":"Input","x-decorator":"FormItem","x-reactions":t=>{var o;const r=e.model,i=(o=r.collectionField)==null?void 0:o.title;t.decoratorProps=A(x({},t.decoratorProps),{extra:r.context.t("Original field title: ")+i})}}}),defaultParams:e=>{var t;return{label:(t=e.collectionField)==null?void 0:t.title}},handler(e,t){var o;const r={ns:"lm-flow-engine",compareWith:(o=e.collectionField)==null?void 0:o.title};e.model.setProps({label:e.t(t.label,r)})}},aclCheck:{use:"aclCheck",handler(e,t){return L(this,null,function*(){var o,r,i,n,l,a,c,u,d,m,p,h,g,f,_;if(!e.collectionField||!e.blockModel)return;const v=e.blockModel.context.actionName,b=yield e.aclCheck({dataSourceKey:(o=e.dataSource)==null?void 0:o.key,resourceName:(r=e.collectionField)==null?void 0:r.collectionName,fields:[(i=e.collectionField)==null?void 0:i.name],actionName:v});if(v==="update"){const C=yield e.aclCheck({dataSourceKey:(n=e.dataSource)==null?void 0:n.key,resourceName:(l=e.collectionField)==null?void 0:l.collectionName,fields:[e.collectionField.name],actionName:"view"});e.prefixFieldPath&&e.item&&((yield e.aclCheck({dataSourceKey:(a=e.dataSource)==null?void 0:a.key,resourceName:(c=e.collectionField)==null?void 0:c.collectionName,fields:[e.collectionField.name],actionName:"create"}))||e.model.setProps({aclCreateDisabled:!0}));const y=(d=(u=e.item)==null?void 0:u.__is_new__)!=null?d:!1;!C&&!y&&(e.model.hidden=!0,e.model.forbidden={actionName:"view"},e.exitAll()),b||e.model.setProps({aclDisabled:!0})}else if(v==="create"){const C=yield e.aclCheck({dataSourceKey:(m=e.dataSource)==null?void 0:m.key,resourceName:(p=e.collectionField)==null?void 0:p.collectionName,actionName:"update"}),y=yield e.aclCheck({dataSourceKey:(h=e.dataSource)==null?void 0:h.key,resourceName:(g=e.collectionField)==null?void 0:g.collectionName,fields:[e.collectionField.name],actionName:"update"}),F=(_=(f=e.item)==null?void 0:f.__is_stored__)!=null?_:!1;!b&&!F&&(e.model.hidden=!0,e.model.forbidden={actionName:v},e.exitAll()),(!C||!y)&&e.model.setProps({aclDisabled:!0})}})}},init:{handler(e){return L(this,null,function*(){const t=e.model.fieldPath,o=t.includes(".")?t.split("."):t;e.model.setProps({name:o})})}},tooltip:{title:(0,import_flow_engine.tExpr)("Tooltip"),uiSchema:{tooltip:{"x-component":"Input.TextArea","x-decorator":"FormItem"}},handler(e,t){e.model.setProps({tooltip:e.t(t.tooltip,{ns:"lm-flow-engine"})})}},description:{title:(0,import_flow_engine.tExpr)("Description"),uiSchema:{description:{"x-component":"Input.TextArea","x-decorator":"FormItem","x-component-props":{autoSize:!0}}},handler(e,t){e.model.setProps({extra:e.t(t.description,{ns:"lm-flow-engine"})})}},initialValue:{title:(0,import_flow_engine.tExpr)("Default value"),disabledInSettings:!0,disabledReasonInSettings:e=>`${e.t("This setting has been moved to")}: ${e.t("Form block settings")} > ${e.t("Field values")}`,uiSchema:e=>{var t,o,r,i;if(e.model.parent.parent instanceof EditFormModel||(o=(t=e.model.subModels)==null?void 0:t.field)!=null&&o.updateAssociation)return;const n=(r=e.model.collectionField)==null?void 0:r.interface;if(!((i=interfacesOfUnsupportedDefaultValue==null?void 0:interfacesOfUnsupportedDefaultValue.includes)!=null&&i.call(interfacesOfUnsupportedDefaultValue,n)))return{defaultValue:{"x-component":"DefaultValue","x-decorator":"FormItem"}}},defaultParams:e=>{const t=e.model.collectionField;if(t.interface==="nanoid"&&t.options.autoFill!==!1){const{size:o,customAlphabet:r}=t.options||{size:21};return{defaultValue:(0,import_nanoid.customAlphabet)(r,o)()}}return{defaultValue:t.defaultValue}},handler(e,t){var o,r;const i=(o=e.model.collectionField)==null?void 0:o.interface;if((r=interfacesOfUnsupportedDefaultValue==null?void 0:interfacesOfUnsupportedDefaultValue.includes)!=null&&r.call(interfacesOfUnsupportedDefaultValue,i))return;const n=e.model.collectionField,l=coerceForToOneField(n,t.defaultValue);e.model.setProps({initialValue:l})}},validation:{title:(0,import_flow_engine.tExpr)("Validation"),use:"validation"},required:{title:(0,import_flow_engine.tExpr)("Required"),use:"required"},model:{use:"fieldComponent",title:(0,import_flow_engine.tExpr)("Field component")},pattern:{use:"pattern"},titleField:{use:"titleField",hideInSettings(e){return!e.collectionField||!e.collectionField.isAssociationField()||!(e.collectionField.isAssociationField()&&e.model.getProps().pattern==="readPretty")},defaultParams:e=>({titleField:e.model.props.titleField||e.model.context.collectionField.targetCollectionTitleFieldName}),beforeParamsSave:(e,t,o)=>L(void 0,null,function*(){if(!(e.collectionField.isAssociationField()&&e.model.getProps().pattern==="readPretty"))return null;const r=t.titleField||t.label;if(r!==o.titleField){const i=e.collectionField.targetCollection,n=i.getField(r),l=DetailsItemModel.getDefaultBindingByField(e,n);if(l.modelName!==e.model.subModels.field.use){const a=e.model.subModels.field.uid;yield e.engine.destroyModel(a),yield e.model.setSubModel("field",{use:l.modelName,stepParams:{fieldSettings:{init:{dataSourceKey:e.model.collectionField.dataSourceKey,collectionName:i.name,fieldPath:r}}}}).save()}e.model.setProps(e.collectionField.targetCollection.getField(r).getComponentProps())}}),handler(e,t){return L(this,null,function*(){e.model.props.pattern==="readPretty"?e.model.setProps({titleField:t==null?void 0:t.label}):e.model.setProps({titleField:t.titleField})})}}}});FormItemModel.registerFlow({key:"paginationChange",on:"paginationChange",steps:{aclCheckRefresh:{use:"aclCheckRefresh",defaultParams:{strategy:"formItem"}}}});class AssignFormItemModel extends FormItemModel{constructor(t){super(t),R(this,"assignValue"),(0,import_reactive.define)(this,{assignValue:import_reactive.observable})}onInit(t){var o,r,i,n,l,a,c;const u=(o=this.getStepParams("fieldSettings","assignValue"))==null?void 0:o.value;typeof u<"u"&&(this.assignValue=u),this.context.defineProperty("collectionField",{get:()=>{var f,_;const v=this.getStepParams("fieldSettings","init")||{},b=`${v==null?void 0:v.dataSourceKey}.${v==null?void 0:v.collectionName}.${v==null?void 0:v.fieldPath}`,C=(f=this.context)==null?void 0:f.dataSourceManager;return(_=C==null?void 0:C.getCollectionField)==null?void 0:_.call(C,b)}});const d=this.context,m=d==null?void 0:d.collection,p=this.fieldInit;if(!((r=this.subModels)!=null&&r.field)&&m!=null&&m.getFields){const f=(m.getFields()||[]).find(b=>(b==null?void 0:b.name)===(p==null?void 0:p.fieldPath));(i=m==null?void 0:m.getField)==null||i.call(m,p==null?void 0:p.fieldPath);const _=import_flow_engine.EditableItemModel.getDefaultBindingByField(d,f);if(!_)return;const v=_.modelName;(l=(n=d==null?void 0:d.engine)==null?void 0:n.createModel)==null||l.call(n,{use:v,stepParams:{fieldSettings:{init:p}},parentId:this.uid,subKey:"field"})}const h=(a=this.context)==null?void 0:a.collection,g=this.fieldPath;if(g){const f=(c=h==null?void 0:h.getField)==null?void 0:c.call(h,g),_=(f==null?void 0:f.title)||g,v=g.includes(".")?g.split("."):[g];this.setProps({label:_,name:v})}}get fieldInit(){return this.getStepParams("fieldSettings","init")||{}}get fieldPath(){var t;return(t=this.fieldInit)==null?void 0:t.fieldPath}getAssignedEntry(){const t=this.fieldPath;return t?[t,this.assignValue]:null}render(){var t;const o=this.context,r=o.collection,i=this.fieldInit,n=((t=this.props)==null?void 0:t.name)||(this.fieldPath?[this.fieldPath]:void 0),l=this.fieldPath;return(0,import_jsx_runtime.jsx)(()=>{var a,c,u,d,m,p,h;const[g,f]=import_react2.default.useState(null);import_react2.default.useEffect(()=>{var P,j,I,M,E,D,k,w,B,N,T,$,q,O,V,z,U,K,W,Y,Z;if(!l)return;const H=(((P=r==null?void 0:r.getFields)==null?void 0:P.call(r))||[]).find(me=>(me==null?void 0:me.name)===l);r.getField(l);const J=import_flow_engine.EditableItemModel.getDefaultBindingByField(o,H);if(!J)return;const oe=J.modelName,G=(I=(j=o==null?void 0:o.engine)==null?void 0:j.createModel)==null?void 0:I.call(j,{use:"VariableFieldFormModel",subModels:{fields:[{use:oe,stepParams:{fieldSettings:{init:i}}}]}});if(!G)return;(E=(M=G.context)==null?void 0:M.defineProperty)==null||E.call(M,"collection",{value:r});const Q=o==null?void 0:o.dataSource;Q&&((k=(D=G.context)==null?void 0:D.defineProperty)==null||k.call(D,"dataSource",{value:Q}));const X=(w=r==null?void 0:r.getField)==null?void 0:w.call(r,i==null?void 0:i.fieldPath);X&&((N=(B=G.context)==null?void 0:B.defineProperty)==null||N.call(B,"collectionField",{value:X}));const ee=o==null?void 0:o.blockModel;ee&&(($=(T=G.context)==null?void 0:T.defineProperty)==null||$.call(T,"blockModel",{value:ee}));const ie=o.form;ie&&((O=(q=G.context)==null?void 0:q.defineProperty)==null||O.call(q,"form",{value:ie})),G.context&&Object.defineProperty(G.context,"resource",{configurable:!0,enumerable:!0,get:()=>ee==null?void 0:ee.resource});const re=(z=(V=G==null?void 0:G.subModels)==null?void 0:V.fields)==null?void 0:z[0],se=(U=r==null?void 0:r.getField)==null?void 0:U.call(r,i==null?void 0:i.fieldPath),ce=se==null?void 0:se.type,ae=se==null?void 0:se.interface,ge=ce==="belongsToMany"||ce==="hasMany"||ce==="belongsToArray"||ae==="m2m"||ae==="o2m"||ae==="mbm";if((K=re==null?void 0:re.setProps)==null||K.call(re,{disabled:!1,readPretty:!1,pattern:"editable",updateAssociation:!1,multiple:ge}),(W=re==null?void 0:re.dispatchEvent)==null||W.call(re,"beforeRender",void 0,{sequential:!0,useCache:!0}),ensureOptionsFromUiSchemaEnumIfAbsent(re,se),!((Y=re==null?void 0:re.props)!=null&&Y.fieldNames)&&se!=null&&se.targetCollection){const me=se.targetCollection,fe=(se==null?void 0:se.targetKey)||(me==null?void 0:me.filterTargetKey)||"id";(Z=re==null?void 0:re.setProps)==null||Z.call(re,{fieldNames:{label:me==null?void 0:me.titleField,value:fe}})}return f(G),()=>{var me,fe,pe,xe;(pe=(fe=(me=G==null?void 0:G.subModels)==null?void 0:me.fields)==null?void 0:fe.forEach)==null||pe.call(fe,de=>{var le;return(le=de==null?void 0:de.remove)==null?void 0:le.call(de)}),(xe=G==null?void 0:G.remove)==null||xe.call(G)}},[]);const _=P=>(import_react2.default.useEffect(()=>{var j,I,M,E;if(!g)return;(j=g.setProps)==null||j.call(g,x({},P));const D=(M=(I=g==null?void 0:g.subModels)==null?void 0:I.fields)==null?void 0:M[0];D&&((E=D.setProps)==null||E.call(D,{value:P==null?void 0:P.value,onChange:(...k)=>{var w;const B=k&&k.length?k[0]:void 0;(w=P==null?void 0:P.onChange)==null||w.call(P,B)}}))},[P]),g?(0,import_jsx_runtime.jsx)("div",{style:{width:"100%"},children:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,{model:g,showFlowSettings:!1})}):null),v=()=>(0,import_jsx_runtime.jsx)(import_antd.Input,{placeholder:"<Null>",readOnly:!0,style:{width:"100%"}}),b=P=>(0,import_jsx_runtime.jsx)(RunJSValueEditor,{t:this.context.t,value:P==null?void 0:P.value,onChange:P==null?void 0:P.onChange,containerStyle:{width:"100%"}}),C={renderInputComponent:P=>{var j;const I=(j=P==null?void 0:P.paths)==null?void 0:j[0];if(I==="constant")return _;if(I==="null")return v;if(I==="runjs")return b},resolveValueFromPath:P=>{var j;const I=(j=P==null?void 0:P.paths)==null?void 0:j[0];if(I==="constant")return"";if(I==="null")return null;if(I==="runjs")return{code:"",version:"v2"}},resolvePathFromValue:P=>P===null?["null"]:(0,import_flow_engine.isRunJSValue)(P)?["runjs"]:(0,import_flow_engine.isVariableExpression)(P)?(0,import_flow_engine.parseValueToPath)(P):["constant"]},y=()=>L(this,null,function*(){var P;const j=(P=this.context)==null?void 0:P.getPropertyMetaTree,I=typeof j=="function"?yield j():[];return[{title:(0,import_flow_engine.tExpr)("Constant"),name:"constant",type:"string",paths:["constant"],render:_},{title:(0,import_flow_engine.tExpr)("Null"),name:"null",type:"object",paths:["null"],render:v},{title:(0,import_flow_engine.tExpr)("RunJS"),name:"runjs",type:"object",paths:["runjs"],render:b},...I]});let F=(u=(c=(a=this.props)==null?void 0:a.label)!=null?c:this.fieldPath)!=null?u:"";const S=(d=r==null?void 0:r.getField)==null?void 0:d.call(r,this.fieldPath);return F=(h=(p=(m=this.props)==null?void 0:m.label)!=null?p:S==null?void 0:S.title)!=null?h:F,(0,import_jsx_runtime.jsx)(import_flow_engine.FormItem,A(x({},this.props),{label:F,name:n,initialValue:this.assignValue,valuePropName:"__assign_value__",trigger:"__assign_trigger__",validateTrigger:"__assign_trigger__",children:import_react2.default.createElement(P=>{const j=P==null?void 0:P.__assign_value__,I=typeof j>"u"?this.assignValue:j;return(0,import_jsx_runtime.jsx)(import_flow_engine.VariableInput,{value:I,onChange:M=>{var E;this.assignValue=M,(E=P==null?void 0:P.__assign_trigger__)==null||E.call(P,M)},metaTree:y,converters:C,clearValue:""})})}))},{})}}AssignFormItemModel.define({label:(0,import_flow_engine.tExpr)("Assign field")});AssignFormItemModel.registerFlow({key:"editItemSettings",sort:300,title:(0,import_flow_engine.tExpr)("Form item settings"),steps:{showLabel:{title:(0,import_flow_engine.tExpr)("Show label"),uiMode:{type:"switch",key:"showLabel"},defaultParams:{showLabel:!0},handler(e,t){e.model.setProps({showLabel:t.showLabel})}},label:{title:(0,import_flow_engine.tExpr)("Label"),uiSchema:e=>({label:{"x-component":"Input","x-decorator":"FormItem","x-reactions":t=>{var o;const r=e.model,i=(o=r.collectionField)==null?void 0:o.title;t.decoratorProps=A(x({},t.decoratorProps),{extra:r.context.t("Original field title: ")+i})}}}),defaultParams:e=>({label:e.model.collectionField.title}),handler(e,t){var o;t.label&&t.label===((o=e.model.collectionField)==null?void 0:o.title)?e.model.setProps({label:t.label}):e.model.setProps({label:e.t(t.label,{ns:"lm-flow-engine"})})}},init:{handler(e){return L(this,null,function*(){const t=e.model.collectionField;t&&e.model.setProps(t.getComponentProps());const o=e.model.fieldPath,r=o.includes(".")?o.split("."):o;e.model.setProps({name:r})})}},tooltip:{title:(0,import_flow_engine.tExpr)("Tooltip"),uiSchema:{tooltip:{"x-component":"Input.TextArea","x-decorator":"FormItem"}},handler(e,t){e.model.setProps({tooltip:e.t(t.tooltip,{ns:"lm-flow-engine"})})}},description:{title:(0,import_flow_engine.tExpr)("Description"),uiSchema:{description:{"x-component":"Input.TextArea","x-decorator":"FormItem"}},handler(e,t){e.model.setProps({extra:e.t(t.description,{ns:"lm-flow-engine"})})}},validation:{title:(0,import_flow_engine.tExpr)("Validation"),use:"validation"},required:{title:(0,import_flow_engine.tExpr)("Required"),use:"required"}}});class DetailsAssociationFieldGroupModel extends AssociationFieldGroupModel{}R(DetailsAssociationFieldGroupModel,"itemModelName","DetailsItemModel");DetailsAssociationFieldGroupModel.define({label:'{{t("Display association fields")}}'});const getOuterHeight=e=>{if(!e)return 0;const t=e.getBoundingClientRect(),o=window.getComputedStyle(e),r=parseFloat(o.marginTop)||0,i=parseFloat(o.marginBottom)||0;return t.height+r+i},useDetailsGridHeight=({heightMode:e,containerRef:t,actionsRef:o,paginationRef:r,deps:i=[]})=>{const[n,l]=(0,import_react2.useState)(),a=(0,import_react2.useCallback)(()=>{if(e!=="specifyValue"&&e!=="fullHeight"){l(h=>h===void 0?h:void 0);return}const c=t.current;if(!c)return;const u=c.getBoundingClientRect().height;if(!u)return;const d=getOuterHeight(o.current),m=getOuterHeight(r.current),p=Math.max(0,Math.floor(u-d-m));l(h=>h===p?h:p)},[e,t,o,r]);return(0,import_react2.useLayoutEffect)(()=>{a()},[a,...i]),(0,import_react2.useEffect)(()=>{if(!t.current||typeof ResizeObserver>"u")return;const c=t.current,u=o.current,d=r.current,m=new ResizeObserver(()=>a());return m.observe(c),u&&m.observe(u),d&&m.observe(d),()=>m.disconnect()},[a,t,o,r,...i]),n};class DetailsBlockModel extends CollectionBlockModel{constructor(){super(...arguments),R(this,"_defaultCustomModelClasses",{RecordActionGroupModel:"RecordActionGroupModel",DetailsItemModel:"DetailsItemModel",DetailsAssociationFieldGroupModel:"DetailsAssociationFieldGroupModel",DetailsCustomItemModel:"DetailsCustomItemModel"}),R(this,"customModelClasses",{}),R(this,"handlePageChange",t=>L(this,null,function*(){if(this.resource instanceof import_flow_engine.MultiRecordResource){const o=this.resource;o.setPage(t),o.loading=!0,yield this.refresh(),yield dispatchEventDeep(this,"paginationChange")}}))}createResource(t,o){var r,i;if(((r=this.association)==null?void 0:r.type)==="hasOne"||((i=this.association)==null?void 0:i.type)==="belongsTo"){const l=this.context.createResource(import_flow_engine.SingleRecordResource);return l.isNewRecord=!1,l}if(Object.keys(o).includes("filterByTk")){const l=this.context.createResource(import_flow_engine.SingleRecordResource);return l.isNewRecord=!1,l}const n=this.context.createResource(import_flow_engine.MultiRecordResource);return n.setPageSize(1),n}onInit(t){super.onInit(t);const o=(0,import_flow_engine.createCurrentRecordMetaFactory)(this.context,()=>this.collection);this.context.defineProperty("record",{get:()=>this.getCurrentRecord(),cache:!1,resolveOnServer:(0,import_flow_engine.createRecordResolveOnServerWithLocal)(()=>this.collection,()=>this.getCurrentRecord()),meta:o})}isMultiRecordResource(){return this.resource instanceof import_flow_engine.MultiRecordResource}getCurrentRecord(){const t=this.resource.getData();return Array.isArray(t)?t[0]:t}hasAvailableData(){return this.resource.hasData()}refresh(){return L(this,null,function*(){yield this.resource.refresh()})}renderPagination(){var t,o;if(!this.resource.loading&&!this.hasAvailableData())return(0,import_jsx_runtime.jsx)("div",{style:{textAlign:"center",color:(o=(t=this.context)==null?void 0:t.themeToken)==null?void 0:o.colorTextDescription},children:this.translate("No available data currently")});const r=this.resource;return!this.isMultiRecordResource()||!r.getPage()||this.resource.getMeta("count")<=1?null:(0,import_jsx_runtime.jsx)("div",{style:{textAlign:"center"},children:(0,import_jsx_runtime.jsx)(import_antd.Pagination,{simple:!0,pageSize:1,showSizeChanger:!1,defaultCurrent:r.getPage(),total:r.getTotalPage(),onChange:this.handlePageChange,style:{display:"inline-block"}})})}renderConfigureActions(){return(0,import_jsx_runtime.jsx)(import_flow_engine.AddSubModelButton,{model:this,subModelKey:"actions",subModelBaseClass:this.getModelClassName("RecordActionGroupModel"),afterSubModelInit:t=>L(this,null,function*(){t.setStepParams("buttonSettings","general",{type:"default"})}),children:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowSettingsButton,{icon:(0,import_jsx_runtime.jsx)(import_icons.SettingOutlined,{}),children:this.translate("Actions")})},"details-actions-add")}renderComponent(){const{colon:t,labelAlign:o,labelWidth:r,labelWrap:i,layout:n}=this.props,l=!!this.context.flowSettingsEnabled,a=!l&&!this.hasAvailableData(),{heightMode:c,height:u}=this.decoratorProps;return(0,import_jsx_runtime.jsx)(DetailsBlockContent,{model:this,gridModel:this.subModels.grid,isConfigMode:l,heightMode:c,height:u,layoutProps:{colon:t,labelAlign:o,labelWidth:r,labelWrap:i,layout:n},actions:(0,import_jsx_runtime.jsx)(import_flow_engine.DndProvider,{children:(0,import_jsx_runtime.jsx)("div",{style:a?{pointerEvents:"none",opacity:.45}:void 0,children:(0,import_jsx_runtime.jsxs)(import_antd.Space,{wrap:!0,children:[this.mapSubModels("actions",d=>{if(!(d.hidden&&!l))return(0,import_jsx_runtime.jsx)(import_flow_engine.Droppable,{model:d,children:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,{model:d,showFlowSettings:{showBackground:!1,showBorder:!1,toolbarPosition:"above"},extraToolbarItems:[{key:"drag-handler",component:import_flow_engine.DragHandler,sort:1}]})},d.uid)}),this.renderConfigureActions()]})})})})}}R(DetailsBlockModel,"scene",BlockSceneEnum.oam);const DetailsBlockContent=({model:e,gridModel:t,isConfigMode:o,heightMode:r,height:i,layoutProps:n,actions:l})=>{const a=(0,import_react2.useRef)(null),c=(0,import_react2.useRef)(null),u=(0,import_react2.useRef)(null),d=r==="specifyValue"||r==="fullHeight",m=useDetailsGridHeight({heightMode:r,containerRef:a,actionsRef:c,paginationRef:u,deps:[i]});return(0,import_react2.useEffect)(()=>{var p,h;if(!t)return;const g=d?m:void 0;((p=t.props)==null?void 0:p.height)===g&&((h=t.props)==null?void 0:h.heightMode)===r||t.setProps({height:g,heightMode:r})},[t,m,d,r]),(0,import_jsx_runtime.jsx)(FormComponent,{model:e,layoutProps:n,style:d?{display:"flex",flexDirection:"column",minHeight:0,height:"100%"}:void 0,children:(0,import_jsx_runtime.jsxs)("div",{ref:a,style:d?{display:"flex",flexDirection:"column",minHeight:0,flex:1}:void 0,children:[(0,import_jsx_runtime.jsx)("div",{ref:c,style:{textAlign:"right",lineHeight:"0px",paddingBottom:o&&e.context.themeToken.padding},children:l}),(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,{model:t,showFlowSettings:!1},`${(t==null?void 0:t.uid)||"details-grid"}:${o?"design":"runtime"}`),(0,import_jsx_runtime.jsx)("div",{ref:u,children:e.renderPagination()})]})})};DetailsBlockModel.registerFlow({key:"detailsSettings",title:(0,import_flow_engine.tExpr)("Details settings"),sort:150,steps:{refresh:{handler(e){return L(this,null,function*(){if(!e.resource)throw new Error("Resource is not initialized");yield e.model.applySubModelsBeforeRenderFlows("grid")})}},layout:{use:"layout",title:(0,import_flow_engine.tExpr)("Layout")},dataScope:{use:"dataScope"},defaultSorting:{use:"sortingRule",title:(0,import_flow_engine.tExpr)("Default sorting")},linkageRules:{use:"detailsFieldLinkageRules"}}});DetailsBlockModel.registerFlow({key:"paginationChange",on:"paginationChange",steps:{blockLinkageRulesRefresh:{use:"linkageRulesRefresh",defaultParams:{actionName:"blockLinkageRules",flowKey:"cardSettings",stepKey:"linkageRules"}},fieldslinkageRulesRefresh:{use:"linkageRulesRefresh",defaultParams:{actionName:"detailsFieldLinkageRules",flowKey:"detailsSettings",stepKey:"linkageRules"}}}});DetailsBlockModel.define({label:(0,import_flow_engine.tExpr)("Details"),searchable:!0,searchPlaceholder:(0,import_flow_engine.tExpr)("Search"),createModelOptions:{use:"DetailsBlockModel",subModels:{grid:{use:"DetailsGridModel"}}},sort:350});class DetailsCustomItemModel extends import_flow_engine.FlowModel{static defineChildren(t){const o=t.engine.filterModelClassByParent("CommonItemModel"),r=t.engine.filterModelClassByParent("DetailsCustomItemModel"),i=n=>Array.from(n.entries()).map(([l,a])=>{var c,u,d,m,p,h;const g=typeof a.defineChildren=="function"||!!((c=a.meta)!=null&&c.children),f={key:l,label:t.t(a.meta.label),sort:(u=a.meta.sort)!=null?u:999,searchable:!!((d=a.meta)!=null&&d.searchable),searchPlaceholder:(m=a.meta)==null?void 0:m.searchPlaceholder,hide:(p=a.meta)==null?void 0:p.hide};return g?f.children=_=>{var v;return typeof a.defineChildren=="function"?a.defineChildren(_):((v=a.meta)==null?void 0:v.children)||[]}:f.createModelOptions=((h=a.meta)==null?void 0:h.createModelOptions)||{use:l},f});return import_lodash.default.sortBy([...i(o),...i(r)],"sort")}}R(DetailsCustomItemModel,"renderMode",import_flow_engine.ModelRenderMode.RenderFunction);DetailsCustomItemModel.define({hide:!0,label:(0,import_flow_engine.tExpr)("Others")});class DetailsGridModel extends GridModel{constructor(){super(...arguments),R(this,"itemFallback",(0,import_jsx_runtime.jsx)(import_antd.Skeleton.Input,{block:!0,size:"small",style:{marginBottom:"0.5rem"}})),R(this,"itemSettingsMenuLevel",2),R(this,"itemFlowSettings",{showBackground:!0,style:{top:-6,left:-6,right:-6,bottom:-6}}),R(this,"dragOverlayConfig",{columnInsert:{before:{offsetTop:-12,height:24},after:{offsetTop:7,height:24}},columnEdge:{left:{offsetLeft:-5,width:24},right:{offsetLeft:8,width:24}},rowGap:{above:{offsetTop:0,height:24},below:{offsetTop:-14,height:24}}})}renderAddSubModelButton(){return this.context.flowSettingsEnabled?(0,import_jsx_runtime.jsx)(import_flow_engine.AddSubModelButton,{model:this,subModelKey:"items",subModelBaseClasses:[this.context.getModelClassName("DetailsItemModel"),this.context.getModelClassName("DetailsAssociationFieldGroupModel"),this.context.getModelClassName("DetailsCustomItemModel")].filter(Boolean),keepDropdownOpen:!0,children:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowSettingsButton,{icon:(0,import_jsx_runtime.jsx)(import_icons.SettingOutlined,{}),children:this.translate("Fields")})}):null}render(){var t,o;const r=(t=this.props)==null?void 0:t.height,i=(o=this.props)==null?void 0:o.heightMode,n=this.context.themeToken,l=super.render();return i==="defaultHeight"?l:(0,import_jsx_runtime.jsx)("div",{style:{height:r,overflowY:"auto",marginLeft:`-${n.marginLG}px`,marginRight:`-${n.marginLG}px`,paddingLeft:`${n.marginLG}px`,paddingRight:`${n.marginLG}px`},children:l})}}DetailsGridModel.registerFlow({key:"detailFieldGridSettings",steps:{grid:{handler(e,t){e.model.setProps("rowGap",0),e.model.setProps("colGap",16)}}}});function transformChildrenToJS(e,t){const{fieldUseModel:o,refreshTargets:r}=t,i=n=>Array.isArray(n)?n.map(l=>{const a=x({},l);if(a.children)if(typeof a.children=="function"){const c=a.children;a.children=u=>L(this,null,function*(){const d=yield c(u);return i(d)})}else Array.isArray(a.children)&&(a.children=i(a.children));if(a.createModelOptions){const c=a.createModelOptions;a.createModelOptions=(u,d)=>L(this,null,function*(){const m=yield typeof c=="function"?c(u,d):c;return m.subModels=m.subModels||{},m.subModels.field=A(x({},m.subModels.field||{}),{use:o}),m}),a.refreshTargets=a.refreshTargets||r}return a}):[];return i(e)}function buildAssociationJSGroup(e,t,o){var r,i,n,l;const{fieldUseModel:a,refreshTargets:c}=o,u=(r=o.key)!=null?r:"js-association-fields",d=(i=o.label)!=null?i:(0,import_flow_engine.tExpr)("Display association fields"),m=(n=o.searchable)!=null?n:!0,p=(l=o.searchPlaceholder)!=null?l:(0,import_flow_engine.tExpr)("Search fields");return{key:u,type:"group",label:d,searchable:m,searchPlaceholder:p,children:h=>L(this,null,function*(){const g=yield t(h);return transformChildrenToJS(g,{fieldUseModel:a,refreshTargets:c})})}}function buildJSFieldMenuChildren(e,t){return L(this,null,function*(){var o;const{useModel:r,fieldUseModel:i,refreshTargets:n,associationPathName:l,associationProvider:a}=t,c=(0,import_flow_engine.buildWrapperFieldChildren)(e,{useModel:r,fieldUseModel:i,associationPathName:l,refreshTargets:n});let u=[];const d=(o=c==null?void 0:c[0])==null?void 0:o.children;if(Array.isArray(d)&&(u=d),!a)return u;const m=yield a(e);if(!Array.isArray(m)||m.length===0)return u;const p=buildAssociationJSGroup(e,a,{fieldUseModel:i,refreshTargets:n});return[...u,p]})}class DetailsJSFieldItemModel extends DetailsCustomItemModel{static defineChildren(t){return buildJSFieldMenuChildren(t,{useModel:"DetailsItemModel",fieldUseModel:"JSFieldModel",refreshTargets:["DetailsItemModel"],associationProvider:o=>DetailsAssociationFieldGroupModel.defineChildren(o)})}}DetailsJSFieldItemModel.define({label:(0,import_flow_engine.tExpr)("JS field"),searchable:!0,searchPlaceholder:(0,import_flow_engine.tExpr)("Search fields"),sort:110});class FilterFormFieldModel extends FieldModel{}class AssociationFieldModel extends FieldModel{constructor(){super(...arguments),R(this,"operator","$eq")}}AssociationFieldModel.registerFlow({key:"AssociationFieldInit",sort:800,steps:{init:{handler(e,t){return L(this,null,function*(){e.model.updateAssociation&&e.model.context.blockModel.context.resource.addUpdateAssociationValues(e.model.parent.fieldPath)})}},allowCreateCheck:{handler(e){return L(this,null,function*(){var t;const o=yield e.aclCheck({dataSourceKey:e.collectionField.dataSourceKey,resourceName:(t=e.collectionField)==null?void 0:t.target,actionName:"create"});e.model.setProps({allowCreate:!!o})})}}}});function buildOpenerUids(e,t={}){var o,r,i,n,l,a;const c=!!t.navigation,u=_=>{if(Array.isArray(_))return _.filter(v=>typeof v=="string"&&!!v)},d=u((r=(o=e.view)==null?void 0:o.inputArgs)==null?void 0:r.openerUids),m=u(t.openerUids),p=d||m||[];if(c)return(m||p).filter(Boolean);const h=(n=(i=e.view)==null?void 0:i.inputArgs)==null?void 0:n.viewUid,g=(a=(l=e.model.context)==null?void 0:l.inputArgs)==null?void 0:a.viewUid,f=typeof h=="string"&&h?h:typeof g=="string"&&g?g:e.model.uid;return[...p,f].filter(Boolean)}function toSafeDisplayLabel(e){var t;if(typeof e=="string"||typeof e=="number"||typeof e=="boolean")return e;if(Array.isArray(e)){const o=e.map(r=>{var i;if(typeof r=="string"||typeof r=="number"||typeof r=="boolean")return r;if(r&&typeof r=="object"){const n=(i=r.label)!=null?i:r.name;if(typeof n=="string"||typeof n=="number"||typeof n=="boolean")return n}}).filter(r=>r!==void 0);return o.length?o.map(String).join(", "):void 0}if(e&&typeof e=="object"){const o=(t=e.label)!=null?t:e.name;if(typeof o=="string"||typeof o=="number"||typeof o=="boolean")return o}}function LabelByField(e){var t,o;const{option:r,fieldNames:i}=e,n=(0,import_flow_engine.useFlowModel)(),l=n.subModels.field;if(!l)return;const a=r[i.value],c=l.createFork({},a);c.context.defineProperty("record",{get:()=>r,cache:!1,meta:(0,import_flow_engine.createCurrentRecordMetaFactory)(c.context,()=>c.context.collection)});const u=(o=(t=toSafeDisplayLabel(r==null?void 0:r[i.label]))!=null?t:toSafeDisplayLabel(r==null?void 0:r.label))!=null?o:toSafeDisplayLabel(r==null?void 0:r[i.value]),d=n.context.collectionField.targetCollection.getField(i.label),m=d&&typeof d.getComponentProps=="function"?d.getComponentProps():{};return c.setProps(x({value:u,clickToOpen:!1},m)),(0,import_jsx_runtime.jsx)("span",{style:{pointerEvents:"none"},children:u!==null&&typeof u<"u"&&u!==""?c.render():"N/A"},a)}function toSelectValue(e,t,o=!1,r="record",i=[]){if(!e)return o?[]:void 0;const{value:n}=t||{},l=c=>typeof c=="object"&&c!==null,a=c=>{if(l(c))return{label:(0,import_jsx_runtime.jsx)(LabelByField,{option:c,fieldNames:t}),value:c[n]}};if(r==="value"){const c=u=>{if(typeof u=="object"&&u!==null)return a(u);const d=i.find(m=>(m==null?void 0:m[n])===u);return d?a(d):{label:u,value:u}};return o?Array.isArray(e)?e.map(u=>c(u)).filter(Boolean):[]:Array.isArray(e)?c(e[0]):c(e)}if(o)return Array.isArray(e)?e.filter(l).map(a).filter(Boolean):[];if(Array.isArray(e)){const c=e[0];return l(c)?a(c):void 0}return l(e)?a(e):void 0}function resolveOptions(e,t,o){return e!=null&&e.length?e.map(r=>(0,import_lodash.omit)(r,"disabled","options")):o?Array.isArray(t)?t.filter(r=>typeof r=="object"&&r!==null):[]:t&&typeof t=="object"?[t]:[]}const labelClassName=import_css.css`
1850
+ `},l,import_react2.default.createElement("div",{style:r},t)):l},applyMobilePaginationProps=(e,t)=>t?A(x({},e),{showTotal:!1,showSizeChanger:!1,showLessItems:!0,className:mergePaginationClassName(e.className,getMobileCompactPaginationClassName())}):e;class EditFormModel extends FormBlockModel{constructor(){super(...arguments),R(this,"actionFlowSettings",{showBackground:!1,showBorder:!1,toolbarPosition:"above"}),R(this,"actionExtraToolbarItems",[{key:"drag-handler",component:import_flow_engine.DragHandler,sort:1}]),R(this,"handlePageChange",t=>L(this,null,function*(){if(this.resource instanceof import_flow_engine.MultiRecordResource){const o=this.resource;o.setPage(t),o.loading=!0,yield o.refresh(),yield dispatchEventDeep(this,"paginationChange")}}))}createResource(t,o){var r,i;if(((r=this.association)==null?void 0:r.type)==="hasOne"||((i=this.association)==null?void 0:i.type)==="belongsTo"){const l=this.context.createResource(import_flow_engine.SingleRecordResource);return l.isNewRecord=!1,l}if(Object.keys(o).includes("filterByTk")){const l=this.context.createResource(import_flow_engine.SingleRecordResource);return l.isNewRecord=!1,l}const n=this.context.createResource(import_flow_engine.MultiRecordResource);return n.setPageSize(1),n}isMultiRecordResource(){return this.resource instanceof import_flow_engine.MultiRecordResource}getCurrentRecord(){const t=this.resource.getData();return Array.isArray(t)?t[0]:t}hasAvailableData(){return this.resource.hasData()}getAclActionName(){return"update"}submitHandler(t,o,r){return L(this,null,function*(){yield submitHandler(t,o,r)})}submit(){return L(this,arguments,function*(t={},o){yield submitHandler(this.context,t,o)})}renderComponent(){var t,o;const{colon:r,labelAlign:i,labelWidth:n,labelWrap:l,layout:a}=this.props,c=!!this.context.flowSettingsEnabled,u=this.hasAvailableData(),d=!c&&!u,{heightMode:m,height:p}=this.decoratorProps,h=!this.resource.loading&&!u?(0,import_jsx_runtime.jsx)("div",{style:{textAlign:"center",marginTop:16,color:(o=(t=this.context)==null?void 0:t.themeToken)==null?void 0:o.colorTextDescription},children:this.translate("No available data currently")}):this.isMultiRecordResource()&&this.resource.getMeta("count")>1?(0,import_jsx_runtime.jsx)("div",{style:{textAlign:"center",marginTop:16},children:(0,import_jsx_runtime.jsx)(import_antd.Pagination,{simple:!0,pageSize:1,showSizeChanger:!1,defaultCurrent:this.resource.getPage(),total:this.resource.getTotalPage(),onChange:this.handlePageChange,style:{display:"inline-block"}})}):null;return(0,import_jsx_runtime.jsx)(FormBlockContent,{model:this,gridModel:this.subModels.grid,layoutProps:{colon:r,labelAlign:i,labelWidth:n,labelWrap:l,layout:a},heightMode:m,height:p,grid:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,{model:this.subModels.grid,showFlowSettings:!1}),actions:(0,import_jsx_runtime.jsx)("div",{style:d?{pointerEvents:"none",opacity:.45}:void 0,children:(0,import_jsx_runtime.jsx)(import_flow_engine.DndProvider,{children:(0,import_jsx_runtime.jsxs)(import_antd.Space,{wrap:!0,children:[this.mapSubModels("actions",g=>{if(!(g.hidden&&!c))return(0,import_jsx_runtime.jsx)(import_flow_engine.Droppable,{model:g,children:(0,import_jsx_runtime.jsx)(import_flow_engine.MemoFlowModelRenderer,{model:g,showFlowSettings:this.context.flowSettingsEnabled?this.actionFlowSettings:!1,extraToolbarItems:this.actionExtraToolbarItems},g.uid)},g.uid)}),this.renderConfigureActions()]})})}),footer:h})}}R(EditFormModel,"scene",BlockSceneEnum.oam),R(EditFormModel,"blockCapabilityActionName","update");EditFormModel.registerFlow({key:"formSettings",title:(0,import_flow_engine.tExpr)("Edit form settings"),steps:{init:{handler(e){return L(this,null,function*(){if(!e.resource)throw new Error("Resource is not initialized");e.resource.on("refresh",()=>L(this,null,function*(){var t,o,r,i,n,l;const a=e.resource.getMeta("currentFilterByTk"),c=x({},e.model.getCurrentRecord());if(!c)return;const u=(t=e.association)==null?void 0:t.targetKey;if(u&&((o=e.association)==null?void 0:o.interface)!=="m2m"?e.resource.setMeta({currentFilterByTk:c==null?void 0:c[u]}):e.resource.setMeta({currentFilterByTk:e.collection.getFilterByTK(c)}),!e.form)return;const d=e.resource.getMeta("currentFilterByTk"),m=!(0,import_lodash.isEqual)(a,d),p=(i=(r=e.model).getUserModifiedFields)==null?void 0:i.call(r),h=!!(p!=null&&p.size),g=()=>{if(!(p!=null&&p.size))return;const f=_=>_!==null&&typeof _=="object";for(const _ of Array.from(p)){const v=e.form.getFieldValue(_),b=c==null?void 0:c[_];(Object.is(v,b)||f(v)&&f(b)&&(0,import_lodash.isEqual)(v,b))&&p.delete(_)}};if(!m&&h){const f=x({},c);for(const _ of p)f[_]=e.form.getFieldValue(_);e.form.setFieldsValue(f),g();return}m&&((l=(n=e.model).resetUserModifiedFields)==null||l.call(n)),e.form.setFieldsValue(c),g()}))})}},dataScope:{use:"dataScope"},refresh:{handler(e){return L(this,null,function*(){if(!e.resource)throw new Error("Resource is not initialized")})}}}});EditFormModel.registerFlow({key:"paginationChange",on:"paginationChange",steps:{blockLinkageRulesRefresh:{use:"linkageRulesRefresh",defaultParams:{actionName:"blockLinkageRules",flowKey:"cardSettings",stepKey:"linkageRules"}},fieldsLinkageRulesRefresh:{use:"linkageRulesRefresh",defaultParams:{actionName:"fieldLinkageRules",flowKey:"eventSettings",stepKey:"linkageRules"}}}});EditFormModel.define({label:(0,import_flow_engine.tExpr)("Form (Edit)"),searchable:!0,searchPlaceholder:(0,import_flow_engine.tExpr)("Search"),createModelOptions:{use:"EditFormModel",subModels:{grid:{use:"FormGridModel"}}},sort:340});function isToManyAssociation(e){if(!e)return!1;const t=e==null?void 0:e.type;return t==="belongsToMany"||t==="hasMany"||t==="belongsToArray"}function coerceForToOneField(e,t){var o;const r=!!((o=e==null?void 0:e.isAssociationField)!=null&&o.call(e)),i=isToManyAssociation(e);return r&&!i&&Array.isArray(t)?t.length?t[0]:void 0:t}function buildDynamicNamePath(e,t){if(!(t!=null&&t.length))return e;const o=t[t.length-1],[r,i]=String(o).split(":"),n=Number(i);if(!r||!Number.isFinite(n))return e;let l=0;for(const u of t){const[d]=String(u).split(":");d===r&&(l+=1)}let a=-1,c=0;for(let u=0;u<e.length;u++)if(String(e[u])===r&&(c+=1,c===l)){a=u;break}if(a===-1){for(let u=e.length-1;u>=0;u--)if(String(e[u])===r){a=u;break}}return a===-1?e:[n,...e.slice(a+1)]}const interfacesOfUnsupportedDefaultValue=["o2o","oho","obo","o2m","attachment","expression","point","lineString","circle","polygon","sequence","formula"];class FormItemModel extends import_flow_engine.EditableItemModel{static defineChildren(t){const o=t.collection;return o.getFields().map(r=>{const i=this.getDefaultBindingByField(t,r);if(!i)return;const n=i.modelName,l=t.prefixFieldPath?`${t.prefixFieldPath}.${r.name}`:r.name;return{key:l,label:r.title,refreshTargets:["FormItemModel/FormJSFieldItemModel"],toggleable:a=>{var c;return((c=a.getStepParams("fieldSettings","init"))==null?void 0:c.fieldPath)===l},useModel:"FormItemModel",createModelOptions:()=>({use:"FormItemModel",stepParams:{fieldSettings:{init:{dataSourceKey:o.dataSourceKey,collectionName:t.model.context.blockModel.collection.name,fieldPath:l}}},subModels:{field:{use:n,props:typeof i.defaultProps=="function"?i.defaultProps(t,r):i.defaultProps}}})}}).filter(Boolean)}onInit(t){super.onInit(t),this.emitter.on("onSubModelAdded",o=>{if(this.collectionField){const r=this.collectionField.getComponentProps();o.setProps(r),this.setProps(x({},import_lodash.default.pick(r,"rules")||{}))}})}renderItem(){var t,o;const r=this.subModels.field,i=this.context.fieldIndex,n=this.context.fieldKey,l=((t=this.parent)==null?void 0:t.context.fieldPathArray)||[],a=i!=null?(()=>{const p=r.createFork({},`${n}`);p.context.defineProperty("fieldIndex",{get:()=>i}),p.context.defineProperty("fieldKey",{get:()=>n}),this.context.currentObject&&p.context.defineProperty("currentObject",{get:()=>this.context.currentObject});const h=this.context.getPropertyOptions("item");if(this.context.item){const g=h||{},f=te(g,["value"]);p.context.defineProperty("item",A(x({},f),{get:()=>this.context.item,cache:!1}))}return this.context.pattern&&p.context.defineProperty("pattern",{get:()=>this.context.pattern}),p})():r,c=this.context.pattern?A(x({},this.props),{pattern:this.context.pattern}):this.props,u=te(c,["initialValue"]),d=buildDynamicNamePath(this.props.name,i);this.context.defineProperty("fieldPathArray",{value:[...l,...import_lodash.default.castArray(d)]});const m=((o=this.context.item)==null?void 0:o.value)||this.context.record;return(0,import_jsx_runtime.jsx)(import_flow_engine.FormItem,A(x({},u),{name:d,validateFirst:!0,disabled:this.props.disabled||!import_lodash.default.isEmpty(m)&&!m.__is_new__&&this.props.aclDisabled||!import_lodash.default.isEmpty(m)&&m.__is_new__&&this.props.aclCreateDisabled,children:(0,import_jsx_runtime.jsx)(import_flow_engine.FieldModelRenderer,{model:a,name:d})}))}}FormItemModel.define({label:(0,import_flow_engine.tExpr)("Display fields"),sort:100});FormItemModel.registerFlow({key:"editItemSettings",sort:300,title:(0,import_flow_engine.tExpr)("Form item settings"),steps:{showLabel:{title:(0,import_flow_engine.tExpr)("Show label"),uiMode:{type:"switch",key:"showLabel"},defaultParams:{showLabel:!0},handler(e,t){e.model.setProps({showLabel:t.showLabel})}},label:{title:(0,import_flow_engine.tExpr)("Label"),uiSchema:e=>({label:{"x-component":"Input","x-decorator":"FormItem","x-reactions":t=>{var o;const r=e.model,i=(o=r.collectionField)==null?void 0:o.title;t.decoratorProps=A(x({},t.decoratorProps),{extra:r.context.t("Original field title: ")+i})}}}),defaultParams:e=>{var t;return{label:(t=e.collectionField)==null?void 0:t.title}},handler(e,t){var o;const r={ns:"lm-flow-engine",compareWith:(o=e.collectionField)==null?void 0:o.title};e.model.setProps({label:e.t(t.label,r)})}},aclCheck:{use:"aclCheck",handler(e,t){return L(this,null,function*(){var o,r,i,n,l,a,c,u,d,m,p,h,g,f,_;if(!e.collectionField||!e.blockModel)return;const v=e.blockModel.context.actionName,b=yield e.aclCheck({dataSourceKey:(o=e.dataSource)==null?void 0:o.key,resourceName:(r=e.collectionField)==null?void 0:r.collectionName,fields:[(i=e.collectionField)==null?void 0:i.name],actionName:v});if(v==="update"){const C=yield e.aclCheck({dataSourceKey:(n=e.dataSource)==null?void 0:n.key,resourceName:(l=e.collectionField)==null?void 0:l.collectionName,fields:[e.collectionField.name],actionName:"view"});e.prefixFieldPath&&e.item&&((yield e.aclCheck({dataSourceKey:(a=e.dataSource)==null?void 0:a.key,resourceName:(c=e.collectionField)==null?void 0:c.collectionName,fields:[e.collectionField.name],actionName:"create"}))||e.model.setProps({aclCreateDisabled:!0}));const y=(d=(u=e.item)==null?void 0:u.__is_new__)!=null?d:!1;!C&&!y&&(e.model.hidden=!0,e.model.forbidden={actionName:"view"},e.exitAll()),b||e.model.setProps({aclDisabled:!0})}else if(v==="create"){const C=yield e.aclCheck({dataSourceKey:(m=e.dataSource)==null?void 0:m.key,resourceName:(p=e.collectionField)==null?void 0:p.collectionName,actionName:"update"}),y=yield e.aclCheck({dataSourceKey:(h=e.dataSource)==null?void 0:h.key,resourceName:(g=e.collectionField)==null?void 0:g.collectionName,fields:[e.collectionField.name],actionName:"update"}),F=(_=(f=e.item)==null?void 0:f.__is_stored__)!=null?_:!1;!b&&!F&&(e.model.hidden=!0,e.model.forbidden={actionName:v},e.exitAll()),(!C||!y)&&e.model.setProps({aclDisabled:!0})}})}},init:{handler(e){return L(this,null,function*(){const t=e.model.fieldPath,o=t.includes(".")?t.split("."):t;e.model.setProps({name:o})})}},tooltip:{title:(0,import_flow_engine.tExpr)("Tooltip"),uiSchema:{tooltip:{"x-component":"Input.TextArea","x-decorator":"FormItem"}},handler(e,t){e.model.setProps({tooltip:e.t(t.tooltip,{ns:"lm-flow-engine"})})}},description:{title:(0,import_flow_engine.tExpr)("Description"),uiSchema:{description:{"x-component":"Input.TextArea","x-decorator":"FormItem","x-component-props":{autoSize:!0}}},handler(e,t){e.model.setProps({extra:e.t(t.description,{ns:"lm-flow-engine"})})}},initialValue:{title:(0,import_flow_engine.tExpr)("Default value"),disabledInSettings:!0,disabledReasonInSettings:e=>`${e.t("This setting has been moved to")}: ${e.t("Form block settings")} > ${e.t("Field values")}`,uiSchema:e=>{var t,o,r,i;if(e.model.parent.parent instanceof EditFormModel||(o=(t=e.model.subModels)==null?void 0:t.field)!=null&&o.updateAssociation)return;const n=(r=e.model.collectionField)==null?void 0:r.interface;if(!((i=interfacesOfUnsupportedDefaultValue==null?void 0:interfacesOfUnsupportedDefaultValue.includes)!=null&&i.call(interfacesOfUnsupportedDefaultValue,n)))return{defaultValue:{"x-component":"DefaultValue","x-decorator":"FormItem"}}},defaultParams:e=>{const t=e.model.collectionField;if(t.interface==="nanoid"&&t.options.autoFill!==!1){const{size:o,customAlphabet:r}=t.options||{size:21};return{defaultValue:(0,import_nanoid.customAlphabet)(r,o)()}}return{defaultValue:t.defaultValue}},handler(e,t){var o,r;const i=(o=e.model.collectionField)==null?void 0:o.interface;if((r=interfacesOfUnsupportedDefaultValue==null?void 0:interfacesOfUnsupportedDefaultValue.includes)!=null&&r.call(interfacesOfUnsupportedDefaultValue,i))return;const n=e.model.collectionField,l=coerceForToOneField(n,t.defaultValue);e.model.setProps({initialValue:l})}},validation:{title:(0,import_flow_engine.tExpr)("Validation"),use:"validation"},required:{title:(0,import_flow_engine.tExpr)("Required"),use:"required"},model:{use:"fieldComponent",title:(0,import_flow_engine.tExpr)("Field component")},pattern:{use:"pattern"},titleField:{use:"titleField",hideInSettings(e){return!e.collectionField||!e.collectionField.isAssociationField()||!(e.collectionField.isAssociationField()&&e.model.getProps().pattern==="readPretty")},defaultParams:e=>({titleField:e.model.props.titleField||e.model.context.collectionField.targetCollectionTitleFieldName}),beforeParamsSave:(e,t,o)=>L(void 0,null,function*(){if(!(e.collectionField.isAssociationField()&&e.model.getProps().pattern==="readPretty"))return null;const r=t.titleField||t.label;if(r!==o.titleField){const i=e.collectionField.targetCollection,n=i.getField(r),l=DetailsItemModel.getDefaultBindingByField(e,n);if(l.modelName!==e.model.subModels.field.use){const a=e.model.subModels.field.uid;yield e.engine.destroyModel(a),yield e.model.setSubModel("field",{use:l.modelName,stepParams:{fieldSettings:{init:{dataSourceKey:e.model.collectionField.dataSourceKey,collectionName:i.name,fieldPath:r}}}}).save()}e.model.setProps(e.collectionField.targetCollection.getField(r).getComponentProps())}}),handler(e,t){return L(this,null,function*(){e.model.props.pattern==="readPretty"?e.model.setProps({titleField:t==null?void 0:t.label}):e.model.setProps({titleField:t.titleField})})}}}});FormItemModel.registerFlow({key:"paginationChange",on:"paginationChange",steps:{aclCheckRefresh:{use:"aclCheckRefresh",defaultParams:{strategy:"formItem"}}}});class AssignFormItemModel extends FormItemModel{constructor(t){super(t),R(this,"assignValue"),(0,import_reactive.define)(this,{assignValue:import_reactive.observable})}onInit(t){var o,r,i,n,l,a,c;const u=(o=this.getStepParams("fieldSettings","assignValue"))==null?void 0:o.value;typeof u<"u"&&(this.assignValue=u),this.context.defineProperty("collectionField",{get:()=>{var f,_;const v=this.getStepParams("fieldSettings","init")||{},b=`${v==null?void 0:v.dataSourceKey}.${v==null?void 0:v.collectionName}.${v==null?void 0:v.fieldPath}`,C=(f=this.context)==null?void 0:f.dataSourceManager;return(_=C==null?void 0:C.getCollectionField)==null?void 0:_.call(C,b)}});const d=this.context,m=d==null?void 0:d.collection,p=this.fieldInit;if(!((r=this.subModels)!=null&&r.field)&&m!=null&&m.getFields){const f=(m.getFields()||[]).find(b=>(b==null?void 0:b.name)===(p==null?void 0:p.fieldPath));(i=m==null?void 0:m.getField)==null||i.call(m,p==null?void 0:p.fieldPath);const _=import_flow_engine.EditableItemModel.getDefaultBindingByField(d,f);if(!_)return;const v=_.modelName;(l=(n=d==null?void 0:d.engine)==null?void 0:n.createModel)==null||l.call(n,{use:v,stepParams:{fieldSettings:{init:p}},parentId:this.uid,subKey:"field"})}const h=(a=this.context)==null?void 0:a.collection,g=this.fieldPath;if(g){const f=(c=h==null?void 0:h.getField)==null?void 0:c.call(h,g),_=(f==null?void 0:f.title)||g,v=g.includes(".")?g.split("."):[g];this.setProps({label:_,name:v})}}get fieldInit(){return this.getStepParams("fieldSettings","init")||{}}get fieldPath(){var t;return(t=this.fieldInit)==null?void 0:t.fieldPath}getAssignedEntry(){const t=this.fieldPath;return t?[t,this.assignValue]:null}render(){var t;const o=this.context,r=o.collection,i=this.fieldInit,n=((t=this.props)==null?void 0:t.name)||(this.fieldPath?[this.fieldPath]:void 0),l=this.fieldPath;return(0,import_jsx_runtime.jsx)(()=>{var a,c,u,d,m,p,h;const[g,f]=import_react2.default.useState(null);import_react2.default.useEffect(()=>{var P,j,I,M,E,D,k,w,B,N,T,$,q,O,V,z,U,K,W,Y,Z;if(!l)return;const H=(((P=r==null?void 0:r.getFields)==null?void 0:P.call(r))||[]).find(me=>(me==null?void 0:me.name)===l);r.getField(l);const J=import_flow_engine.EditableItemModel.getDefaultBindingByField(o,H);if(!J)return;const oe=J.modelName,G=(I=(j=o==null?void 0:o.engine)==null?void 0:j.createModel)==null?void 0:I.call(j,{use:"VariableFieldFormModel",subModels:{fields:[{use:oe,stepParams:{fieldSettings:{init:i}}}]}});if(!G)return;(E=(M=G.context)==null?void 0:M.defineProperty)==null||E.call(M,"collection",{value:r});const Q=o==null?void 0:o.dataSource;Q&&((k=(D=G.context)==null?void 0:D.defineProperty)==null||k.call(D,"dataSource",{value:Q}));const X=(w=r==null?void 0:r.getField)==null?void 0:w.call(r,i==null?void 0:i.fieldPath);X&&((N=(B=G.context)==null?void 0:B.defineProperty)==null||N.call(B,"collectionField",{value:X}));const ee=o==null?void 0:o.blockModel;ee&&(($=(T=G.context)==null?void 0:T.defineProperty)==null||$.call(T,"blockModel",{value:ee}));const ie=o.form;ie&&((O=(q=G.context)==null?void 0:q.defineProperty)==null||O.call(q,"form",{value:ie})),G.context&&Object.defineProperty(G.context,"resource",{configurable:!0,enumerable:!0,get:()=>ee==null?void 0:ee.resource});const re=(z=(V=G==null?void 0:G.subModels)==null?void 0:V.fields)==null?void 0:z[0],se=(U=r==null?void 0:r.getField)==null?void 0:U.call(r,i==null?void 0:i.fieldPath),ce=se==null?void 0:se.type,ae=se==null?void 0:se.interface,ge=ce==="belongsToMany"||ce==="hasMany"||ce==="belongsToArray"||ae==="m2m"||ae==="o2m"||ae==="mbm";if((K=re==null?void 0:re.setProps)==null||K.call(re,{disabled:!1,readPretty:!1,pattern:"editable",updateAssociation:!1,multiple:ge}),(W=re==null?void 0:re.dispatchEvent)==null||W.call(re,"beforeRender",void 0,{sequential:!0,useCache:!0}),ensureOptionsFromUiSchemaEnumIfAbsent(re,se),!((Y=re==null?void 0:re.props)!=null&&Y.fieldNames)&&se!=null&&se.targetCollection){const me=se.targetCollection,fe=(se==null?void 0:se.targetKey)||(me==null?void 0:me.filterTargetKey)||"id";(Z=re==null?void 0:re.setProps)==null||Z.call(re,{fieldNames:{label:me==null?void 0:me.titleField,value:fe}})}return f(G),()=>{var me,fe,pe,xe;(pe=(fe=(me=G==null?void 0:G.subModels)==null?void 0:me.fields)==null?void 0:fe.forEach)==null||pe.call(fe,de=>{var le;return(le=de==null?void 0:de.remove)==null?void 0:le.call(de)}),(xe=G==null?void 0:G.remove)==null||xe.call(G)}},[]);const _=P=>(import_react2.default.useEffect(()=>{var j,I,M,E;if(!g)return;(j=g.setProps)==null||j.call(g,x({},P));const D=(M=(I=g==null?void 0:g.subModels)==null?void 0:I.fields)==null?void 0:M[0];D&&((E=D.setProps)==null||E.call(D,{value:P==null?void 0:P.value,onChange:(...k)=>{var w;const B=k&&k.length?k[0]:void 0;(w=P==null?void 0:P.onChange)==null||w.call(P,B)}}))},[P]),g?(0,import_jsx_runtime.jsx)("div",{style:{width:"100%"},children:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,{model:g,showFlowSettings:!1})}):null),v=()=>(0,import_jsx_runtime.jsx)(import_antd.Input,{placeholder:"<Null>",readOnly:!0,style:{width:"100%"}}),b=P=>(0,import_jsx_runtime.jsx)(RunJSValueEditor,{t:this.context.t,value:P==null?void 0:P.value,onChange:P==null?void 0:P.onChange,containerStyle:{width:"100%"}}),C={renderInputComponent:P=>{var j;const I=(j=P==null?void 0:P.paths)==null?void 0:j[0];if(I==="constant")return _;if(I==="null")return v;if(I==="runjs")return b},resolveValueFromPath:P=>{var j;const I=(j=P==null?void 0:P.paths)==null?void 0:j[0];if(I==="constant")return"";if(I==="null")return null;if(I==="runjs")return{code:"",version:"v2"}},resolvePathFromValue:P=>P===null?["null"]:(0,import_flow_engine.isRunJSValue)(P)?["runjs"]:(0,import_flow_engine.isVariableExpression)(P)?(0,import_flow_engine.parseValueToPath)(P):["constant"]},y=()=>L(this,null,function*(){var P;const j=(P=this.context)==null?void 0:P.getPropertyMetaTree,I=typeof j=="function"?yield j():[];return[{title:(0,import_flow_engine.tExpr)("Constant"),name:"constant",type:"string",paths:["constant"],render:_},{title:(0,import_flow_engine.tExpr)("Null"),name:"null",type:"object",paths:["null"],render:v},{title:(0,import_flow_engine.tExpr)("RunJS"),name:"runjs",type:"object",paths:["runjs"],render:b},...I]});let F=(u=(c=(a=this.props)==null?void 0:a.label)!=null?c:this.fieldPath)!=null?u:"";const S=(d=r==null?void 0:r.getField)==null?void 0:d.call(r,this.fieldPath);return F=(h=(p=(m=this.props)==null?void 0:m.label)!=null?p:S==null?void 0:S.title)!=null?h:F,(0,import_jsx_runtime.jsx)(import_flow_engine.FormItem,A(x({},this.props),{label:F,name:n,initialValue:this.assignValue,valuePropName:"__assign_value__",trigger:"__assign_trigger__",validateTrigger:"__assign_trigger__",children:import_react2.default.createElement(P=>{const j=P==null?void 0:P.__assign_value__,I=typeof j>"u"?this.assignValue:j;return(0,import_jsx_runtime.jsx)(import_flow_engine.VariableInput,{value:I,onChange:M=>{var E;this.assignValue=M,(E=P==null?void 0:P.__assign_trigger__)==null||E.call(P,M)},metaTree:y,converters:C,clearValue:""})})}))},{})}}AssignFormItemModel.define({label:(0,import_flow_engine.tExpr)("Assign field")});AssignFormItemModel.registerFlow({key:"editItemSettings",sort:300,title:(0,import_flow_engine.tExpr)("Form item settings"),steps:{showLabel:{title:(0,import_flow_engine.tExpr)("Show label"),uiMode:{type:"switch",key:"showLabel"},defaultParams:{showLabel:!0},handler(e,t){e.model.setProps({showLabel:t.showLabel})}},label:{title:(0,import_flow_engine.tExpr)("Label"),uiSchema:e=>({label:{"x-component":"Input","x-decorator":"FormItem","x-reactions":t=>{var o;const r=e.model,i=(o=r.collectionField)==null?void 0:o.title;t.decoratorProps=A(x({},t.decoratorProps),{extra:r.context.t("Original field title: ")+i})}}}),defaultParams:e=>({label:e.model.collectionField.title}),handler(e,t){var o;t.label&&t.label===((o=e.model.collectionField)==null?void 0:o.title)?e.model.setProps({label:t.label}):e.model.setProps({label:e.t(t.label,{ns:"lm-flow-engine"})})}},init:{handler(e){return L(this,null,function*(){const t=e.model.collectionField;t&&e.model.setProps(t.getComponentProps());const o=e.model.fieldPath,r=o.includes(".")?o.split("."):o;e.model.setProps({name:r})})}},tooltip:{title:(0,import_flow_engine.tExpr)("Tooltip"),uiSchema:{tooltip:{"x-component":"Input.TextArea","x-decorator":"FormItem"}},handler(e,t){e.model.setProps({tooltip:e.t(t.tooltip,{ns:"lm-flow-engine"})})}},description:{title:(0,import_flow_engine.tExpr)("Description"),uiSchema:{description:{"x-component":"Input.TextArea","x-decorator":"FormItem"}},handler(e,t){e.model.setProps({extra:e.t(t.description,{ns:"lm-flow-engine"})})}},validation:{title:(0,import_flow_engine.tExpr)("Validation"),use:"validation"},required:{title:(0,import_flow_engine.tExpr)("Required"),use:"required"}}});class DetailsAssociationFieldGroupModel extends AssociationFieldGroupModel{}R(DetailsAssociationFieldGroupModel,"itemModelName","DetailsItemModel");DetailsAssociationFieldGroupModel.define({label:'{{t("Display association fields")}}'});const getOuterHeight=e=>{if(!e)return 0;const t=e.getBoundingClientRect(),o=window.getComputedStyle(e),r=parseFloat(o.marginTop)||0,i=parseFloat(o.marginBottom)||0;return t.height+r+i},useDetailsGridHeight=({heightMode:e,containerRef:t,actionsRef:o,paginationRef:r,deps:i=[]})=>{const[n,l]=(0,import_react2.useState)(),a=(0,import_react2.useCallback)(()=>{if(e!=="specifyValue"&&e!=="fullHeight"){l(h=>h===void 0?h:void 0);return}const c=t.current;if(!c)return;const u=c.getBoundingClientRect().height;if(!u)return;const d=getOuterHeight(o.current),m=getOuterHeight(r.current),p=Math.max(0,Math.floor(u-d-m));l(h=>h===p?h:p)},[e,t,o,r]);return(0,import_react2.useLayoutEffect)(()=>{a()},[a,...i]),(0,import_react2.useEffect)(()=>{if(!t.current||typeof ResizeObserver>"u")return;const c=t.current,u=o.current,d=r.current,m=new ResizeObserver(()=>a());return m.observe(c),u&&m.observe(u),d&&m.observe(d),()=>m.disconnect()},[a,t,o,r,...i]),n};class DetailsBlockModel extends CollectionBlockModel{constructor(){super(...arguments),R(this,"_defaultCustomModelClasses",{RecordActionGroupModel:"RecordActionGroupModel",DetailsItemModel:"DetailsItemModel",DetailsAssociationFieldGroupModel:"DetailsAssociationFieldGroupModel",DetailsCustomItemModel:"DetailsCustomItemModel"}),R(this,"customModelClasses",{}),R(this,"handlePageChange",t=>L(this,null,function*(){if(this.resource instanceof import_flow_engine.MultiRecordResource){const o=this.resource;o.setPage(t),o.loading=!0,yield this.refresh(),yield dispatchEventDeep(this,"paginationChange")}}))}createResource(t,o){var r,i;if(((r=this.association)==null?void 0:r.type)==="hasOne"||((i=this.association)==null?void 0:i.type)==="belongsTo"){const l=this.context.createResource(import_flow_engine.SingleRecordResource);return l.isNewRecord=!1,l}if(Object.keys(o).includes("filterByTk")){const l=this.context.createResource(import_flow_engine.SingleRecordResource);return l.isNewRecord=!1,l}const n=this.context.createResource(import_flow_engine.MultiRecordResource);return n.setPageSize(1),n}onInit(t){super.onInit(t);const o=(0,import_flow_engine.createCurrentRecordMetaFactory)(this.context,()=>this.collection);this.context.defineProperty("record",{get:()=>this.getCurrentRecord(),cache:!1,resolveOnServer:(0,import_flow_engine.createRecordResolveOnServerWithLocal)(()=>this.collection,()=>this.getCurrentRecord()),meta:o})}isMultiRecordResource(){return this.resource instanceof import_flow_engine.MultiRecordResource}getCurrentRecord(){const t=this.resource.getData();return Array.isArray(t)?t[0]:t}hasAvailableData(){return this.resource.hasData()}refresh(){return L(this,null,function*(){yield this.resource.refresh()})}renderPagination(){var t,o;if(!this.resource.loading&&!this.hasAvailableData())return(0,import_jsx_runtime.jsx)("div",{style:{textAlign:"center",color:(o=(t=this.context)==null?void 0:t.themeToken)==null?void 0:o.colorTextDescription},children:this.translate("No available data currently")});const r=this.resource;return!this.isMultiRecordResource()||!r.getPage()||this.resource.getMeta("count")<=1?null:(0,import_jsx_runtime.jsx)("div",{style:{textAlign:"center"},children:(0,import_jsx_runtime.jsx)(import_antd.Pagination,{simple:!0,pageSize:1,showSizeChanger:!1,defaultCurrent:r.getPage(),total:r.getTotalPage(),onChange:this.handlePageChange,style:{display:"inline-block"}})})}renderConfigureActions(){return(0,import_jsx_runtime.jsx)(import_flow_engine.AddSubModelButton,{model:this,subModelKey:"actions",subModelBaseClass:this.getModelClassName("RecordActionGroupModel"),afterSubModelInit:t=>L(this,null,function*(){t.setStepParams("buttonSettings","general",{type:"default"})}),children:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowSettingsButton,{icon:(0,import_jsx_runtime.jsx)(import_icons.SettingOutlined,{}),children:this.translate("Actions")})},"details-actions-add")}renderComponent(){const{colon:t,labelAlign:o,labelWidth:r,labelWrap:i,layout:n}=this.props,l=!!this.context.flowSettingsEnabled,a=!l&&!this.hasAvailableData(),{heightMode:c,height:u}=this.decoratorProps;return(0,import_jsx_runtime.jsx)(DetailsBlockContent,{model:this,gridModel:this.subModels.grid,isConfigMode:l,heightMode:c,height:u,layoutProps:{colon:t,labelAlign:o,labelWidth:r,labelWrap:i,layout:n},actions:(0,import_jsx_runtime.jsx)(import_flow_engine.DndProvider,{children:(0,import_jsx_runtime.jsx)("div",{style:a?{pointerEvents:"none",opacity:.45}:void 0,children:(0,import_jsx_runtime.jsxs)(import_antd.Space,{wrap:!0,children:[this.mapSubModels("actions",d=>{if(!(d.hidden&&!l))return(0,import_jsx_runtime.jsx)(import_flow_engine.Droppable,{model:d,children:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,{model:d,showFlowSettings:{showBackground:!1,showBorder:!1,toolbarPosition:"above"},extraToolbarItems:[{key:"drag-handler",component:import_flow_engine.DragHandler,sort:1}]})},d.uid)}),this.renderConfigureActions()]})})})})}}R(DetailsBlockModel,"scene",BlockSceneEnum.oam);const DetailsBlockContent=({model:e,gridModel:t,isConfigMode:o,heightMode:r,height:i,layoutProps:n,actions:l})=>{const a=(0,import_react2.useRef)(null),c=(0,import_react2.useRef)(null),u=(0,import_react2.useRef)(null),d=r==="specifyValue"||r==="fullHeight",m=useDetailsGridHeight({heightMode:r,containerRef:a,actionsRef:c,paginationRef:u,deps:[i]});return(0,import_react2.useEffect)(()=>{var p,h;if(!t)return;const g=d?m:void 0;((p=t.props)==null?void 0:p.height)===g&&((h=t.props)==null?void 0:h.heightMode)===r||t.setProps({height:g,heightMode:r})},[t,m,d,r]),(0,import_jsx_runtime.jsx)(FormComponent,{model:e,layoutProps:n,style:d?{display:"flex",flexDirection:"column",minHeight:0,height:"100%"}:void 0,children:(0,import_jsx_runtime.jsxs)("div",{ref:a,style:d?{display:"flex",flexDirection:"column",minHeight:0,flex:1}:void 0,children:[(0,import_jsx_runtime.jsx)("div",{ref:c,style:{textAlign:"right",lineHeight:"0px",paddingBottom:o&&e.context.themeToken.padding},children:l}),(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,{model:t,showFlowSettings:!1},`${(t==null?void 0:t.uid)||"details-grid"}:${o?"design":"runtime"}`),(0,import_jsx_runtime.jsx)("div",{ref:u,children:e.renderPagination()})]})})};DetailsBlockModel.registerFlow({key:"detailsSettings",title:(0,import_flow_engine.tExpr)("Details settings"),sort:150,steps:{refresh:{handler(e){return L(this,null,function*(){if(!e.resource)throw new Error("Resource is not initialized");yield e.model.applySubModelsBeforeRenderFlows("grid")})}},layout:{use:"layout",title:(0,import_flow_engine.tExpr)("Layout")},dataScope:{use:"dataScope"},defaultSorting:{use:"sortingRule",title:(0,import_flow_engine.tExpr)("Default sorting")},linkageRules:{use:"detailsFieldLinkageRules"}}});DetailsBlockModel.registerFlow({key:"paginationChange",on:"paginationChange",steps:{blockLinkageRulesRefresh:{use:"linkageRulesRefresh",defaultParams:{actionName:"blockLinkageRules",flowKey:"cardSettings",stepKey:"linkageRules"}},fieldslinkageRulesRefresh:{use:"linkageRulesRefresh",defaultParams:{actionName:"detailsFieldLinkageRules",flowKey:"detailsSettings",stepKey:"linkageRules"}}}});DetailsBlockModel.define({label:(0,import_flow_engine.tExpr)("Details"),searchable:!0,searchPlaceholder:(0,import_flow_engine.tExpr)("Search"),createModelOptions:{use:"DetailsBlockModel",subModels:{grid:{use:"DetailsGridModel"}}},sort:350});class DetailsCustomItemModel extends import_flow_engine.FlowModel{static defineChildren(t){const o=t.engine.filterModelClassByParent("CommonItemModel"),r=t.engine.filterModelClassByParent("DetailsCustomItemModel"),i=n=>Array.from(n.entries()).map(([l,a])=>{var c,u,d,m,p,h;const g=typeof a.defineChildren=="function"||!!((c=a.meta)!=null&&c.children),f={key:l,label:t.t(a.meta.label),sort:(u=a.meta.sort)!=null?u:999,searchable:!!((d=a.meta)!=null&&d.searchable),searchPlaceholder:(m=a.meta)==null?void 0:m.searchPlaceholder,hide:(p=a.meta)==null?void 0:p.hide};return g?f.children=_=>{var v;return typeof a.defineChildren=="function"?a.defineChildren(_):((v=a.meta)==null?void 0:v.children)||[]}:f.createModelOptions=((h=a.meta)==null?void 0:h.createModelOptions)||{use:l},f});return import_lodash.default.sortBy([...i(o),...i(r)],"sort")}}R(DetailsCustomItemModel,"renderMode",import_flow_engine.ModelRenderMode.RenderFunction);DetailsCustomItemModel.define({hide:!0,label:(0,import_flow_engine.tExpr)("Others")});class DetailsGridModel extends GridModel{constructor(){super(...arguments),R(this,"itemFallback",(0,import_jsx_runtime.jsx)(import_antd.Skeleton.Input,{block:!0,size:"small",style:{marginBottom:"0.5rem"}})),R(this,"itemSettingsMenuLevel",2),R(this,"itemFlowSettings",{showBackground:!0,style:{top:-6,left:-6,right:-6,bottom:-6}}),R(this,"dragOverlayConfig",{columnInsert:{before:{offsetTop:-12,height:24},after:{offsetTop:7,height:24}},columnEdge:{left:{offsetLeft:-5,width:24},right:{offsetLeft:8,width:24}},rowGap:{above:{offsetTop:0,height:24},below:{offsetTop:-14,height:24}}})}renderAddSubModelButton(){return this.context.flowSettingsEnabled?(0,import_jsx_runtime.jsx)(import_flow_engine.AddSubModelButton,{model:this,subModelKey:"items",subModelBaseClasses:[this.context.getModelClassName("DetailsItemModel"),this.context.getModelClassName("DetailsAssociationFieldGroupModel"),this.context.getModelClassName("DetailsCustomItemModel")].filter(Boolean),keepDropdownOpen:!0,children:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowSettingsButton,{icon:(0,import_jsx_runtime.jsx)(import_icons.SettingOutlined,{}),children:this.translate("Fields")})}):null}render(){var t,o;const r=(t=this.props)==null?void 0:t.height,i=(o=this.props)==null?void 0:o.heightMode,n=this.context.themeToken,l=super.render();return i==="defaultHeight"?l:(0,import_jsx_runtime.jsx)("div",{style:{height:r,overflowY:"auto",marginLeft:`-${n.marginLG}px`,marginRight:`-${n.marginLG}px`,paddingLeft:`${n.marginLG}px`,paddingRight:`${n.marginLG}px`},children:l})}}DetailsGridModel.registerFlow({key:"detailFieldGridSettings",steps:{grid:{handler(e,t){e.model.setProps("rowGap",0),e.model.setProps("colGap",16)}}}});function transformChildrenToJS(e,t){const{fieldUseModel:o,refreshTargets:r}=t,i=n=>Array.isArray(n)?n.map(l=>{const a=x({},l);if(a.children)if(typeof a.children=="function"){const c=a.children;a.children=u=>L(this,null,function*(){const d=yield c(u);return i(d)})}else Array.isArray(a.children)&&(a.children=i(a.children));if(a.createModelOptions){const c=a.createModelOptions;a.createModelOptions=(u,d)=>L(this,null,function*(){const m=yield typeof c=="function"?c(u,d):c;return m.subModels=m.subModels||{},m.subModels.field=A(x({},m.subModels.field||{}),{use:o}),m}),a.refreshTargets=a.refreshTargets||r}return a}):[];return i(e)}function buildAssociationJSGroup(e,t,o){var r,i,n,l;const{fieldUseModel:a,refreshTargets:c}=o,u=(r=o.key)!=null?r:"js-association-fields",d=(i=o.label)!=null?i:(0,import_flow_engine.tExpr)("Display association fields"),m=(n=o.searchable)!=null?n:!0,p=(l=o.searchPlaceholder)!=null?l:(0,import_flow_engine.tExpr)("Search fields");return{key:u,type:"group",label:d,searchable:m,searchPlaceholder:p,children:h=>L(this,null,function*(){const g=yield t(h);return transformChildrenToJS(g,{fieldUseModel:a,refreshTargets:c})})}}function buildJSFieldMenuChildren(e,t){return L(this,null,function*(){var o;const{useModel:r,fieldUseModel:i,refreshTargets:n,associationPathName:l,associationProvider:a}=t,c=(0,import_flow_engine.buildWrapperFieldChildren)(e,{useModel:r,fieldUseModel:i,associationPathName:l,refreshTargets:n});let u=[];const d=(o=c==null?void 0:c[0])==null?void 0:o.children;if(Array.isArray(d)&&(u=d),!a)return u;const m=yield a(e);if(!Array.isArray(m)||m.length===0)return u;const p=buildAssociationJSGroup(e,a,{fieldUseModel:i,refreshTargets:n});return[...u,p]})}class DetailsJSFieldItemModel extends DetailsCustomItemModel{static defineChildren(t){return buildJSFieldMenuChildren(t,{useModel:"DetailsItemModel",fieldUseModel:"JSFieldModel",refreshTargets:["DetailsItemModel"],associationProvider:o=>DetailsAssociationFieldGroupModel.defineChildren(o)})}}DetailsJSFieldItemModel.define({label:(0,import_flow_engine.tExpr)("JS field"),searchable:!0,searchPlaceholder:(0,import_flow_engine.tExpr)("Search fields"),sort:110});class FilterFormFieldModel extends FieldModel{}class AssociationFieldModel extends FieldModel{constructor(){super(...arguments),R(this,"operator","$eq")}}AssociationFieldModel.registerFlow({key:"AssociationFieldInit",sort:800,steps:{init:{handler(e,t){return L(this,null,function*(){e.model.updateAssociation&&e.model.context.blockModel.context.resource.addUpdateAssociationValues(e.model.parent.fieldPath)})}},allowCreateCheck:{handler(e){return L(this,null,function*(){var t;const o=yield e.aclCheck({dataSourceKey:e.collectionField.dataSourceKey,resourceName:(t=e.collectionField)==null?void 0:t.target,actionName:"create"});e.model.setProps({allowCreate:!!o})})}}}});function buildOpenerUids(e,t={}){var o,r,i,n,l,a;const c=!!t.navigation,u=_=>{if(Array.isArray(_))return _.filter(v=>typeof v=="string"&&!!v)},d=u((r=(o=e.view)==null?void 0:o.inputArgs)==null?void 0:r.openerUids),m=u(t.openerUids),p=d||m||[];if(c)return(m||p).filter(Boolean);const h=(n=(i=e.view)==null?void 0:i.inputArgs)==null?void 0:n.viewUid,g=(a=(l=e.model.context)==null?void 0:l.inputArgs)==null?void 0:a.viewUid,f=typeof h=="string"&&h?h:typeof g=="string"&&g?g:e.model.uid;return[...p,f].filter(Boolean)}function toSafeDisplayLabel(e){var t;if(typeof e=="string"||typeof e=="number"||typeof e=="boolean")return e;if(Array.isArray(e)){const o=e.map(r=>{var i;if(typeof r=="string"||typeof r=="number"||typeof r=="boolean")return r;if(r&&typeof r=="object"){const n=(i=r.label)!=null?i:r.name;if(typeof n=="string"||typeof n=="number"||typeof n=="boolean")return n}}).filter(r=>r!==void 0);return o.length?o.map(String).join(", "):void 0}if(e&&typeof e=="object"){const o=(t=e.label)!=null?t:e.name;if(typeof o=="string"||typeof o=="number"||typeof o=="boolean")return o}}function LabelByField(e){var t,o;const{option:r,fieldNames:i}=e,n=(0,import_flow_engine.useFlowModel)(),l=n.subModels.field;if(!l)return;const a=r[i.value],c=l.createFork({},a);c.context.defineProperty("record",{get:()=>r,cache:!1,meta:(0,import_flow_engine.createCurrentRecordMetaFactory)(c.context,()=>c.context.collection)});const u=(o=(t=toSafeDisplayLabel(r==null?void 0:r[i.label]))!=null?t:toSafeDisplayLabel(r==null?void 0:r.label))!=null?o:toSafeDisplayLabel(r==null?void 0:r[i.value]),d=n.context.collectionField.targetCollection.getField(i.label),m=d&&typeof d.getComponentProps=="function"?d.getComponentProps():{};return c.setProps(x({value:u,clickToOpen:!1},m)),(0,import_jsx_runtime.jsx)("span",{style:{pointerEvents:"none"},children:u!==null&&typeof u<"u"&&u!==""?c.render():"N/A"},a)}function toSelectValue(e,t,o=!1,r="record",i=[]){if(!e)return o?[]:void 0;const{value:n}=t||{},l=c=>typeof c=="object"&&c!==null,a=c=>{if(l(c))return{label:(0,import_jsx_runtime.jsx)(LabelByField,{option:c,fieldNames:t}),value:c[n]}};if(r==="value"){const c=u=>{if(typeof u=="object"&&u!==null)return a(u);const d=i.find(m=>(m==null?void 0:m[n])===u);return d?a(d):{label:u,value:u}};return o?Array.isArray(e)?e.map(u=>c(u)).filter(Boolean):[]:Array.isArray(e)?c(e[0]):c(e)}if(o)return Array.isArray(e)?e.filter(l).map(a).filter(Boolean):[];if(Array.isArray(e)){const c=e[0];return l(c)?a(c):void 0}return l(e)?a(e):void 0}function resolveOptions(e,t,o){return e!=null&&e.length?e.map(r=>(0,import_lodash.omit)(r,"disabled","options")):o?Array.isArray(t)?t.filter(r=>typeof r=="object"&&r!==null):[]:t&&typeof t=="object"?[t]:[]}const labelClassName=import_css.css`
1855
1851
  div {
1856
1852
  white-space: nowrap !important;
1857
1853
  overflow: hidden;
@@ -1863,7 +1859,7 @@ if (!ctx.record) {
1863
1859
  overflow: hidden;
1864
1860
  text-overflow: ellipsis;
1865
1861
  }
1866
- `,children:E.label}),dropdownRender:E=>{const D=f.some(k=>k[o.label]===p.searchText);return(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:c==="quickAdd"&&d&&m&&p.searchText?(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[!(f.length===0&&p.searchText)&&E,f.length>0&&p.searchText&&!D&&(0,import_jsx_runtime.jsx)(import_antd.Divider,{style:{margin:0}}),!D&&(0,import_jsx_runtime.jsx)(I,{searchText:p.searchText})]}):E})}})),c==="modalAdd"&&(d&&m||S)&&(d&&m?(0,import_jsx_runtime.jsx)(import_antd.Button,{onClick:p.onModalAddClick,children:P("Add new")}):(0,import_jsx_runtime.jsx)(ActionWithoutPermission,{forbidden:{actionName:"create"},collection:_.collectionField.targetCollection,message:M,children:(0,import_jsx_runtime.jsx)(import_antd.Button,{onClick:p.onModalAddClick,disabled:!m,style:{opacity:"0.3"},children:P("Add new")})}))]})};class RecordSelectFieldModel extends AssociationFieldModel{get collectionField(){return this.context.collectionField}onInit(t){super.onInit(t),this.context.defineProperty("collection",{get:()=>{var o;return(o=this.context.collectionField)==null?void 0:o.targetCollection}}),this.setDataSource([])}set onPopupScroll(t){this.setProps({onPopupScroll:t})}set onDropdownVisibleChange(t){this.setProps({onDropdownVisibleChange:t})}set onSearch(t){this.setProps({onSearch:t})}setDataSource(t){this.setProps({options:t})}getDataSource(){return this.props.options}getFilterValue(){var t;const o=this.props.fieldNames||{label:"label",value:"value"};return Array.isArray(this.props.value)?this.props.value.map(r=>r[o.value]):(t=this.props.value)==null?void 0:t[o.value]}onMount(){this.onModalAddClick=t=>{this.dispatchEvent("openView",{event:t,onChange:this.props.onChange})},this.onDropdownAddClick=t=>{this.dispatchEvent("dropdownAdd",{search:t,onChange:this.props.onChange})}}set onModalAddClick(t){this.setProps({onModalAddClick:t})}set onDropdownAddClick(t){this.setProps({onDropdownAddClick:t})}change(t){this.props.onChange(t)}render(){return this.context.isMobileLayout?(0,import_jsx_runtime.jsx)(MobileLazySelect,A(x({},this.props),{loading:this.resource.loading})):(0,import_jsx_runtime.jsx)(LazySelect,x({},this.props))}}const paginationState$1={page:1,pageSize:40,loading:!1,hasMore:!0},getSearchGroupKey=e=>`__search__${e}`,getAssociationGroupKey=e=>`__assoc__${e}`;RecordSelectFieldModel.registerFlow({key:"eventSettings",sort:900,steps:{bindEvent:{handler(e,t){const o=e.model.props.fieldNames.label,r=getSearchGroupKey(o);e.model.onDropdownVisibleChange=i=>{i?e.model.dispatchEvent("dropdownOpen",{apiClient:e.app.apiClient,form:e.model.context.form}):(e.model.resource.removeFilterGroup(r),paginationState$1.page=1)},e.model.onPopupScroll=i=>{e.model.dispatchEvent("popupScroll",{event:i,apiClient:e.app.apiClient})},e.model.onSearch=i=>{e.model.dispatchEvent("search",{searchText:i,apiClient:e.app.apiClient})}}}}});RecordSelectFieldModel.registerFlow({key:"dropdownOpenSettings",on:"dropdownOpen",steps:{setScope:{handler(e,t){return L(this,null,function*(){const o=e.model.props.fieldNames.value,r=e.model.resource,i=e.model.getDataSource();r.setPage(1),yield e.model.applyFlow("selectSettings"),yield r.refresh();const{count:n}=r.getMeta(),l=r.getData();i&&n===i.length&&l[0][o]===i[0][o]||(e.model.setDataSource(l),e.model.setProps({searchText:null}),l.length<paginationState$1.pageSize?paginationState$1.hasMore=!1:(paginationState$1.hasMore=!0,paginationState$1.page++))})}}}});RecordSelectFieldModel.registerFlow({key:"popupScrollSettings",on:"popupScroll",steps:{step1:{handler(e,t){return L(this,null,function*(){var o;const r=(o=e.inputArgs)==null?void 0:o.event,{scrollTop:i,scrollHeight:n,clientHeight:l}=r.target;if(!(i+l<n-20)&&!(paginationState$1.loading||!paginationState$1.hasMore)){paginationState$1.loading=!0;try{const a=e.model.resource;a.setPage(paginationState$1.page),yield a.refresh();const c=a.getData(),u=e.model.getDataSource()||[];e.model.setDataSource([...u,...c]),c.length<paginationState$1.pageSize?(paginationState$1.hasMore=!1,paginationState$1.page=1):paginationState$1.page++}catch(a){console.error("Scroll pagination request failed:",a)}finally{paginationState$1.loading=!1}}})}}}});function originalHandler$1(e,t){return L(this,null,function*(){var o,r,i,n;try{const l=e.model.collectionField.targetCollection,a=e.model.props.fieldNames.label,c=l.getField(a).getInterfaceOptions(),u=((i=(r=(o=c==null?void 0:c.filterable)==null?void 0:o.operators)==null?void 0:r[0])==null?void 0:i.value)||"$includes",d=(n=e.inputArgs.searchText)==null?void 0:n.trim(),m=e.model.resource,p=`${a}.${u}`;d===""?m.removeFilterGroup(getSearchGroupKey(a)):(m.setPage(1),m.addFilterGroup(getSearchGroupKey(a),{[p]:d})),yield m.refresh();const h=m.getData();e.model.setDataSource(h),h.length<paginationState$1.pageSize?paginationState$1.hasMore=!1:(paginationState$1.hasMore=!0,paginationState$1.page++),e.model.setProps({searchText:d})}catch(l){console.error("AssociationSelectField search flow error:",l),e.model.setDataSource([])}})}const debouncedHandler$1=(0,import_lodash.debounce)(originalHandler$1,500);RecordSelectFieldModel.registerFlow({key:"searchSettings",on:"search",steps:{step1:{handler:debouncedHandler$1}}});RecordSelectFieldModel.registerFlow({key:"recordSelectSettings",sort:200,steps:{init:{handler(e){return L(this,null,function*(){var t,o,r;const i=e.createResource(import_flow_engine.MultiRecordResource),n=e.model.context.collectionField,{target:l,dataSourceKey:a,foreignKey:c}=n;i.setDataSourceKey(a),i.setResourceName(l),i.setPageSize(paginationState$1.pageSize);const u=((o=(t=e==null?void 0:e.blockModel)==null?void 0:t.constructor)==null?void 0:o.scene)===BlockSceneEnum.filter,d=["oho","o2m"].includes(n.interface),m=((r=e.item)==null?void 0:r.value)||e.record,p=m==null?void 0:m[n==null?void 0:n.sourceKey],h=[];if(!u&&p!=null&&d){const g=`${c}.$eq`;h.push({[g]:p})}if(!u&&d){const g=`${c}.$is`;h.push({[g]:null})}h.length>0&&i.addFilterGroup(getAssociationGroupKey(c),{$or:h}),e.model.resource=i})}},allowEditCheck:{handler(e){return L(this,null,function*(){var t;if(e.blockModel instanceof EditFormModel){const o=yield e.aclCheck({dataSourceKey:e.collectionField.dataSourceKey,resourceName:(t=e.collectionField)==null?void 0:t.collectionName,actionName:"update",fields:[e.collectionField.name]});e.model.setProps({allowEdit:!!o})}})}}}});RecordSelectFieldModel.registerFlow({key:"selectSettings",title:(0,import_flow_engine.tExpr)("Association select settings"),sort:800,steps:{fieldNames:{use:"titleField"},dataScope:{use:"dataScope"},sortingRule:{use:"sortingRule"},allowMultiple:{title:(0,import_flow_engine.tExpr)("Multiple"),uiMode:{type:"switch",key:"allowMultiple"},hideInSettings(e){return!e.collectionField||!["belongsToMany","hasMany","belongsToArray"].includes(e.collectionField.type)},defaultParams(e){return{allowMultiple:e.collectionField&&["belongsToMany","hasMany","belongsToArray"].includes(e.model.context.collectionField.type)}},handler(e,t){e.model.setProps({allowMultiple:t==null?void 0:t.allowMultiple})}},quickCreate:{title:(0,import_flow_engine.tExpr)("Quick create"),uiMode(e){const t=e.t;return{type:"select",key:"quickCreate",props:{options:[{label:t("None"),value:"none"},{label:t("Dropdown"),value:"quickAdd"},{label:t("Pop-up"),value:"modalAdd"}]}}},hideInSettings(e){var t,o;return((o=(t=e==null?void 0:e.blockModel)==null?void 0:t.constructor)==null?void 0:o.scene)===BlockSceneEnum.filter},defaultParams:{quickCreate:"none"},handler(e,t){e.model.setProps({quickCreate:t.quickCreate})}}}});RecordSelectFieldModel.registerFlow({key:"dropdownAdd",title:(0,import_flow_engine.tExpr)("Create record setting"),sort:900,on:{eventName:"dropdownAdd"},steps:{dropdownAdd:{handler(e,t){return L(this,null,function*(){var o,r,i;if(e.model.props.quickCreate!=="quickAdd")return null;const{onChange:n,search:l}=e.inputArgs,a=yield e.model.resource.create({[((r=(o=e.model.props)==null?void 0:o.fieldNames)==null?void 0:r.label)||"id"]:l},{refresh:!1});if(a){if(["m2m","o2m"].includes((i=e.collectionField)==null?void 0:i.interface)&&e.model.props.allowMultiple!==!1){const c=[...e.model.props.value||[],a.data].filter((u,d,m)=>d===m.findIndex(p=>p[e.collection.filterTargetKey]===u[e.collection.filterTargetKey]));n(c)}else n(a.data);e.message.success(e.t("Saved successfully")),e.model.setProps({searchText:null})}})}}}});RecordSelectFieldModel.registerFlow({key:"popupSettings",title:(0,import_flow_engine.tExpr)("Create record setting"),sort:900,on:{eventName:"openView"},steps:{openView:{title:(0,import_flow_engine.tExpr)("Edit popup"),uiSchema:e=>e.model.props.quickCreate!=="modalAdd"?null:{mode:{type:"string",title:(0,import_flow_engine.tExpr)("Open mode"),enum:[{label:(0,import_flow_engine.tExpr)("Drawer"),value:"drawer"},{label:(0,import_flow_engine.tExpr)("Dialog"),value:"dialog"}],"x-decorator":"FormItem","x-component":"Radio.Group"},size:{type:"string",title:(0,import_flow_engine.tExpr)("Popup size"),enum:[{label:(0,import_flow_engine.tExpr)("Small"),value:"small"},{label:(0,import_flow_engine.tExpr)("Medium"),value:"medium"},{label:(0,import_flow_engine.tExpr)("Large"),value:"large"}],"x-decorator":"FormItem","x-component":"Radio.Group"}},defaultParams:{mode:"drawer",size:"medium"},handler(e,t){var o,r,i,n,l,a;const{onChange:c}=e.inputArgs,u={drawer:{small:"30%",medium:"50%",large:"70%"},dialog:{small:"40%",medium:"50%",large:"80%"},embed:{}},d=e.inputArgs.mode||t.mode||"drawer",m=["belongsTo","hasOne"].includes(e.collectionField.type),p=e.inputArgs.size||t.size||"medium",h=(o=e.collectionField)==null?void 0:o.collection,g=(i=(r=e.item)==null?void 0:r.value)!=null?i:e.record,f=g?(n=h==null?void 0:h.getFilterByTK)==null?void 0:n.call(h,g):void 0,_=(l=e.collectionField)==null?void 0:l.resourceName,v=buildOpenerUids(e,e.inputArgs);e.viewer.open({type:d,width:u[d][p],inheritContext:!1,target:e.layoutContentElement,inputArgs:A(x({parentId:e.model.uid,scene:"create",dataSourceKey:e.collection.dataSourceKey,collectionName:(a=e.collectionField)==null?void 0:a.target},_&&f!=null?{associationName:_,sourceId:f}:{}),{collectionField:e.collectionField,openerUids:v,onChange:b=>{if(m||!e.model.props.allowMultiple){c(b);const C=e.model.getDataSource()||[];C.push(b),e.model.setDataSource(C)}else{const C=[...e.model.props.value||[],b].filter((F,S,P)=>S===P.findIndex(j=>j[e.collection.filterTargetKey]===F[e.collection.filterTargetKey]));c(C);const y=e.model.getDataSource()||[];e.model.setDataSource(y.concat(C))}}}),content:()=>(0,import_jsx_runtime.jsx)(CreateContent,{model:e.model}),styles:{content:x({padding:0,backgroundColor:e.model.flowEngine.context.themeToken.colorBgLayout},d==="embed"?{position:"absolute",top:0,left:0,right:0,bottom:0}:{}),body:{padding:0}}})}}}});RecordSelectFieldModel.define({label:(0,import_flow_engine.tExpr)("Dropdown select")});import_flow_engine.EditableItemModel.bindModelToInterface("RecordSelectFieldModel",["m2m","m2o","o2o","o2m","oho","obo","updatedBy","createdBy","mbm"],{isDefault:!0,order:1});class CreateFormModel extends FormBlockModel{constructor(){super(...arguments),R(this,"actionFlowSettings",{showBackground:!1,showBorder:!1,toolbarPosition:"above"}),R(this,"actionExtraToolbarItems",[{key:"drag-handler",component:import_flow_engine.DragHandler,sort:1}])}createResource(t,o){const r=this.context.createResource(import_flow_engine.SingleRecordResource);return r.isNewRecord=!0,r}getAclActionName(){return"create"}submitHandler(t,o,r){return L(this,null,function*(){yield submitHandler(t,o,r)})}submit(){return L(this,arguments,function*(t={},o){yield submitHandler(this.context,t,o)})}renderComponent(){const{colon:t,labelAlign:o,labelWidth:r,labelWrap:i,layout:n}=this.props,l=!!this.context.flowSettingsEnabled,{heightMode:a,height:c}=this.decoratorProps;return(0,import_jsx_runtime.jsx)(FormBlockContent,{model:this,gridModel:this.subModels.grid,layoutProps:{colon:t,labelAlign:o,labelWidth:r,labelWrap:i,layout:n},heightMode:a,height:c,grid:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,{model:this.subModels.grid,showFlowSettings:!1}),actions:(0,import_jsx_runtime.jsx)(import_flow_engine.DndProvider,{children:(0,import_jsx_runtime.jsxs)(import_antd.Space,{wrap:!0,children:[this.mapSubModels("actions",u=>{if(!(u.hidden&&!l))return(0,import_jsx_runtime.jsx)(import_flow_engine.Droppable,{model:u,children:(0,import_jsx_runtime.jsx)(import_flow_engine.MemoFlowModelRenderer,{model:u,showFlowSettings:this.context.flowSettingsEnabled?this.actionFlowSettings:!1,extraToolbarItems:this.actionExtraToolbarItems},u.uid)},u.uid)}),this.renderConfigureActions()]})})})}}R(CreateFormModel,"scene",BlockSceneEnum.new);CreateFormModel.registerFlow({key:"formSettings",title:(0,import_flow_engine.tExpr)("Form settings"),steps:{init:{handler(e){return L(this,null,function*(){if(!e.resource)throw new Error("Resource is not initialized")})}},refresh:{}}});CreateFormModel.define({label:(0,import_flow_engine.tExpr)("Form (Add new)"),searchable:!0,searchPlaceholder:(0,import_flow_engine.tExpr)("Search"),createModelOptions:{use:"CreateFormModel",subModels:{grid:{use:"FormGridModel"}}},sort:350});class FormActionModel extends ActionModel{}class FormSubmitActionModel extends FormActionModel{constructor(){super(...arguments),R(this,"defaultProps",{title:(0,import_flow_engine.tExpr)("Submit"),type:"primary",htmlType:"submit"})}setSaveRequestConfig(t){this.setStepParams("submitSettings","saveResource",{requestConfig:t})}}FormSubmitActionModel.define({label:(0,import_flow_engine.tExpr)("Submit")});FormSubmitActionModel.registerFlow({key:"submitSettings",on:"click",title:(0,import_flow_engine.tExpr)("Submit action settings"),steps:{confirm:{use:"confirm",defaultParams:{enable:!1,title:(0,import_flow_engine.tExpr)("Submit record"),content:(0,import_flow_engine.tExpr)("Are you sure you want to save it?")},handler(e,t){return L(this,null,function*(){if(t.enable)try{const o=e!=null&&e.flowSettingsEnabled?getValidationNamePathsExcludingHiddenModels(e.blockModel):null;Array.isArray(o)?o.length&&(yield e.form.validateFields(o)):yield e.form.validateFields(),(yield e.modal.confirm({title:e.t(t.title,{ns:"lm-flow-engine"}),content:e.t(t.content,{ns:"lm-flow-engine"}),okText:e.t("Confirm"),cancelText:e.t("Cancel")}))||e.exit()}catch{e.exit()}})}},saveResource:{handler(e,t){return L(this,null,function*(){if(!(e!=null&&e.resource))throw new Error("Resource is not initialized");if(!e.blockModel)throw new Error("Block model is not initialized");try{e.model.setProps("loading",!0),yield submitHandler(e,t),e.message.success(e.t("Saved successfully")),e.model.setProps("loading",!1)}catch(o){e.model.setProps("loading",!1),e.message.error(e.t("Save failed")),console.error("Form submission error:",o),e.exit()}finally{e.model.setProps("loading",!1)}})}},refreshAndClose:{handler(e){return L(this,null,function*(){e.view&&e.view.close()})}}}});class FormActionGroupModel extends ActionGroupModel{}R(FormActionGroupModel,"baseClass",FormActionModel);class FormCustomItemModel extends import_flow_engine.FlowModel{static defineChildren(t){const o=t.engine.filterModelClassByParent("CommonItemModel"),r=t.engine.filterModelClassByParent("FormCustomItemModel"),i=n=>Array.from(n.entries()).map(([l,a])=>{var c,u,d,m,p,h;const g=typeof a.defineChildren=="function"||!!((c=a.meta)!=null&&c.children),f={key:l,label:t.t(a.meta.label),sort:(u=a.meta.sort)!=null?u:999,searchable:!!((d=a.meta)!=null&&d.searchable),searchPlaceholder:(m=a.meta)==null?void 0:m.searchPlaceholder,hide:(p=a.meta)==null?void 0:p.hide};return g?f.children=_=>{var v;return typeof a.defineChildren=="function"?a.defineChildren(_):((v=a.meta)==null?void 0:v.children)||[]}:f.createModelOptions=((h=a.meta)==null?void 0:h.createModelOptions)||{use:l},f});return import_lodash.default.sortBy([...i(o),...i(r)],"sort")}}R(FormCustomItemModel,"renderMode",import_flow_engine.ModelRenderMode.RenderFunction);FormCustomItemModel.define({hide:!0,label:(0,import_flow_engine.tExpr)("Others")});class FormJSFieldItemModel extends import_flow_engine.FlowModel{static defineChildren(t){return buildJSFieldMenuChildren(t,{useModel:"FormItemModel",fieldUseModel:"JSEditableFieldModel",associationPathName:t.prefixFieldPath,refreshTargets:["FormItemModel","FilterFormItemModel"]})}}FormJSFieldItemModel.define({label:(0,import_flow_engine.tExpr)("JS field"),searchable:!0,searchPlaceholder:(0,import_flow_engine.tExpr)("Search fields"),menuType:"submenu",sort:110});class JSFormActionModel extends FormActionModel{}JSFormActionModel.define({label:(0,import_flow_engine.tExpr)("JS action"),sort:9999});JSFormActionModel.registerFlow({key:"clickSettings",on:"click",title:(0,import_flow_engine.tExpr)("Click settings"),steps:{runJs:{title:(0,import_flow_engine.tExpr)("Write JavaScript"),useRawParams:!0,uiSchema:{code:{type:"string","x-component":CodeEditor,"x-component-props":{minHeight:"320px",theme:"light",enableLinter:!0,wrapperStyle:{position:"fixed",inset:8}}}},uiMode:{type:"embed",props:{styles:{body:{transform:"translateX(0)"}}}},defaultParams(e){return{version:"v2",code:`
1862
+ `,children:E.label}),dropdownRender:E=>{const D=f.some(k=>k[o.label]===p.searchText);return(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:c==="quickAdd"&&d&&m&&p.searchText?(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[!(f.length===0&&p.searchText)&&E,f.length>0&&p.searchText&&!D&&(0,import_jsx_runtime.jsx)(import_antd.Divider,{style:{margin:0}}),!D&&(0,import_jsx_runtime.jsx)(I,{searchText:p.searchText})]}):E})}})),c==="modalAdd"&&(d&&m||S)&&(d&&m?(0,import_jsx_runtime.jsx)(import_antd.Button,{onClick:p.onModalAddClick,children:P("Add new")}):(0,import_jsx_runtime.jsx)(ActionWithoutPermission,{forbidden:{actionName:"create"},collection:_.collectionField.targetCollection,message:M,children:(0,import_jsx_runtime.jsx)(import_antd.Button,{onClick:p.onModalAddClick,disabled:!m,style:{opacity:"0.3"},children:P("Add new")})}))]})};class RecordSelectFieldModel extends AssociationFieldModel{get collectionField(){return this.context.collectionField}onInit(t){super.onInit(t),this.context.defineProperty("collection",{get:()=>{var o;return(o=this.context.collectionField)==null?void 0:o.targetCollection}}),this.setDataSource([])}set onPopupScroll(t){this.setProps({onPopupScroll:t})}set onDropdownVisibleChange(t){this.setProps({onDropdownVisibleChange:t})}set onSearch(t){this.setProps({onSearch:t})}setDataSource(t){this.setProps({options:t})}getDataSource(){return this.props.options}getFilterValue(){var t;const o=this.props.fieldNames||{label:"label",value:"value"};return Array.isArray(this.props.value)?this.props.value.map(r=>r[o.value]):(t=this.props.value)==null?void 0:t[o.value]}onMount(){this.onModalAddClick=t=>{this.dispatchEvent("openView",{event:t,onChange:this.props.onChange})},this.onDropdownAddClick=t=>{this.dispatchEvent("dropdownAdd",{search:t,onChange:this.props.onChange})}}set onModalAddClick(t){this.setProps({onModalAddClick:t})}set onDropdownAddClick(t){this.setProps({onDropdownAddClick:t})}change(t){this.props.onChange(t)}render(){return this.context.isMobileLayout?(0,import_jsx_runtime.jsx)(MobileLazySelect,A(x({},this.props),{loading:this.resource.loading})):(0,import_jsx_runtime.jsx)(LazySelect,x({},this.props))}}const paginationState$1={page:1,pageSize:40,loading:!1,hasMore:!0},getSearchGroupKey=e=>`__search__${e}`,getAssociationGroupKey=e=>`__assoc__${e}`;RecordSelectFieldModel.registerFlow({key:"eventSettings",sort:900,steps:{bindEvent:{handler(e,t){const o=e.model.props.fieldNames.label,r=getSearchGroupKey(o);e.model.onDropdownVisibleChange=i=>{i?e.model.dispatchEvent("dropdownOpen",{apiClient:e.app.apiClient,form:e.model.context.form}):(e.model.resource.removeFilterGroup(r),paginationState$1.page=1)},e.model.onPopupScroll=i=>{e.model.dispatchEvent("popupScroll",{event:i,apiClient:e.app.apiClient})},e.model.onSearch=i=>{e.model.dispatchEvent("search",{searchText:i,apiClient:e.app.apiClient})}}}}});RecordSelectFieldModel.registerFlow({key:"dropdownOpenSettings",on:"dropdownOpen",steps:{setScope:{handler(e,t){return L(this,null,function*(){const o=e.model.props.fieldNames.value,r=e.model.resource,i=e.model.getDataSource();r.setPage(1),yield e.model.applyFlow("selectSettings"),yield r.refresh();const{count:n}=r.getMeta(),l=r.getData();i&&n===i.length&&l[0][o]===i[0][o]||(e.model.setDataSource(l),e.model.setProps({searchText:null}),l.length<paginationState$1.pageSize?paginationState$1.hasMore=!1:(paginationState$1.hasMore=!0,paginationState$1.page++))})}}}});RecordSelectFieldModel.registerFlow({key:"popupScrollSettings",on:"popupScroll",steps:{step1:{handler(e,t){return L(this,null,function*(){var o;const r=(o=e.inputArgs)==null?void 0:o.event,{scrollTop:i,scrollHeight:n,clientHeight:l}=r.target;if(!(i+l<n-20)&&!(paginationState$1.loading||!paginationState$1.hasMore)){paginationState$1.loading=!0;try{const a=e.model.resource;a.setPage(paginationState$1.page),yield a.refresh();const c=a.getData(),u=e.model.getDataSource()||[];e.model.setDataSource([...u,...c]),c.length<paginationState$1.pageSize?(paginationState$1.hasMore=!1,paginationState$1.page=1):paginationState$1.page++}catch(a){console.error("Scroll pagination request failed:",a)}finally{paginationState$1.loading=!1}}})}}}});function originalHandler$1(e,t){return L(this,null,function*(){var o,r,i,n;try{const l=e.model.collectionField.targetCollection,a=e.model.props.fieldNames.label,c=l.getField(a).getInterfaceOptions(),u=((i=(r=(o=c==null?void 0:c.filterable)==null?void 0:o.operators)==null?void 0:r[0])==null?void 0:i.value)||"$includes",d=(n=e.inputArgs.searchText)==null?void 0:n.trim(),m=e.model.resource,p=`${a}.${u}`;d===""?m.removeFilterGroup(getSearchGroupKey(a)):(m.setPage(1),m.addFilterGroup(getSearchGroupKey(a),{[p]:d})),yield m.refresh();const h=m.getData();e.model.setDataSource(h),h.length<paginationState$1.pageSize?paginationState$1.hasMore=!1:(paginationState$1.hasMore=!0,paginationState$1.page++),e.model.setProps({searchText:d})}catch(l){console.error("AssociationSelectField search flow error:",l),e.model.setDataSource([])}})}const debouncedHandler$1=(0,import_lodash.debounce)(originalHandler$1,500);RecordSelectFieldModel.registerFlow({key:"searchSettings",on:"search",steps:{step1:{handler:debouncedHandler$1}}});RecordSelectFieldModel.registerFlow({key:"recordSelectSettings",sort:200,steps:{init:{handler(e){return L(this,null,function*(){var t,o,r;const i=e.createResource(import_flow_engine.MultiRecordResource),n=e.model.context.collectionField,{target:l,dataSourceKey:a,foreignKey:c}=n;i.setDataSourceKey(a),i.setResourceName(l),i.setPageSize(paginationState$1.pageSize);const u=((o=(t=e==null?void 0:e.blockModel)==null?void 0:t.constructor)==null?void 0:o.scene)===BlockSceneEnum.filter,d=["oho","o2m"].includes(n.interface),m=((r=e.item)==null?void 0:r.value)||e.record,p=m==null?void 0:m[n==null?void 0:n.sourceKey],h=[];if(!u&&p!=null&&d){const g=`${c}.$eq`;h.push({[g]:p})}if(!u&&d){const g=`${c}.$is`;h.push({[g]:null})}h.length>0&&i.addFilterGroup(getAssociationGroupKey(c),{$or:h}),e.model.resource=i})}},allowEditCheck:{handler(e){return L(this,null,function*(){var t;if(e.blockModel instanceof EditFormModel){const o=yield e.aclCheck({dataSourceKey:e.collectionField.dataSourceKey,resourceName:(t=e.collectionField)==null?void 0:t.collectionName,actionName:"update",fields:[e.collectionField.name]});e.model.setProps({allowEdit:!!o})}})}}}});RecordSelectFieldModel.registerFlow({key:"selectSettings",title:(0,import_flow_engine.tExpr)("Association select settings"),sort:800,steps:{fieldNames:{use:"titleField"},dataScope:{use:"dataScope"},sortingRule:{use:"sortingRule"},allowMultiple:{title:(0,import_flow_engine.tExpr)("Multiple"),uiMode:{type:"switch",key:"allowMultiple"},hideInSettings(e){return!e.collectionField||!["belongsToMany","hasMany","belongsToArray"].includes(e.collectionField.type)},defaultParams(e){return{allowMultiple:e.collectionField&&["belongsToMany","hasMany","belongsToArray"].includes(e.model.context.collectionField.type)}},handler(e,t){e.model.setProps({allowMultiple:t==null?void 0:t.allowMultiple})}},quickCreate:{title:(0,import_flow_engine.tExpr)("Quick create"),uiMode(e){const t=e.t;return{type:"select",key:"quickCreate",props:{options:[{label:t("None"),value:"none"},{label:t("Dropdown"),value:"quickAdd"},{label:t("Pop-up"),value:"modalAdd"}]}}},hideInSettings(e){var t,o;return((o=(t=e==null?void 0:e.blockModel)==null?void 0:t.constructor)==null?void 0:o.scene)===BlockSceneEnum.filter},defaultParams:{quickCreate:"none"},handler(e,t){e.model.setProps({quickCreate:t.quickCreate})}}}});RecordSelectFieldModel.registerFlow({key:"dropdownAdd",title:(0,import_flow_engine.tExpr)("Create record setting"),sort:900,on:{eventName:"dropdownAdd"},steps:{dropdownAdd:{handler(e,t){return L(this,null,function*(){var o,r,i;if(e.model.props.quickCreate!=="quickAdd")return null;const{onChange:n,search:l}=e.inputArgs,a=yield e.model.resource.create({[((r=(o=e.model.props)==null?void 0:o.fieldNames)==null?void 0:r.label)||"id"]:l},{refresh:!1});if(a){if(["m2m","o2m"].includes((i=e.collectionField)==null?void 0:i.interface)&&e.model.props.allowMultiple!==!1){const c=[...e.model.props.value||[],a.data].filter((u,d,m)=>d===m.findIndex(p=>p[e.collection.filterTargetKey]===u[e.collection.filterTargetKey]));n(c)}else n(a.data);e.message.success(e.t("Saved successfully")),e.model.setProps({searchText:null})}})}}}});RecordSelectFieldModel.registerFlow({key:"popupSettings",title:(0,import_flow_engine.tExpr)("Create record setting"),sort:900,on:{eventName:"openView"},steps:{openView:{title:(0,import_flow_engine.tExpr)("Edit popup"),uiSchema:e=>e.model.props.quickCreate!=="modalAdd"?null:{mode:{type:"string",title:(0,import_flow_engine.tExpr)("Open mode"),enum:[{label:(0,import_flow_engine.tExpr)("Drawer"),value:"drawer"},{label:(0,import_flow_engine.tExpr)("Dialog"),value:"dialog"}],"x-decorator":"FormItem","x-component":"Radio.Group"},size:{type:"string",title:(0,import_flow_engine.tExpr)("Popup size"),enum:[{label:(0,import_flow_engine.tExpr)("Small"),value:"small"},{label:(0,import_flow_engine.tExpr)("Medium"),value:"medium"},{label:(0,import_flow_engine.tExpr)("Large"),value:"large"}],"x-decorator":"FormItem","x-component":"Radio.Group"}},defaultParams:{mode:"drawer",size:"medium"},handler(e,t){var o,r,i,n,l,a;const{onChange:c}=e.inputArgs,u={drawer:{small:"30%",medium:"50%",large:"70%"},dialog:{small:"40%",medium:"50%",large:"80%"},embed:{}},d=e.inputArgs.mode||t.mode||"drawer",m=["belongsTo","hasOne"].includes(e.collectionField.type),p=e.inputArgs.size||t.size||"medium",h=(o=e.collectionField)==null?void 0:o.collection,g=(i=(r=e.item)==null?void 0:r.value)!=null?i:e.record,f=g?(n=h==null?void 0:h.getFilterByTK)==null?void 0:n.call(h,g):void 0,_=(l=e.collectionField)==null?void 0:l.resourceName,v=buildOpenerUids(e,e.inputArgs);e.viewer.open({type:d,width:u[d][p],inheritContext:!1,target:e.layoutContentElement,inputArgs:A(x({parentId:e.model.uid,scene:"create",dataSourceKey:e.collection.dataSourceKey,collectionName:(a=e.collectionField)==null?void 0:a.target},_&&f!=null?{associationName:_,sourceId:f}:{}),{collectionField:e.collectionField,openerUids:v,onChange:b=>{if(m||!e.model.props.allowMultiple){c(b);const C=e.model.getDataSource()||[];C.push(b),e.model.setDataSource(C)}else{const C=[...e.model.props.value||[],b].filter((F,S,P)=>S===P.findIndex(j=>j[e.collection.filterTargetKey]===F[e.collection.filterTargetKey]));c(C);const y=e.model.getDataSource()||[];e.model.setDataSource(y.concat(C))}}}),content:()=>(0,import_jsx_runtime.jsx)(CreateContent,{model:e.model}),styles:{content:x({padding:0,backgroundColor:e.model.flowEngine.context.themeToken.colorBgLayout},d==="embed"?{position:"absolute",top:0,left:0,right:0,bottom:0}:{}),body:{padding:0}}})}}}});RecordSelectFieldModel.define({label:(0,import_flow_engine.tExpr)("Dropdown select")});import_flow_engine.EditableItemModel.bindModelToInterface("RecordSelectFieldModel",["m2m","m2o","o2o","o2m","oho","obo","updatedBy","createdBy","mbm"],{isDefault:!0,order:1});class CreateFormModel extends FormBlockModel{constructor(){super(...arguments),R(this,"actionFlowSettings",{showBackground:!1,showBorder:!1,toolbarPosition:"above"}),R(this,"actionExtraToolbarItems",[{key:"drag-handler",component:import_flow_engine.DragHandler,sort:1}])}createResource(t,o){const r=this.context.createResource(import_flow_engine.SingleRecordResource);return r.isNewRecord=!0,r}getAclActionName(){return"create"}submitHandler(t,o,r){return L(this,null,function*(){yield submitHandler(t,o,r)})}submit(){return L(this,arguments,function*(t={},o){yield submitHandler(this.context,t,o)})}renderComponent(){const{colon:t,labelAlign:o,labelWidth:r,labelWrap:i,layout:n}=this.props,l=!!this.context.flowSettingsEnabled,{heightMode:a,height:c}=this.decoratorProps;return(0,import_jsx_runtime.jsx)(FormBlockContent,{model:this,gridModel:this.subModels.grid,layoutProps:{colon:t,labelAlign:o,labelWidth:r,labelWrap:i,layout:n},heightMode:a,height:c,grid:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,{model:this.subModels.grid,showFlowSettings:!1}),actions:(0,import_jsx_runtime.jsx)(import_flow_engine.DndProvider,{children:(0,import_jsx_runtime.jsxs)(import_antd.Space,{wrap:!0,children:[this.mapSubModels("actions",u=>{if(!(u.hidden&&!l))return(0,import_jsx_runtime.jsx)(import_flow_engine.Droppable,{model:u,children:(0,import_jsx_runtime.jsx)(import_flow_engine.MemoFlowModelRenderer,{model:u,showFlowSettings:this.context.flowSettingsEnabled?this.actionFlowSettings:!1,extraToolbarItems:this.actionExtraToolbarItems},u.uid)},u.uid)}),this.renderConfigureActions()]})})})}}R(CreateFormModel,"scene",BlockSceneEnum.new),R(CreateFormModel,"blockCapabilityActionName","create");CreateFormModel.registerFlow({key:"formSettings",title:(0,import_flow_engine.tExpr)("Form settings"),steps:{init:{handler(e){return L(this,null,function*(){if(!e.resource)throw new Error("Resource is not initialized")})}},refresh:{}}});CreateFormModel.define({label:(0,import_flow_engine.tExpr)("Form (Add new)"),searchable:!0,searchPlaceholder:(0,import_flow_engine.tExpr)("Search"),createModelOptions:{use:"CreateFormModel",subModels:{grid:{use:"FormGridModel"}}},sort:350});class FormActionModel extends ActionModel{}class FormSubmitActionModel extends FormActionModel{constructor(){super(...arguments),R(this,"defaultProps",{title:(0,import_flow_engine.tExpr)("Submit"),type:"primary",htmlType:"submit"})}setSaveRequestConfig(t){this.setStepParams("submitSettings","saveResource",{requestConfig:t})}}FormSubmitActionModel.define({label:(0,import_flow_engine.tExpr)("Submit")});FormSubmitActionModel.registerFlow({key:"submitSettings",on:"click",title:(0,import_flow_engine.tExpr)("Submit action settings"),steps:{confirm:{use:"confirm",defaultParams:{enable:!1,title:(0,import_flow_engine.tExpr)("Submit record"),content:(0,import_flow_engine.tExpr)("Are you sure you want to save it?")},handler(e,t){return L(this,null,function*(){if(t.enable)try{const o=e!=null&&e.flowSettingsEnabled?getValidationNamePathsExcludingHiddenModels(e.blockModel):null;Array.isArray(o)?o.length&&(yield e.form.validateFields(o)):yield e.form.validateFields(),(yield e.modal.confirm({title:e.t(t.title,{ns:"lm-flow-engine"}),content:e.t(t.content,{ns:"lm-flow-engine"}),okText:e.t("Confirm"),cancelText:e.t("Cancel")}))||e.exit()}catch{e.exit()}})}},saveResource:{handler(e,t){return L(this,null,function*(){if(!(e!=null&&e.resource))throw new Error("Resource is not initialized");if(!e.blockModel)throw new Error("Block model is not initialized");try{e.model.setProps("loading",!0),yield submitHandler(e,t),e.message.success(e.t("Saved successfully")),e.model.setProps("loading",!1)}catch(o){e.model.setProps("loading",!1),e.message.error(e.t("Save failed")),console.error("Form submission error:",o),e.exit()}finally{e.model.setProps("loading",!1)}})}},refreshAndClose:{handler(e){return L(this,null,function*(){e.view&&e.view.close()})}}}});class FormActionGroupModel extends ActionGroupModel{}R(FormActionGroupModel,"baseClass",FormActionModel);class FormCustomItemModel extends import_flow_engine.FlowModel{static defineChildren(t){const o=t.engine.filterModelClassByParent("CommonItemModel"),r=t.engine.filterModelClassByParent("FormCustomItemModel"),i=n=>Array.from(n.entries()).map(([l,a])=>{var c,u,d,m,p,h;const g=typeof a.defineChildren=="function"||!!((c=a.meta)!=null&&c.children),f={key:l,label:t.t(a.meta.label),sort:(u=a.meta.sort)!=null?u:999,searchable:!!((d=a.meta)!=null&&d.searchable),searchPlaceholder:(m=a.meta)==null?void 0:m.searchPlaceholder,hide:(p=a.meta)==null?void 0:p.hide};return g?f.children=_=>{var v;return typeof a.defineChildren=="function"?a.defineChildren(_):((v=a.meta)==null?void 0:v.children)||[]}:f.createModelOptions=((h=a.meta)==null?void 0:h.createModelOptions)||{use:l},f});return import_lodash.default.sortBy([...i(o),...i(r)],"sort")}}R(FormCustomItemModel,"renderMode",import_flow_engine.ModelRenderMode.RenderFunction);FormCustomItemModel.define({hide:!0,label:(0,import_flow_engine.tExpr)("Others")});class FormJSFieldItemModel extends import_flow_engine.FlowModel{static defineChildren(t){return buildJSFieldMenuChildren(t,{useModel:"FormItemModel",fieldUseModel:"JSEditableFieldModel",associationPathName:t.prefixFieldPath,refreshTargets:["FormItemModel","FilterFormItemModel"]})}}FormJSFieldItemModel.define({label:(0,import_flow_engine.tExpr)("JS field"),searchable:!0,searchPlaceholder:(0,import_flow_engine.tExpr)("Search fields"),menuType:"submenu",sort:110});class JSFormActionModel extends FormActionModel{}JSFormActionModel.define({label:(0,import_flow_engine.tExpr)("JS action"),sort:9999});JSFormActionModel.registerFlow({key:"clickSettings",on:"click",title:(0,import_flow_engine.tExpr)("Click settings"),steps:{runJs:{title:(0,import_flow_engine.tExpr)("Write JavaScript"),useRawParams:!0,uiSchema:{code:{type:"string","x-component":CodeEditor,"x-component-props":{minHeight:"320px",theme:"light",enableLinter:!0,wrapperStyle:{position:"fixed",inset:8}}}},uiMode:{type:"embed",props:{styles:{body:{transform:"translateX(0)"}}}},defaultParams(e){return{version:"v2",code:`
1867
1863
  const values = ctx.form?.getFieldsValue?.() || {};
1868
1864
  ctx.message.success('Current form values: ' + JSON.stringify(values));
1869
1865
  `}},handler(e,t){return L(this,null,function*(){const{code:o,version:r}=resolveRunJsParams(e,t);e.defineMethod("refresh",()=>L(this,null,function*(){var n,l,a;(l=(n=e.blockModel)==null?void 0:n.resource)!=null&&l.refresh?yield e.blockModel.resource.refresh():(a=e.resource)!=null&&a.refresh&&(yield e.resource.refresh())}));const i=(0,import_flow_engine.createSafeNavigator)();yield e.runjs(o,{window:(0,import_flow_engine.createSafeWindow)({navigator:i}),document:(0,import_flow_engine.createSafeDocument)(),navigator:i},{version:r})})}}}});class QuickEditFormModel extends import_flow_engine.FlowModel{constructor(){super(...arguments),R(this,"fieldPath"),R(this,"now",Date.now()),R(this,"viewContainer"),R(this,"__onSubmitSuccess"),R(this,"_fieldProps"),R(this,"_onOk")}get form(){return this.context.form}useHooksBeforeRender(){const[t]=import_antd.Form.useForm();this.context.defineProperty("form",{get:()=>t})}static open(t){return L(this,null,function*(){const{flowEngine:o,target:r,dataSourceKey:i,collectionName:n,fieldPath:l,filterByTk:a,record:c,onSuccess:u,fieldProps:d,onOk:m,sourceFieldModelUid:p}=t,h=o.createModel({use:"QuickEditFormModel",stepParams:{quickEditFormSettings:{init:{dataSourceKey:i,collectionName:n,fieldPath:l}}}});console.log("QuickEditFormModel.open2",Date.now()-h.now),h.now=Date.now(),yield o.context.viewer.open({type:"popover",target:r,placement:"rightTop",styles:{body:{width:400}},content:g=>(h.viewContainer=g,h.__onSubmitSuccess=u,h._fieldProps=d,h._onOk=m,console.log("QuickEditFormModel.open3",Date.now()-h.now),(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,{fallback:(0,import_jsx_runtime.jsx)(import_antd.Skeleton.Input,{size:"small"}),model:h,inputArgs:{filterByTk:a,record:c,sourceFieldModelUid:p}}))})})}onInit(t){super.onInit(t),this.context.defineProperty("blockModel",{value:this});const o=(0,import_flow_engine.createCurrentRecordMetaFactory)(this.context,()=>this.collection);this.context.defineProperty("record",{get:()=>this.resource.getData(),cache:!1,resolveOnServer:(0,import_flow_engine.createRecordResolveOnServerWithLocal)(()=>this.collection,()=>this.resource.getData()),meta:o}),this.context.defineProperty("collection",{get:()=>this.collection})}addAppends(t,o=!1){const r=this.context.dataSourceManager.getCollectionField(`${this.collection.dataSourceKey}.${this.collection.name}.${t}`);r&&r.isAssociationField()&&(this.resource.addAppends(t),o&&this.resource.refresh())}render(){return console.log("QuickEditFormModel.open4",Date.now()-this.now),(0,import_jsx_runtime.jsxs)(FormComponent,{model:this,children:[this.mapSubModels("fields",t=>{var o;return(0,import_jsx_runtime.jsx)(import_flow_engine.FormItem,A(x({showLabel:!1,name:this.fieldPath,initialValue:(o=this.context.record)==null?void 0:o[this.fieldPath]},this.props),{children:(0,import_jsx_runtime.jsx)(import_flow_engine.FieldModelRenderer,{model:t,fallback:(0,import_jsx_runtime.jsx)(import_antd.Skeleton.Input,{size:"small"})})}),t.uid)}),(0,import_jsx_runtime.jsxs)(import_antd.Space,{style:{display:"flex",justifyContent:"flex-end"},children:[(0,import_jsx_runtime.jsx)(import_antd.Button,{onClick:()=>{this.viewContainer.close()},children:this.context.t("Cancel")}),(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"primary",htmlType:"submit",onClick:()=>L(this,null,function*(){var t,o,r;const i=this.form.getFieldsValue();yield this.form.submit();const n=x({},i),l={[this.fieldPath]:(t=this.resource.getData())==null?void 0:t[this.fieldPath]};if(this._onOk)this._onOk(n),this.viewContainer.close();else try{yield this.resource.save(n,{refresh:!1}),(o=this.__onSubmitSuccess)==null||o.call(this,n),this.viewContainer.close(),this.context.message.success(this.context.t("Saved successfully"))}catch(a){console.error("Failed to save form data:",a),this.context.message.error(this.context.t("Failed to save form data")),(r=this.__onSubmitSuccess)==null||r.call(this,l)}}),children:this.context.t("Submit")})]})]})}}QuickEditFormModel.registerFlow({key:"quickEditFormSettings",sort:100,steps:{init:{handler(e,t){return L(this,null,function*(){var o;const{dataSourceKey:r,collectionName:i,fieldPath:n}=t;if(!r||!i||!n)throw new Error("dataSourceKey, collectionName and fieldPath are required parameters");e.model.fieldPath=n,e.model.collection=e.dataSourceManager.getCollection(r,i);const l=e.createResource(import_flow_engine.SingleRecordResource);l.setDataSourceKey(r),l.setResourceName(i),e.model.resource=l;const a=e.model.collection.getField(n);if(a){const c=FormItemModel.getDefaultBindingByField(e,a);if(!c)return;const u=c.modelName,d=e.model.addSubModel("fields",{use:u,props:typeof c.defaultProps=="function"?c.defaultProps(e,a):c.defaultProps,stepParams:{fieldSettings:{init:{dataSourceKey:r,collectionName:i,fieldPath:n}}}});d.setProps(x(x({},a.getComponentProps()),e.model._fieldProps)),d.setProps({sourceFieldModelUid:e.inputArgs.sourceFieldModelUid}),e.model.context.defineProperty("collectionField",{get:()=>a}),e.model.addAppends(n),yield d.dispatchEvent("beforeRender")}(e.inputArgs.filterByTk||e.inputArgs.record)&&(l.setFilterByTk(e.inputArgs.filterByTk),l.setData(e.inputArgs.record),(o=e.model.form)==null||o.setFieldsValue(l.getData()))})}}}});QuickEditFormModel.define({hide:!0});class FormAssociationFieldGroupModel extends AssociationFieldGroupModel{}R(FormAssociationFieldGroupModel,"itemModelName","FormAssociationItemModel");FormAssociationFieldGroupModel.define({label:'{{t("Display association fields")}}'});const useJsonTemplateResolver=(e,t=[])=>{const o=(0,import_flow_engine.useFlowContext)();return(0,import_ahooks.useRequest)(()=>L(void 0,null,function*(){return yield o.resolveJsonTemplate(e)}),{refreshDeps:t})};function mergeArrays(e,t){if(!t)return e;const o=[...e];return t.forEach(r=>{const[i,n]=r.split(":");if(o.includes(i)){const l=o.indexOf(i),a=Number(n);o.splice(l+1,0,Number.isFinite(a)?a:n)}}),o}function buildAssociationRefreshKey(e,t){var o,r;if(e==null)return e;const i=typeof e;if(i==="string"||i==="number"||i==="boolean")return e;if(i==="bigint")return String(e);if(Array.isArray(e))return e.map(n=>{const l=buildAssociationRefreshKey(n,t);return l==null?"":String(l)}).join(",");if(i==="object"){const n=(0,import_lodash.castArray)(t).filter(Boolean);if(n.length===1){const a=buildAssociationRefreshKey((0,import_lodash.get)(e,n[0]));if(a!==void 0)return a}if(n.length>1)return JSON.stringify(n.map(a=>{var c;return(c=buildAssociationRefreshKey((0,import_lodash.get)(e,a)))!=null?c:null}));const l=(r=(o=e.id)!=null?o:e.value)!=null?r:e.key;if(typeof l=="string"||typeof l=="number")return l;if(typeof l=="bigint")return String(l)}}const AssociationItem=e=>{const t=`{{${e.underSubForm?"ctx.item.value":"ctx.formValues"}.${e.fieldPath}}}`,{data:o,loading:r,error:i}=useJsonTemplateResolver(t,[t,e.refreshKey]);return r?(0,import_jsx_runtime.jsx)("div",{children:"Loading..."}):i?(0,import_jsx_runtime.jsxs)("div",{children:["Error: ",i.message]}):(0,import_jsx_runtime.jsx)(import_flow_engine.FieldModelRenderer,A(x({},e.mergedProps),{model:e.modelForRender,value:o||e.value}))};class FormAssociationItemModel extends import_flow_engine.DisplayItemModel{static defineChildren(t){const o=t.collection;return o.getFields().map(r=>{const i=this.getDefaultBindingByField(t,r,{fallbackToTargetTitleField:!0});if(!i)return null;const n=i.modelName,l=t.prefixFieldPath?`${t.prefixFieldPath}.${r.name}`:r.name;return{key:l,label:r.title,refreshTargets:["DetailsCustomItemModel/DetailsJSFieldItemModel"],toggleable:a=>{var c;return((c=a.getStepParams("fieldSettings","init"))==null?void 0:c.fieldPath)===l},useModel:"FormAssociationItemModel",createModelOptions:()=>({use:"FormAssociationItemModel",stepParams:{fieldSettings:{init:{dataSourceKey:o.dataSourceKey,collectionName:t.model.context.blockModel.collection.name,fieldPath:l}}},subModels:{field:{use:n,props:typeof i.defaultProps=="function"?i.defaultProps(t,r):i.defaultProps}}})}}).filter(Boolean)}onInit(t){super.onInit(t),this.context.defineProperty("actionName",{get:()=>"view",cache:!1})}renderItem(){const t=this.subModels.field,o=this.context.fieldIndex,r=this.context.record,i=this.context.currentObject,n=o!=null?(()=>{const d=t.createFork({},`${o}`);return d.context.defineProperty("fieldIndex",{get:()=>o}),d.context.defineProperty("record",{get:()=>r,cache:!1}),d.context.defineProperty("currentObject",{get:()=>i,cache:!1}),this.context.pattern&&d.context.defineProperty("pattern",{get:()=>this.context.pattern}),d})():t,l=this.collectionField.name,a=this.fieldPath.replace(new RegExp(`\\.${l}$`),""),c=mergeArrays((0,import_lodash.castArray)(a.split(".")),o),u=this.context.prefixFieldPath;return(0,import_jsx_runtime.jsx)(import_flow_engine.FormItem,A(x({},this.props),{shouldUpdate:(d,m)=>{const p=c.length>1&&!(0,import_lodash.get)(d,[...c])?c.slice(0,-1):c;return JSON.stringify((0,import_lodash.get)(d,[...p]))!==JSON.stringify((0,import_lodash.get)(m,[...p]))},children:()=>{var d,m,p,h;const g=buildAssociationRefreshKey((m=(d=this.context.form)==null?void 0:d.getFieldValue)==null?void 0:m.call(d,c),(h=(p=this.collectionField)==null?void 0:p.collection)==null?void 0:h.filterTargetKey)||(0,import_shared.uid)();return(0,import_jsx_runtime.jsx)(AssociationItem,{modelForRender:n,fieldPath:this.fieldPath.replace(new RegExp(`^${u}\\.`),""),refreshKey:g,mergedProps:this.props,underSubForm:!!u})}}))}}FormAssociationItemModel.define({label:(0,import_flow_engine.tExpr)("Display fields"),sort:100});FormAssociationItemModel.registerFlow({key:"detailItemSettings",sort:300,title:(0,import_flow_engine.tExpr)("Detail item settings"),steps:{showLabel:{title:(0,import_flow_engine.tExpr)("Show label"),uiMode:{type:"switch",key:"showLabel"},defaultParams:{showLabel:!0},handler(e,t){e.model.setProps({showLabel:t.showLabel})}},label:{title:(0,import_flow_engine.tExpr)("Label"),uiSchema:e=>({title:{"x-component":"Input","x-decorator":"FormItem","x-reactions":t=>{var o,r;const i=e.model,n=(o=i.collectionField)==null?void 0:o.title;t.decoratorProps=A(x({},t.decoratorProps),{extra:i.context.t("Original field title: ")+((r=i.context.t(n))!=null?r:"")})}}}),defaultParams:e=>{var t;return{title:(t=e.collectionField)==null?void 0:t.title}},handler(e,t){e.model.setProps({label:e.t(t.title,{ns:"lm-flow-engine"})})}},aclCheck:{use:"aclCheck"},init:{handler(e){return L(this,null,function*(){const{collectionField:t}=e.model;t&&e.model.setProps(t.getComponentProps())})}},tooltip:{title:(0,import_flow_engine.tExpr)("Tooltip"),uiSchema:{tooltip:{"x-component":"Input.TextArea","x-decorator":"FormItem"}},handler(e,t){e.model.setProps({tooltip:e.t(t.tooltip,{ns:"lm-flow-engine"})})}},description:{title:(0,import_flow_engine.tExpr)("Description"),uiSchema:{description:{"x-component":"Input.TextArea","x-decorator":"FormItem"}},handler(e,t){e.model.setProps({extra:e.t(t.description,{ns:"lm-flow-engine"})})}},model:{title:(0,import_flow_engine.tExpr)("Field component"),use:"displayFieldComponent"},fieldNames:{use:"titleField",title:(0,import_flow_engine.tExpr)("Title field"),beforeParamsSave:(e,t,o)=>L(void 0,null,function*(){var r,i;if(!e.collectionField||!e.collectionField.isAssociationField())return null;if(t.label!==o.label){e.model.setProps(x({titleField:t.label},(i=(r=e.collectionField.targetCollection)==null?void 0:r.getField(t.label))==null?void 0:i.getComponentProps()));const n=e.collectionField.targetCollection.getField(t.label),l=import_flow_engine.DisplayItemModel.getDefaultBindingByField(e,n),a=l.modelName;yield rebuildFieldSubModel({parentModel:e.model,targetUse:a,defaultProps:typeof(l==null?void 0:l.defaultProps)=="function"?l.defaultProps(e,e.collectionField):l==null?void 0:l.defaultProps,pattern:e.model.getProps().pattern})}}),handler(e,t){return L(this,null,function*(){var o,r;if(!e.collectionField||e.model.subModels.field.disableTitleField)return;e.model.setProps(x({titleField:t.label},(r=(o=e.collectionField.targetCollection)==null?void 0:o.getField(t.label))==null?void 0:r.getComponentProps()));const i=e.collectionField.targetCollection;if(i){const n=i.getField(t.label),l=import_flow_engine.DisplayItemModel.getDefaultBindingByField(e,n).modelName,a=e.model.subModels.field.use;l!==a&&e.model.setStepParams(e.flowKey,"model",{use:l})}})},hideInSettings:e=>L(void 0,null,function*(){return!e.collectionField||!e.collectionField.isAssociationField()||e.model.subModels.field.disableTitleField})}}});FormAssociationItemModel.registerFlow({key:"paginationChange",on:"paginationChange",steps:{aclCheckRefresh:{use:"aclCheckRefresh"}}});function createItemChainGetter(e){return()=>{var t,o,r,i,n,l,a;const c=e.valueAccessor();return{index:(t=e.indexAccessor)==null?void 0:t.call(e),length:(o=e.lengthAccessor)==null?void 0:o.call(e),__is_new__:(i=(r=e.isNewAccessor)==null?void 0:r.call(e))!=null?i:c==null?void 0:c.__is_new__,__is_stored__:(l=(n=e.isStoredAccessor)==null?void 0:n.call(e))!=null?l:c==null?void 0:c.__is_stored__,value:c,parentItem:(a=e.parentItemAccessor)==null?void 0:a.call(e)}}}function createRootItemChain(e){return{index:void 0,__is_new__:e==null?void 0:e.__is_new__,__is_stored__:e==null?void 0:e.__is_stored__,value:e,parentItem:void 0}}function resolveRecordPersistenceState(e,t){const o=Array.isArray(t)?t.length>0&&t.every(n=>(e==null?void 0:e[n])!=null):t?(e==null?void 0:e[t])!=null:!1,r=!!(e!=null&&e.__is_new__)||!o,i=!!(e!=null&&e.__is_stored__)||!r&&o;return{record:e,hasPrimaryKey:o,isNew:r,isStored:i}}function buildCurrentItemTitle(e,t,o){const r=typeof(t==null?void 0:t.title)=="string"&&t.title||typeof(t==null?void 0:t.name)=="string"&&t.name||o,i=typeof r=="string"&&r?e(r):"";return i?`${e("Current item")}(${i})`:e("Current item")}function createParentItemAccessorsFromContext(e){return{parentPropertiesAccessor:t=>{var o,r,i,n,l;return(l=(i=(r=(o=e.parentContextAccessor)==null?void 0:o.call(e))==null?void 0:r.item)==null?void 0:i.value)!=null?l:(n=e.fallbackParentPropertiesAccessor)==null?void 0:n.call(e,t)},parentItemMetaAccessor:()=>{var t,o,r,i;return(i=(r=(o=(t=e.parentContextAccessor)==null?void 0:t.call(e))==null?void 0:o.getPropertyOptions)==null?void 0:r.call(o,"item"))==null?void 0:i.meta},parentItemResolverAccessor:()=>{var t,o,r,i;return(i=(r=(o=(t=e.parentContextAccessor)==null?void 0:t.call(e))==null?void 0:o.getPropertyOptions)==null?void 0:r.call(o,"item"))==null?void 0:i.resolveOnServer}}}function createParentItemAccessorsFromInputArgs(e){return{parentPropertiesAccessor:()=>{var t,o;return(o=(t=e==null?void 0:e())==null?void 0:t.parentItem)==null?void 0:o.value},parentItemMetaAccessor:()=>{var t;return(t=e==null?void 0:e())==null?void 0:t.parentItemMeta},parentItemResolverAccessor:()=>{var t;return(t=e==null?void 0:e())==null?void 0:t.parentItemResolver}}}function createScopedItemContext(e,t){if(!e||typeof e!="object")return{item:t};const o=Object.create(e);return Object.defineProperty(o,"item",{value:t,configurable:!0,enumerable:!0,writable:!1}),o}function resolveMetaFactory(e){return L(this,null,function*(){return e?typeof e=="function"?(yield e())||null:e:null})}function createItemChainMetaFactory(e){const{t,title:o,showIndex:r,showParentIndex:i,collectionAccessor:n,propertiesAccessor:l,parentCollectionAccessor:a,parentPropertiesAccessor:c,parentItemMetaAccessor:u}=e,d=(0,import_flow_engine.createAssociationAwareObjectMetaFactory)(n,o,l),m=a?(0,import_flow_engine.createAssociationAwareObjectMetaFactory)(a,o,h=>{var g,f,_;return(_=c==null?void 0:c(h))!=null?_:(f=(g=h==null?void 0:h.item)==null?void 0:g.parentItem)==null?void 0:f.value}):null,p=()=>L(this,null,function*(){var h,g;const f=yield d();if(!f)return null;const _=yield resolveMetaFactory(u==null?void 0:u()),v=m?yield m():null,b=f.buildVariablesParams,C=_?_.buildVariablesParams:v==null?void 0:v.buildVariablesParams,y=()=>({type:"number",title:t("Index (starts from 0)")}),F=()=>({type:"number",title:t("Total count")}),S={};if(r!==!1&&(S.index=y(),S.length=F()),S.value=A(x({},f),{title:t("Attributes")}),_)S.parentItem=A(x({},_),{title:((h=_.title)==null?void 0:h.replace(t("Current item"),t("Parent item")))||t("Parent item")});else{const P={};i!==!1&&(P.index=y(),P.length=F()),P.value=v?A(x({},v),{title:t("Attributes")}):{type:"object",title:t("Attributes")},S.parentItem={type:"object",title:((g=_==null?void 0:_.title)==null?void 0:g.replace(t("Current item"),t("Parent item")))||t("Parent item"),properties:P}}return{type:"object",title:o,properties:S,buildVariablesParams:P=>L(this,null,function*(){var j;const I={};if(typeof b=="function"){const M=yield b(P);M&&typeof M=="object"&&Object.keys(M).length&&(I.value=M)}if(typeof C=="function"){const M=yield C(createScopedItemContext(P,(j=P==null?void 0:P.item)==null?void 0:j.parentItem));M&&typeof M=="object"&&Object.keys(M).length&&(I.parentItem=_?M:{value:M})}return I})}});return p.title=o,p}function createItemChainResolver(e){const t=(0,import_flow_engine.createAssociationSubpathResolver)(e.collectionAccessor,e.propertiesAccessor),o=typeof e.parentCollectionAccessor=="function"?(0,import_flow_engine.createAssociationSubpathResolver)(e.parentCollectionAccessor,e.parentPropertiesAccessor):null;return r=>{var i;const n=String(r||"");if(!n||n==="value")return!1;if(n.startsWith("value."))return t(n.slice(6));if(n==="parentItem")return!1;if(n.startsWith("parentItem.")){const l=n.slice(11),a=(i=e.parentItemResolverAccessor)==null?void 0:i.call(e);return typeof a=="function"?a(l):l==="value"?!1:l.startsWith("value.")&&o?o(l.slice(6)):!1}return!1}}function createItemChainMetaAndResolver(e){return{meta:createItemChainMetaFactory(e.metaFactoryOptions),resolveOnServer:createItemChainResolver(e.resolverOptions)}}function createAssociationItemChainContextPropertyOptions(e){var t,o,r;const i=(t=e.parentAccessors)==null?void 0:t.parentPropertiesAccessor,n=e.useParentItemMeta===!1||(o=e.parentAccessors)==null?void 0:o.parentItemMetaAccessor,l=e.useParentItemResolver===!1||(r=e.parentAccessors)==null?void 0:r.parentItemResolverAccessor;return createItemChainContextPropertyOptions({metaFactoryOptions:{t:e.t,title:e.title,showIndex:e.showIndex,showParentIndex:e.showParentIndex,collectionAccessor:e.collectionAccessor,propertiesAccessor:e.propertiesAccessor,parentCollectionAccessor:e.parentCollectionAccessor,parentPropertiesAccessor:i,parentItemMetaAccessor:n},resolverOptions:{collectionAccessor:e.collectionAccessor,propertiesAccessor:e.resolverPropertiesAccessor,parentCollectionAccessor:e.parentCollectionAccessor,parentPropertiesAccessor:i,parentItemResolverAccessor:l}})}function createItemChainContextPropertyOptions(e){return A(x({cache:!1},createItemChainMetaAndResolver(e)),{serverOnlyWhenContextParams:!0})}function buildRecordPickerParentItemContext(e){var t,o,r,i,n;const l=(r=(o=(t=typeof(e==null?void 0:e.getFormValues)=="function"?e.getFormValues():void 0)!=null?t:e==null?void 0:e.formValues)!=null?o:e==null?void 0:e.record)!=null?r:{},a=(i=e==null?void 0:e.item)!=null?i:createRootItemChain(l),c=typeof(e==null?void 0:e.t)=="function"?e.t:f=>f,u=()=>{var f,_,v;return(v=(_=(f=e==null?void 0:e.collectionField)==null?void 0:f.collection)!=null?_:e==null?void 0:e.collection)!=null?v:null},d=()=>a==null?void 0:a.value,m=()=>{var f;return(f=a==null?void 0:a.parentItem)==null?void 0:f.value},p=createItemChainMetaAndResolver({metaFactoryOptions:{t:c,title:c("Current item"),collectionAccessor:u,propertiesAccessor:d,parentCollectionAccessor:u,parentPropertiesAccessor:m,showParentIndex:!1},resolverOptions:{collectionAccessor:u,propertiesAccessor:d,parentCollectionAccessor:u,parentPropertiesAccessor:m}}),{meta:h=p.meta,resolveOnServer:g=p.resolveOnServer}=((n=e==null?void 0:e.getPropertyOptions)==null?void 0:n.call(e,"item"))||{};return{parentItem:a,parentItemMeta:h,parentItemResolver:g}}function injectRecordPickerPopupContext(e,t,o){var r,i,n;e&&o&&e.context.defineProperty("flowSettingsEnabled",{get:()=>o.context.flowSettingsEnabled,cache:!1});const l=((r=t==null?void 0:t.view)==null?void 0:r.inputArgs)||{},a=l.collectionField,c=typeof(t==null?void 0:t.t)=="function"?t.t:g=>g,u=(n=(i=a==null?void 0:a.targetCollection)!=null?i:a==null?void 0:a.collection)!=null?n:null,d=createParentItemAccessorsFromInputArgs(()=>l),m=()=>{var g;return(g=l.currentItemValue)!=null?g:{}},p=createAssociationItemChainContextPropertyOptions({t:c,title:buildCurrentItemTitle(c,a),collectionAccessor:()=>u,propertiesAccessor:m,resolverPropertiesAccessor:m,parentCollectionAccessor:()=>{var g;return(g=a==null?void 0:a.collection)!=null?g:null},parentAccessors:d,useParentItemMeta:!1}),h=createItemChainGetter({valueAccessor:m,parentItemAccessor:()=>l.parentItem,isNewAccessor:()=>!0,isStoredAccessor:()=>!1});e.context.defineProperty("item",x({get:h},p))}function RemoteModelRenderer$1({options:e,fieldModel:t}){const o=(0,import_flow_engine.useFlowViewContext)(),{data:r,loading:i}=(0,import_ahooks.useRequest)(()=>L(this,null,function*(){const n=yield o.engine.loadOrCreateModel(e,{delegateToParent:!1,delegate:o});return injectRecordPickerPopupContext(n,o,t),n}),{refreshDeps:[o,e]});return(0,import_react2.useEffect)(()=>{r&&t&&(t.selectBlockModel=r)},[r]),i||!(r!=null&&r.uid)?(0,import_jsx_runtime.jsx)(SkeletonFallback,{style:{margin:16}}):(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,{model:r,fallback:(0,import_jsx_runtime.jsx)(SkeletonFallback,{style:{margin:16}})})}function RecordPickerContent({model:e,toOne:t=!1}){const o=(0,import_flow_engine.useFlowContext)(),{Header:r,Footer:i,type:n}=o.view;return e._closeView=o.view.close,(0,import_jsx_runtime.jsxs)("div",{children:[(0,import_jsx_runtime.jsx)(r,{title:n==="dialog"?(0,import_jsx_runtime.jsx)("div",{style:{padding:`${o.themeToken.paddingLG}px ${o.themeToken.paddingLG}px 0`,marginBottom:-o.themeToken.marginSM,backgroundColor:"var(--colorBgLayout)"},children:o.t("Select record")}):o.t("Select record")}),(0,import_jsx_runtime.jsx)(RemoteModelRenderer$1,{options:{parentId:o.view.inputArgs.parentId,subKey:"grid-block",async:!0,delegateToParent:!1,subType:"object",use:"BlockGridModel"},fieldModel:e}),!t&&(0,import_jsx_runtime.jsx)(i,{children:n==="dialog"?(0,import_jsx_runtime.jsx)("div",{style:{padding:`0 ${o.themeToken.paddingLG}px ${o.themeToken.paddingLG}px`},children:(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"primary",onClick:()=>{e.change(),o.view.close()},children:o.t("Submit")})}):(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"primary",onClick:()=>{e.change(),o.view.close()},children:o.t("Submit")})})]})}function RecordPickerField(e){const{fieldNames:t,onClick:o,disabled:r}=e,i=(0,import_flow_engine.useFlowContext)(),n=["belongsTo","hasOne"].includes(i.collectionField.type);(0,import_react2.useEffect)(()=>{i.model.selectedRows.value=e.value},[e.value]);const l=(a,c,u)=>a?u?A(x({},a),{label:a[c.label],value:a[c.value]}):a.map(d=>A(x({},d),{label:d[c.label],value:d[c.value]})):u?void 0:[];return(0,import_jsx_runtime.jsx)(import_antd.Select,A(x({},e),{open:!1,onClick:a=>{r||o(a)},value:l(e.value,t,n),labelRender:a=>(0,import_jsx_runtime.jsx)(LabelByField,{option:a,fieldNames:t}),labelInValue:!0,mode:n?void 0:"multiple",options:e.value,allowClear:!0,onChange:(a,c)=>{i.model.selectedRows.value=c,i.model.change()},showSearch:!1,maxTagCount:"responsive",maxTagPlaceholder:a=>(0,import_jsx_runtime.jsxs)(import_antd.Tooltip,{title:(0,import_jsx_runtime.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:6,maxWidth:"100%"},children:a.map(c=>(0,import_jsx_runtime.jsx)(import_antd.Tag,{style:{margin:0,background:"#fafafa",border:"1px solid #d9d9d9",whiteSpace:"normal",wordBreak:"break-word",maxWidth:"100%"},children:c.label},c.value))}),overlayInnerStyle:{background:"#fff",color:"#000",padding:8,maxWidth:"100%"},color:"#fff",overlayStyle:{pointerEvents:"auto",maxWidth:300},children:["+",a.length,"..."]})}))}class RecordPickerFieldModel extends FieldModel{constructor(){super(...arguments),R(this,"selectedRows",import_flow_engine.observable.ref([])),R(this,"_closeView"),R(this,"selectBlockModel")}get collectionField(){return this.context.collectionField}render(){return(0,import_jsx_runtime.jsx)(RecordPickerField,x({},this.props))}onInit(t){super.onInit(t),this.context.defineProperty("collection",{get:()=>{var o;return(o=this.context.collectionField)==null?void 0:o.targetCollection}})}onMount(){this.onClick=t=>{this.dispatchEvent("openView",{event:t,onChange:this.props.onChange})}}set onClick(t){this.setProps({onClick:t})}change(){this.props.onChange(this.selectedRows.value)}}RecordPickerFieldModel.registerFlow({key:"popupSettings",title:(0,import_flow_engine.tExpr)("Selector setting"),on:{eventName:"openView"},sort:300,steps:{openView:{title:(0,import_flow_engine.tExpr)("Edit popup"),uiSchema:{mode:{type:"string",title:(0,import_flow_engine.tExpr)("Open mode"),enum:[{label:(0,import_flow_engine.tExpr)("Drawer"),value:"drawer"},{label:(0,import_flow_engine.tExpr)("Dialog"),value:"dialog"}],"x-decorator":"FormItem","x-component":"Radio.Group"},size:{type:"string",title:(0,import_flow_engine.tExpr)("Popup size"),enum:[{label:(0,import_flow_engine.tExpr)("Small"),value:"small"},{label:(0,import_flow_engine.tExpr)("Medium"),value:"medium"},{label:(0,import_flow_engine.tExpr)("Large"),value:"large"}],"x-decorator":"FormItem","x-component":"Radio.Group"}},defaultParams:{mode:"drawer",size:"medium"},handler(e,t){var o,r,i,n,l,a,c;const{onChange:u}=e.inputArgs,d=["belongsTo","hasOne"].includes(e.collectionField.type),m={drawer:{small:"30%",medium:"50%",large:"70%"},dialog:{small:"40%",medium:"50%",large:"80%"},embed:{}},p=e.inputArgs.mode||t.mode||"drawer",h=e.inputArgs.size||t.size||"medium",g=(o=e.collectionField)==null?void 0:o.collection,f=(i=(r=e.item)==null?void 0:r.value)!=null?i:e.record,_=f?(n=g==null?void 0:g.getFilterByTK)==null?void 0:n.call(g,f):void 0,v=(l=e.collectionField)==null?void 0:l.resourceName,{parentItem:b,parentItemMeta:C,parentItemResolver:y}=buildRecordPickerParentItemContext(e),F=(a=e.inputArgs.currentItemValue)!=null?a:{},S=buildOpenerUids(e,e.inputArgs);e.viewer.open({type:p,width:m[p][h],inheritContext:!1,target:e.layoutContentElement,inputArgs:A(x({parentId:e.model.uid,scene:"select",dataSourceKey:e.collection.dataSourceKey,collectionName:(c=e.collectionField)==null?void 0:c.target},v&&_!=null?{associationName:v,sourceId:_}:{}),{collectionField:e.collectionField,parentItem:b,parentItemMeta:C,parentItemResolver:y,currentItemValue:F,openerUids:S,rowSelectionProps:{type:d?"radio":"checkbox",defaultSelectedRows:()=>e.model.props.value,renderCell:void 0,selectedRowKeys:void 0,onChange:(P,j)=>{var I,M;const E=e.model.selectBlockModel.findSubModel("items",D=>D);if(d)e.model.selectedRows.value=j==null?void 0:j[0],u(e.model.selectedRows.value),(M=(I=e.model)._closeView)==null||M.call(I);else{E.resource.setSelectedRows(j);const D=[...e.model.props.value||[],...j].filter((k,w,B)=>w===B.findIndex(N=>N[e.collection.filterTargetKey]===k[e.collection.filterTargetKey]));e.model.selectedRows.value=D}}}}),content:()=>(0,import_jsx_runtime.jsx)(RecordPickerContent,{model:e.model,toOne:d}),styles:{content:x({padding:0,backgroundColor:e.model.flowEngine.context.themeToken.colorBgLayout},p==="embed"?{position:"absolute",top:0,left:0,right:0,bottom:0}:{}),body:{padding:0}}})}}}});RecordPickerFieldModel.registerFlow({key:"recordPickerSettings",title:(0,import_flow_engine.tExpr)("RecordPicker settings"),sort:200,steps:{fieldNames:{use:"titleField"}}});RecordPickerFieldModel.define({label:(0,import_flow_engine.tExpr)("Popup select")});import_flow_engine.EditableItemModel.bindModelToInterface("RecordPickerFieldModel",["m2m","m2o","o2o","o2m","oho","obo","updatedBy","createdBy","mbm"],{order:20});function extractIndex(e){const t=[];return e==null||e.split(".").forEach(function(o){isNaN(o)||t.push(String(Number(o)+1))}),t.join(".")}function adjustColumnOrder(e){const t=[],o=[],r=[];return e.forEach(i=>{i.fixed==="left"?t.push(i):i.fixed==="right"?r.push(i):o.push(i)}),[...t,...o,...r]}function setNestedValue(e,t,o){if(typeof t=="number")e[t]=o;else if(typeof t=="string"){const r=t.split(".");let i=e;for(let n=0;n<r.length-1;n++)i=i[r[n]];i[r[r.length-1]]=o}}function extractIds(e){let t=[];return e.forEach(o=>{t.push(o.id),o.children&&Array.isArray(o.children)&&(t=t.concat(extractIds(o.children)))}),t}function getRowKey$1(e,t){var o;return Array.isArray(t)?t.map(r=>{var i;return String((i=e==null?void 0:e[r])!=null?i:"")}).join("-"):(o=e==null?void 0:e[t])!=null?o:""}const useBlockHeight=({heightMode:e,tableAreaRef:t,deps:o=[]})=>{const[r,i]=(0,import_react2.useState)(),n=(0,import_react2.useCallback)(()=>{var l,a;if(e!=="specifyValue"&&e!=="fullHeight"){i(f=>f===void 0?f:void 0);return}const c=t.current;if(!c)return;const u=c.getBoundingClientRect().height;if(!u)return;const d=c.querySelector(".ant-table-header")||c.querySelector(".ant-table-thead"),m=c.querySelector(".ant-table-pagination"),p=(l=d==null?void 0:d.getBoundingClientRect().height)!=null?l:0,h=(a=m==null?void 0:m.getBoundingClientRect().height)!=null?a:0,g=Math.max(0,Math.floor(u-p-h));i(f=>f===g?f:g)},[e,t]);return(0,import_react2.useLayoutEffect)(()=>{n()},[n,...o]),(0,import_react2.useEffect)(()=>{if(!t.current||typeof ResizeObserver>"u")return;const l=t.current,a=l.querySelector(".ant-table-header")||l.querySelector(".ant-table-thead"),c=l.querySelector(".ant-table-pagination"),u=new ResizeObserver(()=>n());return u.observe(l),a&&u.observe(a),c&&u.observe(c),()=>u.disconnect()},[n,t,...o]),r};function FieldDeletePlaceholder(e){const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_flow_engine.useFlowModel)(),r=o.context.blockModel,i=(e==null?void 0:e.collection)||r.collection,n=i.dataSource,l=o.props.title||o.fieldPath,a=(0,import_react2.useMemo)(()=>{const u=`${t(n.displayName||n.key)} > `,d=i?`${t(i.title)||i.name||i.tableName} > `:"";return`${u}${d}${l}`},[]),c=t('The {{type}} "{{name}}" may have been deleted. Please remove this {{blockType}}.',{type:t("Field"),name:a,blockType:t("Field")}).replaceAll("&gt;",">");return(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:c,children:(0,import_jsx_runtime.jsx)(import_icons.ExclamationCircleOutlined,{style:{opacity:"0.3"}})})}function FieldWithoutPermissionPlaceholder$2(){var e,t;const{t:o}=(0,import_react_i18next.useTranslation)(),r=(0,import_flow_engine.useFlowModel)(),i=r.context.blockModel,n=((e=r.context.collectionField)==null?void 0:e.collection)||i.collection,l=n.dataSource,a=((t=r.context.collectionField)==null?void 0:t.name)||r.fieldPath,c=(0,import_react2.useMemo)(()=>{const m=`${o(l.displayName||l.key)} > `,p=n?`${o(n.title)||n.name||n.tableName} > `:"";return`${m}${p}${a}`},[]),{actionName:u}=r.forbidden,d=(0,import_react2.useMemo)(()=>o(`The current user only has the UI configuration permission, but don't have "{{actionName}}" permission for field "{{name}}"`,{name:c,actionName:o((0,import_lodash.capitalize)(u))}).replaceAll("&gt;",">"),[c,o]);return(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:d,children:(0,import_jsx_runtime.jsx)(import_icons.LockOutlined,{style:{opacity:"0.3"}})})}const CustomWidth=({setOpen:e,t,handleChange:o,defaultValue:r})=>{const[i,n]=(0,import_react2.useState)(r);return(0,import_jsx_runtime.jsx)("div",{onClick:l=>{l.stopPropagation(),e(!0)},onMouseLeave:()=>{e(!0)},children:(0,import_jsx_runtime.jsxs)(import_antd.Space.Compact,{block:!0,children:[(0,import_jsx_runtime.jsx)(import_antd.InputNumber,{placeholder:t("Custom column width"),value:i,onChange:l=>{n(l)},style:{width:"100%",minWidth:200}}),(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"primary",onClick:()=>o(i),children:"OK"})]})})},Ye=class ot extends import_flow_engine.DisplayItemModel{afterAddAsSubModel(){return L(this,null,function*(){yield Ee(ot.prototype,this,"afterAddAsSubModel").call(this),yield this.dispatchEvent("beforeRender")})}renderHiddenInConfig(){return this.renderOriginal.call(this)}static defineChildren(t){const o=t.model.collection||t.collection;return o.getFields().map(r=>{var i;const n=this.getDefaultBindingByField(t,r,{fallbackToTargetTitleField:!0});if(!n||(i=r.options)!=null&&i.treeChildren)return null;const l=n.modelName,a=t.fieldPath?`${t.fieldPath}.${r.name}`:r.name;return{key:a,label:r.title,refreshTargets:["TableCustomColumnModel/TableJSFieldItemModel"],toggleable:c=>{var u;return((u=c.getStepParams("fieldSettings","init"))==null?void 0:u.fieldPath)===a&&c.use==="TableColumnModel"},useModel:this.name,createModelOptions:()=>({use:this.name,stepParams:{fieldSettings:{init:{dataSourceKey:o.dataSourceKey,collectionName:t.model.context.blockModel.collection.name,fieldPath:a}}},subModels:{field:{use:l,props:typeof n.defaultProps=="function"?n.defaultProps(t,r):n.defaultProps}}})}}).filter(Boolean)}getColumnProps(){if(!this.props.width)return;const t=(0,import_jsx_runtime.jsx)(import_flow_engine.Droppable,{model:this,children:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowsFloatContextMenu,{model:this,containerStyle:{display:"block",padding:"11px 7px",margin:"-11px -7px"},showBorder:!1,settingsMenuLevel:2,extraToolbarItems:[{key:"drag-handler",component:import_flow_engine.DragHandler,sort:1}],children:(0,import_jsx_runtime.jsx)("div",{className:import_css.css`