@nocobase/client 2.0.29 → 2.0.31

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=ee(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.29",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.29","@nocobase/flow-engine":"2.0.29","@nocobase/sdk":"2.0.29","@nocobase/utils":"2.0.29","@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 F=(0,import_get.default)(n,v);return(b=F==null?void 0:F[LAZY_COMPONENT_KEY])!=null?b:F},[import_get.default]),on:f.on.bind(f),patch:(0,import_react2.useCallback)((v,b)=>{const F=y=>{Object.keys(y).forEach(C=>{const S=y[C];C==="title"&&(m.title=S,p.title=S),C==="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]})),C==="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),F(y)}F(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,F)=>{f.insertAdjacent(v,b,F)},[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=ee(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=JSON.stringify(e),n=(0,import_react2.useRef)(e),l=(0,import_react2.useRef)(t),[a,c]=(0,import_react2.useState)({}),[u,d]=(0,import_react2.useState)(()=>e?null:i),m=!!e&&u!==i;return n.current=e,l.current=t,(0,import_react2.useEffect)(()=>{const p=n.current;if(!p){c({}),d(i);return}let h=!1;const g=()=>L(this,null,function*(){var v;const b=yield o(p);h||(c(b),d(i),(v=l.current)==null||v.call(l,b))});g();const f=import_lodash.default.debounce(g,DEBOUNCE_WAIT),_=(0,import_reactive.reaction)(()=>(0,import_client.flatten)(p,{breakOn({key:v}){return v.startsWith("$")&&v!=="$and"&&v!=="$or"},transformValue(v){if(!isVariable$1(v))return v;const b=getVariableName(v),F=r(b);let y=null;const C=getPath(v).split(".");return C.forEach((S,P)=>{const j=C.slice(0,P+1).join("."),I=(0,import_client.getValuesByPath)({[b]:(F==null?void 0:F.ctx)||{}},j);import_lodash.default.isEmpty(I)||(y=I)}),y}}),f,{equals:import_lodash.default.isEqual});return()=>{h=!0,f.cancel(),_()}},[i,r,o]),{filter:a,parseVariableLoading:m}}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 F=o.find(P=>P.uid===h.uid);if(!F)return;import_lodash.default.isFunction(u)&&(u=u(F,h,getSourceKey$1(p,F.field))),import_lodash.default.isFunction(d)&&(b=d(F,h)),import_lodash.default.isFunction(m)&&(m=m(F));const y=((g=h.service.params)==null?void 0:g[0])||{},C=((_=(f=h.service.params)==null?void 0:f[1])==null?void 0:_.filters)||{};if(u!=null)C[r]={$and:[{[b]:{[m]:u}}]};else if((v=h.clearSelection)==null||v.call(h),delete C[r],h.dataLoadingMode==="manual")return h.clearData();const S=mergeFilter([...Object.values(C).map(P=>removeNullCondition(P)),h.defaultFilter]);h.doFilter(A(x({},y),{page:1,filter:S}),{filters:C})})},[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:F}=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:C}=useParsedFilter({filterOption:y,onFilterChange:()=>{F&&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,C]),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,C,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=ee(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.31",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.31","@nocobase/flow-engine":"2.0.31","@nocobase/sdk":"2.0.31","@nocobase/utils":"2.0.31","@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 F=(0,import_get.default)(n,v);return(b=F==null?void 0:F[LAZY_COMPONENT_KEY])!=null?b:F},[import_get.default]),on:f.on.bind(f),patch:(0,import_react2.useCallback)((v,b)=>{const F=y=>{Object.keys(y).forEach(C=>{const S=y[C];C==="title"&&(m.title=S,p.title=S),C==="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]})),C==="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),F(y)}F(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,F)=>{f.insertAdjacent(v,b,F)},[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=ee(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=JSON.stringify(e),n=(0,import_react2.useRef)(e),l=(0,import_react2.useRef)(t),[a,c]=(0,import_react2.useState)({}),[u,d]=(0,import_react2.useState)(()=>e?null:i),m=!!e&&u!==i;return n.current=e,l.current=t,(0,import_react2.useEffect)(()=>{const p=n.current;if(!p){c({}),d(i);return}let h=!1;const g=()=>L(this,null,function*(){var v;const b=yield o(p);h||(c(b),d(i),(v=l.current)==null||v.call(l,b))});g();const f=import_lodash.default.debounce(g,DEBOUNCE_WAIT),_=(0,import_reactive.reaction)(()=>(0,import_client.flatten)(p,{breakOn({key:v}){return v.startsWith("$")&&v!=="$and"&&v!=="$or"},transformValue(v){if(!isVariable$1(v))return v;const b=getVariableName(v),F=r(b);let y=null;const C=getPath(v).split(".");return C.forEach((S,P)=>{const j=C.slice(0,P+1).join("."),I=(0,import_client.getValuesByPath)({[b]:(F==null?void 0:F.ctx)||{}},j);import_lodash.default.isEmpty(I)||(y=I)}),y}}),f,{equals:import_lodash.default.isEqual});return()=>{h=!0,f.cancel(),_()}},[i,r,o]),{filter:a,parseVariableLoading:m}}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 F=o.find(P=>P.uid===h.uid);if(!F)return;import_lodash.default.isFunction(u)&&(u=u(F,h,getSourceKey$1(p,F.field))),import_lodash.default.isFunction(d)&&(b=d(F,h)),import_lodash.default.isFunction(m)&&(m=m(F));const y=((g=h.service.params)==null?void 0:g[0])||{},C=((_=(f=h.service.params)==null?void 0:f[1])==null?void 0:_.filters)||{};if(u!=null)C[r]={$and:[{[b]:{[m]:u}}]};else if((v=h.clearSelection)==null||v.call(h),delete C[r],h.dataLoadingMode==="manual")return h.clearData();const S=mergeFilter([...Object.values(C).map(P=>removeNullCondition(P)),h.defaultFilter]);h.doFilter(A(x({},y),{page:1,filter:S}),{filters:C})})},[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:F}=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:C}=useParsedFilter({filterOption:y,onFilterChange:()=>{F&&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,C]),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,C,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};
@@ -1873,13 +1873,13 @@ if (!ctx.record) {
1873
1873
  `,children:D.label}),dropdownRender:D=>{const E=f.some(w=>w[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)&&D,f.length>0&&p.searchText&&!E&&(0,import_jsx_runtime.jsx)(import_antd.Divider,{style:{margin:0}}),!E&&(0,import_jsx_runtime.jsx)(I,{searchText:p.searchText})]}):D})}})),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:T,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 F=e.model.getDataSource()||[];F.push(b),e.model.setDataSource(F)}else{const F=[...e.model.props.value||[],b].filter((C,S,P)=>S===P.findIndex(j=>j[e.collection.filterTargetKey]===C[e.collection.filterTargetKey]));c(F);const y=e.model.getDataSource()||[];e.model.setDataSource(y.concat(F))}}}),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:`
1874
1874
  const values = ctx.form?.getFieldsValue?.() || {};
1875
1875
  ctx.message.success('Current form values: ' + JSON.stringify(values));
1876
- `}},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,F=_?_.buildVariablesParams:v==null?void 0:v.buildVariablesParams,y=()=>({type:"number",title:t("Index (starts from 0)")}),C=()=>({type:"number",title:t("Total count")}),S={};if(r!==!1&&(S.index=y(),S.length=C()),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=C()),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 T=yield b(P);T&&typeof T=="object"&&Object.keys(T).length&&(I.value=T)}if(typeof F=="function"){const T=yield F(createScopedItemContext(P,(j=P==null?void 0:P.item)==null?void 0:j.parentItem));T&&typeof T=="object"&&Object.keys(T).length&&(I.parentItem=_?T:{value:T})}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,skipSave:!o.flowSettingsEnabled});return injectRecordPickerPopupContext(n,o,t),n}),{refreshDeps:[o,e]});return(0,import_react2.useEffect)(()=>{if(r)return t&&(t.selectBlockModel=r),()=>{var n,l;r!=null&&r.uid&&((l=(n=o==null?void 0:o.engine)==null?void 0:n.removeModelWithSubModels)==null||l.call(n,r.uid)),(t==null?void 0:t.selectBlockModel)===r&&(t.selectBlockModel=void 0)}},[o==null?void 0:o.engine,r,t]),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:F,parentItemResolver:y}=buildRecordPickerParentItemContext(e),C=(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:F,parentItemResolver:y,currentItemValue:C,openerUids:S,rowSelectionProps:{type:d?"radio":"checkbox",defaultSelectedRows:()=>e.model.props.value,renderCell:void 0,selectedRowKeys:void 0,onChange:(P,j)=>{var I,T;const D=e.model.selectBlockModel.findSubModel("items",E=>E);if(d)e.model.selectedRows.value=j==null?void 0:j[0],u(e.model.selectedRows.value),(T=(I=e.model)._closeView)==null||T.call(I);else{D.resource.setSelectedRows(j);const E=[...e.model.props.value||[],...j].filter((w,k,N)=>k===N.findIndex(B=>B[e.collection.filterTargetKey]===w[e.collection.filterTargetKey]));e.model.selectedRows.value=E}}}}),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"})]})})},Ze=class ft extends import_flow_engine.DisplayItemModel{afterAddAsSubModel(){return L(this,null,function*(){yield Ne(ft.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`
1876
+ `}},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,F=_?_.buildVariablesParams:v==null?void 0:v.buildVariablesParams,y=()=>({type:"number",title:t("Index (starts from 0)")}),C=()=>({type:"number",title:t("Total count")}),S={};if(r!==!1&&(S.index=y(),S.length=C()),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=C()),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 T=yield b(P);T&&typeof T=="object"&&Object.keys(T).length&&(I.value=T)}if(typeof F=="function"){const T=yield F(createScopedItemContext(P,(j=P==null?void 0:P.item)==null?void 0:j.parentItem));T&&typeof T=="object"&&Object.keys(T).length&&(I.parentItem=_?T:{value:T})}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,skipSave:!o.flowSettingsEnabled});return injectRecordPickerPopupContext(n,o,t),n}),{refreshDeps:[o,e]});return(0,import_react2.useEffect)(()=>{if(r)return t&&(t.selectBlockModel=r),()=>{var n,l;r!=null&&r.uid&&((l=(n=o==null?void 0:o.engine)==null?void 0:n.removeModelWithSubModels)==null||l.call(n,r.uid)),(t==null?void 0:t.selectBlockModel)===r&&(t.selectBlockModel=void 0)}},[o==null?void 0:o.engine,r,t]),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:F,parentItemResolver:y}=buildRecordPickerParentItemContext(e),C=(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:F,parentItemResolver:y,currentItemValue:C,openerUids:S,rowSelectionProps:{type:d?"radio":"checkbox",defaultSelectedRows:()=>e.model.props.value,renderCell:void 0,selectedRowKeys:void 0,onChange:(P,j)=>{var I,T;const D=e.model.selectBlockModel.findSubModel("items",E=>E);if(d)e.model.selectedRows.value=j==null?void 0:j[0],u(e.model.selectedRows.value),(T=(I=e.model)._closeView)==null||T.call(I);else{D.resource.setSelectedRows(j);const E=[...e.model.props.value||[],...j].filter((w,k,N)=>k===N.findIndex(B=>B[e.collection.filterTargetKey]===w[e.collection.filterTargetKey]));e.model.selectedRows.value=E}}}}),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"})]})})};function getSavedAssociationTitleField(e){var t,o,r;return((o=(t=e.getStepParams)==null?void 0:t.call(e,"tableColumnSettings","fieldNames"))==null?void 0:o.label)||((r=e.props)==null?void 0:r.titleField)}const Ze=class ft extends import_flow_engine.DisplayItemModel{afterAddAsSubModel(){return L(this,null,function*(){yield Ne(ft.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`
1877
1877
  overflow: hidden;
1878
1878
  text-overflow: ellipsis;
1879
1879
  white-space: nowrap;
1880
1880
  width: calc(${this.props.width}px - 16px);
1881
1881
  opacity: ${this.hidden?"0.3":"1"};
1882
- `,children:this.props.title})})}),o=this.render();return A(x({},this.props),{ellipsis:!0,title:this.props.tooltip?(0,import_jsx_runtime.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4},children:[t,(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:this.props.tooltip,children:(0,import_jsx_runtime.jsx)(import_icons.QuestionCircleOutlined,{style:{cursor:"pointer"}})})]}):t,onCell:(r,i)=>({record:r,recordIndex:(r==null?void 0:r.__index)||i,width:this.props.width-16,editable:this.props.editable,dataIndex:this.props.dataIndex,title:this.props.title,overflowMode:this.props.overflowMode,model:this}),render:(r,i,n)=>(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelProvider,{model:this,children:(0,import_jsx_runtime.jsx)(import_react_error_boundary.ErrorBoundary,{FallbackComponent:import_flow_engine.FlowErrorFallback,children:(()=>{const l=this.__autoFlowError;if(l)throw l;return this.hidden&&this.context.flowSettingsEnabled?this.forbidden?(0,import_jsx_runtime.jsx)(FieldWithoutPermissionPlaceholder$2,{}):(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:this.context.t("The field is hidden and only visible when the UI Editor is active"),children:(0,import_jsx_runtime.jsxs)("div",{style:{opacity:"0.3"},children:[" ",o(r,i,(i==null?void 0:i.__index)||n)]})}):this.collectionField?o(r,i,(i==null?void 0:i.__index)||n):(0,import_jsx_runtime.jsx)(FieldDeletePlaceholder,{})})()})}),hidden:this.hidden&&!this.context.flowSettingsEnabled})}onInit(t){super.onInit(t)}renderItem(){return(t,o,r)=>(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:this.mapSubModels("field",i=>{const n=getRowKey$1(o,this.context.collection.filterTargetKey),l=i.createFork({},`${(o==null?void 0:o.__index)||r}_${n}`),a=(0,import_flow_engine.createRecordMetaFactory)(()=>l.context.collection,l.context.t("Current record"),d=>{var m;try{const p=d.collection,h=d.record,g=p==null?void 0:p.name,f=p==null?void 0:p.dataSourceKey,_=(m=p==null?void 0:p.getFilterByTK)==null?void 0:m.call(p,h);return!g||typeof _>"u"||_===null?void 0:{collection:g,dataSourceKey:f,filterByTk:_}}catch{return}});l.context.defineProperty("record",{get:()=>o,resolveOnServer:(0,import_flow_engine.createRecordResolveOnServerWithLocal)(()=>l.context.collection,()=>o),meta:a,cache:!1}),l.context.defineProperty("recordIndex",{get:()=>(o==null?void 0:o.__index)||r});const c=this.context.prefixFieldPath?this.fieldPath.replace(`${this.context.prefixFieldPath}.`,""):this.fieldPath,u=(0,import_lodash.get)(o,c);return(0,import_jsx_runtime.jsx)(import_flow_engine.FormItem,A(x({},(0,import_lodash.omit)(this.props,"title")),{value:u,noStyle:!0,children:(0,import_jsx_runtime.jsx)(import_flow_engine.FieldModelRenderer,{model:l})}),i.uid)})})}};R(Ze,"renderMode",import_flow_engine.ModelRenderMode.RenderFunction);let TableColumnModel=Ze;TableColumnModel.define({label:(0,import_flow_engine.tExpr)("Display fields")});TableColumnModel.registerFlow({key:"tableColumnSettings",sort:500,title:(0,import_flow_engine.tExpr)("Table column settings"),steps:{init:{handler(e,t){return L(this,null,function*(){const o=e.model.context.collectionField;o&&(e.model.setProps("title",o.title),e.model.setProps("dataIndex",o.name),yield e.model.applySubModelsBeforeRenderFlows("field"),e.model.setProps(x({},o.getComponentProps())))})}},title:{title:(0,import_flow_engine.tExpr)("Column title"),uiSchema:e=>({title:{"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{title:(t=e.model.collectionField)==null?void 0:t.title}},handler(e,t){var o;const r={ns:"lm-flow-engine",compareWith:(o=e.model.collectionField)==null?void 0:o.title};e.model.setProps({title:e.t(t.title,r)||e.fieldPath})}},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"}))}},width:{title:(0,import_flow_engine.tExpr)("Column width"),uiMode(e){const t=e.model.props.width;return{type:"select",key:"width",props:{options:[{label:50,value:50},{label:100,value:100},{label:150,value:150},{label:200,value:200},{label:250,value:250},{label:300,value:300},{label:350,value:350},{label:400,value:400},{label:450,value:450},{label:500,value:500}],dropdownRender:(o,r,i)=>(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[o,(0,import_jsx_runtime.jsx)(import_antd.Divider,{style:{margin:"4px 0"}}),(0,import_jsx_runtime.jsx)(CustomWidth,{setOpen:r,handleChange:i,t:e.t,defaultValue:[50,100,150,200,250,300,350,400,450,500].includes(t)?null:t})]})}}},defaultParams:{width:150},handler(e,t){e.model.setProps("width",t.width)}},aclCheck:{use:"aclCheck"},quickEdit:{title:(0,import_flow_engine.tExpr)("Enable quick edit"),uiMode:{type:"switch",key:"editable"},defaultParams(e){return e.model.collectionField.readonly||e.model.associationPathName?{editable:!1}:{editable:e.model.parent.props.editable||!1}},handler(e,t){e.model.setProps("editable",t.editable)}},model:{title:(0,import_flow_engine.tExpr)("Field component"),use:"displayFieldComponent"},sorter:{title:(0,import_flow_engine.tExpr)("Sortable"),uiMode:{type:"switch",key:"sorter"},hideInSettings:e=>L(void 0,null,function*(){return!e.model.collectionField.getInterfaceOptions().sortable||e.associationModel}),defaultParams:{sorter:!1},handler(e,t){e.model.setProps({sorter:t.sorter})}},fixed:{title:(0,import_flow_engine.tExpr)("Fixed"),use:"fixed"},fieldNames:{use:"titleField",title:(0,import_flow_engine.tExpr)("Title field"),beforeParamsSave:(e,t,o)=>L(void 0,null,function*(){if(!e.collectionField||!e.collectionField.isAssociationField()||t.label===o.label)return null;const r=e.collectionField.targetCollection,i=r.getField(t.label);if(!i)return null;const n=e.model.constructor.getDefaultBindingByField(e,i),l=e.model.subModels.field,a=getFieldBindingUse(l)||(l==null?void 0:l.use),c=(n==null?void 0:n.modelName)||a,u={dataSourceKey:e.model.collectionField.dataSourceKey,collectionName:r.name,fieldPath:t.label},d=typeof(n==null?void 0:n.defaultProps)=="function"?n.defaultProps(e,i):n==null?void 0:n.defaultProps;c&&c!==a?yield rebuildFieldSubModel({parentModel:e.model,targetUse:c,defaultProps:d,fieldSettingsInit:u}):l&&(l.setStepParams("fieldSettings","init",u),yield l.dispatchEvent("beforeRender",void 0,{useCache:!1})),e.model.setProps(i.getComponentProps())}),defaultParams:e=>{const t=e.model.context.collectionField.targetCollectionTitleFieldName;return{label:e.model.props.titleField||t}},handler(e,t){if(!e.collectionField||!e.collectionField.isAssociationField())return null;e.model.setProps({titleField:t.label})}}}});const SubTableRowRuleBinder=({model:e})=>(import_react2.default.useEffect(()=>{var t;const o=(t=e==null?void 0:e.flowEngine)==null?void 0:t.emitter;if(o)return o.emitAsync("model:mounted",{uid:e==null?void 0:e.uid,model:e}),()=>{var r;o.emitAsync("model:unmounted",{uid:e==null?void 0:e.uid,model:e}),(r=e==null?void 0:e.dispose)==null||r.call(e)}},[e]),null);function FieldWithoutPermissionPlaceholder$1({targetModel:e}){const t=e.context.t,o=e,r=o.context.collectionField.collection,i=r.dataSource,n=o.context.collectionField.name,l=(0,import_react2.useMemo)(()=>{const u=`${t(i.displayName||i.key)} > `,d=r?`${t(r.title)||r.name||r.tableName} > `:"";return`${u}${d}${n}`},[]),{actionName:a}=o.forbidden||{},c=(0,import_react2.useMemo)(()=>t(`The current user only has the UI configuration permission, but don't have "{{actionName}}" permission for field "{{name}}"`,{name:l,actionName:t((0,import_lodash.capitalize)(a))}).replaceAll("&gt;",">"),[l,t]);return(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:c,children:(0,import_jsx_runtime.jsx)(import_icons.LockOutlined,{style:{opacity:"0.3"}})})}const LargeFieldEdit=(0,import_flow_engine.observer)(e=>{var t=e,{model:o,params:{fieldPath:r,index:i},defaultValue:n,disabled:l}=t,a=ee(t,["model","params","defaultValue","disabled"]);const c=(0,import_flow_engine.useFlowEngine)(),u=(0,import_react2.useRef)(null),d=o.subModels.readPrettyField,m=d==null?void 0:d.createFork({},`${i}`);m==null||m.setProps({value:n});const p=_=>{const v=_,{model:b,onChange:F}=v,y=ee(v,["model","onChange"]),C=(0,import_react2.useMemo)(()=>(0,import_lodash.debounce)(S=>{_.onChange&&_.onChange(S),F&&F(S)},200),[_.onChange,F]);return(0,import_jsx_runtime.jsx)(import_flow_engine.FieldModelRenderer,A(x({model:b},y),{onChange:C}))},h=_=>L(void 0,null,function*(){if(!l){_.preventDefault(),_.stopPropagation();try{yield c.context.viewer.open({type:"popover",target:_.target,placement:"rightTop",styles:{body:{minWidth:400}},content:v=>(0,import_jsx_runtime.jsx)(p,x({model:o,value:n},a))})}catch(v){console.log(v)}}}),g=o.context.collectionField,f=(0,import_react2.useMemo)(()=>{if(["textarea","richText","json","markdown","vditor"].includes(g.interface)){const _=g.interface==="json"&&n?JSON.stringify(n,null,2):n??"";return(0,import_jsx_runtime.jsx)(import_antd.Input,{value:_,disabled:l,style:{width:"100%"}})}else return(0,import_jsx_runtime.jsxs)(import_antd.Space,{children:[(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,{model:m,uid:m==null?void 0:m.uid})," ",(0,import_jsx_runtime.jsx)(import_icons.EditOutlined,{className:"edit-icon"})]})},[g.interface,n,m]);return(0,import_jsx_runtime.jsx)("div",{ref:u,onClick:h,style:{display:"flex",alignItems:"center",whiteSpace:"nowrap",minHeight:25,width:"100%",maxHeight:300,overflowY:"auto",cursor:"pointer"},children:(0,import_jsx_runtime.jsx)("span",{style:{pointerEvents:"none",display:"block",width:"100%"},children:f})})}),handleModelName=e=>["RadioGroupFieldModel","CheckboxGroupFieldModel"].includes(e)?"SelectFieldModel":e,MemoFieldRenderer=import_react2.default.memo(import_flow_engine.FieldModelRenderer,(e,t)=>e.value===t.value&&e.model===t.model),FieldModelRendererOptimize=import_react2.default.memo(e=>{const t=e,{model:o,onChange:r,value:i}=t,n=ee(t,["model","onChange","value"]),l=import_react2.default.useRef(e==null?void 0:e.value);(0,import_react2.useEffect)(()=>{l.current=i},[i]);const a=import_react2.default.useCallback(u=>{l.current=u},[o]),c=import_react2.default.useCallback(()=>{r==null||r(l.current)},[r]);return(0,import_jsx_runtime.jsx)("div",{onBlur:c,children:(0,import_jsx_runtime.jsx)(MemoFieldRenderer,A(x({},n),{value:i,model:o,onChange:a,onChangeComplete:()=>{r==null||r(l.current)}}))})}),MemoCell=import_react2.default.memo(({value:e,record:t,rowIdx:o,id:r,parent:i,parentFieldIndex:n,rowFork:l,width:a})=>{const c=t==null?void 0:t.__is_new__;return(0,import_jsx_runtime.jsxs)("div",{style:{width:a,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},title:e,className:import_css.css`
1882
+ `,children:this.props.title})})}),o=this.render();return A(x({},this.props),{ellipsis:!0,title:this.props.tooltip?(0,import_jsx_runtime.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4},children:[t,(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:this.props.tooltip,children:(0,import_jsx_runtime.jsx)(import_icons.QuestionCircleOutlined,{style:{cursor:"pointer"}})})]}):t,onCell:(r,i)=>({record:r,recordIndex:(r==null?void 0:r.__index)||i,width:this.props.width-16,editable:this.props.editable,dataIndex:this.props.dataIndex,title:this.props.title,overflowMode:this.props.overflowMode,model:this}),render:(r,i,n)=>(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelProvider,{model:this,children:(0,import_jsx_runtime.jsx)(import_react_error_boundary.ErrorBoundary,{FallbackComponent:import_flow_engine.FlowErrorFallback,children:(()=>{const l=this.__autoFlowError;if(l)throw l;return this.hidden&&this.context.flowSettingsEnabled?this.forbidden?(0,import_jsx_runtime.jsx)(FieldWithoutPermissionPlaceholder$2,{}):(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:this.context.t("The field is hidden and only visible when the UI Editor is active"),children:(0,import_jsx_runtime.jsxs)("div",{style:{opacity:"0.3"},children:[" ",o(r,i,(i==null?void 0:i.__index)||n)]})}):this.collectionField?o(r,i,(i==null?void 0:i.__index)||n):(0,import_jsx_runtime.jsx)(FieldDeletePlaceholder,{})})()})}),hidden:this.hidden&&!this.context.flowSettingsEnabled})}onInit(t){super.onInit(t)}renderItem(){return(t,o,r)=>(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:this.mapSubModels("field",i=>{const n=getRowKey$1(o,this.context.collection.filterTargetKey),l=i.createFork({},`${(o==null?void 0:o.__index)||r}_${n}`),a=(0,import_flow_engine.createRecordMetaFactory)(()=>l.context.collection,l.context.t("Current record"),d=>{var m;try{const p=d.collection,h=d.record,g=p==null?void 0:p.name,f=p==null?void 0:p.dataSourceKey,_=(m=p==null?void 0:p.getFilterByTK)==null?void 0:m.call(p,h);return!g||typeof _>"u"||_===null?void 0:{collection:g,dataSourceKey:f,filterByTk:_}}catch{return}});l.context.defineProperty("record",{get:()=>o,resolveOnServer:(0,import_flow_engine.createRecordResolveOnServerWithLocal)(()=>l.context.collection,()=>o),meta:a,cache:!1}),l.context.defineProperty("recordIndex",{get:()=>(o==null?void 0:o.__index)||r});const c=this.context.prefixFieldPath?this.fieldPath.replace(`${this.context.prefixFieldPath}.`,""):this.fieldPath,u=(0,import_lodash.get)(o,c);return(0,import_jsx_runtime.jsx)(import_flow_engine.FormItem,A(x({},(0,import_lodash.omit)(this.props,"title")),{value:u,noStyle:!0,children:(0,import_jsx_runtime.jsx)(import_flow_engine.FieldModelRenderer,{model:l})}),i.uid)})})}};R(Ze,"renderMode",import_flow_engine.ModelRenderMode.RenderFunction);let TableColumnModel=Ze;TableColumnModel.define({label:(0,import_flow_engine.tExpr)("Display fields")});TableColumnModel.registerFlow({key:"tableColumnSettings",sort:500,title:(0,import_flow_engine.tExpr)("Table column settings"),steps:{init:{handler(e,t){return L(this,null,function*(){var o,r,i,n;const l=e.model.context.collectionField;if(!l)return;const a=getSavedAssociationTitleField(e.model),c=l.isAssociationField()&&a?x(x({},l.getComponentProps()),(n=(i=(r=(o=l.targetCollection)==null?void 0:o.getField)==null?void 0:r.call(o,a))==null?void 0:i.getComponentProps)==null?void 0:n.call(i)):l.getComponentProps();e.model.setProps("title",l.title),e.model.setProps("dataIndex",l.name),yield e.model.applySubModelsBeforeRenderFlows("field"),e.model.setProps(x({},c))})}},title:{title:(0,import_flow_engine.tExpr)("Column title"),uiSchema:e=>({title:{"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{title:(t=e.model.collectionField)==null?void 0:t.title}},handler(e,t){var o;const r={ns:"lm-flow-engine",compareWith:(o=e.model.collectionField)==null?void 0:o.title};e.model.setProps({title:e.t(t.title,r)||e.fieldPath})}},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"}))}},width:{title:(0,import_flow_engine.tExpr)("Column width"),uiMode(e){const t=e.model.props.width;return{type:"select",key:"width",props:{options:[{label:50,value:50},{label:100,value:100},{label:150,value:150},{label:200,value:200},{label:250,value:250},{label:300,value:300},{label:350,value:350},{label:400,value:400},{label:450,value:450},{label:500,value:500}],dropdownRender:(o,r,i)=>(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[o,(0,import_jsx_runtime.jsx)(import_antd.Divider,{style:{margin:"4px 0"}}),(0,import_jsx_runtime.jsx)(CustomWidth,{setOpen:r,handleChange:i,t:e.t,defaultValue:[50,100,150,200,250,300,350,400,450,500].includes(t)?null:t})]})}}},defaultParams:{width:150},handler(e,t){e.model.setProps("width",t.width)}},aclCheck:{use:"aclCheck"},quickEdit:{title:(0,import_flow_engine.tExpr)("Enable quick edit"),uiMode:{type:"switch",key:"editable"},defaultParams(e){return e.model.collectionField.readonly||e.model.associationPathName?{editable:!1}:{editable:e.model.parent.props.editable||!1}},handler(e,t){e.model.setProps("editable",t.editable)}},model:{title:(0,import_flow_engine.tExpr)("Field component"),use:"displayFieldComponent"},sorter:{title:(0,import_flow_engine.tExpr)("Sortable"),uiMode:{type:"switch",key:"sorter"},hideInSettings:e=>L(void 0,null,function*(){return!e.model.collectionField.getInterfaceOptions().sortable||e.associationModel}),defaultParams:{sorter:!1},handler(e,t){e.model.setProps({sorter:t.sorter})}},fixed:{title:(0,import_flow_engine.tExpr)("Fixed"),use:"fixed"},fieldNames:{use:"titleField",title:(0,import_flow_engine.tExpr)("Title field"),beforeParamsSave:(e,t,o)=>L(void 0,null,function*(){if(!e.collectionField||!e.collectionField.isAssociationField()||t.label===o.label)return null;const r=e.collectionField.targetCollection,i=r.getField(t.label);if(!i)return null;const n=e.model.constructor.getDefaultBindingByField(e,i),l=e.model.subModels.field,a=getFieldBindingUse(l)||(l==null?void 0:l.use),c=(n==null?void 0:n.modelName)||a,u={dataSourceKey:e.model.collectionField.dataSourceKey,collectionName:r.name,fieldPath:t.label},d=typeof(n==null?void 0:n.defaultProps)=="function"?n.defaultProps(e,i):n==null?void 0:n.defaultProps;c&&c!==a?yield rebuildFieldSubModel({parentModel:e.model,targetUse:c,defaultProps:d,fieldSettingsInit:u}):l&&(l.setStepParams("fieldSettings","init",u),yield l.dispatchEvent("beforeRender",void 0,{useCache:!1})),e.model.setProps(i.getComponentProps())}),defaultParams:e=>{const t=e.model.context.collectionField.targetCollectionTitleFieldName;return{label:getSavedAssociationTitleField(e.model)||t}},handler(e,t){if(!e.collectionField||!e.collectionField.isAssociationField())return null;e.model.setProps({titleField:t.label})}}}});const SubTableRowRuleBinder=({model:e})=>(import_react2.default.useEffect(()=>{var t;const o=(t=e==null?void 0:e.flowEngine)==null?void 0:t.emitter;if(o)return o.emitAsync("model:mounted",{uid:e==null?void 0:e.uid,model:e}),()=>{var r;o.emitAsync("model:unmounted",{uid:e==null?void 0:e.uid,model:e}),(r=e==null?void 0:e.dispose)==null||r.call(e)}},[e]),null);function FieldWithoutPermissionPlaceholder$1({targetModel:e}){const t=e.context.t,o=e,r=o.context.collectionField.collection,i=r.dataSource,n=o.context.collectionField.name,l=(0,import_react2.useMemo)(()=>{const u=`${t(i.displayName||i.key)} > `,d=r?`${t(r.title)||r.name||r.tableName} > `:"";return`${u}${d}${n}`},[]),{actionName:a}=o.forbidden||{},c=(0,import_react2.useMemo)(()=>t(`The current user only has the UI configuration permission, but don't have "{{actionName}}" permission for field "{{name}}"`,{name:l,actionName:t((0,import_lodash.capitalize)(a))}).replaceAll("&gt;",">"),[l,t]);return(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:c,children:(0,import_jsx_runtime.jsx)(import_icons.LockOutlined,{style:{opacity:"0.3"}})})}const LargeFieldEdit=(0,import_flow_engine.observer)(e=>{var t=e,{model:o,params:{fieldPath:r,index:i},defaultValue:n,disabled:l}=t,a=ee(t,["model","params","defaultValue","disabled"]);const c=(0,import_flow_engine.useFlowEngine)(),u=(0,import_react2.useRef)(null),d=o.subModels.readPrettyField,m=d==null?void 0:d.createFork({},`${i}`);m==null||m.setProps({value:n});const p=_=>{const v=_,{model:b,onChange:F}=v,y=ee(v,["model","onChange"]),C=(0,import_react2.useMemo)(()=>(0,import_lodash.debounce)(S=>{_.onChange&&_.onChange(S),F&&F(S)},200),[_.onChange,F]);return(0,import_jsx_runtime.jsx)(import_flow_engine.FieldModelRenderer,A(x({model:b},y),{onChange:C}))},h=_=>L(void 0,null,function*(){if(!l){_.preventDefault(),_.stopPropagation();try{yield c.context.viewer.open({type:"popover",target:_.target,placement:"rightTop",styles:{body:{minWidth:400}},content:v=>(0,import_jsx_runtime.jsx)(p,x({model:o,value:n},a))})}catch(v){console.log(v)}}}),g=o.context.collectionField,f=(0,import_react2.useMemo)(()=>{if(["textarea","richText","json","markdown","vditor"].includes(g.interface)){const _=g.interface==="json"&&n?JSON.stringify(n,null,2):n??"";return(0,import_jsx_runtime.jsx)(import_antd.Input,{value:_,disabled:l,style:{width:"100%"}})}else return(0,import_jsx_runtime.jsxs)(import_antd.Space,{children:[(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,{model:m,uid:m==null?void 0:m.uid})," ",(0,import_jsx_runtime.jsx)(import_icons.EditOutlined,{className:"edit-icon"})]})},[g.interface,n,m]);return(0,import_jsx_runtime.jsx)("div",{ref:u,onClick:h,style:{display:"flex",alignItems:"center",whiteSpace:"nowrap",minHeight:25,width:"100%",maxHeight:300,overflowY:"auto",cursor:"pointer"},children:(0,import_jsx_runtime.jsx)("span",{style:{pointerEvents:"none",display:"block",width:"100%"},children:f})})}),handleModelName=e=>["RadioGroupFieldModel","CheckboxGroupFieldModel"].includes(e)?"SelectFieldModel":e,MemoFieldRenderer=import_react2.default.memo(import_flow_engine.FieldModelRenderer,(e,t)=>e.value===t.value&&e.model===t.model),FieldModelRendererOptimize=import_react2.default.memo(e=>{const t=e,{model:o,onChange:r,value:i}=t,n=ee(t,["model","onChange","value"]),l=import_react2.default.useRef(e==null?void 0:e.value);(0,import_react2.useEffect)(()=>{l.current=i},[i]);const a=import_react2.default.useCallback(u=>{l.current=u},[o]),c=import_react2.default.useCallback(()=>{r==null||r(l.current)},[r]);return(0,import_jsx_runtime.jsx)("div",{onBlur:c,children:(0,import_jsx_runtime.jsx)(MemoFieldRenderer,A(x({},n),{value:i,model:o,onChange:a,onChangeComplete:()=>{r==null||r(l.current)}}))})}),MemoCell=import_react2.default.memo(({value:e,record:t,rowIdx:o,id:r,parent:i,parentFieldIndex:n,rowFork:l,width:a})=>{const c=t==null?void 0:t.__is_new__;return(0,import_jsx_runtime.jsxs)("div",{style:{width:a,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},title:e,className:import_css.css`
1883
1883
  .ant-form-item-explain-error {
1884
1884
  white-space: break-spaces;
1885
1885
  }
@@ -1960,7 +1960,7 @@ ctx.message.success('Current form values: ' + JSON.stringify(values));
1960
1960
  text-overflow: ellipsis;
1961
1961
  max-width: 100%;
1962
1962
  }
1963
- `),changeOnSelect:!0,options:u||m,onDropdownVisibleChange:C=>{e.onDropdownVisibleChange(C),C&&setTimeout(()=>{y()},100)},fieldNames:c,showSearch:!0,onSearch:C=>l(C),displayRender:F,onChange:(C,S)=>{var P,j;const I=((j=(P=e==null?void 0:e.collectionField)==null?void 0:P.targetCollection)==null?void 0:j.template)==="tree";if(a||I)n(buildParentChain(S));else{const T=(0,import_lodash.last)(S);n(T)}},value:v.length?v:void 0})};class CascadeSelectFieldModel extends CascadeSelectInnerFieldModel{render(){return(0,import_jsx_runtime.jsx)(ToOneCascadeSelect,A(x({},this.props),{resource:this.resource,collectionField:this.collectionField,underDefaultValueConfig:this.use!=="CascadeSelectFieldModel"}))}}class CascadeSelectListFieldModel extends CascadeSelectInnerFieldModel{render(){return(0,import_jsx_runtime.jsx)(DynamicCascadeList,{name:this.props.name,disabled:this.props.disabled,options:this.props.options,onDropdownVisibleChange:this.props.onDropdownVisibleChange,onPopupScroll:this.props.onPopupScroll,fieldNames:this.props.fieldNames,showSearch:!0,onSearch:t=>this.props.onSearch(t),onChange:t=>{this.props.onChange(t)},collectionField:this.collectionField,value:(0,import_lodash.castArray)(this.props.value).filter(Boolean),underDefaultValueConfig:this.use!=="CascadeSelectListFieldModel"})}}const paginationState={page:1,pageSize:40,loading:!1,hasMore:!0};CascadeSelectInnerFieldModel.registerFlow({key:"eventSettings",sort:900,steps:{bindEvent:{handler(e){const t=e.model.props.fieldNames.label;e.model.onDropdownVisibleChange=o=>{o?e.model.dispatchEvent("dropdownOpen",{apiClient:e.app.apiClient,form:e.model.context.form}):(e.model.resource.removeFilterGroup(t),paginationState.page=1)},e.model.onPopupScroll=o=>{e.model.dispatchEvent("popupScroll",{event:o,apiClient:e.app.apiClient})},e.model.onSearch=o=>{e.model.dispatchEvent("search",{searchText:o,apiClient:e.app.apiClient})},e.model.onLoadData=o=>L(this,null,function*(){const r=o[o.length-1];e.model.dispatchEvent("loadChildren",{targetOption:r,apiClient:e.app.apiClient})})}}}});CascadeSelectInnerFieldModel.registerFlow({key:"dropdownOpenSettings",on:"dropdownOpen",steps:{loadData:{handler(e){return L(this,null,function*(){const t=e.model.resource;e.model.getDataSource(),t.setPage(1),t.setRequestParameters({tree:!0}),yield e.model.applyFlow("selectSettings"),yield t.refresh();const o=t.getData().map(r=>{var i;return A(x({},r),{isLeaf:!((i=r.children)!=null&&i.length),children:r.children})});e.model.setDataSource(o),paginationState.hasMore=o.length>=paginationState.pageSize,paginationState.page=2})}}}});CascadeSelectInnerFieldModel.registerFlow({key:"popupScrollSettings",on:"popupScroll",steps:{loadData:{handler(e){return L(this,null,function*(){var t;const o=(t=e.inputArgs)==null?void 0:t.event,{scrollTop:r,scrollHeight:i,clientHeight:n}=o.target;if(!(r+n<i-20)&&!(paginationState.loading||!paginationState.hasMore)){paginationState.loading=!0;try{const l=e.model.resource;l.setPage(paginationState.page),yield l.refresh();const a=l.getData().map(u=>{var d;return A(x({},u),{isLeaf:!((d=u.children)!=null&&d.length),children:u.children})}),c=e.model.getDataSource()||[];e.model.setDataSource([...c,...a]),a.length<paginationState.pageSize?paginationState.hasMore=!1:paginationState.page++}finally{paginationState.loading=!1}}})}}}});function originalHandler(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(a):(m.setPage(1),m.addFilterGroup(a,{[p]:d})),yield m.refresh();const h=m.getData().map(g=>{var f;return A(x({},g),{isLeaf:!((f=g.children)!=null&&f.length),children:g.children})});e.model.setDataSource(h),h.length<paginationState.pageSize?paginationState.hasMore=!1:(paginationState.hasMore=!0,paginationState.page++),e.model.setProps({searchText:d})}catch(l){console.error("CascadeSelectFieldModel search flow error:",l),e.model.setDataSource([])}})}const debouncedHandler=(0,import_lodash.debounce)(originalHandler,500);CascadeSelectInnerFieldModel.registerFlow({key:"searchSettings",on:"search",steps:{step1:{handler:debouncedHandler}}});CascadeSelectInnerFieldModel.registerFlow({key:"cascadeSelectSettings",sort:200,steps:{init:{handler(e){const t=e.createResource(import_flow_engine.MultiRecordResource),o=e.model.context.collectionField,{target:r,dataSourceKey:i}=o;t.setDataSourceKey(i),t.setResourceName(r),t.setPageSize(paginationState.pageSize),e.model.resource=t}}}});CascadeSelectInnerFieldModel.registerFlow({key:"selectSettings",title:(0,import_flow_engine.tExpr)("Cascader select settings"),sort:800,steps:{fieldNames:{use:"titleField"},dataScope:{use:"dataScope"},sortingRule:{use:"sortingRule"}}});CascadeSelectFieldModel.define({label:(0,import_flow_engine.tExpr)("Cascader")});CascadeSelectListFieldModel.define({label:(0,import_flow_engine.tExpr)("Cascader")});import_flow_engine.EditableItemModel.bindModelToInterface("CascadeSelectFieldModel",["m2o","o2o","oho","obo"],{when:(e,t)=>{var o;return((o=t.targetCollection)==null?void 0:o.template)==="tree"},isDefault:!0,order:60});import_flow_engine.EditableItemModel.bindModelToInterface("CascadeSelectListFieldModel",["m2m","o2m","mbm"],{when:(e,t)=>{var o;return((o=t.targetCollection)==null?void 0:o.template)==="tree"},isDefault:!0,order:60});function FieldWithoutPermissionPlaceholder({targetModel:e,children:t}){const o=e.context.t,r=e,i=r.context.collectionField.collection,n=i.dataSource,l=r.context.collectionField.name,a=(0,import_react2.useMemo)(()=>{const d=`${o(n.displayName||n.key)} > `,m=i?`${o(i.title)||i.name||i.tableName} > `:"";return`${d}${m}${l}`},[]),{actionName:c}=r.forbidden||{},u=(0,import_react2.useMemo)(()=>o(`The current user only has the UI configuration permission, but don't have "{{actionName}}" permission for field "{{name}}"`,{name:a,actionName:o((0,import_lodash.capitalize)(c))}).replaceAll("&gt;",">"),[a,o]);return(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:u,children:t})}function RemoteModelRenderer({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,skipSave:!o.flowSettingsEnabled});return n.context.defineProperty("associationModel",{value:t.context.associationModel}),n.actionName=e.scene,n}),{refreshDeps:[o,e]});return 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 EditFormContent({model:e,scene:t="update"}){const o=(0,import_flow_engine.useFlowContext)(),{Header:r,type:i}=o.view;e._closeView=o.view.close;const n=t==="create"?o.t("Add new"):o.t("Edit");return(0,import_jsx_runtime.jsxs)("div",{children:[(0,import_jsx_runtime.jsx)(r,{title:i==="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:n}):n}),(0,import_jsx_runtime.jsx)(RemoteModelRenderer,{options:{parentId:o.view.inputArgs.parentId,subKey:`${t}.edit-form-grid-block`,async:!0,delegateToParent:!1,subType:"object",use:"BlockGridModel",scene:t},fieldModel:e})]})}class SubTableRecordAction extends ActionModel{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)(FieldWithoutPermissionPlaceholder,{targetModel:this,children:(0,import_jsx_runtime.jsx)(import_antd.Button,A(x({},t),{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()}))})}}SubTableRecordAction.registerFlow({key:"buttonAclSettings",steps:{aclCheck:{use:"aclCheck",handler(e,t){return L(this,null,function*(){var o,r;const i=yield e.aclCheck({dataSourceKey:(o=e.dataSource)==null?void 0:o.key,resourceName:(r=e.collectionField)==null?void 0:r.collectionName,actionName:e.actionName,fields:[e.collectionField.name]});e.actionName&&(i||(e.model.hidden=!0,e.model.forbidden={actionName:e.actionName},e.exitAll()))})}}}});class PopupSubTableEditActionModel extends SubTableRecordAction{constructor(){super(...arguments),R(this,"selectedRows",import_flow_engine.observable.ref([])),R(this,"defaultPopupTitle",(0,import_flow_engine.tExpr)("Edit")),R(this,"defaultProps",{type:"link",title:(0,import_flow_engine.tExpr)("Edit")})}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,{collection:this.context.collectionField.targetCollection,children:(0,import_jsx_runtime.jsx)(import_antd.Button,A(x({},t),{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()}))})}getAclActionName(){return"update"}onDispatchEventStart(t){return L(this,null,function*(){t==="beforeRender"&&(this.onClick=o=>{this.dispatchEvent("openView",x({event:o},this.getInputArgs()))})})}}PopupSubTableEditActionModel.registerFlow({key:"buttonAclSettings",steps:{aclCheck:{handler(e,t){return L(this,null,function*(){var o,r;const i=yield e.aclCheck({dataSourceKey:(o=e.dataSource)==null?void 0:o.key,resourceName:(r=e.collectionField)==null?void 0:r.target,actionName:e.actionName});e.actionName&&!i&&!e.record.__is_new__&&(e.model.hidden=!0,e.model.forbidden={actionName:e.actionName},e.exitAll())})}}}});PopupSubTableEditActionModel.define({label:(0,import_flow_engine.tExpr)("Edit")});PopupSubTableEditActionModel.registerFlow({key:"popupSettings",title:(0,import_flow_engine.tExpr)("Edit 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,u,d,m,p,h,g;const f={drawer:{small:"30%",medium:"50%",large:"70%"},dialog:{small:"40%",medium:"50%",large:"80%"},embed:{}},_=e.inputArgs.mode||t.mode||"drawer",v=e.inputArgs.size||t.size||"medium",b=e==null?void 0:e.associationModel,F=(c=(r=e==null?void 0:e.item)!=null?r:(o=b==null?void 0:b.context)==null?void 0:o.item)!=null?c:{value:(a=typeof((i=b==null?void 0:b.context)==null?void 0:i.getFormValues)=="function"?b.context.getFormValues():(n=b==null?void 0:b.context)==null?void 0:n.formValues)!=null?a:(l=b==null?void 0:b.context)==null?void 0:l.record},y=(p=(u=e==null?void 0:e.getPropertyOptions)==null?void 0:u.call(e,"item"))!=null?p:(m=(d=b==null?void 0:b.context)==null?void 0:d.getPropertyOptions)==null?void 0:m.call(d,"item"),C=Array.isArray((h=b==null?void 0:b.props)==null?void 0:h.value)?b.props.value.length:void 0,S=(()=>{var P,j;try{const I=(P=b==null?void 0:b.props)==null?void 0:P.value,T=e==null?void 0:e.record;if(!Array.isArray(I)||!T)return;const D=I.indexOf(T);if(D>=0)return D;if(T.__index__!=null){const w=I.findIndex(k=>(k==null?void 0:k.__index__)===T.__index__);if(w>=0)return w}const E=(j=e==null?void 0:e.collection)==null?void 0:j.filterTargetKey;if(Array.isArray(E)){if(!E.every(k=>(T==null?void 0:T[k])!=null))return;const w=I.findIndex(k=>E.every(N=>(k==null?void 0:k[N])===(T==null?void 0:T[N])));return w>=0?w:void 0}if(E){const w=T==null?void 0:T[E];if(w==null)return;const k=I.findIndex(N=>(N==null?void 0:N[E])===w);return k>=0?k:void 0}return}catch{return}})();e.viewer.open({type:_,width:f[_][v],inheritContext:!1,target:e.layoutContentElement,inputArgs:{parentId:e.model.uid,scene:"subForm",dataSourceKey:e.collection.dataSourceKey,collectionName:(g=e.collectionField)==null?void 0:g.target,collectionField:e.collectionField,record:e.record,parentItem:F,parentItemMeta:y==null?void 0:y.meta,parentItemResolver:y==null?void 0:y.resolveOnServer,itemIndex:S,itemLength:C},content:()=>(0,import_jsx_runtime.jsx)(EditFormContent,{model:e.model}),styles:{content:x({padding:0,backgroundColor:e.model.flowEngine.context.themeToken.colorBgLayout},_==="embed"?{position:"absolute",top:0,left:0,right:0,bottom:0}:{}),body:{padding:0}}})}}}});function getRowKey(e,t){if(!t)return null;if(Array.isArray(t)){const r=t.map(i=>e==null?void 0:e[i]);return r.some(i=>i==null)?null:r.join("__")}const o=e==null?void 0:e[t];return o==null?null:String(o)}const HeaderWrapperComponent$2=import_react2.default.memo(e=>{const t=(0,import_flow_engine.useFlowEngine)();return(0,import_jsx_runtime.jsx)(import_flow_engine.DndProvider,{onDragEnd:({active:o,over:r})=>{o.id&&r!=null&&r.id&&o.id!==r.id&&t.moveModel(o.id,r.id)},children:(0,import_jsx_runtime.jsx)("thead",x({},e))})}),RenderCell$1=(0,import_reactive_react.observer)(e=>{const t=e,{className:o,title:r,editable:i,width:n,record:l,recordIndex:a,dataIndex:c,children:u,model:d}=t,m=ee(t,["className","title","editable","width","record","recordIndex","dataIndex","children","model"]),p=(0,import_react2.useRef)(null),h=(0,import_flow_engine.useFlowModel)();return i?(0,import_jsx_runtime.jsxs)("td",A(x({ref:p},m),{className:(0,import_classnames.default)(o,import_css.css`
1963
+ `),changeOnSelect:!0,options:u||m,onDropdownVisibleChange:C=>{e.onDropdownVisibleChange(C),C&&setTimeout(()=>{y()},100)},fieldNames:c,showSearch:!0,onSearch:C=>l(C),displayRender:F,onChange:(C,S)=>{var P,j;const I=((j=(P=e==null?void 0:e.collectionField)==null?void 0:P.targetCollection)==null?void 0:j.template)==="tree";if(a||I)n(buildParentChain(S));else{const T=(0,import_lodash.last)(S);n(T)}},value:v.length?v:void 0})};class CascadeSelectFieldModel extends CascadeSelectInnerFieldModel{render(){return(0,import_jsx_runtime.jsx)(ToOneCascadeSelect,A(x({},this.props),{resource:this.resource,collectionField:this.collectionField,underDefaultValueConfig:this.use!=="CascadeSelectFieldModel"}))}}class CascadeSelectListFieldModel extends CascadeSelectInnerFieldModel{render(){return(0,import_jsx_runtime.jsx)(DynamicCascadeList,{name:this.props.name,disabled:this.props.disabled,options:this.props.options,onDropdownVisibleChange:this.props.onDropdownVisibleChange,onPopupScroll:this.props.onPopupScroll,fieldNames:this.props.fieldNames,showSearch:!0,onSearch:t=>this.props.onSearch(t),onChange:t=>{this.props.onChange(t)},collectionField:this.collectionField,value:(0,import_lodash.castArray)(this.props.value).filter(Boolean),underDefaultValueConfig:this.use!=="CascadeSelectListFieldModel"})}}const paginationState={page:1,pageSize:40,loading:!1,hasMore:!0};CascadeSelectInnerFieldModel.registerFlow({key:"eventSettings",sort:900,steps:{bindEvent:{handler(e){const t=e.model.props.fieldNames.label;e.model.onDropdownVisibleChange=o=>{o?e.model.dispatchEvent("dropdownOpen",{apiClient:e.app.apiClient,form:e.model.context.form}):(e.model.resource.removeFilterGroup(t),paginationState.page=1)},e.model.onPopupScroll=o=>{e.model.dispatchEvent("popupScroll",{event:o,apiClient:e.app.apiClient})},e.model.onSearch=o=>{e.model.dispatchEvent("search",{searchText:o,apiClient:e.app.apiClient})},e.model.onLoadData=o=>L(this,null,function*(){const r=o[o.length-1];e.model.dispatchEvent("loadChildren",{targetOption:r,apiClient:e.app.apiClient})})}}}});CascadeSelectInnerFieldModel.registerFlow({key:"dropdownOpenSettings",on:"dropdownOpen",steps:{loadData:{handler(e){return L(this,null,function*(){const t=e.model.resource;e.model.getDataSource(),t.setPage(1),t.setRequestParameters({tree:!0}),yield e.model.applyFlow("selectSettings"),yield t.refresh();const o=t.getData().map(r=>{var i;return A(x({},r),{isLeaf:!((i=r.children)!=null&&i.length),children:r.children})});e.model.setDataSource(o),paginationState.hasMore=o.length>=paginationState.pageSize,paginationState.page=2})}}}});CascadeSelectInnerFieldModel.registerFlow({key:"popupScrollSettings",on:"popupScroll",steps:{loadData:{handler(e){return L(this,null,function*(){var t;const o=(t=e.inputArgs)==null?void 0:t.event,{scrollTop:r,scrollHeight:i,clientHeight:n}=o.target;if(!(r+n<i-20)&&!(paginationState.loading||!paginationState.hasMore)){paginationState.loading=!0;try{const l=e.model.resource;l.setPage(paginationState.page),yield l.refresh();const a=l.getData().map(u=>{var d;return A(x({},u),{isLeaf:!((d=u.children)!=null&&d.length),children:u.children})}),c=e.model.getDataSource()||[];e.model.setDataSource([...c,...a]),a.length<paginationState.pageSize?paginationState.hasMore=!1:paginationState.page++}finally{paginationState.loading=!1}}})}}}});function originalHandler(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(a):(m.setPage(1),m.addFilterGroup(a,{[p]:d})),yield m.refresh();const h=m.getData().map(g=>{var f;return A(x({},g),{isLeaf:!((f=g.children)!=null&&f.length),children:g.children})});e.model.setDataSource(h),h.length<paginationState.pageSize?paginationState.hasMore=!1:(paginationState.hasMore=!0,paginationState.page++),e.model.setProps({searchText:d})}catch(l){console.error("CascadeSelectFieldModel search flow error:",l),e.model.setDataSource([])}})}const debouncedHandler=(0,import_lodash.debounce)(originalHandler,500);CascadeSelectInnerFieldModel.registerFlow({key:"searchSettings",on:"search",steps:{step1:{handler:debouncedHandler}}});CascadeSelectInnerFieldModel.registerFlow({key:"cascadeSelectSettings",sort:200,steps:{init:{handler(e){const t=e.createResource(import_flow_engine.MultiRecordResource),o=e.model.context.collectionField,{target:r,dataSourceKey:i}=o;t.setDataSourceKey(i),t.setResourceName(r),t.setPageSize(paginationState.pageSize),e.model.resource=t}}}});CascadeSelectInnerFieldModel.registerFlow({key:"selectSettings",title:(0,import_flow_engine.tExpr)("Cascader select settings"),sort:800,steps:{fieldNames:{use:"titleField"},dataScope:{use:"dataScope"},sortingRule:{use:"sortingRule"}}});CascadeSelectFieldModel.define({label:(0,import_flow_engine.tExpr)("Cascader")});CascadeSelectListFieldModel.define({label:(0,import_flow_engine.tExpr)("Cascader")});import_flow_engine.EditableItemModel.bindModelToInterface("CascadeSelectFieldModel",["m2o","o2o","oho","obo"],{when:(e,t)=>{var o;return((o=t.targetCollection)==null?void 0:o.template)==="tree"},isDefault:!0,order:60});import_flow_engine.EditableItemModel.bindModelToInterface("CascadeSelectListFieldModel",["m2m","o2m","mbm"],{when:(e,t)=>{var o;return((o=t.targetCollection)==null?void 0:o.template)==="tree"},isDefault:!0,order:60});const POPUP_BEFORE_CLOSE_NEXT=Symbol("popupBeforeCloseNext");function visitModelTree(e,t){const o=e?[e]:[],r=new Set;for(;o.length;){const i=o.pop();!(i!=null&&i.uid)||r.has(i.uid)||(r.add(i.uid),t(i),Object.values(i.subModels||{}).forEach(n=>{Array.isArray(n)?o.push(...n):n&&typeof n=="object"&&o.push(n)}))}}function unlinkBeforeClose(e,t){let o,r=e.beforeClose;for(;r;){if(r===t){o?o[POPUP_BEFORE_CLOSE_NEXT]=r[POPUP_BEFORE_CLOSE_NEXT]:e.beforeClose=r[POPUP_BEFORE_CLOSE_NEXT];break}if(!(POPUP_BEFORE_CLOSE_NEXT in r))break;o=r,r=r[POPUP_BEFORE_CLOSE_NEXT]}}function bindPopupSubTableBeforeClose({view:e,model:t,modal:o,t:r}){const i=(a=[])=>{const c=[],u=a.length?new Set(a):null;return visitModelTree(t,d=>{var m,p;d.uid&&(p=(m=d.getUserModifiedFields)==null?void 0:m.call(d))!=null&&p.size&&!(u!=null&&u.has(d.uid))&&c.push(d.uid)}),c},n=a=>{if(!a.length)return;const c=new Set(a);visitModelTree(t,u=>{var d;u.uid&&c.has(u.uid)&&((d=u.resetUserModifiedFields)==null||d.call(u))})},l=a=>L(this,null,function*(){const c=a.force?[]:i(a.ignoredDirtyFormModelUids);if(c.length&&!(yield o.confirm({title:r("Unsaved changes"),content:r("Are you sure you don't want to save?"),okText:r("Confirm"),cancelText:r("Cancel")})))return!1;const u=l[POPUP_BEFORE_CLOSE_NEXT],d=c.length?Array.from(new Set([...a.ignoredDirtyFormModelUids||[],...c])):a.ignoredDirtyFormModelUids;return(yield u==null?void 0:u(A(x({},a),{ignoredDirtyFormModelUids:d})))!==!1?(c.length&&n(c),!0):!1});return l[POPUP_BEFORE_CLOSE_NEXT]=e.beforeClose,e.beforeClose=l,()=>{unlinkBeforeClose(e,l)}}function FieldWithoutPermissionPlaceholder({targetModel:e,children:t}){const o=e.context.t,r=e,i=r.context.collectionField.collection,n=i.dataSource,l=r.context.collectionField.name,a=(0,import_react2.useMemo)(()=>{const d=`${o(n.displayName||n.key)} > `,m=i?`${o(i.title)||i.name||i.tableName} > `:"";return`${d}${m}${l}`},[]),{actionName:c}=r.forbidden||{},u=(0,import_react2.useMemo)(()=>o(`The current user only has the UI configuration permission, but don't have "{{actionName}}" permission for field "{{name}}"`,{name:a,actionName:o((0,import_lodash.capitalize)(c))}).replaceAll("&gt;",">"),[a,o]);return(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:u,children:t})}function RemoteModelRenderer({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,skipSave:!o.flowSettingsEnabled});return n.context.defineProperty("associationModel",{value:t.context.associationModel}),n.actionName=e.scene,n}),{refreshDeps:[o,e]});return(0,import_react2.useEffect)(()=>{if(r!=null&&r.uid)return bindPopupSubTableBeforeClose({view:o.view,model:r,modal:o.modal,t:o.t})},[o,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 EditFormContent({model:e,scene:t="update"}){const o=(0,import_flow_engine.useFlowContext)(),{Header:r,type:i}=o.view;e._closeView=o.view.close;const n=t==="create"?o.t("Add new"):o.t("Edit");return(0,import_jsx_runtime.jsxs)("div",{children:[(0,import_jsx_runtime.jsx)(r,{title:i==="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:n}):n}),(0,import_jsx_runtime.jsx)(RemoteModelRenderer,{options:{parentId:o.view.inputArgs.parentId,subKey:`${t}.edit-form-grid-block`,async:!0,delegateToParent:!1,subType:"object",use:"BlockGridModel",scene:t},fieldModel:e})]})}class SubTableRecordAction extends ActionModel{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)(FieldWithoutPermissionPlaceholder,{targetModel:this,children:(0,import_jsx_runtime.jsx)(import_antd.Button,A(x({},t),{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()}))})}}SubTableRecordAction.registerFlow({key:"buttonAclSettings",steps:{aclCheck:{use:"aclCheck",handler(e,t){return L(this,null,function*(){var o,r;const i=yield e.aclCheck({dataSourceKey:(o=e.dataSource)==null?void 0:o.key,resourceName:(r=e.collectionField)==null?void 0:r.collectionName,actionName:e.actionName,fields:[e.collectionField.name]});e.actionName&&(i||(e.model.hidden=!0,e.model.forbidden={actionName:e.actionName},e.exitAll()))})}}}});class PopupSubTableEditActionModel extends SubTableRecordAction{constructor(){super(...arguments),R(this,"selectedRows",import_flow_engine.observable.ref([])),R(this,"defaultPopupTitle",(0,import_flow_engine.tExpr)("Edit")),R(this,"defaultProps",{type:"link",title:(0,import_flow_engine.tExpr)("Edit")})}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,{collection:this.context.collectionField.targetCollection,children:(0,import_jsx_runtime.jsx)(import_antd.Button,A(x({},t),{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()}))})}getAclActionName(){return"update"}onDispatchEventStart(t){return L(this,null,function*(){t==="beforeRender"&&(this.onClick=o=>{this.dispatchEvent("openView",x({event:o},this.getInputArgs()))})})}}PopupSubTableEditActionModel.registerFlow({key:"buttonAclSettings",steps:{aclCheck:{handler(e,t){return L(this,null,function*(){var o,r;const i=yield e.aclCheck({dataSourceKey:(o=e.dataSource)==null?void 0:o.key,resourceName:(r=e.collectionField)==null?void 0:r.target,actionName:e.actionName});e.actionName&&!i&&!e.record.__is_new__&&(e.model.hidden=!0,e.model.forbidden={actionName:e.actionName},e.exitAll())})}}}});PopupSubTableEditActionModel.define({label:(0,import_flow_engine.tExpr)("Edit")});PopupSubTableEditActionModel.registerFlow({key:"popupSettings",title:(0,import_flow_engine.tExpr)("Edit 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,u,d,m,p,h,g;const f={drawer:{small:"30%",medium:"50%",large:"70%"},dialog:{small:"40%",medium:"50%",large:"80%"},embed:{}},_=e.inputArgs.mode||t.mode||"drawer",v=e.inputArgs.size||t.size||"medium",b=e==null?void 0:e.associationModel,F=(c=(r=e==null?void 0:e.item)!=null?r:(o=b==null?void 0:b.context)==null?void 0:o.item)!=null?c:{value:(a=typeof((i=b==null?void 0:b.context)==null?void 0:i.getFormValues)=="function"?b.context.getFormValues():(n=b==null?void 0:b.context)==null?void 0:n.formValues)!=null?a:(l=b==null?void 0:b.context)==null?void 0:l.record},y=(p=(u=e==null?void 0:e.getPropertyOptions)==null?void 0:u.call(e,"item"))!=null?p:(m=(d=b==null?void 0:b.context)==null?void 0:d.getPropertyOptions)==null?void 0:m.call(d,"item"),C=Array.isArray((h=b==null?void 0:b.props)==null?void 0:h.value)?b.props.value.length:void 0,S=(()=>{var P,j;try{const I=(P=b==null?void 0:b.props)==null?void 0:P.value,T=e==null?void 0:e.record;if(!Array.isArray(I)||!T)return;const D=I.indexOf(T);if(D>=0)return D;if(T.__index__!=null){const w=I.findIndex(k=>(k==null?void 0:k.__index__)===T.__index__);if(w>=0)return w}const E=(j=e==null?void 0:e.collection)==null?void 0:j.filterTargetKey;if(Array.isArray(E)){if(!E.every(k=>(T==null?void 0:T[k])!=null))return;const w=I.findIndex(k=>E.every(N=>(k==null?void 0:k[N])===(T==null?void 0:T[N])));return w>=0?w:void 0}if(E){const w=T==null?void 0:T[E];if(w==null)return;const k=I.findIndex(N=>(N==null?void 0:N[E])===w);return k>=0?k:void 0}return}catch{return}})();e.viewer.open({type:_,width:f[_][v],inheritContext:!1,target:e.layoutContentElement,inputArgs:{parentId:e.model.uid,scene:"subForm",dataSourceKey:e.collection.dataSourceKey,collectionName:(g=e.collectionField)==null?void 0:g.target,collectionField:e.collectionField,record:e.record,parentItem:F,parentItemMeta:y==null?void 0:y.meta,parentItemResolver:y==null?void 0:y.resolveOnServer,itemIndex:S,itemLength:C},content:()=>(0,import_jsx_runtime.jsx)(EditFormContent,{model:e.model}),styles:{content:x({padding:0,backgroundColor:e.model.flowEngine.context.themeToken.colorBgLayout},_==="embed"?{position:"absolute",top:0,left:0,right:0,bottom:0}:{}),body:{padding:0}}})}}}});function getRowKey(e,t){if(!t)return null;if(Array.isArray(t)){const r=t.map(i=>e==null?void 0:e[i]);return r.some(i=>i==null)?null:r.join("__")}const o=e==null?void 0:e[t];return o==null?null:String(o)}const HeaderWrapperComponent$2=import_react2.default.memo(e=>{const t=(0,import_flow_engine.useFlowEngine)();return(0,import_jsx_runtime.jsx)(import_flow_engine.DndProvider,{onDragEnd:({active:o,over:r})=>{o.id&&r!=null&&r.id&&o.id!==r.id&&t.moveModel(o.id,r.id)},children:(0,import_jsx_runtime.jsx)("thead",x({},e))})}),RenderCell$1=(0,import_reactive_react.observer)(e=>{const t=e,{className:o,title:r,editable:i,width:n,record:l,recordIndex:a,dataIndex:c,children:u,model:d}=t,m=ee(t,["className","title","editable","width","record","recordIndex","dataIndex","children","model"]),p=(0,import_react2.useRef)(null),h=(0,import_flow_engine.useFlowModel)();return i?(0,import_jsx_runtime.jsxs)("td",A(x({ref:p},m),{className:(0,import_classnames.default)(o,import_css.css`
1964
1964
  .edit-icon {
1965
1965
  position: absolute;
1966
1966
  display: none;
@@ -2021,7 +2021,7 @@ ctx.message.success('Current form values: ' + JSON.stringify(values));
2021
2021
  &:hover {
2022
2022
  overflow: ${(i=this.flowEngine.flowSettings)!=null&&i.enabled?"visible":"hidden"}; /* 鼠标悬停时,内容可见 */
2023
2023
  }
2024
- `,children:(0,import_jsx_runtime.jsx)(Columns$1,{record:o,model:this,index:r,_subTableModel:this._subTableModel})})}}}PopupSubTableActionsColumnModel.define({label:'{{t("Actions")}}',createModelOptions:{stepParams:{tableColumnSettings:{title:{title:'{{t("Actions")}}'}}}},hide(e){return!e.disableFieldClickToOpen}});function matchPath(e,t){var o;return(o=e.find(r=>r===t||r.endsWith(`.${t}`)))!=null?o:t}class PopupSubTableFormSubmitActionModel extends ActionModel{constructor(){super(...arguments),R(this,"defaultProps",{title:(0,import_flow_engine.tExpr)("Submit"),type:"primary",htmlType:"submit"})}}PopupSubTableFormSubmitActionModel.define({label:(0,import_flow_engine.tExpr)("Submit")});PopupSubTableFormSubmitActionModel.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()}})}},save:{handler(e,t){return L(this,null,function*(){const o=e.blockModel,r=o.context.associationModel,i=r.context.resource,n=o.resource.getUpdateAssociationValues(),l=r.context.collectionField.name,a=i.getUpdateAssociationValues(),c=matchPath(a,l);try{const u=e!=null&&e.flowSettingsEnabled?getValidationNamePathsExcludingHiddenModels(o):null;Array.isArray(u)?u.length&&(yield o.form.validateFields(u)):yield o.form.validateFields();const d=o.form.getFieldsValue(!0),m=omitHiddenModelValuesFromSubmit(d,o);r.dispatchEvent("updateRow",{updatedRecord:m});const p=n.map(h=>`${c}.${h}`);i.addUpdateAssociationValues(p)}catch{return}e.view&&e.view.close()})}}}});class PopupSubTableFormActionGroupModel extends ActionGroupModel{}R(PopupSubTableFormActionGroupModel,"baseClass",PopupSubTableFormSubmitActionModel);const tt=class _t 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,"_defaultCustomModelClasses",{FormActionGroupModel:"PopupSubTableFormActionGroupModel",FormItemModel:"FormItemModel",FormCustomItemModel:"FormCustomItemModel",FormAssociationFieldGroupModel:"FormAssociationFieldGroupModel"})}onInit(t){var o,r,i,n,l;super.onInit(t);const a=()=>{var d,m,p;return resolveRecordPersistenceState(((m=(d=this.context.view)==null?void 0:d.inputArgs)==null?void 0:m.record)||{},(p=this.context.collection)==null?void 0:p.filterTargetKey)};this.context.defineProperty("resourceName",{get:()=>this.context.collection.name}),this.context.defineProperty("record",{get:()=>a().record,cache:!1});const c=createParentItemAccessorsFromInputArgs(()=>{var d;return((d=this.context.view)==null?void 0:d.inputArgs)||{}}),u=createItemChainGetter({valueAccessor:()=>this.context.formValues,parentItemAccessor:()=>{var d,m;return(m=(d=this.context.view)==null?void 0:d.inputArgs)==null?void 0:m.parentItem},indexAccessor:()=>{var d,m;const p=(m=(d=this.context.view)==null?void 0:d.inputArgs)==null?void 0:m.itemIndex;return typeof p=="number"?p:void 0},lengthAccessor:()=>{var d,m;const p=(m=(d=this.context.view)==null?void 0:d.inputArgs)==null?void 0:m.itemLength;return typeof p=="number"?p:void 0},isNewAccessor:()=>a().isNew,isStoredAccessor:()=>a().isStored});this.context.defineProperty("item",x({get:u},createAssociationItemChainContextPropertyOptions({t:this.context.t,title:buildCurrentItemTitle(this.context.t,(r=(o=this.context.view)==null?void 0:o.inputArgs)==null?void 0:r.collectionField),showParentIndex:typeof((l=(n=(i=this.context.view)==null?void 0:i.inputArgs)==null?void 0:n.parentItem)==null?void 0:l.index)=="number",collectionAccessor:()=>this.context.collection,propertiesAccessor:d=>{var m;return(m=d==null?void 0:d.item)==null?void 0:m.value},resolverPropertiesAccessor:()=>this.context.formValues,parentCollectionAccessor:()=>{var d,m,p;return(p=(m=(d=this.context.view)==null?void 0:d.inputArgs)==null?void 0:m.collectionField)==null?void 0:p.collection},parentAccessors:c})))}createResource(t,o){const r=this.context.createResource(import_flow_engine.SingleRecordResource);return r.isNewRecord=!1,r}defaultBlockTitle(){var t,o,r,i,n,l;const a=((t=this.dataSource)==null?void 0:t.displayName)||((o=this.dataSource)==null?void 0:o.key),c=((n=(i=(r=this.context)==null?void 0:r.dataSourceManager)==null?void 0:i.getDataSources)==null?void 0:n.call(i).length)||0,u=(l=this.collection)==null?void 0:l.title,d=`${c>1&&a?`${a} > `:""}${u}`;return`${getFormLabelText(this)}: ${d}`}static defineChildren(t){return L(this,null,function*(){const o=a=>{var c;if(!((c=this.meta)!=null&&c.createModelOptions))return a||{};if(typeof this.meta.createModelOptions=="function"){const u=this.meta.createModelOptions(t);return import_lodash.default.merge({},u,a)}return import_lodash.default.merge({},this.meta.createModelOptions,a)},r=a=>this.name+a,{dataSourceKey:i,collectionName:n}=t.view.inputArgs,l={dataSourceKey:i,collectionName:n};return[{key:r("current-record"),label:"Current record",useModel:this.name,createModelOptions:o({stepParams:{resourceSettings:{init:l}}})}]})}onMount(){return L(this,null,function*(){Ne(_t.prototype,this,"onMount").call(this)})}renderComponent(){const{colon:t,labelAlign:o,labelWidth:r,labelWrap:i,layout:n}=this.props,l=!!this.context.flowSettingsEnabled;return(0,import_jsx_runtime.jsxs)(FormComponent,{model:this,layoutProps:{colon:t,labelAlign:o,labelWidth:r,labelWrap:i,layout:n},children:[(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,{model:this.subModels.grid,showFlowSettings:!1}),(0,import_jsx_runtime.jsx)(import_flow_engine.DndProvider,{children:(0,import_jsx_runtime.jsxs)(import_antd.Space,{wrap:!0,children:[this.mapSubModels("actions",a=>{if(!(a.hidden&&!l))return(0,import_jsx_runtime.jsx)(import_flow_engine.Droppable,{model:a,children:(0,import_jsx_runtime.jsx)(import_flow_engine.MemoFlowModelRenderer,{model:a,showFlowSettings:this.context.flowSettingsEnabled?this.actionFlowSettings:!1,extraToolbarItems:this.actionExtraToolbarItems},a.uid)},a.uid)}),this.renderConfigureActions()]})})]})}};R(tt,"scene",BlockSceneEnum.subForm);let PopupSubTableFormModel=tt;const getFormLabelText=e=>{var t;const o=((t=e.parent)==null?void 0:t.actionName)||e.actionName;return e.context.t,o==="create"?"Form (Add new)":"Form (Edit)"},FormLabel=()=>{const e=(0,import_flow_engine.useFlowModel)();return getFormLabelText(e)};PopupSubTableFormModel.registerFlow({key:"init",steps:{init:{handler(e,t){const o=e.record[e.collection.filterTargetKey];!e.record.__is_new__&&o?(e.resource.setFilterByTk(o),e.resource.on("refresh",()=>L(this,null,function*(){const r=import_lodash.default.merge({},e.resource.getData(),e.record);r&&e.form&&e.form.setFieldsValue(r)}))):e.resource.isNewRecord=!0}}}});PopupSubTableFormModel.define({label:(0,import_jsx_runtime.jsx)(FormLabel,{}),searchable:!0,searchPlaceholder:(0,import_flow_engine.tExpr)("Search"),createModelOptions:{use:"PopupSubTableFormModel",subModels:{grid:{use:"FormGridModel"}}},sort:340});class FilterFormRecordSelectFieldModel extends RecordSelectFieldModel{onInit(t){var o;super.onInit(t);const r=(o=this.getStepParams("selectSettings","allowMultiple"))==null?void 0:o.allowMultiple,i=typeof r=="boolean"?r:typeof this.props.allowMultiple=="boolean"?this.props.allowMultiple:!0;this.setProps({allowMultiple:i,multiple:i,quickCreate:"none"})}}FilterFormRecordSelectFieldModel.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"},defaultParams:{allowMultiple:!0},handler(e,t){var o;const r=(o=e.model.getStepParams("selectSettings","allowMultiple"))==null?void 0:o.allowMultiple,i=typeof(t==null?void 0:t.allowMultiple)=="boolean"?t.allowMultiple:typeof r=="boolean"?r:typeof e.model.props.allowMultiple=="boolean"?e.model.props.allowMultiple:!0;e.model.setProps({allowMultiple:i,multiple:i})}}}});FilterFormRecordSelectFieldModel.define({label:(0,import_flow_engine.tExpr)("Dropdown select")});import_flow_engine.FilterableItemModel.bindModelToInterface("FilterFormRecordSelectFieldModel",["m2m","m2o","o2o","o2m","oho","obo","updatedBy","createdBy","mbm"],{isDefault:!0,defaultProps:{allowMultiple:!0,multiple:!0,quickCreate:"none"}});class DateTimeFilterFieldModel extends FilterFormFieldModel{render(){return(0,import_jsx_runtime.jsx)(DateFilterDynamicComponent,x({},this.props))}}const DateOnlyPicker$1=e=>{const t=e,{value:o,format:r="YYYY-MM-DD",picker:i="date",showTime:n}=t,l=ee(t,["value","format","picker","showTime"]),a=A(x({},l),{value:o,format:r,picker:i,showTime:n});return(0,import_jsx_runtime.jsx)(DateFilterDynamicComponent,x({},a))};class DateOnlyFilterFieldModel extends DateTimeFilterFieldModel{setProps(t){super.setProps(A(x({},t),{showTime:!1,utc:!1}))}render(){return(0,import_jsx_runtime.jsx)(DateOnlyPicker$1,x({},this.props))}}import_flow_engine.FilterableItemModel.bindModelToInterface("DateOnlyFilterFieldModel",["date"],{isDefault:!0});const DateTimeNoTzPicker$1=e=>{const t=e,{value:o,format:r="YYYY-MM-DD HH:mm:ss",showTime:i,picker:n="date"}=t,l=ee(t,["value","format","showTime","picker"]),a=i&&n==="date"?"YYYY-MM-DD":r;return(0,import_jsx_runtime.jsx)(DateFilterDynamicComponent,A(x({},l),{value:o,format:a,picker:n,showTime:i}))};class DateTimeNoTzFilterFieldModel extends DateTimeFilterFieldModel{render(){return(0,import_jsx_runtime.jsx)(DateTimeNoTzPicker$1,x({},this.props))}}import_flow_engine.FilterableItemModel.bindModelToInterface("DateTimeNoTzFilterFieldModel",["datetimeNoTz"],{isDefault:!0});const DateTimeTzPicker$1=e=>{const t=e,{value:o,format:r="YYYY-MM-DD HH:mm:ss",picker:i="date",showTime:n}=t,l=ee(t,["value","format","picker","showTime"]),a=n&&i==="date"?"YYYY-MM-DD":r,c=A(x({},l),{value:o,format:a,picker:i,showTime:n});return(0,import_jsx_runtime.jsx)(DateFilterDynamicComponent,x({},c))};class DateTimeTzFilterFieldModel extends DateTimeFilterFieldModel{setProps(t){super.setProps(A(x({},t),{utc:!0}))}render(){return(0,import_jsx_runtime.jsx)(DateTimeTzPicker$1,x({},this.props))}}import_flow_engine.FilterableItemModel.bindModelToInterface("DateTimeTzFilterFieldModel",["createdAt","datetime","updatedAt","unixTimestamp"],{isDefault:!0});const RECORD_SELECT_DATA_SOURCE_KEY="recordSelectDataSourceKey",RECORD_SELECT_COLLECTION_KEY="recordSelectTargetCollection",RECORD_SELECT_TITLE_FIELD_KEY="recordSelectTitleField",RECORD_SELECT_VALUE_FIELD_KEY="recordSelectValueField",RECORD_SELECT_ALLOW_MULTIPLE_KEY="allowMultiple",RECORD_SELECT_MULTIPLE_KEY="multiple",RECORD_SELECT_VALUE_MODE_KEY="valueMode",RELATION_FIELD_TYPES=new Set(["belongsTo","belongsToMany","hasOne","hasMany","belongsToArray"]),FieldComponentProps=({fieldModel:e,source:t=[]})=>{var o,r,i,n,l;const a=(0,import_react.useField)(),{t:c}=(0,import_react_i18next.useTranslation)(),u=a.value||{},d=e||(u==null?void 0:u.fieldModel),m=(0,import_flow_engine.useFlowEngine)(),p=(0,import_flow_engine.useFlowContext)(),h=(o=p==null?void 0:p.app)==null?void 0:o.dataSourceManager,g=()=>a.value||{},f=(w,k)=>{a.setValue(A(x({},g()),{[w]:k}))},_=w=>{var k;if((k=a==null?void 0:a.form)!=null&&k.setValuesIn&&a!=null&&a.path){a.form.setValuesIn(a.path,w);return}a.setValue(w)},v=w=>{var k,N,B,M;const $=`${a.path.toString()}.${w}`,q=(M=(B=(N=(k=a.form)==null?void 0:k.query)==null?void 0:N.call(k,$))==null?void 0:B.take)==null?void 0:M.call(B);return(Array.isArray(q==null?void 0:q.errors)?q.errors:[]).flatMap(O=>O?Array.isArray(O.messages)?O.messages:O.messages?[O.messages]:[]:[]).filter(Boolean)},b=w=>{const k=v(w);return k.length?{feedbackStatus:"error",feedbackText:k.join(", ")}:{}};(0,import_react2.useEffect)(()=>{var w,k,N,B,M,$,q,O;const V=t.length?t:(u==null?void 0:u.source)||[];if(!V.length)return;const z=!!((k=(w=m==null?void 0:m.dataSourceManager)==null?void 0:w.getDataSource)!=null&&k.call(w,V[0])),U=(M=(B=(N=m==null?void 0:m.dataSourceManager)==null?void 0:N.getDataSources)==null?void 0:B.call(N))!=null?M:[],K=(z?V[0]:void 0)||(u==null?void 0:u[RECORD_SELECT_DATA_SOURCE_KEY])||(($=U[0])==null?void 0:$.key)||"main",H=(z?V.slice(1):V).join("."),Y=m.dataSourceManager.getCollectionField(`${K}.${H}`),Z=import_flow_engine.FilterableItemModel.getDefaultBindingByField(p.model.context,Y);if(!Y&&d!=="FilterFormCustomRecordSelectFieldModel"||!Z&&d!=="FilterFormCustomRecordSelectFieldModel")return;const W=((q=Y==null?void 0:Y.getComponentProps)==null?void 0:q.call(Y))||{},J=Z&&typeof Z.defaultProps=="function"?Z.defaultProps(p.model.context,a):Z==null?void 0:Z.defaultProps,oe=x(x(x({},J||{}),W),g());if((d==="FilterFormCustomRecordSelectFieldModel"||!d&&(Y!=null&&Y.target))&&Y!=null&&Y.target){const G=Y.targetCollection||m.dataSourceManager.getCollection(Y.dataSourceKey,Y.target);oe[RECORD_SELECT_DATA_SOURCE_KEY]=Y.dataSourceKey||K,oe[RECORD_SELECT_COLLECTION_KEY]=Y.target,oe[RECORD_SELECT_TITLE_FIELD_KEY]=Y.targetCollectionTitleFieldName||((O=G==null?void 0:G.titleCollectionField)==null?void 0:O.name)||oe[RECORD_SELECT_TITLE_FIELD_KEY],oe[RECORD_SELECT_VALUE_FIELD_KEY]=oe[RECORD_SELECT_VALUE_FIELD_KEY]||(G==null?void 0:G.filterTargetKey)||"id",oe[RECORD_SELECT_ALLOW_MULTIPLE_KEY]===void 0&&oe[RECORD_SELECT_MULTIPLE_KEY]===void 0&&(oe[RECORD_SELECT_ALLOW_MULTIPLE_KEY]=!0,oe[RECORD_SELECT_MULTIPLE_KEY]=!0),oe[RECORD_SELECT_VALUE_MODE_KEY]||(oe[RECORD_SELECT_VALUE_MODE_KEY]="value")}_(oe)},[e,d,t.join("."),u==null?void 0:u.source,m]);const F=(0,import_react2.useMemo)(()=>{var w,k,N;return(N=(k=(w=m==null?void 0:m.dataSourceManager)==null?void 0:w.getDataSources)==null?void 0:k.call(w))!=null?N:[]},[m]),y=(0,import_react2.useMemo)(()=>F.map(w=>{var k;return{label:(k=w.displayName)!=null?k:w.key,value:w.key}}),[F]),C=(u==null?void 0:u[RECORD_SELECT_DATA_SOURCE_KEY])||((r=F[0])==null?void 0:r.key)||"main",S=C?(n=(i=m==null?void 0:m.dataSourceManager)==null?void 0:i.getDataSource)==null?void 0:n.call(i,C):void 0,P=u==null?void 0:u[RECORD_SELECT_COLLECTION_KEY],j=P?(l=S==null?void 0:S.getCollection)==null?void 0:l.call(S,P):void 0,I=(0,import_react2.useCallback)(w=>w&&(p!=null&&p.t?p.t(w):c(w)),[p,c]),T=(0,import_react2.useMemo)(()=>S!=null&&S.getCollections?S.getCollections().filter(w=>{var k;return!((k=w.options)!=null&&k.hidden)}).map(w=>({label:I(w.title)||w.name,value:w.name})):[],[S,I]),D=(0,import_react2.useMemo)(()=>{if(!(j!=null&&j.getFields))return[];const w=k=>h?isTitleField(h,k.options):!0;return(j.getFields()||[]).filter(k=>w(k)).map(k=>{var N,B;return{label:I((B=(N=k.options)==null?void 0:N.uiSchema)==null?void 0:B.title)||I(k.title)||k.name,value:k.name}})},[j,h,I]),E=(0,import_react2.useMemo)(()=>{if(!(j!=null&&j.getFields))return[];const w=k=>{var N,B;const M=(k==null?void 0:k.options)||{},$=M.interface||(k==null?void 0:k.interface);if(M.filterable===!1||!$)return!1;if(h){const O=(B=(N=h.collectionFieldInterfaceManager)==null?void 0:N.getFieldInterface)==null?void 0:B.call(N,$);if(!(O!=null&&O.filterable))return!1}const q=M.type||(k==null?void 0:k.type);return!RELATION_FIELD_TYPES.has(q)};return(j.getFields()||[]).filter(k=>w(k)).map(k=>{var N,B;return{label:I((B=(N=k.options)==null?void 0:N.uiSchema)==null?void 0:B.title)||I(k.title)||k.name,value:k.name}})},[j,h,I]);if((0,import_react2.useEffect)(()=>{var w;if(d!=="FilterFormCustomRecordSelectFieldModel"||!P||u!=null&&u[RECORD_SELECT_TITLE_FIELD_KEY])return;const k=(w=j==null?void 0:j.titleCollectionField)==null?void 0:w.name;k&&a.setValue(A(x({},g()),{[RECORD_SELECT_TITLE_FIELD_KEY]:k}))},[e,d,P,j,u]),(0,import_react2.useEffect)(()=>{if(d!=="FilterFormCustomRecordSelectFieldModel"||!P)return;const w=u==null?void 0:u[RECORD_SELECT_VALUE_FIELD_KEY],k=E.map(M=>M.value);if(w&&k.includes(w))return;const N=j==null?void 0:j.filterTargetKey,B=N&&k.includes(N)&&N||k[0];B&&a.setValue(A(x({},g()),{[RECORD_SELECT_VALUE_FIELD_KEY]:B}))},[e,d,P,j,u,E]),(0,import_react2.useEffect)(()=>{d==="FilterFormCustomRecordSelectFieldModel"&&((u==null?void 0:u[RECORD_SELECT_ALLOW_MULTIPLE_KEY])!==void 0||(u==null?void 0:u[RECORD_SELECT_MULTIPLE_KEY])!==void 0||a.setValue(A(x({},g()),{[RECORD_SELECT_ALLOW_MULTIPLE_KEY]:!0,[RECORD_SELECT_MULTIPLE_KEY]:!0})))},[e,d,u]),e==="DateTimeFilterFieldModel")return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(import_antd_v5.FormItem,{label:c("Date format"),children:(0,import_jsx_runtime.jsxs)(import_antd.Radio.Group,{value:u.format||"YYYY-MM-DD",onChange:w=>f("format",w.target.value),children:[(0,import_jsx_runtime.jsx)(import_antd.Radio,{value:"YYYY/MM/DD",children:c("Year/Month/Day")}),(0,import_jsx_runtime.jsx)(import_antd.Radio,{value:"YYYY-MM-DD",children:c("Year-Month-Day")}),(0,import_jsx_runtime.jsx)(import_antd.Radio,{value:"DD/MM/YYYY",children:c("Day/Month/Year")})]})}),(0,import_jsx_runtime.jsx)(import_antd_v5.FormItem,{label:c("Time"),children:(0,import_jsx_runtime.jsx)(import_antd.Checkbox,{checked:u.showTime,onChange:w=>f("showTime",w.target.checked),children:c("Show time")})}),(0,import_jsx_runtime.jsx)(import_antd_v5.FormItem,{label:c("Date range"),children:(0,import_jsx_runtime.jsx)(import_antd.Checkbox,{checked:u.isRange,onChange:w=>f("isRange",w.target.checked),children:c("Show date range")})})]});if(e==="SelectFieldModel"){const w=u.options||[];return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(import_antd_v5.FormItem,{label:c("Mode"),children:(0,import_jsx_runtime.jsxs)(import_antd.Radio.Group,{value:u.mode||"",onChange:k=>f("mode",k.target.value),children:[(0,import_jsx_runtime.jsx)(import_antd.Radio,{value:"",children:c("Single select")}),(0,import_jsx_runtime.jsx)(import_antd.Radio,{value:"multiple",children:c("Multiple select")})]})}),(0,import_jsx_runtime.jsx)(import_antd_v5.FormItem,{label:c("Options"),children:(0,import_jsx_runtime.jsxs)(import_antd.Space,{direction:"vertical",size:8,style:{width:"100%"},children:[w.map((k,N)=>(0,import_jsx_runtime.jsxs)(import_antd.Space,{style:{width:"100%"},size:8,wrap:!0,align:"start",children:[(0,import_jsx_runtime.jsx)(import_antd.Input,{style:{flex:1,minWidth:120},placeholder:c("Option label"),value:k.label,onChange:B=>{const M=[...w];M[N]=A(x({},k),{label:B.target.value}),f("options",M)}}),(0,import_jsx_runtime.jsx)(import_antd.Input,{style:{flex:1,minWidth:120},placeholder:c("Option value"),value:k.value,onChange:B=>{const M=[...w];M[N]=A(x({},k),{value:B.target.value}),f("options",M)}}),(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"text",icon:(0,import_jsx_runtime.jsx)(import_icons.CloseOutlined,{}),onClick:()=>{const B=w.filter((M,$)=>$!==N);f("options",B)}})]},N)),(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"dashed",block:!0,icon:(0,import_jsx_runtime.jsx)(import_icons.PlusOutlined,{}),onClick:()=>{f("options",[...w,{label:"",value:""}])},children:c("Add")})]})})]})}if(e==="CheckboxGroupFieldModel"||e==="RadioGroupFieldModel"){const w=u.options||[];return(0,import_jsx_runtime.jsx)(import_antd_v5.FormItem,{label:c("Options"),children:(0,import_jsx_runtime.jsxs)(import_antd.Space,{direction:"vertical",size:8,style:{width:"100%"},children:[w.map((k,N)=>(0,import_jsx_runtime.jsxs)(import_antd.Space,{style:{width:"100%"},size:8,wrap:!0,align:"start",children:[(0,import_jsx_runtime.jsx)(import_antd.Input,{style:{flex:1,minWidth:120},placeholder:c("Option label"),value:k.label,onChange:B=>{const M=[...w];M[N]=A(x({},k),{label:B.target.value}),f("options",M)}}),(0,import_jsx_runtime.jsx)(import_antd.Input,{style:{flex:1,minWidth:120},placeholder:c("Option value"),value:k.value,onChange:B=>{const M=[...w];M[N]=A(x({},k),{value:B.target.value}),f("options",M)}}),(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"text",icon:(0,import_jsx_runtime.jsx)(import_icons.CloseOutlined,{}),onClick:()=>{const B=w.filter((M,$)=>$!==N);f("options",B)}})]},`${k.value}-${N}`)),(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"dashed",block:!0,icon:(0,import_jsx_runtime.jsx)(import_icons.PlusOutlined,{}),onClick:()=>{f("options",[...w,{label:"",value:""}])},children:c("Add")})]})})}return d==="FilterFormCustomRecordSelectFieldModel"?(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[y.length>1&&(0,import_jsx_runtime.jsx)(import_antd_v5.FormItem,{label:c("Data source"),children:(0,import_jsx_runtime.jsx)(import_antd.Select,{allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:c("Please select"),value:C,options:y,onChange:w=>{a.setValue(A(x({},u),{[RECORD_SELECT_DATA_SOURCE_KEY]:w,[RECORD_SELECT_COLLECTION_KEY]:void 0,[RECORD_SELECT_TITLE_FIELD_KEY]:void 0}))}})}),(0,import_jsx_runtime.jsx)(import_antd_v5.FormItem,A(x({label:c("Target collection"),asterisk:!0},b(RECORD_SELECT_COLLECTION_KEY)),{children:(0,import_jsx_runtime.jsx)(import_antd.Select,{allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:c("Select collection"),value:P,options:T,onChange:w=>{a.setValue(A(x({},u),{[RECORD_SELECT_COLLECTION_KEY]:w,[RECORD_SELECT_TITLE_FIELD_KEY]:void 0}))}})})),(0,import_jsx_runtime.jsx)(import_antd_v5.FormItem,A(x({label:c("Title field"),asterisk:!0},b(RECORD_SELECT_TITLE_FIELD_KEY)),{children:(0,import_jsx_runtime.jsx)(import_antd.Select,{allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:c("Please select"),value:u==null?void 0:u[RECORD_SELECT_TITLE_FIELD_KEY],options:D,onChange:w=>f(RECORD_SELECT_TITLE_FIELD_KEY,w)})})),(0,import_jsx_runtime.jsx)("div",{style:{color:"var(--colorTextDescription)",marginTop:-8,marginBottom:8},children:c("Used for display in the dropdown and selected tags.")}),(0,import_jsx_runtime.jsx)(import_antd_v5.FormItem,A(x({label:c("Value field"),asterisk:!0},b(RECORD_SELECT_VALUE_FIELD_KEY)),{children:(0,import_jsx_runtime.jsx)(import_antd.Select,{allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:c("Please select"),value:u==null?void 0:u[RECORD_SELECT_VALUE_FIELD_KEY],options:E,onChange:w=>f(RECORD_SELECT_VALUE_FIELD_KEY,w)})})),(0,import_jsx_runtime.jsx)("div",{style:{color:"var(--colorTextDescription)",marginTop:-8,marginBottom:8},children:c("Stored as the field value for filtering (usually the primary key).")}),(0,import_jsx_runtime.jsx)(import_antd_v5.FormItem,{label:c("Multiple"),children:(0,import_jsx_runtime.jsx)(import_antd.Checkbox,{checked:(u==null?void 0:u[RECORD_SELECT_ALLOW_MULTIPLE_KEY])!==!1,onChange:w=>{const k=w.target.checked;a.setValue(A(x({},u),{[RECORD_SELECT_ALLOW_MULTIPLE_KEY]:k,[RECORD_SELECT_MULTIPLE_KEY]:k}))},children:c("Allow multiple selection")})})]}):null};function FieldModelSelect(e){var t;const{source:o=[],onChange:r}=e,i=(0,import_flow_engine.useFlowEngine)(),n=(0,import_flow_engine.useFlowContext)(),l=e.valueMap||{},a=o.join("."),c=(0,import_react2.useRef)(),u=(0,import_react2.useMemo)(()=>m=>l&&l[m]?l[m]:m,[l]),d=(0,import_react2.useMemo)(()=>{if(!o.length)return;const m=i.dataSourceManager.getCollectionField(a),p=import_flow_engine.FilterableItemModel.getDefaultBindingByField(n.model.context,m);if(p)return u(p.modelName)},[a,u]);return(0,import_react2.useEffect)(()=>{if(!d){c.current=a;return}const m=c.current!==void 0&&c.current!==a;c.current=a;const p=u(e.value);if(e.value&&e.value!==p&&p!==d){r==null||r(p);return}(!e.value||m)&&p!==d&&(r==null||r(d))},[d,r,e.value,a,u]),(0,import_jsx_runtime.jsx)(import_antd_v5.Select,A(x({allowClear:!0},e),{value:u((t=e.value)!=null?t:d)}))}const MODEL_OPERATOR_MAP={InputFieldModel:string,NumberFieldModel:number,DateTimeFilterFieldModel:datetime,SelectFieldModel:e=>(e==null?void 0:e.mode)==="multiple"?array:enumType,RadioGroupFieldModel:enumType,CheckboxGroupFieldModel:array},MULTI_VALUE_OPERATOR_VALUES=new Set(["$in","$notIn","$empty","$notEmpty","$includes","$notIncludes"]),MULTI_VALUE_IN_OPERATOR={label:'{{t("is any of")}}',value:"$in",schema:{"x-component":"Select","x-component-props":{mode:"tags"}}},MULTI_VALUE_NOT_IN_OPERATOR={label:'{{t("is none of")}}',value:"$notIn",schema:{"x-component":"Select","x-component-props":{mode:"tags"}}},INTERFACE_FALLBACK_OPERATORS={input:string,email:string,phone:string,uuid:string,url:string,nanoid:string,textarea:string,markdown:bigField,vditor:bigField,richText:bigField,password:string,color:string,number,integer:number,id,snowflakeId:number,dateOnly:datetime,datetime,datetimeNoTz:datetime,unixTimestamp:datetime,time,select:enumType,multipleSelect:array,radioGroup:enumType,checkboxGroup:array,checkbox:boolean};function getOperatorListByModel(e,t={}){const o=MODEL_OPERATOR_MAP[e];return o?typeof o=="function"?o(t)||[]:o||[]:[]}function getSourceField(e,t=[],o){var r,i,n,l;if(!Array.isArray(t)||t.length===0)return;const a=!!((i=(r=e==null?void 0:e.dataSourceManager)==null?void 0:r.getDataSource)!=null&&i.call(r,t[0])),c=a?t[0]:o||"main",u=(a?t.slice(1):t).join(".");if(u)return(l=(n=e==null?void 0:e.dataSourceManager)==null?void 0:n.getCollectionField)==null?void 0:l.call(n,`${c}.${u}`)}function getFieldOperators(e){var t,o,r,i;if(!e)return[];const n=(t=e.filterable)==null?void 0:t.operators;if(Array.isArray(n)&&n.length>0)return n;let l;try{l=(i=(r=(o=e.getInterfaceOptions)==null?void 0:o.call(e))==null?void 0:r.filterable)==null?void 0:i.operators}catch{l=void 0}return Array.isArray(l)&&l.length>0?l:e.interface&&INTERFACE_FALLBACK_OPERATORS[e.interface]?INTERFACE_FALLBACK_OPERATORS[e.interface]:(operators$1==null?void 0:operators$1[e.type])||[]}function isRecordSelectMultiple(e={}){return typeof(e==null?void 0:e.multiple)=="boolean"?e.multiple:typeof(e==null?void 0:e.allowMultiple)=="boolean"?e.allowMultiple:!0}function toUniqueOperators(e=[]){const t=new Set;return e.filter(o=>!(o!=null&&o.value)||t.has(o.value)?!1:(t.add(o.value),!0))}function toMultiValueOperators(e=[]){const t=e.some(c=>(c==null?void 0:c.value)==="$in"),o=e.some(c=>(c==null?void 0:c.value)==="$notIn"),r=e.filter(c=>MULTI_VALUE_OPERATOR_VALUES.has(c==null?void 0:c.value)&&(c==null?void 0:c.value)!=="$in"&&(c==null?void 0:c.value)!=="$notIn"||(c==null?void 0:c.noValue)||(c==null?void 0:c.value)==="$exists"||(c==null?void 0:c.value)==="$notExists"),i=e.some(c=>(c==null?void 0:c.value)&&!c.noValue&&c.value!=="$exists"&&c.value!=="$notExists"),n=i||t,l=i||o,a=[];return n&&a.push(MULTI_VALUE_IN_OPERATOR),l&&a.push(MULTI_VALUE_NOT_IN_OPERATOR),toUniqueOperators([...a,...r])}function getRecordSelectValueField(e,t={},o=[]){var r,i,n,l,a;const c=getSourceField(e,o,t==null?void 0:t.recordSelectDataSourceKey),u=(c==null?void 0:c.dataSourceKey)||(o==null?void 0:o[0])||"main",d=(t==null?void 0:t.recordSelectDataSourceKey)||u,m=(t==null?void 0:t.recordSelectTargetCollection)||((r=c==null?void 0:c.targetCollection)==null?void 0:r.name)||(c==null?void 0:c.target);if(!m)return;const p=(n=(i=e==null?void 0:e.dataSourceManager)==null?void 0:i.getCollection)==null?void 0:n.call(i,d,m);if(!p)return;const h=(t==null?void 0:t.recordSelectValueField)||(p==null?void 0:p.filterTargetKey)||((l=p==null?void 0:p.getPrimaryKey)==null?void 0:l.call(p));if(h)return(a=p.getField)==null?void 0:a.call(p,h)}function resolveByRecordSelect(e){const{flowEngine:t,fieldModelProps:o={},source:r=[]}=e,i=getRecordSelectValueField(t,o,r),n=getFieldOperators(i);return{operatorList:isRecordSelectMultiple(o)?toMultiValueOperators(n):n,meta:i}}function resolveByModelOrSource(e){const{flowEngine:t,fieldModel:o,fieldModelProps:r={},source:i=[]}=e;if(o==="FilterFormCustomRecordSelectFieldModel")return resolveByRecordSelect(e);const n=getOperatorListByModel(o,r);if(n.length>0)return{operatorList:n,meta:{fieldModel:o}};const l=getSourceField(t,i);return{operatorList:getFieldOperators(l),meta:l}}function resolveCustomFieldOperatorList(e){const{operatorList:t,meta:o}=resolveByModelOrSource(e);return toUniqueOperators((t||[]).filter(r=>!(r!=null&&r.visible)||r.visible(o)))}function resolveDefaultCustomFieldOperator(e){var t,o;const{fieldModel:r,fieldModelProps:i={}}=e,n=resolveCustomFieldOperatorList(e);if(r==="DateTimeFilterFieldModel"&&i!=null&&i.isRange){const l=n.find(a=>a.value==="$dateBetween");if(l)return l.value}return((t=n.find(l=>l.selected))==null?void 0:t.value)||((o=n[0])==null?void 0:o.value)}function toOperatorSelectOptions(e=[],t=o=>o){return e.map(o=>A(x({},o),{label:t(o.label),value:o.value}))}const FieldOperatorSelect=(0,import_flow_engine.observer)(e=>{var t;const o=e,{fieldModel:r,source:i=[],fieldModelProps:n={},value:l,onChange:a}=o,c=ee(o,["fieldModel","source","fieldModelProps","value","onChange"]),u=(0,import_react.useField)(),d=(0,import_flow_engine.useFlowEngine)(),m=(0,import_flow_engine.useFlowContext)(),p=((t=u==null?void 0:u.form)==null?void 0:t.values)||{},h=r||(p==null?void 0:p.fieldModel),g=i.length?i:(p==null?void 0:p.source)||[],f=p!=null&&p.fieldModelProps&&Object.keys(p.fieldModelProps).length>0?p.fieldModelProps:n,_=Array.isArray(g)?g.join("."):"",v=f==null?void 0:f.mode,b=f==null?void 0:f.allowMultiple,F=f==null?void 0:f.multiple,y=f==null?void 0:f.recordSelectDataSourceKey,C=f==null?void 0:f.recordSelectTargetCollection,S=f==null?void 0:f.recordSelectValueField,P=(0,import_react2.useMemo)(()=>resolveCustomFieldOperatorList({flowEngine:d,fieldModel:h,source:g,fieldModelProps:f}),[d,h,_,v,b,F,y,C,S]),j=(0,import_react2.useMemo)(()=>toOperatorSelectOptions(P,I=>m.t(I)),[P,m]);return(0,import_react2.useEffect)(()=>{if(!j.length){l!==void 0&&(a==null||a(void 0));return}if(j.some(T=>T.value===l))return;const I=resolveDefaultCustomFieldOperator({flowEngine:d,fieldModel:h,source:g,fieldModelProps:f});I!==l&&(a==null||a(I))},[d,h,a,j,_,l,v,b,F,y,C,S]),(0,import_jsx_runtime.jsx)(import_antd_v5.Select,A(x({allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:m.t("Please select")},c),{options:j,value:l,onChange:a,disabled:j.length===0}))});class FilterFormCustomItemModel extends import_flow_engine.FlowModel{static defineChildren(t){const o=t.engine.filterModelClassByParent("CommonItemModel"),r=t.engine.filterModelClassByParent("FilterFormCustomItemModel"),i=n=>Array.from(n.entries()).map(([l,a])=>{var c,u,d;const m={key:l,label:t.t(a.meta.label),sort:(c=a.meta.sort)!=null?c:999,searchable:!!((u=a.meta)!=null&&u.searchable),searchPlaceholder:(d=a.meta)==null?void 0:d.searchPlaceholder};return m.createModelOptions={use:l},m});return import_lodash.default.sortBy([...i(o),...i(r)],"sort")}}R(FilterFormCustomItemModel,"renderMode",import_flow_engine.ModelRenderMode.RenderFunction);FilterFormCustomItemModel.define({hide:!0,label:(0,import_flow_engine.tExpr)("Others")});function SourceCascader(e){const t=(0,import_flow_engine.useFlowEngine)(),o=(0,import_react2.useCallback)(()=>{const l=t==null?void 0:t.dataSourceManager;return l?l.getDataSources().map(a=>{var c;return{value:a.key,label:(c=a.displayName)!=null?c:a.key,isLeaf:!1,meta:{type:"dataSource",dataSourceKey:a.key}}}):[]},[t]),[r,i]=(0,import_react2.useState)(()=>o());(0,import_react2.useEffect)(()=>{i(o())},[o]);const n=(0,import_react2.useCallback)(l=>{var a,c,u,d;const m=l[l.length-1];if(!m||(a=m.children)!=null&&a.length)return;const p=t==null?void 0:t.dataSourceManager;if(!p)return;let h=[];if(l.length===1){const g=m.value,f=p.getDataSource(g);h=((c=f==null?void 0:f.getCollections())!=null?c:[]).map(_=>({value:_.name,label:_.title,isLeaf:!1,meta:{type:"collection",dataSourceKey:g,collectionName:_.name,fullPath:_.name}}))}else{const g=m.meta||{},f=g.dataSourceKey,_=p.getDataSource(f),v=_==null?void 0:_.collectionManager;if(!_||!v){m.isLeaf=!0,i(b=>[...b]);return}if(g.type==="collection"){const b=v.getCollection(g.collectionName);h=((u=b==null?void 0:b.getFields())!=null?u:[]).filter(F=>F.filterable).map(F=>{const y=`${g.fullPath}.${F.name}`,C=!!F.targetCollection;return{value:F.name,label:F.title,isLeaf:!C,meta:{type:"field",dataSourceKey:f,fullPath:y}}}).sort((F,y)=>y.isLeaf?0:-1)}else if(g.type==="field"){const b=_.getCollectionField(g.fullPath),F=b==null?void 0:b.targetCollection;h=((d=F==null?void 0:F.getFields())!=null?d:[]).filter(y=>y.filterable).map(y=>{const C=`${g.fullPath}.${y.name}`,S=!!y.targetCollection;return{value:y.name,label:y.title,isLeaf:!S,meta:{type:"field",dataSourceKey:f,fullPath:C}}}).sort((y,C)=>C.isLeaf?0:-1)}}h.length?m.children=h:m.isLeaf=!0,i(g=>[...g])},[t]);return(0,import_jsx_runtime.jsx)(import_antd.Cascader,A(x({allowClear:!0},e),{options:r,loadData:n}))}const validateRecordSelectRequired=(e,t,o)=>{var r,i,n;if(((i=(r=o==null?void 0:o.form)==null?void 0:r.values)==null?void 0:i.fieldModel)==="FilterFormCustomRecordSelectFieldModel"&&(e==null||e===""))return((n=o==null?void 0:o.t)==null?void 0:n.call(o,"The field value is required"))||"The field value is required"};class FilterFormCustomFieldModel extends FilterFormCustomItemModel{constructor(){super(...arguments),R(this,"customFieldModelInstance",null),R(this,"customFieldProps",null),R(this,"operator"),R(this,"debouncedDoFilter"),R(this,"lastAutoTriggerValue"),R(this,"autoTriggerInitialized",!1),R(this,"handleEnterPress",t=>{t.key==="Enter"&&(t.preventDefault(),this.doFilter())})}buildRecordSelectCollectionField(t,o){var r,i,n,l,a,c;const u=(o==null?void 0:o.recordSelectDataSourceKey)||"main",d=o==null?void 0:o.recordSelectTargetCollection;if(!d)return;const m=(i=(r=t.dataSourceManager)==null?void 0:r.getDataSource)==null?void 0:i.call(r,u),p=(n=m==null?void 0:m.getCollection)==null?void 0:n.call(m,d);if(!m||!p)return;const h=(o==null?void 0:o.recordSelectTitleField)||((l=p.titleCollectionField)==null?void 0:l.name)||((c=(a=p.titleCollectionField)==null?void 0:a.options)==null?void 0:c.name),g=(o==null?void 0:o.recordSelectValueField)||p.filterTargetKey||"id",f=new import_flow_engine.CollectionField({name:(o==null?void 0:o.name)||"recordSelect",interface:"m2o",type:"belongsTo",target:d,dataSourceKey:u,uiSchema:{"x-component":"Select"},fieldNames:{label:h,value:g}});return f.setCollection(p),f}get defaultTargetUid(){return this.getStepParams("filterFormItemSettings","init").defaultTargetUid}onInit(t){super.onInit(t),this.debouncedDoFilter=(0,import_lodash.debounce)(this.doFilter.bind(this),300)}onUnmount(){super.onUnmount(),this.debouncedDoFilter.cancel()}doFilter(){this.context.filterManager.refreshTargetsByFilter(this.uid)}doReset(){this.context.filterManager.refreshTargetsByFilter(this.uid)}getFilterValue(){var t,o,r,i;const n=(t=this.customFieldModelInstance)!=null&&t.getFilterValue?this.customFieldModelInstance.getFilterValue():(o=this.context.form)==null?void 0:o.getFieldValue(this.props.name),l=this.getCurrentOperatorMeta(),a=normalizeFilterValueByOperator(this.operator,n);if(l!=null&&l.noValue){const c=(i=(r=l==null?void 0:l.schema)==null?void 0:r["x-component-props"])==null?void 0:i.options;return Array.isArray(c)?a:!0}return a}getCurrentOperatorMeta(){const t=this.getStepParams("formItemSettings","fieldSettings")||{},o=t.fieldModel,r=t.source||[],i=this.customFieldProps||t.fieldModelProps||{},n=resolveCustomFieldOperatorList({flowEngine:this.flowEngine,fieldModel:o,source:r,fieldModelProps:i}),l=this.operator||t.operator;return l&&n.find(a=>a.value===l)||null}getValueProps(t){return this.context.blockModel.autoTriggerFilter&&(this.autoTriggerInitialized?(0,import_lodash.isEqual)(this.lastAutoTriggerValue,t)||(this.lastAutoTriggerValue=(0,import_lodash.cloneDeep)(t),this.debouncedDoFilter()):(this.autoTriggerInitialized=!0,this.lastAutoTriggerValue=(0,import_lodash.cloneDeep)(t))),{value:t,onKeyDown:this.handleEnterPress.bind(this)}}render(){return this.customFieldModelInstance?(0,import_jsx_runtime.jsx)(import_flow_engine.FormItem,A(x({},this.props),{getValueProps:this.getValueProps.bind(this),children:(0,import_jsx_runtime.jsx)(import_flow_engine.FieldModelRenderer,{model:this.customFieldModelInstance})})):null}}FilterFormCustomFieldModel.define({label:'{{t("Custom field")}}',sort:1});FilterFormCustomFieldModel.registerFlow({key:"formItemSettings",title:(0,import_flow_engine.tExpr)("Form item settings"),steps:{fieldSettings:{preset:!0,title:(0,import_flow_engine.tExpr)("Field settings"),uiSchema:{title:{type:"string",title:(0,import_flow_engine.tExpr)("Field title"),"x-component":"Input","x-decorator":"FormItem",required:!0},name:{type:"string",title:(0,import_flow_engine.tExpr)("Field name"),"x-component":"Input","x-decorator":"FormItem",required:!0,description:'{{t("Randomly generated and can be modified. Support letters, numbers and underscores, must start with an letter.")}}'},source:{type:"array",title:(0,import_flow_engine.tExpr)("Field source"),"x-decorator":"FormItem","x-component":SourceCascader,"x-component-props":{placeholder:(0,import_flow_engine.tExpr)("Select a source field to use metadata of the field")},description:(0,import_flow_engine.tExpr)("Select a source field to use metadata of the field")},fieldModel:{type:"string",title:(0,import_flow_engine.tExpr)("Field type"),"x-component":FieldModelSelect,"x-decorator":"FormItem",required:!0,enum:[{label:(0,import_flow_engine.tExpr)("Input"),value:"InputFieldModel"},{label:(0,import_flow_engine.tExpr)("Number"),value:"NumberFieldModel"},{label:(0,import_flow_engine.tExpr)("Date"),value:"DateTimeFilterFieldModel"},{label:(0,import_flow_engine.tExpr)("Select"),value:"SelectFieldModel"},{label:(0,import_flow_engine.tExpr)("Radio group"),value:"RadioGroupFieldModel"},{label:(0,import_flow_engine.tExpr)("Checkbox group"),value:"CheckboxGroupFieldModel"},{label:(0,import_flow_engine.tExpr)("Record select"),value:"FilterFormCustomRecordSelectFieldModel"}],"x-component-props":{placeholder:(0,import_flow_engine.tExpr)("Please select"),valueMap:{RecordSelectFieldModel:"FilterFormCustomRecordSelectFieldModel"}},"x-reactions":[{dependencies:["source"],fulfill:{state:{componentProps:{source:"{{$deps[0]}}",valueMap:{RecordSelectFieldModel:"FilterFormCustomRecordSelectFieldModel"}}}}}]},fieldModelProps:{type:"object",title:(0,import_flow_engine.tExpr)("Component properties"),"x-component":FieldComponentProps,properties:{recordSelectTargetCollection:{type:"string","x-validator":validateRecordSelectRequired},recordSelectTitleField:{type:"string","x-validator":validateRecordSelectRequired},recordSelectValueField:{type:"string","x-validator":validateRecordSelectRequired}},"x-reactions":[{dependencies:["fieldModel","source"],fulfill:{state:{componentProps:{fieldModel:"{{$deps[0]}}",source:"{{$deps[1]}}"}}}}]},operator:{type:"string",title:(0,import_flow_engine.tExpr)("Operator"),"x-component":FieldOperatorSelect,"x-decorator":"FormItem",required:!0,"x-reactions":[{dependencies:["fieldModel","source","fieldModelProps"],fulfill:{state:{componentProps:{fieldModel:"{{$deps[0]}}",source:"{{$deps[1]}}",fieldModelProps:"{{$deps[2] || {}}}"}}}}]}},defaultParams(e){return{name:`f_${(0,import_client.uid)().slice(0,4)}`}},handler(e,t){var o,r;const{fieldModel:i,fieldModelProps:n={},title:l,name:a,source:c=[],operator:u}=t;e.model.setProps({label:l,name:a});let d=n,m;if(i==="FilterFormCustomRecordSelectFieldModel"){const h=(n==null?void 0:n.allowMultiple)===void 0?!0:!!(n!=null&&n.allowMultiple),g=(n==null?void 0:n.multiple)===void 0?h:!!(n!=null&&n.multiple);if(d=A(x({},n),{allowMultiple:h,multiple:g,valueMode:(n==null?void 0:n.valueMode)||"value"}),m=e.model.buildRecordSelectCollectionField(e,A(x({},d),{name:a})),m){const f=(n==null?void 0:n.recordSelectTitleField)||m.targetCollectionTitleFieldName,_=(n==null?void 0:n.recordSelectValueField)||((o=m.targetCollection)==null?void 0:o.filterTargetKey)||"id";f&&_&&(d=A(x({},d),{fieldNames:{label:f,value:_}}))}}if(e.model.customFieldModelInstance?e.model.customFieldModelInstance.setProps(x({allowClear:!0},d)):e.model.customFieldModelInstance=e.model.flowEngine.createModel({use:i,props:x({allowClear:!0},d)}),i==="FilterFormCustomRecordSelectFieldModel"){const h=(d==null?void 0:d.recordSelectTitleField)||((r=d==null?void 0:d.fieldNames)==null?void 0:r.label);h&&e.model.customFieldModelInstance.setStepParams("selectSettings","fieldNames",{label:h})}m&&e.model.customFieldModelInstance.context.defineProperty("collectionField",{value:m});const p=!!resolveCustomFieldOperatorList({flowEngine:e.model.flowEngine,fieldModel:i,source:c,fieldModelProps:d}).find(h=>h.value===u);e.model.operator=(p?u:void 0)||resolveDefaultCustomFieldOperator({flowEngine:e.model.flowEngine,fieldModel:i,source:c,fieldModelProps:d}),e.model.customFieldProps=d}},connectFields:{use:"connectFields"}}});const FILTER_FORM_VALUE_OPTIONS_GROUP="__filter_form_value_options__",isValidPrimaryKeyValue=(e,t)=>e==null||e===""?!1:typeof e=="number"||typeof e=="bigint"?!0:typeof e!="string"?!1:t&&/(int|big)/i.test(t)?/^-?\d+$/.test(e):!0,resolveAsPrimaryKey=(e,t)=>{if(typeof e=="number"||typeof e=="bigint"||typeof e=="string"&&/(int|big)/i.test(t||"")&&/^-?\d+$/.test(e))return e},normalizePrimaryKeys=(e,t,o,r,i,n)=>{const l=new Map;t.forEach(c=>{if(!c||typeof c!="object")return;const u=c==null?void 0:c[r],d=c==null?void 0:c[o];u!=null&&d!==void 0&&d!==null&&l.set(u,d)});const a=c=>{var u;if(c==null)return;if(typeof c=="object"){const m=c==null?void 0:c[o];if(m!=null)return m;const p=(u=c==null?void 0:c[r])!=null?u:c==null?void 0:c.value;if(r===o)return p;const h=l.get(p);return h??resolveAsPrimaryKey(p,n)}if(r===o)return c;const d=l.get(c);return d??resolveAsPrimaryKey(c,n)};return(i?Array.isArray(e)?e:[e]:[e]).map(c=>a(c)).filter(c=>isValidPrimaryKeyValue(c,n))},mergeOptionsByValue=(e=[],t=[],o)=>{const r=new Map;return[...e,...t].forEach(i=>{const n=i==null?void 0:i[o];n!=null&&r.set(n,i)}),Array.from(r.values())},useFieldPermissionMessage=(e,t)=>{var o,r;const i=(o=e==null?void 0:e.context)==null?void 0:o.collectionField,n=i==null?void 0:i.collection,l=n==null?void 0:n.dataSource,a=(r=e==null?void 0:e.context)==null?void 0:r.t,c=(i==null?void 0:i.name)||e.fieldPath,u=(0,import_react2.useMemo)(()=>{if(!a||!l)return"";const d=`${a(l.displayName||l.key)} > `,m=n?`${a(n.title)||n.name||n.tableName} > `:"";return`${d}${m}${c}`},[a,l,n,c]);return t||!a||!l?null:a(`The current user only has the UI configuration permission, but don't have "{{actionName}}" permission for field "{{name}}"`,{name:u,actionName:"Update"}).replaceAll("&gt;",">")},FilterFormLazySelect=e=>{var t;const o=e,{fieldNames:r={label:"label",value:"value"},value:i,multiple:n,allowMultiple:l,options:a,quickCreate:c,onChange:u,allowCreate:d=!0,allowEdit:m=!0,valueMode:p="record"}=o,h=ee(o,["fieldNames","value","multiple","allowMultiple","options","quickCreate","onChange","allowCreate","allowEdit","valueMode"]),g=!!(n&&l),f=resolveOptions(a,i,g),_=(0,import_flow_engine.useFlowModel)(),v=!!_.context.flowSettingsEnabled,{t:b}=(0,import_react_i18next.useTranslation)(),F=({searchText:C})=>(0,import_jsx_runtime.jsxs)("div",{onClick:()=>h.onDropdownAddClick(C),style:{cursor:"pointer",padding:"5px 12px",color:"#0d0c0c"},children:[(0,import_jsx_runtime.jsx)(import_icons.PlusOutlined,{}),(0,import_jsx_runtime.jsx)("span",{style:{paddingLeft:5},children:b("Add")+` “${C}” `})]}),y=useFieldPermissionMessage(_,m);return(0,import_jsx_runtime.jsxs)(import_antd.Space.Compact,{style:{width:"100%"},children:[(0,import_jsx_runtime.jsx)(import_antd.Select,A(x({style:{width:"100%"}},h),{allowClear:!0,showSearch:!0,maxTagCount:"responsive",maxTagPlaceholder:C=>(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:C.map(S=>(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:S.label},S.value))}),overlayInnerStyle:{background:"#fff",color:"#000",padding:8,maxWidth:"100%"},color:"#fff",overlayStyle:{pointerEvents:"auto",maxWidth:300},children:["+",C.length,"..."]}),filterOption:!1,labelInValue:!0,onCompositionEnd:C=>h.onCompositionEnd(C,!1),fieldNames:r,options:f,value:toSelectValue(i,r,g,p,f),mode:g?"multiple":void 0,onChange:(C,S)=>{var P;if(p==="value"){if(Array.isArray(S)){u(S.map(j=>{var I;return(I=j==null?void 0:j[r.value])!=null?I:j==null?void 0:j.value}).filter(j=>j!==void 0));return}u((P=S==null?void 0:S[r.value])!=null?P:S==null?void 0:S.value);return}u(S)},optionRender:({data:C})=>(0,import_jsx_runtime.jsx)(LabelByField,{option:C,fieldNames:r}),popupMatchSelectWidth:!0,labelRender:C=>(0,import_jsx_runtime.jsx)("div",{className:import_css.css`
2024
+ `,children:(0,import_jsx_runtime.jsx)(Columns$1,{record:o,model:this,index:r,_subTableModel:this._subTableModel})})}}}PopupSubTableActionsColumnModel.define({label:'{{t("Actions")}}',createModelOptions:{stepParams:{tableColumnSettings:{title:{title:'{{t("Actions")}}'}}}},hide(e){return!e.disableFieldClickToOpen}});function matchPath(e,t){var o;return(o=e.find(r=>r===t||r.endsWith(`.${t}`)))!=null?o:t}class PopupSubTableFormSubmitActionModel extends ActionModel{constructor(){super(...arguments),R(this,"defaultProps",{title:(0,import_flow_engine.tExpr)("Submit"),type:"primary",htmlType:"submit"})}}PopupSubTableFormSubmitActionModel.define({label:(0,import_flow_engine.tExpr)("Submit")});PopupSubTableFormSubmitActionModel.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()}})}},save:{handler(e,t){return L(this,null,function*(){var o;const r=e.blockModel,i=r.context.associationModel,n=i.context.resource,l=r.resource.getUpdateAssociationValues(),a=i.context.collectionField.name,c=n.getUpdateAssociationValues(),u=matchPath(c,a);try{const d=e!=null&&e.flowSettingsEnabled?getValidationNamePathsExcludingHiddenModels(r):null;Array.isArray(d)?d.length&&(yield r.form.validateFields(d)):yield r.form.validateFields();const m=r.form.getFieldsValue(!0),p=omitHiddenModelValuesFromSubmit(m,r);i.dispatchEvent("updateRow",{updatedRecord:p});const h=l.map(g=>`${u}.${g}`);n.addUpdateAssociationValues(h),(o=r.resetUserModifiedFields)==null||o.call(r)}catch{return}e.view&&e.view.close()})}}}});class PopupSubTableFormActionGroupModel extends ActionGroupModel{}R(PopupSubTableFormActionGroupModel,"baseClass",PopupSubTableFormSubmitActionModel);const tt=class _t 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,"_defaultCustomModelClasses",{FormActionGroupModel:"PopupSubTableFormActionGroupModel",FormItemModel:"FormItemModel",FormCustomItemModel:"FormCustomItemModel",FormAssociationFieldGroupModel:"FormAssociationFieldGroupModel"})}onInit(t){var o,r,i,n,l;super.onInit(t);const a=()=>{var d,m,p;return resolveRecordPersistenceState(((m=(d=this.context.view)==null?void 0:d.inputArgs)==null?void 0:m.record)||{},(p=this.context.collection)==null?void 0:p.filterTargetKey)};this.context.defineProperty("resourceName",{get:()=>this.context.collection.name}),this.context.defineProperty("record",{get:()=>a().record,cache:!1});const c=createParentItemAccessorsFromInputArgs(()=>{var d;return((d=this.context.view)==null?void 0:d.inputArgs)||{}}),u=createItemChainGetter({valueAccessor:()=>this.context.formValues,parentItemAccessor:()=>{var d,m;return(m=(d=this.context.view)==null?void 0:d.inputArgs)==null?void 0:m.parentItem},indexAccessor:()=>{var d,m;const p=(m=(d=this.context.view)==null?void 0:d.inputArgs)==null?void 0:m.itemIndex;return typeof p=="number"?p:void 0},lengthAccessor:()=>{var d,m;const p=(m=(d=this.context.view)==null?void 0:d.inputArgs)==null?void 0:m.itemLength;return typeof p=="number"?p:void 0},isNewAccessor:()=>a().isNew,isStoredAccessor:()=>a().isStored});this.context.defineProperty("item",x({get:u},createAssociationItemChainContextPropertyOptions({t:this.context.t,title:buildCurrentItemTitle(this.context.t,(r=(o=this.context.view)==null?void 0:o.inputArgs)==null?void 0:r.collectionField),showParentIndex:typeof((l=(n=(i=this.context.view)==null?void 0:i.inputArgs)==null?void 0:n.parentItem)==null?void 0:l.index)=="number",collectionAccessor:()=>this.context.collection,propertiesAccessor:d=>{var m;return(m=d==null?void 0:d.item)==null?void 0:m.value},resolverPropertiesAccessor:()=>this.context.formValues,parentCollectionAccessor:()=>{var d,m,p;return(p=(m=(d=this.context.view)==null?void 0:d.inputArgs)==null?void 0:m.collectionField)==null?void 0:p.collection},parentAccessors:c})))}createResource(t,o){const r=this.context.createResource(import_flow_engine.SingleRecordResource);return r.isNewRecord=!1,r}defaultBlockTitle(){var t,o,r,i,n,l;const a=((t=this.dataSource)==null?void 0:t.displayName)||((o=this.dataSource)==null?void 0:o.key),c=((n=(i=(r=this.context)==null?void 0:r.dataSourceManager)==null?void 0:i.getDataSources)==null?void 0:n.call(i).length)||0,u=(l=this.collection)==null?void 0:l.title,d=`${c>1&&a?`${a} > `:""}${u}`;return`${getFormLabelText(this)}: ${d}`}static defineChildren(t){return L(this,null,function*(){const o=a=>{var c;if(!((c=this.meta)!=null&&c.createModelOptions))return a||{};if(typeof this.meta.createModelOptions=="function"){const u=this.meta.createModelOptions(t);return import_lodash.default.merge({},u,a)}return import_lodash.default.merge({},this.meta.createModelOptions,a)},r=a=>this.name+a,{dataSourceKey:i,collectionName:n}=t.view.inputArgs,l={dataSourceKey:i,collectionName:n};return[{key:r("current-record"),label:"Current record",useModel:this.name,createModelOptions:o({stepParams:{resourceSettings:{init:l}}})}]})}onMount(){return L(this,null,function*(){Ne(_t.prototype,this,"onMount").call(this)})}renderComponent(){const{colon:t,labelAlign:o,labelWidth:r,labelWrap:i,layout:n}=this.props,l=!!this.context.flowSettingsEnabled;return(0,import_jsx_runtime.jsxs)(FormComponent,{model:this,layoutProps:{colon:t,labelAlign:o,labelWidth:r,labelWrap:i,layout:n},children:[(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,{model:this.subModels.grid,showFlowSettings:!1}),(0,import_jsx_runtime.jsx)(import_flow_engine.DndProvider,{children:(0,import_jsx_runtime.jsxs)(import_antd.Space,{wrap:!0,children:[this.mapSubModels("actions",a=>{if(!(a.hidden&&!l))return(0,import_jsx_runtime.jsx)(import_flow_engine.Droppable,{model:a,children:(0,import_jsx_runtime.jsx)(import_flow_engine.MemoFlowModelRenderer,{model:a,showFlowSettings:this.context.flowSettingsEnabled?this.actionFlowSettings:!1,extraToolbarItems:this.actionExtraToolbarItems},a.uid)},a.uid)}),this.renderConfigureActions()]})})]})}};R(tt,"scene",BlockSceneEnum.subForm);let PopupSubTableFormModel=tt;const getFormLabelText=e=>{var t;const o=((t=e.parent)==null?void 0:t.actionName)||e.actionName;return e.context.t,o==="create"?"Form (Add new)":"Form (Edit)"},FormLabel=()=>{const e=(0,import_flow_engine.useFlowModel)();return getFormLabelText(e)};PopupSubTableFormModel.registerFlow({key:"init",steps:{init:{handler(e,t){const o=e.record[e.collection.filterTargetKey];!e.record.__is_new__&&o?(e.resource.setFilterByTk(o),e.resource.on("refresh",()=>L(this,null,function*(){const r=import_lodash.default.merge({},e.resource.getData(),e.record);r&&e.form&&e.form.setFieldsValue(r)}))):e.resource.isNewRecord=!0}}}});PopupSubTableFormModel.define({label:(0,import_jsx_runtime.jsx)(FormLabel,{}),searchable:!0,searchPlaceholder:(0,import_flow_engine.tExpr)("Search"),createModelOptions:{use:"PopupSubTableFormModel",subModels:{grid:{use:"FormGridModel"}}},sort:340});class FilterFormRecordSelectFieldModel extends RecordSelectFieldModel{onInit(t){var o;super.onInit(t);const r=(o=this.getStepParams("selectSettings","allowMultiple"))==null?void 0:o.allowMultiple,i=typeof r=="boolean"?r:typeof this.props.allowMultiple=="boolean"?this.props.allowMultiple:!0;this.setProps({allowMultiple:i,multiple:i,quickCreate:"none"})}}FilterFormRecordSelectFieldModel.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"},defaultParams:{allowMultiple:!0},handler(e,t){var o;const r=(o=e.model.getStepParams("selectSettings","allowMultiple"))==null?void 0:o.allowMultiple,i=typeof(t==null?void 0:t.allowMultiple)=="boolean"?t.allowMultiple:typeof r=="boolean"?r:typeof e.model.props.allowMultiple=="boolean"?e.model.props.allowMultiple:!0;e.model.setProps({allowMultiple:i,multiple:i})}}}});FilterFormRecordSelectFieldModel.define({label:(0,import_flow_engine.tExpr)("Dropdown select")});import_flow_engine.FilterableItemModel.bindModelToInterface("FilterFormRecordSelectFieldModel",["m2m","m2o","o2o","o2m","oho","obo","updatedBy","createdBy","mbm"],{isDefault:!0,defaultProps:{allowMultiple:!0,multiple:!0,quickCreate:"none"}});class DateTimeFilterFieldModel extends FilterFormFieldModel{render(){return(0,import_jsx_runtime.jsx)(DateFilterDynamicComponent,x({},this.props))}}const DateOnlyPicker$1=e=>{const t=e,{value:o,format:r="YYYY-MM-DD",picker:i="date",showTime:n}=t,l=ee(t,["value","format","picker","showTime"]),a=A(x({},l),{value:o,format:r,picker:i,showTime:n});return(0,import_jsx_runtime.jsx)(DateFilterDynamicComponent,x({},a))};class DateOnlyFilterFieldModel extends DateTimeFilterFieldModel{setProps(t){super.setProps(A(x({},t),{showTime:!1,utc:!1}))}render(){return(0,import_jsx_runtime.jsx)(DateOnlyPicker$1,x({},this.props))}}import_flow_engine.FilterableItemModel.bindModelToInterface("DateOnlyFilterFieldModel",["date"],{isDefault:!0});const DateTimeNoTzPicker$1=e=>{const t=e,{value:o,format:r="YYYY-MM-DD HH:mm:ss",showTime:i,picker:n="date"}=t,l=ee(t,["value","format","showTime","picker"]),a=i&&n==="date"?"YYYY-MM-DD":r;return(0,import_jsx_runtime.jsx)(DateFilterDynamicComponent,A(x({},l),{value:o,format:a,picker:n,showTime:i}))};class DateTimeNoTzFilterFieldModel extends DateTimeFilterFieldModel{render(){return(0,import_jsx_runtime.jsx)(DateTimeNoTzPicker$1,x({},this.props))}}import_flow_engine.FilterableItemModel.bindModelToInterface("DateTimeNoTzFilterFieldModel",["datetimeNoTz"],{isDefault:!0});const DateTimeTzPicker$1=e=>{const t=e,{value:o,format:r="YYYY-MM-DD HH:mm:ss",picker:i="date",showTime:n}=t,l=ee(t,["value","format","picker","showTime"]),a=n&&i==="date"?"YYYY-MM-DD":r,c=A(x({},l),{value:o,format:a,picker:i,showTime:n});return(0,import_jsx_runtime.jsx)(DateFilterDynamicComponent,x({},c))};class DateTimeTzFilterFieldModel extends DateTimeFilterFieldModel{setProps(t){super.setProps(A(x({},t),{utc:!0}))}render(){return(0,import_jsx_runtime.jsx)(DateTimeTzPicker$1,x({},this.props))}}import_flow_engine.FilterableItemModel.bindModelToInterface("DateTimeTzFilterFieldModel",["createdAt","datetime","updatedAt","unixTimestamp"],{isDefault:!0});const RECORD_SELECT_DATA_SOURCE_KEY="recordSelectDataSourceKey",RECORD_SELECT_COLLECTION_KEY="recordSelectTargetCollection",RECORD_SELECT_TITLE_FIELD_KEY="recordSelectTitleField",RECORD_SELECT_VALUE_FIELD_KEY="recordSelectValueField",RECORD_SELECT_ALLOW_MULTIPLE_KEY="allowMultiple",RECORD_SELECT_MULTIPLE_KEY="multiple",RECORD_SELECT_VALUE_MODE_KEY="valueMode",RELATION_FIELD_TYPES=new Set(["belongsTo","belongsToMany","hasOne","hasMany","belongsToArray"]),FieldComponentProps=({fieldModel:e,source:t=[]})=>{var o,r,i,n,l;const a=(0,import_react.useField)(),{t:c}=(0,import_react_i18next.useTranslation)(),u=a.value||{},d=e||(u==null?void 0:u.fieldModel),m=(0,import_flow_engine.useFlowEngine)(),p=(0,import_flow_engine.useFlowContext)(),h=(o=p==null?void 0:p.app)==null?void 0:o.dataSourceManager,g=()=>a.value||{},f=(w,k)=>{a.setValue(A(x({},g()),{[w]:k}))},_=w=>{var k;if((k=a==null?void 0:a.form)!=null&&k.setValuesIn&&a!=null&&a.path){a.form.setValuesIn(a.path,w);return}a.setValue(w)},v=w=>{var k,N,B,M;const $=`${a.path.toString()}.${w}`,q=(M=(B=(N=(k=a.form)==null?void 0:k.query)==null?void 0:N.call(k,$))==null?void 0:B.take)==null?void 0:M.call(B);return(Array.isArray(q==null?void 0:q.errors)?q.errors:[]).flatMap(O=>O?Array.isArray(O.messages)?O.messages:O.messages?[O.messages]:[]:[]).filter(Boolean)},b=w=>{const k=v(w);return k.length?{feedbackStatus:"error",feedbackText:k.join(", ")}:{}};(0,import_react2.useEffect)(()=>{var w,k,N,B,M,$,q,O;const V=t.length?t:(u==null?void 0:u.source)||[];if(!V.length)return;const z=!!((k=(w=m==null?void 0:m.dataSourceManager)==null?void 0:w.getDataSource)!=null&&k.call(w,V[0])),U=(M=(B=(N=m==null?void 0:m.dataSourceManager)==null?void 0:N.getDataSources)==null?void 0:B.call(N))!=null?M:[],K=(z?V[0]:void 0)||(u==null?void 0:u[RECORD_SELECT_DATA_SOURCE_KEY])||(($=U[0])==null?void 0:$.key)||"main",H=(z?V.slice(1):V).join("."),Y=m.dataSourceManager.getCollectionField(`${K}.${H}`),Z=import_flow_engine.FilterableItemModel.getDefaultBindingByField(p.model.context,Y);if(!Y&&d!=="FilterFormCustomRecordSelectFieldModel"||!Z&&d!=="FilterFormCustomRecordSelectFieldModel")return;const W=((q=Y==null?void 0:Y.getComponentProps)==null?void 0:q.call(Y))||{},J=Z&&typeof Z.defaultProps=="function"?Z.defaultProps(p.model.context,a):Z==null?void 0:Z.defaultProps,oe=x(x(x({},J||{}),W),g());if((d==="FilterFormCustomRecordSelectFieldModel"||!d&&(Y!=null&&Y.target))&&Y!=null&&Y.target){const G=Y.targetCollection||m.dataSourceManager.getCollection(Y.dataSourceKey,Y.target);oe[RECORD_SELECT_DATA_SOURCE_KEY]=Y.dataSourceKey||K,oe[RECORD_SELECT_COLLECTION_KEY]=Y.target,oe[RECORD_SELECT_TITLE_FIELD_KEY]=Y.targetCollectionTitleFieldName||((O=G==null?void 0:G.titleCollectionField)==null?void 0:O.name)||oe[RECORD_SELECT_TITLE_FIELD_KEY],oe[RECORD_SELECT_VALUE_FIELD_KEY]=oe[RECORD_SELECT_VALUE_FIELD_KEY]||(G==null?void 0:G.filterTargetKey)||"id",oe[RECORD_SELECT_ALLOW_MULTIPLE_KEY]===void 0&&oe[RECORD_SELECT_MULTIPLE_KEY]===void 0&&(oe[RECORD_SELECT_ALLOW_MULTIPLE_KEY]=!0,oe[RECORD_SELECT_MULTIPLE_KEY]=!0),oe[RECORD_SELECT_VALUE_MODE_KEY]||(oe[RECORD_SELECT_VALUE_MODE_KEY]="value")}_(oe)},[e,d,t.join("."),u==null?void 0:u.source,m]);const F=(0,import_react2.useMemo)(()=>{var w,k,N;return(N=(k=(w=m==null?void 0:m.dataSourceManager)==null?void 0:w.getDataSources)==null?void 0:k.call(w))!=null?N:[]},[m]),y=(0,import_react2.useMemo)(()=>F.map(w=>{var k;return{label:(k=w.displayName)!=null?k:w.key,value:w.key}}),[F]),C=(u==null?void 0:u[RECORD_SELECT_DATA_SOURCE_KEY])||((r=F[0])==null?void 0:r.key)||"main",S=C?(n=(i=m==null?void 0:m.dataSourceManager)==null?void 0:i.getDataSource)==null?void 0:n.call(i,C):void 0,P=u==null?void 0:u[RECORD_SELECT_COLLECTION_KEY],j=P?(l=S==null?void 0:S.getCollection)==null?void 0:l.call(S,P):void 0,I=(0,import_react2.useCallback)(w=>w&&(p!=null&&p.t?p.t(w):c(w)),[p,c]),T=(0,import_react2.useMemo)(()=>S!=null&&S.getCollections?S.getCollections().filter(w=>{var k;return!((k=w.options)!=null&&k.hidden)}).map(w=>({label:I(w.title)||w.name,value:w.name})):[],[S,I]),D=(0,import_react2.useMemo)(()=>{if(!(j!=null&&j.getFields))return[];const w=k=>h?isTitleField(h,k.options):!0;return(j.getFields()||[]).filter(k=>w(k)).map(k=>{var N,B;return{label:I((B=(N=k.options)==null?void 0:N.uiSchema)==null?void 0:B.title)||I(k.title)||k.name,value:k.name}})},[j,h,I]),E=(0,import_react2.useMemo)(()=>{if(!(j!=null&&j.getFields))return[];const w=k=>{var N,B;const M=(k==null?void 0:k.options)||{},$=M.interface||(k==null?void 0:k.interface);if(M.filterable===!1||!$)return!1;if(h){const O=(B=(N=h.collectionFieldInterfaceManager)==null?void 0:N.getFieldInterface)==null?void 0:B.call(N,$);if(!(O!=null&&O.filterable))return!1}const q=M.type||(k==null?void 0:k.type);return!RELATION_FIELD_TYPES.has(q)};return(j.getFields()||[]).filter(k=>w(k)).map(k=>{var N,B;return{label:I((B=(N=k.options)==null?void 0:N.uiSchema)==null?void 0:B.title)||I(k.title)||k.name,value:k.name}})},[j,h,I]);if((0,import_react2.useEffect)(()=>{var w;if(d!=="FilterFormCustomRecordSelectFieldModel"||!P||u!=null&&u[RECORD_SELECT_TITLE_FIELD_KEY])return;const k=(w=j==null?void 0:j.titleCollectionField)==null?void 0:w.name;k&&a.setValue(A(x({},g()),{[RECORD_SELECT_TITLE_FIELD_KEY]:k}))},[e,d,P,j,u]),(0,import_react2.useEffect)(()=>{if(d!=="FilterFormCustomRecordSelectFieldModel"||!P)return;const w=u==null?void 0:u[RECORD_SELECT_VALUE_FIELD_KEY],k=E.map(M=>M.value);if(w&&k.includes(w))return;const N=j==null?void 0:j.filterTargetKey,B=N&&k.includes(N)&&N||k[0];B&&a.setValue(A(x({},g()),{[RECORD_SELECT_VALUE_FIELD_KEY]:B}))},[e,d,P,j,u,E]),(0,import_react2.useEffect)(()=>{d==="FilterFormCustomRecordSelectFieldModel"&&((u==null?void 0:u[RECORD_SELECT_ALLOW_MULTIPLE_KEY])!==void 0||(u==null?void 0:u[RECORD_SELECT_MULTIPLE_KEY])!==void 0||a.setValue(A(x({},g()),{[RECORD_SELECT_ALLOW_MULTIPLE_KEY]:!0,[RECORD_SELECT_MULTIPLE_KEY]:!0})))},[e,d,u]),e==="DateTimeFilterFieldModel")return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(import_antd_v5.FormItem,{label:c("Date format"),children:(0,import_jsx_runtime.jsxs)(import_antd.Radio.Group,{value:u.format||"YYYY-MM-DD",onChange:w=>f("format",w.target.value),children:[(0,import_jsx_runtime.jsx)(import_antd.Radio,{value:"YYYY/MM/DD",children:c("Year/Month/Day")}),(0,import_jsx_runtime.jsx)(import_antd.Radio,{value:"YYYY-MM-DD",children:c("Year-Month-Day")}),(0,import_jsx_runtime.jsx)(import_antd.Radio,{value:"DD/MM/YYYY",children:c("Day/Month/Year")})]})}),(0,import_jsx_runtime.jsx)(import_antd_v5.FormItem,{label:c("Time"),children:(0,import_jsx_runtime.jsx)(import_antd.Checkbox,{checked:u.showTime,onChange:w=>f("showTime",w.target.checked),children:c("Show time")})}),(0,import_jsx_runtime.jsx)(import_antd_v5.FormItem,{label:c("Date range"),children:(0,import_jsx_runtime.jsx)(import_antd.Checkbox,{checked:u.isRange,onChange:w=>f("isRange",w.target.checked),children:c("Show date range")})})]});if(e==="SelectFieldModel"){const w=u.options||[];return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(import_antd_v5.FormItem,{label:c("Mode"),children:(0,import_jsx_runtime.jsxs)(import_antd.Radio.Group,{value:u.mode||"",onChange:k=>f("mode",k.target.value),children:[(0,import_jsx_runtime.jsx)(import_antd.Radio,{value:"",children:c("Single select")}),(0,import_jsx_runtime.jsx)(import_antd.Radio,{value:"multiple",children:c("Multiple select")})]})}),(0,import_jsx_runtime.jsx)(import_antd_v5.FormItem,{label:c("Options"),children:(0,import_jsx_runtime.jsxs)(import_antd.Space,{direction:"vertical",size:8,style:{width:"100%"},children:[w.map((k,N)=>(0,import_jsx_runtime.jsxs)(import_antd.Space,{style:{width:"100%"},size:8,wrap:!0,align:"start",children:[(0,import_jsx_runtime.jsx)(import_antd.Input,{style:{flex:1,minWidth:120},placeholder:c("Option label"),value:k.label,onChange:B=>{const M=[...w];M[N]=A(x({},k),{label:B.target.value}),f("options",M)}}),(0,import_jsx_runtime.jsx)(import_antd.Input,{style:{flex:1,minWidth:120},placeholder:c("Option value"),value:k.value,onChange:B=>{const M=[...w];M[N]=A(x({},k),{value:B.target.value}),f("options",M)}}),(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"text",icon:(0,import_jsx_runtime.jsx)(import_icons.CloseOutlined,{}),onClick:()=>{const B=w.filter((M,$)=>$!==N);f("options",B)}})]},N)),(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"dashed",block:!0,icon:(0,import_jsx_runtime.jsx)(import_icons.PlusOutlined,{}),onClick:()=>{f("options",[...w,{label:"",value:""}])},children:c("Add")})]})})]})}if(e==="CheckboxGroupFieldModel"||e==="RadioGroupFieldModel"){const w=u.options||[];return(0,import_jsx_runtime.jsx)(import_antd_v5.FormItem,{label:c("Options"),children:(0,import_jsx_runtime.jsxs)(import_antd.Space,{direction:"vertical",size:8,style:{width:"100%"},children:[w.map((k,N)=>(0,import_jsx_runtime.jsxs)(import_antd.Space,{style:{width:"100%"},size:8,wrap:!0,align:"start",children:[(0,import_jsx_runtime.jsx)(import_antd.Input,{style:{flex:1,minWidth:120},placeholder:c("Option label"),value:k.label,onChange:B=>{const M=[...w];M[N]=A(x({},k),{label:B.target.value}),f("options",M)}}),(0,import_jsx_runtime.jsx)(import_antd.Input,{style:{flex:1,minWidth:120},placeholder:c("Option value"),value:k.value,onChange:B=>{const M=[...w];M[N]=A(x({},k),{value:B.target.value}),f("options",M)}}),(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"text",icon:(0,import_jsx_runtime.jsx)(import_icons.CloseOutlined,{}),onClick:()=>{const B=w.filter((M,$)=>$!==N);f("options",B)}})]},`${k.value}-${N}`)),(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"dashed",block:!0,icon:(0,import_jsx_runtime.jsx)(import_icons.PlusOutlined,{}),onClick:()=>{f("options",[...w,{label:"",value:""}])},children:c("Add")})]})})}return d==="FilterFormCustomRecordSelectFieldModel"?(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[y.length>1&&(0,import_jsx_runtime.jsx)(import_antd_v5.FormItem,{label:c("Data source"),children:(0,import_jsx_runtime.jsx)(import_antd.Select,{allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:c("Please select"),value:C,options:y,onChange:w=>{a.setValue(A(x({},u),{[RECORD_SELECT_DATA_SOURCE_KEY]:w,[RECORD_SELECT_COLLECTION_KEY]:void 0,[RECORD_SELECT_TITLE_FIELD_KEY]:void 0}))}})}),(0,import_jsx_runtime.jsx)(import_antd_v5.FormItem,A(x({label:c("Target collection"),asterisk:!0},b(RECORD_SELECT_COLLECTION_KEY)),{children:(0,import_jsx_runtime.jsx)(import_antd.Select,{allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:c("Select collection"),value:P,options:T,onChange:w=>{a.setValue(A(x({},u),{[RECORD_SELECT_COLLECTION_KEY]:w,[RECORD_SELECT_TITLE_FIELD_KEY]:void 0}))}})})),(0,import_jsx_runtime.jsx)(import_antd_v5.FormItem,A(x({label:c("Title field"),asterisk:!0},b(RECORD_SELECT_TITLE_FIELD_KEY)),{children:(0,import_jsx_runtime.jsx)(import_antd.Select,{allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:c("Please select"),value:u==null?void 0:u[RECORD_SELECT_TITLE_FIELD_KEY],options:D,onChange:w=>f(RECORD_SELECT_TITLE_FIELD_KEY,w)})})),(0,import_jsx_runtime.jsx)("div",{style:{color:"var(--colorTextDescription)",marginTop:-8,marginBottom:8},children:c("Used for display in the dropdown and selected tags.")}),(0,import_jsx_runtime.jsx)(import_antd_v5.FormItem,A(x({label:c("Value field"),asterisk:!0},b(RECORD_SELECT_VALUE_FIELD_KEY)),{children:(0,import_jsx_runtime.jsx)(import_antd.Select,{allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:c("Please select"),value:u==null?void 0:u[RECORD_SELECT_VALUE_FIELD_KEY],options:E,onChange:w=>f(RECORD_SELECT_VALUE_FIELD_KEY,w)})})),(0,import_jsx_runtime.jsx)("div",{style:{color:"var(--colorTextDescription)",marginTop:-8,marginBottom:8},children:c("Stored as the field value for filtering (usually the primary key).")}),(0,import_jsx_runtime.jsx)(import_antd_v5.FormItem,{label:c("Multiple"),children:(0,import_jsx_runtime.jsx)(import_antd.Checkbox,{checked:(u==null?void 0:u[RECORD_SELECT_ALLOW_MULTIPLE_KEY])!==!1,onChange:w=>{const k=w.target.checked;a.setValue(A(x({},u),{[RECORD_SELECT_ALLOW_MULTIPLE_KEY]:k,[RECORD_SELECT_MULTIPLE_KEY]:k}))},children:c("Allow multiple selection")})})]}):null};function FieldModelSelect(e){var t;const{source:o=[],onChange:r}=e,i=(0,import_flow_engine.useFlowEngine)(),n=(0,import_flow_engine.useFlowContext)(),l=e.valueMap||{},a=o.join("."),c=(0,import_react2.useRef)(),u=(0,import_react2.useMemo)(()=>m=>l&&l[m]?l[m]:m,[l]),d=(0,import_react2.useMemo)(()=>{if(!o.length)return;const m=i.dataSourceManager.getCollectionField(a),p=import_flow_engine.FilterableItemModel.getDefaultBindingByField(n.model.context,m);if(p)return u(p.modelName)},[a,u]);return(0,import_react2.useEffect)(()=>{if(!d){c.current=a;return}const m=c.current!==void 0&&c.current!==a;c.current=a;const p=u(e.value);if(e.value&&e.value!==p&&p!==d){r==null||r(p);return}(!e.value||m)&&p!==d&&(r==null||r(d))},[d,r,e.value,a,u]),(0,import_jsx_runtime.jsx)(import_antd_v5.Select,A(x({allowClear:!0},e),{value:u((t=e.value)!=null?t:d)}))}const MODEL_OPERATOR_MAP={InputFieldModel:string,NumberFieldModel:number,DateTimeFilterFieldModel:datetime,SelectFieldModel:e=>(e==null?void 0:e.mode)==="multiple"?array:enumType,RadioGroupFieldModel:enumType,CheckboxGroupFieldModel:array},MULTI_VALUE_OPERATOR_VALUES=new Set(["$in","$notIn","$empty","$notEmpty","$includes","$notIncludes"]),MULTI_VALUE_IN_OPERATOR={label:'{{t("is any of")}}',value:"$in",schema:{"x-component":"Select","x-component-props":{mode:"tags"}}},MULTI_VALUE_NOT_IN_OPERATOR={label:'{{t("is none of")}}',value:"$notIn",schema:{"x-component":"Select","x-component-props":{mode:"tags"}}},INTERFACE_FALLBACK_OPERATORS={input:string,email:string,phone:string,uuid:string,url:string,nanoid:string,textarea:string,markdown:bigField,vditor:bigField,richText:bigField,password:string,color:string,number,integer:number,id,snowflakeId:number,dateOnly:datetime,datetime,datetimeNoTz:datetime,unixTimestamp:datetime,time,select:enumType,multipleSelect:array,radioGroup:enumType,checkboxGroup:array,checkbox:boolean};function getOperatorListByModel(e,t={}){const o=MODEL_OPERATOR_MAP[e];return o?typeof o=="function"?o(t)||[]:o||[]:[]}function getSourceField(e,t=[],o){var r,i,n,l;if(!Array.isArray(t)||t.length===0)return;const a=!!((i=(r=e==null?void 0:e.dataSourceManager)==null?void 0:r.getDataSource)!=null&&i.call(r,t[0])),c=a?t[0]:o||"main",u=(a?t.slice(1):t).join(".");if(u)return(l=(n=e==null?void 0:e.dataSourceManager)==null?void 0:n.getCollectionField)==null?void 0:l.call(n,`${c}.${u}`)}function getFieldOperators(e){var t,o,r,i;if(!e)return[];const n=(t=e.filterable)==null?void 0:t.operators;if(Array.isArray(n)&&n.length>0)return n;let l;try{l=(i=(r=(o=e.getInterfaceOptions)==null?void 0:o.call(e))==null?void 0:r.filterable)==null?void 0:i.operators}catch{l=void 0}return Array.isArray(l)&&l.length>0?l:e.interface&&INTERFACE_FALLBACK_OPERATORS[e.interface]?INTERFACE_FALLBACK_OPERATORS[e.interface]:(operators$1==null?void 0:operators$1[e.type])||[]}function isRecordSelectMultiple(e={}){return typeof(e==null?void 0:e.multiple)=="boolean"?e.multiple:typeof(e==null?void 0:e.allowMultiple)=="boolean"?e.allowMultiple:!0}function toUniqueOperators(e=[]){const t=new Set;return e.filter(o=>!(o!=null&&o.value)||t.has(o.value)?!1:(t.add(o.value),!0))}function toMultiValueOperators(e=[]){const t=e.some(c=>(c==null?void 0:c.value)==="$in"),o=e.some(c=>(c==null?void 0:c.value)==="$notIn"),r=e.filter(c=>MULTI_VALUE_OPERATOR_VALUES.has(c==null?void 0:c.value)&&(c==null?void 0:c.value)!=="$in"&&(c==null?void 0:c.value)!=="$notIn"||(c==null?void 0:c.noValue)||(c==null?void 0:c.value)==="$exists"||(c==null?void 0:c.value)==="$notExists"),i=e.some(c=>(c==null?void 0:c.value)&&!c.noValue&&c.value!=="$exists"&&c.value!=="$notExists"),n=i||t,l=i||o,a=[];return n&&a.push(MULTI_VALUE_IN_OPERATOR),l&&a.push(MULTI_VALUE_NOT_IN_OPERATOR),toUniqueOperators([...a,...r])}function getRecordSelectValueField(e,t={},o=[]){var r,i,n,l,a;const c=getSourceField(e,o,t==null?void 0:t.recordSelectDataSourceKey),u=(c==null?void 0:c.dataSourceKey)||(o==null?void 0:o[0])||"main",d=(t==null?void 0:t.recordSelectDataSourceKey)||u,m=(t==null?void 0:t.recordSelectTargetCollection)||((r=c==null?void 0:c.targetCollection)==null?void 0:r.name)||(c==null?void 0:c.target);if(!m)return;const p=(n=(i=e==null?void 0:e.dataSourceManager)==null?void 0:i.getCollection)==null?void 0:n.call(i,d,m);if(!p)return;const h=(t==null?void 0:t.recordSelectValueField)||(p==null?void 0:p.filterTargetKey)||((l=p==null?void 0:p.getPrimaryKey)==null?void 0:l.call(p));if(h)return(a=p.getField)==null?void 0:a.call(p,h)}function resolveByRecordSelect(e){const{flowEngine:t,fieldModelProps:o={},source:r=[]}=e,i=getRecordSelectValueField(t,o,r),n=getFieldOperators(i);return{operatorList:isRecordSelectMultiple(o)?toMultiValueOperators(n):n,meta:i}}function resolveByModelOrSource(e){const{flowEngine:t,fieldModel:o,fieldModelProps:r={},source:i=[]}=e;if(o==="FilterFormCustomRecordSelectFieldModel")return resolveByRecordSelect(e);const n=getOperatorListByModel(o,r);if(n.length>0)return{operatorList:n,meta:{fieldModel:o}};const l=getSourceField(t,i);return{operatorList:getFieldOperators(l),meta:l}}function resolveCustomFieldOperatorList(e){const{operatorList:t,meta:o}=resolveByModelOrSource(e);return toUniqueOperators((t||[]).filter(r=>!(r!=null&&r.visible)||r.visible(o)))}function resolveDefaultCustomFieldOperator(e){var t,o;const{fieldModel:r,fieldModelProps:i={}}=e,n=resolveCustomFieldOperatorList(e);if(r==="DateTimeFilterFieldModel"&&i!=null&&i.isRange){const l=n.find(a=>a.value==="$dateBetween");if(l)return l.value}return((t=n.find(l=>l.selected))==null?void 0:t.value)||((o=n[0])==null?void 0:o.value)}function toOperatorSelectOptions(e=[],t=o=>o){return e.map(o=>A(x({},o),{label:t(o.label),value:o.value}))}const FieldOperatorSelect=(0,import_flow_engine.observer)(e=>{var t;const o=e,{fieldModel:r,source:i=[],fieldModelProps:n={},value:l,onChange:a}=o,c=ee(o,["fieldModel","source","fieldModelProps","value","onChange"]),u=(0,import_react.useField)(),d=(0,import_flow_engine.useFlowEngine)(),m=(0,import_flow_engine.useFlowContext)(),p=((t=u==null?void 0:u.form)==null?void 0:t.values)||{},h=r||(p==null?void 0:p.fieldModel),g=i.length?i:(p==null?void 0:p.source)||[],f=p!=null&&p.fieldModelProps&&Object.keys(p.fieldModelProps).length>0?p.fieldModelProps:n,_=Array.isArray(g)?g.join("."):"",v=f==null?void 0:f.mode,b=f==null?void 0:f.allowMultiple,F=f==null?void 0:f.multiple,y=f==null?void 0:f.recordSelectDataSourceKey,C=f==null?void 0:f.recordSelectTargetCollection,S=f==null?void 0:f.recordSelectValueField,P=(0,import_react2.useMemo)(()=>resolveCustomFieldOperatorList({flowEngine:d,fieldModel:h,source:g,fieldModelProps:f}),[d,h,_,v,b,F,y,C,S]),j=(0,import_react2.useMemo)(()=>toOperatorSelectOptions(P,I=>m.t(I)),[P,m]);return(0,import_react2.useEffect)(()=>{if(!j.length){l!==void 0&&(a==null||a(void 0));return}if(j.some(T=>T.value===l))return;const I=resolveDefaultCustomFieldOperator({flowEngine:d,fieldModel:h,source:g,fieldModelProps:f});I!==l&&(a==null||a(I))},[d,h,a,j,_,l,v,b,F,y,C,S]),(0,import_jsx_runtime.jsx)(import_antd_v5.Select,A(x({allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:m.t("Please select")},c),{options:j,value:l,onChange:a,disabled:j.length===0}))});class FilterFormCustomItemModel extends import_flow_engine.FlowModel{static defineChildren(t){const o=t.engine.filterModelClassByParent("CommonItemModel"),r=t.engine.filterModelClassByParent("FilterFormCustomItemModel"),i=n=>Array.from(n.entries()).map(([l,a])=>{var c,u,d;const m={key:l,label:t.t(a.meta.label),sort:(c=a.meta.sort)!=null?c:999,searchable:!!((u=a.meta)!=null&&u.searchable),searchPlaceholder:(d=a.meta)==null?void 0:d.searchPlaceholder};return m.createModelOptions={use:l},m});return import_lodash.default.sortBy([...i(o),...i(r)],"sort")}}R(FilterFormCustomItemModel,"renderMode",import_flow_engine.ModelRenderMode.RenderFunction);FilterFormCustomItemModel.define({hide:!0,label:(0,import_flow_engine.tExpr)("Others")});function SourceCascader(e){const t=(0,import_flow_engine.useFlowEngine)(),o=(0,import_react2.useCallback)(()=>{const l=t==null?void 0:t.dataSourceManager;return l?l.getDataSources().map(a=>{var c;return{value:a.key,label:(c=a.displayName)!=null?c:a.key,isLeaf:!1,meta:{type:"dataSource",dataSourceKey:a.key}}}):[]},[t]),[r,i]=(0,import_react2.useState)(()=>o());(0,import_react2.useEffect)(()=>{i(o())},[o]);const n=(0,import_react2.useCallback)(l=>{var a,c,u,d;const m=l[l.length-1];if(!m||(a=m.children)!=null&&a.length)return;const p=t==null?void 0:t.dataSourceManager;if(!p)return;let h=[];if(l.length===1){const g=m.value,f=p.getDataSource(g);h=((c=f==null?void 0:f.getCollections())!=null?c:[]).map(_=>({value:_.name,label:_.title,isLeaf:!1,meta:{type:"collection",dataSourceKey:g,collectionName:_.name,fullPath:_.name}}))}else{const g=m.meta||{},f=g.dataSourceKey,_=p.getDataSource(f),v=_==null?void 0:_.collectionManager;if(!_||!v){m.isLeaf=!0,i(b=>[...b]);return}if(g.type==="collection"){const b=v.getCollection(g.collectionName);h=((u=b==null?void 0:b.getFields())!=null?u:[]).filter(F=>F.filterable).map(F=>{const y=`${g.fullPath}.${F.name}`,C=!!F.targetCollection;return{value:F.name,label:F.title,isLeaf:!C,meta:{type:"field",dataSourceKey:f,fullPath:y}}}).sort((F,y)=>y.isLeaf?0:-1)}else if(g.type==="field"){const b=_.getCollectionField(g.fullPath),F=b==null?void 0:b.targetCollection;h=((d=F==null?void 0:F.getFields())!=null?d:[]).filter(y=>y.filterable).map(y=>{const C=`${g.fullPath}.${y.name}`,S=!!y.targetCollection;return{value:y.name,label:y.title,isLeaf:!S,meta:{type:"field",dataSourceKey:f,fullPath:C}}}).sort((y,C)=>C.isLeaf?0:-1)}}h.length?m.children=h:m.isLeaf=!0,i(g=>[...g])},[t]);return(0,import_jsx_runtime.jsx)(import_antd.Cascader,A(x({allowClear:!0},e),{options:r,loadData:n}))}const validateRecordSelectRequired=(e,t,o)=>{var r,i,n;if(((i=(r=o==null?void 0:o.form)==null?void 0:r.values)==null?void 0:i.fieldModel)==="FilterFormCustomRecordSelectFieldModel"&&(e==null||e===""))return((n=o==null?void 0:o.t)==null?void 0:n.call(o,"The field value is required"))||"The field value is required"};class FilterFormCustomFieldModel extends FilterFormCustomItemModel{constructor(){super(...arguments),R(this,"customFieldModelInstance",null),R(this,"customFieldProps",null),R(this,"operator"),R(this,"debouncedDoFilter"),R(this,"lastAutoTriggerValue"),R(this,"autoTriggerInitialized",!1),R(this,"handleEnterPress",t=>{t.key==="Enter"&&(t.preventDefault(),this.doFilter())})}buildRecordSelectCollectionField(t,o){var r,i,n,l,a,c;const u=(o==null?void 0:o.recordSelectDataSourceKey)||"main",d=o==null?void 0:o.recordSelectTargetCollection;if(!d)return;const m=(i=(r=t.dataSourceManager)==null?void 0:r.getDataSource)==null?void 0:i.call(r,u),p=(n=m==null?void 0:m.getCollection)==null?void 0:n.call(m,d);if(!m||!p)return;const h=(o==null?void 0:o.recordSelectTitleField)||((l=p.titleCollectionField)==null?void 0:l.name)||((c=(a=p.titleCollectionField)==null?void 0:a.options)==null?void 0:c.name),g=(o==null?void 0:o.recordSelectValueField)||p.filterTargetKey||"id",f=new import_flow_engine.CollectionField({name:(o==null?void 0:o.name)||"recordSelect",interface:"m2o",type:"belongsTo",target:d,dataSourceKey:u,uiSchema:{"x-component":"Select"},fieldNames:{label:h,value:g}});return f.setCollection(p),f}get defaultTargetUid(){return this.getStepParams("filterFormItemSettings","init").defaultTargetUid}onInit(t){super.onInit(t),this.debouncedDoFilter=(0,import_lodash.debounce)(this.doFilter.bind(this),300)}onUnmount(){super.onUnmount(),this.debouncedDoFilter.cancel()}doFilter(){this.context.filterManager.refreshTargetsByFilter(this.uid)}doReset(){this.context.filterManager.refreshTargetsByFilter(this.uid)}getFilterValue(){var t,o,r,i;const n=(t=this.customFieldModelInstance)!=null&&t.getFilterValue?this.customFieldModelInstance.getFilterValue():(o=this.context.form)==null?void 0:o.getFieldValue(this.props.name),l=this.getCurrentOperatorMeta(),a=normalizeFilterValueByOperator(this.operator,n);if(l!=null&&l.noValue){const c=(i=(r=l==null?void 0:l.schema)==null?void 0:r["x-component-props"])==null?void 0:i.options;return Array.isArray(c)?a:!0}return a}getCurrentOperatorMeta(){const t=this.getStepParams("formItemSettings","fieldSettings")||{},o=t.fieldModel,r=t.source||[],i=this.customFieldProps||t.fieldModelProps||{},n=resolveCustomFieldOperatorList({flowEngine:this.flowEngine,fieldModel:o,source:r,fieldModelProps:i}),l=this.operator||t.operator;return l&&n.find(a=>a.value===l)||null}getValueProps(t){return this.context.blockModel.autoTriggerFilter&&(this.autoTriggerInitialized?(0,import_lodash.isEqual)(this.lastAutoTriggerValue,t)||(this.lastAutoTriggerValue=(0,import_lodash.cloneDeep)(t),this.debouncedDoFilter()):(this.autoTriggerInitialized=!0,this.lastAutoTriggerValue=(0,import_lodash.cloneDeep)(t))),{value:t,onKeyDown:this.handleEnterPress.bind(this)}}render(){return this.customFieldModelInstance?(0,import_jsx_runtime.jsx)(import_flow_engine.FormItem,A(x({},this.props),{getValueProps:this.getValueProps.bind(this),children:(0,import_jsx_runtime.jsx)(import_flow_engine.FieldModelRenderer,{model:this.customFieldModelInstance})})):null}}FilterFormCustomFieldModel.define({label:'{{t("Custom field")}}',sort:1});FilterFormCustomFieldModel.registerFlow({key:"formItemSettings",title:(0,import_flow_engine.tExpr)("Form item settings"),steps:{fieldSettings:{preset:!0,title:(0,import_flow_engine.tExpr)("Field settings"),uiSchema:{title:{type:"string",title:(0,import_flow_engine.tExpr)("Field title"),"x-component":"Input","x-decorator":"FormItem",required:!0},name:{type:"string",title:(0,import_flow_engine.tExpr)("Field name"),"x-component":"Input","x-decorator":"FormItem",required:!0,description:'{{t("Randomly generated and can be modified. Support letters, numbers and underscores, must start with an letter.")}}'},source:{type:"array",title:(0,import_flow_engine.tExpr)("Field source"),"x-decorator":"FormItem","x-component":SourceCascader,"x-component-props":{placeholder:(0,import_flow_engine.tExpr)("Select a source field to use metadata of the field")},description:(0,import_flow_engine.tExpr)("Select a source field to use metadata of the field")},fieldModel:{type:"string",title:(0,import_flow_engine.tExpr)("Field type"),"x-component":FieldModelSelect,"x-decorator":"FormItem",required:!0,enum:[{label:(0,import_flow_engine.tExpr)("Input"),value:"InputFieldModel"},{label:(0,import_flow_engine.tExpr)("Number"),value:"NumberFieldModel"},{label:(0,import_flow_engine.tExpr)("Date"),value:"DateTimeFilterFieldModel"},{label:(0,import_flow_engine.tExpr)("Select"),value:"SelectFieldModel"},{label:(0,import_flow_engine.tExpr)("Radio group"),value:"RadioGroupFieldModel"},{label:(0,import_flow_engine.tExpr)("Checkbox group"),value:"CheckboxGroupFieldModel"},{label:(0,import_flow_engine.tExpr)("Record select"),value:"FilterFormCustomRecordSelectFieldModel"}],"x-component-props":{placeholder:(0,import_flow_engine.tExpr)("Please select"),valueMap:{RecordSelectFieldModel:"FilterFormCustomRecordSelectFieldModel"}},"x-reactions":[{dependencies:["source"],fulfill:{state:{componentProps:{source:"{{$deps[0]}}",valueMap:{RecordSelectFieldModel:"FilterFormCustomRecordSelectFieldModel"}}}}}]},fieldModelProps:{type:"object",title:(0,import_flow_engine.tExpr)("Component properties"),"x-component":FieldComponentProps,properties:{recordSelectTargetCollection:{type:"string","x-validator":validateRecordSelectRequired},recordSelectTitleField:{type:"string","x-validator":validateRecordSelectRequired},recordSelectValueField:{type:"string","x-validator":validateRecordSelectRequired}},"x-reactions":[{dependencies:["fieldModel","source"],fulfill:{state:{componentProps:{fieldModel:"{{$deps[0]}}",source:"{{$deps[1]}}"}}}}]},operator:{type:"string",title:(0,import_flow_engine.tExpr)("Operator"),"x-component":FieldOperatorSelect,"x-decorator":"FormItem",required:!0,"x-reactions":[{dependencies:["fieldModel","source","fieldModelProps"],fulfill:{state:{componentProps:{fieldModel:"{{$deps[0]}}",source:"{{$deps[1]}}",fieldModelProps:"{{$deps[2] || {}}}"}}}}]}},defaultParams(e){return{name:`f_${(0,import_client.uid)().slice(0,4)}`}},handler(e,t){var o,r;const{fieldModel:i,fieldModelProps:n={},title:l,name:a,source:c=[],operator:u}=t;e.model.setProps({label:l,name:a});let d=n,m;if(i==="FilterFormCustomRecordSelectFieldModel"){const h=(n==null?void 0:n.allowMultiple)===void 0?!0:!!(n!=null&&n.allowMultiple),g=(n==null?void 0:n.multiple)===void 0?h:!!(n!=null&&n.multiple);if(d=A(x({},n),{allowMultiple:h,multiple:g,valueMode:(n==null?void 0:n.valueMode)||"value"}),m=e.model.buildRecordSelectCollectionField(e,A(x({},d),{name:a})),m){const f=(n==null?void 0:n.recordSelectTitleField)||m.targetCollectionTitleFieldName,_=(n==null?void 0:n.recordSelectValueField)||((o=m.targetCollection)==null?void 0:o.filterTargetKey)||"id";f&&_&&(d=A(x({},d),{fieldNames:{label:f,value:_}}))}}if(e.model.customFieldModelInstance?e.model.customFieldModelInstance.setProps(x({allowClear:!0},d)):e.model.customFieldModelInstance=e.model.flowEngine.createModel({use:i,props:x({allowClear:!0},d)}),i==="FilterFormCustomRecordSelectFieldModel"){const h=(d==null?void 0:d.recordSelectTitleField)||((r=d==null?void 0:d.fieldNames)==null?void 0:r.label);h&&e.model.customFieldModelInstance.setStepParams("selectSettings","fieldNames",{label:h})}m&&e.model.customFieldModelInstance.context.defineProperty("collectionField",{value:m});const p=!!resolveCustomFieldOperatorList({flowEngine:e.model.flowEngine,fieldModel:i,source:c,fieldModelProps:d}).find(h=>h.value===u);e.model.operator=(p?u:void 0)||resolveDefaultCustomFieldOperator({flowEngine:e.model.flowEngine,fieldModel:i,source:c,fieldModelProps:d}),e.model.customFieldProps=d}},connectFields:{use:"connectFields"}}});const FILTER_FORM_VALUE_OPTIONS_GROUP="__filter_form_value_options__",isValidPrimaryKeyValue=(e,t)=>e==null||e===""?!1:typeof e=="number"||typeof e=="bigint"?!0:typeof e!="string"?!1:t&&/(int|big)/i.test(t)?/^-?\d+$/.test(e):!0,resolveAsPrimaryKey=(e,t)=>{if(typeof e=="number"||typeof e=="bigint"||typeof e=="string"&&/(int|big)/i.test(t||"")&&/^-?\d+$/.test(e))return e},normalizePrimaryKeys=(e,t,o,r,i,n)=>{const l=new Map;t.forEach(c=>{if(!c||typeof c!="object")return;const u=c==null?void 0:c[r],d=c==null?void 0:c[o];u!=null&&d!==void 0&&d!==null&&l.set(u,d)});const a=c=>{var u;if(c==null)return;if(typeof c=="object"){const m=c==null?void 0:c[o];if(m!=null)return m;const p=(u=c==null?void 0:c[r])!=null?u:c==null?void 0:c.value;if(r===o)return p;const h=l.get(p);return h??resolveAsPrimaryKey(p,n)}if(r===o)return c;const d=l.get(c);return d??resolveAsPrimaryKey(c,n)};return(i?Array.isArray(e)?e:[e]:[e]).map(c=>a(c)).filter(c=>isValidPrimaryKeyValue(c,n))},mergeOptionsByValue=(e=[],t=[],o)=>{const r=new Map;return[...e,...t].forEach(i=>{const n=i==null?void 0:i[o];n!=null&&r.set(n,i)}),Array.from(r.values())},useFieldPermissionMessage=(e,t)=>{var o,r;const i=(o=e==null?void 0:e.context)==null?void 0:o.collectionField,n=i==null?void 0:i.collection,l=n==null?void 0:n.dataSource,a=(r=e==null?void 0:e.context)==null?void 0:r.t,c=(i==null?void 0:i.name)||e.fieldPath,u=(0,import_react2.useMemo)(()=>{if(!a||!l)return"";const d=`${a(l.displayName||l.key)} > `,m=n?`${a(n.title)||n.name||n.tableName} > `:"";return`${d}${m}${c}`},[a,l,n,c]);return t||!a||!l?null:a(`The current user only has the UI configuration permission, but don't have "{{actionName}}" permission for field "{{name}}"`,{name:u,actionName:"Update"}).replaceAll("&gt;",">")},FilterFormLazySelect=e=>{var t;const o=e,{fieldNames:r={label:"label",value:"value"},value:i,multiple:n,allowMultiple:l,options:a,quickCreate:c,onChange:u,allowCreate:d=!0,allowEdit:m=!0,valueMode:p="record"}=o,h=ee(o,["fieldNames","value","multiple","allowMultiple","options","quickCreate","onChange","allowCreate","allowEdit","valueMode"]),g=!!(n&&l),f=resolveOptions(a,i,g),_=(0,import_flow_engine.useFlowModel)(),v=!!_.context.flowSettingsEnabled,{t:b}=(0,import_react_i18next.useTranslation)(),F=({searchText:C})=>(0,import_jsx_runtime.jsxs)("div",{onClick:()=>h.onDropdownAddClick(C),style:{cursor:"pointer",padding:"5px 12px",color:"#0d0c0c"},children:[(0,import_jsx_runtime.jsx)(import_icons.PlusOutlined,{}),(0,import_jsx_runtime.jsx)("span",{style:{paddingLeft:5},children:b("Add")+` “${C}” `})]}),y=useFieldPermissionMessage(_,m);return(0,import_jsx_runtime.jsxs)(import_antd.Space.Compact,{style:{width:"100%"},children:[(0,import_jsx_runtime.jsx)(import_antd.Select,A(x({style:{width:"100%"}},h),{allowClear:!0,showSearch:!0,maxTagCount:"responsive",maxTagPlaceholder:C=>(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:C.map(S=>(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:S.label},S.value))}),overlayInnerStyle:{background:"#fff",color:"#000",padding:8,maxWidth:"100%"},color:"#fff",overlayStyle:{pointerEvents:"auto",maxWidth:300},children:["+",C.length,"..."]}),filterOption:!1,labelInValue:!0,onCompositionEnd:C=>h.onCompositionEnd(C,!1),fieldNames:r,options:f,value:toSelectValue(i,r,g,p,f),mode:g?"multiple":void 0,onChange:(C,S)=>{var P;if(p==="value"){if(Array.isArray(S)){u(S.map(j=>{var I;return(I=j==null?void 0:j[r.value])!=null?I:j==null?void 0:j.value}).filter(j=>j!==void 0));return}u((P=S==null?void 0:S[r.value])!=null?P:S==null?void 0:S.value);return}u(S)},optionRender:({data:C})=>(0,import_jsx_runtime.jsx)(LabelByField,{option:C,fieldNames:r}),popupMatchSelectWidth:!0,labelRender:C=>(0,import_jsx_runtime.jsx)("div",{className:import_css.css`
2025
2025
  div {
2026
2026
  white-space: nowrap !important;
2027
2027
  overflow: hidden;
@@ -2288,7 +2288,7 @@ ctx.render(<JsItem />);
2288
2288
  font-size: 90%;
2289
2289
  background: none !important;
2290
2290
  border: none !important;
2291
- `,EllipsisJSON=({content:e,style:t,className:o})=>{const r=(0,import_react2.useRef)(null),[i,n]=(0,import_react2.useState)(!1);(0,import_react2.useEffect)(()=>{const a=r.current;a&&n(a.scrollWidth>a.clientWidth)},[e]);const l=(0,import_jsx_runtime.jsx)("div",{ref:r,style:A(x({},t),{whiteSpace:"nowrap",fontFamily:"Consolas, Monaco, monospace",overflow:"hidden",textOverflow:"ellipsis"}),children:e});return i?(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:(0,import_jsx_runtime.jsx)("pre",{style:{margin:0,maxHeight:400},className:o,children:e}),overlayInnerStyle:{background:"#fff",color:"#000",boxShadow:"0 2px 8px rgba(0,0,0,0.15)",maxWidth:500},color:"#fff",overlayStyle:{maxWidth:500,whiteSpace:"pre-wrap"},children:l}):l};class DisplayJSONFieldModel extends DisplayTitleFieldModel{renderComponent(t){const{space:o,style:r,className:i,overflowMode:n}=this.props;let l="";if(t!=null)try{l=JSON.stringify(t,null,o??2)}catch{l=this.flowEngine.translate("Invalid JSON format")}return n==="ellipsis"?(0,import_jsx_runtime.jsx)(EllipsisJSON,{content:l,style:r,className:(0,import_css.cx)(i,JSONClassName)}):(0,import_jsx_runtime.jsx)("pre",{className:(0,import_css.cx)(i,JSONClassName),style:r,children:l})}}import_flow_engine.DisplayItemModel.bindModelToInterface("DisplayJSONFieldModel",["json"],{isDefault:!0});function countDecimalPlaces(e){const t=(0,import_lodash.toString)(e);return t.includes(".")?t.split(".")[1].replace(/0+$/,"").length:0}const separators={"0,0.00":{thousands:",",decimal:"."},"0.0,00":{thousands:".",decimal:","},"0 0,00":{thousands:" ",decimal:"."},"0.00":{thousands:"",decimal:"."}};function formatNumberWithSeparator(e,t="0.00",o=1,r){if(e>Number.MAX_SAFE_INTEGER||e<Number.MIN_SAFE_INTEGER)return formatBigNumberWithSeparator(e,t,o,r);let i=e;r&&(i=Number(e));let n="";if(separators[t]){const{thousands:l,decimal:a}=separators[t];n=i.toLocaleString("en-US",{style:"decimal",minimumFractionDigits:o,maximumFractionDigits:o}).replace(/,/g,"comma_placeholder").replace(/\./g,"dot_placeholder").replace(/comma_placeholder/g,l).replace(/dot_placeholder/g,a)}else n=i.toString();return n}function formatBigNumberWithSeparator(e,t="0.00",o=1,r){let i=e;r&&(i=new import_bignumber.default(e).toString());let n="";if(separators[t]){const{thousands:l,decimal:a}=separators[t],[c,u]=i.toString().split(".");let d=u;const m=c.replace(/\B(?=(\d{3})+(?!\d))/g,l);d&&o?(d=d.substring(0,o),n=`${m}${a}${d}`):n=m}else n=i.toString();return n}function formatUnitConversion(e,t="*",o){if(!o)return e;let r;if(t==="*")r=e*o;else if(t==="/")if(o!==0)r=e/o;else return console.error("Error: Division by zero."),null;else return console.error("Error: Invalid operator. Use '*' for multiplication or '/' for division."),null;return math.round(r,9)}function scientificNotation(e,t,o="."){return(0,import_d3_format.format)(`.${t}e`)(e).replace(".",o).replace(/e([+-]?\d+)/,(r,i)=>i.startsWith("+")?`×10<sup>${i.slice(1)}</sup>`:`×10<sup>-${i.slice(1)}</sup>`)}function formatNumber(e){var t;const{step:o,formatStyle:r="normal",value:i,unitConversion:n,unitConversionType:l,separator:a="0,0.00"}=e;if(!(0,import_shared.isValid)(i))return null;const c=formatUnitConversion(i,l,n),u=(0,import_client.toFixedByStep)(c,o);let d;return d=formatNumberWithSeparator(u,a,countDecimalPlaces(o),r),r==="scientifix"&&(d=scientificNotation(Number(c),countDecimalPlaces(o),(t=separators==null?void 0:separators[a])==null?void 0:t.decimal)),d==="NaN"&&(d=i),d}const getDisplayNumber=e=>{const{numberStep:t,formatStyle:o,value:r,unitConversion:i,unitConversionType:n,separator:l}=e;return formatNumber({step:t,formatStyle:o,value:r,unitConversion:i,unitConversionType:n,separator:l})};class DisplayNumberFieldModel extends ClickableFieldModel{renderComponent(t){const{addonBefore:o,addonAfter:r}=this.props,i=getDisplayNumber(A(x({},this.props),{value:t}));return i?(0,import_jsx_runtime.jsxs)("span",{children:[o,(0,import_jsx_runtime.jsx)("span",{dangerouslySetInnerHTML:{__html:i}}),r]}):null}}DisplayNumberFieldModel.define({label:(0,import_flow_engine.tExpr)("Number")});const UnitConversion$1=()=>{const e=(0,import_react.useForm)(),{unitConversionType:t}=e.values,{t:o}=(0,import_react_i18next.useTranslation)();return(0,import_jsx_runtime.jsxs)(import_antd.Select,{defaultValue:t||"*",style:{width:160},onChange:r=>{e.setValuesIn("unitConversionType",r)},children:[(0,import_jsx_runtime.jsx)(import_antd.Select.Option,{value:"*",children:o("Multiply by")}),(0,import_jsx_runtime.jsx)(import_antd.Select.Option,{value:"/",children:o("Divide by")})]})};DisplayNumberFieldModel.registerFlow({key:"numberSettings",sort:500,title:(0,import_flow_engine.tExpr)("Number settings"),steps:{format:{title:(0,import_flow_engine.tExpr)("Number format"),use:"numberFormat"}}});import_flow_engine.DisplayItemModel.bindModelToInterface("DisplayNumberFieldModel",["number","integer","id","snowflakeId"],{isDefault:!0});class DisplayPasswordFieldModel extends FieldModel{render(){const{value:t}=this.props;return t?(0,import_jsx_runtime.jsx)("div",{children:"********"}):(0,import_jsx_runtime.jsx)("div",{})}}import_flow_engine.DisplayItemModel.bindModelToInterface("DisplayPasswordFieldModel",["password"],{isDefault:!0});class DisplayPercentFieldModel extends ClickableFieldModel{renderComponent(t){const{addonBefore:o="",addonAfter:r="%",numberStep:i}=this.props,n=math.round(t*100,9);if(t==null)return;const l=getDisplayNumber(A(x({},this.props),{value:n,numberStep:i}));return l?(0,import_jsx_runtime.jsxs)("div",{children:[o,(0,import_jsx_runtime.jsx)("span",{dangerouslySetInnerHTML:{__html:l}}),r]}):null}}DisplayPercentFieldModel.registerFlow({key:"numberSettings",sort:500,title:(0,import_flow_engine.tExpr)("Number settings"),steps:{format:{title:(0,import_flow_engine.tExpr)("Number format"),uiSchema:e=>({formatStyle:{type:"string",enum:[{value:"normal",label:(0,import_flow_engine.tExpr)("Normal")},{value:"scientifix",label:(0,import_flow_engine.tExpr)("Scientifix notation")}],"x-decorator":"FormItem","x-component":"Select",title:"{{t('Style')}}"},unitConversion:{type:"number","x-decorator":"FormItem","x-component":"NumberPicker",title:"{{t('Unit conversion')}}","x-component-props":{style:{width:"100%"},addonBefore:(0,import_jsx_runtime.jsx)(UnitConversion$1,{})}},separator:{type:"string",enum:[{value:"0,0.00",label:"100,000.00"},{value:"0.0,00",label:"100.000,00"},{value:"0 0,00",label:"100 000.00"},{value:"0.00",label:"100000.00"}],"x-decorator":"FormItem","x-component":"Select",title:"{{t('Separator')}}"},numberStep:{type:"string",title:'{{t("Precision")}}',"x-component":"Select","x-decorator":"FormItem",enum:[{value:"1",label:"1"},{value:"0.1",label:"1.0"},{value:"0.01",label:"1.00"},{value:"0.001",label:"1.000"},{value:"0.0001",label:"1.0000"},{value:"0.00001",label:"1.00000"},{value:"0.000001",label:"1.000000"},{value:"0.0000001",label:"1.0000000"},{value:"0.00000001",label:"1.00000000"}]},addonBefore:{type:"string",title:'{{t("Prefix")}}',"x-component":"Input","x-decorator":"FormItem"},addonAfter:{type:"string",title:'{{t("Suffix")}}',"x-component":"Input","x-decorator":"FormItem","x-disabled":!0}}),defaultParams:e=>{const{formatStyle:t,unitConversion:o,unitConversionType:r,separator:i,step:n,addonBefore:l,addonAfter:a}=e.collectionField.getComponentProps();return{formatStyle:t||"normal",unitConversion:o,unitConversionType:r,separator:i||"0,0.00",numberStep:n||"1",addonBefore:l,addonAfter:a||"%"}},handler(e,t){const{formatStyle:o,unitConversion:r,unitConversionType:i,separator:n,numberStep:l,addonBefore:a,addonAfter:c}=t;e.model.setProps({formatStyle:o,unitConversion:r,unitConversionType:i,separator:n,numberStep:l,addonBefore:a,addonAfter:c})}}}});DisplayPercentFieldModel.define({label:(0,import_flow_engine.tExpr)("Percent")});import_flow_engine.DisplayItemModel.bindModelToInterface("DisplayPercentFieldModel",["percent"],{isDefault:!0});class DisplayTextFieldModel extends ClickableFieldModel{t(t){return typeof t!="string"?t:t.startsWith("{{")&&t.endsWith("}}")?this.translate(t):t}renderComponent(t,o){const{prefix:r,suffix:i,overflowMode:n}=this.props;return(0,import_jsx_runtime.jsxs)("span",{style:{whiteSpace:n==="wrap"||o?"pre-line":"nowrap"},children:[r,this.t(t),i]})}}DisplayTextFieldModel.define({label:(0,import_flow_engine.tExpr)("Text")});import_flow_engine.DisplayItemModel.bindModelToInterface("DisplayTextFieldModel",["input","email","phone","uuid","textarea","nanoid"],{isDefault:!0});class DisplayURLFieldModel extends DisplayTitleFieldModel{renderComponent(t){return(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:t&&(0,import_jsx_runtime.jsx)("a",{target:"_blank",rel:"noopener noreferrer",href:t,style:{overflowWrap:"anywhere"},children:t})})}}DisplayURLFieldModel.define({label:(0,import_flow_engine.tExpr)("URL")});import_flow_engine.DisplayItemModel.bindModelToInterface("DisplayURLFieldModel",["url"],{isDefault:!0,when:e=>!0});class DisplayTimeFieldModel extends ClickableFieldModel{renderComponent(t){const{prefix:o,suffix:r}=this.props,i=this.props.format||"HH:mm:ss",n=t&&(0,import_dayjs.default)(t,"HH:mm:ss").format(i);return(0,import_jsx_runtime.jsxs)("span",{children:[o,n,r]})}}DisplayTimeFieldModel.registerFlow({key:"timeSettings",sort:1e3,title:(0,import_flow_engine.tExpr)("Time settings"),steps:{dateFormat:{title:(0,import_flow_engine.tExpr)("Time format"),use:"dateDisplayFormat"}}});DisplayTimeFieldModel.define({label:(0,import_flow_engine.tExpr)("Time")});import_flow_engine.DisplayItemModel.bindModelToInterface("DisplayTimeFieldModel",["time"],{isDefault:!0});class DisplayCheckboxFieldModel extends FieldModel{render(){const{value:t,showUnchecked:o}=this.props;return t?(0,import_jsx_runtime.jsx)(import_icons.CheckOutlined,{style:{color:"#52c41a"}}):o?(0,import_jsx_runtime.jsx)(import_icons.CloseOutlined,{style:{color:"#ff4d4f"}}):(0,import_jsx_runtime.jsx)(import_antd.Checkbox,{disabled:!0})}}DisplayCheckboxFieldModel.define({label:(0,import_flow_engine.tExpr)("Checkbox")});import_flow_engine.DisplayItemModel.bindModelToInterface("DisplayCheckboxFieldModel",["checkbox"],{isDefault:!0});const models=Object.freeze(Object.defineProperty({__proto__:null,ActionGroupModel,ActionModel,ActionSceneEnum,ActionWithoutPermission,AddChildActionModel,AddNewActionModel,AssignFormGridModel,AssignFormItemModel,AssignFormModel,AssociationFieldGroupModel,AssociationFieldModel,BasePageTabModel,BlockGridModel,BlockModel,BlockSceneEnum,BulkDeleteActionModel,CascadeSelectFieldModel,CascadeSelectInnerFieldModel,CascadeSelectListFieldModel,CheckboxFieldModel,CheckboxGroupFieldModel,ChildPageModel,ChildPageTabModel,ClickableFieldModel,CollectionActionGroupModel,CollectionActionModel,CollectionBlockModel,CollectionSelectorFieldModel,ColorFieldModel,CommonItemModel,CreateContent,CreateFormModel,CustomWidth,DataBlockModel,DateOnlyFieldModel,DateOnlyFilterFieldModel,DateOnlyPicker,DateTimeFilterFieldModel,DateTimeNoTzFieldModel,DateTimeNoTzFilterFieldModel,DateTimeNoTzPicker,DateTimeTzFieldModel,DateTimeTzFilterFieldModel,DateTimeTzPicker,DeleteActionModel,DetailsAssociationFieldGroupModel,DetailsBlockModel,DetailsCustomItemModel,DetailsGridModel,DetailsItemModel,DetailsJSFieldItemModel,DisplayCheckboxFieldModel,DisplayColorFieldModel,DisplayDateTimeFieldModel,DisplayEnumFieldModel,DisplayHtmlFieldModel,DisplayIconFieldModel,DisplayJSONFieldModel,DisplayNumberFieldModel,DisplayPasswordFieldModel,DisplayPercentFieldModel,DisplaySubItemFieldModel,DisplaySubListFieldModel,DisplaySubTableFieldModel,DisplayTextFieldModel,DisplayTimeFieldModel,DisplayTitleFieldModel,DisplayURLFieldModel,DividerItemModel,EditActionModel,EditFormContent,EditFormModel,ExpandCollapseActionModel,FieldDeletePlaceholder,FieldModel,FieldModelSelect,FieldOperatorSelect,FilterActionModel,FilterBlockModel,FilterFormActionGroupModel,FilterFormActionModel,FilterFormBlockModel,FilterFormCollapseActionModel,FilterFormCustomFieldModel,FilterFormCustomItemModel,FilterFormCustomRecordSelectFieldModel,FilterFormFieldModel,FilterFormGridModel,FilterFormItemModel,FilterFormJSActionModel,FilterFormRecordSelectFieldModel,FilterFormResetActionModel,FilterFormSubmitActionModel,FilterManager,FormActionGroupModel,FormActionModel,FormAssociationFieldGroupModel,FormAssociationItemModel,FormBlockContent,FormBlockModel,FormComponent,FormCustomItemModel,FormGridModel,FormItemModel,FormJSFieldItemModel,FormModel,FormSubmitActionModel,GRID_FLOW_KEY,GRID_STEP,GridModel,IconFieldModel,InputFieldModel,InputNumberField,JSActionModel,JSBlockModel,JSCollectionActionModel,JSColumnModel,JSEditableFieldModel,JSFieldModel,JSFormActionModel,JSItemModel,JSRecordActionModel,get JsonFieldModel(){return JsonFieldModel},JsonInput,LinkActionModel,MainPageModel,MarkdownItemModel,NBColorPicker,NumberFieldModel,ObjectNester,PageModel,PageTabModel,PasswordFieldModel,PercentFieldModel,PercentInput,PopupActionModel,PopupCollectionActionModel,PopupSubTableActionGroupModel,PopupSubTableActionsColumnModel,PopupSubTableEditActionModel,PopupSubTableFieldModel,PopupSubTableFormActionGroupModel,PopupSubTableFormModel,PopupSubTableFormSubmitActionModel,PopupSubTableRemoveActionModel,QuickEditFormModel,RadioGroupFieldModel,RecordActionGroupModel,RecordActionModel,RecordPickerContent,RecordPickerFieldModel,RecordSelectFieldModel,RefreshActionModel,RichTextField,get RichTextFieldModel(){return RichTextFieldModel},RootPageModel,RootPageTabModel,RouteModel,SelectFieldModel,SourceCascader,SubFormFieldModel,SubFormListFieldModel,SubPageModel,SubTableColumnModel,SubTableFieldModel,SubTableRecordAction,TableActionsColumnModel,TableAssociationFieldGroupModel,TableBlockModel,TableColumnModel,TableCustomColumnModel,TableJSFieldItemModel,TableSelectModel,get TextareaFieldModel(){return TextareaFieldModel},TimeFieldModel,UnitConversion:UnitConversion$1,UpdateRecordActionModel,VariableFieldFormModel,ViewActionModel,buildDisplayPathFromValue,buildRecordPickerParentItemContext,collectAssociationHydrationCandidates,collectCascadeHydrationCandidate,connectFields,customizeFilterRender,defaultOperator,findOptionPathByTk,formatNumber,getAllDataModels,getDefaultOperator,getDisplayNumber,getValueWithIndex,injectRecordPickerPopupContext,isFilterValueEmpty,joinUrlSearch,markCascadeHydrationDone,operatorComponentProps,recalculateGridSizes,resolveCustomFieldOperatorList,resolveDefaultCustomFieldOperator,toOperatorSelectOptions,transformNestedData,transformRowsToSingleColumn},Symbol.toStringTag,{value:"Module"}));function collectDirtyFormModelUids(e){if(!e)return[];const t=new Set,o=[],r=i=>{var n;if(!(i!=null&&i.uid)||t.has(i.uid))return;t.add(i.uid);const l=(n=i.getUserModifiedFields)==null?void 0:n.call(i);l!=null&&l.size&&o.push(i.uid),Object.values(i.subModels||{}).forEach(a=>{import_lodash.default.castArray(a).forEach(c=>{c&&typeof c=="object"&&r(c)})})};return r(e),o}function createBeforeCloseDirtyState(e){const t=collectDirtyFormModelUids(e);return{hasDirtyForms:t.length>0,formModelUids:t}}function createViewBeforeCloseHandler(e){return t=>L(this,[t],function*({result:o,force:r}){if(r)return!0;const i=createBeforeCloseDirtyState(e);let n=!1;const l=yield e.dispatchEvent("close",{result:o,force:!1,dirty:i,controller:{prevent(){n=!0}}}),a=(l==null?void 0:l.__abortedByExitAll)===!0||(Array.isArray(l)?l.some(c=>c instanceof import_flow_engine.FlowExitAllException):!1);return!n&&!a})}const openView=(0,import_flow_engine.defineAction)({name:"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"},{label:(0,import_flow_engine.tExpr)("Page"),value:"embed"}],"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","x-reactions":{dependencies:["mode"],fulfill:{state:{hidden:'{{$deps[0] === "embed"}}'}}}}},hideInSettings:e=>L(void 0,null,function*(){var t,o,r,i;if(!e.model.getFlow("displayFieldSettings"))return!1;const n=(r=(o=(t=e.model).getStepParams)==null?void 0:o.call(t,"displayFieldSettings","clickToOpen"))==null?void 0:r.clickToOpen;return n===void 0?!((i=e.collectionField)!=null&&i.isAssociationField()):n===!1}),defaultParams:e=>L(void 0,null,function*(){var t,o,r,i,n,l,a,c,u,d;const m=e.getPropertyMetaTree()||[],p=Array.isArray(m)&&m.some(b=>String(b==null?void 0:b.name)==="record");let h=((t=e.collection)==null?void 0:t.filterTargetKey)||"id";if((r=(o=e.blockModel)==null?void 0:o.resource)!=null&&r.resourceName){const b=e.collection.dataSource.collectionManager.getAssociation((n=(i=e.blockModel)==null?void 0:i.resource)==null?void 0:n.resourceName);(b==null?void 0:b.interface)!=="m2m"&&(h=(b==null?void 0:b.targetKey)||h)}const g=p?`{{ ctx.record.${h} }}`:void 0;let f;try{const b=(a=(l=e.resource)==null?void 0:l.getSourceId)==null?void 0:a.call(l);b!=null&&String(b)!==""&&(f="{{ ctx.resource.sourceId }}")}catch{}const _=(c=e.collection)==null?void 0:c.dataSourceKey,v=(u=e.collection)==null?void 0:u.name;return x(x(x(x({mode:"drawer",size:"medium",pageModelClass:"ChildPageModel",uid:(d=e.model)==null?void 0:d.uid},g?{filterByTk:g}:{}),f?{sourceId:f}:{}),_?{dataSourceKey:_}:{}),v?{collectionName:v}:{})}),beforeParamsSave(e,t){return L(this,null,function*(){if(t!=null&&t.uid){const o=e.engine;if(!(o.getModel(t.uid)||(yield o.loadModel({uid:t.uid}))))throw new Error(e.t("Popup UID not exists"))}})},handler(e,t){return L(this,null,function*(){var o,r,i,n,l,a,c,u,d,m,p,h,g,f,_,v,b,F,y,C,S,P,j;const I=e.inputArgs||{},T=(n=(i=I.defineProperties)!=null?i:(r=(o=e.model.context)==null?void 0:o.inputArgs)==null?void 0:r.defineProperties)!=null?n:void 0,D=(u=(c=I.defineMethods)!=null?c:(a=(l=e.model.context)==null?void 0:l.inputArgs)==null?void 0:a.defineMethods)!=null?u:void 0,E=((m=(d=e.model)==null?void 0:d.getInputArgs)==null?void 0:m.call(d))||{},w=(I==null?void 0:I.defaultInputKeys)||[],k=te=>{const ie=typeof(I==null?void 0:I[te])<"u",re=w.includes(te);return ie&&!re?I[te]:typeof(t==null?void 0:t[te])<"u"?t[te]:ie?I[te]:E==null?void 0:E[te]},N=(()=>{var te;const ie=k("filterByTk");return Array.isArray((te=e.collection)==null?void 0:te.filterTargetKey)&&e.collection.filterTargetKey.length===1&&ie!=null&&typeof ie!="object"?{[e.collection.filterTargetKey[0]]:ie}:ie})(),B=k("sourceId"),M=typeof(I==null?void 0:I.dataSourceKey)<"u"?I.dataSourceKey:t==null?void 0:t.dataSourceKey,$=typeof(I==null?void 0:I.collectionName)<"u"?I.collectionName:t==null?void 0:t.collectionName,q=typeof(I==null?void 0:I.associationName)<"u"?I.associationName:t==null?void 0:t.associationName,O=typeof I.tabUid<"u"?I.tabUid:t.tabUid,V=(p=e.inputArgs)!=null&&p.isMobileLayout?"embed":((h=e.inputArgs)==null?void 0:h.mode)||t.mode||"drawer";let z=typeof I.navigation<"u"?I.navigation:t.navigation;if((T||D)&&(z=!1),z!==!1&&e.isNavigationEnabled!==!1&&!e.inputArgs.navigation&&(g=e.view)!=null&&g.navigation){const te=V,ie=A(x({},e.inputArgs),{dataSourceKey:M,collectionName:$,associationName:q,filterByTk:N,sourceId:B,tabUid:O,viewUid:((_=(f=e.model.context)==null?void 0:f.inputArgs)==null?void 0:_.viewUid)||e.model.uid}),re={type:te,inputArgs:ie,navigation:(v=e.view)==null?void 0:v.navigation,preventClose:!!(t!=null&&t.preventClose),engineCtx:e.engine.context};e.model.context.defineProperty("view",{value:re});const ae={viewUid:((F=(b=e.model.context)==null?void 0:b.inputArgs)==null?void 0:F.viewUid)||e.model.uid,filterByTk:N,sourceId:B,tabUid:O};e.view.navigation.navigateTo(ae);return}if(t!=null&&t.uid&&t.uid!==e.model.uid){yield e.openView(t.uid,x(x(A(x(x({},I),t||{}),{navigation:z,target:e.inputArgs.target||e.layoutContentElement,dataSourceKey:M??E.dataSourceKey,collectionName:$??E.collectionName,associationName:q??E.associationName,filterByTk:N,sourceId:B,tabUid:O}),T?{defineProperties:T}:{}),D?{defineMethods:D}:{}));return}const U={drawer:{small:"30%",medium:"50%",large:"70%"},dialog:{small:"40%",medium:"50%",large:"80%"},embed:{}},K=e.inputArgs.pageModelClass||t.pageModelClass||"ChildPageModel",H=e.inputArgs.size||t.size||"medium";let Y=null,Z=null,W=e.model.uid;if(t.subModelKey){const te=yield e.engine.loadOrCreateModel({async:!0,parentId:e.model.uid,subKey:t.subModelKey,subType:"object",use:"FlowModel"},{skipSave:!e.flowSettingsEnabled});te!=null&&te.uid&&(W=te.uid)}const J=!!((y=e.inputArgs)!=null&&y.navigation),oe=((S=(C=e.view)==null?void 0:C.inputArgs)==null?void 0:S.openerUids)||I.openerUids||[],G=J?I.openerUids||oe:[...oe,((j=(P=e.model.context)==null?void 0:P.inputArgs)==null?void 0:j.viewUid)||e.model.uid],Q=typeof I.preventClose<"u"?!!I.preventClose:!!t.preventClose,X=A(x(x({viewUid:e.model.uid},e.inputArgs),I),{dataSourceKey:M,collectionName:$,associationName:q,tabUid:O,openerUids:G,pageActive:!0});X.filterByTk=N,X.sourceId=B,yield e.viewer.open({type:V,triggerByRouter:X.triggerByRouter,inputArgs:import_lodash.default.omit(X,"triggerByRouter"),preventClose:Q,destroyOnClose:!0,inheritContext:!1,target:e.inputArgs.target||e.layoutContentElement,width:U[V][H],content:te=>(e.inputArgs.destroyRef&&(e.inputArgs.destroyRef.current=te.destroy),e.inputArgs.updateRef&&(e.inputArgs.updateRef.current=te.update),(0,import_jsx_runtime.jsx)(FlowPage,{parentId:W,pageModelClass:K,onModelLoaded:(ie,re)=>{var ae,se,le,ge,me,xe,pe,fe;Y=ie;const de=re||e.engine.getModel(Y);if(Z=de||null,!de)return;te.beforeClose=createViewBeforeCloseHandler(de);const ce=(ge=(le=I.defineProperties)!=null?le:(se=(ae=e.model.context)==null?void 0:ae.inputArgs)==null?void 0:se.defineProperties)!=null?ge:{},ne=(fe=(pe=I.defineMethods)!=null?pe:(xe=(me=e.model.context)==null?void 0:me.inputArgs)==null?void 0:xe.defineMethods)!=null?fe:{};de.context.defineProperty("currentView",{get:()=>te}),de.context.defineProperty("flowSettingsEnabled",{get:()=>e.flowSettingsEnabled,cache:!1}),de.context.defineProperty("view",{get:()=>te}),de.context.defineProperty("closable",{get:()=>V!=="embed"}),de instanceof RootPageModel&&de.context.defineProperty("pageActive",{get:()=>e.pageActive}),Object.entries(ce).forEach(([ue,he])=>{de.context.defineProperty(ue,he)}),Object.entries(ne).forEach(([ue,he])=>{de.context.defineMethod(ue,he)}),de.invalidateFlowCache("beforeRender",!0),de._rerunLastAutoRun()},defaultTabTitle:e.model.defaultPopupTitle})),styles:{content:x({padding:0,backgroundColor:e.model.flowEngine.context.themeToken.colorBgLayout},V==="embed"?{position:"absolute",top:0,left:0,right:0,bottom:0}:{}),body:{padding:0}},onClose:()=>{if(Y){const te=Z||e.model.flowEngine.getModel(Y);te==null||te.invalidateFlowCache("beforeRender",!0)}},onOpen:e.inputArgs.onOpen})})}}),runjs=(0,import_flow_engine.defineAction)({name:"runjs",title:(0,import_flow_engine.tExpr)("Execute JavaScript"),scene:[import_flow_engine.ActionScene.DYNAMIC_EVENT_FLOW],sort:1e4,useRawParams:!0,uiSchema:{code:{type:"string","x-component":CodeEditor,"x-component-props":{enableLinter:!0,height:"200px",scene:"eventFlow"}}},handler(e,t){return L(this,null,function*(){var o;if((o=e.inputArgs)!=null&&o.navigation)return;const r=(0,import_flow_engine.createSafeNavigator)();return e.runjs(t.code,{window:(0,import_flow_engine.createSafeWindow)({navigator:r}),document:(0,import_flow_engine.createSafeDocument)(),navigator:r})})}}),DEFAULT_DURATION$1=3;function normalizeDuration$1(e,t=DEFAULT_DURATION$1){if(e===null||typeof e>"u")return t;const o=Number(e);return Number.isNaN(o)?t:Math.max(0,Math.trunc(o))}const showMessage=(0,import_flow_engine.defineAction)({name:"showMessage",title:(0,import_flow_engine.tExpr)("Show message"),scene:import_flow_engine.ActionScene.DYNAMIC_EVENT_FLOW,sort:500,uiSchema:{value:{type:"object","x-component":e=>{var t;const{value:o={},onChange:r}=e,i=(0,import_flow_engine.useFlowContext)(),n=i.model.translate.bind(i.model),l={type:(t=o.type)!=null?t:"info",content:o.content||"",duration:normalizeDuration$1(o.duration)},a=p=>{r(x(x({},l),p))},c=p=>{a({type:p.target.value})},u=p=>{a({content:p.target.value})},d=p=>{a({duration:normalizeDuration$1(p)})},m=p=>(0,import_jsx_runtime.jsx)("div",{style:{marginBottom:"4px",fontSize:"14px"},children:p});return(0,import_jsx_runtime.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"12px"},children:[(0,import_jsx_runtime.jsxs)("div",{children:[m(n("Message type")),(0,import_jsx_runtime.jsxs)(import_antd.Radio.Group,{value:l.type,onChange:c,children:[(0,import_jsx_runtime.jsx)(import_antd.Radio,{value:"success",children:n("Success")}),(0,import_jsx_runtime.jsx)(import_antd.Radio,{value:"error",children:n("Error")}),(0,import_jsx_runtime.jsx)(import_antd.Radio,{value:"info",children:n("Info")}),(0,import_jsx_runtime.jsx)(import_antd.Radio,{value:"warning",children:n("Warning")}),(0,import_jsx_runtime.jsx)(import_antd.Radio,{value:"loading",children:n("Loading")})]})]}),(0,import_jsx_runtime.jsxs)("div",{children:[m(n("Message content")),(0,import_jsx_runtime.jsx)(import_antd.Input.TextArea,{value:l.content,onChange:u,placeholder:n("Please input message content"),rows:3,style:{width:"100%"}})]}),(0,import_jsx_runtime.jsxs)("div",{children:[m(n("Duration (seconds, 0 = no auto close)")),(0,import_jsx_runtime.jsx)(import_antd.InputNumber,{value:l.duration,onChange:d,min:0,step:1,precision:0,style:{width:"100%"}})]})]})}}},handler:(e,t)=>L(void 0,[e,t],function*(o,{value:r}){const i=r||{type:"info",content:"",duration:DEFAULT_DURATION$1},{type:n="info",content:l,duration:a=DEFAULT_DURATION$1}=i,c=normalizeDuration$1(a);if(!l)return;const u=`flow-message-${(0,import_client.uid)()}`,d={key:u,type:n,content:c===0?(0,import_jsx_runtime.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:"8px"},children:[(0,import_jsx_runtime.jsx)("span",{children:l}),(0,import_jsx_runtime.jsx)(import_icons.CloseOutlined,{role:"button","aria-label":"close message",style:{color:"rgba(0, 0, 0, 0.45)",cursor:"pointer",fontSize:"12px"},onClick:()=>{var m,p;return(p=(m=o.message).destroy)==null?void 0:p.call(m,u)}})]}):l,duration:c};o.message.open(d)})}),DEFAULT_DURATION=5;function normalizeDuration(e,t=DEFAULT_DURATION){if(e===null||typeof e>"u")return t;const o=Number(e);return Number.isNaN(o)?t:Math.max(0,Math.trunc(o))}const showNotification=(0,import_flow_engine.defineAction)({name:"showNotification",title:(0,import_flow_engine.tExpr)("Show notification"),scene:import_flow_engine.ActionScene.DYNAMIC_EVENT_FLOW,sort:600,uiSchema:{value:{type:"object","x-component":e=>{var t,o;const{value:r={},onChange:i}=e,n=(0,import_flow_engine.useFlowContext)(),l=n.model.translate.bind(n.model),a={type:(t=r.type)!=null?t:"info",title:r.title||"",description:r.description||"",duration:normalizeDuration(r.duration),placement:(o=r.placement)!=null?o:"topRight"},c=_=>{i(x(x({},a),_))},u=_=>{c({type:_.target.value})},d=_=>{c({title:_.target.value})},m=_=>{c({description:_.target.value})},p=_=>{c({duration:normalizeDuration(_)})},h=_=>{c({placement:_})},g=[{label:l("Top left"),value:"topLeft"},{label:l("Top right"),value:"topRight"},{label:l("Bottom left"),value:"bottomLeft"},{label:l("Bottom right"),value:"bottomRight"}],f=_=>(0,import_jsx_runtime.jsx)("div",{style:{marginBottom:"4px",fontSize:"14px"},children:_});return(0,import_jsx_runtime.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"12px"},children:[(0,import_jsx_runtime.jsxs)("div",{children:[f(l("Notification type")),(0,import_jsx_runtime.jsxs)(import_antd.Radio.Group,{value:a.type,onChange:u,children:[(0,import_jsx_runtime.jsx)(import_antd.Radio,{value:"success",children:l("Success")}),(0,import_jsx_runtime.jsx)(import_antd.Radio,{value:"error",children:l("Error")}),(0,import_jsx_runtime.jsx)(import_antd.Radio,{value:"info",children:l("Info")}),(0,import_jsx_runtime.jsx)(import_antd.Radio,{value:"warning",children:l("Warning")})]})]}),(0,import_jsx_runtime.jsxs)("div",{children:[f(l("Notification title")),(0,import_jsx_runtime.jsx)(import_antd.Input,{value:a.title,onChange:d,placeholder:l("Please input notification title"),style:{width:"100%"}})]}),(0,import_jsx_runtime.jsxs)("div",{children:[f(l("Notification description")),(0,import_jsx_runtime.jsx)(import_antd.Input.TextArea,{value:a.description,onChange:m,placeholder:l("Please input notification description"),rows:3,style:{width:"100%"}})]}),(0,import_jsx_runtime.jsxs)("div",{children:[f(l("Placement")),(0,import_jsx_runtime.jsx)(import_antd.Select,{value:a.placement,onChange:h,options:g,style:{width:"100%"}})]}),(0,import_jsx_runtime.jsxs)("div",{children:[f(l("Duration (seconds, 0 = no auto close)")),(0,import_jsx_runtime.jsx)(import_antd.InputNumber,{value:a.duration,onChange:p,min:0,step:1,precision:0,style:{width:"100%"}})]})]})}}},handler:(e,t)=>L(void 0,[e,t],function*(o,{value:r}){const i=r||{type:"info",title:"",description:"",duration:DEFAULT_DURATION,placement:"topRight"},{type:n="info",title:l,description:a,duration:c=DEFAULT_DURATION,placement:u="topRight"}=i,d=normalizeDuration(c);!l&&!a||o.notification.open({type:n,message:l,description:a,duration:d,placement:u})})}),navigateToURL=(0,import_flow_engine.defineAction)({name:"navigateToURL",title:(0,import_flow_engine.tExpr)("Navigate to URL"),scene:import_flow_engine.ActionScene.DYNAMIC_EVENT_FLOW,sort:400,uiSchema:{value:{type:"object",properties:{url:{title:(0,import_flow_engine.tExpr)("URL"),type:"string","x-decorator":"FormItem","x-component":TextAreaWithContextSelector,description:'{{t("Do not concatenate search params in the URL")}}',required:!0},searchParams:{type:"array","x-component":"ArrayItems","x-decorator":"FormItem",title:'{{t("Search parameters")}}',items:{type:"object",properties:{space:{type:"void","x-component":"Space","x-component-props":{style:{flexWrap:"nowrap",maxWidth:"100%",display:"flex"},className:import_css.css`
2291
+ `,EllipsisJSON=({content:e,style:t,className:o})=>{const r=(0,import_react2.useRef)(null),[i,n]=(0,import_react2.useState)(!1);(0,import_react2.useEffect)(()=>{const a=r.current;a&&n(a.scrollWidth>a.clientWidth)},[e]);const l=(0,import_jsx_runtime.jsx)("div",{ref:r,style:A(x({},t),{whiteSpace:"nowrap",fontFamily:"Consolas, Monaco, monospace",overflow:"hidden",textOverflow:"ellipsis"}),children:e});return i?(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:(0,import_jsx_runtime.jsx)("pre",{style:{margin:0,maxHeight:400},className:o,children:e}),overlayInnerStyle:{background:"#fff",color:"#000",boxShadow:"0 2px 8px rgba(0,0,0,0.15)",maxWidth:500},color:"#fff",overlayStyle:{maxWidth:500,whiteSpace:"pre-wrap"},children:l}):l};class DisplayJSONFieldModel extends DisplayTitleFieldModel{renderComponent(t){const{space:o,style:r,className:i,overflowMode:n}=this.props;let l="";if(t!=null)try{l=JSON.stringify(t,null,o??2)}catch{l=this.flowEngine.translate("Invalid JSON format")}return n==="ellipsis"?(0,import_jsx_runtime.jsx)(EllipsisJSON,{content:l,style:r,className:(0,import_css.cx)(i,JSONClassName)}):(0,import_jsx_runtime.jsx)("pre",{className:(0,import_css.cx)(i,JSONClassName),style:r,children:l})}}import_flow_engine.DisplayItemModel.bindModelToInterface("DisplayJSONFieldModel",["json"],{isDefault:!0});function countDecimalPlaces(e){const t=(0,import_lodash.toString)(e);return t.includes(".")?t.split(".")[1].replace(/0+$/,"").length:0}const separators={"0,0.00":{thousands:",",decimal:"."},"0.0,00":{thousands:".",decimal:","},"0 0,00":{thousands:" ",decimal:"."},"0.00":{thousands:"",decimal:"."}};function formatNumberWithSeparator(e,t="0.00",o=1,r){if(e>Number.MAX_SAFE_INTEGER||e<Number.MIN_SAFE_INTEGER)return formatBigNumberWithSeparator(e,t,o,r);let i=e;r&&(i=Number(e));let n="";if(separators[t]){const{thousands:l,decimal:a}=separators[t];n=i.toLocaleString("en-US",{style:"decimal",minimumFractionDigits:o,maximumFractionDigits:o}).replace(/,/g,"comma_placeholder").replace(/\./g,"dot_placeholder").replace(/comma_placeholder/g,l).replace(/dot_placeholder/g,a)}else n=i.toString();return n}function formatBigNumberWithSeparator(e,t="0.00",o=1,r){let i=e;r&&(i=new import_bignumber.default(e).toString());let n="";if(separators[t]){const{thousands:l,decimal:a}=separators[t],[c,u]=i.toString().split(".");let d=u;const m=c.replace(/\B(?=(\d{3})+(?!\d))/g,l);d&&o?(d=d.substring(0,o),n=`${m}${a}${d}`):n=m}else n=i.toString();return n}function formatUnitConversion(e,t="*",o){if(!o)return e;let r;if(t==="*")r=e*o;else if(t==="/")if(o!==0)r=e/o;else return console.error("Error: Division by zero."),null;else return console.error("Error: Invalid operator. Use '*' for multiplication or '/' for division."),null;return math.round(r,9)}function scientificNotation(e,t,o="."){return(0,import_d3_format.format)(`.${t}e`)(e).replace(".",o).replace(/e([+-]?\d+)/,(r,i)=>i.startsWith("+")?`×10<sup>${i.slice(1)}</sup>`:`×10<sup>-${i.slice(1)}</sup>`)}function formatNumber(e){var t;const{step:o,formatStyle:r="normal",value:i,unitConversion:n,unitConversionType:l,separator:a="0,0.00"}=e;if(!(0,import_shared.isValid)(i))return null;const c=formatUnitConversion(i,l,n),u=(0,import_client.toFixedByStep)(c,o);let d;return d=formatNumberWithSeparator(u,a,countDecimalPlaces(o),r),r==="scientifix"&&(d=scientificNotation(Number(c),countDecimalPlaces(o),(t=separators==null?void 0:separators[a])==null?void 0:t.decimal)),d==="NaN"&&(d=i),d}const getDisplayNumber=e=>{const{numberStep:t,formatStyle:o,value:r,unitConversion:i,unitConversionType:n,separator:l}=e;return formatNumber({step:t,formatStyle:o,value:r,unitConversion:i,unitConversionType:n,separator:l})};class DisplayNumberFieldModel extends ClickableFieldModel{renderComponent(t){const{addonBefore:o,addonAfter:r}=this.props,i=getDisplayNumber(A(x({},this.props),{value:t}));return i?(0,import_jsx_runtime.jsxs)("span",{children:[o,(0,import_jsx_runtime.jsx)("span",{dangerouslySetInnerHTML:{__html:i}}),r]}):null}}DisplayNumberFieldModel.define({label:(0,import_flow_engine.tExpr)("Number")});const UnitConversion$1=()=>{const e=(0,import_react.useForm)(),{unitConversionType:t}=e.values,{t:o}=(0,import_react_i18next.useTranslation)();return(0,import_jsx_runtime.jsxs)(import_antd.Select,{defaultValue:t||"*",style:{width:160},onChange:r=>{e.setValuesIn("unitConversionType",r)},children:[(0,import_jsx_runtime.jsx)(import_antd.Select.Option,{value:"*",children:o("Multiply by")}),(0,import_jsx_runtime.jsx)(import_antd.Select.Option,{value:"/",children:o("Divide by")})]})};DisplayNumberFieldModel.registerFlow({key:"numberSettings",sort:500,title:(0,import_flow_engine.tExpr)("Number settings"),steps:{format:{title:(0,import_flow_engine.tExpr)("Number format"),use:"numberFormat"}}});import_flow_engine.DisplayItemModel.bindModelToInterface("DisplayNumberFieldModel",["number","integer","id","snowflakeId"],{isDefault:!0});class DisplayPasswordFieldModel extends FieldModel{render(){const{value:t}=this.props;return t?(0,import_jsx_runtime.jsx)("div",{children:"********"}):(0,import_jsx_runtime.jsx)("div",{})}}import_flow_engine.DisplayItemModel.bindModelToInterface("DisplayPasswordFieldModel",["password"],{isDefault:!0});class DisplayPercentFieldModel extends ClickableFieldModel{renderComponent(t){const{addonBefore:o="",addonAfter:r="%",numberStep:i}=this.props,n=math.round(t*100,9);if(t==null)return;const l=getDisplayNumber(A(x({},this.props),{value:n,numberStep:i}));return l?(0,import_jsx_runtime.jsxs)("div",{children:[o,(0,import_jsx_runtime.jsx)("span",{dangerouslySetInnerHTML:{__html:l}}),r]}):null}}DisplayPercentFieldModel.registerFlow({key:"numberSettings",sort:500,title:(0,import_flow_engine.tExpr)("Number settings"),steps:{format:{title:(0,import_flow_engine.tExpr)("Number format"),uiSchema:e=>({formatStyle:{type:"string",enum:[{value:"normal",label:(0,import_flow_engine.tExpr)("Normal")},{value:"scientifix",label:(0,import_flow_engine.tExpr)("Scientifix notation")}],"x-decorator":"FormItem","x-component":"Select",title:"{{t('Style')}}"},unitConversion:{type:"number","x-decorator":"FormItem","x-component":"NumberPicker",title:"{{t('Unit conversion')}}","x-component-props":{style:{width:"100%"},addonBefore:(0,import_jsx_runtime.jsx)(UnitConversion$1,{})}},separator:{type:"string",enum:[{value:"0,0.00",label:"100,000.00"},{value:"0.0,00",label:"100.000,00"},{value:"0 0,00",label:"100 000.00"},{value:"0.00",label:"100000.00"}],"x-decorator":"FormItem","x-component":"Select",title:"{{t('Separator')}}"},numberStep:{type:"string",title:'{{t("Precision")}}',"x-component":"Select","x-decorator":"FormItem",enum:[{value:"1",label:"1"},{value:"0.1",label:"1.0"},{value:"0.01",label:"1.00"},{value:"0.001",label:"1.000"},{value:"0.0001",label:"1.0000"},{value:"0.00001",label:"1.00000"},{value:"0.000001",label:"1.000000"},{value:"0.0000001",label:"1.0000000"},{value:"0.00000001",label:"1.00000000"}]},addonBefore:{type:"string",title:'{{t("Prefix")}}',"x-component":"Input","x-decorator":"FormItem"},addonAfter:{type:"string",title:'{{t("Suffix")}}',"x-component":"Input","x-decorator":"FormItem","x-disabled":!0}}),defaultParams:e=>{const{formatStyle:t,unitConversion:o,unitConversionType:r,separator:i,step:n,addonBefore:l,addonAfter:a}=e.collectionField.getComponentProps();return{formatStyle:t||"normal",unitConversion:o,unitConversionType:r,separator:i||"0,0.00",numberStep:n||"1",addonBefore:l,addonAfter:a||"%"}},handler(e,t){const{formatStyle:o,unitConversion:r,unitConversionType:i,separator:n,numberStep:l,addonBefore:a,addonAfter:c}=t;e.model.setProps({formatStyle:o,unitConversion:r,unitConversionType:i,separator:n,numberStep:l,addonBefore:a,addonAfter:c})}}}});DisplayPercentFieldModel.define({label:(0,import_flow_engine.tExpr)("Percent")});import_flow_engine.DisplayItemModel.bindModelToInterface("DisplayPercentFieldModel",["percent"],{isDefault:!0});class DisplayTextFieldModel extends ClickableFieldModel{t(t){return typeof t!="string"?t:t.startsWith("{{")&&t.endsWith("}}")?this.translate(t):t}renderComponent(t,o){const{prefix:r,suffix:i,overflowMode:n}=this.props;return(0,import_jsx_runtime.jsxs)("span",{style:{whiteSpace:n==="wrap"||o?"pre-line":"nowrap"},children:[r,this.t(t),i]})}}DisplayTextFieldModel.define({label:(0,import_flow_engine.tExpr)("Text")});import_flow_engine.DisplayItemModel.bindModelToInterface("DisplayTextFieldModel",["input","email","phone","uuid","textarea","nanoid"],{isDefault:!0});class DisplayURLFieldModel extends DisplayTitleFieldModel{renderComponent(t){return(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:t&&(0,import_jsx_runtime.jsx)("a",{target:"_blank",rel:"noopener noreferrer",href:t,style:{overflowWrap:"anywhere"},children:t})})}}DisplayURLFieldModel.define({label:(0,import_flow_engine.tExpr)("URL")});import_flow_engine.DisplayItemModel.bindModelToInterface("DisplayURLFieldModel",["url"],{isDefault:!0,when:e=>!0});class DisplayTimeFieldModel extends ClickableFieldModel{renderComponent(t){const{prefix:o,suffix:r}=this.props,i=this.props.format||"HH:mm:ss",n=t&&(0,import_dayjs.default)(t,"HH:mm:ss").format(i);return(0,import_jsx_runtime.jsxs)("span",{children:[o,n,r]})}}DisplayTimeFieldModel.registerFlow({key:"timeSettings",sort:1e3,title:(0,import_flow_engine.tExpr)("Time settings"),steps:{dateFormat:{title:(0,import_flow_engine.tExpr)("Time format"),use:"dateDisplayFormat"}}});DisplayTimeFieldModel.define({label:(0,import_flow_engine.tExpr)("Time")});import_flow_engine.DisplayItemModel.bindModelToInterface("DisplayTimeFieldModel",["time"],{isDefault:!0});class DisplayCheckboxFieldModel extends FieldModel{render(){const{value:t,showUnchecked:o}=this.props;return t?(0,import_jsx_runtime.jsx)(import_icons.CheckOutlined,{style:{color:"#52c41a"}}):o?(0,import_jsx_runtime.jsx)(import_icons.CloseOutlined,{style:{color:"#ff4d4f"}}):(0,import_jsx_runtime.jsx)(import_antd.Checkbox,{disabled:!0})}}DisplayCheckboxFieldModel.define({label:(0,import_flow_engine.tExpr)("Checkbox")});import_flow_engine.DisplayItemModel.bindModelToInterface("DisplayCheckboxFieldModel",["checkbox"],{isDefault:!0});const models=Object.freeze(Object.defineProperty({__proto__:null,ActionGroupModel,ActionModel,ActionSceneEnum,ActionWithoutPermission,AddChildActionModel,AddNewActionModel,AssignFormGridModel,AssignFormItemModel,AssignFormModel,AssociationFieldGroupModel,AssociationFieldModel,BasePageTabModel,BlockGridModel,BlockModel,BlockSceneEnum,BulkDeleteActionModel,CascadeSelectFieldModel,CascadeSelectInnerFieldModel,CascadeSelectListFieldModel,CheckboxFieldModel,CheckboxGroupFieldModel,ChildPageModel,ChildPageTabModel,ClickableFieldModel,CollectionActionGroupModel,CollectionActionModel,CollectionBlockModel,CollectionSelectorFieldModel,ColorFieldModel,CommonItemModel,CreateContent,CreateFormModel,CustomWidth,DataBlockModel,DateOnlyFieldModel,DateOnlyFilterFieldModel,DateOnlyPicker,DateTimeFilterFieldModel,DateTimeNoTzFieldModel,DateTimeNoTzFilterFieldModel,DateTimeNoTzPicker,DateTimeTzFieldModel,DateTimeTzFilterFieldModel,DateTimeTzPicker,DeleteActionModel,DetailsAssociationFieldGroupModel,DetailsBlockModel,DetailsCustomItemModel,DetailsGridModel,DetailsItemModel,DetailsJSFieldItemModel,DisplayCheckboxFieldModel,DisplayColorFieldModel,DisplayDateTimeFieldModel,DisplayEnumFieldModel,DisplayHtmlFieldModel,DisplayIconFieldModel,DisplayJSONFieldModel,DisplayNumberFieldModel,DisplayPasswordFieldModel,DisplayPercentFieldModel,DisplaySubItemFieldModel,DisplaySubListFieldModel,DisplaySubTableFieldModel,DisplayTextFieldModel,DisplayTimeFieldModel,DisplayTitleFieldModel,DisplayURLFieldModel,DividerItemModel,EditActionModel,EditFormContent,EditFormModel,ExpandCollapseActionModel,FieldDeletePlaceholder,FieldModel,FieldModelSelect,FieldOperatorSelect,FilterActionModel,FilterBlockModel,FilterFormActionGroupModel,FilterFormActionModel,FilterFormBlockModel,FilterFormCollapseActionModel,FilterFormCustomFieldModel,FilterFormCustomItemModel,FilterFormCustomRecordSelectFieldModel,FilterFormFieldModel,FilterFormGridModel,FilterFormItemModel,FilterFormJSActionModel,FilterFormRecordSelectFieldModel,FilterFormResetActionModel,FilterFormSubmitActionModel,FilterManager,FormActionGroupModel,FormActionModel,FormAssociationFieldGroupModel,FormAssociationItemModel,FormBlockContent,FormBlockModel,FormComponent,FormCustomItemModel,FormGridModel,FormItemModel,FormJSFieldItemModel,FormModel,FormSubmitActionModel,GRID_FLOW_KEY,GRID_STEP,GridModel,IconFieldModel,InputFieldModel,InputNumberField,JSActionModel,JSBlockModel,JSCollectionActionModel,JSColumnModel,JSEditableFieldModel,JSFieldModel,JSFormActionModel,JSItemModel,JSRecordActionModel,get JsonFieldModel(){return JsonFieldModel},JsonInput,LinkActionModel,MainPageModel,MarkdownItemModel,NBColorPicker,NumberFieldModel,ObjectNester,PageModel,PageTabModel,PasswordFieldModel,PercentFieldModel,PercentInput,PopupActionModel,PopupCollectionActionModel,PopupSubTableActionGroupModel,PopupSubTableActionsColumnModel,PopupSubTableEditActionModel,PopupSubTableFieldModel,PopupSubTableFormActionGroupModel,PopupSubTableFormModel,PopupSubTableFormSubmitActionModel,PopupSubTableRemoveActionModel,QuickEditFormModel,RadioGroupFieldModel,RecordActionGroupModel,RecordActionModel,RecordPickerContent,RecordPickerFieldModel,RecordSelectFieldModel,RefreshActionModel,RichTextField,get RichTextFieldModel(){return RichTextFieldModel},RootPageModel,RootPageTabModel,RouteModel,SelectFieldModel,SourceCascader,SubFormFieldModel,SubFormListFieldModel,SubPageModel,SubTableColumnModel,SubTableFieldModel,SubTableRecordAction,TableActionsColumnModel,TableAssociationFieldGroupModel,TableBlockModel,TableColumnModel,TableCustomColumnModel,TableJSFieldItemModel,TableSelectModel,get TextareaFieldModel(){return TextareaFieldModel},TimeFieldModel,UnitConversion:UnitConversion$1,UpdateRecordActionModel,VariableFieldFormModel,ViewActionModel,buildDisplayPathFromValue,buildRecordPickerParentItemContext,collectAssociationHydrationCandidates,collectCascadeHydrationCandidate,connectFields,customizeFilterRender,defaultOperator,findOptionPathByTk,formatNumber,getAllDataModels,getDefaultOperator,getDisplayNumber,getValueWithIndex,injectRecordPickerPopupContext,isFilterValueEmpty,joinUrlSearch,markCascadeHydrationDone,operatorComponentProps,recalculateGridSizes,resolveCustomFieldOperatorList,resolveDefaultCustomFieldOperator,toOperatorSelectOptions,transformNestedData,transformRowsToSingleColumn},Symbol.toStringTag,{value:"Module"}));function collectDirtyFormModelUids(e,t=[]){if(!e)return[];const o=new Set,r=[],i=t.length?new Set(t):null,n=l=>{var a;if(!(l!=null&&l.uid)||o.has(l.uid))return;o.add(l.uid);const c=(a=l.getUserModifiedFields)==null?void 0:a.call(l);c!=null&&c.size&&!(i!=null&&i.has(l.uid))&&r.push(l.uid),Object.values(l.subModels||{}).forEach(u=>{import_lodash.default.castArray(u).forEach(d=>{d&&typeof d=="object"&&n(d)})})};return n(e),r}function createBeforeCloseDirtyState(e,t=[]){const o=collectDirtyFormModelUids(e,t);return{hasDirtyForms:o.length>0,formModelUids:o}}function resetDirtyFormModels(e,t=[]){if(!e||!t.length)return;const o=new Set,r=new Set(t),i=n=>{var l;!(n!=null&&n.uid)||o.has(n.uid)||(o.add(n.uid),r.has(n.uid)&&((l=n.resetUserModifiedFields)==null||l.call(n)),Object.values(n.subModels||{}).forEach(a=>{import_lodash.default.castArray(a).forEach(c=>{c&&typeof c=="object"&&i(c)})}))};i(e)}function createViewBeforeCloseHandler(e){return t=>L(this,[t],function*({result:o,force:r,ignoredDirtyFormModelUids:i}){if(r)return!0;const n=createBeforeCloseDirtyState(e,i);let l=!1;const a=yield e.dispatchEvent("close",{result:o,force:!1,dirty:n,controller:{prevent(){l=!0}}}),c=(a==null?void 0:a.__abortedByExitAll)===!0||(Array.isArray(a)?a.some(d=>d instanceof import_flow_engine.FlowExitAllException):!1),u=!l&&!c;return u&&n.hasDirtyForms&&resetDirtyFormModels(e,n.formModelUids),u})}const openView=(0,import_flow_engine.defineAction)({name:"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"},{label:(0,import_flow_engine.tExpr)("Page"),value:"embed"}],"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","x-reactions":{dependencies:["mode"],fulfill:{state:{hidden:'{{$deps[0] === "embed"}}'}}}}},hideInSettings:e=>L(void 0,null,function*(){var t,o,r,i;if(!e.model.getFlow("displayFieldSettings"))return!1;const n=(r=(o=(t=e.model).getStepParams)==null?void 0:o.call(t,"displayFieldSettings","clickToOpen"))==null?void 0:r.clickToOpen;return n===void 0?!((i=e.collectionField)!=null&&i.isAssociationField()):n===!1}),defaultParams:e=>L(void 0,null,function*(){var t,o,r,i,n,l,a,c,u,d;const m=e.getPropertyMetaTree()||[],p=Array.isArray(m)&&m.some(b=>String(b==null?void 0:b.name)==="record");let h=((t=e.collection)==null?void 0:t.filterTargetKey)||"id";if((r=(o=e.blockModel)==null?void 0:o.resource)!=null&&r.resourceName){const b=e.collection.dataSource.collectionManager.getAssociation((n=(i=e.blockModel)==null?void 0:i.resource)==null?void 0:n.resourceName);(b==null?void 0:b.interface)!=="m2m"&&(h=(b==null?void 0:b.targetKey)||h)}const g=p?`{{ ctx.record.${h} }}`:void 0;let f;try{const b=(a=(l=e.resource)==null?void 0:l.getSourceId)==null?void 0:a.call(l);b!=null&&String(b)!==""&&(f="{{ ctx.resource.sourceId }}")}catch{}const _=(c=e.collection)==null?void 0:c.dataSourceKey,v=(u=e.collection)==null?void 0:u.name;return x(x(x(x({mode:"drawer",size:"medium",pageModelClass:"ChildPageModel",uid:(d=e.model)==null?void 0:d.uid},g?{filterByTk:g}:{}),f?{sourceId:f}:{}),_?{dataSourceKey:_}:{}),v?{collectionName:v}:{})}),beforeParamsSave(e,t){return L(this,null,function*(){if(t!=null&&t.uid){const o=e.engine;if(!(o.getModel(t.uid)||(yield o.loadModel({uid:t.uid}))))throw new Error(e.t("Popup UID not exists"))}})},handler(e,t){return L(this,null,function*(){var o,r,i,n,l,a,c,u,d,m,p,h,g,f,_,v,b,F,y,C,S,P,j;const I=e.inputArgs||{},T=(n=(i=I.defineProperties)!=null?i:(r=(o=e.model.context)==null?void 0:o.inputArgs)==null?void 0:r.defineProperties)!=null?n:void 0,D=(u=(c=I.defineMethods)!=null?c:(a=(l=e.model.context)==null?void 0:l.inputArgs)==null?void 0:a.defineMethods)!=null?u:void 0,E=((m=(d=e.model)==null?void 0:d.getInputArgs)==null?void 0:m.call(d))||{},w=(I==null?void 0:I.defaultInputKeys)||[],k=te=>{const ie=typeof(I==null?void 0:I[te])<"u",re=w.includes(te);return ie&&!re?I[te]:typeof(t==null?void 0:t[te])<"u"?t[te]:ie?I[te]:E==null?void 0:E[te]},N=(()=>{var te,ie;const re=k("filterByTk");return((te=e.collection)==null?void 0:te.template)==="sql"&&Array.isArray((ie=e.collection)==null?void 0:ie.filterTargetKey)&&e.collection.filterTargetKey.length===1&&re!=null&&typeof re!="object"?{[e.collection.filterTargetKey[0]]:re}:re})(),B=k("sourceId"),M=typeof(I==null?void 0:I.dataSourceKey)<"u"?I.dataSourceKey:t==null?void 0:t.dataSourceKey,$=typeof(I==null?void 0:I.collectionName)<"u"?I.collectionName:t==null?void 0:t.collectionName,q=typeof(I==null?void 0:I.associationName)<"u"?I.associationName:t==null?void 0:t.associationName,O=typeof I.tabUid<"u"?I.tabUid:t.tabUid,V=(p=e.inputArgs)!=null&&p.isMobileLayout?"embed":((h=e.inputArgs)==null?void 0:h.mode)||t.mode||"drawer";let z=typeof I.navigation<"u"?I.navigation:t.navigation;if((T||D)&&(z=!1),z!==!1&&e.isNavigationEnabled!==!1&&!e.inputArgs.navigation&&(g=e.view)!=null&&g.navigation){const te=V,ie=A(x({},e.inputArgs),{dataSourceKey:M,collectionName:$,associationName:q,filterByTk:N,sourceId:B,tabUid:O,viewUid:((_=(f=e.model.context)==null?void 0:f.inputArgs)==null?void 0:_.viewUid)||e.model.uid}),re={type:te,inputArgs:ie,navigation:(v=e.view)==null?void 0:v.navigation,preventClose:!!(t!=null&&t.preventClose),engineCtx:e.engine.context};e.model.context.defineProperty("view",{value:re});const ae={viewUid:((F=(b=e.model.context)==null?void 0:b.inputArgs)==null?void 0:F.viewUid)||e.model.uid,filterByTk:N,sourceId:B,tabUid:O};e.view.navigation.navigateTo(ae);return}if(t!=null&&t.uid&&t.uid!==e.model.uid){yield e.openView(t.uid,x(x(A(x(x({},I),t||{}),{navigation:z,target:e.inputArgs.target||e.layoutContentElement,dataSourceKey:M??E.dataSourceKey,collectionName:$??E.collectionName,associationName:q??E.associationName,filterByTk:N,sourceId:B,tabUid:O}),T?{defineProperties:T}:{}),D?{defineMethods:D}:{}));return}const U={drawer:{small:"30%",medium:"50%",large:"70%"},dialog:{small:"40%",medium:"50%",large:"80%"},embed:{}},K=e.inputArgs.pageModelClass||t.pageModelClass||"ChildPageModel",H=e.inputArgs.size||t.size||"medium";let Y=null,Z=null,W=e.model.uid;if(t.subModelKey){const te=yield e.engine.loadOrCreateModel({async:!0,parentId:e.model.uid,subKey:t.subModelKey,subType:"object",use:"FlowModel"},{skipSave:!e.flowSettingsEnabled});te!=null&&te.uid&&(W=te.uid)}const J=!!((y=e.inputArgs)!=null&&y.navigation),oe=((S=(C=e.view)==null?void 0:C.inputArgs)==null?void 0:S.openerUids)||I.openerUids||[],G=J?I.openerUids||oe:[...oe,((j=(P=e.model.context)==null?void 0:P.inputArgs)==null?void 0:j.viewUid)||e.model.uid],Q=typeof I.preventClose<"u"?!!I.preventClose:!!t.preventClose,X=A(x(x({viewUid:e.model.uid},e.inputArgs),I),{dataSourceKey:M,collectionName:$,associationName:q,tabUid:O,openerUids:G,pageActive:!0});X.filterByTk=N,X.sourceId=B,yield e.viewer.open({type:V,triggerByRouter:X.triggerByRouter,inputArgs:import_lodash.default.omit(X,"triggerByRouter"),preventClose:Q,destroyOnClose:!0,inheritContext:!1,target:e.inputArgs.target||e.layoutContentElement,width:U[V][H],content:te=>(e.inputArgs.destroyRef&&(e.inputArgs.destroyRef.current=te.destroy),e.inputArgs.updateRef&&(e.inputArgs.updateRef.current=te.update),(0,import_jsx_runtime.jsx)(FlowPage,{parentId:W,pageModelClass:K,onModelLoaded:(ie,re)=>{var ae,se,le,ge,me,xe,pe,fe;Y=ie;const de=re||e.engine.getModel(Y);if(Z=de||null,!de)return;te.beforeClose=createViewBeforeCloseHandler(de);const ce=(ge=(le=I.defineProperties)!=null?le:(se=(ae=e.model.context)==null?void 0:ae.inputArgs)==null?void 0:se.defineProperties)!=null?ge:{},ne=(fe=(pe=I.defineMethods)!=null?pe:(xe=(me=e.model.context)==null?void 0:me.inputArgs)==null?void 0:xe.defineMethods)!=null?fe:{};de.context.defineProperty("currentView",{get:()=>te}),de.context.defineProperty("flowSettingsEnabled",{get:()=>e.flowSettingsEnabled,cache:!1}),de.context.defineProperty("view",{get:()=>te}),de.context.defineProperty("closable",{get:()=>V!=="embed"}),de instanceof RootPageModel&&de.context.defineProperty("pageActive",{get:()=>e.pageActive}),Object.entries(ce).forEach(([ue,he])=>{de.context.defineProperty(ue,he)}),Object.entries(ne).forEach(([ue,he])=>{de.context.defineMethod(ue,he)}),de.invalidateFlowCache("beforeRender",!0),de._rerunLastAutoRun()},defaultTabTitle:e.model.defaultPopupTitle})),styles:{content:x({padding:0,backgroundColor:e.model.flowEngine.context.themeToken.colorBgLayout},V==="embed"?{position:"absolute",top:0,left:0,right:0,bottom:0}:{}),body:{padding:0}},onClose:()=>{if(Y){const te=Z||e.model.flowEngine.getModel(Y);te==null||te.invalidateFlowCache("beforeRender",!0)}},onOpen:e.inputArgs.onOpen})})}}),runjs=(0,import_flow_engine.defineAction)({name:"runjs",title:(0,import_flow_engine.tExpr)("Execute JavaScript"),scene:[import_flow_engine.ActionScene.DYNAMIC_EVENT_FLOW],sort:1e4,useRawParams:!0,uiSchema:{code:{type:"string","x-component":CodeEditor,"x-component-props":{enableLinter:!0,height:"200px",scene:"eventFlow"}}},handler(e,t){return L(this,null,function*(){var o;if((o=e.inputArgs)!=null&&o.navigation)return;const r=(0,import_flow_engine.createSafeNavigator)();return e.runjs(t.code,{window:(0,import_flow_engine.createSafeWindow)({navigator:r}),document:(0,import_flow_engine.createSafeDocument)(),navigator:r})})}}),DEFAULT_DURATION$1=3;function normalizeDuration$1(e,t=DEFAULT_DURATION$1){if(e===null||typeof e>"u")return t;const o=Number(e);return Number.isNaN(o)?t:Math.max(0,Math.trunc(o))}const showMessage=(0,import_flow_engine.defineAction)({name:"showMessage",title:(0,import_flow_engine.tExpr)("Show message"),scene:import_flow_engine.ActionScene.DYNAMIC_EVENT_FLOW,sort:500,uiSchema:{value:{type:"object","x-component":e=>{var t;const{value:o={},onChange:r}=e,i=(0,import_flow_engine.useFlowContext)(),n=i.model.translate.bind(i.model),l={type:(t=o.type)!=null?t:"info",content:o.content||"",duration:normalizeDuration$1(o.duration)},a=p=>{r(x(x({},l),p))},c=p=>{a({type:p.target.value})},u=p=>{a({content:p.target.value})},d=p=>{a({duration:normalizeDuration$1(p)})},m=p=>(0,import_jsx_runtime.jsx)("div",{style:{marginBottom:"4px",fontSize:"14px"},children:p});return(0,import_jsx_runtime.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"12px"},children:[(0,import_jsx_runtime.jsxs)("div",{children:[m(n("Message type")),(0,import_jsx_runtime.jsxs)(import_antd.Radio.Group,{value:l.type,onChange:c,children:[(0,import_jsx_runtime.jsx)(import_antd.Radio,{value:"success",children:n("Success")}),(0,import_jsx_runtime.jsx)(import_antd.Radio,{value:"error",children:n("Error")}),(0,import_jsx_runtime.jsx)(import_antd.Radio,{value:"info",children:n("Info")}),(0,import_jsx_runtime.jsx)(import_antd.Radio,{value:"warning",children:n("Warning")}),(0,import_jsx_runtime.jsx)(import_antd.Radio,{value:"loading",children:n("Loading")})]})]}),(0,import_jsx_runtime.jsxs)("div",{children:[m(n("Message content")),(0,import_jsx_runtime.jsx)(import_antd.Input.TextArea,{value:l.content,onChange:u,placeholder:n("Please input message content"),rows:3,style:{width:"100%"}})]}),(0,import_jsx_runtime.jsxs)("div",{children:[m(n("Duration (seconds, 0 = no auto close)")),(0,import_jsx_runtime.jsx)(import_antd.InputNumber,{value:l.duration,onChange:d,min:0,step:1,precision:0,style:{width:"100%"}})]})]})}}},handler:(e,t)=>L(void 0,[e,t],function*(o,{value:r}){const i=r||{type:"info",content:"",duration:DEFAULT_DURATION$1},{type:n="info",content:l,duration:a=DEFAULT_DURATION$1}=i,c=normalizeDuration$1(a);if(!l)return;const u=`flow-message-${(0,import_client.uid)()}`,d={key:u,type:n,content:c===0?(0,import_jsx_runtime.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:"8px"},children:[(0,import_jsx_runtime.jsx)("span",{children:l}),(0,import_jsx_runtime.jsx)(import_icons.CloseOutlined,{role:"button","aria-label":"close message",style:{color:"rgba(0, 0, 0, 0.45)",cursor:"pointer",fontSize:"12px"},onClick:()=>{var m,p;return(p=(m=o.message).destroy)==null?void 0:p.call(m,u)}})]}):l,duration:c};o.message.open(d)})}),DEFAULT_DURATION=5;function normalizeDuration(e,t=DEFAULT_DURATION){if(e===null||typeof e>"u")return t;const o=Number(e);return Number.isNaN(o)?t:Math.max(0,Math.trunc(o))}const showNotification=(0,import_flow_engine.defineAction)({name:"showNotification",title:(0,import_flow_engine.tExpr)("Show notification"),scene:import_flow_engine.ActionScene.DYNAMIC_EVENT_FLOW,sort:600,uiSchema:{value:{type:"object","x-component":e=>{var t,o;const{value:r={},onChange:i}=e,n=(0,import_flow_engine.useFlowContext)(),l=n.model.translate.bind(n.model),a={type:(t=r.type)!=null?t:"info",title:r.title||"",description:r.description||"",duration:normalizeDuration(r.duration),placement:(o=r.placement)!=null?o:"topRight"},c=_=>{i(x(x({},a),_))},u=_=>{c({type:_.target.value})},d=_=>{c({title:_.target.value})},m=_=>{c({description:_.target.value})},p=_=>{c({duration:normalizeDuration(_)})},h=_=>{c({placement:_})},g=[{label:l("Top left"),value:"topLeft"},{label:l("Top right"),value:"topRight"},{label:l("Bottom left"),value:"bottomLeft"},{label:l("Bottom right"),value:"bottomRight"}],f=_=>(0,import_jsx_runtime.jsx)("div",{style:{marginBottom:"4px",fontSize:"14px"},children:_});return(0,import_jsx_runtime.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"12px"},children:[(0,import_jsx_runtime.jsxs)("div",{children:[f(l("Notification type")),(0,import_jsx_runtime.jsxs)(import_antd.Radio.Group,{value:a.type,onChange:u,children:[(0,import_jsx_runtime.jsx)(import_antd.Radio,{value:"success",children:l("Success")}),(0,import_jsx_runtime.jsx)(import_antd.Radio,{value:"error",children:l("Error")}),(0,import_jsx_runtime.jsx)(import_antd.Radio,{value:"info",children:l("Info")}),(0,import_jsx_runtime.jsx)(import_antd.Radio,{value:"warning",children:l("Warning")})]})]}),(0,import_jsx_runtime.jsxs)("div",{children:[f(l("Notification title")),(0,import_jsx_runtime.jsx)(import_antd.Input,{value:a.title,onChange:d,placeholder:l("Please input notification title"),style:{width:"100%"}})]}),(0,import_jsx_runtime.jsxs)("div",{children:[f(l("Notification description")),(0,import_jsx_runtime.jsx)(import_antd.Input.TextArea,{value:a.description,onChange:m,placeholder:l("Please input notification description"),rows:3,style:{width:"100%"}})]}),(0,import_jsx_runtime.jsxs)("div",{children:[f(l("Placement")),(0,import_jsx_runtime.jsx)(import_antd.Select,{value:a.placement,onChange:h,options:g,style:{width:"100%"}})]}),(0,import_jsx_runtime.jsxs)("div",{children:[f(l("Duration (seconds, 0 = no auto close)")),(0,import_jsx_runtime.jsx)(import_antd.InputNumber,{value:a.duration,onChange:p,min:0,step:1,precision:0,style:{width:"100%"}})]})]})}}},handler:(e,t)=>L(void 0,[e,t],function*(o,{value:r}){const i=r||{type:"info",title:"",description:"",duration:DEFAULT_DURATION,placement:"topRight"},{type:n="info",title:l,description:a,duration:c=DEFAULT_DURATION,placement:u="topRight"}=i,d=normalizeDuration(c);!l&&!a||o.notification.open({type:n,message:l,description:a,duration:d,placement:u})})}),navigateToURL=(0,import_flow_engine.defineAction)({name:"navigateToURL",title:(0,import_flow_engine.tExpr)("Navigate to URL"),scene:import_flow_engine.ActionScene.DYNAMIC_EVENT_FLOW,sort:400,uiSchema:{value:{type:"object",properties:{url:{title:(0,import_flow_engine.tExpr)("URL"),type:"string","x-decorator":"FormItem","x-component":TextAreaWithContextSelector,description:'{{t("Do not concatenate search params in the URL")}}',required:!0},searchParams:{type:"array","x-component":"ArrayItems","x-decorator":"FormItem",title:'{{t("Search parameters")}}',items:{type:"object",properties:{space:{type:"void","x-component":"Space","x-component-props":{style:{flexWrap:"nowrap",maxWidth:"100%",display:"flex"},className:import_css.css`
2292
2292
  & > .ant-space-item:first-child {
2293
2293
  flex: 3;
2294
2294
  }