@nocobase/client 2.0.46 → 2.0.47
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/es/flow/actions/dataScopeFilter.d.ts +9 -0
- package/es/flow/components/Grid/index.d.ts +5 -3
- package/es/flow/models/base/GridModel.d.ts +19 -2
- package/es/flow/models/blocks/filter-form/FilterFormGridModel.d.ts +1 -0
- package/es/flow/models/fields/JSFieldModel.d.ts +5 -0
- package/es/index.mjs +561 -276
- package/lib/index.js +12 -12
- package/package.json +6 -6
package/lib/index.js
CHANGED
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
width: 100%;
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
|
-
`,items:a},n))})},SchemaInitializerSubMenu=e=>{var t;const o=e,{children:r,items:i,title:n,name:l,onOpenChange:a,icon:c}=o,u=te(o,["children","items","title","name","onOpenChange","icon"]),d=useCompile(),m=useSchemaInitializerItem(),p=(0,import_react2.useMemo)(()=>l||(m==null?void 0:m.name)||(0,import_shared.uid)(),[l,m]),h=(t=i||r)==null?void 0:t.filter(_=>_.useVisible?_.useVisible():!0),g=useSchemaInitializerMenuItems(h,l),f=(0,import_react2.useMemo)(()=>[A(x({},u),{key:p,label:d(n),icon:typeof c=="string"?(0,import_jsx_runtime.jsx)(import_icons.default,{type:c}):c,children:g})],[g,d,c,p,u,n]);return(0,import_jsx_runtime.jsx)(SchemaInitializerMenu,{onOpenChange:a,items:f})},SchemaInitializerSubMenuInternal=()=>{const e=useSchemaInitializerItem();return(0,import_jsx_runtime.jsx)(SchemaInitializerSubMenu,x({},e))},useAriaAttributeOfMenuItem=()=>{const{isInMenu:e}=useSchemaInitializerSubMenuContext();return{attribute:(0,import_react2.useMemo)(()=>e?{}:{role:"menuitem"},[e])}},{Paragraph:Paragraph$1,Text:Text$2}=import_antd.Typography,ErrorFallbackModal=e=>{const[t,o]=import_react2.default.useState(!1),r=(0,import_jsx_runtime.jsx)(Paragraph$1,{style:{display:"flex",marginBottom:0},copyable:{text:e.error.message},children:(0,import_jsx_runtime.jsxs)(Text$2,{type:"danger",style:{whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden",display:"inline-block",maxWidth:"200px"},children:["Error: ",e.error.message]})});return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)("div",{onMouseOver:()=>o(!0),children:e.children||r}),(0,import_jsx_runtime.jsx)(import_antd.Modal,{zIndex:1e4,open:t,footer:null,onCancel:()=>o(!1),width:"60%",children:(0,import_jsx_runtime.jsx)(ErrorFallback,x({},e))})]})},{Paragraph,Text:Text$1,Link}=import_antd.Typography,useDownloadLogs=(e,t={})=>{const o=useLocationNoUpdate(),[r,i]=import_react2.default.useState(!1),n=useAPIClient();return{loading:r,download:()=>L(void 0,null,function*(){i(!0);try{const l=yield n.request({url:"logger:collect",method:"post",responseType:"blob",data:x({error:{message:e.message,stack:e.stack},location:o},t)}),a=window.URL.createObjectURL(new Blob([l.data],{type:"application/gzip"})),c=document.createElement("a");c.setAttribute("href",a),c.setAttribute("download","logs.tar.gz"),c.click(),c.remove()}catch(l){console.log(l)}i(!1)})}},ErrorFallback=({error:e})=>{const t=(0,import_react.useFieldSchema)(),{t:o}=(0,import_react_i18next.useTranslation)(),{loading:r,download:i}=useDownloadLogs(e,{schema:t}),n=(0,import_jsx_runtime.jsxs)(import_react_i18next.Trans,{children:["This is likely a NocoBase internals bug. Please open an issue at ",(0,import_jsx_runtime.jsx)(Link,{href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:"here"})]});return(0,import_jsx_runtime.jsx)("div",{style:{backgroundColor:"white"},children:(0,import_jsx_runtime.jsx)(import_antd.Result,{style:{maxWidth:"60vw",margin:"auto"},status:"error",title:o("Render Failed"),subTitle:n,extra:[(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"primary",href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:o("Feedback")},"feedback"),(0,import_jsx_runtime.jsx)(import_antd.Button,{loading:r,onClick:i,children:o("Download logs")},"log")],children:(0,import_jsx_runtime.jsx)(Paragraph,{copyable:{text:e.stack},children:(0,import_jsx_runtime.jsx)(Text$1,{type:"danger",style:{whiteSpace:"pre-line",textAlign:"center"},children:e.stack})})})})};ErrorFallback.Modal=ErrorFallbackModal;const AppNotFound=()=>{const e=(0,import_react_router_dom.useNavigate)(),{t}=(0,import_react_i18next.useTranslation)();return(0,import_jsx_runtime.jsx)(import_antd.Result,{status:"404",title:"404",subTitle:t("Sorry, the page you visited does not exist."),extra:(0,import_jsx_runtime.jsx)(import_antd.Button,{onClick:()=>e("/",{replace:!0}),type:"primary",children:"Back Home"})})};class Plugin{constructor(t,o){this.options=t,this.app=o,this.options=t,this.app=o}get pluginManager(){return this.app.pluginManager}get context(){return this.app.context}get flowEngine(){return this.app.flowEngine}get engine(){return this.app.flowEngine}get ai(){return this.app.aiManager}get pm(){return this.app.pm}get router(){return this.app.router}get pluginSettingsManager(){return this.app.pluginSettingsManager}get pluginSettingsRouter(){return this.app.pluginSettingsManager}get schemaInitializerManager(){return this.app.schemaInitializerManager}get schemaSettingsManager(){return this.app.schemaSettingsManager}get dataSourceManager(){return this.app.dataSourceManager}afterAdd(){return L(this,null,function*(){})}beforeLoad(){return L(this,null,function*(){})}load(){return L(this,null,function*(){})}t(t,o={}){var r;return this.app.i18n.t(t,x({ns:(r=this.options)==null?void 0:r.packageName},o))}}const titleWrapperStyle={display:"flex",alignItems:"center",gap:4},withTooltipComponent=e=>t=>{const{tooltip:o}=t;return o?(0,import_jsx_runtime.jsxs)("div",{style:titleWrapperStyle,children:[(0,import_jsx_runtime.jsx)(e,x({},t)),(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:o,children:(0,import_jsx_runtime.jsx)(import_icons.QuestionCircleOutlined,{style:{zIndex:1}})})]}):(0,import_jsx_runtime.jsx)(e,x({},t))},{evaluate}=import_client4.evaluators.get("formula.js"),useEvaluatedExpression=e=>{const t=useVariables$1(),o=useLocalVariables$1(),[r,i]=(0,import_react2.useState)();return(0,import_react2.useEffect)(()=>{L(void 0,null,function*(){if(e==null||e===""){i(void 0);return}const{exp:n,scope:l}=yield replaceVariables(e,{variables:t,localVariables:o});try{const a=evaluate(n,x({now:()=>new Date().toString()},l));i(a)}catch(a){console.error(a)}})},[t.parseVariable,e,o]),r};class SchemaInitializer{constructor(t){R(this,"options"),R(this,"name"),this.options=Object.assign({items:[]},t),this.name=t.name}get items(){return this.options.items}add(t,o){const r=t.split("."),i=r[r.length-1],n=A(x({},o),{name:i}),l=(u,d)=>{const m=this.items.findIndex(p=>p.name===u);m===-1?this.items.push(d):this.items[m]=d};if(r.length===1){l(i,n);return}const a=r.slice(0,-1).join("."),c=this.get(a);if(c){c.children||(c.children=[]);const u=t.replace(`${c.name}.`,""),d=c.children.findIndex(m=>m.name===u);d===-1?c.children.push(n):c.children[d]=n}else l(i,n)}get(t){var o;if(!t)return;const r=t.split(".");let i={children:this.items};for(let n=0;n<r.length;n++){const l=r[n],a=(o=i.children)==null?void 0:o.find(c=>c.name===l);if(a&&(i=a),n===r.length-1)return a}}remove(t){const o=t.split(".");if(o.length===1){const i=this.items.findIndex(n=>n.name===o[0]);i!==-1&&this.items.splice(i,1);return}const r=this.get(o.slice(0,-1).join("."));if(r&&r.children){const i=o[o.length-1],n=r.children.findIndex(l=>l.name===i);n!==-1&&r.children.splice(n,1)}}}var NocoBaseDesktopRouteType=(e=>(e.group="group",e.page="page",e.flowRoute="flowRoute",e.link="link",e.tabs="tabs",e.flowPage="flowPage",e))(NocoBaseDesktopRouteType||{});const useStyles$h=genStyleHook("nb-menu-item",e=>{const{componentCls:t}=e;return{[t]:{paddingLeft:`${e.padding}px !important`,paddingRight:`${e.padding}px !important`}}}),useInsertFlowPageSchema=()=>{const e=useAPIClient();return(0,import_react2.useCallback)(t=>L(void 0,null,function*(){yield e.request({method:"POST",url:"/uiSchemas:insert",data:t})}),[e])},FlowPageMenuItem=()=>{const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),{theme:o}=useGlobalTheme(),{componentCls:r,hashId:i}=useStyles$h(),n=useParentRoute(),{createRoute:l}=useNocoBaseRoutes(),a=useInsertFlowPageSchema(),c=(0,import_react2.useCallback)(()=>L(void 0,null,function*(){const u=yield FormDialog(e("Add page"),()=>(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{scope:t.scope,components:x({},t.components),children:(0,import_jsx_runtime.jsx)(import_antd_v5.FormLayout,{layout:"vertical",children:(0,import_jsx_runtime.jsx)(zIndexContext.Provider,{value:ICON_POPUP_Z_INDEX,children:(0,import_jsx_runtime.jsx)(SchemaComponent,{schema:{properties:{title:{title:e("Menu item title"),required:!0,"x-component":"Input","x-decorator":"FormItem"},icon:{title:e("Icon"),"x-component":"IconPicker","x-decorator":"FormItem"}}}})})})}),o).open({initialValues:{}}),d=(0,import_shared.uid)(),m=(0,import_shared.uid)(),p=(0,import_shared.uid)(),h=(0,import_shared.uid)();yield l({type:NocoBaseDesktopRouteType.flowPage,title:u.title,icon:u.icon,parentId:n==null?void 0:n.id,schemaUid:m,menuSchemaUid:d,enableTabs:!1,children:[{type:NocoBaseDesktopRouteType.tabs,schemaUid:p,tabSchemaName:h,hidden:!0}]}),a(getFlowPageMenuSchema({pageSchemaUid:m}))}),[l,a,t==null?void 0:t.components,t==null?void 0:t.scope,n==null?void 0:n.id,e,o]);return(0,import_jsx_runtime.jsx)(SchemaInitializerItem,{title:e("Modern page (v2)"),onClick:c,className:`${r} ${i}`})};function getFlowPageMenuSchema({pageSchemaUid:e}){return{type:"void","x-component":"FlowRoute","x-uid":e}}const GroupItem$1=()=>{const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),{theme:o}=useGlobalTheme(),{componentCls:r,hashId:i}=useStyles$h(),n=useParentRoute(),{createRoute:l}=useNocoBaseRoutes(),a=(0,import_react2.useCallback)(()=>L(void 0,null,function*(){const c=yield FormDialog(e("Add group"),()=>(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{scope:t.scope,components:x({},t.components),children:(0,import_jsx_runtime.jsx)(import_antd_v5.FormLayout,{layout:"vertical",children:(0,import_jsx_runtime.jsx)(zIndexContext.Provider,{value:ICON_POPUP_Z_INDEX,children:(0,import_jsx_runtime.jsx)(SchemaComponent,{schema:{properties:{title:{title:e("Menu item title"),"x-component":"Input","x-decorator":"FormItem",required:!0},icon:{title:e("Icon"),"x-component":"IconPicker","x-decorator":"FormItem"}}}})})})}),o).open({initialValues:{}}),{title:u,icon:d}=c,m=(0,import_shared.uid)();yield l({type:NocoBaseDesktopRouteType.group,title:u,icon:d,parentId:n==null?void 0:n.id,schemaUid:m})}),[t.components,t.scope,e,o]);return(0,import_jsx_runtime.jsx)(SchemaInitializerItem,{title:e("Group"),onClick:a,className:`${r} ${i}`})},useAttach=e=>{const t=(0,import_react2.useRef)(null);return(0,import_react2.useEffect)(()=>(t.current&&e!==t.current&&t.current.onUnmount(),t.current=e,e.onMount(),()=>{e.onUnmount()}),[e]),e},compileCache={},hasVariable=e=>/{{.*?}}/g.test(e),useCompile=({noCache:e}={noCache:!1})=>{const t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),o=(0,import_react2.useContext)(import_react.SchemaExpressionScopeContext);return(r,i)=>{let n=!1,l;if(typeof r=="string"&&r.startsWith("{{")&&(n=!0,l=r),r&&typeof r=="object"&&!(0,import_react2.isValidElement)(r)){try{l=JSON.stringify(r)}catch(a){return console.warn("Failed to stringify:",a),r}if(compileCache[l])return compileCache[l];n=hasVariable(l)}if(Array.isArray(r)){try{l=JSON.stringify(r)}catch(a){return console.warn("Failed to stringify:",a),r}if(compileCache[l])return compileCache[l];n=hasVariable(l)}if(n){const a=x(x(x({},t==null?void 0:t.scope),o),i);if(!l)return import_react.Schema.compile(r,a);try{return e?import_react.Schema.compile(r,a):(compileCache[l]=compileCache[l]||import_react.Schema.compile(r,a),compileCache[l])}catch(c){return console.log("useCompile error",r,c),import_react.Schema.compile(r,a)}}return r}},useComponent=(e,t)=>{const{components:o}=(0,import_react2.useContext)(import_react.SchemaOptionsContext);return e?typeof e!="string"?e:(0,import_lodash.get)(o,e)||t:t},LAZY_COMPONENT_KEY=Symbol("LAZY_COMPONENT_KEY");function lazy(e,...t){if(t.length===0){const o=(0,import_react2.lazy)(()=>e().then(i=>{const n=i.default;return r[LAZY_COMPONENT_KEY]=n,{default:n}})),r=i=>(0,import_jsx_runtime.jsx)(import_react2.default.Suspense,{fallback:(0,import_jsx_runtime.jsx)(import_antd.Spin,{}),children:(0,import_jsx_runtime.jsx)(o,x({},i))});return r}return t.reduce((o,r)=>{const i=(0,import_react2.lazy)(()=>e().then(n=>{const l=(0,import_lodash.get)(n,r);return o[r][LAZY_COMPONENT_KEY]=l,{default:l}}));return o[r]=n=>(0,import_jsx_runtime.jsx)(import_react2.default.Suspense,{fallback:(0,import_jsx_runtime.jsx)(import_antd.Spin,{}),children:(0,import_jsx_runtime.jsx)(i,x({},n))}),o},{})}function useLazy(e,t){const o=typeof t=="function"?t:i=>i[t],r=(0,import_react_imported_component.loadableResource)(e);if(!r.payload)throw new Promise((i,n)=>{r.loadIfNeeded(),r.resolution.then(i).catch(n)});return o(r.payload)}function addAppVersion(e,t){if(e)return e["x-app-version"]||(e["x-app-version"]=t),Object.keys(e.properties||{}).forEach(o=>{var r;addAppVersion((r=e.properties)==null?void 0:r[o],t)}),e}const name="@nocobase/client",version="2.0.46",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.46","@nocobase/flow-engine":"2.0.46","@nocobase/sdk":"2.0.46","@nocobase/utils":"2.0.46","@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 y;if(!v)return null;if(typeof v!="string")return v;const C=(0,import_get.default)(n,v);return(y=C==null?void 0:C[LAZY_COMPONENT_KEY])!=null?y:C},[import_get.default]),on:f.on.bind(f),patch:(0,import_react2.useCallback)((v,y)=>{const C=b=>{Object.keys(b).forEach(F=>{const S=b[F];F==="title"&&(m.title=S,p.title=S),F==="x-decorator-props"&&(m.decoratorProps||(m.decoratorProps={}),p["x-decorator-props"]||(p["x-decorator-props"]={}),Object.keys(S).forEach(P=>{m.decoratorProps[P]=S[P],p["x-decorator-props"][P]=S[P]})),F==="x-component-props"&&(m.componentProps||(m.componentProps={}),p["x-component-props"]||(p["x-component-props"]={}),Object.keys(S).forEach(P=>{m.componentProps[P]=S[P],p["x-component-props"][P]=S[P]}))})};if(typeof v=="string"){const b={};return(0,import_set.default)(b,v,y),C(b)}C(v),d()},[f]),shallowMerge:(0,import_react2.useCallback)(v=>{f.shallowMerge(v)},[f]),deepMerge:(0,import_react2.useCallback)(v=>{f.deepMerge(v)},[f]),remove:(0,import_react2.useCallback)((v,y)=>{f.remove(v,y)},[f]),insertAdjacent:(0,import_react2.useCallback)((v,y,C)=>{f.insertAdjacent(v,y,C)},[f]),insertBeforeBegin:(0,import_react2.useCallback)(v=>{f.insertBeforeBegin(v)},[f]),insertAfterBegin:(0,import_react2.useCallback)(v=>{f.insertAfterBegin(v)},[f]),insertBeforeEnd:(0,import_react2.useCallback)(v=>{f.insertBeforeEnd(v)},[f]),insertAfterEnd:(0,import_react2.useCallback)(v=>{f.insertAfterEnd(v)},[f])}}const DefaultSchemaToolbar=()=>null;DefaultSchemaToolbar.isNullComponent=!0;const useDesigner=()=>{const{designable:e}=useDesignable(),t=(0,import_react.useFieldSchema)(),o=(0,import_react2.useMemo)(()=>t["x-designer"]||t["x-toolbar"]?t["x-designer"]||t["x-toolbar"]:t["x-settings"]?SchemaToolbar:DefaultSchemaToolbar,[t]),r=useComponent(o);return e&&r||DefaultSchemaToolbar},useFieldProps$1=e=>{const t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),o=(0,import_react2.useContext)(import_react.SchemaExpressionScopeContext),r=(0,import_react2.useRef)();return r.current=o,e.toFieldProps(A(x({},t),{get scope(){return x(x({},t.scope),r.current)}}))};function useSchemaComponentContext(){return(0,import_react2.useContext)(SchemaComponentContext)}const useFieldComponentOptions=()=>{var e;const{getCollectionJoinField:t,getCollection:o}=useCollectionManager_deprecated(),r=(0,import_react.useFieldSchema)(),{getField:i}=useCollection_deprecated(),n=i(r.name)||t(r["x-collection-field"]),{t:l}=(0,import_react_i18next.useTranslation)(),{label:a}=((e=r["x-component-props"])==null?void 0:e.fieldNames)||{};return(0,import_react2.useMemo)(()=>{if(!n||!(n!=null&&n.interface)||!["o2o","oho","obo","o2m","linkTo","m2o","m2m"].includes(n.interface))return;const c=o(n.target);if((c==null?void 0:c.template)==="file")return[{label:l("Record picker"),value:"CollectionField"},{label:l("Select"),value:"AssociationSelect"}];switch(n.interface){case"o2m":return[{label:l("Record picker"),value:"CollectionField"},{label:l("Subtable"),value:"TableField"},{label:l("Select"),value:"AssociationSelect"}];case"m2o":case"m2m":case"linkTo":return[{label:l("Record picker"),value:"CollectionField"},{label:l("Select"),value:"AssociationSelect"}];default:return[{label:l("Record picker"),value:"CollectionField"},{label:l("Subform"),value:"FormField"},{label:l("Select"),value:"AssociationSelect"}]}},[l,n==null?void 0:n.interface,a])},useFieldTitle=()=>{var e;const t=(0,import_react.useField)(),o=(0,import_react.useFieldSchema)(),r=useCollection(),i=useCollectionManager(),n=(r==null?void 0:r.getField(o.name))||(i==null?void 0:i.getCollectionField(o["x-collection-field"])),l=useCompile();(0,import_react2.useEffect)(()=>{var a;t!=null&&t.title||(t.title=l((a=n==null?void 0:n.uiSchema)==null?void 0:a.title))},[(e=n==null?void 0:n.uiSchema)==null?void 0:e.title])},useDef$4=()=>({}),useProps=(e={})=>{const t=e,{useProps:o=useDef$4}=t,r=te(t,["useProps"]);let i=o;typeof o!="function"&&(i=useDef$4);const n=i();return x(x({},r),n)};function useParsedFilter({filterOption:e,onFilterChange:t}){const{parseFilter:o,findVariable:r}=useParseDataScopeFilter(),i=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 y=yield o(p);h||(c(y),d(i),(v=l.current)==null||v.call(l,y))});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 y=getVariableName(v),C=r(y);let b=null;const F=getPath(v).split(".");return F.forEach((S,P)=>{const j=F.slice(0,P+1).join("."),I=(0,import_client.getValuesByPath)({[y]:(C==null?void 0:C.ctx)||{}},j);import_lodash.default.isEmpty(I)||(b=I)}),b}}),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 y=d;const C=o.find(P=>P.uid===h.uid);if(!C)return;import_lodash.default.isFunction(u)&&(u=u(C,h,getSourceKey$1(p,C.field))),import_lodash.default.isFunction(d)&&(y=d(C,h)),import_lodash.default.isFunction(m)&&(m=m(C));const b=((g=h.service.params)==null?void 0:g[0])||{},F=((_=(f=h.service.params)==null?void 0:f[1])==null?void 0:_.filters)||{};if(u!=null)F[r]={$and:[{[y]:{[m]:u}}]};else if((v=h.clearSelection)==null||v.call(h),delete F[r],h.dataLoadingMode==="manual")return h.clearData();const S=mergeFilter([...Object.values(F).map(P=>removeNullCondition(P)),h.defaultFilter]);h.doFilter(A(x({},b),{page:1,filter:S}),{filters:F})})},[i,o,r,e]);return{isConnected:n,doFilter:c}},isInFilterFormBlock=e=>{for(;e;){if(e["x-filter-targets"])return e["x-decorator"]==="FilterFormBlockProvider";e=e.parent}return!1};function getSourceKey$1(e,t){var o,r,i;const n=(o=e==null?void 0:e.associatedFields)==null?void 0:o.find(l=>l.foreignKey===t);return(n==null?void 0:n.sourceKey)||((i=(r=t==null?void 0:t.split)==null?void 0:r.call(t,"."))==null?void 0:i[1])}const AssociationFieldContext=(0,import_react2.createContext)({});AssociationFieldContext.displayName="AssociationFieldContext";const useInsertSchema$1=e=>{const t=(0,import_react.useFieldSchema)(),{insertAfterBegin:o}=useDesignable(),{isMobileLayout:r}=useMobileLayout();return(0,import_react2.useCallback)(i=>{r||t.reduceProperties((n,l)=>l["x-component"]==="AssociationField."+e?l:n,null)||o((0,import_cloneDeep.default)(i))},[e,t,o,r])};function useAssociationFieldContext(){return(0,import_react2.useContext)(AssociationFieldContext)}function useServiceOptions$1(e){var t,o,r,i,n,l,a,c,u,d;const{action:m="list",service:p,useOriginalFilter:h}=e,g=(0,import_react.useFieldSchema)(),f=(0,import_react.useField)(),{getField:_}=useCollection_deprecated(),{getCollectionJoinField:v}=useCollectionManager_deprecated(),y=useRecord(),{isNew:C}=useCollectionRecord()||{},b=((0,import_lodash.isString)((r=(o=(t=g==null?void 0:g["x-component-props"])==null?void 0:t.service)==null?void 0:o.params)==null?void 0:r.filter)?(l=(n=(i=f.componentProps)==null?void 0:i.service)==null?void 0:n.params)==null?void 0:l.filter:(u=(c=(a=g==null?void 0:g["x-component-props"])==null?void 0:a.service)==null?void 0:c.params)==null?void 0:u.filter)||((d=p==null?void 0:p.params)==null?void 0:d.filter),{filter:F}=useParsedFilter({filterOption:b,onFilterChange:()=>{C&&f.reset()}}),S=(0,import_react2.useMemo)(()=>_(g.name)||v(g==null?void 0:g["x-collection-field"]),[g]),P=y==null?void 0:y[S==null?void 0:S.sourceKey],j=(0,import_react2.useMemo)(()=>{const I=["oho","o2m"].includes(S==null?void 0:S.interface);return mergeFilter([mergeFilter([I&&!isInFilterFormBlock(g)&&S!=null&&S.foreignKey&&!h?{[S.foreignKey]:{$is:null}}:null,F]),I&&P!==void 0&&P!==null&&!isInFilterFormBlock(g)&&S!=null&&S.foreignKey&&!h?{[S.foreignKey]:{$eq:P}}:null],"$or")},[S==null?void 0:S.interface,S==null?void 0:S.foreignKey,g,F,P,h]);return(0,import_react2.useMemo)(()=>A(x({resource:S==null?void 0:S.target,action:m},p),{params:A(x({},p==null?void 0:p.params),{filter:j})}),[S==null?void 0:S.target,m,j,p])}const useFieldNames$1=(e={})=>{var t,o,r,i,n;const l=(0,import_react.useFieldSchema)(),a=((i=(r=(o=(t=l["x-component-props"])==null?void 0:t.field)==null?void 0:o.uiSchema)==null?void 0:r["x-component-props"])==null?void 0:i.fieldNames)||((n=l["x-component-props"])==null?void 0:n.fieldNames)||e.fieldNames;return x({label:"label",value:"value"},a)},SubFormContext=(0,import_react2.createContext)(null);SubFormContext.displayName="SubFormContext";const SubFormProvider=e=>{const t=(0,import_react2.useContext)(SubFormContext),{value:o,collection:r,fieldSchema:i,parent:n,skip:l}=e.value,a=(0,import_react2.useMemo)(()=>import_lodash.default.omitBy({value:o,collection:r,fieldSchema:i,skip:l,parent:n||(t!=null&&t.skip?t.parent:t)},import_lodash.default.isUndefined),[o,r,i,l,n,t]);return(0,import_jsx_runtime.jsx)(SubFormContext.Provider,{value:a,children:e.children})},useSubFormValue=()=>{const{value:e,collection:t,fieldSchema:o,parent:r}=(0,import_react2.useContext)(SubFormContext)||{};return{formValue:e,collection:t,fieldSchema:o,parent:r}},TableUidContext=(0,import_react2.createContext)(null),useColumnSettings=e=>{const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react2.useContext)(TableUidContext),r=`nocobase_table_column_settings_${o}`,i=(0,import_react2.useCallback)(()=>{try{const a=localStorage.getItem(r);return a?JSON.parse(a):null}catch(a){return console.warn("Failed to parse table column settings from localStorage:",a),null}},[r]),n=(0,import_react2.useCallback)(a=>{try{const c=JSON.stringify(a);localStorage.setItem(r,c);const u=new CustomEvent("nocobase-table-settings-changed",{detail:{key:r,tableId:o,settings:a}});window.dispatchEvent(u)}catch(c){console.warn("Failed to save table column settings to localStorage:",c),import_antd.message.error(t("Failed to save table settings"))}},[r,o,t]),l=(0,import_react2.useCallback)(()=>{try{localStorage.removeItem(r);const a=new CustomEvent("nocobase-table-settings-changed",{detail:{key:r,tableId:o,settings:null}});window.dispatchEvent(a)}catch(a){console.warn("Failed to clear table column settings from localStorage:",a),import_antd.message.error(t("Failed to clear table settings"))}},[r,o,t]);return{getSettings:i,saveSettings:n,clearSettings:l}},useTableColumnIntegration=(e,t=!0)=>{const o=(0,import_react2.useContext)(TableUidContext),{getSettings:r}=useColumnSettings(),[i,n]=(0,import_react2.useState)(0);(0,import_react2.useEffect)(()=>{const a=c=>{const{key:u,tableId:d}=c.detail;(u.includes(o)||d===o)&&n(m=>m+1)};return window.addEventListener("nocobase-table-settings-changed",a),()=>{window.removeEventListener("nocobase-table-settings-changed",a)}},[o]);const l=(0,import_react2.useMemo)(()=>r(),[r,i]);return{columns:(0,import_react2.useMemo)(()=>{if(!t||!l||l.length===0)return e;const a=new Map;l.forEach(p=>{a.set(p.key,p)});const c=e.map(p=>{const h=a.get(p.key);if(h){const g=p.columnHidden||!h.visible,f=h.width||p.width,_=h.fixed||p.fixed;return A(x({},p),{columnHidden:g,fixed:_,width:f,_orderIndex:h.order})}return p}),u=[],d=[];c.forEach(p=>{p._orderIndex!==void 0?u.push(p):d.push(p)}),u.sort((p,h)=>(p._orderIndex||0)-(h._orderIndex||0));const m=[...u,...d];return m.forEach(p=>{delete p._orderIndex}),m},[e,l])}},TableSkeleton=({rows:e=5,columns:t=6})=>{const{token:o}=useToken$1(),r=o.controlHeight*2.06,i=o.controlHeight*1.75,n=(0,import_react2.useMemo)(()=>import_css.css`
|
|
65
|
+
`,items:a},n))})},SchemaInitializerSubMenu=e=>{var t;const o=e,{children:r,items:i,title:n,name:l,onOpenChange:a,icon:c}=o,u=te(o,["children","items","title","name","onOpenChange","icon"]),d=useCompile(),m=useSchemaInitializerItem(),p=(0,import_react2.useMemo)(()=>l||(m==null?void 0:m.name)||(0,import_shared.uid)(),[l,m]),h=(t=i||r)==null?void 0:t.filter(_=>_.useVisible?_.useVisible():!0),g=useSchemaInitializerMenuItems(h,l),f=(0,import_react2.useMemo)(()=>[A(x({},u),{key:p,label:d(n),icon:typeof c=="string"?(0,import_jsx_runtime.jsx)(import_icons.default,{type:c}):c,children:g})],[g,d,c,p,u,n]);return(0,import_jsx_runtime.jsx)(SchemaInitializerMenu,{onOpenChange:a,items:f})},SchemaInitializerSubMenuInternal=()=>{const e=useSchemaInitializerItem();return(0,import_jsx_runtime.jsx)(SchemaInitializerSubMenu,x({},e))},useAriaAttributeOfMenuItem=()=>{const{isInMenu:e}=useSchemaInitializerSubMenuContext();return{attribute:(0,import_react2.useMemo)(()=>e?{}:{role:"menuitem"},[e])}},{Paragraph:Paragraph$1,Text:Text$2}=import_antd.Typography,ErrorFallbackModal=e=>{const[t,o]=import_react2.default.useState(!1),r=(0,import_jsx_runtime.jsx)(Paragraph$1,{style:{display:"flex",marginBottom:0},copyable:{text:e.error.message},children:(0,import_jsx_runtime.jsxs)(Text$2,{type:"danger",style:{whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden",display:"inline-block",maxWidth:"200px"},children:["Error: ",e.error.message]})});return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)("div",{onMouseOver:()=>o(!0),children:e.children||r}),(0,import_jsx_runtime.jsx)(import_antd.Modal,{zIndex:1e4,open:t,footer:null,onCancel:()=>o(!1),width:"60%",children:(0,import_jsx_runtime.jsx)(ErrorFallback,x({},e))})]})},{Paragraph,Text:Text$1,Link}=import_antd.Typography,useDownloadLogs=(e,t={})=>{const o=useLocationNoUpdate(),[r,i]=import_react2.default.useState(!1),n=useAPIClient();return{loading:r,download:()=>L(void 0,null,function*(){i(!0);try{const l=yield n.request({url:"logger:collect",method:"post",responseType:"blob",data:x({error:{message:e.message,stack:e.stack},location:o},t)}),a=window.URL.createObjectURL(new Blob([l.data],{type:"application/gzip"})),c=document.createElement("a");c.setAttribute("href",a),c.setAttribute("download","logs.tar.gz"),c.click(),c.remove()}catch(l){console.log(l)}i(!1)})}},ErrorFallback=({error:e})=>{const t=(0,import_react.useFieldSchema)(),{t:o}=(0,import_react_i18next.useTranslation)(),{loading:r,download:i}=useDownloadLogs(e,{schema:t}),n=(0,import_jsx_runtime.jsxs)(import_react_i18next.Trans,{children:["This is likely a NocoBase internals bug. Please open an issue at ",(0,import_jsx_runtime.jsx)(Link,{href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:"here"})]});return(0,import_jsx_runtime.jsx)("div",{style:{backgroundColor:"white"},children:(0,import_jsx_runtime.jsx)(import_antd.Result,{style:{maxWidth:"60vw",margin:"auto"},status:"error",title:o("Render Failed"),subTitle:n,extra:[(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"primary",href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:o("Feedback")},"feedback"),(0,import_jsx_runtime.jsx)(import_antd.Button,{loading:r,onClick:i,children:o("Download logs")},"log")],children:(0,import_jsx_runtime.jsx)(Paragraph,{copyable:{text:e.stack},children:(0,import_jsx_runtime.jsx)(Text$1,{type:"danger",style:{whiteSpace:"pre-line",textAlign:"center"},children:e.stack})})})})};ErrorFallback.Modal=ErrorFallbackModal;const AppNotFound=()=>{const e=(0,import_react_router_dom.useNavigate)(),{t}=(0,import_react_i18next.useTranslation)();return(0,import_jsx_runtime.jsx)(import_antd.Result,{status:"404",title:"404",subTitle:t("Sorry, the page you visited does not exist."),extra:(0,import_jsx_runtime.jsx)(import_antd.Button,{onClick:()=>e("/",{replace:!0}),type:"primary",children:"Back Home"})})};class Plugin{constructor(t,o){this.options=t,this.app=o,this.options=t,this.app=o}get pluginManager(){return this.app.pluginManager}get context(){return this.app.context}get flowEngine(){return this.app.flowEngine}get engine(){return this.app.flowEngine}get ai(){return this.app.aiManager}get pm(){return this.app.pm}get router(){return this.app.router}get pluginSettingsManager(){return this.app.pluginSettingsManager}get pluginSettingsRouter(){return this.app.pluginSettingsManager}get schemaInitializerManager(){return this.app.schemaInitializerManager}get schemaSettingsManager(){return this.app.schemaSettingsManager}get dataSourceManager(){return this.app.dataSourceManager}afterAdd(){return L(this,null,function*(){})}beforeLoad(){return L(this,null,function*(){})}load(){return L(this,null,function*(){})}t(t,o={}){var r;return this.app.i18n.t(t,x({ns:(r=this.options)==null?void 0:r.packageName},o))}}const titleWrapperStyle={display:"flex",alignItems:"center",gap:4},withTooltipComponent=e=>t=>{const{tooltip:o}=t;return o?(0,import_jsx_runtime.jsxs)("div",{style:titleWrapperStyle,children:[(0,import_jsx_runtime.jsx)(e,x({},t)),(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:o,children:(0,import_jsx_runtime.jsx)(import_icons.QuestionCircleOutlined,{style:{zIndex:1}})})]}):(0,import_jsx_runtime.jsx)(e,x({},t))},{evaluate}=import_client4.evaluators.get("formula.js"),useEvaluatedExpression=e=>{const t=useVariables$1(),o=useLocalVariables$1(),[r,i]=(0,import_react2.useState)();return(0,import_react2.useEffect)(()=>{L(void 0,null,function*(){if(e==null||e===""){i(void 0);return}const{exp:n,scope:l}=yield replaceVariables(e,{variables:t,localVariables:o});try{const a=evaluate(n,x({now:()=>new Date().toString()},l));i(a)}catch(a){console.error(a)}})},[t.parseVariable,e,o]),r};class SchemaInitializer{constructor(t){R(this,"options"),R(this,"name"),this.options=Object.assign({items:[]},t),this.name=t.name}get items(){return this.options.items}add(t,o){const r=t.split("."),i=r[r.length-1],n=A(x({},o),{name:i}),l=(u,d)=>{const m=this.items.findIndex(p=>p.name===u);m===-1?this.items.push(d):this.items[m]=d};if(r.length===1){l(i,n);return}const a=r.slice(0,-1).join("."),c=this.get(a);if(c){c.children||(c.children=[]);const u=t.replace(`${c.name}.`,""),d=c.children.findIndex(m=>m.name===u);d===-1?c.children.push(n):c.children[d]=n}else l(i,n)}get(t){var o;if(!t)return;const r=t.split(".");let i={children:this.items};for(let n=0;n<r.length;n++){const l=r[n],a=(o=i.children)==null?void 0:o.find(c=>c.name===l);if(a&&(i=a),n===r.length-1)return a}}remove(t){const o=t.split(".");if(o.length===1){const i=this.items.findIndex(n=>n.name===o[0]);i!==-1&&this.items.splice(i,1);return}const r=this.get(o.slice(0,-1).join("."));if(r&&r.children){const i=o[o.length-1],n=r.children.findIndex(l=>l.name===i);n!==-1&&r.children.splice(n,1)}}}var NocoBaseDesktopRouteType=(e=>(e.group="group",e.page="page",e.flowRoute="flowRoute",e.link="link",e.tabs="tabs",e.flowPage="flowPage",e))(NocoBaseDesktopRouteType||{});const useStyles$h=genStyleHook("nb-menu-item",e=>{const{componentCls:t}=e;return{[t]:{paddingLeft:`${e.padding}px !important`,paddingRight:`${e.padding}px !important`}}}),useInsertFlowPageSchema=()=>{const e=useAPIClient();return(0,import_react2.useCallback)(t=>L(void 0,null,function*(){yield e.request({method:"POST",url:"/uiSchemas:insert",data:t})}),[e])},FlowPageMenuItem=()=>{const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),{theme:o}=useGlobalTheme(),{componentCls:r,hashId:i}=useStyles$h(),n=useParentRoute(),{createRoute:l}=useNocoBaseRoutes(),a=useInsertFlowPageSchema(),c=(0,import_react2.useCallback)(()=>L(void 0,null,function*(){const u=yield FormDialog(e("Add page"),()=>(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{scope:t.scope,components:x({},t.components),children:(0,import_jsx_runtime.jsx)(import_antd_v5.FormLayout,{layout:"vertical",children:(0,import_jsx_runtime.jsx)(zIndexContext.Provider,{value:ICON_POPUP_Z_INDEX,children:(0,import_jsx_runtime.jsx)(SchemaComponent,{schema:{properties:{title:{title:e("Menu item title"),required:!0,"x-component":"Input","x-decorator":"FormItem"},icon:{title:e("Icon"),"x-component":"IconPicker","x-decorator":"FormItem"}}}})})})}),o).open({initialValues:{}}),d=(0,import_shared.uid)(),m=(0,import_shared.uid)(),p=(0,import_shared.uid)(),h=(0,import_shared.uid)();yield l({type:NocoBaseDesktopRouteType.flowPage,title:u.title,icon:u.icon,parentId:n==null?void 0:n.id,schemaUid:m,menuSchemaUid:d,enableTabs:!1,children:[{type:NocoBaseDesktopRouteType.tabs,schemaUid:p,tabSchemaName:h,hidden:!0}]}),a(getFlowPageMenuSchema({pageSchemaUid:m}))}),[l,a,t==null?void 0:t.components,t==null?void 0:t.scope,n==null?void 0:n.id,e,o]);return(0,import_jsx_runtime.jsx)(SchemaInitializerItem,{title:e("Modern page (v2)"),onClick:c,className:`${r} ${i}`})};function getFlowPageMenuSchema({pageSchemaUid:e}){return{type:"void","x-component":"FlowRoute","x-uid":e}}const GroupItem$1=()=>{const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),{theme:o}=useGlobalTheme(),{componentCls:r,hashId:i}=useStyles$h(),n=useParentRoute(),{createRoute:l}=useNocoBaseRoutes(),a=(0,import_react2.useCallback)(()=>L(void 0,null,function*(){const c=yield FormDialog(e("Add group"),()=>(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{scope:t.scope,components:x({},t.components),children:(0,import_jsx_runtime.jsx)(import_antd_v5.FormLayout,{layout:"vertical",children:(0,import_jsx_runtime.jsx)(zIndexContext.Provider,{value:ICON_POPUP_Z_INDEX,children:(0,import_jsx_runtime.jsx)(SchemaComponent,{schema:{properties:{title:{title:e("Menu item title"),"x-component":"Input","x-decorator":"FormItem",required:!0},icon:{title:e("Icon"),"x-component":"IconPicker","x-decorator":"FormItem"}}}})})})}),o).open({initialValues:{}}),{title:u,icon:d}=c,m=(0,import_shared.uid)();yield l({type:NocoBaseDesktopRouteType.group,title:u,icon:d,parentId:n==null?void 0:n.id,schemaUid:m})}),[t.components,t.scope,e,o]);return(0,import_jsx_runtime.jsx)(SchemaInitializerItem,{title:e("Group"),onClick:a,className:`${r} ${i}`})},useAttach=e=>{const t=(0,import_react2.useRef)(null);return(0,import_react2.useEffect)(()=>(t.current&&e!==t.current&&t.current.onUnmount(),t.current=e,e.onMount(),()=>{e.onUnmount()}),[e]),e},compileCache={},hasVariable=e=>/{{.*?}}/g.test(e),useCompile=({noCache:e}={noCache:!1})=>{const t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),o=(0,import_react2.useContext)(import_react.SchemaExpressionScopeContext);return(r,i)=>{let n=!1,l;if(typeof r=="string"&&r.startsWith("{{")&&(n=!0,l=r),r&&typeof r=="object"&&!(0,import_react2.isValidElement)(r)){try{l=JSON.stringify(r)}catch(a){return console.warn("Failed to stringify:",a),r}if(compileCache[l])return compileCache[l];n=hasVariable(l)}if(Array.isArray(r)){try{l=JSON.stringify(r)}catch(a){return console.warn("Failed to stringify:",a),r}if(compileCache[l])return compileCache[l];n=hasVariable(l)}if(n){const a=x(x(x({},t==null?void 0:t.scope),o),i);if(!l)return import_react.Schema.compile(r,a);try{return e?import_react.Schema.compile(r,a):(compileCache[l]=compileCache[l]||import_react.Schema.compile(r,a),compileCache[l])}catch(c){return console.log("useCompile error",r,c),import_react.Schema.compile(r,a)}}return r}},useComponent=(e,t)=>{const{components:o}=(0,import_react2.useContext)(import_react.SchemaOptionsContext);return e?typeof e!="string"?e:(0,import_lodash.get)(o,e)||t:t},LAZY_COMPONENT_KEY=Symbol("LAZY_COMPONENT_KEY");function lazy(e,...t){if(t.length===0){const o=(0,import_react2.lazy)(()=>e().then(i=>{const n=i.default;return r[LAZY_COMPONENT_KEY]=n,{default:n}})),r=i=>(0,import_jsx_runtime.jsx)(import_react2.default.Suspense,{fallback:(0,import_jsx_runtime.jsx)(import_antd.Spin,{}),children:(0,import_jsx_runtime.jsx)(o,x({},i))});return r}return t.reduce((o,r)=>{const i=(0,import_react2.lazy)(()=>e().then(n=>{const l=(0,import_lodash.get)(n,r);return o[r][LAZY_COMPONENT_KEY]=l,{default:l}}));return o[r]=n=>(0,import_jsx_runtime.jsx)(import_react2.default.Suspense,{fallback:(0,import_jsx_runtime.jsx)(import_antd.Spin,{}),children:(0,import_jsx_runtime.jsx)(i,x({},n))}),o},{})}function useLazy(e,t){const o=typeof t=="function"?t:i=>i[t],r=(0,import_react_imported_component.loadableResource)(e);if(!r.payload)throw new Promise((i,n)=>{r.loadIfNeeded(),r.resolution.then(i).catch(n)});return o(r.payload)}function addAppVersion(e,t){if(e)return e["x-app-version"]||(e["x-app-version"]=t),Object.keys(e.properties||{}).forEach(o=>{var r;addAppVersion((r=e.properties)==null?void 0:r[o],t)}),e}const name="@nocobase/client",version="2.0.47",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.47","@nocobase/flow-engine":"2.0.47","@nocobase/sdk":"2.0.47","@nocobase/utils":"2.0.47","@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 y;if(!v)return null;if(typeof v!="string")return v;const C=(0,import_get.default)(n,v);return(y=C==null?void 0:C[LAZY_COMPONENT_KEY])!=null?y:C},[import_get.default]),on:f.on.bind(f),patch:(0,import_react2.useCallback)((v,y)=>{const C=b=>{Object.keys(b).forEach(F=>{const S=b[F];F==="title"&&(m.title=S,p.title=S),F==="x-decorator-props"&&(m.decoratorProps||(m.decoratorProps={}),p["x-decorator-props"]||(p["x-decorator-props"]={}),Object.keys(S).forEach(P=>{m.decoratorProps[P]=S[P],p["x-decorator-props"][P]=S[P]})),F==="x-component-props"&&(m.componentProps||(m.componentProps={}),p["x-component-props"]||(p["x-component-props"]={}),Object.keys(S).forEach(P=>{m.componentProps[P]=S[P],p["x-component-props"][P]=S[P]}))})};if(typeof v=="string"){const b={};return(0,import_set.default)(b,v,y),C(b)}C(v),d()},[f]),shallowMerge:(0,import_react2.useCallback)(v=>{f.shallowMerge(v)},[f]),deepMerge:(0,import_react2.useCallback)(v=>{f.deepMerge(v)},[f]),remove:(0,import_react2.useCallback)((v,y)=>{f.remove(v,y)},[f]),insertAdjacent:(0,import_react2.useCallback)((v,y,C)=>{f.insertAdjacent(v,y,C)},[f]),insertBeforeBegin:(0,import_react2.useCallback)(v=>{f.insertBeforeBegin(v)},[f]),insertAfterBegin:(0,import_react2.useCallback)(v=>{f.insertAfterBegin(v)},[f]),insertBeforeEnd:(0,import_react2.useCallback)(v=>{f.insertBeforeEnd(v)},[f]),insertAfterEnd:(0,import_react2.useCallback)(v=>{f.insertAfterEnd(v)},[f])}}const DefaultSchemaToolbar=()=>null;DefaultSchemaToolbar.isNullComponent=!0;const useDesigner=()=>{const{designable:e}=useDesignable(),t=(0,import_react.useFieldSchema)(),o=(0,import_react2.useMemo)(()=>t["x-designer"]||t["x-toolbar"]?t["x-designer"]||t["x-toolbar"]:t["x-settings"]?SchemaToolbar:DefaultSchemaToolbar,[t]),r=useComponent(o);return e&&r||DefaultSchemaToolbar},useFieldProps$1=e=>{const t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),o=(0,import_react2.useContext)(import_react.SchemaExpressionScopeContext),r=(0,import_react2.useRef)();return r.current=o,e.toFieldProps(A(x({},t),{get scope(){return x(x({},t.scope),r.current)}}))};function useSchemaComponentContext(){return(0,import_react2.useContext)(SchemaComponentContext)}const useFieldComponentOptions=()=>{var e;const{getCollectionJoinField:t,getCollection:o}=useCollectionManager_deprecated(),r=(0,import_react.useFieldSchema)(),{getField:i}=useCollection_deprecated(),n=i(r.name)||t(r["x-collection-field"]),{t:l}=(0,import_react_i18next.useTranslation)(),{label:a}=((e=r["x-component-props"])==null?void 0:e.fieldNames)||{};return(0,import_react2.useMemo)(()=>{if(!n||!(n!=null&&n.interface)||!["o2o","oho","obo","o2m","linkTo","m2o","m2m"].includes(n.interface))return;const c=o(n.target);if((c==null?void 0:c.template)==="file")return[{label:l("Record picker"),value:"CollectionField"},{label:l("Select"),value:"AssociationSelect"}];switch(n.interface){case"o2m":return[{label:l("Record picker"),value:"CollectionField"},{label:l("Subtable"),value:"TableField"},{label:l("Select"),value:"AssociationSelect"}];case"m2o":case"m2m":case"linkTo":return[{label:l("Record picker"),value:"CollectionField"},{label:l("Select"),value:"AssociationSelect"}];default:return[{label:l("Record picker"),value:"CollectionField"},{label:l("Subform"),value:"FormField"},{label:l("Select"),value:"AssociationSelect"}]}},[l,n==null?void 0:n.interface,a])},useFieldTitle=()=>{var e;const t=(0,import_react.useField)(),o=(0,import_react.useFieldSchema)(),r=useCollection(),i=useCollectionManager(),n=(r==null?void 0:r.getField(o.name))||(i==null?void 0:i.getCollectionField(o["x-collection-field"])),l=useCompile();(0,import_react2.useEffect)(()=>{var a;t!=null&&t.title||(t.title=l((a=n==null?void 0:n.uiSchema)==null?void 0:a.title))},[(e=n==null?void 0:n.uiSchema)==null?void 0:e.title])},useDef$4=()=>({}),useProps=(e={})=>{const t=e,{useProps:o=useDef$4}=t,r=te(t,["useProps"]);let i=o;typeof o!="function"&&(i=useDef$4);const n=i();return x(x({},r),n)};function useParsedFilter({filterOption:e,onFilterChange:t}){const{parseFilter:o,findVariable:r}=useParseDataScopeFilter(),i=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 y=yield o(p);h||(c(y),d(i),(v=l.current)==null||v.call(l,y))});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 y=getVariableName(v),C=r(y);let b=null;const F=getPath(v).split(".");return F.forEach((S,P)=>{const j=F.slice(0,P+1).join("."),I=(0,import_client.getValuesByPath)({[y]:(C==null?void 0:C.ctx)||{}},j);import_lodash.default.isEmpty(I)||(b=I)}),b}}),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 y=d;const C=o.find(P=>P.uid===h.uid);if(!C)return;import_lodash.default.isFunction(u)&&(u=u(C,h,getSourceKey$1(p,C.field))),import_lodash.default.isFunction(d)&&(y=d(C,h)),import_lodash.default.isFunction(m)&&(m=m(C));const b=((g=h.service.params)==null?void 0:g[0])||{},F=((_=(f=h.service.params)==null?void 0:f[1])==null?void 0:_.filters)||{};if(u!=null)F[r]={$and:[{[y]:{[m]:u}}]};else if((v=h.clearSelection)==null||v.call(h),delete F[r],h.dataLoadingMode==="manual")return h.clearData();const S=mergeFilter([...Object.values(F).map(P=>removeNullCondition(P)),h.defaultFilter]);h.doFilter(A(x({},b),{page:1,filter:S}),{filters:F})})},[i,o,r,e]);return{isConnected:n,doFilter:c}},isInFilterFormBlock=e=>{for(;e;){if(e["x-filter-targets"])return e["x-decorator"]==="FilterFormBlockProvider";e=e.parent}return!1};function getSourceKey$1(e,t){var o,r,i;const n=(o=e==null?void 0:e.associatedFields)==null?void 0:o.find(l=>l.foreignKey===t);return(n==null?void 0:n.sourceKey)||((i=(r=t==null?void 0:t.split)==null?void 0:r.call(t,"."))==null?void 0:i[1])}const AssociationFieldContext=(0,import_react2.createContext)({});AssociationFieldContext.displayName="AssociationFieldContext";const useInsertSchema$1=e=>{const t=(0,import_react.useFieldSchema)(),{insertAfterBegin:o}=useDesignable(),{isMobileLayout:r}=useMobileLayout();return(0,import_react2.useCallback)(i=>{r||t.reduceProperties((n,l)=>l["x-component"]==="AssociationField."+e?l:n,null)||o((0,import_cloneDeep.default)(i))},[e,t,o,r])};function useAssociationFieldContext(){return(0,import_react2.useContext)(AssociationFieldContext)}function useServiceOptions$1(e){var t,o,r,i,n,l,a,c,u,d;const{action:m="list",service:p,useOriginalFilter:h}=e,g=(0,import_react.useFieldSchema)(),f=(0,import_react.useField)(),{getField:_}=useCollection_deprecated(),{getCollectionJoinField:v}=useCollectionManager_deprecated(),y=useRecord(),{isNew:C}=useCollectionRecord()||{},b=((0,import_lodash.isString)((r=(o=(t=g==null?void 0:g["x-component-props"])==null?void 0:t.service)==null?void 0:o.params)==null?void 0:r.filter)?(l=(n=(i=f.componentProps)==null?void 0:i.service)==null?void 0:n.params)==null?void 0:l.filter:(u=(c=(a=g==null?void 0:g["x-component-props"])==null?void 0:a.service)==null?void 0:c.params)==null?void 0:u.filter)||((d=p==null?void 0:p.params)==null?void 0:d.filter),{filter:F}=useParsedFilter({filterOption:b,onFilterChange:()=>{C&&f.reset()}}),S=(0,import_react2.useMemo)(()=>_(g.name)||v(g==null?void 0:g["x-collection-field"]),[g]),P=y==null?void 0:y[S==null?void 0:S.sourceKey],j=(0,import_react2.useMemo)(()=>{const I=["oho","o2m"].includes(S==null?void 0:S.interface);return mergeFilter([mergeFilter([I&&!isInFilterFormBlock(g)&&S!=null&&S.foreignKey&&!h?{[S.foreignKey]:{$is:null}}:null,F]),I&&P!==void 0&&P!==null&&!isInFilterFormBlock(g)&&S!=null&&S.foreignKey&&!h?{[S.foreignKey]:{$eq:P}}:null],"$or")},[S==null?void 0:S.interface,S==null?void 0:S.foreignKey,g,F,P,h]);return(0,import_react2.useMemo)(()=>A(x({resource:S==null?void 0:S.target,action:m},p),{params:A(x({},p==null?void 0:p.params),{filter:j})}),[S==null?void 0:S.target,m,j,p])}const useFieldNames$1=(e={})=>{var t,o,r,i,n;const l=(0,import_react.useFieldSchema)(),a=((i=(r=(o=(t=l["x-component-props"])==null?void 0:t.field)==null?void 0:o.uiSchema)==null?void 0:r["x-component-props"])==null?void 0:i.fieldNames)||((n=l["x-component-props"])==null?void 0:n.fieldNames)||e.fieldNames;return x({label:"label",value:"value"},a)},SubFormContext=(0,import_react2.createContext)(null);SubFormContext.displayName="SubFormContext";const SubFormProvider=e=>{const t=(0,import_react2.useContext)(SubFormContext),{value:o,collection:r,fieldSchema:i,parent:n,skip:l}=e.value,a=(0,import_react2.useMemo)(()=>import_lodash.default.omitBy({value:o,collection:r,fieldSchema:i,skip:l,parent:n||(t!=null&&t.skip?t.parent:t)},import_lodash.default.isUndefined),[o,r,i,l,n,t]);return(0,import_jsx_runtime.jsx)(SubFormContext.Provider,{value:a,children:e.children})},useSubFormValue=()=>{const{value:e,collection:t,fieldSchema:o,parent:r}=(0,import_react2.useContext)(SubFormContext)||{};return{formValue:e,collection:t,fieldSchema:o,parent:r}},TableUidContext=(0,import_react2.createContext)(null),useColumnSettings=e=>{const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react2.useContext)(TableUidContext),r=`nocobase_table_column_settings_${o}`,i=(0,import_react2.useCallback)(()=>{try{const a=localStorage.getItem(r);return a?JSON.parse(a):null}catch(a){return console.warn("Failed to parse table column settings from localStorage:",a),null}},[r]),n=(0,import_react2.useCallback)(a=>{try{const c=JSON.stringify(a);localStorage.setItem(r,c);const u=new CustomEvent("nocobase-table-settings-changed",{detail:{key:r,tableId:o,settings:a}});window.dispatchEvent(u)}catch(c){console.warn("Failed to save table column settings to localStorage:",c),import_antd.message.error(t("Failed to save table settings"))}},[r,o,t]),l=(0,import_react2.useCallback)(()=>{try{localStorage.removeItem(r);const a=new CustomEvent("nocobase-table-settings-changed",{detail:{key:r,tableId:o,settings:null}});window.dispatchEvent(a)}catch(a){console.warn("Failed to clear table column settings from localStorage:",a),import_antd.message.error(t("Failed to clear table settings"))}},[r,o,t]);return{getSettings:i,saveSettings:n,clearSettings:l}},useTableColumnIntegration=(e,t=!0)=>{const o=(0,import_react2.useContext)(TableUidContext),{getSettings:r}=useColumnSettings(),[i,n]=(0,import_react2.useState)(0);(0,import_react2.useEffect)(()=>{const a=c=>{const{key:u,tableId:d}=c.detail;(u.includes(o)||d===o)&&n(m=>m+1)};return window.addEventListener("nocobase-table-settings-changed",a),()=>{window.removeEventListener("nocobase-table-settings-changed",a)}},[o]);const l=(0,import_react2.useMemo)(()=>r(),[r,i]);return{columns:(0,import_react2.useMemo)(()=>{if(!t||!l||l.length===0)return e;const a=new Map;l.forEach(p=>{a.set(p.key,p)});const c=e.map(p=>{const h=a.get(p.key);if(h){const g=p.columnHidden||!h.visible,f=h.width||p.width,_=h.fixed||p.fixed;return A(x({},p),{columnHidden:g,fixed:_,width:f,_orderIndex:h.order})}return p}),u=[],d=[];c.forEach(p=>{p._orderIndex!==void 0?u.push(p):d.push(p)}),u.sort((p,h)=>(p._orderIndex||0)-(h._orderIndex||0));const m=[...u,...d];return m.forEach(p=>{delete p._orderIndex}),m},[e,l])}},TableSkeleton=({rows:e=5,columns:t=6})=>{const{token:o}=useToken$1(),r=o.controlHeight*2.06,i=o.controlHeight*1.75,n=(0,import_react2.useMemo)(()=>import_css.css`
|
|
66
66
|
&.skeleton-wrapper {
|
|
67
67
|
width: 100%;
|
|
68
68
|
background: ${o.colorBgContainer};
|
|
@@ -625,7 +625,7 @@ ${JSON.stringify(V,null,2)}`)},[u,c,a,i,r,P,t,l,n,g,o,f,C,j,b,F,h]),T=(0,import_
|
|
|
625
625
|
}
|
|
626
626
|
}
|
|
627
627
|
`),footer:C?(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{basePath:h.address,schema:p,onlyRenderProperties:!0,filterProperties:P=>P["x-component"]===o}):!1,children:S?(0,import_jsx_runtime.jsx)(ActionModalContent,{footerNodeName:o,field:h,schema:p}):(0,import_jsx_runtime.jsx)(import_antd.Skeleton,{active:!0,paragraph:{rows:6}})}))}))})})},{displayName:"ActionModal"}),ActionModal=e=>(0,import_jsx_runtime.jsx)(import_react_error_boundary.ErrorBoundary,{FallbackComponent:ModalErrorFallback,onError:console.log,children:(0,import_jsx_runtime.jsx)(InternalActionModal,x({},e))});ActionModal.Footer=(0,import_react.observer)(()=>{const e=(0,import_react.useField)(),t=(0,import_react.useFieldSchema)();return(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{basePath:e.address,schema:t,onlyRenderProperties:!0})},{displayName:"ActionModal.Footer"});ActionModal.FootBar=(0,import_react.observer)(()=>{const e=(0,import_react.useField)(),t=(0,import_react.useFieldSchema)();return(0,import_jsx_runtime.jsx)("div",{className:"ant-modal-footer",children:(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{basePath:e.address,schema:t,onlyRenderProperties:!0})})},{displayName:"ActionModal.FootBar"});const useBackButton=()=>{const{setVisible:e}=useActionContext();return{goBack:(0,import_react2.useCallback)(()=>{e==null||e(!1)},[e])}},BackButtonUsedInSubPage$1=()=>{const{token:e}=useToken(),{goBack:t}=useBackButton(),o=32,r=(0,import_react2.useMemo)(()=>({width:"auto",height:"auto",lineHeight:1,padding:e.paddingXS,marginRight:o-e.paddingXS}),[e.paddingXS]);return(0,import_jsx_runtime.jsx)(import_antd.Button,{"aria-label":"back-button",type:"text",icon:(0,import_jsx_runtime.jsx)(import_icons.ArrowLeftOutlined,{}),style:r,onClick:t})},useActionPageStyle=genStyleHook("nb-action-page",e=>{const{componentCls:t}=e;return{[t]:{position:"absolute !important",top:0,left:0,right:0,bottom:0,backgroundColor:e.colorBgLayout,overflowX:"hidden",overflowY:"auto",".ant-tabs-nav":{background:e.colorBgContainer,padding:`0 ${e.paddingPageVertical}px`,marginBottom:0},".ant-tabs-content-holder":{padding:`${e.paddingPageVertical}px`,paddingBottom:"0px"}}}}),usePopupOrSubpagesContainerDOM=()=>{const e=(0,import_react2.useMemo)(()=>document.querySelector(".nb-subpages-slot-without-header-and-side"),[]);return{getContainerDOM:(0,import_react2.useCallback)(()=>e,[e])}},ActionPageContent=import_react2.default.memo(({schema:e})=>{const[t,o]=(0,import_react2.useState)(!1);return(0,import_react2.useEffect)(()=>{(0,import_react2.startTransition)(()=>{o(!0)})},[]),t?(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{schema:e,onlyRenderProperties:!0}):null});function ActionPage({level:e}){const t=(0,import_react.useFieldSchema)(),o=useActionContext(),{getContainerDOM:r}=usePopupOrSubpagesContainerDOM(),{componentCls:i,hashId:n}=useActionPageStyle(),l=useTabsContext(),a=useZIndexContext(),c=(0,import_react2.useMemo)(()=>({zIndex:getZIndex("page",a,e||0)}),[a,e]);if(!o.visible)return null;const u=(0,import_jsx_runtime.jsx)("div",{className:`${i} ${n}`,style:c,children:(0,import_jsx_runtime.jsx)(ActionContextNoRerender,{children:(0,import_jsx_runtime.jsx)(TabsContextProvider,A(x({},l),{tabBarExtraContent:(0,import_jsx_runtime.jsx)(BackButtonUsedInSubPage$1,{}),children:(0,import_jsx_runtime.jsx)(zIndexContext.Provider,{value:c.zIndex,children:(0,import_jsx_runtime.jsx)(ActionPageContent,{schema:t})})}))})}),d=r();return(0,import_react_dom.createPortal)(u,d||document.body)}ActionPage.Footer=(0,import_react.observer)(()=>null,{displayName:"ActionPage.Footer"});const defaultContext={defaultOpenMode:"drawer",openModeToComponent:{drawer:ActionDrawer,page:ActionPage,modal:ActionModal},hideOpenMode:!1},OpenModeContext=import_react2.default.createContext(null),OpenModeProvider=e=>{const t=(0,import_react2.useMemo)(()=>{const i=x({},defaultContext);return e.defaultOpenMode!==void 0&&(i.defaultOpenMode=e.defaultOpenMode),e.openModeToComponent!==void 0&&(i.openModeToComponent=e.openModeToComponent),e.hideOpenMode!==void 0&&(i.hideOpenMode=e.hideOpenMode),e.isMobile&&(i.isMobile=e.isMobile),i},[e.defaultOpenMode,e.openModeToComponent,e.hideOpenMode]),o=(0,import_react2.useCallback)(i=>{const n=t.openModeToComponent[i];return n||console.error(`OpenModeProvider: openModeToComponent[${i}] is not defined`),n},[t]),r=(0,import_react2.useMemo)(()=>({defaultOpenMode:t.defaultOpenMode,hideOpenMode:t.hideOpenMode,getComponentByOpenMode:o,isMobile:t.isMobile}),[t.defaultOpenMode,t.hideOpenMode,o,t.isMobile]);return(0,import_jsx_runtime.jsx)(OpenModeContext.Provider,{value:r,children:e.children})},useOpenModeContext=()=>import_react2.default.useContext(OpenModeContext),SchemaInitializerItem=(0,import_react2.memo)(import_react2.default.forwardRef((e,t)=>{const{style:o,closeInitializerMenuWhenClick:r=!0,name:i=(0,import_shared.uid)(),applyMenuStyle:n=!0,className:l,disabled:a,items:c,icon:u,title:d,onClick:m,children:p}=e,h=useCompile(),g=useSchemaInitializerMenuItems(c,i,m),{componentCls:f,hashId:_}=useSchemaInitializerStyles(),{attribute:v}=useAriaAttributeOfMenuItem(),{setVisible:y}=useSchemaInitializer(),C=(0,import_react2.useMemo)(()=>{if(c&&c.length>0)return[{key:i,style:o,className:l,label:p||h(d),onClick:b=>{a||b.key!==i||(r&&(y==null||y(!1)),m==null||m(A(x({},b),{item:e})))},icon:typeof u=="string"?(0,import_jsx_runtime.jsx)(Icon,{type:u}):u,children:g}]},[i,a,o,l,p,d,m,u,g]);return c&&c.length>0?(0,import_jsx_runtime.jsx)(SchemaInitializerMenu,{disabled:a,items:C}):(0,import_jsx_runtime.jsx)("div",{ref:t,onClick:b=>{b.stopPropagation(),r&&(y==null||y(!1)),m==null||m({event:b,item:e})},children:(0,import_jsx_runtime.jsx)("div",A(x({},v),{className:(0,import_classnames.default)({[`${f}-menu-item`]:n,[`${f}-menu-item-disabled`]:a},l),style:o,children:p||(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[typeof u=="string"?(0,import_jsx_runtime.jsx)(Icon,{type:u}):u,(0,import_jsx_runtime.jsx)("span",{className:(0,import_classnames.default)({[`${_} ${f}-item-content`]:!!u}),children:h(d)})]})}))})}));SchemaInitializerItem.displayName="SchemaInitializerItem";const SchemaInitializerItemInternal=()=>{const e=useSchemaInitializerItem();return(0,import_jsx_runtime.jsx)(SchemaInitializerItem,x({},e))},switchStyle={marginLeft:20},itemStyle={display:"flex",alignItems:"center",justifyContent:"space-between"},SchemaInitializerSwitch=e=>{const t=e,{title:o,checked:r}=t,i=te(t,["title","checked"]),n=useCompile();return(0,import_jsx_runtime.jsx)(SchemaInitializerItem,A(x({},i),{closeInitializerMenuWhenClick:!1,children:(0,import_jsx_runtime.jsxs)("div",{style:itemStyle,children:[n(o),(0,import_jsx_runtime.jsx)(import_antd.Switch,{disabled:e.disabled,style:switchStyle,size:"small",checked:r})]})}))},SchemaInitializerSwitchInternal=()=>{const e=useSchemaInitializerItem();return(0,import_jsx_runtime.jsx)(SchemaInitializerSwitch,x({},e))},SchemaInitializerChildren=e=>{const{children:t}=e;return t?(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:t.sort((o,r)=>(o.sort||0)-(r.sort||0)).map((o,r)=>(0,import_jsx_runtime.jsx)(SchemaInitializerChild,x({},o),o.name||o.key||r))}):null},typeComponentMap={item:"SchemaInitializerItemInternal",itemGroup:"SchemaInitializerItemGroupInternal",divider:"SchemaInitializerDivider",switch:"SchemaInitializerSwitchInternal",subMenu:"SchemaInitializerSubMenuInternal",actionModal:"SchemaInitializerActionModalInternal"},useChildrenDefault=()=>{},useVisibleDefault=()=>!0,useComponentPropsDefault=()=>{},SchemaInitializerChild=(0,import_react2.memo)(e=>{const t=e,{type:o,Component:r,component:i,children:n,useVisible:l=useVisibleDefault,useChildren:a=useChildrenDefault,useComponentProps:c=useComponentPropsDefault,hideIfNoChildren:u,componentProps:d,sort:m}=t,p=te(t,["type","Component","component","children","useVisible","useChildren","useComponentProps","hideIfNoChildren","componentProps","sort"]),h=a(),g=c(),f=useFindComponent(),_=r||i,v=!_&&o&&typeComponentMap[o],y=(0,import_react2.useMemo)(()=>{const F=[...h||[],...n||[]];return F.length===0?void 0:F},[h,n]),C=(0,import_react2.useMemo)(()=>A(x(x(x({},p),v?g:{}),v?d:{}),{children:y}),[p,v,g,d,y]);if(!l()||!o&&!_)return null;const b=f(v?typeComponentMap[o]:_);return!b||u&&!y?null:(0,import_jsx_runtime.jsx)(SchemaInitializerItemContext.Provider,{value:C,children:(0,import_jsx_runtime.jsx)(b,A(x(x({},d),g),{children:y}))})});SchemaInitializerChild.displayName="SchemaInitializerChild";const SchemaInitializerDivider=()=>{const{token:e}=import_antd.theme.useToken();return(0,import_jsx_runtime.jsx)(import_antd.Divider,{style:{marginTop:e.marginXXS,marginBottom:e.marginXXS}})};function getPrefixAndCompare(e,t){const o=e.replace(/-displayCollectionFields$/,""),r=t.replace(/-displayCollectionFields$/,"");return!o.includes(r)}const SearchFields=({value:e,onChange:t,name:o})=>{const{t:r}=(0,import_react_i18next.useTranslation)(),[i,n]=(0,import_react2.useState)(e),l=(0,import_react2.useRef)(""),a=(0,import_react2.useRef)(`${o||Math.random().toString(10).substr(2,9)}`);(0,import_react2.useEffect)(()=>{n(e)},[e]),(0,import_react2.useEffect)(()=>{var m;const p=()=>{var g,f;l.current&&((g=document.activeElement)==null?void 0:g.id)!==l.current.input.id&&getPrefixAndCompare((f=document.activeElement)==null?void 0:f.id,l.current.input.id)&&l.current.focus()},h=new IntersectionObserver(g=>{g.some(f=>f.isIntersecting)&&p()});return(m=l.current)!=null&&m.input&&(l.current.input.id=a.current,h.observe(l.current.input)),()=>{h.disconnect()}},[]);const c=(0,import_react2.useRef)(!1),u=m=>{c.current||(t(m.target.value),n(m.target.value))},d=m=>{m.type==="compositionend"?(c.current=!1,u(m)):c.current=!0};return(0,import_jsx_runtime.jsxs)("div",{onClick:m=>m.stopPropagation(),children:[(0,import_jsx_runtime.jsx)(import_antd.Input,{ref:l,allowClear:!0,style:{padding:"0 4px 6px 16px",boxShadow:"none"},bordered:!1,placeholder:r("Search"),defaultValue:i,onClick:m=>{m.stopPropagation()},onChange:u,onCompositionStart:d,onCompositionEnd:d,onCompositionUpdate:d}),(0,import_jsx_runtime.jsx)(import_antd.Divider,{style:{margin:0}})]})};let currentName=null;const useMenuSearch$1=e=>{const{children:t,showType:o,hideSearch:r,name:i}=e,n=useCompile(),[l,a]=(0,import_react2.useState)(null),c=(m,p)=>{if(!l||l===""||currentName&¤tName!==p)return m;const h=l.toLocaleLowerCase();return m.filter(g=>(g.title||g.label)&&String(n(g.title||g.label)).toLocaleLowerCase().includes(h))},u=(m,p,h=new Set)=>{var g;const f=[];return!r&&(m.length>10||l)&&!["subMenu","itemGroup"].includes((g=m[0])==null?void 0:g.type)&&f.push(x({key:`search-${(0,import_shared.uid)()}`,Component:()=>(0,import_jsx_runtime.jsx)(SearchFields,{name:p,value:!currentName||currentName===p?l:"",onChange:_=>{currentName=p,a(_)}}),onClick({domEvent:_}){_.stopPropagation()}},o?{isMenuType:!0}:{})),m.forEach(_=>{if(!h.has(_))if(h.add(_),["subMenu","itemGroup"].includes(_.type)){const v=!currentName||currentName===_.name?c(_.children.concat(),_.name):_.children,y=u(v,_.name,h);f.push(A(x({},_),{children:y}))}else f.push(_)}),m.length===0&&f.push(x({key:"empty",style:{height:150},Component:()=>(0,import_jsx_runtime.jsx)("div",{onClick:_=>_.stopPropagation(),children:(0,import_jsx_runtime.jsx)(import_antd.Empty,{image:import_antd.Empty.PRESENTED_IMAGE_SIMPLE})})},o?{isMenuType:!0}:{})),f},d=u(c((t==null?void 0:t.concat())||[],i),i);return t?d:void 0},SchemaInitializerItemGroup=({children:e,items:t,title:o,divider:r})=>{const i=useCompile(),{componentCls:n}=useSchemaInitializerStyles(),{token:l}=import_antd.theme.useToken();return(0,import_jsx_runtime.jsxs)("div",{style:{marginInline:l.marginXXS},children:[r&&(0,import_jsx_runtime.jsx)(SchemaInitializerDivider,{}),(0,import_jsx_runtime.jsx)("div",{className:`${n}-group-title`,children:i(o)}),(0,import_jsx_runtime.jsx)(SchemaInitializerChildren,{children:t||e})]})},SchemaInitializerItemGroupInternal=()=>{const e=useSchemaInitializerItem(),t=useMenuSearch$1(e);return e.name&&e.name!=="displayFields"?(0,import_jsx_runtime.jsx)(SchemaInitializerItemGroup,x({},e)):(0,import_jsx_runtime.jsx)(SchemaInitializerItemGroup,A(x({},e),{children:t}))},SchemaInitializerItems=e=>{const{items:t}=e;return t.length===0?null:(0,import_jsx_runtime.jsx)(SchemaInitializerChildren,{children:t})},SchemaInitializerActionModalItemComponent=import_react2.default.forwardRef((e,t)=>{const o=e,{onClick:r}=o,i=te(o,["onClick"]);return(0,import_jsx_runtime.jsx)(SchemaInitializerItem,A(x({ref:t},i),{onClick:n=>r==null?void 0:r(n.event,!1)}))}),SchemaInitializerActionModal=e=>{const{title:t,icon:o,width:r,schema:i,buttonText:n,btnStyles:l,isItem:a,component:c,onCancel:u,onSubmit:d}=e,{setVisible:m}=useSchemaInitializer(),p=(0,import_react2.useCallback)(()=>{const v=(0,import_react.useForm)(),y=useActionContext();return{run(){return L(this,null,function*(){yield u==null?void 0:u(),y.setVisible(!1),v.reset()})}}},[u]),h=(0,import_react2.useCallback)(()=>{const v=(0,import_react.useForm)(),y=useActionContext();return{run(){return L(this,null,function*(){yield v.validate();try{yield d==null?void 0:d(v.values),y.setVisible(!1),v.reset()}catch(C){console.error(C)}})}}},[d]),g=(0,import_react2.useMemo)(()=>import_react2.default.forwardRef(({onClick:v},y)=>(0,import_jsx_runtime.jsx)(SchemaInitializerActionModalItemComponent,{onClick:v,ref:y,title:n,icon:o})),[n,o]),f=(0,import_react2.useMemo)(()=>(0,import_shared.uid)(),[]),_=(0,import_react2.useMemo)(()=>({type:"void",properties:{[f]:{type:"void","x-component":"Action","x-component-props":c?{component:c,icon:o}:a?{component:g}:{icon:o||"PlusOutlined",style:x({borderColor:"var(--colorSettings)",color:"var(--colorSettings)"},l||{}),title:n,type:"dashed"},properties:{drawer1:{"x-decorator":"Form","x-component":"Action.Modal","x-component-props":{width:r,style:{maxWidth:r||"520px",width:"100%"},afterOpenChange:()=>{m(!1)}},type:"void",title:t,properties:A(x({},(i==null?void 0:i.properties)||i),{footer:{"x-component":"Action.Modal.Footer",type:"void",properties:{cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:p}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:h}}}}})}}}}}),[n,c,f,i,t,p,h]);return(0,import_jsx_runtime.jsx)(SchemaComponent,{schema:_})},SchemaInitializerActionModalInternal=()=>{const e=useSchemaInitializerItem();return(0,import_jsx_runtime.jsx)(SchemaInitializerActionModal,x({},e))},SchemaInitializerSelect=e=>{const t=e,{title:o,options:r,value:i,onChange:n,openOnHover:l,onClick:a}=t,c=te(t,["title","options","value","onChange","openOnHover","onClick"]),[u,d]=(0,import_react2.useState)(!1),m=(0,import_react2.useCallback)((...g)=>{d(!1),a==null||a(...g)},[d,a]),p=(0,import_react2.useCallback)(()=>d(!0),[]),h=(0,import_react2.useMemo)(()=>l?{onMouseEnter:p,open:u}:{},[p,u,l]);return(0,import_jsx_runtime.jsx)(SchemaInitializerItem,A(x({closeInitializerMenuWhenClick:!1},c),{children:(0,import_jsx_runtime.jsxs)("div",{style:{alignItems:"center",display:"flex",justifyContent:"space-between"},children:[o,(0,import_jsx_runtime.jsx)(import_antd.Select,x({"data-testid":"antd-select",popupMatchSelectWidth:!1,bordered:!1,defaultValue:i,onChange:(...g)=>(d(!1),n(...g)),options:r,style:{textAlign:"right",minWidth:100},onClick:m},h))]})}))},SchemaInitializerSelectInternal=()=>{const e=useSchemaInitializerItem();return(0,import_jsx_runtime.jsx)(SchemaInitializerSelect,x({},e))},schemaInitializerComponents=Object.freeze(Object.defineProperty({__proto__:null,SchemaInitializerActionModal,SchemaInitializerActionModalInternal,SchemaInitializerChild,SchemaInitializerChildren,SchemaInitializerDivider,SchemaInitializerItem,SchemaInitializerItemGroup,SchemaInitializerItemGroupInternal,SchemaInitializerItemInternal,SchemaInitializerItems,SchemaInitializerMenu,SchemaInitializerMenuProvider,SchemaInitializerSelect,SchemaInitializerSelectInternal,SchemaInitializerSubMenu,SchemaInitializerSubMenuInternal,SchemaInitializerSwitch,SchemaInitializerSwitchInternal,useSchemaInitializerStyles,useSchemaInitializerSubMenuContext},Symbol.toStringTag,{value:"Module"})),useGetAriaLabelOfSchemaInitializer=()=>{const e=(0,import_react.useFieldSchema)(),{name:t}=useCollection()||{};return{getAriaLabel:(0,import_react2.useCallback)(o=>{if(!e)return"";const r=e["x-component"],i=typeof r=="string"?r:(r==null?void 0:r.displayName)||r.name,n=e["x-initializer"]?`-${e["x-initializer"]}`:"",l=t?`-${t}`:"";return o=o?`-${o}`:"",`schema-initializer-${i}${n}${l}${o}`},[e,t])}},SchemaInitializerButton=import_react2.default.memo(e=>{const t=e,{style:o,options:r}=t,i=te(t,["style","options"]),n=useCompile(),{getAriaLabel:l}=useGetAriaLabelOfSchemaInitializer();return(0,import_jsx_runtime.jsx)(import_antd.Button,A(x({"data-testid":r["data-testid"],"aria-label":l(),"aria-disabled":"false",type:"dashed",style:x({borderColor:"var(--colorSettings)",color:"var(--colorSettings)",flex:"none"},o),icon:typeof r.icon=="string"?(0,import_jsx_runtime.jsx)(Icon,{type:r.icon}):r.icon},i),{children:r.title&&(0,import_jsx_runtime.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",display:"inline-block",width:r.icon?"calc(100% - 14px)":"100%",verticalAlign:"bottom"},children:n(r.title)})}))});SchemaInitializerButton.displayName="SchemaInitializerButton(memo)";const InitializerComponent=e=>{const t=e.Component||SchemaInitializerButton,o=e.ItemsComponent||SchemaInitializerItems,r=A(x({},e.itemsComponentProps),{options:e,items:e.items,style:e.itemsComponentStyle}),i=(0,import_react2.useMemo)(()=>withInitializer(t),[t]);return import_react2.default.createElement(i,e,import_react2.default.createElement(o,r))};InitializerComponent.displayName="InitializerComponent";function useSchemaInitializerRender(e,t){const o=useApp(),{isMobile:r}=useOpenModeContext()||{};e==="popup:common:addBlock"&&o.schemaInitializerManager.has("mobile:popup:common:addBlock")&&r&&(e="mobile:popup:common:addBlock");const i=(0,import_react2.useMemo)(()=>typeof e=="object"?e:o.schemaInitializerManager.get(e),[o.schemaInitializerManager,e]);return(0,import_react2.useMemo)(()=>e?i?{exists:!0,render:n=>import_react2.default.createElement(InitializerComponent,x(x(x({},i.options),t),n))}:(console.error(`[nocobase]: SchemaInitializer "${e}" not found`),{exists:!1,render:()=>null}):{exists:!1,render:()=>null},[i,e,t])}function useSchemaInitializerMenuItems(e,t,o){const r=useGetSchemaInitializerMenuItems(o);return(0,import_react2.useMemo)(()=>r(e,t),[r,e,t])}function useGetSchemaInitializerMenuItems(e){const t=useCompile(),o=(0,import_react2.useCallback)((r,i)=>r!=null&&r.length?r.map((n,l)=>{var a,c;const u=n.component||n.Component;let d;const m=n.title||n.label?t(n.title||n.label):void 0;if(u&&(d=import_react2.default.createElement(SchemaInitializerChild,A(x({},n),{title:m}))),n.type==="divider")return{type:"divider",key:n.key||`divider-${l}`};if(n.type==="item"&&u)return n.key||(n.key=`${m}-${l}`),n.associationField?{key:n.key,label:d,associationField:n.associationField}:{key:n.key,label:d};if(n.type==="itemGroup"){const f=typeof m=="string"?m:n.title,_=n.key||`${i}-item-group-${l}`;return{type:"group",key:_,label:f,children:(a=n==null?void 0:n.children)!=null&&a.length?o(n.children,_):[]}}if(n.type==="subMenu"){const f=m,_=n.key||n.name||`${i}-sub-menu-${l}`;return{key:_,label:f,children:(c=n==null?void 0:n.children)!=null&&c.length?o(n.children,_):[]}}if(n.isMenuType)return te(n,["isMenuType"]);const p=d||m,h=n.key||`${i}-${m}-${l}`,g=f=>{f.domEvent.stopPropagation(),f.key===h&&(n.onClick?n.onClick(A(x({},f),{item:n})):e==null||e(A(x({},f),{item:n})))};return n.associationField?{key:h,label:p,associationField:n.associationField,onClick:g}:{style:n.style,key:h,label:p,onClick:g}}):[],[t,e]);return o}class CompatibleSchemaInitializer extends SchemaInitializer{constructor(t,o){super(t),R(this,"otherInstance",null),o&&(this.otherInstance=o,o.otherInstance=this)}add(t,o){super.get(t)||(super.add(t,o),this.otherInstance&&this.otherInstance.add(t,o))}remove(t){super.get(t)&&(super.remove(t),this.otherInstance&&this.otherInstance.remove(t))}}const oldToNewNameMap={BlockInitializers:"page:addBlock",MBlockInitializers:"mobilePage:addBlock",CreateFormBlockInitializers:"popup:addNew:addBlock",CusomeizeCreateFormBlockInitializers:"popup:addRecord:addBlock",RecordBlockInitializers:"popup:common:addBlock",BulkEditBlockInitializers:"popup:bulkEdit:addBlock",TableColumnInitializers:"table:configureColumns",TableActionColumnInitializers:"table:configureItemActions",TableActionInitializers:"table:configureActions",SubTableActionInitializers:"subTable:configureActions",FormItemInitializers:"form:configureFields",CreateFormActionInitializers:"createForm:configureActions",UpdateFormActionInitializers:"editForm:configureActions",ReadPrettyFormItemInitializers:"details:configureFields",DetailsActionInitializers:"detailsWithPaging:configureActions",ReadPrettyFormActionInitializers:"details:configureActions",KanbanCardInitializers:"kanban:configureItemFields",KanbanActionInitializers:"kanban:configureActions",GridCardActionInitializers:"gridCard:configureActions",GridCardItemActionInitializers:"gridCard:configureItemActions",ListActionInitializers:"list:configureActions",ListItemActionInitializers:"list:configureItemActions",CalendarActionInitializers:"calendar:configureActions",GanttActionInitializers:"gantt:configureActions",MapActionInitializers:"map:configureActions",TableSelectorInitializers:"popup:tableSelector:addBlock",ChartInitializers:"charts:addBlock",ChartFilterItemInitializers:"chartFilterForm:configureFields",ChartFilterActionInitializers:"chartFilterForm:configureActions",AssociationFilterInitializers:"filterCollapse:configureFields",FilterFormItemInitializers:"filterForm:configureFields",FilterFormActionInitializers:"filterForm:configureActions",CustomFormItemInitializers:"assignFieldValuesForm:configureFields",BulkEditFormItemInitializers:"bulkEditForm:configureFields",BulkEditFormActionInitializers:"bulkEditForm:configureActions",AuditLogsTableColumnInitializers:"auditLogsTable:configureColumns",AuditLogsTableActionColumnInitializers:"auditLogsTable:configureItemActions",AuditLogsTableActionInitializers:"auditLogsTable:configureActions",SnapshotBlockInitializers:"popup:snapshot:addBlock",AddBlockButton:"workflowManual:popup:configureUserInterface:addBlock",AddCustomFormField:"workflowManual:customForm:configureFields",AddActionButton:"workflowManual:form:configureActions"};function isInitializersSame(e,t){return e===t||oldToNewNameMap[e]===t}class SchemaInitializerManager{constructor(t=[],o){R(this,"schemaInitializers",{}),R(this,"actionList",{}),this._schemaInitializers=t,this.app=o,this.app=o,this.add(...t)}add(...t){t.forEach(o=>{this.schemaInitializers[o.name]=o,Array.isArray(this.actionList[o.name])&&(this.actionList[o.name].forEach(r=>{o[r.type](r.itemName,r.data)}),this.actionList[o.name]=void 0)})}addItem(t,o,r){const i=this.get(t);i?i.add(o,r):(this.actionList[t]||(this.actionList[t]=[]),this.actionList[t].push({type:"add",itemName:o,data:r}))}get(t){return this.schemaInitializers[t]}getAll(){return this.schemaInitializers}has(t){return!!this.get(t)}remove(t){delete this.schemaInitializers[t]}removeItem(t,o){const r=this.get(t);r?r.remove(o):(this.actionList[t]||(this.actionList[t]=[]),this.actionList[t].push({type:"remove",itemName:o}))}}function normalizeContainer(e){if(!e)return console.warn("Failed to mount app: mount target should not be null or undefined."),null;if(typeof e=="string"){const t=document.querySelector(e);return t||console.warn(`Failed to mount app: mount target selector "${e}" returned null.`),t}return window.ShadowRoot&&e instanceof window.ShadowRoot&&e.mode==="closed"&&console.warn('mounting on a ShadowRoot with `{mode: "closed"}` may lead to unpredictable bugs'),e}const compose=(...e)=>{const t=e.reduce((o,r)=>{const[i,n]=r,l=({children:a})=>(0,import_jsx_runtime.jsx)(o,{children:(0,import_jsx_runtime.jsx)(i,A(x({},n),{children:a}))});return l.displayName=`compose(${i.displayName||i.name})`,l},BlankComponent);return o=>r=>(0,import_jsx_runtime.jsx)(t,{children:o&&(0,import_jsx_runtime.jsx)(o,x({},r))})};function defineGlobalDeps(e){e.define("react",()=>import_react2.default),e.define("react-dom",()=>import_react_dom.default),e.define("react/jsx-runtime",()=>import_jsx_runtime.default),e.define("react-router",()=>ReactRouter),e.define("react-router-dom",()=>ReactRouterDom),e.define("antd",()=>antd),e.define("antd-style",()=>antdStyle),e.define("@ant-design/icons",()=>antIcons),e.define("@ant-design/cssinjs",()=>antdCssinjs),e.define("i18next",()=>i18next),e.define("react-i18next",()=>reactI18next),e.define("@formily/antd-v5",()=>formilyAntdV5),e.define("@formily/core",()=>formilyCore),e.define("@formily/react",()=>formilyReact),e.define("@formily/shared",()=>formilyShared),e.define("@formily/json-schema",()=>formilyJsonSchema),e.define("@formily/reactive",()=>formilyJsonReactive),e.define("@formily/path",()=>formilyPath),e.define("@formily/validator",()=>formilyValidator),e.define("@formily/reactive-react",()=>formilyReactiveReact),e.define("@nocobase/utils",()=>nocobaseClientUtils),e.define("@nocobase/utils/client",()=>nocobaseClientUtils),e.define("@nocobase/client",()=>nocobaseClient),e.define("@nocobase/client/client",()=>nocobaseClient),e.define("@nocobase/evaluators",()=>nocobaseEvaluators),e.define("@nocobase/evaluators/client",()=>nocobaseEvaluators),e.define("@nocobase/sdk",()=>nocobaseSDK),e.define("@nocobase/flow-engine",()=>nocobaseFlowEngine),e.define("@dnd-kit/core",()=>dndKitCore),e.define("@dnd-kit/sortable",()=>dndKitSortable),e.define("axios",()=>import_axios.default),e.define("dayjs",()=>import_client.dayjs),e.define("lodash",()=>import_lodash.default),e.define("ahooks",()=>ahooks),e.define("@emotion/css",()=>emotionCss),e.define("file-saver",()=>FileSaver)}/* istanbul ignore file -- @preserve */function getRequireJs(){var requirejs,require,define,req,s,head,baseElement,dataMain,src,interactiveScript,currentlyAddingScript,mainScript,subPath,version="2.3.6",commentRegExp=/\/\*[\s\S]*?\*\/|([^:"'=]|^)\/\/.*$/mg,cjsRequireRegExp=/[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,jsSuffixRegExp=/\.js$/,currDirRegExp=/^\.\//,op=Object.prototype,ostring=op.toString,hasOwn=op.hasOwnProperty,isBrowser=!!(typeof window<"u"&&typeof navigator<"u"&&window.document),isWebWorker=!isBrowser&&typeof importScripts<"u",readyRegExp=isBrowser&&navigator.platform==="PLAYSTATION 3"?/^complete$/:/^(complete|loaded)$/,defContextName="_",isOpera=typeof opera<"u"&&opera.toString()==="[object Opera]",contexts={},cfg={},globalDefQueue=[],useInteractive=!1;function commentReplace(e,t){return t||""}function isFunction(e){return ostring.call(e)==="[object Function]"}function isArray(e){return ostring.call(e)==="[object Array]"}function each(e,t){if(e){var o;for(o=0;o<e.length&&!(e[o]&&t(e[o],o,e));o+=1);}}function eachReverse(e,t){if(e){var o;for(o=e.length-1;o>-1&&!(e[o]&&t(e[o],o,e));o-=1);}}function hasProp(e,t){return hasOwn.call(e,t)}function getOwn(e,t){return hasProp(e,t)&&e[t]}function eachProp(e,t){var o;for(o in e)if(hasProp(e,o)&&t(e[o],o))break}function mixin(e,t,o,r){return t&&eachProp(t,function(i,n){(o||!hasProp(e,n))&&(r&&typeof i=="object"&&i&&!isArray(i)&&!isFunction(i)&&!(i instanceof RegExp)?(e[n]||(e[n]={}),mixin(e[n],i,o,r)):e[n]=i)}),e}function bind(e,t){return function(){return t.apply(e,arguments)}}function scripts(){return document.getElementsByTagName("script")}function defaultOnError(e){throw e}function getGlobal(e){if(!e)return e;var t=global;return each(e.split("."),function(o){t=t[o]}),t}function makeError(e,t,o,r){var i=new Error(t+`
|
|
628
|
-
https://requirejs.org/docs/errors.html#`+e);return i.requireType=e,i.requireModules=r,o&&(i.originalError=o),i}if(typeof define<"u")return;if(typeof requirejs<"u"){if(isFunction(requirejs))return;cfg=requirejs,requirejs=void 0}typeof require<"u"&&!isFunction(require)&&(cfg=require,require=void 0);function newContext(e){var t,o,r,i,n,l={waitSeconds:7,baseUrl:"./",paths:{},bundles:{},pkgs:{},shim:{},config:{}},a={},c={},u={},d=[],m={},p={},h={},g=1,f=1;function _(M){var O,V;for(O=0;O<M.length;O++)if(V=M[O],V===".")M.splice(O,1),O-=1;else if(V===".."){if(O===0||O===1&&M[2]===".."||M[O-1]==="..")continue;O>0&&(M.splice(O-1,2),O-=2)}}function v(M,O,V){var $,q,z,U,K,W,Y,Q,H,J,Z,re,oe=O&&O.split("/"),G=l.map,X=G&&G["*"];if(M&&(M=M.split("/"),Y=M.length-1,l.nodeIdCompat&&jsSuffixRegExp.test(M[Y])&&(M[Y]=M[Y].replace(jsSuffixRegExp,"")),M[0].charAt(0)==="."&&oe&&(re=oe.slice(0,oe.length-1),M=re.concat(M)),_(M),M=M.join("/")),V&&G&&(oe||X)){z=M.split("/");e:for(U=z.length;U>0;U-=1){if(W=z.slice(0,U).join("/"),oe){for(K=oe.length;K>0;K-=1)if(q=getOwn(G,oe.slice(0,K).join("/")),q&&(q=getOwn(q,W),q)){Q=q,H=U;break e}}!J&&X&&getOwn(X,W)&&(J=getOwn(X,W),Z=U)}!Q&&J&&(Q=J,H=Z),Q&&(z.splice(0,H,Q),M=z.join("/"))}return $=getOwn(l.pkgs,M),$||M}function y(M){isBrowser&&each(scripts(),function(O){if(O.getAttribute("data-requiremodule")===M&&O.getAttribute("data-requirecontext")===r.contextName)return O.parentNode.removeChild(O),!0})}function C(M){var O=getOwn(l.paths,M);if(O&&isArray(O)&&O.length>1)return O.shift(),r.require.undef(M),r.makeRequire(null,{skipMap:!0})([M]),!0}function b(M){var O,V=M?M.indexOf("!"):-1;return V>-1&&(O=M.substring(0,V),M=M.substring(V+1,M.length)),[O,M]}function F(M,O,V,$){var q,z,U,K,W=null,Y=O?O.name:null,Q=M,H=!0,J="";return M||(H=!1,M="_@r"+(g+=1)),K=b(M),W=K[0],M=K[1],W&&(W=v(W,Y,$),z=getOwn(m,W)),M&&(W?V?J=M:z&&z.normalize?J=z.normalize(M,function(Z){return v(Z,Y,$)}):J=M.indexOf("!")===-1?v(M,Y,$):M:(J=v(M,Y,$),K=b(J),W=K[0],J=K[1],V=!0,q=r.nameToUrl(J))),U=W&&!z&&!V?"_unnormalized"+(f+=1):"",{prefix:W,name:J,parentMap:O,unnormalized:!!U,url:q,originalName:Q,isDefine:H,id:(W?W+"!"+J:J)+U}}function S(M){var O=M.id,V=getOwn(a,O);return V||(V=a[O]=new r.Module(M)),V}function P(M,O,V){var $=M.id,q=getOwn(a,$);hasProp(m,$)&&(!q||q.defineEmitComplete)?O==="defined"&&V(m[$]):(q=S(M),q.error&&O==="error"?V(q.error):q.on(O,V))}function j(M,O){var V=M.requireModules,$=!1;O?O(M):(each(V,function(q){var z=getOwn(a,q);z&&(z.error=M,z.events.error&&($=!0,z.emit("error",M)))}),$||req.onError(M))}function I(){globalDefQueue.length&&(each(globalDefQueue,function(M){var O=M[0];typeof O=="string"&&(r.defQueueMap[O]=!0),d.push(M)}),globalDefQueue=[])}i={require:function(M){return M.require?M.require:M.require=r.makeRequire(M.map)},exports:function(M){if(M.usingExports=!0,M.map.isDefine)return M.exports?m[M.map.id]=M.exports:M.exports=m[M.map.id]={}},module:function(M){return M.module?M.module:M.module={id:M.map.id,uri:M.map.url,config:function(){return getOwn(l.config,M.map.id)||{}},exports:M.exports||(M.exports={})}}};function T(M){delete a[M],delete c[M]}function N(M,O,V){var $=M.map.id;M.error?M.emit("error",M.error):(O[$]=!0,each(M.depMaps,function(q,z){var U=q.id,K=getOwn(a,U);K&&!M.depMatched[z]&&!V[U]&&(getOwn(O,U)?(M.defineDep(z,m[U]),M.check()):N(K,O,V))}),V[$]=!0)}function D(){var M,O,V=l.waitSeconds*1e3,$=V&&r.startTime+V<new Date().getTime(),q=[],z=[],U=!1,K=!0;if(!t){if(t=!0,eachProp(c,function(W){var Y=W.map,Q=Y.id;if(W.enabled&&(Y.isDefine||z.push(W),!W.error)){if(!W.inited&&$)C(Q)?(O=!0,U=!0):(q.push(Q),y(Q));else if(!W.inited&&W.fetched&&Y.isDefine&&(U=!0,!Y.prefix))return K=!1}}),$&&q.length)return M=makeError("timeout","Load timeout for modules: "+q,null,q),M.contextName=r.contextName,j(M);K&&each(z,function(W){N(W,{},{})}),(!$||O)&&U&&(isBrowser||isWebWorker)&&!n&&(n=setTimeout(function(){n=0,D()},50)),t=!1}}o=function(M){this.events=getOwn(u,M.id)||{},this.map=M,this.shim=getOwn(l.shim,M.id),this.depExports=[],this.depMaps=[],this.depMatched=[],this.pluginMaps={},this.depCount=0},o.prototype={init:function(M,O,V,$){$=$||{},!this.inited&&(this.factory=O,V?this.on("error",V):this.events.error&&(V=bind(this,function(q){this.emit("error",q)})),this.depMaps=M&&M.slice(0),this.errback=V,this.inited=!0,this.ignore=$.ignore,$.enabled||this.enabled?this.enable():this.check())},defineDep:function(M,O){this.depMatched[M]||(this.depMatched[M]=!0,this.depCount-=1,this.depExports[M]=O)},fetch:function(){if(!this.fetched){this.fetched=!0,r.startTime=new Date().getTime();var M=this.map;if(this.shim)r.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],bind(this,function(){return M.prefix?this.callPlugin():this.load()}));else return M.prefix?this.callPlugin():this.load()}},load:function(){var M=this.map.url;p[M]||(p[M]=!0,r.load(this.map.id,M))},check:function(){if(!(!this.enabled||this.enabling)){var M,O,V=this.map.id,$=this.depExports,q=this.exports,z=this.factory;if(!this.inited)hasProp(r.defQueueMap,V)||this.fetch();else if(this.error)this.emit("error",this.error);else if(!this.defining){if(this.defining=!0,this.depCount<1&&!this.defined){if(isFunction(z)){if(this.events.error&&this.map.isDefine||req.onError!==defaultOnError)try{q=r.execCb(V,z,$,q)}catch(K){M=K}else q=r.execCb(V,z,$,q);if(this.map.isDefine&&q===void 0&&(O=this.module,O?q=O.exports:this.usingExports&&(q=this.exports)),M)return M.requireMap=this.map,M.requireModules=this.map.isDefine?[this.map.id]:null,M.requireType=this.map.isDefine?"define":"require",j(this.error=M)}else q=z;if(this.exports=q,this.map.isDefine&&!this.ignore&&(m[V]=q,req.onResourceLoad)){var U=[];each(this.depMaps,function(K){U.push(K.normalizedMap||K)}),req.onResourceLoad(r,this.map,U)}T(V),this.defined=!0}this.defining=!1,this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=!0)}}},callPlugin:function(){var M=this.map,O=M.id,V=F(M.prefix);this.depMaps.push(V),P(V,"defined",bind(this,function($){var q,z,U,K=getOwn(h,this.map.id),W=this.map.name,Y=this.map.parentMap?this.map.parentMap.name:null,Q=r.makeRequire(M.parentMap,{enableBuildCallback:!0});if(this.map.unnormalized){$.normalize&&(W=$.normalize(W,function(H){return v(H,Y,!0)})||""),z=F(M.prefix+"!"+W,this.map.parentMap,!0),P(z,"defined",bind(this,function(H){this.map.normalizedMap=z,this.init([],function(){return H},null,{enabled:!0,ignore:!0})})),U=getOwn(a,z.id),U&&(this.depMaps.push(z),this.events.error&&U.on("error",bind(this,function(H){this.emit("error",H)})),U.enable());return}if(K){this.map.url=r.nameToUrl(K),this.load();return}q=bind(this,function(H){this.init([],function(){return H},null,{enabled:!0})}),q.error=bind(this,function(H){this.inited=!0,this.error=H,H.requireModules=[O],eachProp(a,function(J){J.map.id.indexOf(O+"_unnormalized")===0&&T(J.map.id)}),j(H)}),q.fromText=bind(this,function(H,J){var Z=M.name,re=F(Z),oe=useInteractive;J&&(H=J),oe&&(useInteractive=!1),S(re),hasProp(l.config,O)&&(l.config[Z]=l.config[O]);try{req.exec(H)}catch(G){return j(makeError("fromtexteval","fromText eval for "+O+" failed: "+G,G,[O]))}oe&&(useInteractive=!0),this.depMaps.push(re),r.completeLoad(Z),Q([Z],q)}),$.load(M.name,Q,q,l)})),r.enable(V,this),this.pluginMaps[V.id]=V},enable:function(){c[this.map.id]=this,this.enabled=!0,this.enabling=!0,each(this.depMaps,bind(this,function(M,O){var V,$,q;if(typeof M=="string"){if(M=F(M,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap),this.depMaps[O]=M,q=getOwn(i,M.id),q){this.depExports[O]=q(this);return}this.depCount+=1,P(M,"defined",bind(this,function(z){this.undefed||(this.defineDep(O,z),this.check())})),this.errback?P(M,"error",bind(this,this.errback)):this.events.error&&P(M,"error",bind(this,function(z){this.emit("error",z)}))}V=M.id,$=a[V],!hasProp(i,V)&&$&&!$.enabled&&r.enable(M,this)})),eachProp(this.pluginMaps,bind(this,function(M){var O=getOwn(a,M.id);O&&!O.enabled&&r.enable(M,this)})),this.enabling=!1,this.check()},on:function(M,O){var V=this.events[M];V||(V=this.events[M]=[]),V.push(O)},emit:function(M,O){each(this.events[M],function(V){V(O)}),M==="error"&&delete this.events[M]}};function w(M){hasProp(m,M[0])||S(F(M[0],null,!0)).init(M[1],M[2])}function k(M,O,V,$){M.detachEvent&&!isOpera?$&&M.detachEvent($,O):M.removeEventListener(V,O,!1)}function B(M){var O=M.currentTarget||M.srcElement;return k(O,r.onScriptLoad,"load","onreadystatechange"),k(O,r.onScriptError,"error"),{node:O,id:O&&O.getAttribute("data-requiremodule")}}function E(){var M;for(I();d.length;){if(M=d.shift(),M[0]===null)return j(makeError("mismatch","Mismatched anonymous define() module: "+M[M.length-1]));w(M)}r.defQueueMap={}}return r={config:l,contextName:e,registry:a,defined:m,urlFetched:p,defQueue:d,defQueueMap:{},Module:o,makeModuleMap:F,nextTick:req.nextTick,onError:j,configure:function(M){if(M.baseUrl&&M.baseUrl.charAt(M.baseUrl.length-1)!=="/"&&(M.baseUrl+="/"),typeof M.urlArgs=="string"){var O=M.urlArgs;M.urlArgs=function(q,z){return(z.indexOf("?")===-1?"?":"&")+O}}var V=l.shim,$={paths:!0,bundles:!0,config:!0,map:!0};eachProp(M,function(q,z){$[z]?(l[z]||(l[z]={}),mixin(l[z],q,!0,!0)):l[z]=q}),M.bundles&&eachProp(M.bundles,function(q,z){each(q,function(U){U!==z&&(h[U]=z)})}),M.shim&&(eachProp(M.shim,function(q,z){isArray(q)&&(q={deps:q}),(q.exports||q.init)&&!q.exportsFn&&(q.exportsFn=r.makeShimExports(q)),V[z]=q}),l.shim=V),M.packages&&each(M.packages,function(q){var z,U;q=typeof q=="string"?{name:q}:q,U=q.name,z=q.location,z&&(l.paths[U]=q.location),l.pkgs[U]=q.name+"/"+(q.main||"main").replace(currDirRegExp,"").replace(jsSuffixRegExp,"")}),eachProp(a,function(q,z){!q.inited&&!q.map.unnormalized&&(q.map=F(z,null,!0))}),(M.deps||M.callback)&&r.require(M.deps||[],M.callback)},makeShimExports:function(M){function O(){var V;return M.init&&(V=M.init.apply(global,arguments)),V||M.exports&&getGlobal(M.exports)}return O},makeRequire:function(M,O){O=O||{};function V($,q,z){var U,K,W;return O.enableBuildCallback&&q&&isFunction(q)&&(q.__requireJsBuild=!0),typeof $=="string"?isFunction(q)?j(makeError("requireargs","Invalid require call"),z):M&&hasProp(i,$)?i[$](a[M.id]):req.get?req.get(r,$,M,V):(K=F($,M,!1,!0),U=K.id,hasProp(m,U)?m[U]:j(makeError("notloaded",'Module name "'+U+'" has not been loaded yet for context: '+e+(M?"":". Use require([])")))):(E(),r.nextTick(function(){E(),W=S(F(null,M)),W.skipMap=O.skipMap,W.init($,q,z,{enabled:!0}),D()}),V)}return mixin(V,{isBrowser,toUrl:function($){var q,z=$.lastIndexOf("."),U=$.split("/")[0],K=U==="."||U==="..";return z!==-1&&(!K||z>1)&&(q=$.substring(z,$.length),$=$.substring(0,z)),r.nameToUrl(v($,M&&M.id,!0),q,!0)},defined:function($){return hasProp(m,F($,M,!1,!0).id)},specified:function($){return $=F($,M,!1,!0).id,hasProp(m,$)||hasProp(a,$)}}),M||(V.undef=function($){I();var q=F($,M,!0),z=getOwn(a,$);z.undefed=!0,y($),delete m[$],delete p[q.url],delete u[$],eachReverse(d,function(U,K){U[0]===$&&d.splice(K,1)}),delete r.defQueueMap[$],z&&(z.events.defined&&(u[$]=z.events),T($))}),V},enable:function(M){var O=getOwn(a,M.id);O&&S(M).enable()},completeLoad:function(M){var O,V,$,q=getOwn(l.shim,M)||{},z=q.exports;for(I();d.length;){if(V=d.shift(),V[0]===null){if(V[0]=M,O)break;O=!0}else V[0]===M&&(O=!0);w(V)}if(r.defQueueMap={},$=getOwn(a,M),!O&&!hasProp(m,M)&&$&&!$.inited){if(l.enforceDefine&&(!z||!getGlobal(z)))return C(M)?void 0:j(makeError("nodefine","No define call for "+M,null,[M]));w([M,q.deps||[],q.exportsFn])}D()},nameToUrl:function(M,O,V){var $,q,z,U,K,W,Y,Q=getOwn(l.pkgs,M);if(Q&&(M=Q),Y=getOwn(h,M),Y)return r.nameToUrl(Y,O,V);if(req.jsExtRegExp.test(M))K=M+(O||"");else{for($=l.paths,q=M.split("/"),z=q.length;z>0;z-=1)if(U=q.slice(0,z).join("/"),W=getOwn($,U),W){isArray(W)&&(W=W[0]),q.splice(0,z,W);break}K=q.join("/"),K+=O||(/^data\:|^blob\:|\?/.test(K)||V?"":".js"),K=(K.charAt(0)==="/"||K.match(/^[\w\+\.\-]+:/)?"":l.baseUrl)+K}return l.urlArgs&&!/^blob\:/.test(K)?K+l.urlArgs(M,K):K},load:function(M,O){req.load(r,M,O)},execCb:function(M,O,V,$){return O.apply($,V)},onScriptLoad:function(M){if(M.type==="load"||readyRegExp.test((M.currentTarget||M.srcElement).readyState)){interactiveScript=null;var O=B(M);r.completeLoad(O.id)}},onScriptError:function(M){var O=B(M);if(!C(O.id)){var V=[];return eachProp(a,function($,q){q.indexOf("_@r")!==0&&each($.depMaps,function(z){if(z.id===O.id)return V.push(q),!0})}),j(makeError("scripterror",'Script error for "'+O.id+(V.length?'", needed by: '+V.join(", "):'"'),M,[O.id]))}}},r.require=r.makeRequire(),r}req=requirejs=function(e,t,o,r){var i,n,l=defContextName;return!isArray(e)&&typeof e!="string"&&(n=e,isArray(t)?(e=t,t=o,o=r):e=[]),n&&n.context&&(l=n.context),i=getOwn(contexts,l),i||(i=contexts[l]=req.s.newContext(l)),n&&i.configure(n),i.require(e,t,o)},req.config=function(e){return req(e)},req.nextTick=typeof setTimeout<"u"?function(e){setTimeout(e,4)}:function(e){e()},require||(require=req),req.version=version,req.jsExtRegExp=/^\/|:|\?|\.js$/,req.isBrowser=isBrowser,s=req.s={contexts,newContext},req({}),each(["toUrl","undef","defined","specified"],function(e){req[e]=function(){var t=contexts[defContextName];return t.require[e].apply(t,arguments)}}),isBrowser&&(head=s.head=document.getElementsByTagName("head")[0],baseElement=document.getElementsByTagName("base")[0],baseElement&&(head=s.head=baseElement.parentNode)),req.onError=defaultOnError,req.createNode=function(e,t,o){var r=e.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script");return r.type=e.scriptType||"text/javascript",r.charset="utf-8",r.async=!0,r},req.load=function(e,t,o){var r=e&&e.config||{},i;if(isBrowser)return i=req.createNode(r,t,o),i.setAttribute("data-requirecontext",e.contextName),i.setAttribute("data-requiremodule",t),i.attachEvent&&!(i.attachEvent.toString&&i.attachEvent.toString().indexOf("[native code")<0)&&!isOpera?(useInteractive=!0,i.attachEvent("onreadystatechange",e.onScriptLoad)):(i.addEventListener("load",e.onScriptLoad,!1),i.addEventListener("error",e.onScriptError,!1)),i.src=o,r.onNodeCreated&&r.onNodeCreated(i,r,t,o),currentlyAddingScript=i,baseElement?head.insertBefore(i,baseElement):head.appendChild(i),currentlyAddingScript=null,i;if(isWebWorker)try{setTimeout(function(){},0),importScripts(o),e.completeLoad(t)}catch(n){e.onError(makeError("importscripts","importScripts failed for "+t+" at "+o,n,[t]))}};function getInteractiveScript(){return interactiveScript&&interactiveScript.readyState==="interactive"||eachReverse(scripts(),function(e){if(e.readyState==="interactive")return interactiveScript=e}),interactiveScript}return isBrowser&&!cfg.skipDataMain&&eachReverse(scripts(),function(e){if(head||(head=e.parentNode),dataMain=e.getAttribute("data-main"),dataMain)return mainScript=dataMain,!cfg.baseUrl&&mainScript.indexOf("!")===-1&&(src=mainScript.split("/"),mainScript=src.pop(),subPath=src.length?src.join("/")+"/":"./",cfg.baseUrl=subPath),mainScript=mainScript.replace(jsSuffixRegExp,""),req.jsExtRegExp.test(mainScript)&&(mainScript=dataMain),cfg.deps=cfg.deps?cfg.deps.concat(mainScript):[mainScript],!0}),define=function(e,t,o){var r,i;typeof e!="string"&&(o=t,t=e,e=null),isArray(t)||(o=t,t=null),!t&&isFunction(o)&&(t=[],o.length&&(o.toString().replace(commentRegExp,commentReplace).replace(cjsRequireRegExp,function(n,l){t.push(l)}),t=(o.length===1?["require"]:["require","exports","module"]).concat(t))),useInteractive&&(r=currentlyAddingScript||getInteractiveScript(),r&&(e||(e=r.getAttribute("data-requiremodule")),i=contexts[r.getAttribute("data-requirecontext")])),i?(i.defQueue.push([e,t,o]),i.defQueueMap[e]=!0):globalDefQueue.push([e,t,o])},define.amd={jQuery:!0},req.exec=function(text){return eval(text)},req(cfg),{requirejs,require,define}}const setFieldProps=(e,t,o)=>{(0,import_reactive.untracked)(()=>{e[t]===void 0&&(e[t]=o)})},setRequired=(e,t,o)=>{typeof t.required>"u"&&(e.required=!!o.required)},CollectionFieldInternalField_deprecated=e=>{var t;const o=useCompile(),r=(0,import_react.useField)(),i=(0,import_react.useFieldSchema)(),{uiSchema:n,defaultValue:l}=useCollectionField(),{isAllowToSetDefaultValue:a}=useIsAllowToSetDefaultValue(),c=useComponent(((t=i["x-component-props"])==null?void 0:t.component)||(n==null?void 0:n["x-component"])||"Input"),u=useFormBlockContext(),d=useDynamicComponentProps(n==null?void 0:n["x-use-component-props"],e);return(0,import_react2.useEffect)(()=>{if(!n)return;const m=o(n);if(setFieldProps(r,"content",m["x-content"]),setFieldProps(r,"title",m.title),setFieldProps(r,"description",m.description),u!=null&&u.form){const h=a()?i.default||l:void 0;h!=null&&setFieldProps(r,"initialValue",h)}if(!r.validator&&(m["x-validator"]||i["x-validator"])){const h=(0,import_lodash.concat)([],m["x-validator"]||[],i["x-validator"]||[]);r.validator=h}i["x-disabled"]===!0&&(r.disabled=!0),i["x-read-pretty"]===!0&&(r.readPretty=!0),setRequired(r,i,m),r.dataSource=m.enum,r.data=r.data||{},r.data.dataSource=m==null?void 0:m.enum;const p=o(m["x-component-props"])||{};r.componentProps=(0,import_shared.merge)(p,r.componentProps||{},d||{})},[n]),n?(0,import_jsx_runtime.jsx)(c,x(x({},e),d)):null},CollectionFieldInternalField=e=>{var t;const o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{uiSchema:i}=useCollectionFieldUISchema(),n=useComponent(((t=r["x-component-props"])==null?void 0:t.component)||(i==null?void 0:i["x-component"])||"Input"),l=useDynamicComponentProps(i==null?void 0:i["x-use-component-props"],e);if((0,import_react2.useEffect)(()=>{r["x-read-pretty"]===!0&&!o.readPretty&&(o.readPretty=!0),r["x-disabled"]===!0&&(o.disabled=!0),o.data=o.data||{},o.data.dataSource=i==null?void 0:i.enum},[o,r]),!i)return null;const a=x(x({},e),l);return isVariable$1(a.value)&&a.value===r.default&&(a.value=void 0),(0,import_jsx_runtime.jsx)(n,x({},a))},CollectionField$1=(0,import_react.connect)(e=>{const t=(0,import_react.useFieldSchema)(),o=useIsInNocoBaseRecursionFieldContext();return(0,import_jsx_runtime.jsx)(CollectionFieldProvider,{name:t.name,children:o?(0,import_jsx_runtime.jsx)(CollectionFieldInternalField,x({},e)):(0,import_jsx_runtime.jsx)(CollectionFieldInternalField_deprecated,x({},e))})});CollectionField$1.displayName="CollectionField";const getKeyByName=e=>e?`nocobase_${e}_designable`.toUpperCase():"nocobase_designable".toUpperCase(),SchemaComponentProviderWithLocalStorageState=e=>{const[t,o]=(0,import_ahooks.useLocalStorageState)(getKeyByName(e.appName),{defaultValue:!!e.designable});return(0,import_jsx_runtime.jsx)(SchemaComponentProvider,A(x({},e),{designable:t,onDesignableChange:r=>{o(r)}}))},AppSchemaComponentProvider=e=>typeof e.designable=="boolean"?(0,import_jsx_runtime.jsx)(SchemaComponentProvider,x({},e)):(0,import_jsx_runtime.jsx)(SchemaComponentProviderWithLocalStorageState,x({},e));function getOperators(){Array.isArray||(Array.isArray=function(i){return Object.prototype.toString.call(i)==="[object Array]"});function e(i){for(var n=[],l=0,a=i.length;l<a;l++)n.indexOf(i[l])===-1&&n.push(i[l]);return n}function t(i,n){return JSON.stringify(i)===JSON.stringify(n)}var o={},r={$is:function(i,n){return i===n},$match:function(i,n){return Array.isArray(i)&&Array.isArray(n)&&i.some(l=>Array.isArray(l))?i.some(l=>(l==null?void 0:l.length)===n.length&&(l==null?void 0:l.every((a,c)=>a===n[c]))):JSON.stringify(i)===JSON.stringify(n)},$eq:function(i,n){return Array.isArray(i)&&Array.isArray(n)?t(i,n):Array.isArray(i)?i.includes(n):i==n},$ne:function(i,n){return i!=n},"!==":function(i,n){return i!==n},$gt:function(i,n){return Array.isArray(i)?i.some(l=>l>n):i>n},$gte:function(i,n){return i>=n},$lt:function(i,n,l){return Array.isArray(i)?i.some(a=>a<n):l===void 0?i<n:i<n&&n<l},$lte:function(i,n,l){return l===void 0?i<=n:i<=n&&n<=l},$exists:function(i){return o.truthy(i)},$notEmpty:function(i){return!r.$empty(i)},$empty:function(i){return Array.isArray(i)||typeof i=="string"?i.length===0:i==null},$notExists:function(i){return!o.truthy(i)},"%":function(i,n){return i%n},log:function(i){return i},$in:function(i,n){return!n||typeof n.indexOf>"u"?!1:Array.isArray(i)&&Array.isArray(n)?n.some(l=>i.includes(l)):n.indexOf(i)!==-1},$notIn:function(i,n){return!n||typeof n.indexOf>"u"?!1:n.indexOf(i)===-1},$includes:function(i,n){return!i||typeof i.indexOf>"u"?!1:Array.isArray(i)?i.some(l=>l==null?void 0:l.includes(n)):i.indexOf(n)!==-1},$notIncludes:function(i,n){return Array.isArray(i)?!i.some(l=>(l||"").includes(n)):(i=i||"",!i.includes(n))},$anyOf:function(i,n){return i==null||i.length===0?!1:Array.isArray(i)&&Array.isArray(n)&&i.some(l=>Array.isArray(l))?i.some(l=>l.some(a=>n.includes(a))):i.some(l=>n.includes(l))},$noneOf:function(i,n){return!i||i.length===0||!n||n.length===0?!0:(Array.isArray(i)||(i=[i]),Array.isArray(n)||(n=[n]),!n.some(l=>i.includes(l)))},$notMatch:function(i,n){if((i==null?void 0:i.length)!==(n==null?void 0:n.length))return!0;for(let l=0;l<((i==null?void 0:i.length)||0);l++)if((i==null?void 0:i[l])!==(n==null?void 0:n[l]))return!0;return!1},$dateOn:function(i,n){if(!i||!n)return!1;if(n.type&&(n=(0,import_client.getDayRangeByParams)(n)),Array.isArray(n))return r.$dateBetween(i,n);const l=parseDate(i),a=parseDate(n);return!l||!a?!1:l.getTime()===a.getTime()},$dateBefore:function(i,n){if(!i||!n)return!1;n.type&&(n=(0,import_client.getDayRangeByParams)(n)),Array.isArray(n)&&(n=n[0]);const l=parseDate(i),a=parseDate(n);return!l||!a?!1:l.getTime()<a.getTime()},$dateNotBefore:function(i,n){if(!i||!n)return!1;n.type&&(n=(0,import_client.getDayRangeByParams)(n)),Array.isArray(n)&&(n=n[0]);const l=parseDate(i),a=parseDate(n);if(!l||!a)throw new Error("Invalid date format");return l.getTime()>=a.getTime()},$dateAfter:function(i,n){if(!i||!n)return!1;n.type&&(n=(0,import_client.getDayRangeByParams)(n)),Array.isArray(n)&&(n=n[1]);const l=parseDate(i),a=parseDate(n);return l.getTime()>a.getTime()},$dateNotAfter:function(i,n){if(!i||!n)return!1;n.type&&(n=(0,import_client.getDayRangeByParams)(n)),Array.isArray(n)&&(n=n[1]);const l=parseDate(i),a=parseDate(n);if(!l||!a)throw new Error("Invalid date format");return l.getTime()<=a.getTime()},$dateBetween:function(i,n){if(!i||!n)return!1;n.type&&(n=(0,import_client.getDayRangeByParams)(n));const l=parseDate(i),a=parseFullDate(n[0]),c=parseFullDate(n[1]);if(!l||!a||!c)throw new Error("Invalid date format");return l.getTime()>=a.getTime()&&l.getTime()<=c.getTime()},$dateNotOn:function(i,n){if(!i||!n)return!1;if(n.type&&(n=(0,import_client.getDayRangeByParams)(n)),Array.isArray(n))return!r.$dateBetween(i,n);const l=parseDate(i),a=parseDate(n);return l.getTime()!==a.getTime()},$isTruly:function(i){return Array.isArray(i)?i.some(n=>n===!0||n===1):i===!0||i===1},$isFalsy:function(i){return Array.isArray(i)?i.some(n=>!o.truthy(n)):!o.truthy(i)},cat:function(){return Array.prototype.join.call(arguments,"")},substr:function(i,n,l){if(l<0){var a=String(i).substr(n);return a.substr(0,a.length+l)}return String(i).substr(n,l)},"+":function(){return Array.prototype.reduce.call(arguments,function(i,n){return parseFloat(i,10)+parseFloat(n,10)},0)},"*":function(){return Array.prototype.reduce.call(arguments,function(i,n){return parseFloat(i,10)*parseFloat(n,10)})},"-":function(i,n){return n===void 0?-i:i-n},"/":function(i,n){return i/n},min:function(){return Math.min.apply(this,arguments)},max:function(){return Math.max.apply(this,arguments)},merge:function(){return Array.prototype.reduce.call(arguments,function(i,n){return i.concat(n)},[])},var:function(i,n){var l=n===void 0?null:n,a=this;if(typeof i>"u"||i===""||i===null)return a;for(var c=String(i).split("."),u=0;u<c.length;u++)if(a==null||(a=a[c[u]],a===void 0))return l;return a},missing:function(){for(var i=[],n=Array.isArray(arguments[0])?arguments[0]:arguments,l=0;l<n.length;l++){var a=n[l],c=o.apply({var:a},this);(c===null||c==="")&&i.push(a)}return i},missing_some:function(i,n){var l=o.apply({missing:n},this);return n.length-l.length>=i?[]:l}};return o.is_logic=function(i){return typeof i=="object"&&i!==null&&!Array.isArray(i)&&Object.keys(i).length===1&&!i.type},o.truthy=function(i){return Array.isArray(i)&&i.length===0?!1:!!i},o.getOperator=function(i){return Object.keys(i)[0]},o.getValues=function(i){return i[o.getOperator(i)]},o.apply=function(i,n){if(Array.isArray(i))return i.map(function(f){return o.apply(f,n)});if(!o.is_logic(i))return i;var l=o.getOperator(i),a=i[l],c,u,d,m,p;if(Array.isArray(a)||(a=[a]),l==="if"||l=="?:"){for(c=0;c<a.length-1;c+=2)if(o.truthy(o.apply(a[c],n)))return o.apply(a[c+1],n);return a.length===c+1?o.apply(a[c],n):null}else if(l==="$and"){for(c=0;c<a.length;c+=1)if(u=o.apply(a[c],n),!o.truthy(u))return u;return u}else if(l==="or"){for(c=0;c<a.length;c+=1)if(u=o.apply(a[c],n),o.truthy(u))return u;return u}else{if(l==="filter")return m=o.apply(a[0],n),d=a[1],Array.isArray(m)?m.filter(function(f){return o.truthy(o.apply(d,f))}):[];if(l==="map")return m=o.apply(a[0],n),d=a[1],Array.isArray(m)?m.map(function(f){return o.apply(d,f)}):[];if(l==="reduce")return m=o.apply(a[0],n),d=a[1],p=typeof a[2]<"u"?a[2]:null,Array.isArray(m)?m.reduce(function(f,_){return o.apply(d,{current:_,accumulator:f})},p):p;if(l==="all"){if(m=o.apply(a[0],n),d=a[1],!Array.isArray(m)||!m.length)return!1;for(c=0;c<m.length;c+=1)if(!o.truthy(o.apply(d,m[c])))return!1;return!0}else if(l==="none"){if(m=o.apply(a[0],n),d=a[1],!Array.isArray(m)||!m.length)return!0;for(c=0;c<m.length;c+=1)if(o.truthy(o.apply(d,m[c])))return!1;return!0}else if(l==="some"){if(m=o.apply(a[0],n),d=a[1],!Array.isArray(m)||!m.length)return!1;for(c=0;c<m.length;c+=1)if(o.truthy(o.apply(d,m[c])))return!0;return!1}}if(a=a.map(function(f){return o.apply(f,n)}),r.hasOwnProperty(l)&&typeof r[l]=="function")return r[l].apply(n,a);if(l.indexOf(".")>0){var h=String(l).split("."),g=r;for(c=0;c<h.length;c++){if(!g.hasOwnProperty(h[c]))throw new Error("Unrecognized operation "+l+" (failed at "+h.slice(0,c+1).join(".")+")");g=g[h[c]]}return g.apply(n,a)}throw new Error("Unrecognized operation "+l)},o.uses_data=function(i){var n=[];if(o.is_logic(i)){var l=o.getOperator(i),a=i[l];Array.isArray(a)||(a=[a]),l==="var"?n.push(a[0]):a.forEach(function(c){n.push.apply(n,o.uses_data(c))})}return e(n)},o.addOperation=function(i,n){r[i]=n},o.rmOperation=function(i){delete r[i]},o.rule_like=function(i,n){if(n===i||n==="@")return!0;if(n==="number")return typeof i=="number";if(n==="string")return typeof i=="string";if(n==="array")return Array.isArray(i)&&!o.is_logic(i);if(o.is_logic(n)){if(o.is_logic(i)){var l=o.getOperator(n),a=o.getOperator(i);if(l==="@"||l===a)return o.rule_like(o.get_values(i,!1),o.get_values(n,!1))}return!1}if(Array.isArray(n))if(Array.isArray(i)){if(n.length!==i.length)return!1;for(var c=0;c<n.length;c+=1)if(!o.rule_like(i[c],n[c]))return!1;return!0}else return!1;return!1},o}function parseFullDate(e){return e.includes("T")&&e.endsWith("Z")?new Date(e):e.includes(" ")?new Date(e.replace(" ","T")):new Date(`${e}T00:00:00`)}function parseMonth(e){const[t,o]=e.split("-").map(Number);return new Date(t,o-1)}function parseQuarter(e){const t=parseInt(e.slice(0,4)),o=(parseInt(e.slice(5,6))-1)*3;return new Date(t,o)}function parseYear(e){const t=parseInt(e);return new Date(t,0)}function parseDate(e){var t;let o=Array.isArray(e)?(t=e[1])!=null?t:e[0]:e;return/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/.test(o)?new Date(o):/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/.test(o)?new Date(o.replace(" ","T")):/^\d{4}-\d{2}-\d{2}$/.test(o)?parseFullDate(o):/^\d{4}-\d{2}$/.test(o)?parseMonth(o):/^\d{4}Q[1-4]$/.test(o)?parseQuarter(o):/^\d{4}$/.test(o)?parseYear(o):null}class RouteRepository{constructor(t){R(this,"routes",[]),this.ctx=t}setRoutes(t){this.routes=t}listAccessible(){return this.routes}getRouteBySchemaUid(t){return this.findRoute(this.routes,t)}findRoute(t,o){for(const r of t){if(r.schemaUid===o)return r;if(r.children){const i=this.findRoute(r.children,o);if(i)return i}}}}class DefaultToolsManager{constructor(t,o=new import_client.Registry){this.app=t,this.tools=o}listTools(t){return L(this,null,function*(){const{data:o}=yield this.app.apiClient.resource("aiTools").list({filter:t}),r=o==null?void 0:o.data;return r?r.map(i=>{var n;return x(x({},i),(n=this.tools.get(i.definition.name))!=null?n:{})}):[]})}useTools(){var t,o;const r=new import_client.Registry;for(const[i,n]of this.tools.getEntities())r.register(i,x({},(o=(t=n.useHooks)==null?void 0:t.call(n))!=null?o:n));return r}registerTools(t,o){this.tools.register(t,x({},o))}}class AIManager{constructor(t){R(this,"toolsManager"),this.app=t,this.toolsManager=new DefaultToolsManager(this.app)}}const toToolsMap=e=>new Map(e.map(t=>[t.definition.name,t]));class Application{constructor(t={}){R(this,"eventBus",new EventTarget),R(this,"aiManager"),R(this,"providers",[]),R(this,"router"),R(this,"scopes",{}),R(this,"i18n"),R(this,"ws"),R(this,"apiClient"),R(this,"components",A(x(x({DataBlockProvider},defaultAppComponents),schemaInitializerComponents),{CollectionField:CollectionField$1})),R(this,"pluginManager"),R(this,"pluginSettingsManager"),R(this,"devDynamicImport"),R(this,"requirejs"),R(this,"notification"),R(this,"schemaInitializerManager"),R(this,"schemaSettingsManager"),R(this,"dataSourceManager"),R(this,"name"),R(this,"favicon"),R(this,"globalVars",{}),R(this,"globalVarCtxs",{}),R(this,"jsonLogic"),R(this,"flowEngine"),R(this,"context"),R(this,"loading",!0),R(this,"maintained",!1),R(this,"maintaining",!1),R(this,"error",null),R(this,"hasLoadError",!1),R(this,"locales",null),R(this,"wsAuthorized",!1),R(this,"variables",[]),R(this,"apps",{Component:null}),this.options=t,this.initRequireJs(),(0,import_reactive.define)(this,{maintained:import_reactive.observable.ref,loading:import_reactive.observable.ref,maintaining:import_reactive.observable.ref,error:import_reactive.observable.ref}),this.devDynamicImport=t.devDynamicImport,this.scopes=(0,import_merge.default)(this.scopes,t.scopes),this.components=(0,import_merge.default)(this.components,t.components),this.name=this.options.name||(0,import_sdk.getSubAppName)(t.publicPath)||"main",this.apiClient=t.apiClient instanceof APIClient?t.apiClient:new APIClient(A(x({},t.apiClient),{appName:this.options.name||(0,import_sdk.getSubAppName)(t.publicPath)})),this.apiClient.app=this,this.i18n=t.i18n||i18n,this.router=new RouterManager(t.router,this),this.schemaSettingsManager=new SchemaSettingsManager(t.schemaSettings,this),this.pluginManager=new PluginManager$1(t.plugins,t.loadRemotePlugins,this),this.schemaInitializerManager=new SchemaInitializerManager(t.schemaInitializers,this),this.dataSourceManager=new DataSourceManager(t.dataSourceManager,this),this.flowEngine=new import_flow_engine.FlowEngine,this.context=this.flowEngine.context,this.context.defineProperty("pluginManager",{get:()=>this.pluginManager}),this.context.defineProperty("pluginSettingsRouter",{get:()=>this.pluginSettingsManager}),this.addDefaultProviders(),this.addReactRouterComponents(),this.addProviders(t.providers||[]),this.ws=new WebSocketClient(t.ws),this.ws.app=this,this.pluginSettingsManager=new PluginSettingsManager(t.pluginSettings,this),this.addRoutes(),this.i18n.on("languageChanged",o=>{this.apiClient.auth.locale=o}),this.initListeners(),this.jsonLogic=getOperators(),this.aiManager=new AIManager(this)}get pm(){return this.pluginManager}get disableAcl(){return this.options.disableAcl}get isWsAuthorized(){return this.wsAuthorized}updateFavicon(t){let o=document.querySelector('link[rel="shortcut icon"]');t&&(this.favicon=t),o?o.href=this.favicon||"/favicon/favicon.ico":(o=document.createElement("link"),o.rel="shortcut icon",o.href=this.favicon||"/favicon/favicon.ico",document.head.appendChild(o))}setWsAuthorized(t){this.wsAuthorized=t}initListeners(){this.eventBus.addEventListener("auth:tokenChanged",t=>{this.setTokenInWebSocket(t.detail)}),this.eventBus.addEventListener("maintaining:end",()=>{this.apiClient.auth.token&&this.setTokenInWebSocket({token:this.apiClient.auth.token,authenticator:this.apiClient.auth.getAuthenticator()})})}setTokenInWebSocket(t){const{token:o,authenticator:r}=t;this.maintaining||this.ws.send(JSON.stringify({type:"auth:token",payload:{token:o,authenticator:r}}))}setMaintaining(t){this.maintaining!==t&&(this.maintaining=t,t||this.eventBus.dispatchEvent(new Event("maintaining:end")))}initRequireJs(){if(window.requirejs){this.requirejs=window.requirejs;return}window.requirejs=this.requirejs=getRequireJs(),defineGlobalDeps(this.requirejs),window.define=this.requirejs.define}addDefaultProviders(){this.use(APIClientProvider,{apiClient:this.apiClient}),this.use(import_react_i18next.I18nextProvider,{i18n:this.i18n}),this.use(GlobalThemeProvider),this.use(CSSVariableProvider),this.use(AppSchemaComponentProvider,{designable:this.options.designable,appName:this.name,components:this.components,scope:this.scopes}),this.use(AntdAppProvider),this.use(DataSourceApplicationProvider,{dataSourceManager:this.dataSourceManager}),this.use(OpenModeProvider),this.flowEngine.context.defineProperty("app",{value:this}),this.flowEngine.context.defineProperty("routeRepository",{value:new RouteRepository(this.flowEngine.context)}),this.flowEngine.context.defineProperty("appInfo",{get:()=>L(this,null,function*(){var o;return((o=(yield this.apiClient.request({url:"app:getInfo"})).data)==null?void 0:o.data)||{}})}),this.flowEngine.context.defineProperty("api",{value:this.apiClient}),this.flowEngine.context.defineProperty("i18n",{value:this.i18n}),this.flowEngine.context.defineProperty("router",{get:()=>this.router.router,cache:!1}),this.flowEngine.context.defineProperty("documentTitle",{get:()=>document.title}),this.flowEngine.context.defineProperty("route",{get:()=>{},observable:!0}),this.flowEngine.context.defineProperty("location",{get:()=>location,observable:!0}),this.use(import_flow_engine.FlowEngineProvider,{engine:this.flowEngine}),this.use(import_flow_engine.FlowEngineGlobalsContextProvider);const t=(0,import_reactive.observable)({version:void 0});this.flowEngine.context.defineProperty("pageInfo",{value:t})}addReactRouterComponents(){this.addComponents({Link:import_react_router_dom.Link,Navigate:import_react_router_dom.Navigate,NavLink:import_react_router_dom.NavLink})}addRoutes(){this.router.add("not-found",{path:"*",Component:this.components.AppNotFound})}getOptions(){return this.options}getName(){return(0,import_sdk.getSubAppName)(this.getPublicPath())||null}getPublicPath(){let t=this.options.publicPath||"/";return t.endsWith("/")||(t+="/"),t}getApiUrl(t=""){let o=this.apiClient.axios.defaults.baseURL;if(!o.startsWith("http://")&&!o.startsWith("https://")){const{protocol:r,host:i}=window.location;o=`${r}//${i}${o}`}return o.replace(/\/$/g,"")+"/"+t.replace(/^\//g,"")}getRouteUrl(t){return this.getPublicPath()+t.replace(/^\//g,"")}getHref(t){const o=this.name;return o&&o!=="main"?this.getPublicPath()+"apps/"+o+"/"+t.replace(/^\//g,""):this.getPublicPath()+t.replace(/^\//g,"")}getCollectionManager(t){var o;return(o=this.dataSourceManager.getDataSource(t))==null?void 0:o.collectionManager}getComposeProviders(){const t=compose(...this.providers)(BlankComponent);return t.displayName="Providers",t}use(t,o){return this.addProvider(t,o)}addProvider(t,o){return this.providers.push([t,o])}addProviders(t){t.forEach(o=>{Array.isArray(o)?this.addProvider(o[0],o[1]):this.addProvider(o)})}load(){return L(this,null,function*(){var t,o,r,i,n;try{this.loading=!0,yield this.loadWebSocket(),yield this.pm.load(),yield this.flowEngine.flowSettings.load()}catch(l){this.hasLoadError=!0,((i=(r=(o=(t=l==null?void 0:l.response)==null?void 0:t.data)==null?void 0:o.errors)==null?void 0:r[0])==null?void 0:i.code)==="BLOCKED_IP"&&(this.hasLoadError=!1),this.ws.enabled&&(yield new Promise(a=>{setTimeout(()=>a(null),1e3)})),this.error=x({code:"LOAD_ERROR"},(n=this.apiClient.toErrMessages(l))==null?void 0:n[0]),console.error(l,this.error)}this.loading=!1,this.updateFavicon()})}loadWebSocket(){return L(this,null,function*(){this.eventBus.addEventListener("ws:message:authorized",()=>{this.setWsAuthorized(!0)}),this.ws.on("message",t=>{var o,r,i;const n=JSON.parse(t.data);if((o=n==null?void 0:n.payload)!=null&&o.refresh){window.location.reload();return}if(n.type==="notification"){this.notification[((r=n.payload)==null?void 0:r.type)||"info"]({message:(i=n.payload)==null?void 0:i.message});return}if(n.type==="maintaining"&&n.payload.code!=="APP_RUNNING")this.setMaintaining(!0),this.error=n.payload;else{this.hasLoadError&&window.location.reload(),this.setMaintaining(!1),this.maintained=!0,this.error=null;const l=n.type;if(!l)return;const a=`ws:message:${l}`;this.eventBus.dispatchEvent(new CustomEvent(a,{detail:n.payload}))}}),this.ws.on("serverDown",()=>{this.maintaining=!0,this.maintained=!1}),this.ws.on("open",()=>{const t=this.apiClient.auth.token;t&&this.setTokenInWebSocket({token:t,authenticator:this.apiClient.auth.getAuthenticator()})}),this.ws.connect()})}getComponent(t,o=!0){const r=i=>o&&console.error(i);if(!t){r(`getComponent called with ${t}`);return}if(typeof t=="function")return t;if(typeof t=="string"){const i=(0,import_get.default)(this.components,t);if(!i){r(`Component ${t} not found`);return}return i}r(`Component ${t} should be a string or a React component`)}renderComponent(t,o,r){return import_react2.default.createElement(this.getComponent(t),o,r)}addComponent(t,o){const r=o||t.displayName||t.name;if(!r){console.error("Component must have a displayName or pass name as second argument");return}(0,import_set.default)(this.components,r,t)}addComponents(t){Object.keys(t).forEach(o=>{this.addComponent(t[o],o)})}addScopes(t){this.scopes=(0,import_merge.default)(this.scopes,t)}getRootComponent(){return({children:t})=>(0,import_jsx_runtime.jsx)(AppComponent,{app:this,children:t})}mount(t){const o=normalizeContainer(t);if(!o)return;const r=this.getRootComponent(),i=(0,import_client3.createRoot)(o);return i.render((0,import_jsx_runtime.jsx)(r,{})),i}addFieldInterfaces(t=[]){return this.dataSourceManager.collectionFieldInterfaceManager.addFieldInterfaces(t)}addFieldInterfaceComponentOption(t,o){return this.dataSourceManager.collectionFieldInterfaceManager.addFieldInterfaceComponentOption(t,o)}addFieldInterfaceOperator(t,o){return this.dataSourceManager.collectionFieldInterfaceManager.addFieldInterfaceOperator(t,o)}addGlobalVar(t,o,r){(0,import_set.default)(this.globalVars,t,o),r&&(0,import_set.default)(this.globalVarCtxs,t,r)}getGlobalVar(t){return(0,import_get.default)(this.globalVars,t)}getGlobalVarCtx(t){return(0,import_get.default)(this.globalVarCtxs,t)}addUserCenterSettingsItem(t){const o=t.useVisible||(()=>!0),r=()=>{const{allow:i}=useAclSnippets();return o()?t.aclSnippet?i(t.aclSnippet):!0:!1};this.schemaSettingsManager.addItem("userCenterSettings",t.name,A(x({},t),{useVisible:r}))}registerVariable(t){if(this.variables.find(o=>o.name===t.name)){console.warn(`Variable ${t.name} already registered`);return}this.variables.push(t)}getVariables(){return this.variables}setAppsComponent({Component:t}){this.apps.Component=t}}function getNewSchema(e){const{fieldSchema:t,schemaKey:o,parentSchemaKey:r,value:i,valueKeys:n}=e;if(o)import_lodash.default.set(t,o,i);else if(r){if(i==null)return t;typeof i=="object"?Object.keys(i).forEach(l=>{n&&!n.includes(l)||import_lodash.default.set(t,`${r}.${l}`,i[l])}):console.error("value must be object")}return t}const useHookDefault=e=>e,useSchemaByType=(e="common")=>{const t=(0,import_react.useFieldSchema)(),{fieldSchema:o}=useColumnSchema$1()||{};return e==="field"&&o||t};function createModalSettingsItem(e){const{name:t,parentSchemaKey:o,valueKeys:r,schema:i,title:n,useSubmit:l=useHookDefault,useVisible:a,defaultValue:c,useDefaultValue:u=useHookDefault,width:d,type:m="common"}=e;return{name:t,type:"actionModal",useVisible:a,useComponentProps(){const p=useSchemaByType(m),{dn:h}=useDesignable(),g=u(c),f=o?import_lodash.default.get(p,o):void 0,_=useCompile(),{t:v}=(0,import_react_i18next.useTranslation)(),y=l(),{fieldSchema:C}=useColumnSchema$1()||{};return{title:typeof n=="function"?n(v):_(n),width:d,schema:i(x(x({},g),f)),onSubmit(b){const F=getNewSchema({fieldSchema:p,parentSchemaKey:o,value:b,valueKeys:r});return C?(h.emit("patch",{schema:F}),h.refresh()):h.deepMerge(F),y==null?void 0:y(b)}}}}}const createSelectSchemaSettingsItem=e=>{const{name:t,title:o,options:r,useOptions:i=useHookDefault,schemaKey:n,useVisible:l,type:a="common",defaultValue:c,useDefaultValue:u=useHookDefault}=e;return{name:t,type:"select",useVisible:l,useComponentProps(){const d=useSchemaByType(a),{fieldSchema:m}=useColumnSchema$1()||{},{dn:p}=useDesignable(),h=i(r),g=u(c),f=useCompile(),{t:_}=(0,import_react_i18next.useTranslation)();return{title:typeof o=="function"?o(_):f(o),options:h,value:import_lodash.default.get(d,n,g),onChange(v){const y=getNewSchema({fieldSchema:d,schemaKey:n,value:v});m?(p.emit("patch",{schema:y}),p.refresh()):p.deepMerge(y)}}}}};function createSwitchSettingsItem(e){const{name:t,useVisible:o,schemaKey:r,title:i,type:n="common",defaultValue:l,useDefaultValue:a=useHookDefault,useComponentProps:c}=e;return{name:t,useVisible:o,type:"switch",useComponentProps(){const u=useSchemaByType(n),{dn:d}=useDesignable(),m=a(l),p=useCompile(),{t:h}=(0,import_react_i18next.useTranslation)(),{fieldSchema:g}=useColumnSchema$1()||{},f=c==null?void 0:c();return{title:typeof i=="function"?i(h):p(i),checked:(f==null?void 0:f.checked)===void 0?!!import_lodash.default.get(u,r,m):f==null?void 0:f.checked,onChange(_){var v;(v=f==null?void 0:f.onChange)==null||v.call(f,_);const y=getNewSchema({fieldSchema:u,schemaKey:r,value:_});g?(d.emit("patch",{schema:y}),d.refresh()):d.deepMerge(y)}}}}}function createTextSettingsItem(e){const{name:t,useVisible:o,title:r,useTextClick:i=useHookDefault}=e;return{name:t,type:"item",useVisible:o,useComponentProps(){const n=useCompile(),{t:l}=(0,import_react_i18next.useTranslation)(),a=i();return{title:typeof r=="function"?r(l):n(r),onClick:a}}}}const linkageAction$1=(e,t)=>L(void 0,[e,t],function*({operator:o,condition:r,variables:i,localVariables:n,conditionType:l,displayResult:a},c){switch(o){case"visible":return(yield conditionAnalyses({ruleGroup:r,variables:i,localVariables:n,conditionType:l},c))&&a.push("visible"),a;case"hidden":return(yield conditionAnalyses({ruleGroup:r,variables:i,localVariables:n,conditionType:l},c))&&a.push("hidden"),a;default:return null}}),useReactiveLinkageEffect=(e,t,o,r)=>{const i=useApp().jsonLogic,[n,l]=(0,import_react2.useState)(null),a=useCollectionRecord();return(0,import_react2.useEffect)(()=>{L(void 0,null,function*(){const c=[];for(const u of e.filter(d=>!d.disabled))for(const d of u.actions||[])yield linkageAction$1({operator:d.operator,condition:u.condition,variables:t,localVariables:o,conditionType:u.conditionType,displayResult:c},i);l(c)})},[e,r,a]),n};function forEachLinkageRule(e,t){e.forEach(o=>{var r;(r=o.actions)==null||r.forEach(i=>{t(i,o)})})}const getLinkageRules$2=e=>{if(!e)return[];let t=(e==null?void 0:e["x-block-linkage-rules"])||[];return e.mapProperties(o=>{o["x-block-linkage-rules"]&&(t=o["x-block-linkage-rules"])}),t==null?void 0:t.filter(o=>!o.disabled)},BlockLinkageRuleProvider=e=>{const t=(0,import_react.useFieldSchema)(),o=useVariables$1(),r=useLocalVariables$1(),{designable:i}=useDesignable(),n=(0,import_react.useForm)(),l=(0,import_react2.useMemo)(()=>getLinkageRules$2(t),[t]),[a,c]=(0,import_react2.useState)(null),u=useReactiveLinkageEffect(l,o,r,a),d=(t==null?void 0:t["x-decorator"])==="FormItem"&&!n.readPretty&&l.length;return(0,import_react2.useEffect)(()=>{if(d){const m=(0,import_shared.uid)();return setTimeout(()=>{n.addEffects(m,()=>{forEachLinkageRule(l,(p,h)=>(0,import_reactive.reaction)(()=>{const g=getVariableValuesInCondition({linkageRules:l,localVariables:r}),f=getVariableValuesInExpression({action:p,localVariables:r});return[g,f].map(_=>JSON.stringify(_)).join(",")},()=>{c((0,import_shared.uid)())},{fireImmediately:!0,equals:import_lodash.isEqual}))})}),()=>{n.removeEffects(m)}}},[l,d]),l.length?u===null?null:(0,import_lodash.last)(u)==="hidden"?i?(0,import_jsx_runtime.jsx)("div",{style:{opacity:.3},children:e.children}):null:e.children:e.children},DataBlockContext=(0,import_react2.createContext)({});DataBlockContext.displayName="DataBlockContext";const DataBlockResourceContext=(0,import_react2.createContext)(null),RerenderDataBlockProvider=({children:e})=>{const[t,o]=import_react2.default.useState(!1),r=(0,import_react2.useMemo)(()=>({rerenderDataBlock:()=>{o(!0),setTimeout(()=>{o(!1)})}}),[]);return t?null:(0,import_jsx_runtime.jsx)(DataBlockResourceContext.Provider,{value:r,children:e})},AssociationOrCollectionProvider=e=>{const{collection:t,association:o,allowNull:r=!1}=e,i=(0,import_react2.useMemo)(()=>o?{Component:AssociationProvider,name:o}:{Component:SanitizedCollectionProvider,name:t},[t,o]);return(0,import_jsx_runtime.jsx)(i.Component,{name:i.name,allowNull:r,children:e.children})},DataBlockProvider=withDynamicSchemaProps(import_react2.default.memo(e=>{const t=e,{collection:o,association:r,dataSource:i,children:n,hidden:l}=t,a=te(t,["collection","association","dataSource","children","hidden"]),{dn:c}=useDesignable(),u=(0,import_react.useFieldSchema)();return l?null:(0,import_jsx_runtime.jsx)(VariableScope,{scopeId:u==null?void 0:u["x-uid"],type:"dataBlock",children:(0,import_jsx_runtime.jsx)(DataBlockContext.Provider,{value:{dn:c,props:A(x({},a),{collection:o,association:r,dataSource:i})},children:(0,import_jsx_runtime.jsx)(CollectionManagerProvider,{dataSource:i,children:(0,import_jsx_runtime.jsx)(AssociationOrCollectionProvider,{collection:o,association:r,children:(0,import_jsx_runtime.jsx)(ACLCollectionProvider,{children:(0,import_jsx_runtime.jsx)(BlockLinkageRuleProvider,{children:(0,import_jsx_runtime.jsx)(DataBlockResourceProvider,{children:(0,import_jsx_runtime.jsx)(BlockRequestProvider,{children:(0,import_jsx_runtime.jsx)(DataBlockCollector,{params:e.params,children:(0,import_jsx_runtime.jsx)(RerenderDataBlockProvider,{children:n})})})})})})})})})})}),{displayName:"DataBlockProvider"}),useDataBlock=()=>{const e=(0,import_react2.useContext)(DataBlockContext);if(!e)throw new Error("useDataBlock() must be used within a DataBlockProvider");return e},useDataBlockProps=()=>useDataBlock().props,useRerenderDataBlock=()=>{const e=(0,import_react2.useContext)(DataBlockResourceContext);if(!e)throw new Error("useRerenderDataBlock() must be used within a DataBlockProvider");return e},BlockRequestRefContext=(0,import_react2.createContext)(null);BlockRequestRefContext.displayName="BlockRequestRefContext";const BlockRequestLoadingContext=(0,import_react2.createContext)(!1);BlockRequestLoadingContext.displayName="BlockRequestLoadingContext";const BlockRequestDataContext=(0,import_react2.createContext)(null);BlockRequestDataContext.displayName="BlockRequestDataContext";function useRecordRequest(e){const t=useDataLoadingMode(),o=useDataBlockResource(),{action:r,params:i={},record:n,requestService:l,requestOptions:a,sourceId:c,association:u,parentRecord:d}=e,m=useAPIClient(),p=useDataBlockProps(),h=useDataSourceHeaders(p.dataSource),g=useSourceKey(u),[f,_]=(0,import_react2.useMemo)(()=>[JSON.stringify(i),JSON.stringify(n)],[i,n]),{isBlockTemplate:v,templateFinished:y}=useTemplateBlockContext(),C=S=>{var P;if(n)return Promise.resolve({data:n});if(!r)throw new Error("[nocobase]: The 'action' parameter is missing in the 'DataBlockRequestProvider' component");if(r==="get"&&import_lodash.default.isNil(i.filterByTk))return console.warn('[nocobase]: The "filterByTk" parameter is missing in the "DataBlockRequestProvider" component');const j=i.filterByTk===void 0?import_lodash.default.omit(i,"filterByTk"):i,I=x(x({},j),S);return(P=o[r])==null?void 0:P.call(o,I).then(T=>T.data)},b=(...S)=>v!=null&&v()&&!y?null:(l||C)(...S),F=useRequest((...S)=>L(this,null,function*(){const[P,j]=yield Promise.all([b(...S),requestParentRecordData({sourceId:c,association:u,parentRecord:d,api:m,headers:h,sourceKey:g})]);return P&&(P.parentRecord=j==null?void 0:j.data),P}),A(x({},a),{manual:t==="manual",ready:!!r,refreshDeps:[r,f,_,o,u,d,c,y]}));return F._defaultParams=i,F}function requestParentRecordData(e){return L(this,arguments,function*({sourceId:t,association:o,parentRecord:r,api:i,headers:n,sourceKey:l}){if(r)return Promise.resolve({data:r});if(!o||!l||!t)return Promise.resolve({data:void 0});const a=`${o.split(".")[0]}:get?filter[${l}]=${t}`;return(yield i.request({url:a,headers:n})).data})}const BlockRequestContextProvider=e=>{var t,o,r,i,n,l;const a=(0,import_react2.useRef)(e.recordRequest),c=(0,import_react2.useRef)((t=e.recordRequest)==null?void 0:t.data),{active:u}=useKeepAlive(),d=useLocationSearch(),m=(0,import_react2.useRef)(u),p=(0,import_react2.useRef)(d),h=(0,import_react2.useDeferredValue)(u),g=useDataBlockProps(),f=m.current;return h&&!f&&p.current===d&&(import_lodash.default.isNil(g.dataLoadingMode)||g.dataLoadingMode==="auto")&&((o=e.recordRequest)==null||o.refresh()),h&&f&&!((r=e.recordRequest)!=null&&r.loading)&&!import_lodash.default.isEqual(c.current,(i=e.recordRequest)==null?void 0:i.data)&&(c.current=(n=e.recordRequest)==null?void 0:n.data),u&&f&&(p.current=d),h!==f&&(m.current=h),a.current=e.recordRequest,(0,import_jsx_runtime.jsx)(BlockRequestRefContext.Provider,{value:a,children:(0,import_jsx_runtime.jsx)(BlockRequestLoadingContext.Provider,{value:(l=e.recordRequest)==null?void 0:l.loading,children:(0,import_jsx_runtime.jsx)(BlockRequestDataContext.Provider,{value:c.current,children:e.children})})})},BlockRequestProvider=import_react2.default.memo(({children:e})=>{var t,o;const r=useDataBlockProps(),{action:i,filterByTk:n,sourceId:l,params:a=EMPTY_OBJECT,association:c,collection:u,record:d,parentRecord:m,requestOptions:p,requestService:h}=r,g=(0,import_react2.useMemo)(()=>A(x({},a),{filterByTk:n||a.filterByTk}),[n,a]),f=useRecordRequest({action:i,sourceId:l,record:d,association:c,collection:u,requestOptions:p,requestService:h,params:g,parentRecord:m}),_=(t=f.data)==null?void 0:t.parentRecord,v=(0,import_react2.useMemo)(()=>_&&new CollectionRecord({isNew:!1,data:_ instanceof CollectionRecord?_.data:_}),[_]);return(0,import_jsx_runtime.jsx)(BlockRequestContextProvider,{recordRequest:f,children:i!=="list"?(0,import_jsx_runtime.jsx)(CollectionRecordProvider,{isNew:i==null,record:((o=f.data)==null?void 0:o.data)||d,parentRecord:v||m,children:e}):(0,import_jsx_runtime.jsx)(CollectionRecordProvider,{isNew:!1,record:null,parentRecord:v||m,children:e})})});BlockRequestProvider.displayName="DataBlockRequestProvider";const useDataBlockRequest=()=>{const e=(0,import_react2.useContext)(BlockRequestRefContext),t=(0,import_react2.useContext)(BlockRequestLoadingContext),o=(0,import_react2.useContext)(BlockRequestDataContext);return(0,import_react2.useMemo)(()=>e?A(x({},e.current),{loading:t,data:o}):null,[e,o,t])},useDataBlockRequestGetter=()=>{const e=(0,import_react2.useContext)(BlockRequestRefContext);return(0,import_react2.useMemo)(()=>({getDataBlockRequest:()=>e?e.current:null}),[e])},useDataBlockRequestData=()=>(0,import_react2.useContext)(BlockRequestDataContext),FilterContext$1=(0,import_react2.createContext)(null);FilterContext$1.displayName="FilterContext";const FilterBlockProvider=import_react2.default.memo(({children:e})=>{const t=import_react2.default.useRef([]),o=(0,import_react2.useCallback)(n=>{typeof n=="function"?t.current=n(t.current):t.current=n},[]),r=(0,import_react2.useCallback)(()=>t.current,[]),i=(0,import_react2.useMemo)(()=>({getDataBlocks:r,setDataBlocks:o}),[r,o]);return(0,import_jsx_runtime.jsx)(FilterContext$1.Provider,{value:i,children:e})});FilterBlockProvider.displayName="FilterBlockProvider";const DataBlockCollector=({children:e,params:t})=>{const o=useCollection(),{recordDataBlocks:r}=useFilterBlock(),{getDataBlockRequest:i}=useDataBlockRequestGetter(),n=(0,import_react.useField)(),l=(0,import_react.useFieldSchema)(),a=useAssociatedFields(),c=(0,import_react2.useRef)(null),u=useDataLoadingMode(),d=n&&n.decoratorType!=="FilterFormBlockProvider"&&n.decoratorType!=="FormBlockProvider"&&n.decoratorProps.blockType!=="filter",m=(0,import_react2.useCallback)(()=>{const p=i();r({uid:l["x-uid"],title:n.componentProps.title,doFilter:p.runAsync,collection:o,associatedFields:a,foreignKeyFields:o==null?void 0:o.getFields("isForeignKey"),defaultFilter:(t==null?void 0:t.filter)||{},service:p,dom:c.current,dataLoadingMode:u,clearFilter(h){var g,f,_;const v=((g=this.service.params)==null?void 0:g[0])||{},y=((_=(f=this.service.params)==null?void 0:f[1])==null?void 0:_.filters)||{};delete y[h];const C=mergeFilter([...Object.values(y).map(b=>removeNullCondition(b)),(t==null?void 0:t.filter)||{}]);this.service.run(A(x({},v),{page:1,filter:C}),{filters:y})},clearData(){this.service.mutate(void 0)},clearSelection(){var h,g;n&&((g=(h=n.data)==null?void 0:h.clearSelectedRowKeys)==null||g.call(h))},highlightBlock(){var h;const g=c.current;if(!g)return;const f=g.querySelector(".ant-nb-schema-toolbar");f&&f.classList.remove("hidden"),g.style.boxShadow="0 3px 12px rgba(0, 0, 0, 0.15)",g.style.transition="box-shadow 0.3s ease, transform 0.2s ease",(h=g.scrollIntoView)==null||h.call(g,{behavior:"smooth",block:"start"})},unhighlightBlock(){const h=c.current;if(!h)return;const g=h.querySelector(".ant-nb-schema-toolbar");g&&g.classList.add("hidden"),h.style.boxShadow="none",h.style.transition="box-shadow 0.3s ease, transform 0.2s ease"}})},[a,o,u,l,t==null?void 0:t.filter,r,i,n]);return(0,import_react2.useEffect)(()=>{d&&m()},[m,d]),(0,import_jsx_runtime.jsx)("div",{ref:c,children:e})},useFilterBlock=()=>{const e=import_react2.default.useContext(FilterContext$1),t=useAllDataBlocks(),o=(0,import_react2.useCallback)(()=>(e==null?void 0:e.getDataBlocks())||[],[e]),r=(0,import_react2.useCallback)(n=>{t.recordDataBlocks(n);const l=e==null?void 0:e.getDataBlocks().find(a=>a.uid===n.uid);if(l){Object.assign(l,n);return}e==null||e.setDataBlocks(a=>[...a,n])},[e]),i=(0,import_react2.useCallback)(n=>{t.removeDataBlock(n),!(e!=null&&e.getDataBlocks().every(l=>l.uid!==n))&&(e==null||e.setDataBlocks(l=>l.filter(a=>a.uid!==n)))},[e]);return e?{recordDataBlocks:r,getDataBlocks:o,removeDataBlock:i,inProvider:!0}:{inProvider:!1,recordDataBlocks:import_lodash.default.noop,getDataBlocks:o,removeDataBlock:import_lodash.default.noop}},MarkdownVoidDesigner=()=>{const e=(0,import_react.useField)(),{t}=(0,import_react_i18next.useTranslation)();return(0,import_jsx_runtime.jsxs)(GeneralSchemaDesigner,{children:[(0,import_jsx_runtime.jsx)(SchemaSettingsItem,{title:t("Edit markdown"),onClick:()=>{e.editable=!0}}),(0,import_jsx_runtime.jsx)(SchemaSettingsRenderEngine,{}),(0,import_jsx_runtime.jsx)(SchemaSettingsBlockHeightItem,{}),(0,import_jsx_runtime.jsx)(SchemaSettingsDivider,{}),(0,import_jsx_runtime.jsx)(SchemaSettingsRemove,{removeParentsIfNoChildren:!0,breakRemoveOn:{"x-component":"Grid"}})]})};class QRCodeWebComponent extends HTMLElement{constructor(){super(),R(this,"root"),this.attachShadow({mode:"open"}),this.root=null}getProps(t,o={}){return[...t].filter(r=>r.name!=="style").map(r=>this.convert(o,r.name,r.value)).reduce((r,i)=>A(x({},r),{[i.name]:i.value}),{})}convert(t,o,r){const i=Object.keys(t).find(l=>l.toLowerCase()==o);let n=r;return r==="true"||r==="false"?n=r=="true":!isNaN(r)&&r!==""?n=+r:/^{.*}/.exec(r)&&(n=JSON.parse(r)),{name:i||o,value:n}}connectedCallback(){const t=x({},this.getProps(this.attributes));this.root=(0,import_client3.createRoot)(this.shadowRoot),this.root.render((0,import_jsx_runtime.jsx)(import_antd.QRCode,x({},t)))}disconnectedCallback(){this.root.unmount()}}function registerQrcodeWebComponent(){customElements.get("qr-code")||customElements.define("qr-code",QRCodeWebComponent)}const useStyles$a=genStyleHook("nb-markdown",(e,{isDarkTheme:t})=>{const{componentCls:o}=e,r=new import_tinycolor.TinyColor(e.colorFillAlter).onBackground(e.colorBgContainer).toHexShortString(),i={lineHeight:"inherit","&.nb-markdown-default":{"pre code.hljs":{display:"block",overflowX:"auto",padding:"1em"},"code.hljs":{padding:"3px 5px"},":not(pre) code":{padding:"2px 5px",color:"#d56161",background:e.colorFillQuaternary,border:`1px solid ${e.colorBorder}`,borderRadius:e.borderRadiusSM},blockquote:{borderLeft:"4px solid #ccc",paddingLeft:"20px",marginLeft:"0",color:"#666",fontStyle:"italic"},img:{maxWidth:"100%"},".hljs":{background:"#f8f8f8",color:"#444"},".hljs-comment":{color:"#697070"},".hljs-punctuation,.hljs-tag":{color:"#444a"},".hljs-tag .hljs-attr,.hljs-tag .hljs-name":{color:"#444"},".hljs-attribute,.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-name,.hljs-selector-tag":{fontWeight:700},".hljs-deletion,.hljs-number,.hljs-quote,.hljs-selector-class,.hljs-selector-id,.hljs-string,.hljs-template-tag,.hljs-type":{color:"#800"},".hljs-section,.hljs-title":{color:"#800",fontWeight:700},".hljs-link,.hljs-operator,.hljs-regexp,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-symbol,.hljs-template-variable,.hljs-variable":{color:"#ab5656"},".hljs-literal":{color:"#695"},".hljs-addition,.hljs-built_in,.hljs-bullet,.hljs-code":{color:"#397300"},".hljs-meta":{color:"#1f7199"},".hljs-meta .hljs-string":{color:"#38a"},".hljs-emphasis":{fontStyle:"italic"},".hljs-strong":{fontWeight:700}},"&.nb-markdown-table":{table:{borderCollapse:"collapse",width:"100%",fontFamily:"Arial, sans-serif",marginBottom:"1.5rem"},"th, td":{borderBottom:`1px solid ${e.colorBorderSecondary}`,padding:`${e.paddingContentVertical}px ${e.paddingContentHorizontal}px`,textAlign:"left"},th:{backgroundColor:r,fontWeight:"bold",color:e.colorText},"tr:hover":{backgroundColor:e.colorFillTertiary},"tr:last-child td":{borderBottom:"none"},"tr:first-child th":{borderTop:"none"}}},n={"&.nb-markdown-default":{"pre code.hljs":{display:"block",overflowX:"auto",padding:"1em"},"code.hljs":{padding:"3px 5px"},":not(pre) code":{padding:"2px 5px",color:"#d56161",background:e.colorFillQuaternary,border:`1px solid ${e.colorBorder}`,borderRadius:e.borderRadiusSM},".hljs":{color:"#adbac7",background:"#22272e"},".hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_":{color:"#f47067"},".hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_":{color:"#dcbdfb"},".hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable":{color:"#6cb6ff"},".hljs-meta .hljs-string,.hljs-regexp,.hljs-string":{color:"#96d0ff"},".hljs-built_in,.hljs-symbol":{color:"#f69d50"},".hljs-code,.hljs-comment,.hljs-formula":{color:"#768390"},".hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag":{color:"#8ddb8c"},".hljs-subst":{color:"#adbac7"},".hljs-section":{color:"#316dca",fontWeight:700},".hljs-bullet":{color:"#eac55f"},".hljs-emphasis":{color:"#adbac7",fontStyle:"italic"},".hljs-strong":{color:"#adbac7",fontWeight:700},".hljs-addition":{color:"#b4f1b4",backgroundColor:"#1b4721"},".hljs-deletion":{color:"#ffd8d3",backgroundColor:"#78191b"}},"&.nb-markdown-table":{table:{borderCollapse:"collapse",width:"100%",fontFamily:"Arial, sans-serif",marginBottom:"1.5rem"},"th, td":{borderBottom:`1px solid ${e.colorBorderSecondary}`,padding:`${e.paddingContentVertical}px ${e.paddingContentHorizontal}px`,textAlign:"left"},th:{backgroundColor:r,fontWeight:"bold",color:e.colorText},"tr:hover":{backgroundColor:e.colorFillTertiary},"tr:last-child td":{borderBottom:"none"},"tr:first-child th":{borderTop:"none"}}};return{[o]:x({lineHeight:e.lineHeight,"& > *:last-child":{marginBottom:"0"},".ant-description-textarea, .ant-description-input":{lineHeight:e.lineHeight},".field-interface-datetime":{minWidth:"100px"}},t?n:i)}}),parseMarkdown$1=import_lodash.default.memoize(e=>L(void 0,null,function*(){return e&&(yield Promise.resolve().then(()=>require("./md-oH2RssNY-IQIU5F3r.js"))).default.render(e)}));function useParseMarkdown$1(e){const[t,o]=(0,import_react2.useState)(""),[r,i]=(0,import_react2.useState)(!0);return(0,import_react2.useEffect)(()=>{i(!0),parseMarkdown$1(e).then(n=>{o(n),i(!1)}).catch(n=>console.log(n))},[e]),{html:t,loading:r}}function convertToText$2(e){const t=e;let o=document.createElement("div");o.innerHTML=t;const r=o.innerText;return o=null,(r==null?void 0:r.replace(/[\n\r]/g,""))||""}const MarkdownEditor=e=>{const{scope:t}=e,{t:o,i18n:r}=(0,import_react_i18next.useTranslation)(),[i,n]=(0,import_react2.useState)(e.defaultValue),l=(0,import_react2.useRef)(null),[a,c]=(0,import_react2.useState)([]),[u,d]=(0,import_react2.useState)(null);(0,import_react2.useEffect)(()=>{c(t)},[t]),(0,import_react2.useEffect)(()=>{var p,h;const g=(h=(p=l==null?void 0:l.current)==null?void 0:p.resizableTextArea)==null?void 0:h.textArea;u&&g&&g.setSelectionRange(u,u)},[u]);const m=(0,import_react2.useCallback)(function(p){var h;const g=p.filter(F=>!!F.trim()),{current:f}=l,_=(h=f==null?void 0:f.resizableTextArea)==null?void 0:h.textArea;if(!_||!g)return;f.focus();const v=`{{${p.join(".")}}}`,y=_.selectionStart||0,C=i.substring(0,y)+v+i.substring(y,i.length),b=y+v.length;n(C),d(b)},[i]);return(0,import_jsx_runtime.jsxs)("div",{className:"mb-markdown",style:{position:"relative",paddingTop:"20px"},children:[(0,import_jsx_runtime.jsx)(import_antd.Input.TextArea,A(x({ref:l,autoSize:{minRows:3}},e),{value:i,onChange:p=>{n(p.target.value)},style:{paddingBottom:"40px"}})),(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsxs)("span",{style:{marginLeft:".25em"},className:"ant-formily-item-extra",children:[o("Syntax references"),":"]}),(0,import_jsx_runtime.jsx)("a",{href:`https://${r.language==="zh-CN"?"docs-cn":"docs"}.nocobase.com/handbook/template-handlebars`,target:"_blank",rel:"noreferrer",children:"Handlebars.js"})]}),(0,import_jsx_runtime.jsx)("div",{style:{position:"absolute",top:21,right:1},children:(0,import_jsx_runtime.jsx)(VariableSelect,{options:a,setOptions:c,onInsert:m})}),(0,import_jsx_runtime.jsxs)(import_antd.Space,{style:{position:"absolute",bottom:30,right:5},children:[(0,import_jsx_runtime.jsx)(import_antd.Button,{onClick:p=>{var h;(h=e.onCancel)==null||h.call(e,p)},children:o("Cancel")}),(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"primary",onClick:()=>{var p;(p=e.onSubmit)==null||p.call(e,i)},children:o("Save")})]})]})},useMarkdownHeight=()=>{const{token:e}=import_antd.theme.useToken(),t=useBlockHeight$2();if(t)return t-2*e.paddingLG};function extractNFormPaths(e){const t=/\{\{\$nForm\.([\w.]+)\}\}/g;return[...e.matchAll(t)].map(o=>o[1])}function getValuesByPaths(e,t){const o={};for(const r of t){const i=r.split(".");let n=e;for(const l of i)if(n&&typeof n=="object"&&l in n)n=n[l];else{n=void 0;break}o[r]=n}return o}const MarkdownVoidInner=withDynamicSchemaProps((0,import_react.observer)(e=>{const{isDarkTheme:t}=useGlobalTheme(),{componentCls:o,hashId:r}=useStyles$a({isDarkTheme:t}),{content:i,className:n}=e,l=(0,import_react.useField)(),a=(0,import_react.useFieldSchema)(),{dn:c}=useDesignable(),{onSave:u,onCancel:d,form:m}=e,p=useCollectionRecord(),[h,g]=(0,import_react2.useState)(""),f=useVariables$1(),_=useLocalVariables$1(),{engine:v}=(a==null?void 0:a["x-decorator-props"])||{},[y,C]=(0,import_react2.useState)(!1),{t:b,i18n:F}=(0,import_react_i18next.useTranslation)(),S=(0,import_react.useForm)(),P=extractNFormPaths(i),[j,I]=(0,import_react2.useState)(null);(0,import_react2.useEffect)(()=>{if(P.length>0){const D=(0,import_shared.uid)();return setTimeout(()=>{S.addEffects(D,()=>(0,import_reactive.reaction)(()=>{const w=getValuesByPaths(S.values,P);return JSON.stringify(w)},()=>{I((0,import_shared.uid)())},{fireImmediately:!0,equals:import_lodash.isEqual}))}),()=>{S.removeEffects(D)}}},[]),(0,import_react2.useEffect)(()=>{C(!0),L(void 0,null,function*(){setTimeout(()=>L(void 0,null,function*(){const D=yield getRenderContent(v,i,f,_,parseMarkdown$1,b);g(D)})),C(!1)})},[i,f,_,v,j]);const T=useMarkdownHeight(),N=useVariableOptions({collectionField:{uiSchema:a},form:m,record:p,uiSchema:a,noDisabled:!0});return(0,import_react2.useEffect)(()=>{registerQrcodeWebComponent()},[]),y?(0,import_jsx_runtime.jsx)(import_antd.Spin,{}):l!=null&&l.editable?(0,import_jsx_runtime.jsx)(MarkdownEditor,A(x({scope:N},e),{className:!0,defaultValue:i,onCancel:()=>{l.editable=!1,d==null||d()},onSubmit:D=>L(void 0,null,function*(){l.editable=!1,a["x-component-props"]!=null||(a["x-component-props"]={}),a["x-component-props"].content=D,l.componentProps.content=D,u==null||u(a),c.emit("patch",{schema:{"x-uid":a["x-uid"],"x-component-props":{content:D}}})})})):(0,import_jsx_runtime.jsx)("div",{className:(0,import_classnames.default)([o,r,"nb-markdown nb-markdown-default nb-markdown-table",n]),style:A(x({},e.style),{height:T||"100%",overflowY:T?"auto":"null"}),dangerouslySetInnerHTML:{__html:h}})}),{displayName:"MarkdownVoid"}),MarkdownVoid=e=>{const t=useFlag(),o=(0,import_react.useFieldSchema)();return(0,import_jsx_runtime.jsx)(VariableScope,{scopeId:o==null?void 0:o["x-uid"],type:"markdownBlock",children:(0,import_jsx_runtime.jsx)(FlagProvider,A(x({},t),{collectionField:!0,children:(0,import_jsx_runtime.jsx)(MarkdownVoidInner,x({},e))}))})};MarkdownVoid.Designer=MarkdownVoidDesigner;const Markdown$1=(0,import_react.connect)(import_antd.Input.TextArea,(0,import_react.mapProps)((e,t)=>A(x({autoSize:{maxRows:10,minRows:3}},e),{suffix:(0,import_jsx_runtime.jsx)("span",{children:t!=null&&t.loading||t!=null&&t.validating?(0,import_jsx_runtime.jsx)(import_icons.LoadingOutlined,{}):e.suffix})})),(0,import_react.mapReadPretty)(e=>(0,import_jsx_runtime.jsx)(MarkdownReadPretty,x({},e)))),MarkdownReadPretty=e=>{const{isDarkTheme:t}=useGlobalTheme(),{wrapSSR:o,hashId:r,componentCls:i}=useStyles$a({isDarkTheme:t}),{html:n="",loading:l}=useParseMarkdown$1(e.value),a=(0,import_react2.useMemo)(()=>convertToText$2(n),[n]);if(l)return o((0,import_jsx_runtime.jsx)(import_antd.Spin,{}));const c=(0,import_jsx_runtime.jsx)("div",{className:`${r} ${i} nb-markdown nb-markdown-default nb-markdown-table`,dangerouslySetInnerHTML:{__html:n}});return o((0,import_jsx_runtime.jsx)(ReadPretty$c.TextArea,A(x({},e),{autop:!1,text:a,value:c})))};Markdown$1.Void=MarkdownVoid;const BlockItemCardContext=(0,import_react2.createContext)({}),BlockItemCard$1=import_react2.default.forwardRef((e,t)=>{var o=e,{children:r}=o,i=te(o,["children"]);const{token:n}=useToken(),l=i,{title:a,description:c}=l,u=te(l,["title","description"]),d=(0,import_react2.useMemo)(()=>({marginBottom:n.marginBlock,height:"100%"}),[n.marginBlock]),[m,p]=(0,import_react2.useState)(0),h=(0,import_react2.useRef)(null),{t:g}=(0,import_react_i18next.useTranslation)(),f=(0,import_react.useFieldSchema)(),_=f==null?void 0:f["x-block-linkage-rules"];(0,import_react2.useEffect)(()=>{const C=setTimeout(()=>{if(h.current){const b=c?h.current.parentElement.parentElement.parentElement.offsetHeight:n.fontSizeLG*n.lineHeightLG+n.padding*2-1;p(b)}else m&&p(0)},500);return()=>clearTimeout(C)},[a,c]);const v=(a||c)&&(0,import_jsx_runtime.jsxs)("div",{ref:h,style:{padding:"8px 0px 8px"},children:[(0,import_jsx_runtime.jsxs)("span",{children:[" ",g(a,{ns:NAMESPACE_UI_SCHEMA})]}),c&&(0,import_jsx_runtime.jsx)(MarkdownReadPretty,{value:g(c,{ns:NAMESPACE_UI_SCHEMA}),style:{overflowWrap:"break-word",whiteSpace:"normal",fontWeight:400,color:n.colorTextDescription,borderRadius:"4px"}})]}),y=(0,import_jsx_runtime.jsx)(BlockItemCardContext.Provider,{value:{titleHeight:m},children:(0,import_jsx_runtime.jsx)(import_antd.Card,A(x({ref:t,variant:"borderless",style:d},u),{title:v,children:r}))});return _?(0,import_jsx_runtime.jsx)(BlockLinkageRuleProvider,{children:y}):y});BlockItemCard$1.displayName="BlockItemCard";const useBlockHeightProps=()=>{var e,t,o;const r=(0,import_react.useFieldSchema)(),i=getCardItemSchema(r),n=(e=useBlockTemplateContext())==null?void 0:e.fieldSchema,l=(0,import_react2.useMemo)(()=>getPageSchema(n||r),[]),{disablePageHeader:a,enablePageTabs:c,hidePageTitle:u}=(l==null?void 0:l["x-component-props"])||{},{titleHeight:d}=(0,import_react2.useContext)(BlockItemCardContext)||{},{allAccessRoutes:m}=useAllAccessDesktopRoutes(),p=useCurrentPageUid(),h=(0,import_react2.useMemo)(()=>findRouteBySchemaUid(p,m),[p,m]);return{heightProps:A(x({},i==null?void 0:i["x-component-props"]),{title:((t=i==null?void 0:i["x-component-props"])==null?void 0:t.title)||((o=i==null?void 0:i["x-component-props"])==null?void 0:o.description),disablePageHeader:a,enablePageTabs:(h==null?void 0:h.enableTabs)||c,hidePageTitle:u,titleHeight:d})}},getPageSchema=e=>e?e["x-component"]==="Page"?e:getPageSchema(e.parent):null,getCardItemSchema=e=>e?["BlockItem","CardItem"].includes(e["x-component"])?e:getCardItemSchema(e.parent):null,useDataBlockParentRecord=({association:e})=>{var t;const o=useCollectionRecordData(),r=useCollectionParentRecordData(),i=useCollectionManager(),n=useCollection();if(!e)return;const l=i.getCollection(e.split(".")[0]);return n.name===l.name||(t=n.getParentCollectionsName)!=null&&t.call(n).includes(l.name)?o:r},usePickActionProps$1=()=>{const e=(0,import_react.useForm)();return{onClick(){console.log("usePickActionProps",e.values)}}};function renderTemplate(e,t){const o=/\{\{\s*((\w+\.?)+)\s*\}\}/g;return e.replace(o,function(r,i){return(0,import_get.default)(t,i)||""})}function getFilteredFormValues(e){const t=import_lodash.default.cloneDeep(e.values),o=[];return e.query("*").forEach(r=>{r&&o.push(r)}),import_lodash.default.uniq(o.filter(r=>{var i,n;const l=((i=r.path)==null?void 0:i.segments)||[],a=l.length<=1?l.join("."):l.slice(0,-1).join(".");return((n=r==null?void 0:r.componentProps)==null?void 0:n.readOnlySubmit)&&!(0,import_get.default)(t,a)[r==null?void 0:r.componentProps.filterTargetKey]}).map(r=>{var i;const n=((i=r.path)==null?void 0:i.segments)||[];return n.length<=1?n.join("."):n.slice(0,-1).join(".")})).forEach((r,i)=>{(i!==0||r.includes("."))&&!t[r]&&import_lodash.default.unset(t,r)}),t}function getFormValues({filterByTk:e,field:t,form:o,fieldNames:r,getField:i,resource:n,actionFields:l}){if(e&&l){const a=Object.keys(o.values).filter(c=>{const u=i(c);return!l.includes(c)&&["hasOne","hasMany","belongsTo","belongsToMany"].includes(u==null?void 0:u.type)});return(0,import_omit.default)(x({},o.values),a)}return getFilteredFormValues(o)}function useCollectValuesToSubmit(e){const t=(0,import_react.useForm)(),o=e??t,r=useFilterByTk(),{field:i,resource:n}=useBlockRequestContext(),{fields:l,getField:a,getTreeParentField:c,name:u}=useCollection_deprecated(),d=l.map(v=>v.name),{fieldSchema:m}=useActionContext(),{getActiveFieldsName:p}=useFormActiveFields()||{},h=useVariables$1(),g=useLocalVariables$1({currentForm:o}),f=(0,import_react.useFieldSchema)(),_=useTreeParentRecord();return(0,import_react2.useCallback)(()=>L(this,null,function*(){var v,y,C,b;const{assignedValues:F={},overwriteValues:S}=(v=f==null?void 0:f["x-action-settings"])!=null?v:{},P=getFormValues({filterByTk:r,field:i,form:o,fieldNames:d,getField:a,resource:n,actionFields:(p==null?void 0:p("form"))||[]}),j={},I=Object.keys(F).map(T=>L(this,null,function*(){const N=F[T],D=a(T);if(isVariable$1(N)){const{value:w}=(yield h==null?void 0:h.parseVariable(N,g))||{};j[T]=transformVariableValue(w,{targetCollectionField:D})}else N!==""&&(j[T]=N)}));if(yield Promise.all(I),(y=m==null?void 0:m["x-component-props"])==null?void 0:y.addChild){const T=c();P[(C=T==null?void 0:T.name)!=null?C:"parent"]=_,P[(b=T==null?void 0:T.foreignKey)!=null?b:"parentId"]=_==null?void 0:_.id}return x(x(x({},P),S),j)}),[f,i,d,m,r,o,p,a,c,g,u,n,_,h])}const useCreateActionProps=()=>{var e;const t=useFilterByTk(),o=useCollectionRecord(),r=(0,import_react.useForm)(),{field:i,resource:n}=useBlockRequestContext(),{setVisible:l,setSubmitted:a,setFormValueChanged:c}=useActionContext(),u=useNavigateNoUpdate(),d=(0,import_react.useFieldSchema)(),m=(0,import_react.useField)(),p=useCompile(),{modal:h}=import_antd.App.useApp(),{t:g}=(0,import_react_i18next.useTranslation)(),{updateAssociationValues:f}=useFormBlockContext(),_=useCollectValuesToSubmit(),v=o.isNew?m.componentProps.saveMode||"create":"update",y=((e=m.componentProps.filterKeys)==null?void 0:e.checked)||[],C=useLocalVariables$1(),b=useVariables$1();return{onClick(){return L(this,null,function*(){var F,S;const{onSuccess:P,skipValidator:j,triggerWorkflows:I}=(F=d==null?void 0:d["x-action-settings"])!=null?F:{},{manualClose:T,redirecting:N,redirectTo:D,successMessage:w,actionAfterSuccess:k}=P||{};j||(yield r.submit());const B=yield _();m.data=i.data||{},m.data.loading=!0;try{const E=yield n[v]({values:B,filterKeys:y,filterByTk:t,triggerWorkflows:I!=null&&I.length?I.map(O=>[O.workflowKey,O.context].filter(Boolean).join("!")).join(","):void 0,updateAssociationValues:f});let M=D;if(D&&(M=yield getVariableValue(D,{variables:b,localVariables:[...C,{name:"$record",ctx:new Proxy((S=E==null?void 0:E.data)==null?void 0:S.data,{})}]})),(k==="previous"||!k&&N!==!0)&&(l==null||l(!1)),a==null||a(!0),c==null||c(!1),m.data.loading=!1,m.data.data=E,!w){import_antd.message.success(g("Saved successfully")),yield resetFormCorrectly(r),(N&&!k||k==="redirect")&&M&&((0,import_client.isURL)(M)?window.location.href=M:u(M));return}T?h.success({title:p(w),onOk:()=>L(this,null,function*(){yield resetFormCorrectly(r),(N&&!k||k==="redirect")&&M&&((0,import_client.isURL)(M)?window.location.href=M:u(M))})}):(import_antd.message.success(p(w)),yield resetFormCorrectly(r),(N&&!k||k==="redirect")&&M&&((0,import_client.isURL)(M)?window.location.href=M:u(M)))}catch{m.data.loading=!1}})}}},useAssociationCreateActionProps=()=>{var e;const t=(0,import_react.useForm)(),{field:o,resource:r,__parent:i}=useBlockRequestContext(),{setVisible:n,fieldSchema:l,setSubmitted:a}=useActionContext(),c=(0,import_react.useFieldSchema)(),u=(0,import_react.useField)(),{fields:d,getField:m,getTreeParentField:p,name:h}=useCollection_deprecated(),g=useCompile(),f=useFilterByTk(),_=useRecord(),v=useVariables$1(),y=useLocalVariables$1({currentForm:t}),{getActiveFieldsName:C}=useFormActiveFields()||{},b=u.componentProps.saveMode||"create",F=((e=u.componentProps.filterKeys)==null?void 0:e.checked)||[];return{onClick(){return L(this,null,function*(){var S,P,j,I,T,N;const D=d.map(U=>U.name),{assignedValues:w={},onSuccess:k,overwriteValues:B,skipValidator:E,triggerWorkflows:M}=(S=c==null?void 0:c["x-action-settings"])!=null?S:{},O=(P=l==null?void 0:l["x-component-props"])==null?void 0:P.addChild,{successMessage:V}=k||{},$={},q=Object.keys(w).map(U=>L(this,null,function*(){const K=w[U],W=m(U);if(isVariable$1(K)){const{value:Y}=(yield v==null?void 0:v.parseVariable(K,y))||{};$[U]=transformVariableValue(Y,{targetCollectionField:W})}else K!==""&&($[U]=K)}));yield Promise.all(q),E||(yield t.submit());const z=getFormValues({filterByTk:f,field:o,form:t,fieldNames:D,getField:m,resource:r,actionFields:(C==null?void 0:C("form"))||[]});if(O){const U=p();z[(j=U==null?void 0:U.name)!=null?j:"parent"]=_,z[(I=U==null?void 0:U.foreignKey)!=null?I:"parentId"]=_.id}u.data=o.data||{},u.data.loading=!0;try{const U=yield r[b]({values:x(x(x({},z),B),$),filterKeys:F,triggerWorkflows:M!=null&&M.length?M.map(K=>[K.workflowKey,K.context].filter(Boolean).join("!")).join(","):void 0});if(u.data.loading=!1,u.data.data=U,(N=(T=i==null?void 0:i.service)==null?void 0:T.refresh)==null||N.call(T),n==null||n(!1),a==null||a(!0),!V)return;import_antd.message.success(g(V))}catch{u.data.data=null,u.data.loading=!1}})}}},findFilterTargets=e=>{for(;e;){if(e["x-filter-targets"])return{targets:e["x-filter-targets"],uid:e["x-uid"]};e=e.parent}return{}},updateFilterTargets=(e,t)=>{for(;e;){if(e["x-filter-targets"]){e["x-filter-targets"]=t;return}e=e.parent}},useDoFilter=()=>{const e=(0,import_react.useForm)(),{getDataBlocks:t}=useFilterBlock(),o=useCollectionManager(),{getOperators:r}=useOperators(),i=(0,import_react.useFieldSchema)(),{name:n}=useCollection(),{targets:l=[],uid:a}=(0,import_react2.useMemo)(()=>findFilterTargets(i),[i]),c=(0,import_react2.useCallback)(()=>removeNullCondition(transformToFilter(e.values,r(),o.getCollectionField.bind(o),n)),[e.values,o,r,n]),u=(0,import_react2.useCallback)((...d)=>L(void 0,[...d],function*({doNothingWhenFilterIsEmpty:m=!1}={}){try{yield Promise.all(t().map(p=>L(void 0,null,function*(){var h,g,f,_;if(!l.find(b=>b.uid===p.uid))return;const v=((h=p.service.params)==null?void 0:h[0])||{},y=((f=(g=p.service.params)==null?void 0:g[1])==null?void 0:f.filters)||{};y[a]=c();const C=mergeFilter([...Object.values(y).map(b=>removeNullCondition(b)),p.defaultFilter]);if(import_lodash.default.isEmpty(y[a])&&((_=p.clearSelection)==null||_.call(p)),!(m&&import_lodash.default.isEmpty(y[a])))return p.dataLoadingMode==="manual"&&import_lodash.default.isEmpty(y[a])?p.clearData():(import_lodash.default.set(p.service.params,"1.filters",y),p.doFilter(A(x({},v),{page:1,filter:C}),{filters:y}))})))}catch(p){console.error(p)}}),[t,c,l,a]);return(0,import_react2.useEffect)(()=>{setTimeout(()=>{u({doNothingWhenFilterIsEmpty:!0})},500)},[u]),{doFilter:u,getFilterFromCurrentForm:c}},useFilterBlockActionProps=()=>{const{doFilter:e}=useDoFilter(),t=(0,import_react.useField)();return t.data=t.data||{},{onClick(){return L(this,null,function*(){t.data.loading=!0,yield e(),t.data.loading=!1})}}},useDoReset=()=>{const e=(0,import_react.useForm)(),t=(0,import_react.useFieldSchema)(),{getDataBlocks:o}=useFilterBlock(),{targets:r,uid:i}=findFilterTargets(t),{doFilter:n,getFilterFromCurrentForm:l}=useDoFilter();return{doReset:()=>L(void 0,null,function*(){var a;if(yield e.reset(void 0,{forceClear:!!((a=t==null?void 0:t["x-component-props"])!=null&&a.clearDefaultValue)}),import_lodash.default.isEmpty(l()))return doReset({getDataBlocks:o,targets:r,uid:i});yield n()})}},useResetBlockActionProps=()=>{const e=(0,import_react.useField)(),{doReset:t}=useDoReset();return e.data=e.data||{},{onClick(){return L(this,null,function*(){e.data.loading=!0,yield t(),e.data.loading=!1})}}},useCustomizeUpdateActionProps=()=>{const{resource:e,__parent:t,field:o,service:r}=useBlockRequestContext(),i=useFilterByTk(),n=(0,import_react.useFieldSchema)(),l=(0,import_react.useField)(),a=useNavigateNoUpdate(),c=useCompile(),u=(0,import_react.useForm)(),{modal:d}=import_antd.App.useApp(),m=useVariables$1(),p=useLocalVariables$1({currentForm:u}),{name:h,getField:g}=useCollection_deprecated(),{setVisible:f}=useActionContext();return{onClick(_,v){return L(this,null,function*(){var y,C,b,F;const{assignedValues:S={},onSuccess:P,skipValidator:j,triggerWorkflows:I}=(y=n==null?void 0:n["x-action-settings"])!=null?y:{},{manualClose:T,redirecting:N,redirectTo:D,successMessage:w,actionAfterSuccess:k}=P||{},B={},E=Object.keys(S).map(M=>L(this,null,function*(){const O=S[M],V=g(M);if(isVariable$1(O)){const{value:$}=(yield m==null?void 0:m.parseVariable(O,p))||{};B[M]=transformVariableValue($,{targetCollectionField:V})}else O!==""&&(B[M]=O)}));if(yield Promise.all(E),j===!1&&(yield u.submit()),l.data=l.data||{},!l.data.loading){l.data.loading=!0;try{const M=yield e.update({filterByTk:i,values:x({},B),triggerWorkflows:I!=null&&I.length?I.map(V=>[V.workflowKey,V.context].filter(Boolean).join("!")).join(","):void 0});let O=D;if(D&&(O=yield getVariableValue(D,{variables:m,localVariables:[...p,{name:"$record",ctx:new Proxy((C=M==null?void 0:M.data)==null?void 0:C.data,{})}]})),(k==="previous"||!k&&N!==!0)&&(f==null||f(!1)),v&&(v==null||v()),e instanceof TableFieldResource||(F=(b=t==null?void 0:t.service)==null?void 0:b.refresh)==null||F.call(b),!w)return;T?d.success({title:c(w),onOk:()=>L(this,null,function*(){(N&&!k||k==="redirect")&&O&&((0,import_client.isURL)(O)?window.location.href=O:a(O))})}):(import_antd.message.success(c(w)),(N&&!k||k==="redirect")&&O&&((0,import_client.isURL)(O)?window.location.href=O:a(O)))}catch(M){console.error(M)}finally{l.data.loading=!1}}})}}},useCustomizeBulkUpdateActionProps=()=>{var e,t,o,r;const{field:i,resource:n,__parent:l,service:a}=useBlockRequestContext(),c=(0,import_react2.useContext)(import_react.SchemaExpressionScopeContext),u=(0,import_react.useFieldSchema)(),d=useTableBlockContext(),{rowKey:m}=d,p=(r=(o=(t=(e=d.field)==null?void 0:e.data)==null?void 0:t.selectedRowKeys)!=null?o:c==null?void 0:c.selectedRecordKeys)!=null?r:{},h=useNavigateNoUpdate(),g=useCompile(),{t:f}=(0,import_react_i18next.useTranslation)(),_=(0,import_react.useField)(),{modal:v}=import_antd.App.useApp(),y=useVariables$1();useRecord();const{name:C,getField:b}=useCollection_deprecated(),F=useLocalVariables$1(),{setVisible:S}=useActionContext();return{onClick(){return L(this,null,function*(){var P;const{assignedValues:j={},onSuccess:I,updateMode:T}=(P=u==null?void 0:u["x-action-settings"])!=null?P:{},{manualClose:N,redirecting:D,redirectTo:w,successMessage:k,actionAfterSuccess:B}=I||{};_.data=i.data||{},_.data.loading=!0;const E={},M=Object.keys(j).map(O=>L(this,null,function*(){const V=j[O],$=b(O);if(isVariable$1(V)){const{value:q}=(yield y==null?void 0:y.parseVariable(V,F))||{};E[O]=transformVariableValue(q,{targetCollectionField:$})}else V!==""&&(E[O]=V)}));yield Promise.all(M),(B==="previous"||!B&&D!==!0)&&(S==null||S(!1)),v.confirm({title:f("Bulk update"),content:f(T==="selected"?"Update selected data?":"Update all data?"),onOk(){return L(this,null,function*(){var O,V,$,q;const{filter:z}=(V=(O=a.params)==null?void 0:O[0])!=null?V:{},U={values:x({},E),filter:z,forceUpdate:!1};if(T==="selected"){if(!(p!=null&&p.length)){import_antd.message.error(f("Please select the records to be updated")),_.data.loading=!1;return}U.filter={$and:[{[m||"id"]:{$in:p}}]}}U.filter||(U.forceUpdate=!0);try{yield n.update(U)}catch{}finally{_.data.loading=!1}n instanceof TableFieldResource||(q=($=l==null?void 0:l.service)==null?void 0:$.refresh)==null||q.call($),k&&(N?v.success({title:g(k),onOk:()=>L(this,null,function*(){(D&&!B||B==="redirect")&&w&&((0,import_client.isURL)(w)?window.location.href=w:h(w))})}):(import_antd.message.success(g(k)),(D&&!B||B==="redirect")&&w&&((0,import_client.isURL)(w)?window.location.href=w:h(w))))})},onCancel(){return L(this,null,function*(){_.data.loading=!1})}})})}}},useCustomizeRequestActionProps=()=>{var e;const t=useAPIClient(),o=useNavigateNoUpdate(),r=useFilterByTk(),i=(0,import_react.useFieldSchema)(),n=useCompile(),l=(0,import_react.useForm)(),{fields:a,getField:c}=useCollection_deprecated(),{field:u,resource:d,__parent:m,service:p}=useBlockRequestContext(),h=useRecord(),g=useCurrentUserContext(),f=(e=g==null?void 0:g.data)==null?void 0:e.data,_=(0,import_react.useField)(),{t:v}=(0,import_react_i18next.useTranslation)(),{setVisible:y}=useActionContext(),{modal:C}=import_antd.App.useApp(),{getActiveFieldsName:b}=useFormActiveFields()||{};return{onClick(){return L(this,null,function*(){var F,S,P,j;const{skipValidator:I,onSuccess:T,requestSettings:N}=(F=i==null?void 0:i["x-action-settings"])!=null?F:{},{manualClose:D,redirecting:w,redirectTo:k,successMessage:B,actionAfterSuccess:E}=T||{},M=i==null?void 0:i["x-action"];if(!N.url)return;I!==!0&&M==="customize:form:request"&&(yield l.submit());const O=N.headers?JSON.parse(N.headers):{},V=N.params?JSON.parse(N.params):{},$=N.data?JSON.parse(N.data):{};if(M==="customize:form:request"&&["POST","PUT","PATCH"].includes(N.method)){const z=a.map(K=>K.name),U=getFormValues({filterByTk:r,field:u,form:l,fieldNames:z,getField:c,resource:d,actionFields:(b==null?void 0:b("form"))||[]});Object.assign($,U)}const q={url:renderTemplate(N.url,{currentRecord:h,currentUser:f}),method:N.method,headers:(0,import_client.parse)(O)({currentRecord:h,currentUser:f}),params:(0,import_client.parse)(V)({currentRecord:h,currentUser:f}),data:(0,import_client.parse)($)({currentRecord:h,currentUser:f})};_.data=u.data||{},_.data.loading=!0;try{yield t.request(x({},q)),_.data.loading=!1,d instanceof TableFieldResource||(P=(S=m==null?void 0:m.service)==null?void 0:S.refresh)==null||P.call(S),(j=p==null?void 0:p.refresh)==null||j.call(p),M==="customize:form:request"&&(E==="previous"||!E&&w!==!0)&&(y==null||y(!1)),B||(import_antd.message.success(v("Saved successfully")),yield resetFormCorrectly(l),(w&&!E||E==="redirect")&&k&&((0,import_client.isURL)(k)?window.location.href=k:o(k))),D?C.success({title:n(B),onOk:()=>L(this,null,function*(){(w&&!E||E==="redirect")&&k&&((0,import_client.isURL)(k)?window.location.href=k:o(k))})}):import_antd.message.success(n(B))}finally{_.data.loading=!1}})}}},useUpdateActionProps=()=>{const e=(0,import_react.useForm)(),t=useFilterByTk(),{field:o,resource:r,__parent:i}=useBlockRequestContext(),{setVisible:n,setFormValueChanged:l}=useActionContext(),a=(0,import_react.useFieldSchema)(),c=useNavigateNoUpdate(),{fields:u,getField:d,name:m}=useCollection_deprecated(),p=useCompile(),h=(0,import_react.useField)(),{updateAssociationValues:g}=useFormBlockContext(),{modal:f}=import_antd.App.useApp(),_=useParamsFromRecord(),v=useVariables$1(),y=useLocalVariables$1({currentForm:e}),{getActiveFieldsName:C}=useFormActiveFields()||{};return{onClick(b,F){return L(this,null,function*(){var S,P;const{assignedValues:j={},onSuccess:I,overwriteValues:T,skipValidator:N,triggerWorkflows:D}=(S=a==null?void 0:a["x-action-settings"])!=null?S:{},{manualClose:w,redirecting:k,redirectTo:B,successMessage:E,actionAfterSuccess:M}=I||{},O={},V=Object.keys(j).map(z=>L(this,null,function*(){const U=j[z],K=d(z);if(isVariable$1(U)){const{value:W}=(yield v==null?void 0:v.parseVariable(U,y))||{};O[z]=transformVariableValue(W,{targetCollectionField:K})}else U!==""&&(O[z]=U)}));yield Promise.all(V),N||(yield e.submit());const $=u.map(z=>z.name),q=getFormValues({filterByTk:t,field:o,form:e,fieldNames:$,getField:d,resource:r,actionFields:(C==null?void 0:C("form"))||[]});h.data=o.data||{},h.data.loading=!0;try{const z=yield r.update(A(x({filterByTk:t,values:x(x(x({},q),T),O)},_),{updateAssociationValues:g,triggerWorkflows:D!=null&&D.length?D.map(K=>[K.workflowKey,K.context].filter(Boolean).join("!")).join(","):void 0}));h.data.loading=!1,F&&(F==null||F());let U=B;if(B&&(U=yield getVariableValue(B,{variables:v,localVariables:[...y,{name:"$record",ctx:new Proxy((P=z==null?void 0:z.data)==null?void 0:P.data,{})}]})),(M==="previous"||!M&&k!==!0)&&(n==null||n(!1)),l==null||l(!1),!E)return;w?f.success({title:p(E),onOk:()=>L(this,null,function*(){yield e.reset(),(k&&!M||M==="redirect")&&U&&((0,import_client.isURL)(U)?window.location.href=U:c(U))})}):(import_antd.message.success(p(E)),(k&&!M||M==="redirect"||M==="redirect")&&U&&((0,import_client.isURL)(U)?window.location.href=U:c(U)))}catch{h.data.loading=!1}})}}},useDestroyActionProps=()=>{const e=useFilterByTk(),{resource:t,service:o,block:r,field:i,__parent:n}=useBlockRequestContext(),{setVisible:l,setSubmitted:a}=useActionContext(),c=useParamsFromRecord(),u=(0,import_react.useFieldSchema)(),d=(0,import_react.useField)();return{onClick(m,p){return L(this,null,function*(){var h,g,f,_,v,y,C;const{triggerWorkflows:b}=(h=u==null?void 0:u["x-action-settings"])!=null?h:{};d.data=i.data||{},d.data.loading=!0;try{yield t.destroy(x({filterByTk:e,triggerWorkflows:b!=null&&b.length?b.map(j=>[j.workflowKey,j.context].filter(Boolean).join("!")).join(","):void 0},c));const{count:F=0,page:S=0,pageSize:P=0}=((g=o==null?void 0:o.data)==null?void 0:g.meta)||{};if(F%P===1&&S!==1){const j=(f=o.params[0])==null?void 0:f.page,I=(v=(_=o.data)==null?void 0:_.meta)==null?void 0:v.totalPage;j===I&&o.params[0]&&j!==1&&(o.params[0].page=j-1)}p&&(p==null||p()),a==null||a(!0),r&&r!=="TableField"&&((C=(y=n==null?void 0:n.service)==null?void 0:y.refresh)==null||C.call(y),l==null||l(!1),a==null||a(!0))}catch(F){console.error(F),d.data.loading=!0}})}}},useRemoveActionProps=e=>{const t=useFilterByTk(),o=useAPIClient().resource(e,t);return{onClick(r){return L(this,null,function*(){yield o.remove({values:[r.id]})})}}},useDisassociateActionProps=()=>{const e=useFilterByTk(),{resource:t,service:o,block:r,__parent:i}=useBlockRequestContext(),{setVisible:n,setSubmitted:l,setFormValueChanged:a}=useActionContext();return{onClick(c,u){return L(this,null,function*(){var d,m,p,h;yield t.remove({values:[e]});const{count:g=0,page:f=0,pageSize:_=0}=((d=o==null?void 0:o.data)==null?void 0:d.meta)||{};g%_===1&&f!==1?o.run(A(x({},(m=o==null?void 0:o.params)==null?void 0:m[0]),{page:f-1})):u&&(u==null||u()),l==null||l(!0),r&&r!=="TableField"&&((h=(p=i==null?void 0:i.service)==null?void 0:p.refresh)==null||h.call(p),n==null||n(!1),a==null||a(!1))})}}},useBulkDestroyActionProps=()=>{const{field:e}=useBlockRequestContext(),{resource:t,service:o}=useBlockRequestContext(),{setSubmitted:r}=useActionContext(),i=useCollection_deprecated(),{filterTargetKey:n}=i;return{onClick(l,a){return L(this,null,function*(){var c,u,d,m,p,h,g;let f=(c=e.data)==null?void 0:c.selectedRowKeys;if(Array.isArray(n)&&(f=e.data.selectedRowData.map(y=>{const C={};return n.map(b=>{C[b]=y[b]}),C})),!((d=(u=e==null?void 0:e.data)==null?void 0:u.selectedRowKeys)!=null&&d.length))return;yield t.destroy({filterByTk:f}),e.data.selectedRowKeys=[];const _=(m=o.params[0])==null?void 0:m.page,v=(h=(p=o.data)==null?void 0:p.meta)==null?void 0:h.totalPage;_===v&&o.params[0]&&_!==1&&(o.params[0].page=_-1),a&&(a==null||a()),r==null||r(!0),(g=o==null?void 0:o.refresh)==null||g.call(o)})}}},useRefreshActionProps=()=>{const{service:e}=useBlockRequestContext();return{onClick(){return L(this,null,function*(){var t;(t=e==null?void 0:e.refresh)==null||t.call(e)})}}},useTableColumns$2=()=>{const e=(0,import_react.useFieldSchema)(),t=useCompile(),{t:o}=(0,import_react_i18next.useTranslation)(),r=useCollection();return(0,import_react2.useMemo)(()=>{const i=[],n=c=>{let u=c;for(;u&&!((u==null?void 0:u["x-component"])==="ActionBar"||!u.parent);)u=u.parent;const d=u.parent;if(d){const m=d==null?void 0:d.reduceProperties((p,h)=>(h==null?void 0:h["x-component"])==="TableV2"?p.concat([h]):p,[]);return m==null?void 0:m[0]}return null},l=(c,u=0)=>{var d,m,p,h,g,f,_,v,y;if(!(!c||u>1)){if((m=(d=c==null?void 0:c["x-component"])==null?void 0:d.includes)!=null&&m.call(d,"Table.Column")||(h=(p=c==null?void 0:c["x-decorator"])==null?void 0:p.includes)!=null&&h.call(p,"Table.Column")||(c==null?void 0:c["x-component"])==="TableV2.Column"){const C=c.reduceProperties?c.reduceProperties((j,I)=>(I==null?void 0:I["x-component"])==="CollectionField"?j.concat([I]):j,[]):[],b=(C==null?void 0:C.length)>0?C[0].name:c.name,F=(g=r==null?void 0:r.getField)==null?void 0:g.call(r,b);let S=o(c==null?void 0:c.title,{ns:NAMESPACE_UI_SCHEMA})||c.title;!S&&c.name==="actions"&&(S=o("Actions")),!S&&F&&(S=o((f=F.uiSchema)==null?void 0:f.title,{ns:NAMESPACE_UI_SCHEMA})||((_=F.uiSchema)==null?void 0:_.title)||F.name),S||(S=c.name||`Column ${i.length+1}`),S=t(S)||S;const P={key:c["x-uid"]||c.name||`column-${i.length}`,title:S,dataIndex:b||`column-${i.length}`,visible:c["x-display"]!=="hidden",fixed:((v=c["x-component-props"])==null?void 0:v.fixed)||!1,width:(y=c["x-component-props"])==null?void 0:y.width,order:c["x-index"]||i.length};i.push(P)}c.properties&&Object.keys(c.properties).forEach(C=>{l(c.properties[C],u+1)}),c.items&&l(c.items,u+1)}},a=n(e);return l(a),i.sort((c,u)=>(c.order||0)-(u.order||0))},[e,t,o,r])},useEditTableActionProps=()=>{const e=(0,import_react.useField)(),t=(0,import_react.useFieldSchema)(),o=useTableColumns$2(),r=(0,import_react2.useCallback)(()=>{let h=t;for(;h;){const g=_=>{if(!(_!=null&&_.properties))return null;for(const v in _.properties){const y=_.properties[v];if(y["x-component"]==="TableV2")return y;const C=g(y);if(C)return C}return null},f=g(h);if(f)return f;if(!h.parent)break;h=h.parent}return h},[t]),i=(0,import_react2.useMemo)(()=>r(),[r]);(0,import_react2.useMemo)(()=>(i==null?void 0:i["x-uid"])||"default",[i]);const{getSettings:n,saveSettings:l,clearSettings:a}=useColumnSettings(),[c,u]=(0,import_react2.useState)(n()),d=(0,import_react2.useMemo)(()=>{if(o.length===0)return[];if(!c||c.length===0)return o;const h=new Map;return c.forEach(g=>{h.set(g.key,g)}),o.map(g=>{const f=h.get(g.key);return f?A(x({},g),{visible:f.visible,order:f.order,width:f.width||g.width,fixed:f.fixed||g.fixed}):g}).sort((g,f)=>(g.order||0)-(f.order||0))},[o,c]);(0,import_react2.useEffect)(()=>{d.length>0&&(e.dataSource=d)},[d,e]);const m=(0,import_react2.useCallback)(h=>{if(!(h!=null&&h.columns)||!Array.isArray(h.columns))return;const g=h.columns.map((f,_)=>({key:f.key,title:f.title,dataIndex:f.dataIndex,visible:f.visible,fixed:f.fixed,width:f.width,order:_}));l(g)},[l]),p=(0,import_react2.useCallback)(()=>{a(),u(n())},[a]);return{columns:d,onSubmit:m,onReset:p}},useDetailsPaginationProps=()=>{var e,t,o,r,i,n,l,a,c,u,d,m,p,h,g,f,_;const v=useDetailsBlockContext(),y=((o=(t=(e=v.service)==null?void 0:e.data)==null?void 0:t.meta)==null?void 0:o.count)||0,C=(n=(i=(r=v.service)==null?void 0:r.data)==null?void 0:i.meta)==null?void 0:n.page,{hasNext:b}=((a=(l=v.service)==null?void 0:l.data)==null?void 0:a.meta)||{};return!y&&C?{simple:!0,current:((d=(u=(c=v.service)==null?void 0:c.data)==null?void 0:u.meta)==null?void 0:d.page)||1,pageSize:1,showSizeChanger:!1,align:"center",onChange(F){return L(this,null,function*(){var S,P;const j=(P=(S=v.service)==null?void 0:S.params)==null?void 0:P[0];v.service.run(A(x({},j),{page:F}))})},style:{marginTop:24,textAlign:"center"},showTotal:!1,showTitle:!1,total:((h=(p=(m=v.service)==null?void 0:m.data)==null?void 0:p.data)==null?void 0:h.length)<1||!b?1*C:1*C+1,className:import_css.css`
|
|
628
|
+
https://requirejs.org/docs/errors.html#`+e);return i.requireType=e,i.requireModules=r,o&&(i.originalError=o),i}if(typeof define<"u")return;if(typeof requirejs<"u"){if(isFunction(requirejs))return;cfg=requirejs,requirejs=void 0}typeof require<"u"&&!isFunction(require)&&(cfg=require,require=void 0);function newContext(e){var t,o,r,i,n,l={waitSeconds:7,baseUrl:"./",paths:{},bundles:{},pkgs:{},shim:{},config:{}},a={},c={},u={},d=[],m={},p={},h={},g=1,f=1;function _(M){var O,V;for(O=0;O<M.length;O++)if(V=M[O],V===".")M.splice(O,1),O-=1;else if(V===".."){if(O===0||O===1&&M[2]===".."||M[O-1]==="..")continue;O>0&&(M.splice(O-1,2),O-=2)}}function v(M,O,V){var $,q,z,U,K,W,Y,Q,H,J,Z,re,oe=O&&O.split("/"),G=l.map,X=G&&G["*"];if(M&&(M=M.split("/"),Y=M.length-1,l.nodeIdCompat&&jsSuffixRegExp.test(M[Y])&&(M[Y]=M[Y].replace(jsSuffixRegExp,"")),M[0].charAt(0)==="."&&oe&&(re=oe.slice(0,oe.length-1),M=re.concat(M)),_(M),M=M.join("/")),V&&G&&(oe||X)){z=M.split("/");e:for(U=z.length;U>0;U-=1){if(W=z.slice(0,U).join("/"),oe){for(K=oe.length;K>0;K-=1)if(q=getOwn(G,oe.slice(0,K).join("/")),q&&(q=getOwn(q,W),q)){Q=q,H=U;break e}}!J&&X&&getOwn(X,W)&&(J=getOwn(X,W),Z=U)}!Q&&J&&(Q=J,H=Z),Q&&(z.splice(0,H,Q),M=z.join("/"))}return $=getOwn(l.pkgs,M),$||M}function y(M){isBrowser&&each(scripts(),function(O){if(O.getAttribute("data-requiremodule")===M&&O.getAttribute("data-requirecontext")===r.contextName)return O.parentNode.removeChild(O),!0})}function C(M){var O=getOwn(l.paths,M);if(O&&isArray(O)&&O.length>1)return O.shift(),r.require.undef(M),r.makeRequire(null,{skipMap:!0})([M]),!0}function b(M){var O,V=M?M.indexOf("!"):-1;return V>-1&&(O=M.substring(0,V),M=M.substring(V+1,M.length)),[O,M]}function F(M,O,V,$){var q,z,U,K,W=null,Y=O?O.name:null,Q=M,H=!0,J="";return M||(H=!1,M="_@r"+(g+=1)),K=b(M),W=K[0],M=K[1],W&&(W=v(W,Y,$),z=getOwn(m,W)),M&&(W?V?J=M:z&&z.normalize?J=z.normalize(M,function(Z){return v(Z,Y,$)}):J=M.indexOf("!")===-1?v(M,Y,$):M:(J=v(M,Y,$),K=b(J),W=K[0],J=K[1],V=!0,q=r.nameToUrl(J))),U=W&&!z&&!V?"_unnormalized"+(f+=1):"",{prefix:W,name:J,parentMap:O,unnormalized:!!U,url:q,originalName:Q,isDefine:H,id:(W?W+"!"+J:J)+U}}function S(M){var O=M.id,V=getOwn(a,O);return V||(V=a[O]=new r.Module(M)),V}function P(M,O,V){var $=M.id,q=getOwn(a,$);hasProp(m,$)&&(!q||q.defineEmitComplete)?O==="defined"&&V(m[$]):(q=S(M),q.error&&O==="error"?V(q.error):q.on(O,V))}function j(M,O){var V=M.requireModules,$=!1;O?O(M):(each(V,function(q){var z=getOwn(a,q);z&&(z.error=M,z.events.error&&($=!0,z.emit("error",M)))}),$||req.onError(M))}function I(){globalDefQueue.length&&(each(globalDefQueue,function(M){var O=M[0];typeof O=="string"&&(r.defQueueMap[O]=!0),d.push(M)}),globalDefQueue=[])}i={require:function(M){return M.require?M.require:M.require=r.makeRequire(M.map)},exports:function(M){if(M.usingExports=!0,M.map.isDefine)return M.exports?m[M.map.id]=M.exports:M.exports=m[M.map.id]={}},module:function(M){return M.module?M.module:M.module={id:M.map.id,uri:M.map.url,config:function(){return getOwn(l.config,M.map.id)||{}},exports:M.exports||(M.exports={})}}};function T(M){delete a[M],delete c[M]}function N(M,O,V){var $=M.map.id;M.error?M.emit("error",M.error):(O[$]=!0,each(M.depMaps,function(q,z){var U=q.id,K=getOwn(a,U);K&&!M.depMatched[z]&&!V[U]&&(getOwn(O,U)?(M.defineDep(z,m[U]),M.check()):N(K,O,V))}),V[$]=!0)}function D(){var M,O,V=l.waitSeconds*1e3,$=V&&r.startTime+V<new Date().getTime(),q=[],z=[],U=!1,K=!0;if(!t){if(t=!0,eachProp(c,function(W){var Y=W.map,Q=Y.id;if(W.enabled&&(Y.isDefine||z.push(W),!W.error)){if(!W.inited&&$)C(Q)?(O=!0,U=!0):(q.push(Q),y(Q));else if(!W.inited&&W.fetched&&Y.isDefine&&(U=!0,!Y.prefix))return K=!1}}),$&&q.length)return M=makeError("timeout","Load timeout for modules: "+q,null,q),M.contextName=r.contextName,j(M);K&&each(z,function(W){N(W,{},{})}),(!$||O)&&U&&(isBrowser||isWebWorker)&&!n&&(n=setTimeout(function(){n=0,D()},50)),t=!1}}o=function(M){this.events=getOwn(u,M.id)||{},this.map=M,this.shim=getOwn(l.shim,M.id),this.depExports=[],this.depMaps=[],this.depMatched=[],this.pluginMaps={},this.depCount=0},o.prototype={init:function(M,O,V,$){$=$||{},!this.inited&&(this.factory=O,V?this.on("error",V):this.events.error&&(V=bind(this,function(q){this.emit("error",q)})),this.depMaps=M&&M.slice(0),this.errback=V,this.inited=!0,this.ignore=$.ignore,$.enabled||this.enabled?this.enable():this.check())},defineDep:function(M,O){this.depMatched[M]||(this.depMatched[M]=!0,this.depCount-=1,this.depExports[M]=O)},fetch:function(){if(!this.fetched){this.fetched=!0,r.startTime=new Date().getTime();var M=this.map;if(this.shim)r.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],bind(this,function(){return M.prefix?this.callPlugin():this.load()}));else return M.prefix?this.callPlugin():this.load()}},load:function(){var M=this.map.url;p[M]||(p[M]=!0,r.load(this.map.id,M))},check:function(){if(!(!this.enabled||this.enabling)){var M,O,V=this.map.id,$=this.depExports,q=this.exports,z=this.factory;if(!this.inited)hasProp(r.defQueueMap,V)||this.fetch();else if(this.error)this.emit("error",this.error);else if(!this.defining){if(this.defining=!0,this.depCount<1&&!this.defined){if(isFunction(z)){if(this.events.error&&this.map.isDefine||req.onError!==defaultOnError)try{q=r.execCb(V,z,$,q)}catch(K){M=K}else q=r.execCb(V,z,$,q);if(this.map.isDefine&&q===void 0&&(O=this.module,O?q=O.exports:this.usingExports&&(q=this.exports)),M)return M.requireMap=this.map,M.requireModules=this.map.isDefine?[this.map.id]:null,M.requireType=this.map.isDefine?"define":"require",j(this.error=M)}else q=z;if(this.exports=q,this.map.isDefine&&!this.ignore&&(m[V]=q,req.onResourceLoad)){var U=[];each(this.depMaps,function(K){U.push(K.normalizedMap||K)}),req.onResourceLoad(r,this.map,U)}T(V),this.defined=!0}this.defining=!1,this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=!0)}}},callPlugin:function(){var M=this.map,O=M.id,V=F(M.prefix);this.depMaps.push(V),P(V,"defined",bind(this,function($){var q,z,U,K=getOwn(h,this.map.id),W=this.map.name,Y=this.map.parentMap?this.map.parentMap.name:null,Q=r.makeRequire(M.parentMap,{enableBuildCallback:!0});if(this.map.unnormalized){$.normalize&&(W=$.normalize(W,function(H){return v(H,Y,!0)})||""),z=F(M.prefix+"!"+W,this.map.parentMap,!0),P(z,"defined",bind(this,function(H){this.map.normalizedMap=z,this.init([],function(){return H},null,{enabled:!0,ignore:!0})})),U=getOwn(a,z.id),U&&(this.depMaps.push(z),this.events.error&&U.on("error",bind(this,function(H){this.emit("error",H)})),U.enable());return}if(K){this.map.url=r.nameToUrl(K),this.load();return}q=bind(this,function(H){this.init([],function(){return H},null,{enabled:!0})}),q.error=bind(this,function(H){this.inited=!0,this.error=H,H.requireModules=[O],eachProp(a,function(J){J.map.id.indexOf(O+"_unnormalized")===0&&T(J.map.id)}),j(H)}),q.fromText=bind(this,function(H,J){var Z=M.name,re=F(Z),oe=useInteractive;J&&(H=J),oe&&(useInteractive=!1),S(re),hasProp(l.config,O)&&(l.config[Z]=l.config[O]);try{req.exec(H)}catch(G){return j(makeError("fromtexteval","fromText eval for "+O+" failed: "+G,G,[O]))}oe&&(useInteractive=!0),this.depMaps.push(re),r.completeLoad(Z),Q([Z],q)}),$.load(M.name,Q,q,l)})),r.enable(V,this),this.pluginMaps[V.id]=V},enable:function(){c[this.map.id]=this,this.enabled=!0,this.enabling=!0,each(this.depMaps,bind(this,function(M,O){var V,$,q;if(typeof M=="string"){if(M=F(M,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap),this.depMaps[O]=M,q=getOwn(i,M.id),q){this.depExports[O]=q(this);return}this.depCount+=1,P(M,"defined",bind(this,function(z){this.undefed||(this.defineDep(O,z),this.check())})),this.errback?P(M,"error",bind(this,this.errback)):this.events.error&&P(M,"error",bind(this,function(z){this.emit("error",z)}))}V=M.id,$=a[V],!hasProp(i,V)&&$&&!$.enabled&&r.enable(M,this)})),eachProp(this.pluginMaps,bind(this,function(M){var O=getOwn(a,M.id);O&&!O.enabled&&r.enable(M,this)})),this.enabling=!1,this.check()},on:function(M,O){var V=this.events[M];V||(V=this.events[M]=[]),V.push(O)},emit:function(M,O){each(this.events[M],function(V){V(O)}),M==="error"&&delete this.events[M]}};function w(M){hasProp(m,M[0])||S(F(M[0],null,!0)).init(M[1],M[2])}function k(M,O,V,$){M.detachEvent&&!isOpera?$&&M.detachEvent($,O):M.removeEventListener(V,O,!1)}function B(M){var O=M.currentTarget||M.srcElement;return k(O,r.onScriptLoad,"load","onreadystatechange"),k(O,r.onScriptError,"error"),{node:O,id:O&&O.getAttribute("data-requiremodule")}}function E(){var M;for(I();d.length;){if(M=d.shift(),M[0]===null)return j(makeError("mismatch","Mismatched anonymous define() module: "+M[M.length-1]));w(M)}r.defQueueMap={}}return r={config:l,contextName:e,registry:a,defined:m,urlFetched:p,defQueue:d,defQueueMap:{},Module:o,makeModuleMap:F,nextTick:req.nextTick,onError:j,configure:function(M){if(M.baseUrl&&M.baseUrl.charAt(M.baseUrl.length-1)!=="/"&&(M.baseUrl+="/"),typeof M.urlArgs=="string"){var O=M.urlArgs;M.urlArgs=function(q,z){return(z.indexOf("?")===-1?"?":"&")+O}}var V=l.shim,$={paths:!0,bundles:!0,config:!0,map:!0};eachProp(M,function(q,z){$[z]?(l[z]||(l[z]={}),mixin(l[z],q,!0,!0)):l[z]=q}),M.bundles&&eachProp(M.bundles,function(q,z){each(q,function(U){U!==z&&(h[U]=z)})}),M.shim&&(eachProp(M.shim,function(q,z){isArray(q)&&(q={deps:q}),(q.exports||q.init)&&!q.exportsFn&&(q.exportsFn=r.makeShimExports(q)),V[z]=q}),l.shim=V),M.packages&&each(M.packages,function(q){var z,U;q=typeof q=="string"?{name:q}:q,U=q.name,z=q.location,z&&(l.paths[U]=q.location),l.pkgs[U]=q.name+"/"+(q.main||"main").replace(currDirRegExp,"").replace(jsSuffixRegExp,"")}),eachProp(a,function(q,z){!q.inited&&!q.map.unnormalized&&(q.map=F(z,null,!0))}),(M.deps||M.callback)&&r.require(M.deps||[],M.callback)},makeShimExports:function(M){function O(){var V;return M.init&&(V=M.init.apply(global,arguments)),V||M.exports&&getGlobal(M.exports)}return O},makeRequire:function(M,O){O=O||{};function V($,q,z){var U,K,W;return O.enableBuildCallback&&q&&isFunction(q)&&(q.__requireJsBuild=!0),typeof $=="string"?isFunction(q)?j(makeError("requireargs","Invalid require call"),z):M&&hasProp(i,$)?i[$](a[M.id]):req.get?req.get(r,$,M,V):(K=F($,M,!1,!0),U=K.id,hasProp(m,U)?m[U]:j(makeError("notloaded",'Module name "'+U+'" has not been loaded yet for context: '+e+(M?"":". Use require([])")))):(E(),r.nextTick(function(){E(),W=S(F(null,M)),W.skipMap=O.skipMap,W.init($,q,z,{enabled:!0}),D()}),V)}return mixin(V,{isBrowser,toUrl:function($){var q,z=$.lastIndexOf("."),U=$.split("/")[0],K=U==="."||U==="..";return z!==-1&&(!K||z>1)&&(q=$.substring(z,$.length),$=$.substring(0,z)),r.nameToUrl(v($,M&&M.id,!0),q,!0)},defined:function($){return hasProp(m,F($,M,!1,!0).id)},specified:function($){return $=F($,M,!1,!0).id,hasProp(m,$)||hasProp(a,$)}}),M||(V.undef=function($){I();var q=F($,M,!0),z=getOwn(a,$);z.undefed=!0,y($),delete m[$],delete p[q.url],delete u[$],eachReverse(d,function(U,K){U[0]===$&&d.splice(K,1)}),delete r.defQueueMap[$],z&&(z.events.defined&&(u[$]=z.events),T($))}),V},enable:function(M){var O=getOwn(a,M.id);O&&S(M).enable()},completeLoad:function(M){var O,V,$,q=getOwn(l.shim,M)||{},z=q.exports;for(I();d.length;){if(V=d.shift(),V[0]===null){if(V[0]=M,O)break;O=!0}else V[0]===M&&(O=!0);w(V)}if(r.defQueueMap={},$=getOwn(a,M),!O&&!hasProp(m,M)&&$&&!$.inited){if(l.enforceDefine&&(!z||!getGlobal(z)))return C(M)?void 0:j(makeError("nodefine","No define call for "+M,null,[M]));w([M,q.deps||[],q.exportsFn])}D()},nameToUrl:function(M,O,V){var $,q,z,U,K,W,Y,Q=getOwn(l.pkgs,M);if(Q&&(M=Q),Y=getOwn(h,M),Y)return r.nameToUrl(Y,O,V);if(req.jsExtRegExp.test(M))K=M+(O||"");else{for($=l.paths,q=M.split("/"),z=q.length;z>0;z-=1)if(U=q.slice(0,z).join("/"),W=getOwn($,U),W){isArray(W)&&(W=W[0]),q.splice(0,z,W);break}K=q.join("/"),K+=O||(/^data\:|^blob\:|\?/.test(K)||V?"":".js"),K=(K.charAt(0)==="/"||K.match(/^[\w\+\.\-]+:/)?"":l.baseUrl)+K}return l.urlArgs&&!/^blob\:/.test(K)?K+l.urlArgs(M,K):K},load:function(M,O){req.load(r,M,O)},execCb:function(M,O,V,$){return O.apply($,V)},onScriptLoad:function(M){if(M.type==="load"||readyRegExp.test((M.currentTarget||M.srcElement).readyState)){interactiveScript=null;var O=B(M);r.completeLoad(O.id)}},onScriptError:function(M){var O=B(M);if(!C(O.id)){var V=[];return eachProp(a,function($,q){q.indexOf("_@r")!==0&&each($.depMaps,function(z){if(z.id===O.id)return V.push(q),!0})}),j(makeError("scripterror",'Script error for "'+O.id+(V.length?'", needed by: '+V.join(", "):'"'),M,[O.id]))}}},r.require=r.makeRequire(),r}req=requirejs=function(e,t,o,r){var i,n,l=defContextName;return!isArray(e)&&typeof e!="string"&&(n=e,isArray(t)?(e=t,t=o,o=r):e=[]),n&&n.context&&(l=n.context),i=getOwn(contexts,l),i||(i=contexts[l]=req.s.newContext(l)),n&&i.configure(n),i.require(e,t,o)},req.config=function(e){return req(e)},req.nextTick=typeof setTimeout<"u"?function(e){setTimeout(e,4)}:function(e){e()},require||(require=req),req.version=version,req.jsExtRegExp=/^\/|:|\?|\.js$/,req.isBrowser=isBrowser,s=req.s={contexts,newContext},req({}),each(["toUrl","undef","defined","specified"],function(e){req[e]=function(){var t=contexts[defContextName];return t.require[e].apply(t,arguments)}}),isBrowser&&(head=s.head=document.getElementsByTagName("head")[0],baseElement=document.getElementsByTagName("base")[0],baseElement&&(head=s.head=baseElement.parentNode)),req.onError=defaultOnError,req.createNode=function(e,t,o){var r=e.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script");return r.type=e.scriptType||"text/javascript",r.charset="utf-8",r.async=!0,r},req.load=function(e,t,o){var r=e&&e.config||{},i;if(isBrowser)return i=req.createNode(r,t,o),i.setAttribute("data-requirecontext",e.contextName),i.setAttribute("data-requiremodule",t),i.attachEvent&&!(i.attachEvent.toString&&i.attachEvent.toString().indexOf("[native code")<0)&&!isOpera?(useInteractive=!0,i.attachEvent("onreadystatechange",e.onScriptLoad)):(i.addEventListener("load",e.onScriptLoad,!1),i.addEventListener("error",e.onScriptError,!1)),i.src=o,r.onNodeCreated&&r.onNodeCreated(i,r,t,o),currentlyAddingScript=i,baseElement?head.insertBefore(i,baseElement):head.appendChild(i),currentlyAddingScript=null,i;if(isWebWorker)try{setTimeout(function(){},0),importScripts(o),e.completeLoad(t)}catch(n){e.onError(makeError("importscripts","importScripts failed for "+t+" at "+o,n,[t]))}};function getInteractiveScript(){return interactiveScript&&interactiveScript.readyState==="interactive"||eachReverse(scripts(),function(e){if(e.readyState==="interactive")return interactiveScript=e}),interactiveScript}return isBrowser&&!cfg.skipDataMain&&eachReverse(scripts(),function(e){if(head||(head=e.parentNode),dataMain=e.getAttribute("data-main"),dataMain)return mainScript=dataMain,!cfg.baseUrl&&mainScript.indexOf("!")===-1&&(src=mainScript.split("/"),mainScript=src.pop(),subPath=src.length?src.join("/")+"/":"./",cfg.baseUrl=subPath),mainScript=mainScript.replace(jsSuffixRegExp,""),req.jsExtRegExp.test(mainScript)&&(mainScript=dataMain),cfg.deps=cfg.deps?cfg.deps.concat(mainScript):[mainScript],!0}),define=function(e,t,o){var r,i;typeof e!="string"&&(o=t,t=e,e=null),isArray(t)||(o=t,t=null),!t&&isFunction(o)&&(t=[],o.length&&(o.toString().replace(commentRegExp,commentReplace).replace(cjsRequireRegExp,function(n,l){t.push(l)}),t=(o.length===1?["require"]:["require","exports","module"]).concat(t))),useInteractive&&(r=currentlyAddingScript||getInteractiveScript(),r&&(e||(e=r.getAttribute("data-requiremodule")),i=contexts[r.getAttribute("data-requirecontext")])),i?(i.defQueue.push([e,t,o]),i.defQueueMap[e]=!0):globalDefQueue.push([e,t,o])},define.amd={jQuery:!0},req.exec=function(text){return eval(text)},req(cfg),{requirejs,require,define}}const setFieldProps=(e,t,o)=>{(0,import_reactive.untracked)(()=>{e[t]===void 0&&(e[t]=o)})},setRequired=(e,t,o)=>{typeof t.required>"u"&&(e.required=!!o.required)},CollectionFieldInternalField_deprecated=e=>{var t;const o=useCompile(),r=(0,import_react.useField)(),i=(0,import_react.useFieldSchema)(),{uiSchema:n,defaultValue:l}=useCollectionField(),{isAllowToSetDefaultValue:a}=useIsAllowToSetDefaultValue(),c=useComponent(((t=i["x-component-props"])==null?void 0:t.component)||(n==null?void 0:n["x-component"])||"Input"),u=useFormBlockContext(),d=useDynamicComponentProps(n==null?void 0:n["x-use-component-props"],e);return(0,import_react2.useEffect)(()=>{if(!n)return;const m=o(n);if(setFieldProps(r,"content",m["x-content"]),setFieldProps(r,"title",m.title),setFieldProps(r,"description",m.description),u!=null&&u.form){const h=a()?i.default||l:void 0;h!=null&&setFieldProps(r,"initialValue",h)}if(!r.validator&&(m["x-validator"]||i["x-validator"])){const h=(0,import_lodash.concat)([],m["x-validator"]||[],i["x-validator"]||[]);r.validator=h}i["x-disabled"]===!0&&(r.disabled=!0),i["x-read-pretty"]===!0&&(r.readPretty=!0),setRequired(r,i,m),r.dataSource=m.enum,r.data=r.data||{},r.data.dataSource=m==null?void 0:m.enum;const p=o(m["x-component-props"])||{};r.componentProps=(0,import_shared.merge)(p,r.componentProps||{},d||{})},[n]),n?(0,import_jsx_runtime.jsx)(c,x(x({},e),d)):null},CollectionFieldInternalField=e=>{var t;const o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{uiSchema:i}=useCollectionFieldUISchema(),n=useComponent(((t=r["x-component-props"])==null?void 0:t.component)||(i==null?void 0:i["x-component"])||"Input"),l=useDynamicComponentProps(i==null?void 0:i["x-use-component-props"],e);if((0,import_react2.useEffect)(()=>{r["x-read-pretty"]===!0&&!o.readPretty&&(o.readPretty=!0),r["x-disabled"]===!0&&(o.disabled=!0),o.data=o.data||{},o.data.dataSource=i==null?void 0:i.enum},[o,r]),!i)return null;const a=x(x({},e),l);return isVariable$1(a.value)&&a.value===r.default&&(a.value=void 0),(0,import_jsx_runtime.jsx)(n,x({},a))},CollectionField$1=(0,import_react.connect)(e=>{const t=(0,import_react.useFieldSchema)(),o=useIsInNocoBaseRecursionFieldContext();return(0,import_jsx_runtime.jsx)(CollectionFieldProvider,{name:t.name,children:o?(0,import_jsx_runtime.jsx)(CollectionFieldInternalField,x({},e)):(0,import_jsx_runtime.jsx)(CollectionFieldInternalField_deprecated,x({},e))})});CollectionField$1.displayName="CollectionField";const getKeyByName=e=>e?`nocobase_${e}_designable`.toUpperCase():"nocobase_designable".toUpperCase(),SchemaComponentProviderWithLocalStorageState=e=>{const[t,o]=(0,import_ahooks.useLocalStorageState)(getKeyByName(e.appName),{defaultValue:!!e.designable});return(0,import_jsx_runtime.jsx)(SchemaComponentProvider,A(x({},e),{designable:t,onDesignableChange:r=>{o(r)}}))},AppSchemaComponentProvider=e=>typeof e.designable=="boolean"?(0,import_jsx_runtime.jsx)(SchemaComponentProvider,x({},e)):(0,import_jsx_runtime.jsx)(SchemaComponentProviderWithLocalStorageState,x({},e));function getOperators(){Array.isArray||(Array.isArray=function(i){return Object.prototype.toString.call(i)==="[object Array]"});function e(i){for(var n=[],l=0,a=i.length;l<a;l++)n.indexOf(i[l])===-1&&n.push(i[l]);return n}function t(i,n){return JSON.stringify(i)===JSON.stringify(n)}var o={},r={$is:function(i,n){return i===n},$match:function(i,n){return Array.isArray(i)&&Array.isArray(n)&&i.some(l=>Array.isArray(l))?i.some(l=>(l==null?void 0:l.length)===n.length&&(l==null?void 0:l.every((a,c)=>a===n[c]))):JSON.stringify(i)===JSON.stringify(n)},$eq:function(i,n){return Array.isArray(i)&&Array.isArray(n)?t(i,n):Array.isArray(i)?i.includes(n):i==n},$ne:function(i,n){return i!=n},"!==":function(i,n){return i!==n},$gt:function(i,n){return Array.isArray(i)?i.some(l=>l>n):i>n},$gte:function(i,n){return i>=n},$lt:function(i,n,l){return Array.isArray(i)?i.some(a=>a<n):l===void 0?i<n:i<n&&n<l},$lte:function(i,n,l){return l===void 0?i<=n:i<=n&&n<=l},$exists:function(i){return o.truthy(i)},$notEmpty:function(i){return!r.$empty(i)},$empty:function(i){return Array.isArray(i)||typeof i=="string"?i.length===0:i==null},$notExists:function(i){return!o.truthy(i)},"%":function(i,n){return i%n},log:function(i){return i},$in:function(i,n){return!n||typeof n.indexOf>"u"?!1:Array.isArray(i)&&Array.isArray(n)?n.some(l=>i.includes(l)):n.indexOf(i)!==-1},$notIn:function(i,n){return!n||typeof n.indexOf>"u"?!1:n.indexOf(i)===-1},$includes:function(i,n){return!i||typeof i.indexOf>"u"?!1:Array.isArray(i)?i.some(l=>l==null?void 0:l.includes(n)):i.indexOf(n)!==-1},$notIncludes:function(i,n){return Array.isArray(i)?!i.some(l=>(l||"").includes(n)):(i=i||"",!i.includes(n))},$anyOf:function(i,n){return i==null||i.length===0?!1:Array.isArray(i)&&Array.isArray(n)&&i.some(l=>Array.isArray(l))?i.some(l=>l.some(a=>n.includes(a))):i.some(l=>n.includes(l))},$noneOf:function(i,n){return!i||i.length===0||!n||n.length===0?!0:(Array.isArray(i)||(i=[i]),Array.isArray(n)||(n=[n]),!n.some(l=>i.includes(l)))},$notMatch:function(i,n){if((i==null?void 0:i.length)!==(n==null?void 0:n.length))return!0;for(let l=0;l<((i==null?void 0:i.length)||0);l++)if((i==null?void 0:i[l])!==(n==null?void 0:n[l]))return!0;return!1},$dateOn:function(i,n){if(!i||!n)return!1;if(n.type&&(n=(0,import_client.getDayRangeByParams)(n)),Array.isArray(n))return r.$dateBetween(i,n);const l=parseDate(i),a=parseDate(n);return!l||!a?!1:l.getTime()===a.getTime()},$dateBefore:function(i,n){if(!i||!n)return!1;n.type&&(n=(0,import_client.getDayRangeByParams)(n)),Array.isArray(n)&&(n=n[0]);const l=parseDate(i),a=parseDate(n);return!l||!a?!1:l.getTime()<a.getTime()},$dateNotBefore:function(i,n){if(!i||!n)return!1;n.type&&(n=(0,import_client.getDayRangeByParams)(n)),Array.isArray(n)&&(n=n[0]);const l=parseDate(i),a=parseDate(n);if(!l||!a)throw new Error("Invalid date format");return l.getTime()>=a.getTime()},$dateAfter:function(i,n){if(!i||!n)return!1;n.type&&(n=(0,import_client.getDayRangeByParams)(n)),Array.isArray(n)&&(n=n[1]);const l=parseDate(i),a=parseDate(n);return l.getTime()>a.getTime()},$dateNotAfter:function(i,n){if(!i||!n)return!1;n.type&&(n=(0,import_client.getDayRangeByParams)(n)),Array.isArray(n)&&(n=n[1]);const l=parseDate(i),a=parseDate(n);if(!l||!a)throw new Error("Invalid date format");return l.getTime()<=a.getTime()},$dateBetween:function(i,n){if(!i||!n)return!1;n.type&&(n=(0,import_client.getDayRangeByParams)(n));const l=parseDate(i),a=parseFullDate(n[0]),c=parseFullDate(n[1]);if(!l||!a||!c)throw new Error("Invalid date format");return l.getTime()>=a.getTime()&&l.getTime()<=c.getTime()},$dateNotOn:function(i,n){if(!i||!n)return!1;if(n.type&&(n=(0,import_client.getDayRangeByParams)(n)),Array.isArray(n))return!r.$dateBetween(i,n);const l=parseDate(i),a=parseDate(n);return l.getTime()!==a.getTime()},$isTruly:function(i){return Array.isArray(i)?i.some(n=>n===!0||n===1):i===!0||i===1},$isFalsy:function(i){return Array.isArray(i)?i.some(n=>!o.truthy(n)):!o.truthy(i)},cat:function(){return Array.prototype.join.call(arguments,"")},substr:function(i,n,l){if(l<0){var a=String(i).substr(n);return a.substr(0,a.length+l)}return String(i).substr(n,l)},"+":function(){return Array.prototype.reduce.call(arguments,function(i,n){return parseFloat(i,10)+parseFloat(n,10)},0)},"*":function(){return Array.prototype.reduce.call(arguments,function(i,n){return parseFloat(i,10)*parseFloat(n,10)})},"-":function(i,n){return n===void 0?-i:i-n},"/":function(i,n){return i/n},min:function(){return Math.min.apply(this,arguments)},max:function(){return Math.max.apply(this,arguments)},merge:function(){return Array.prototype.reduce.call(arguments,function(i,n){return i.concat(n)},[])},var:function(i,n){var l=n===void 0?null:n,a=this;if(typeof i>"u"||i===""||i===null)return a;for(var c=String(i).split("."),u=0;u<c.length;u++)if(a==null||(a=a[c[u]],a===void 0))return l;return a},missing:function(){for(var i=[],n=Array.isArray(arguments[0])?arguments[0]:arguments,l=0;l<n.length;l++){var a=n[l],c=o.apply({var:a},this);(c===null||c==="")&&i.push(a)}return i},missing_some:function(i,n){var l=o.apply({missing:n},this);return n.length-l.length>=i?[]:l}};return o.is_logic=function(i){return typeof i=="object"&&i!==null&&!Array.isArray(i)&&Object.keys(i).length===1&&!i.type},o.truthy=function(i){return Array.isArray(i)&&i.length===0?!1:!!i},o.getOperator=function(i){return Object.keys(i)[0]},o.getValues=function(i){return i[o.getOperator(i)]},o.apply=function(i,n){if(Array.isArray(i))return i.map(function(f){return o.apply(f,n)});if(!o.is_logic(i))return i;var l=o.getOperator(i),a=i[l],c,u,d,m,p;if(Array.isArray(a)||(a=[a]),l==="if"||l=="?:"){for(c=0;c<a.length-1;c+=2)if(o.truthy(o.apply(a[c],n)))return o.apply(a[c+1],n);return a.length===c+1?o.apply(a[c],n):null}else if(l==="$and"){for(c=0;c<a.length;c+=1)if(u=o.apply(a[c],n),!o.truthy(u))return u;return u}else if(l==="or"){for(c=0;c<a.length;c+=1)if(u=o.apply(a[c],n),o.truthy(u))return u;return u}else{if(l==="filter")return m=o.apply(a[0],n),d=a[1],Array.isArray(m)?m.filter(function(f){return o.truthy(o.apply(d,f))}):[];if(l==="map")return m=o.apply(a[0],n),d=a[1],Array.isArray(m)?m.map(function(f){return o.apply(d,f)}):[];if(l==="reduce")return m=o.apply(a[0],n),d=a[1],p=typeof a[2]<"u"?a[2]:null,Array.isArray(m)?m.reduce(function(f,_){return o.apply(d,{current:_,accumulator:f})},p):p;if(l==="all"){if(m=o.apply(a[0],n),d=a[1],!Array.isArray(m)||!m.length)return!1;for(c=0;c<m.length;c+=1)if(!o.truthy(o.apply(d,m[c])))return!1;return!0}else if(l==="none"){if(m=o.apply(a[0],n),d=a[1],!Array.isArray(m)||!m.length)return!0;for(c=0;c<m.length;c+=1)if(o.truthy(o.apply(d,m[c])))return!1;return!0}else if(l==="some"){if(m=o.apply(a[0],n),d=a[1],!Array.isArray(m)||!m.length)return!1;for(c=0;c<m.length;c+=1)if(o.truthy(o.apply(d,m[c])))return!0;return!1}}if(a=a.map(function(f){return o.apply(f,n)}),r.hasOwnProperty(l)&&typeof r[l]=="function")return r[l].apply(n,a);if(l.indexOf(".")>0){var h=String(l).split("."),g=r;for(c=0;c<h.length;c++){if(!g.hasOwnProperty(h[c]))throw new Error("Unrecognized operation "+l+" (failed at "+h.slice(0,c+1).join(".")+")");g=g[h[c]]}return g.apply(n,a)}throw new Error("Unrecognized operation "+l)},o.uses_data=function(i){var n=[];if(o.is_logic(i)){var l=o.getOperator(i),a=i[l];Array.isArray(a)||(a=[a]),l==="var"?n.push(a[0]):a.forEach(function(c){n.push.apply(n,o.uses_data(c))})}return e(n)},o.addOperation=function(i,n){r[i]=n},o.rmOperation=function(i){delete r[i]},o.rule_like=function(i,n){if(n===i||n==="@")return!0;if(n==="number")return typeof i=="number";if(n==="string")return typeof i=="string";if(n==="array")return Array.isArray(i)&&!o.is_logic(i);if(o.is_logic(n)){if(o.is_logic(i)){var l=o.getOperator(n),a=o.getOperator(i);if(l==="@"||l===a)return o.rule_like(o.get_values(i,!1),o.get_values(n,!1))}return!1}if(Array.isArray(n))if(Array.isArray(i)){if(n.length!==i.length)return!1;for(var c=0;c<n.length;c+=1)if(!o.rule_like(i[c],n[c]))return!1;return!0}else return!1;return!1},o}function parseFullDate(e){return e.includes("T")&&e.endsWith("Z")?new Date(e):e.includes(" ")?new Date(e.replace(" ","T")):new Date(`${e}T00:00:00`)}function parseMonth(e){const[t,o]=e.split("-").map(Number);return new Date(t,o-1)}function parseQuarter(e){const t=parseInt(e.slice(0,4)),o=(parseInt(e.slice(5,6))-1)*3;return new Date(t,o)}function parseYear(e){const t=parseInt(e);return new Date(t,0)}function parseDate(e){var t;let o=Array.isArray(e)?(t=e[1])!=null?t:e[0]:e;return/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/.test(o)?new Date(o):/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/.test(o)?new Date(o.replace(" ","T")):/^\d{4}-\d{2}-\d{2}$/.test(o)?parseFullDate(o):/^\d{4}-\d{2}$/.test(o)?parseMonth(o):/^\d{4}Q[1-4]$/.test(o)?parseQuarter(o):/^\d{4}$/.test(o)?parseYear(o):null}class RouteRepository{constructor(t){R(this,"routes",[]),this.ctx=t}setRoutes(t){this.routes=t}listAccessible(){return this.routes}getRouteBySchemaUid(t){return this.findRoute(this.routes,t)}findRoute(t,o){for(const r of t){if(r.schemaUid===o)return r;if(r.children){const i=this.findRoute(r.children,o);if(i)return i}}}}class DefaultToolsManager{constructor(t,o=new import_client.Registry){this.app=t,this.tools=o}listTools(t){return L(this,null,function*(){const{data:o}=yield this.app.apiClient.resource("aiTools").list({filter:t}),r=o==null?void 0:o.data;return r?r.map(i=>{var n;return x(x({},i),(n=this.tools.get(i.definition.name))!=null?n:{})}):[]})}useTools(){var t,o;const r=new import_client.Registry;for(const[i,n]of this.tools.getEntities())r.register(i,x({},(o=(t=n.useHooks)==null?void 0:t.call(n))!=null?o:n));return r}registerTools(t,o){this.tools.register(t,x({},o))}}class AIManager{constructor(t){R(this,"toolsManager"),this.app=t,this.toolsManager=new DefaultToolsManager(this.app)}}const toToolsMap=e=>new Map(e.map(t=>[t.definition.name,t]));class Application{constructor(t={}){R(this,"eventBus",new EventTarget),R(this,"aiManager"),R(this,"providers",[]),R(this,"router"),R(this,"scopes",{}),R(this,"i18n"),R(this,"ws"),R(this,"apiClient"),R(this,"components",A(x(x({DataBlockProvider},defaultAppComponents),schemaInitializerComponents),{CollectionField:CollectionField$1})),R(this,"pluginManager"),R(this,"pluginSettingsManager"),R(this,"devDynamicImport"),R(this,"requirejs"),R(this,"notification"),R(this,"schemaInitializerManager"),R(this,"schemaSettingsManager"),R(this,"dataSourceManager"),R(this,"name"),R(this,"favicon"),R(this,"globalVars",{}),R(this,"globalVarCtxs",{}),R(this,"jsonLogic"),R(this,"flowEngine"),R(this,"context"),R(this,"loading",!0),R(this,"maintained",!1),R(this,"maintaining",!1),R(this,"error",null),R(this,"hasLoadError",!1),R(this,"locales",null),R(this,"wsAuthorized",!1),R(this,"variables",[]),R(this,"apps",{Component:null}),this.options=t,this.initRequireJs(),(0,import_reactive.define)(this,{maintained:import_reactive.observable.ref,loading:import_reactive.observable.ref,maintaining:import_reactive.observable.ref,error:import_reactive.observable.ref}),this.devDynamicImport=t.devDynamicImport,this.scopes=(0,import_merge.default)(this.scopes,t.scopes),this.components=(0,import_merge.default)(this.components,t.components),this.name=this.options.name||(0,import_sdk.getSubAppName)(t.publicPath)||"main",this.apiClient=t.apiClient instanceof APIClient?t.apiClient:new APIClient(A(x({},t.apiClient),{appName:this.options.name||(0,import_sdk.getSubAppName)(t.publicPath)})),this.apiClient.app=this,this.i18n=t.i18n||i18n,this.router=new RouterManager(t.router,this),this.schemaSettingsManager=new SchemaSettingsManager(t.schemaSettings,this),this.pluginManager=new PluginManager$1(t.plugins,t.loadRemotePlugins,this),this.schemaInitializerManager=new SchemaInitializerManager(t.schemaInitializers,this),this.dataSourceManager=new DataSourceManager(t.dataSourceManager,this),this.flowEngine=new import_flow_engine.FlowEngine,this.context=this.flowEngine.context,this.context.defineProperty("pluginManager",{get:()=>this.pluginManager}),this.context.defineProperty("pluginSettingsRouter",{get:()=>this.pluginSettingsManager}),this.addDefaultProviders(),this.addReactRouterComponents(),this.addProviders(t.providers||[]),this.ws=new WebSocketClient(t.ws),this.ws.app=this,this.pluginSettingsManager=new PluginSettingsManager(t.pluginSettings,this),this.addRoutes(),this.i18n.on("languageChanged",o=>{this.apiClient.auth.locale=o}),this.initListeners(),this.jsonLogic=getOperators(),this.aiManager=new AIManager(this)}get pm(){return this.pluginManager}get disableAcl(){return this.options.disableAcl}get isWsAuthorized(){return this.wsAuthorized}updateFavicon(t){let o=document.querySelector('link[rel="shortcut icon"]');t&&(this.favicon=t),o?o.href=this.favicon||"/favicon/favicon.ico":(o=document.createElement("link"),o.rel="shortcut icon",o.href=this.favicon||"/favicon/favicon.ico",document.head.appendChild(o))}setWsAuthorized(t){this.wsAuthorized=t}initListeners(){this.eventBus.addEventListener("auth:tokenChanged",t=>{this.setTokenInWebSocket(t.detail)}),this.eventBus.addEventListener("maintaining:end",()=>{this.apiClient.auth.token&&this.setTokenInWebSocket({token:this.apiClient.auth.token,authenticator:this.apiClient.auth.getAuthenticator()})})}setTokenInWebSocket(t){const{token:o,authenticator:r}=t;this.maintaining||this.ws.send(JSON.stringify({type:"auth:token",payload:{token:o,authenticator:r}}))}setMaintaining(t){this.maintaining!==t&&(this.maintaining=t,t||this.eventBus.dispatchEvent(new Event("maintaining:end")))}initRequireJs(){if(window.requirejs){this.requirejs=window.requirejs;return}window.requirejs=this.requirejs=getRequireJs(),defineGlobalDeps(this.requirejs),window.define=this.requirejs.define}addDefaultProviders(){this.use(APIClientProvider,{apiClient:this.apiClient}),this.use(import_react_i18next.I18nextProvider,{i18n:this.i18n}),this.use(GlobalThemeProvider),this.use(CSSVariableProvider),this.use(AppSchemaComponentProvider,{designable:this.options.designable,appName:this.name,components:this.components,scope:this.scopes}),this.use(AntdAppProvider),this.use(DataSourceApplicationProvider,{dataSourceManager:this.dataSourceManager}),this.use(OpenModeProvider),this.flowEngine.context.defineProperty("app",{value:this}),this.flowEngine.context.defineProperty("routeRepository",{value:new RouteRepository(this.flowEngine.context)}),this.flowEngine.context.defineProperty("appInfo",{get:()=>L(this,null,function*(){var o;return((o=(yield this.apiClient.request({url:"app:getInfo"})).data)==null?void 0:o.data)||{}})}),this.flowEngine.context.defineProperty("api",{value:this.apiClient}),this.flowEngine.context.defineProperty("i18n",{value:this.i18n}),this.flowEngine.context.defineProperty("router",{get:()=>this.router.router,cache:!1}),this.flowEngine.context.defineProperty("documentTitle",{get:()=>document.title}),this.flowEngine.context.defineProperty("route",{get:()=>{},observable:!0}),this.flowEngine.context.defineProperty("location",{get:()=>location,observable:!0}),this.use(import_flow_engine.FlowEngineProvider,{engine:this.flowEngine}),this.use(import_flow_engine.FlowEngineGlobalsContextProvider);const t=(0,import_reactive.observable)({version:void 0});this.flowEngine.context.defineProperty("pageInfo",{value:t})}addReactRouterComponents(){this.addComponents({Link:import_react_router_dom.Link,Navigate:import_react_router_dom.Navigate,NavLink:import_react_router_dom.NavLink})}addRoutes(){this.router.add("not-found",{path:"*",Component:this.components.AppNotFound})}getOptions(){return this.options}getName(){return(0,import_sdk.getSubAppName)(this.getPublicPath())||null}getPublicPath(){let t=this.options.publicPath||"/";return t.endsWith("/")||(t+="/"),t}getApiUrl(t=""){let o=this.apiClient.axios.defaults.baseURL;if(!o.startsWith("http://")&&!o.startsWith("https://")){const{protocol:r,host:i}=window.location;o=`${r}//${i}${o}`}return o.replace(/\/$/g,"")+"/"+t.replace(/^\//g,"")}getRouteUrl(t){return this.getPublicPath()+t.replace(/^\//g,"")}getHref(t){const o=this.name;return o&&o!=="main"?this.getPublicPath()+"apps/"+o+"/"+t.replace(/^\//g,""):this.getPublicPath()+t.replace(/^\//g,"")}getCollectionManager(t){var o;return(o=this.dataSourceManager.getDataSource(t))==null?void 0:o.collectionManager}getComposeProviders(){const t=compose(...this.providers)(BlankComponent);return t.displayName="Providers",t}use(t,o){return this.addProvider(t,o)}addProvider(t,o){return this.providers.push([t,o])}addProviders(t){t.forEach(o=>{Array.isArray(o)?this.addProvider(o[0],o[1]):this.addProvider(o)})}load(){return L(this,null,function*(){var t,o,r,i,n;try{this.loading=!0,yield this.loadWebSocket(),yield this.pm.load(),yield this.flowEngine.flowSettings.load()}catch(l){this.hasLoadError=!0,((i=(r=(o=(t=l==null?void 0:l.response)==null?void 0:t.data)==null?void 0:o.errors)==null?void 0:r[0])==null?void 0:i.code)==="BLOCKED_IP"&&(this.hasLoadError=!1),this.ws.enabled&&(yield new Promise(a=>{setTimeout(()=>a(null),1e3)})),this.error=x({code:"LOAD_ERROR"},(n=this.apiClient.toErrMessages(l))==null?void 0:n[0]),console.error(l,this.error)}this.loading=!1,this.updateFavicon()})}loadWebSocket(){return L(this,null,function*(){this.eventBus.addEventListener("ws:message:authorized",()=>{this.setWsAuthorized(!0)}),this.ws.on("message",t=>{var o,r,i;const n=JSON.parse(t.data);if((o=n==null?void 0:n.payload)!=null&&o.refresh){window.location.reload();return}if(n.type==="notification"){this.notification[((r=n.payload)==null?void 0:r.type)||"info"]({message:(i=n.payload)==null?void 0:i.message});return}if(n.type==="maintaining"&&n.payload.code!=="APP_RUNNING")this.setMaintaining(!0),this.error=n.payload;else{this.hasLoadError&&window.location.reload(),this.setMaintaining(!1),this.maintained=!0,this.error=null;const l=n.type;if(!l)return;const a=`ws:message:${l}`;this.eventBus.dispatchEvent(new CustomEvent(a,{detail:n.payload}))}}),this.ws.on("serverDown",()=>{this.maintaining=!0,this.maintained=!1}),this.ws.on("open",()=>{const t=this.apiClient.auth.token;t&&this.setTokenInWebSocket({token:t,authenticator:this.apiClient.auth.getAuthenticator()})}),this.ws.connect()})}getComponent(t,o=!0){const r=i=>o&&console.error(i);if(!t){r(`getComponent called with ${t}`);return}if(typeof t=="function")return t;if(typeof t=="string"){const i=(0,import_get.default)(this.components,t);if(!i){r(`Component ${t} not found`);return}return i}r(`Component ${t} should be a string or a React component`)}renderComponent(t,o,r){return import_react2.default.createElement(this.getComponent(t),o,r)}addComponent(t,o){const r=o||t.displayName||t.name;if(!r){console.error("Component must have a displayName or pass name as second argument");return}(0,import_set.default)(this.components,r,t)}addComponents(t){Object.keys(t).forEach(o=>{this.addComponent(t[o],o)})}addScopes(t){this.scopes=(0,import_merge.default)(this.scopes,t)}getRootComponent(){return({children:t})=>(0,import_jsx_runtime.jsx)(AppComponent,{app:this,children:t})}mount(t){const o=normalizeContainer(t);if(!o)return;const r=this.getRootComponent(),i=(0,import_client3.createRoot)(o);return i.render((0,import_jsx_runtime.jsx)(r,{})),i}addFieldInterfaces(t=[]){return this.dataSourceManager.collectionFieldInterfaceManager.addFieldInterfaces(t)}addFieldInterfaceComponentOption(t,o){return this.dataSourceManager.collectionFieldInterfaceManager.addFieldInterfaceComponentOption(t,o)}addFieldInterfaceOperator(t,o){return this.dataSourceManager.collectionFieldInterfaceManager.addFieldInterfaceOperator(t,o)}addGlobalVar(t,o,r){(0,import_set.default)(this.globalVars,t,o),r&&(0,import_set.default)(this.globalVarCtxs,t,r)}getGlobalVar(t){return(0,import_get.default)(this.globalVars,t)}getGlobalVarCtx(t){return(0,import_get.default)(this.globalVarCtxs,t)}addUserCenterSettingsItem(t){const o=t.useVisible||(()=>!0),r=()=>{const{allow:i}=useAclSnippets();return o()?t.aclSnippet?i(t.aclSnippet):!0:!1};this.schemaSettingsManager.addItem("userCenterSettings",t.name,A(x({},t),{useVisible:r}))}registerVariable(t){if(this.variables.find(o=>o.name===t.name)){console.warn(`Variable ${t.name} already registered`);return}this.variables.push(t)}getVariables(){return this.variables}setAppsComponent({Component:t}){this.apps.Component=t}}function getNewSchema(e){const{fieldSchema:t,schemaKey:o,parentSchemaKey:r,value:i,valueKeys:n}=e;if(o)import_lodash.default.set(t,o,i);else if(r){if(i==null)return t;typeof i=="object"?Object.keys(i).forEach(l=>{n&&!n.includes(l)||import_lodash.default.set(t,`${r}.${l}`,i[l])}):console.error("value must be object")}return t}const useHookDefault=e=>e,useSchemaByType=(e="common")=>{const t=(0,import_react.useFieldSchema)(),{fieldSchema:o}=useColumnSchema$1()||{};return e==="field"&&o||t};function createModalSettingsItem(e){const{name:t,parentSchemaKey:o,valueKeys:r,schema:i,title:n,useSubmit:l=useHookDefault,useVisible:a,defaultValue:c,useDefaultValue:u=useHookDefault,width:d,type:m="common"}=e;return{name:t,type:"actionModal",useVisible:a,useComponentProps(){const p=useSchemaByType(m),{dn:h}=useDesignable(),g=u(c),f=o?import_lodash.default.get(p,o):void 0,_=useCompile(),{t:v}=(0,import_react_i18next.useTranslation)(),y=l(),{fieldSchema:C}=useColumnSchema$1()||{};return{title:typeof n=="function"?n(v):_(n),width:d,schema:i(x(x({},g),f)),onSubmit(b){const F=getNewSchema({fieldSchema:p,parentSchemaKey:o,value:b,valueKeys:r});return C?(h.emit("patch",{schema:F}),h.refresh()):h.deepMerge(F),y==null?void 0:y(b)}}}}}const createSelectSchemaSettingsItem=e=>{const{name:t,title:o,options:r,useOptions:i=useHookDefault,schemaKey:n,useVisible:l,type:a="common",defaultValue:c,useDefaultValue:u=useHookDefault}=e;return{name:t,type:"select",useVisible:l,useComponentProps(){const d=useSchemaByType(a),{fieldSchema:m}=useColumnSchema$1()||{},{dn:p}=useDesignable(),h=i(r),g=u(c),f=useCompile(),{t:_}=(0,import_react_i18next.useTranslation)();return{title:typeof o=="function"?o(_):f(o),options:h,value:import_lodash.default.get(d,n,g),onChange(v){const y=getNewSchema({fieldSchema:d,schemaKey:n,value:v});m?(p.emit("patch",{schema:y}),p.refresh()):p.deepMerge(y)}}}}};function createSwitchSettingsItem(e){const{name:t,useVisible:o,schemaKey:r,title:i,type:n="common",defaultValue:l,useDefaultValue:a=useHookDefault,useComponentProps:c}=e;return{name:t,useVisible:o,type:"switch",useComponentProps(){const u=useSchemaByType(n),{dn:d}=useDesignable(),m=a(l),p=useCompile(),{t:h}=(0,import_react_i18next.useTranslation)(),{fieldSchema:g}=useColumnSchema$1()||{},f=c==null?void 0:c();return{title:typeof i=="function"?i(h):p(i),checked:(f==null?void 0:f.checked)===void 0?!!import_lodash.default.get(u,r,m):f==null?void 0:f.checked,onChange(_){var v;(v=f==null?void 0:f.onChange)==null||v.call(f,_);const y=getNewSchema({fieldSchema:u,schemaKey:r,value:_});g?(d.emit("patch",{schema:y}),d.refresh()):d.deepMerge(y)}}}}}function createTextSettingsItem(e){const{name:t,useVisible:o,title:r,useTextClick:i=useHookDefault}=e;return{name:t,type:"item",useVisible:o,useComponentProps(){const n=useCompile(),{t:l}=(0,import_react_i18next.useTranslation)(),a=i();return{title:typeof r=="function"?r(l):n(r),onClick:a}}}}const linkageAction$1=(e,t)=>L(void 0,[e,t],function*({operator:o,condition:r,variables:i,localVariables:n,conditionType:l,displayResult:a},c){switch(o){case"visible":return(yield conditionAnalyses({ruleGroup:r,variables:i,localVariables:n,conditionType:l},c))&&a.push("visible"),a;case"hidden":return(yield conditionAnalyses({ruleGroup:r,variables:i,localVariables:n,conditionType:l},c))&&a.push("hidden"),a;default:return null}}),useReactiveLinkageEffect=(e,t,o,r)=>{const i=useApp().jsonLogic,[n,l]=(0,import_react2.useState)(null),a=useCollectionRecord();return(0,import_react2.useEffect)(()=>{L(void 0,null,function*(){const c=[];for(const u of e.filter(d=>!d.disabled))for(const d of u.actions||[])yield linkageAction$1({operator:d.operator,condition:u.condition,variables:t,localVariables:o,conditionType:u.conditionType,displayResult:c},i);l(c)})},[e,r,a]),n};function forEachLinkageRule(e,t){e.forEach(o=>{var r;(r=o.actions)==null||r.forEach(i=>{t(i,o)})})}const getLinkageRules$2=e=>{if(!e)return[];let t=(e==null?void 0:e["x-block-linkage-rules"])||[];return e.mapProperties(o=>{o["x-block-linkage-rules"]&&(t=o["x-block-linkage-rules"])}),t==null?void 0:t.filter(o=>!o.disabled)},BlockLinkageRuleProvider=e=>{const t=(0,import_react.useFieldSchema)(),o=useVariables$1(),r=useLocalVariables$1(),{designable:i}=useDesignable(),n=(0,import_react.useForm)(),l=(0,import_react2.useMemo)(()=>getLinkageRules$2(t),[t]),[a,c]=(0,import_react2.useState)(null),u=useReactiveLinkageEffect(l,o,r,a),d=(t==null?void 0:t["x-decorator"])==="FormItem"&&!n.readPretty&&l.length;return(0,import_react2.useEffect)(()=>{if(d){const m=(0,import_shared.uid)();return setTimeout(()=>{n.addEffects(m,()=>{forEachLinkageRule(l,(p,h)=>(0,import_reactive.reaction)(()=>{const g=getVariableValuesInCondition({linkageRules:l,localVariables:r}),f=getVariableValuesInExpression({action:p,localVariables:r});return[g,f].map(_=>JSON.stringify(_)).join(",")},()=>{c((0,import_shared.uid)())},{fireImmediately:!0,equals:import_lodash.isEqual}))})}),()=>{n.removeEffects(m)}}},[l,d]),l.length?u===null?null:(0,import_lodash.last)(u)==="hidden"?i?(0,import_jsx_runtime.jsx)("div",{style:{opacity:.3},children:e.children}):null:e.children:e.children},DataBlockContext=(0,import_react2.createContext)({});DataBlockContext.displayName="DataBlockContext";const DataBlockResourceContext=(0,import_react2.createContext)(null),RerenderDataBlockProvider=({children:e})=>{const[t,o]=import_react2.default.useState(!1),r=(0,import_react2.useMemo)(()=>({rerenderDataBlock:()=>{o(!0),setTimeout(()=>{o(!1)})}}),[]);return t?null:(0,import_jsx_runtime.jsx)(DataBlockResourceContext.Provider,{value:r,children:e})},AssociationOrCollectionProvider=e=>{const{collection:t,association:o,allowNull:r=!1}=e,i=(0,import_react2.useMemo)(()=>o?{Component:AssociationProvider,name:o}:{Component:SanitizedCollectionProvider,name:t},[t,o]);return(0,import_jsx_runtime.jsx)(i.Component,{name:i.name,allowNull:r,children:e.children})},DataBlockProvider=withDynamicSchemaProps(import_react2.default.memo(e=>{const t=e,{collection:o,association:r,dataSource:i,children:n,hidden:l}=t,a=te(t,["collection","association","dataSource","children","hidden"]),{dn:c}=useDesignable(),u=(0,import_react.useFieldSchema)();return l?null:(0,import_jsx_runtime.jsx)(VariableScope,{scopeId:u==null?void 0:u["x-uid"],type:"dataBlock",children:(0,import_jsx_runtime.jsx)(DataBlockContext.Provider,{value:{dn:c,props:A(x({},a),{collection:o,association:r,dataSource:i})},children:(0,import_jsx_runtime.jsx)(CollectionManagerProvider,{dataSource:i,children:(0,import_jsx_runtime.jsx)(AssociationOrCollectionProvider,{collection:o,association:r,children:(0,import_jsx_runtime.jsx)(ACLCollectionProvider,{children:(0,import_jsx_runtime.jsx)(BlockLinkageRuleProvider,{children:(0,import_jsx_runtime.jsx)(DataBlockResourceProvider,{children:(0,import_jsx_runtime.jsx)(BlockRequestProvider,{children:(0,import_jsx_runtime.jsx)(DataBlockCollector,{params:e.params,children:(0,import_jsx_runtime.jsx)(RerenderDataBlockProvider,{children:n})})})})})})})})})})}),{displayName:"DataBlockProvider"}),useDataBlock=()=>{const e=(0,import_react2.useContext)(DataBlockContext);if(!e)throw new Error("useDataBlock() must be used within a DataBlockProvider");return e},useDataBlockProps=()=>useDataBlock().props,useRerenderDataBlock=()=>{const e=(0,import_react2.useContext)(DataBlockResourceContext);if(!e)throw new Error("useRerenderDataBlock() must be used within a DataBlockProvider");return e},BlockRequestRefContext=(0,import_react2.createContext)(null);BlockRequestRefContext.displayName="BlockRequestRefContext";const BlockRequestLoadingContext=(0,import_react2.createContext)(!1);BlockRequestLoadingContext.displayName="BlockRequestLoadingContext";const BlockRequestDataContext=(0,import_react2.createContext)(null);BlockRequestDataContext.displayName="BlockRequestDataContext";function useRecordRequest(e){const t=useDataLoadingMode(),o=useDataBlockResource(),{action:r,params:i={},record:n,requestService:l,requestOptions:a,sourceId:c,association:u,parentRecord:d}=e,m=useAPIClient(),p=useDataBlockProps(),h=useDataSourceHeaders(p.dataSource),g=useSourceKey(u),[f,_]=(0,import_react2.useMemo)(()=>[JSON.stringify(i),JSON.stringify(n)],[i,n]),{isBlockTemplate:v,templateFinished:y}=useTemplateBlockContext(),C=S=>{var P;if(n)return Promise.resolve({data:n});if(!r)throw new Error("[nocobase]: The 'action' parameter is missing in the 'DataBlockRequestProvider' component");if(r==="get"&&import_lodash.default.isNil(i.filterByTk))return console.warn('[nocobase]: The "filterByTk" parameter is missing in the "DataBlockRequestProvider" component');const j=i.filterByTk===void 0?import_lodash.default.omit(i,"filterByTk"):i,I=x(x({},j),S);return(P=o[r])==null?void 0:P.call(o,I).then(T=>T.data)},b=(...S)=>v!=null&&v()&&!y?null:(l||C)(...S),F=useRequest((...S)=>L(this,null,function*(){const[P,j]=yield Promise.all([b(...S),requestParentRecordData({sourceId:c,association:u,parentRecord:d,api:m,headers:h,sourceKey:g})]);return P&&(P.parentRecord=j==null?void 0:j.data),P}),A(x({},a),{manual:t==="manual",ready:!!r,refreshDeps:[r,f,_,o,u,d,c,y]}));return F._defaultParams=i,F}function requestParentRecordData(e){return L(this,arguments,function*({sourceId:t,association:o,parentRecord:r,api:i,headers:n,sourceKey:l}){if(r)return Promise.resolve({data:r});if(!o||!l||!t)return Promise.resolve({data:void 0});const a=`${o.split(".")[0]}:get?filter[${l}]=${t}`;return(yield i.request({url:a,headers:n})).data})}const BlockRequestContextProvider=e=>{var t,o,r,i,n,l;const a=(0,import_react2.useRef)(e.recordRequest),c=(0,import_react2.useRef)((t=e.recordRequest)==null?void 0:t.data),{active:u}=useKeepAlive(),d=useLocationSearch(),m=(0,import_react2.useRef)(u),p=(0,import_react2.useRef)(d),h=(0,import_react2.useDeferredValue)(u),g=useDataBlockProps(),f=m.current;return h&&!f&&p.current===d&&(import_lodash.default.isNil(g.dataLoadingMode)||g.dataLoadingMode==="auto")&&((o=e.recordRequest)==null||o.refresh()),h&&f&&!((r=e.recordRequest)!=null&&r.loading)&&!import_lodash.default.isEqual(c.current,(i=e.recordRequest)==null?void 0:i.data)&&(c.current=(n=e.recordRequest)==null?void 0:n.data),u&&f&&(p.current=d),h!==f&&(m.current=h),a.current=e.recordRequest,(0,import_jsx_runtime.jsx)(BlockRequestRefContext.Provider,{value:a,children:(0,import_jsx_runtime.jsx)(BlockRequestLoadingContext.Provider,{value:(l=e.recordRequest)==null?void 0:l.loading,children:(0,import_jsx_runtime.jsx)(BlockRequestDataContext.Provider,{value:c.current,children:e.children})})})},BlockRequestProvider=import_react2.default.memo(({children:e})=>{var t,o;const r=useDataBlockProps(),{action:i,filterByTk:n,sourceId:l,params:a=EMPTY_OBJECT,association:c,collection:u,record:d,parentRecord:m,requestOptions:p,requestService:h}=r,g=(0,import_react2.useMemo)(()=>A(x({},a),{filterByTk:n||a.filterByTk}),[n,a]),f=useRecordRequest({action:i,sourceId:l,record:d,association:c,collection:u,requestOptions:p,requestService:h,params:g,parentRecord:m}),_=(t=f.data)==null?void 0:t.parentRecord,v=(0,import_react2.useMemo)(()=>_&&new CollectionRecord({isNew:!1,data:_ instanceof CollectionRecord?_.data:_}),[_]);return(0,import_jsx_runtime.jsx)(BlockRequestContextProvider,{recordRequest:f,children:i!=="list"?(0,import_jsx_runtime.jsx)(CollectionRecordProvider,{isNew:i==null,record:((o=f.data)==null?void 0:o.data)||d,parentRecord:v||m,children:e}):(0,import_jsx_runtime.jsx)(CollectionRecordProvider,{isNew:!1,record:null,parentRecord:v||m,children:e})})});BlockRequestProvider.displayName="DataBlockRequestProvider";const useDataBlockRequest=()=>{const e=(0,import_react2.useContext)(BlockRequestRefContext),t=(0,import_react2.useContext)(BlockRequestLoadingContext),o=(0,import_react2.useContext)(BlockRequestDataContext);return(0,import_react2.useMemo)(()=>e?A(x({},e.current),{loading:t,data:o}):null,[e,o,t])},useDataBlockRequestGetter=()=>{const e=(0,import_react2.useContext)(BlockRequestRefContext);return(0,import_react2.useMemo)(()=>({getDataBlockRequest:()=>e?e.current:null}),[e])},useDataBlockRequestData=()=>(0,import_react2.useContext)(BlockRequestDataContext),FilterContext$1=(0,import_react2.createContext)(null);FilterContext$1.displayName="FilterContext";const FilterBlockProvider=import_react2.default.memo(({children:e})=>{const t=import_react2.default.useRef([]),o=(0,import_react2.useCallback)(n=>{typeof n=="function"?t.current=n(t.current):t.current=n},[]),r=(0,import_react2.useCallback)(()=>t.current,[]),i=(0,import_react2.useMemo)(()=>({getDataBlocks:r,setDataBlocks:o}),[r,o]);return(0,import_jsx_runtime.jsx)(FilterContext$1.Provider,{value:i,children:e})});FilterBlockProvider.displayName="FilterBlockProvider";const DataBlockCollector=({children:e,params:t})=>{const o=useCollection(),{recordDataBlocks:r}=useFilterBlock(),{getDataBlockRequest:i}=useDataBlockRequestGetter(),n=(0,import_react.useField)(),l=(0,import_react.useFieldSchema)(),a=useAssociatedFields(),c=(0,import_react2.useRef)(null),u=useDataLoadingMode(),d=n&&n.decoratorType!=="FilterFormBlockProvider"&&n.decoratorType!=="FormBlockProvider"&&n.decoratorProps.blockType!=="filter",m=(0,import_react2.useCallback)(()=>{const p=i();r({uid:l["x-uid"],title:n.componentProps.title,doFilter:p.runAsync,collection:o,associatedFields:a,foreignKeyFields:o==null?void 0:o.getFields("isForeignKey"),defaultFilter:(t==null?void 0:t.filter)||{},service:p,dom:c.current,dataLoadingMode:u,clearFilter(h){var g,f,_;const v=((g=this.service.params)==null?void 0:g[0])||{},y=((_=(f=this.service.params)==null?void 0:f[1])==null?void 0:_.filters)||{};delete y[h];const C=mergeFilter([...Object.values(y).map(b=>removeNullCondition(b)),(t==null?void 0:t.filter)||{}]);this.service.run(A(x({},v),{page:1,filter:C}),{filters:y})},clearData(){this.service.mutate(void 0)},clearSelection(){var h,g;n&&((g=(h=n.data)==null?void 0:h.clearSelectedRowKeys)==null||g.call(h))},highlightBlock(){var h;const g=c.current;if(!g)return;const f=g.querySelector(".ant-nb-schema-toolbar");f&&f.classList.remove("hidden"),g.style.boxShadow="0 3px 12px rgba(0, 0, 0, 0.15)",g.style.transition="box-shadow 0.3s ease, transform 0.2s ease",(h=g.scrollIntoView)==null||h.call(g,{behavior:"smooth",block:"start"})},unhighlightBlock(){const h=c.current;if(!h)return;const g=h.querySelector(".ant-nb-schema-toolbar");g&&g.classList.add("hidden"),h.style.boxShadow="none",h.style.transition="box-shadow 0.3s ease, transform 0.2s ease"}})},[a,o,u,l,t==null?void 0:t.filter,r,i,n]);return(0,import_react2.useEffect)(()=>{d&&m()},[m,d]),(0,import_jsx_runtime.jsx)("div",{ref:c,children:e})},useFilterBlock=()=>{const e=import_react2.default.useContext(FilterContext$1),t=useAllDataBlocks(),o=(0,import_react2.useCallback)(()=>(e==null?void 0:e.getDataBlocks())||[],[e]),r=(0,import_react2.useCallback)(n=>{t.recordDataBlocks(n);const l=e==null?void 0:e.getDataBlocks().find(a=>a.uid===n.uid);if(l){Object.assign(l,n);return}e==null||e.setDataBlocks(a=>[...a,n])},[e]),i=(0,import_react2.useCallback)(n=>{t.removeDataBlock(n),!(e!=null&&e.getDataBlocks().every(l=>l.uid!==n))&&(e==null||e.setDataBlocks(l=>l.filter(a=>a.uid!==n)))},[e]);return e?{recordDataBlocks:r,getDataBlocks:o,removeDataBlock:i,inProvider:!0}:{inProvider:!1,recordDataBlocks:import_lodash.default.noop,getDataBlocks:o,removeDataBlock:import_lodash.default.noop}},MarkdownVoidDesigner=()=>{const e=(0,import_react.useField)(),{t}=(0,import_react_i18next.useTranslation)();return(0,import_jsx_runtime.jsxs)(GeneralSchemaDesigner,{children:[(0,import_jsx_runtime.jsx)(SchemaSettingsItem,{title:t("Edit markdown"),onClick:()=>{e.editable=!0}}),(0,import_jsx_runtime.jsx)(SchemaSettingsRenderEngine,{}),(0,import_jsx_runtime.jsx)(SchemaSettingsBlockHeightItem,{}),(0,import_jsx_runtime.jsx)(SchemaSettingsDivider,{}),(0,import_jsx_runtime.jsx)(SchemaSettingsRemove,{removeParentsIfNoChildren:!0,breakRemoveOn:{"x-component":"Grid"}})]})};class QRCodeWebComponent extends HTMLElement{constructor(){super(),R(this,"root"),this.attachShadow({mode:"open"}),this.root=null}getProps(t,o={}){return[...t].filter(r=>r.name!=="style").map(r=>this.convert(o,r.name,r.value)).reduce((r,i)=>A(x({},r),{[i.name]:i.value}),{})}convert(t,o,r){const i=Object.keys(t).find(l=>l.toLowerCase()==o);let n=r;return r==="true"||r==="false"?n=r=="true":!isNaN(r)&&r!==""?n=+r:/^{.*}/.exec(r)&&(n=JSON.parse(r)),{name:i||o,value:n}}connectedCallback(){const t=x({},this.getProps(this.attributes));this.root=(0,import_client3.createRoot)(this.shadowRoot),this.root.render((0,import_jsx_runtime.jsx)(import_antd.QRCode,x({},t)))}disconnectedCallback(){this.root.unmount()}}function registerQrcodeWebComponent(){customElements.get("qr-code")||customElements.define("qr-code",QRCodeWebComponent)}const useStyles$a=genStyleHook("nb-markdown",(e,{isDarkTheme:t})=>{const{componentCls:o}=e,r=new import_tinycolor.TinyColor(e.colorFillAlter).onBackground(e.colorBgContainer).toHexShortString(),i={lineHeight:"inherit","&.nb-markdown-default":{"pre code.hljs":{display:"block",overflowX:"auto",padding:"1em"},"code.hljs":{padding:"3px 5px"},":not(pre) code":{padding:"2px 5px",color:"#d56161",background:e.colorFillQuaternary,border:`1px solid ${e.colorBorder}`,borderRadius:e.borderRadiusSM},blockquote:{borderLeft:"4px solid #ccc",paddingLeft:"20px",marginLeft:"0",color:"#666",fontStyle:"italic"},img:{maxWidth:"100%"},".hljs":{background:"#f8f8f8",color:"#444"},".hljs-comment":{color:"#697070"},".hljs-punctuation,.hljs-tag":{color:"#444a"},".hljs-tag .hljs-attr,.hljs-tag .hljs-name":{color:"#444"},".hljs-attribute,.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-name,.hljs-selector-tag":{fontWeight:700},".hljs-deletion,.hljs-number,.hljs-quote,.hljs-selector-class,.hljs-selector-id,.hljs-string,.hljs-template-tag,.hljs-type":{color:"#800"},".hljs-section,.hljs-title":{color:"#800",fontWeight:700},".hljs-link,.hljs-operator,.hljs-regexp,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-symbol,.hljs-template-variable,.hljs-variable":{color:"#ab5656"},".hljs-literal":{color:"#695"},".hljs-addition,.hljs-built_in,.hljs-bullet,.hljs-code":{color:"#397300"},".hljs-meta":{color:"#1f7199"},".hljs-meta .hljs-string":{color:"#38a"},".hljs-emphasis":{fontStyle:"italic"},".hljs-strong":{fontWeight:700}},"&.nb-markdown-table":{table:{borderCollapse:"collapse",width:"100%",fontFamily:"Arial, sans-serif",marginBottom:"1.5rem"},"th, td":{borderBottom:`1px solid ${e.colorBorderSecondary}`,padding:`${e.paddingContentVertical}px ${e.paddingContentHorizontal}px`,textAlign:"left"},th:{backgroundColor:r,fontWeight:"bold",color:e.colorText},"tr:hover":{backgroundColor:e.colorFillTertiary},"tr:last-child td":{borderBottom:"none"},"tr:first-child th":{borderTop:"none"}}},n={"&.nb-markdown-default":{"pre code.hljs":{display:"block",overflowX:"auto",padding:"1em"},"code.hljs":{padding:"3px 5px"},":not(pre) code":{padding:"2px 5px",color:"#d56161",background:e.colorFillQuaternary,border:`1px solid ${e.colorBorder}`,borderRadius:e.borderRadiusSM},".hljs":{color:"#adbac7",background:"#22272e"},".hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_":{color:"#f47067"},".hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_":{color:"#dcbdfb"},".hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable":{color:"#6cb6ff"},".hljs-meta .hljs-string,.hljs-regexp,.hljs-string":{color:"#96d0ff"},".hljs-built_in,.hljs-symbol":{color:"#f69d50"},".hljs-code,.hljs-comment,.hljs-formula":{color:"#768390"},".hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag":{color:"#8ddb8c"},".hljs-subst":{color:"#adbac7"},".hljs-section":{color:"#316dca",fontWeight:700},".hljs-bullet":{color:"#eac55f"},".hljs-emphasis":{color:"#adbac7",fontStyle:"italic"},".hljs-strong":{color:"#adbac7",fontWeight:700},".hljs-addition":{color:"#b4f1b4",backgroundColor:"#1b4721"},".hljs-deletion":{color:"#ffd8d3",backgroundColor:"#78191b"}},"&.nb-markdown-table":{table:{borderCollapse:"collapse",width:"100%",fontFamily:"Arial, sans-serif",marginBottom:"1.5rem"},"th, td":{borderBottom:`1px solid ${e.colorBorderSecondary}`,padding:`${e.paddingContentVertical}px ${e.paddingContentHorizontal}px`,textAlign:"left"},th:{backgroundColor:r,fontWeight:"bold",color:e.colorText},"tr:hover":{backgroundColor:e.colorFillTertiary},"tr:last-child td":{borderBottom:"none"},"tr:first-child th":{borderTop:"none"}}};return{[o]:x({lineHeight:e.lineHeight,"& > *:last-child":{marginBottom:"0"},".ant-description-textarea, .ant-description-input":{lineHeight:e.lineHeight},".field-interface-datetime":{minWidth:"100px"}},t?n:i)}}),parseMarkdown$1=import_lodash.default.memoize(e=>L(void 0,null,function*(){return e&&(yield Promise.resolve().then(()=>require("./md-BbvRKckr-IQIU5F3r.js"))).default.render(e)}));function useParseMarkdown$1(e){const[t,o]=(0,import_react2.useState)(""),[r,i]=(0,import_react2.useState)(!0);return(0,import_react2.useEffect)(()=>{i(!0),parseMarkdown$1(e).then(n=>{o(n),i(!1)}).catch(n=>console.log(n))},[e]),{html:t,loading:r}}function convertToText$2(e){const t=e;let o=document.createElement("div");o.innerHTML=t;const r=o.innerText;return o=null,(r==null?void 0:r.replace(/[\n\r]/g,""))||""}const MarkdownEditor=e=>{const{scope:t}=e,{t:o,i18n:r}=(0,import_react_i18next.useTranslation)(),[i,n]=(0,import_react2.useState)(e.defaultValue),l=(0,import_react2.useRef)(null),[a,c]=(0,import_react2.useState)([]),[u,d]=(0,import_react2.useState)(null);(0,import_react2.useEffect)(()=>{c(t)},[t]),(0,import_react2.useEffect)(()=>{var p,h;const g=(h=(p=l==null?void 0:l.current)==null?void 0:p.resizableTextArea)==null?void 0:h.textArea;u&&g&&g.setSelectionRange(u,u)},[u]);const m=(0,import_react2.useCallback)(function(p){var h;const g=p.filter(F=>!!F.trim()),{current:f}=l,_=(h=f==null?void 0:f.resizableTextArea)==null?void 0:h.textArea;if(!_||!g)return;f.focus();const v=`{{${p.join(".")}}}`,y=_.selectionStart||0,C=i.substring(0,y)+v+i.substring(y,i.length),b=y+v.length;n(C),d(b)},[i]);return(0,import_jsx_runtime.jsxs)("div",{className:"mb-markdown",style:{position:"relative",paddingTop:"20px"},children:[(0,import_jsx_runtime.jsx)(import_antd.Input.TextArea,A(x({ref:l,autoSize:{minRows:3}},e),{value:i,onChange:p=>{n(p.target.value)},style:{paddingBottom:"40px"}})),(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsxs)("span",{style:{marginLeft:".25em"},className:"ant-formily-item-extra",children:[o("Syntax references"),":"]}),(0,import_jsx_runtime.jsx)("a",{href:`https://${r.language==="zh-CN"?"docs-cn":"docs"}.nocobase.com/handbook/template-handlebars`,target:"_blank",rel:"noreferrer",children:"Handlebars.js"})]}),(0,import_jsx_runtime.jsx)("div",{style:{position:"absolute",top:21,right:1},children:(0,import_jsx_runtime.jsx)(VariableSelect,{options:a,setOptions:c,onInsert:m})}),(0,import_jsx_runtime.jsxs)(import_antd.Space,{style:{position:"absolute",bottom:30,right:5},children:[(0,import_jsx_runtime.jsx)(import_antd.Button,{onClick:p=>{var h;(h=e.onCancel)==null||h.call(e,p)},children:o("Cancel")}),(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"primary",onClick:()=>{var p;(p=e.onSubmit)==null||p.call(e,i)},children:o("Save")})]})]})},useMarkdownHeight=()=>{const{token:e}=import_antd.theme.useToken(),t=useBlockHeight$2();if(t)return t-2*e.paddingLG};function extractNFormPaths(e){const t=/\{\{\$nForm\.([\w.]+)\}\}/g;return[...e.matchAll(t)].map(o=>o[1])}function getValuesByPaths(e,t){const o={};for(const r of t){const i=r.split(".");let n=e;for(const l of i)if(n&&typeof n=="object"&&l in n)n=n[l];else{n=void 0;break}o[r]=n}return o}const MarkdownVoidInner=withDynamicSchemaProps((0,import_react.observer)(e=>{const{isDarkTheme:t}=useGlobalTheme(),{componentCls:o,hashId:r}=useStyles$a({isDarkTheme:t}),{content:i,className:n}=e,l=(0,import_react.useField)(),a=(0,import_react.useFieldSchema)(),{dn:c}=useDesignable(),{onSave:u,onCancel:d,form:m}=e,p=useCollectionRecord(),[h,g]=(0,import_react2.useState)(""),f=useVariables$1(),_=useLocalVariables$1(),{engine:v}=(a==null?void 0:a["x-decorator-props"])||{},[y,C]=(0,import_react2.useState)(!1),{t:b,i18n:F}=(0,import_react_i18next.useTranslation)(),S=(0,import_react.useForm)(),P=extractNFormPaths(i),[j,I]=(0,import_react2.useState)(null);(0,import_react2.useEffect)(()=>{if(P.length>0){const D=(0,import_shared.uid)();return setTimeout(()=>{S.addEffects(D,()=>(0,import_reactive.reaction)(()=>{const w=getValuesByPaths(S.values,P);return JSON.stringify(w)},()=>{I((0,import_shared.uid)())},{fireImmediately:!0,equals:import_lodash.isEqual}))}),()=>{S.removeEffects(D)}}},[]),(0,import_react2.useEffect)(()=>{C(!0),L(void 0,null,function*(){setTimeout(()=>L(void 0,null,function*(){const D=yield getRenderContent(v,i,f,_,parseMarkdown$1,b);g(D)})),C(!1)})},[i,f,_,v,j]);const T=useMarkdownHeight(),N=useVariableOptions({collectionField:{uiSchema:a},form:m,record:p,uiSchema:a,noDisabled:!0});return(0,import_react2.useEffect)(()=>{registerQrcodeWebComponent()},[]),y?(0,import_jsx_runtime.jsx)(import_antd.Spin,{}):l!=null&&l.editable?(0,import_jsx_runtime.jsx)(MarkdownEditor,A(x({scope:N},e),{className:!0,defaultValue:i,onCancel:()=>{l.editable=!1,d==null||d()},onSubmit:D=>L(void 0,null,function*(){l.editable=!1,a["x-component-props"]!=null||(a["x-component-props"]={}),a["x-component-props"].content=D,l.componentProps.content=D,u==null||u(a),c.emit("patch",{schema:{"x-uid":a["x-uid"],"x-component-props":{content:D}}})})})):(0,import_jsx_runtime.jsx)("div",{className:(0,import_classnames.default)([o,r,"nb-markdown nb-markdown-default nb-markdown-table",n]),style:A(x({},e.style),{height:T||"100%",overflowY:T?"auto":"null"}),dangerouslySetInnerHTML:{__html:h}})}),{displayName:"MarkdownVoid"}),MarkdownVoid=e=>{const t=useFlag(),o=(0,import_react.useFieldSchema)();return(0,import_jsx_runtime.jsx)(VariableScope,{scopeId:o==null?void 0:o["x-uid"],type:"markdownBlock",children:(0,import_jsx_runtime.jsx)(FlagProvider,A(x({},t),{collectionField:!0,children:(0,import_jsx_runtime.jsx)(MarkdownVoidInner,x({},e))}))})};MarkdownVoid.Designer=MarkdownVoidDesigner;const Markdown$1=(0,import_react.connect)(import_antd.Input.TextArea,(0,import_react.mapProps)((e,t)=>A(x({autoSize:{maxRows:10,minRows:3}},e),{suffix:(0,import_jsx_runtime.jsx)("span",{children:t!=null&&t.loading||t!=null&&t.validating?(0,import_jsx_runtime.jsx)(import_icons.LoadingOutlined,{}):e.suffix})})),(0,import_react.mapReadPretty)(e=>(0,import_jsx_runtime.jsx)(MarkdownReadPretty,x({},e)))),MarkdownReadPretty=e=>{const{isDarkTheme:t}=useGlobalTheme(),{wrapSSR:o,hashId:r,componentCls:i}=useStyles$a({isDarkTheme:t}),{html:n="",loading:l}=useParseMarkdown$1(e.value),a=(0,import_react2.useMemo)(()=>convertToText$2(n),[n]);if(l)return o((0,import_jsx_runtime.jsx)(import_antd.Spin,{}));const c=(0,import_jsx_runtime.jsx)("div",{className:`${r} ${i} nb-markdown nb-markdown-default nb-markdown-table`,dangerouslySetInnerHTML:{__html:n}});return o((0,import_jsx_runtime.jsx)(ReadPretty$c.TextArea,A(x({},e),{autop:!1,text:a,value:c})))};Markdown$1.Void=MarkdownVoid;const BlockItemCardContext=(0,import_react2.createContext)({}),BlockItemCard$1=import_react2.default.forwardRef((e,t)=>{var o=e,{children:r}=o,i=te(o,["children"]);const{token:n}=useToken(),l=i,{title:a,description:c}=l,u=te(l,["title","description"]),d=(0,import_react2.useMemo)(()=>({marginBottom:n.marginBlock,height:"100%"}),[n.marginBlock]),[m,p]=(0,import_react2.useState)(0),h=(0,import_react2.useRef)(null),{t:g}=(0,import_react_i18next.useTranslation)(),f=(0,import_react.useFieldSchema)(),_=f==null?void 0:f["x-block-linkage-rules"];(0,import_react2.useEffect)(()=>{const C=setTimeout(()=>{if(h.current){const b=c?h.current.parentElement.parentElement.parentElement.offsetHeight:n.fontSizeLG*n.lineHeightLG+n.padding*2-1;p(b)}else m&&p(0)},500);return()=>clearTimeout(C)},[a,c]);const v=(a||c)&&(0,import_jsx_runtime.jsxs)("div",{ref:h,style:{padding:"8px 0px 8px"},children:[(0,import_jsx_runtime.jsxs)("span",{children:[" ",g(a,{ns:NAMESPACE_UI_SCHEMA})]}),c&&(0,import_jsx_runtime.jsx)(MarkdownReadPretty,{value:g(c,{ns:NAMESPACE_UI_SCHEMA}),style:{overflowWrap:"break-word",whiteSpace:"normal",fontWeight:400,color:n.colorTextDescription,borderRadius:"4px"}})]}),y=(0,import_jsx_runtime.jsx)(BlockItemCardContext.Provider,{value:{titleHeight:m},children:(0,import_jsx_runtime.jsx)(import_antd.Card,A(x({ref:t,variant:"borderless",style:d},u),{title:v,children:r}))});return _?(0,import_jsx_runtime.jsx)(BlockLinkageRuleProvider,{children:y}):y});BlockItemCard$1.displayName="BlockItemCard";const useBlockHeightProps=()=>{var e,t,o;const r=(0,import_react.useFieldSchema)(),i=getCardItemSchema(r),n=(e=useBlockTemplateContext())==null?void 0:e.fieldSchema,l=(0,import_react2.useMemo)(()=>getPageSchema(n||r),[]),{disablePageHeader:a,enablePageTabs:c,hidePageTitle:u}=(l==null?void 0:l["x-component-props"])||{},{titleHeight:d}=(0,import_react2.useContext)(BlockItemCardContext)||{},{allAccessRoutes:m}=useAllAccessDesktopRoutes(),p=useCurrentPageUid(),h=(0,import_react2.useMemo)(()=>findRouteBySchemaUid(p,m),[p,m]);return{heightProps:A(x({},i==null?void 0:i["x-component-props"]),{title:((t=i==null?void 0:i["x-component-props"])==null?void 0:t.title)||((o=i==null?void 0:i["x-component-props"])==null?void 0:o.description),disablePageHeader:a,enablePageTabs:(h==null?void 0:h.enableTabs)||c,hidePageTitle:u,titleHeight:d})}},getPageSchema=e=>e?e["x-component"]==="Page"?e:getPageSchema(e.parent):null,getCardItemSchema=e=>e?["BlockItem","CardItem"].includes(e["x-component"])?e:getCardItemSchema(e.parent):null,useDataBlockParentRecord=({association:e})=>{var t;const o=useCollectionRecordData(),r=useCollectionParentRecordData(),i=useCollectionManager(),n=useCollection();if(!e)return;const l=i.getCollection(e.split(".")[0]);return n.name===l.name||(t=n.getParentCollectionsName)!=null&&t.call(n).includes(l.name)?o:r},usePickActionProps$1=()=>{const e=(0,import_react.useForm)();return{onClick(){console.log("usePickActionProps",e.values)}}};function renderTemplate(e,t){const o=/\{\{\s*((\w+\.?)+)\s*\}\}/g;return e.replace(o,function(r,i){return(0,import_get.default)(t,i)||""})}function getFilteredFormValues(e){const t=import_lodash.default.cloneDeep(e.values),o=[];return e.query("*").forEach(r=>{r&&o.push(r)}),import_lodash.default.uniq(o.filter(r=>{var i,n;const l=((i=r.path)==null?void 0:i.segments)||[],a=l.length<=1?l.join("."):l.slice(0,-1).join(".");return((n=r==null?void 0:r.componentProps)==null?void 0:n.readOnlySubmit)&&!(0,import_get.default)(t,a)[r==null?void 0:r.componentProps.filterTargetKey]}).map(r=>{var i;const n=((i=r.path)==null?void 0:i.segments)||[];return n.length<=1?n.join("."):n.slice(0,-1).join(".")})).forEach((r,i)=>{(i!==0||r.includes("."))&&!t[r]&&import_lodash.default.unset(t,r)}),t}function getFormValues({filterByTk:e,field:t,form:o,fieldNames:r,getField:i,resource:n,actionFields:l}){if(e&&l){const a=Object.keys(o.values).filter(c=>{const u=i(c);return!l.includes(c)&&["hasOne","hasMany","belongsTo","belongsToMany"].includes(u==null?void 0:u.type)});return(0,import_omit.default)(x({},o.values),a)}return getFilteredFormValues(o)}function useCollectValuesToSubmit(e){const t=(0,import_react.useForm)(),o=e??t,r=useFilterByTk(),{field:i,resource:n}=useBlockRequestContext(),{fields:l,getField:a,getTreeParentField:c,name:u}=useCollection_deprecated(),d=l.map(v=>v.name),{fieldSchema:m}=useActionContext(),{getActiveFieldsName:p}=useFormActiveFields()||{},h=useVariables$1(),g=useLocalVariables$1({currentForm:o}),f=(0,import_react.useFieldSchema)(),_=useTreeParentRecord();return(0,import_react2.useCallback)(()=>L(this,null,function*(){var v,y,C,b;const{assignedValues:F={},overwriteValues:S}=(v=f==null?void 0:f["x-action-settings"])!=null?v:{},P=getFormValues({filterByTk:r,field:i,form:o,fieldNames:d,getField:a,resource:n,actionFields:(p==null?void 0:p("form"))||[]}),j={},I=Object.keys(F).map(T=>L(this,null,function*(){const N=F[T],D=a(T);if(isVariable$1(N)){const{value:w}=(yield h==null?void 0:h.parseVariable(N,g))||{};j[T]=transformVariableValue(w,{targetCollectionField:D})}else N!==""&&(j[T]=N)}));if(yield Promise.all(I),(y=m==null?void 0:m["x-component-props"])==null?void 0:y.addChild){const T=c();P[(C=T==null?void 0:T.name)!=null?C:"parent"]=_,P[(b=T==null?void 0:T.foreignKey)!=null?b:"parentId"]=_==null?void 0:_.id}return x(x(x({},P),S),j)}),[f,i,d,m,r,o,p,a,c,g,u,n,_,h])}const useCreateActionProps=()=>{var e;const t=useFilterByTk(),o=useCollectionRecord(),r=(0,import_react.useForm)(),{field:i,resource:n}=useBlockRequestContext(),{setVisible:l,setSubmitted:a,setFormValueChanged:c}=useActionContext(),u=useNavigateNoUpdate(),d=(0,import_react.useFieldSchema)(),m=(0,import_react.useField)(),p=useCompile(),{modal:h}=import_antd.App.useApp(),{t:g}=(0,import_react_i18next.useTranslation)(),{updateAssociationValues:f}=useFormBlockContext(),_=useCollectValuesToSubmit(),v=o.isNew?m.componentProps.saveMode||"create":"update",y=((e=m.componentProps.filterKeys)==null?void 0:e.checked)||[],C=useLocalVariables$1(),b=useVariables$1();return{onClick(){return L(this,null,function*(){var F,S;const{onSuccess:P,skipValidator:j,triggerWorkflows:I}=(F=d==null?void 0:d["x-action-settings"])!=null?F:{},{manualClose:T,redirecting:N,redirectTo:D,successMessage:w,actionAfterSuccess:k}=P||{};j||(yield r.submit());const B=yield _();m.data=i.data||{},m.data.loading=!0;try{const E=yield n[v]({values:B,filterKeys:y,filterByTk:t,triggerWorkflows:I!=null&&I.length?I.map(O=>[O.workflowKey,O.context].filter(Boolean).join("!")).join(","):void 0,updateAssociationValues:f});let M=D;if(D&&(M=yield getVariableValue(D,{variables:b,localVariables:[...C,{name:"$record",ctx:new Proxy((S=E==null?void 0:E.data)==null?void 0:S.data,{})}]})),(k==="previous"||!k&&N!==!0)&&(l==null||l(!1)),a==null||a(!0),c==null||c(!1),m.data.loading=!1,m.data.data=E,!w){import_antd.message.success(g("Saved successfully")),yield resetFormCorrectly(r),(N&&!k||k==="redirect")&&M&&((0,import_client.isURL)(M)?window.location.href=M:u(M));return}T?h.success({title:p(w),onOk:()=>L(this,null,function*(){yield resetFormCorrectly(r),(N&&!k||k==="redirect")&&M&&((0,import_client.isURL)(M)?window.location.href=M:u(M))})}):(import_antd.message.success(p(w)),yield resetFormCorrectly(r),(N&&!k||k==="redirect")&&M&&((0,import_client.isURL)(M)?window.location.href=M:u(M)))}catch{m.data.loading=!1}})}}},useAssociationCreateActionProps=()=>{var e;const t=(0,import_react.useForm)(),{field:o,resource:r,__parent:i}=useBlockRequestContext(),{setVisible:n,fieldSchema:l,setSubmitted:a}=useActionContext(),c=(0,import_react.useFieldSchema)(),u=(0,import_react.useField)(),{fields:d,getField:m,getTreeParentField:p,name:h}=useCollection_deprecated(),g=useCompile(),f=useFilterByTk(),_=useRecord(),v=useVariables$1(),y=useLocalVariables$1({currentForm:t}),{getActiveFieldsName:C}=useFormActiveFields()||{},b=u.componentProps.saveMode||"create",F=((e=u.componentProps.filterKeys)==null?void 0:e.checked)||[];return{onClick(){return L(this,null,function*(){var S,P,j,I,T,N;const D=d.map(U=>U.name),{assignedValues:w={},onSuccess:k,overwriteValues:B,skipValidator:E,triggerWorkflows:M}=(S=c==null?void 0:c["x-action-settings"])!=null?S:{},O=(P=l==null?void 0:l["x-component-props"])==null?void 0:P.addChild,{successMessage:V}=k||{},$={},q=Object.keys(w).map(U=>L(this,null,function*(){const K=w[U],W=m(U);if(isVariable$1(K)){const{value:Y}=(yield v==null?void 0:v.parseVariable(K,y))||{};$[U]=transformVariableValue(Y,{targetCollectionField:W})}else K!==""&&($[U]=K)}));yield Promise.all(q),E||(yield t.submit());const z=getFormValues({filterByTk:f,field:o,form:t,fieldNames:D,getField:m,resource:r,actionFields:(C==null?void 0:C("form"))||[]});if(O){const U=p();z[(j=U==null?void 0:U.name)!=null?j:"parent"]=_,z[(I=U==null?void 0:U.foreignKey)!=null?I:"parentId"]=_.id}u.data=o.data||{},u.data.loading=!0;try{const U=yield r[b]({values:x(x(x({},z),B),$),filterKeys:F,triggerWorkflows:M!=null&&M.length?M.map(K=>[K.workflowKey,K.context].filter(Boolean).join("!")).join(","):void 0});if(u.data.loading=!1,u.data.data=U,(N=(T=i==null?void 0:i.service)==null?void 0:T.refresh)==null||N.call(T),n==null||n(!1),a==null||a(!0),!V)return;import_antd.message.success(g(V))}catch{u.data.data=null,u.data.loading=!1}})}}},findFilterTargets=e=>{for(;e;){if(e["x-filter-targets"])return{targets:e["x-filter-targets"],uid:e["x-uid"]};e=e.parent}return{}},updateFilterTargets=(e,t)=>{for(;e;){if(e["x-filter-targets"]){e["x-filter-targets"]=t;return}e=e.parent}},useDoFilter=()=>{const e=(0,import_react.useForm)(),{getDataBlocks:t}=useFilterBlock(),o=useCollectionManager(),{getOperators:r}=useOperators(),i=(0,import_react.useFieldSchema)(),{name:n}=useCollection(),{targets:l=[],uid:a}=(0,import_react2.useMemo)(()=>findFilterTargets(i),[i]),c=(0,import_react2.useCallback)(()=>removeNullCondition(transformToFilter(e.values,r(),o.getCollectionField.bind(o),n)),[e.values,o,r,n]),u=(0,import_react2.useCallback)((...d)=>L(void 0,[...d],function*({doNothingWhenFilterIsEmpty:m=!1}={}){try{yield Promise.all(t().map(p=>L(void 0,null,function*(){var h,g,f,_;if(!l.find(b=>b.uid===p.uid))return;const v=((h=p.service.params)==null?void 0:h[0])||{},y=((f=(g=p.service.params)==null?void 0:g[1])==null?void 0:f.filters)||{};y[a]=c();const C=mergeFilter([...Object.values(y).map(b=>removeNullCondition(b)),p.defaultFilter]);if(import_lodash.default.isEmpty(y[a])&&((_=p.clearSelection)==null||_.call(p)),!(m&&import_lodash.default.isEmpty(y[a])))return p.dataLoadingMode==="manual"&&import_lodash.default.isEmpty(y[a])?p.clearData():(import_lodash.default.set(p.service.params,"1.filters",y),p.doFilter(A(x({},v),{page:1,filter:C}),{filters:y}))})))}catch(p){console.error(p)}}),[t,c,l,a]);return(0,import_react2.useEffect)(()=>{setTimeout(()=>{u({doNothingWhenFilterIsEmpty:!0})},500)},[u]),{doFilter:u,getFilterFromCurrentForm:c}},useFilterBlockActionProps=()=>{const{doFilter:e}=useDoFilter(),t=(0,import_react.useField)();return t.data=t.data||{},{onClick(){return L(this,null,function*(){t.data.loading=!0,yield e(),t.data.loading=!1})}}},useDoReset=()=>{const e=(0,import_react.useForm)(),t=(0,import_react.useFieldSchema)(),{getDataBlocks:o}=useFilterBlock(),{targets:r,uid:i}=findFilterTargets(t),{doFilter:n,getFilterFromCurrentForm:l}=useDoFilter();return{doReset:()=>L(void 0,null,function*(){var a;if(yield e.reset(void 0,{forceClear:!!((a=t==null?void 0:t["x-component-props"])!=null&&a.clearDefaultValue)}),import_lodash.default.isEmpty(l()))return doReset({getDataBlocks:o,targets:r,uid:i});yield n()})}},useResetBlockActionProps=()=>{const e=(0,import_react.useField)(),{doReset:t}=useDoReset();return e.data=e.data||{},{onClick(){return L(this,null,function*(){e.data.loading=!0,yield t(),e.data.loading=!1})}}},useCustomizeUpdateActionProps=()=>{const{resource:e,__parent:t,field:o,service:r}=useBlockRequestContext(),i=useFilterByTk(),n=(0,import_react.useFieldSchema)(),l=(0,import_react.useField)(),a=useNavigateNoUpdate(),c=useCompile(),u=(0,import_react.useForm)(),{modal:d}=import_antd.App.useApp(),m=useVariables$1(),p=useLocalVariables$1({currentForm:u}),{name:h,getField:g}=useCollection_deprecated(),{setVisible:f}=useActionContext();return{onClick(_,v){return L(this,null,function*(){var y,C,b,F;const{assignedValues:S={},onSuccess:P,skipValidator:j,triggerWorkflows:I}=(y=n==null?void 0:n["x-action-settings"])!=null?y:{},{manualClose:T,redirecting:N,redirectTo:D,successMessage:w,actionAfterSuccess:k}=P||{},B={},E=Object.keys(S).map(M=>L(this,null,function*(){const O=S[M],V=g(M);if(isVariable$1(O)){const{value:$}=(yield m==null?void 0:m.parseVariable(O,p))||{};B[M]=transformVariableValue($,{targetCollectionField:V})}else O!==""&&(B[M]=O)}));if(yield Promise.all(E),j===!1&&(yield u.submit()),l.data=l.data||{},!l.data.loading){l.data.loading=!0;try{const M=yield e.update({filterByTk:i,values:x({},B),triggerWorkflows:I!=null&&I.length?I.map(V=>[V.workflowKey,V.context].filter(Boolean).join("!")).join(","):void 0});let O=D;if(D&&(O=yield getVariableValue(D,{variables:m,localVariables:[...p,{name:"$record",ctx:new Proxy((C=M==null?void 0:M.data)==null?void 0:C.data,{})}]})),(k==="previous"||!k&&N!==!0)&&(f==null||f(!1)),v&&(v==null||v()),e instanceof TableFieldResource||(F=(b=t==null?void 0:t.service)==null?void 0:b.refresh)==null||F.call(b),!w)return;T?d.success({title:c(w),onOk:()=>L(this,null,function*(){(N&&!k||k==="redirect")&&O&&((0,import_client.isURL)(O)?window.location.href=O:a(O))})}):(import_antd.message.success(c(w)),(N&&!k||k==="redirect")&&O&&((0,import_client.isURL)(O)?window.location.href=O:a(O)))}catch(M){console.error(M)}finally{l.data.loading=!1}}})}}},useCustomizeBulkUpdateActionProps=()=>{var e,t,o,r;const{field:i,resource:n,__parent:l,service:a}=useBlockRequestContext(),c=(0,import_react2.useContext)(import_react.SchemaExpressionScopeContext),u=(0,import_react.useFieldSchema)(),d=useTableBlockContext(),{rowKey:m}=d,p=(r=(o=(t=(e=d.field)==null?void 0:e.data)==null?void 0:t.selectedRowKeys)!=null?o:c==null?void 0:c.selectedRecordKeys)!=null?r:{},h=useNavigateNoUpdate(),g=useCompile(),{t:f}=(0,import_react_i18next.useTranslation)(),_=(0,import_react.useField)(),{modal:v}=import_antd.App.useApp(),y=useVariables$1();useRecord();const{name:C,getField:b}=useCollection_deprecated(),F=useLocalVariables$1(),{setVisible:S}=useActionContext();return{onClick(){return L(this,null,function*(){var P;const{assignedValues:j={},onSuccess:I,updateMode:T}=(P=u==null?void 0:u["x-action-settings"])!=null?P:{},{manualClose:N,redirecting:D,redirectTo:w,successMessage:k,actionAfterSuccess:B}=I||{};_.data=i.data||{},_.data.loading=!0;const E={},M=Object.keys(j).map(O=>L(this,null,function*(){const V=j[O],$=b(O);if(isVariable$1(V)){const{value:q}=(yield y==null?void 0:y.parseVariable(V,F))||{};E[O]=transformVariableValue(q,{targetCollectionField:$})}else V!==""&&(E[O]=V)}));yield Promise.all(M),(B==="previous"||!B&&D!==!0)&&(S==null||S(!1)),v.confirm({title:f("Bulk update"),content:f(T==="selected"?"Update selected data?":"Update all data?"),onOk(){return L(this,null,function*(){var O,V,$,q;const{filter:z}=(V=(O=a.params)==null?void 0:O[0])!=null?V:{},U={values:x({},E),filter:z,forceUpdate:!1};if(T==="selected"){if(!(p!=null&&p.length)){import_antd.message.error(f("Please select the records to be updated")),_.data.loading=!1;return}U.filter={$and:[{[m||"id"]:{$in:p}}]}}U.filter||(U.forceUpdate=!0);try{yield n.update(U)}catch{}finally{_.data.loading=!1}n instanceof TableFieldResource||(q=($=l==null?void 0:l.service)==null?void 0:$.refresh)==null||q.call($),k&&(N?v.success({title:g(k),onOk:()=>L(this,null,function*(){(D&&!B||B==="redirect")&&w&&((0,import_client.isURL)(w)?window.location.href=w:h(w))})}):(import_antd.message.success(g(k)),(D&&!B||B==="redirect")&&w&&((0,import_client.isURL)(w)?window.location.href=w:h(w))))})},onCancel(){return L(this,null,function*(){_.data.loading=!1})}})})}}},useCustomizeRequestActionProps=()=>{var e;const t=useAPIClient(),o=useNavigateNoUpdate(),r=useFilterByTk(),i=(0,import_react.useFieldSchema)(),n=useCompile(),l=(0,import_react.useForm)(),{fields:a,getField:c}=useCollection_deprecated(),{field:u,resource:d,__parent:m,service:p}=useBlockRequestContext(),h=useRecord(),g=useCurrentUserContext(),f=(e=g==null?void 0:g.data)==null?void 0:e.data,_=(0,import_react.useField)(),{t:v}=(0,import_react_i18next.useTranslation)(),{setVisible:y}=useActionContext(),{modal:C}=import_antd.App.useApp(),{getActiveFieldsName:b}=useFormActiveFields()||{};return{onClick(){return L(this,null,function*(){var F,S,P,j;const{skipValidator:I,onSuccess:T,requestSettings:N}=(F=i==null?void 0:i["x-action-settings"])!=null?F:{},{manualClose:D,redirecting:w,redirectTo:k,successMessage:B,actionAfterSuccess:E}=T||{},M=i==null?void 0:i["x-action"];if(!N.url)return;I!==!0&&M==="customize:form:request"&&(yield l.submit());const O=N.headers?JSON.parse(N.headers):{},V=N.params?JSON.parse(N.params):{},$=N.data?JSON.parse(N.data):{};if(M==="customize:form:request"&&["POST","PUT","PATCH"].includes(N.method)){const z=a.map(K=>K.name),U=getFormValues({filterByTk:r,field:u,form:l,fieldNames:z,getField:c,resource:d,actionFields:(b==null?void 0:b("form"))||[]});Object.assign($,U)}const q={url:renderTemplate(N.url,{currentRecord:h,currentUser:f}),method:N.method,headers:(0,import_client.parse)(O)({currentRecord:h,currentUser:f}),params:(0,import_client.parse)(V)({currentRecord:h,currentUser:f}),data:(0,import_client.parse)($)({currentRecord:h,currentUser:f})};_.data=u.data||{},_.data.loading=!0;try{yield t.request(x({},q)),_.data.loading=!1,d instanceof TableFieldResource||(P=(S=m==null?void 0:m.service)==null?void 0:S.refresh)==null||P.call(S),(j=p==null?void 0:p.refresh)==null||j.call(p),M==="customize:form:request"&&(E==="previous"||!E&&w!==!0)&&(y==null||y(!1)),B||(import_antd.message.success(v("Saved successfully")),yield resetFormCorrectly(l),(w&&!E||E==="redirect")&&k&&((0,import_client.isURL)(k)?window.location.href=k:o(k))),D?C.success({title:n(B),onOk:()=>L(this,null,function*(){(w&&!E||E==="redirect")&&k&&((0,import_client.isURL)(k)?window.location.href=k:o(k))})}):import_antd.message.success(n(B))}finally{_.data.loading=!1}})}}},useUpdateActionProps=()=>{const e=(0,import_react.useForm)(),t=useFilterByTk(),{field:o,resource:r,__parent:i}=useBlockRequestContext(),{setVisible:n,setFormValueChanged:l}=useActionContext(),a=(0,import_react.useFieldSchema)(),c=useNavigateNoUpdate(),{fields:u,getField:d,name:m}=useCollection_deprecated(),p=useCompile(),h=(0,import_react.useField)(),{updateAssociationValues:g}=useFormBlockContext(),{modal:f}=import_antd.App.useApp(),_=useParamsFromRecord(),v=useVariables$1(),y=useLocalVariables$1({currentForm:e}),{getActiveFieldsName:C}=useFormActiveFields()||{};return{onClick(b,F){return L(this,null,function*(){var S,P;const{assignedValues:j={},onSuccess:I,overwriteValues:T,skipValidator:N,triggerWorkflows:D}=(S=a==null?void 0:a["x-action-settings"])!=null?S:{},{manualClose:w,redirecting:k,redirectTo:B,successMessage:E,actionAfterSuccess:M}=I||{},O={},V=Object.keys(j).map(z=>L(this,null,function*(){const U=j[z],K=d(z);if(isVariable$1(U)){const{value:W}=(yield v==null?void 0:v.parseVariable(U,y))||{};O[z]=transformVariableValue(W,{targetCollectionField:K})}else U!==""&&(O[z]=U)}));yield Promise.all(V),N||(yield e.submit());const $=u.map(z=>z.name),q=getFormValues({filterByTk:t,field:o,form:e,fieldNames:$,getField:d,resource:r,actionFields:(C==null?void 0:C("form"))||[]});h.data=o.data||{},h.data.loading=!0;try{const z=yield r.update(A(x({filterByTk:t,values:x(x(x({},q),T),O)},_),{updateAssociationValues:g,triggerWorkflows:D!=null&&D.length?D.map(K=>[K.workflowKey,K.context].filter(Boolean).join("!")).join(","):void 0}));h.data.loading=!1,F&&(F==null||F());let U=B;if(B&&(U=yield getVariableValue(B,{variables:v,localVariables:[...y,{name:"$record",ctx:new Proxy((P=z==null?void 0:z.data)==null?void 0:P.data,{})}]})),(M==="previous"||!M&&k!==!0)&&(n==null||n(!1)),l==null||l(!1),!E)return;w?f.success({title:p(E),onOk:()=>L(this,null,function*(){yield e.reset(),(k&&!M||M==="redirect")&&U&&((0,import_client.isURL)(U)?window.location.href=U:c(U))})}):(import_antd.message.success(p(E)),(k&&!M||M==="redirect"||M==="redirect")&&U&&((0,import_client.isURL)(U)?window.location.href=U:c(U)))}catch{h.data.loading=!1}})}}},useDestroyActionProps=()=>{const e=useFilterByTk(),{resource:t,service:o,block:r,field:i,__parent:n}=useBlockRequestContext(),{setVisible:l,setSubmitted:a}=useActionContext(),c=useParamsFromRecord(),u=(0,import_react.useFieldSchema)(),d=(0,import_react.useField)();return{onClick(m,p){return L(this,null,function*(){var h,g,f,_,v,y,C;const{triggerWorkflows:b}=(h=u==null?void 0:u["x-action-settings"])!=null?h:{};d.data=i.data||{},d.data.loading=!0;try{yield t.destroy(x({filterByTk:e,triggerWorkflows:b!=null&&b.length?b.map(j=>[j.workflowKey,j.context].filter(Boolean).join("!")).join(","):void 0},c));const{count:F=0,page:S=0,pageSize:P=0}=((g=o==null?void 0:o.data)==null?void 0:g.meta)||{};if(F%P===1&&S!==1){const j=(f=o.params[0])==null?void 0:f.page,I=(v=(_=o.data)==null?void 0:_.meta)==null?void 0:v.totalPage;j===I&&o.params[0]&&j!==1&&(o.params[0].page=j-1)}p&&(p==null||p()),a==null||a(!0),r&&r!=="TableField"&&((C=(y=n==null?void 0:n.service)==null?void 0:y.refresh)==null||C.call(y),l==null||l(!1),a==null||a(!0))}catch(F){console.error(F),d.data.loading=!0}})}}},useRemoveActionProps=e=>{const t=useFilterByTk(),o=useAPIClient().resource(e,t);return{onClick(r){return L(this,null,function*(){yield o.remove({values:[r.id]})})}}},useDisassociateActionProps=()=>{const e=useFilterByTk(),{resource:t,service:o,block:r,__parent:i}=useBlockRequestContext(),{setVisible:n,setSubmitted:l,setFormValueChanged:a}=useActionContext();return{onClick(c,u){return L(this,null,function*(){var d,m,p,h;yield t.remove({values:[e]});const{count:g=0,page:f=0,pageSize:_=0}=((d=o==null?void 0:o.data)==null?void 0:d.meta)||{};g%_===1&&f!==1?o.run(A(x({},(m=o==null?void 0:o.params)==null?void 0:m[0]),{page:f-1})):u&&(u==null||u()),l==null||l(!0),r&&r!=="TableField"&&((h=(p=i==null?void 0:i.service)==null?void 0:p.refresh)==null||h.call(p),n==null||n(!1),a==null||a(!1))})}}},useBulkDestroyActionProps=()=>{const{field:e}=useBlockRequestContext(),{resource:t,service:o}=useBlockRequestContext(),{setSubmitted:r}=useActionContext(),i=useCollection_deprecated(),{filterTargetKey:n}=i;return{onClick(l,a){return L(this,null,function*(){var c,u,d,m,p,h,g;let f=(c=e.data)==null?void 0:c.selectedRowKeys;if(Array.isArray(n)&&(f=e.data.selectedRowData.map(y=>{const C={};return n.map(b=>{C[b]=y[b]}),C})),!((d=(u=e==null?void 0:e.data)==null?void 0:u.selectedRowKeys)!=null&&d.length))return;yield t.destroy({filterByTk:f}),e.data.selectedRowKeys=[];const _=(m=o.params[0])==null?void 0:m.page,v=(h=(p=o.data)==null?void 0:p.meta)==null?void 0:h.totalPage;_===v&&o.params[0]&&_!==1&&(o.params[0].page=_-1),a&&(a==null||a()),r==null||r(!0),(g=o==null?void 0:o.refresh)==null||g.call(o)})}}},useRefreshActionProps=()=>{const{service:e}=useBlockRequestContext();return{onClick(){return L(this,null,function*(){var t;(t=e==null?void 0:e.refresh)==null||t.call(e)})}}},useTableColumns$2=()=>{const e=(0,import_react.useFieldSchema)(),t=useCompile(),{t:o}=(0,import_react_i18next.useTranslation)(),r=useCollection();return(0,import_react2.useMemo)(()=>{const i=[],n=c=>{let u=c;for(;u&&!((u==null?void 0:u["x-component"])==="ActionBar"||!u.parent);)u=u.parent;const d=u.parent;if(d){const m=d==null?void 0:d.reduceProperties((p,h)=>(h==null?void 0:h["x-component"])==="TableV2"?p.concat([h]):p,[]);return m==null?void 0:m[0]}return null},l=(c,u=0)=>{var d,m,p,h,g,f,_,v,y;if(!(!c||u>1)){if((m=(d=c==null?void 0:c["x-component"])==null?void 0:d.includes)!=null&&m.call(d,"Table.Column")||(h=(p=c==null?void 0:c["x-decorator"])==null?void 0:p.includes)!=null&&h.call(p,"Table.Column")||(c==null?void 0:c["x-component"])==="TableV2.Column"){const C=c.reduceProperties?c.reduceProperties((j,I)=>(I==null?void 0:I["x-component"])==="CollectionField"?j.concat([I]):j,[]):[],b=(C==null?void 0:C.length)>0?C[0].name:c.name,F=(g=r==null?void 0:r.getField)==null?void 0:g.call(r,b);let S=o(c==null?void 0:c.title,{ns:NAMESPACE_UI_SCHEMA})||c.title;!S&&c.name==="actions"&&(S=o("Actions")),!S&&F&&(S=o((f=F.uiSchema)==null?void 0:f.title,{ns:NAMESPACE_UI_SCHEMA})||((_=F.uiSchema)==null?void 0:_.title)||F.name),S||(S=c.name||`Column ${i.length+1}`),S=t(S)||S;const P={key:c["x-uid"]||c.name||`column-${i.length}`,title:S,dataIndex:b||`column-${i.length}`,visible:c["x-display"]!=="hidden",fixed:((v=c["x-component-props"])==null?void 0:v.fixed)||!1,width:(y=c["x-component-props"])==null?void 0:y.width,order:c["x-index"]||i.length};i.push(P)}c.properties&&Object.keys(c.properties).forEach(C=>{l(c.properties[C],u+1)}),c.items&&l(c.items,u+1)}},a=n(e);return l(a),i.sort((c,u)=>(c.order||0)-(u.order||0))},[e,t,o,r])},useEditTableActionProps=()=>{const e=(0,import_react.useField)(),t=(0,import_react.useFieldSchema)(),o=useTableColumns$2(),r=(0,import_react2.useCallback)(()=>{let h=t;for(;h;){const g=_=>{if(!(_!=null&&_.properties))return null;for(const v in _.properties){const y=_.properties[v];if(y["x-component"]==="TableV2")return y;const C=g(y);if(C)return C}return null},f=g(h);if(f)return f;if(!h.parent)break;h=h.parent}return h},[t]),i=(0,import_react2.useMemo)(()=>r(),[r]);(0,import_react2.useMemo)(()=>(i==null?void 0:i["x-uid"])||"default",[i]);const{getSettings:n,saveSettings:l,clearSettings:a}=useColumnSettings(),[c,u]=(0,import_react2.useState)(n()),d=(0,import_react2.useMemo)(()=>{if(o.length===0)return[];if(!c||c.length===0)return o;const h=new Map;return c.forEach(g=>{h.set(g.key,g)}),o.map(g=>{const f=h.get(g.key);return f?A(x({},g),{visible:f.visible,order:f.order,width:f.width||g.width,fixed:f.fixed||g.fixed}):g}).sort((g,f)=>(g.order||0)-(f.order||0))},[o,c]);(0,import_react2.useEffect)(()=>{d.length>0&&(e.dataSource=d)},[d,e]);const m=(0,import_react2.useCallback)(h=>{if(!(h!=null&&h.columns)||!Array.isArray(h.columns))return;const g=h.columns.map((f,_)=>({key:f.key,title:f.title,dataIndex:f.dataIndex,visible:f.visible,fixed:f.fixed,width:f.width,order:_}));l(g)},[l]),p=(0,import_react2.useCallback)(()=>{a(),u(n())},[a]);return{columns:d,onSubmit:m,onReset:p}},useDetailsPaginationProps=()=>{var e,t,o,r,i,n,l,a,c,u,d,m,p,h,g,f,_;const v=useDetailsBlockContext(),y=((o=(t=(e=v.service)==null?void 0:e.data)==null?void 0:t.meta)==null?void 0:o.count)||0,C=(n=(i=(r=v.service)==null?void 0:r.data)==null?void 0:i.meta)==null?void 0:n.page,{hasNext:b}=((a=(l=v.service)==null?void 0:l.data)==null?void 0:a.meta)||{};return!y&&C?{simple:!0,current:((d=(u=(c=v.service)==null?void 0:c.data)==null?void 0:u.meta)==null?void 0:d.page)||1,pageSize:1,showSizeChanger:!1,align:"center",onChange(F){return L(this,null,function*(){var S,P;const j=(P=(S=v.service)==null?void 0:S.params)==null?void 0:P[0];v.service.run(A(x({},j),{page:F}))})},style:{marginTop:24,textAlign:"center"},showTotal:!1,showTitle:!1,total:((h=(p=(m=v.service)==null?void 0:m.data)==null?void 0:p.data)==null?void 0:h.length)<1||!b?1*C:1*C+1,className:import_css.css`
|
|
629
629
|
.ant-pagination-simple-pager {
|
|
630
630
|
display: none !important;
|
|
631
631
|
}
|
|
@@ -1759,7 +1759,7 @@ ${t}
|
|
|
1759
1759
|
|
|
1760
1760
|
${u}`;return clampText(m,MAX_MESSAGE_CHARS)}}const i=e.issues.filter(c=>c.type==="runtime"),n=pickKeyRuntimeIssue(i),l=n?`Key runtime issue: ${formatIssueLine(n)}`:"",a=["RunJS preview output was truncated.",t,e.execution?formatExecution(e.execution):void 0,l||void 0].filter(Boolean).join(`
|
|
1761
1761
|
`).trim();return a.length<=MAX_MESSAGE_CHARS?a:clampText(a,MAX_MESSAGE_CHARS-1)+`
|
|
1762
|
-
`}function formatRunJSPreviewMessage(e){return buildPreviewMessageWithTruncation(e)}function diagnoseRunJS(e,t){return L(this,arguments,function*(o,r,i={}){const n=typeof o=="string"?o:String(o??""),l=[],a=[],c=i==null?void 0:i.version,u=(0,import_flow_engine.shouldPreprocessRunJSTemplates)({version:c});a.push(...collectLezerSyntaxIssues(n)),a.push(...collectHeuristicIssues(n));const d=typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now(),m={started:!1,finished:!1,timeout:!1,durationMs:void 0};try{m.started=!0;const{consoleCapture:p,loggerCapture:h}=createLogCollectors(l),g={console:p};try{if(typeof window<"u"){const y=(0,import_flow_engine.createSafeNavigator)();g.navigator=y,g.window=(0,import_flow_engine.createSafeWindow)({navigator:y}),g.document=(0,import_flow_engine.createSafeDocument)()}}catch{}let f=n;try{f=yield(0,import_flow_engine.prepareRunJsCode)(n,{preprocessTemplates:u})}catch(y){const C=String((y==null?void 0:y.name)||""),b=safeToString((y==null?void 0:y.message)||y),F=y instanceof SyntaxError||/^SyntaxError\b/i.test(C)||/SyntaxError\b/i.test(b);return a.push({type:"runtime",ruleId:F?"preview-start-failed":"internal",message:F?b:`Preview internal failure: ${b}`,stack:safeStack(y)}),m.finished=!0,m.timeout=!1,{issues:sortIssuesStable(a),logs:l,execution:m}}const _=yield r.createJSRunner({globals:g,timeoutMs:PREVIEW_TIMEOUT_MS,version:c});_.globals.ctx.defineProperty("logger",{value:h});const v=yield _.run(f);if(m.finished=!0,m.timeout=!!(v!=null&&v.timeout),!(v!=null&&v.success)){const y=v==null?void 0:v.error,C=v!=null&&v.timeout?"Execution timed out":safeToString((y==null?void 0:y.message)||y||"Unknown error"),b=y instanceof SyntaxError||/^SyntaxError\b/i.test(String((y==null?void 0:y.name)||""));a.push({type:"runtime",ruleId:v!=null&&v.timeout?"timeout":b?"preview-start-failed":"runtime-error",message:C,stack:safeStack(y)})}}catch(p){m.finished=!0,m.timeout=!1,a.push({type:"runtime",ruleId:"internal",message:`Preview internal failure: ${safeToString((p==null?void 0:p.message)||p)}`,stack:safeStack(p)})}finally{const p=typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now(),h=Math.max(0,p-d);m.durationMs=Number.isFinite(h)?h:void 0}return{issues:sortIssuesStable(a),logs:l,execution:m}})}function createPreviewFlowContext(e){const t=new import_flow_engine.FlowContext;if(t.addDelegate(e),typeof document<"u"&&typeof document.createElement=="function"&&!e.element)try{const o=document.createElement("div");t.defineProperty("element",{value:o})}catch{}return t}function previewRunJS(e,t){return L(this,arguments,function*(o,r,i={}){const n=createPreviewFlowContext(r),l=yield diagnoseRunJS(o,n,i),a=l.issues.length===0,c=formatRunJSPreviewMessage(l),u=c.length>MAX_MESSAGE_CHARS?clampText(c,MAX_MESSAGE_CHARS):c;return{success:a,message:u}})}const runjsDiagnostics=Object.freeze(Object.defineProperty({__proto__:null,MAX_MESSAGE_CHARS,diagnoseRunJS,formatRunJSPreviewMessage,previewRunJS},Symbol.toStringTag,{value:"Module"})),CodeEditor=({value:e="",onChange:t,placeholder:o="",height:r="100%",minHeight:i,theme:n="light",readonly:l=!1,enableLinter:a=!1,wrapperStyle:c,extraCompletions:u,version:d="v1",name:m,language:p,scene:h,RightExtra:g})=>{const f=(0,import_react2.useRef)(null),_=(0,import_react2.useRef)(null),{isFullscreen:v,toggleFullscreen:y,placeholderRef:C,placeholderStyle:b,container:F}=useFullscreenOverlay(),S=(0,import_flow_engine.useFlowContext)(),P=(0,import_react2.useMemo)(()=>{if(h&&(!Array.isArray(h)||h.length))return h;if(S)try{const z=(0,import_flow_engine.getRunJSScenesForContext)(S,{version:d});return z.length?z:void 0}catch{return}},[h,S,d]),{completions:j,entries:I}=useRunJSDocCompletions(S,d,P),{run:T,logs:N,running:D}=useCodeRunner(S,d),[w,k]=(0,import_react2.useState)(!1),B=(0,import_react2.useCallback)(()=>{const z=f.current;return z&&(z.closest(".ant-drawer-content-wrapper")||z.closest(".ant-drawer-content")||z.closest(".ant-modal-content")||z.parentElement)||document.body},[]),E=(0,import_react2.useCallback)((z,U)=>{try{return S!=null&&S.t?S.t(z,U):z}catch{return z}},[S]),M=(0,import_react2.useMemo)(()=>{const z=[];return Array.isArray(j)&&z.push(...j),Array.isArray(u)&&z.push(...u),z},[u,j]),O=(0,import_react2.useMemo)(()=>createRunJSCompletionSource({hostCtx:S,staticOptions:M}),[S,M]),V=(0,import_react2.useRef)({write(z){const U=_.current;U&&U.state.doc.toString()!==z&&U.dispatch({changes:{from:0,to:U.state.doc.length,insert:z}})},read(){const z=_.current;return z?z.state.doc.toString():""},buttonGroupHeight:0,snippetEntries:[],logs:[]});V.current.snippetEntries=I,V.current.logs=N,(0,import_react2.useEffect)(()=>{var z;(z=_.current)==null||z.requestMeasure()},[v]);const $=(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:E(v?"Exit fullscreen":"Fullscreen"),children:(0,import_jsx_runtime.jsx)(import_antd.Button,{size:"small","aria-label":E(v?"Exit fullscreen":"Fullscreen"),icon:v?(0,import_jsx_runtime.jsx)(import_icons.FullscreenExitOutlined,{}):(0,import_jsx_runtime.jsx)(import_icons.FullscreenOutlined,{}),onClick:y})}),q=(0,import_jsx_runtime.jsxs)("div",{style:x({border:v?"none":"1px solid #d9d9d9",borderRadius:v?0:"6px",overflow:"visible",position:"relative",display:"flex",flexDirection:"column",boxSizing:v?"border-box":void 0,padding:v?16:void 0,height:v?"100%":void 0,minHeight:v?0:void 0},c),ref:f,children:[(0,import_jsx_runtime.jsx)(RightExtra,{name:m,language:p,scene:P,extraEditorRef:V.current,extraContent:(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[g?(0,import_jsx_runtime.jsx)(g,{viewRef:_}):(0,import_jsx_runtime.jsxs)("div",{style:{display:"flex",gap:8,alignItems:"center"},children:[(0,import_jsx_runtime.jsx)(import_antd.Button,{size:"small",onClick:()=>k(!0),children:E("Snippets")}),(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:(0,import_jsx_runtime.jsx)(import_antd.Button,{size:"small",loading:D,onClick:()=>L(void 0,null,function*(){var z;const U=((z=_.current)==null?void 0:z.state.doc.toString())||"";clearDiagnostics(_.current);const K=yield T(U);if(!(K!=null&&K.success)){const W=K==null?void 0:K.error,Y=K!=null&&K.timeout?E("Execution timed out"):String(W||E("Unknown error")),Q=parseErrorLineColumn(W);Q&&_.current&&markErrorAt(_.current,Q.line,Q.column,Y)}}),children:E("Run")})})]}),$]})}),(0,import_jsx_runtime.jsx)(EditorCore,{value:e,onChange:t,placeholder:o,height:v?"100%":r,minHeight:i,theme:n,readonly:l,enableLinter:a,completionSource:O,viewRef:_}),(0,import_jsx_runtime.jsx)(LogsPanel,{logs:N,onJumpTo:(z,U)=>{const K=_.current;K&&jumpTo(K,z,U)},tr:E}),(0,import_jsx_runtime.jsx)(SnippetsDrawer,{open:w,onClose:()=>k(!1),getContainer:B,entries:I,tr:E,onInsert:z=>{const U=_.current;if(!U)return;const{from:K,to:W}=U.state.selection.main,Y=K+z.length;U.dispatch({changes:{from:K,to:W,insert:z},selection:{anchor:Y},scrollIntoView:!0}),U.focus(),k(!1)}})]});return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)("div",{ref:C,style:v?b:{display:"contents"}}),F?(0,import_react_dom.createPortal)(q,F):null]})},RunJSValueEditor=e=>{var t;const{t:o,value:r,onChange:i,height:n="200px",scene:l="formValue",containerStyle:a={flex:1,minWidth:0}}=e,c=(0,import_flow_engine.isRunJSValue)(r)?(0,import_flow_engine.normalizeRunJSValue)(r):{code:"",version:"v2"},u=`// ${(t=o==null?void 0:o("Use return to output value"))!=null?t:"Use return to output value"}`;return(0,import_jsx_runtime.jsx)("div",{style:a,children:(0,import_jsx_runtime.jsx)(CodeEditor,{value:c.code,onChange:d=>i==null?void 0:i(A(x({},c),{code:d})),version:c.version,height:n,enableLinter:!0,placeholder:u,scene:l})})},ConditionBuilder=(0,import_flow_engine.observer)(e=>{const t=(0,import_flow_engine.useFlowContext)();return(0,import_jsx_runtime.jsx)(FilterGroup,{value:e.value||{logic:"$and",items:[]},FilterItem:o=>(0,import_jsx_runtime.jsx)(LinkageFilterItem,{model:t.model,value:o.value,extraMetaTree:e.extraMetaTree}),onChange:e.onChange})}),commonConditionHandler=(e,t)=>{const{condition:o={logic:"$and",items:[]}}=t,r=(i,n,l)=>e.app.jsonLogic.apply({[n]:[i,l]});(0,import_client.evaluateConditions)((0,import_client.removeInvalidFilterItems)(o),r)||e.exit()};function ActionWithoutPermission(e){const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_flow_engine.useFlowModel)(),r=o.context.blockModel,i=e.collection||r.collection,n=i.dataSource,l=(0,import_react2.useMemo)(()=>{const u=`${t(n.displayName||n.key)} > `,d=i?`${t(i.title)||i.name||i.tableName} `:"";return`${u}${d}`},[]),{actionName:a}=(e==null?void 0:e.forbidden)||o.forbidden,c=(0,import_react2.useMemo)(()=>t(`The current user only has the UI configuration permission, but don't have "{{actionName}}" permission for collection "{{name}}"`,{name:l,actionName:t(import_lodash.default.capitalize(a))}).replaceAll(">",">"),[a,l,t]);return(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:e.message||c,children:e.children})}const ActionSceneEnum={collection:"collection",record:"record",all:["collection","record"],both:["collection","record"]};class ActionModel extends import_flow_engine.FlowModel{constructor(){super(...arguments),R(this,"defaultProps",{type:"default",title:(0,import_flow_engine.tExpr)("Action")}),R(this,"enableEditTooltip",!0),R(this,"enableEditTitle",!0),R(this,"enableEditIcon",!0),R(this,"enableEditType",!0),R(this,"enableEditDanger",!0),R(this,"enableEditColor",!1)}static _getScene(){return import_lodash.default.castArray(this.scene||[])}static _isScene(t){return this._getScene().includes(t)}getAclActionName(){return null}onInit(t){super.onInit(t),this.context.defineProperty("actionName",{get:()=>this.getAclActionName(),cache:!1})}getInputArgs(){const t={},o=[];if(this.context.resource){const r=this.context.resource.getSourceId();r&&(t.sourceId=r,o.push("sourceId"))}if(this.context.collection&&this.context.record){const r=this.context.collection.getFilterByTK(this.context.record);r&&(t.filterByTk=r,o.push("filterByTk"))}return o.length&&(t.defaultInputKeys=o),t}onClick(t){this.dispatchEvent("click",x({event:t},this.getInputArgs()),{debounce:!0})}getTitle(){return this.props.title}getIcon(){return this.props.icon}renderButton(){const t=this.props,o=this.getIcon()?(0,import_jsx_runtime.jsx)(Icon,{type:this.getIcon()}):void 0;return(0,import_jsx_runtime.jsx)(import_antd.Button,A(x({},t),{onClick:this.onClick.bind(this),icon:o,children:t.children||this.getTitle()}))}render(){return this.props.tooltip?(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:this.props.tooltip,children:this.renderButton()}):this.renderButton()}renderHiddenInConfig(){const t=this.props,o=this.getIcon()?(0,import_jsx_runtime.jsx)(Icon,{type:this.getIcon()}):void 0;return this.forbidden?(0,import_jsx_runtime.jsx)(ActionWithoutPermission,{children:(0,import_jsx_runtime.jsx)(import_antd.Button,A(x({},t),{onClick:this.onClick.bind(this),icon:o,style:{opacity:"0.3"},children:t.children||this.getTitle()}))}):(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:this.context.t("The button is hidden and only visible when the UI Editor is active"),children:(0,import_jsx_runtime.jsx)(import_antd.Button,A(x({},t),{onClick:this.onClick.bind(this),icon:o,style:{opacity:"0.3"},children:t.children||this.getTitle()}))})}}ActionModel.registerFlow({key:"buttonSettings",title:(0,import_flow_engine.tExpr)("Button settings"),sort:-999,steps:{general:{title:(0,import_flow_engine.tExpr)("Edit button"),uiSchema(e){return{title:e.model.enableEditTitle?{"x-decorator":"FormItem","x-component":"Input",title:(0,import_flow_engine.tExpr)("Button title")}:void 0,tooltip:e.model.enableEditTooltip?{"x-decorator":"FormItem","x-component":"Input",title:(0,import_flow_engine.tExpr)("Button tooltip")}:void 0,icon:e.model.enableEditIcon?{"x-decorator":"FormItem","x-component":"IconPicker",title:(0,import_flow_engine.tExpr)("Button icon")}:void 0,type:e.model.enableEditType?{"x-decorator":"FormItem","x-component":"Radio.Group",title:(0,import_flow_engine.tExpr)("Button type"),enum:[{value:"default",label:'{{t("Default")}}'},{value:"primary",label:'{{t("Primary")}}'},{value:"dashed",label:'{{t("Dashed")}}'},{value:"link",label:'{{t("Link")}}'},{value:"text",label:'{{t("Text")}}'}]}:void 0,danger:e.model.enableEditDanger?{"x-decorator":"FormItem","x-component":"Switch",title:(0,import_flow_engine.tExpr)("Danger action")}:void 0,color:e.model.enableEditColor?{"x-decorator":"FormItem","x-component":ColorPicker,title:(0,import_flow_engine.tExpr)("Color")}:void 0}},defaultParams(e){return e.model.defaultProps},handler(e,t){const o=t,{title:r,tooltip:i}=o,n=te(o,["title","tooltip"]);e.model.setProps(x({title:e.t(r,{ns:"lm-flow-engine"}),tooltip:e.t(i,{ns:"lm-flow-engine"})},n))}},linkageRules:{use:"actionLinkageRules"}}});ActionModel.registerFlow({key:"buttonAclSettings",steps:{aclCheck:{use:"aclCheck"}}});ActionModel.registerFlow({key:"paginationChange",on:"paginationChange",steps:{aclCheckRefresh:{use:"aclCheckRefresh"},linkageRulesRefresh:{use:"linkageRulesRefresh",defaultParams:{actionName:"actionLinkageRules",flowKey:"buttonSettings",stepKey:"linkageRules"}}}});ActionModel.registerEvents({click:{title:(0,import_flow_engine.tExpr)("Click"),name:"click",uiSchema:{condition:{type:"object",title:(0,import_flow_engine.tExpr)("Trigger condition"),"x-decorator":"FormItem","x-component":ConditionBuilder}},handler:commonConditionHandler}});const VIEW_ACTION_ALIASES={view:"get"},normalizeCapabilityActionName=e=>e?VIEW_ACTION_ALIASES[e]||e:null,getExplicitCapabilityNames=(e,t)=>{for(const o of t){if(!(o in e))continue;const r=e[o];return r==null?null:(Array.isArray(r)?r:[r]).map(i=>normalizeCapabilityActionName(i)).filter(Boolean)}},isCapabilitySupported=(e,t)=>{const o=normalizeCapabilityActionName(t);if(!o||!(e!=null&&e.options))return!0;const{availableActions:r,unavailableActions:i}=e.options;return Array.isArray(r)?r.includes(o):Array.isArray(i)?!i.includes(o):!0},areCapabilitiesSupported=(e,t)=>t!=null&&t.length?t.every(o=>isCapabilitySupported(e,o)):!0,getActionCapabilityNamesFromModelClass=e=>{var t;const o=getExplicitCapabilityNames(e,["capabilityActionNames","capabilityActionName"]);if(o!==void 0)return o;const r=(t=e==null?void 0:e.prototype)==null?void 0:t.getAclActionName;if(typeof r!="function")return null;try{const i=r.call({}),n=normalizeCapabilityActionName(i);return n?[n]:null}catch{return null}},getBlockCapabilityNamesFromModelClass=e=>{const t=getExplicitCapabilityNames(e,["blockCapabilityActionNames","blockCapabilityActionName"]);return t??null};class ActionGroupModel extends import_flow_engine.FlowModel{static getAllParentClasses(){const t=[];let o=this;for(;o&&o!==Object;)o=Object.getPrototypeOf(o),o!=null&&o.currentModels&&t.push(o);return t}static get currentModels(){return(!Object.prototype.hasOwnProperty.call(this,"_models")||!this._models)&&(this._models=new Map),this._models}static get models(){const t=new Map,o=this.getAllParentClasses();for(const r of o)for(const[i,n]of r.currentModels)t.set(i,n);for(const[r,i]of this.currentModels)t.set(r,i);return t}static registerActionModels(t){for(const[o,r]of Object.entries(t))Object.defineProperty(r,"name",{value:o}),this.currentModels.set(o,r)}static isActionModelVisible(t,o){var r;const i=o.collection||((r=o.blockModel)==null?void 0:r.collection),n=getActionCapabilityNamesFromModelClass(t);return areCapabilitiesSupported(i,n)}static defineChildren(t){return L(this,null,function*(){const o=this.baseClass?yield(0,import_flow_engine.buildSubModelItems)(this.baseClass)(t):[],r=[],i=o.filter(n=>{const l=t.engine.getModelClass(n.useModel);return this.isActionModelVisible(l,t)?this.scene?l._isScene(this.scene):!0:!1});for(const[n,l]of this.models){if(!this.isActionModelVisible(l,t)||i.find(c=>c.useModel===l.name))continue;const a=yield(0,import_flow_engine.buildSubModelItem)(l,t);a&&r.push(a)}return import_lodash.default.sortBy([...i,...r],"sort")})}}R(ActionGroupModel,"baseClass"),R(ActionGroupModel,"scene"),R(ActionGroupModel,"_models");class CollectionActionGroupModel extends ActionGroupModel{}R(CollectionActionGroupModel,"baseClass",ActionModel),R(CollectionActionGroupModel,"scene",ActionSceneEnum.collection);class RecordActionGroupModel extends ActionGroupModel{}R(RecordActionGroupModel,"baseClass",ActionModel),R(RecordActionGroupModel,"scene",ActionSceneEnum.record);class AssociationFieldGroupModel extends import_flow_engine.FlowModel{static defineChildren(t){const o=this.itemModelName,r=(i,n="")=>i.getToOneAssociationFields().map(l=>{const a=n?`${n}.${l.name}`:l.name;if(!l.targetCollection){console.error(`AssociationFieldGroupModel: target collection ${l.target} not found for field ${l.name}`);return}return{key:`${a}-assocationField`,label:l.title,children:()=>[{key:`${a}-children-collectionField`,label:t.t("Display fields"),type:"group",children:l.targetCollection.getFields().map(c=>{const u=`${a}.${c.name}`,d=import_flow_engine.DisplayItemModel.getDefaultBindingByField(t,c,{fallbackToTargetTitleField:!0});if(!d)return;const m=d.modelName;return{key:`c-${a}.${c.name}`,label:c.title,useModel:o,toggleable:p=>{var h;return((h=p.getStepParams("fieldSettings","init"))==null?void 0:h.fieldPath)===u},createModelOptions:{stepParams:{fieldSettings:{init:{dataSourceKey:t.collection.dataSourceKey,collectionName:t.prefixFieldPath?t.blockModel.context.collection.name:t.collection.name,fieldPath:u,associationPathName:a}}},subModels:{field:{use:m}}}}}).filter(Boolean)},{key:`${a}-children-associationField`,label:"Display association fields",type:"group",children:(r(l.targetCollection,a)||[]).filter(Boolean)}]}}).filter(Boolean);return r(t.collection,t.prefixFieldPath)}}R(AssociationFieldGroupModel,"itemModelName","DetailsItemModel");AssociationFieldGroupModel.define({label:'{{t("Display fields")}}'});function getDefaultOperator(e){var t,o,r,i,n,l;return e.operator||((t=e.getStepParams("filterFormItemSettings","defaultOperator"))==null?void 0:t.value)||((o=e.subModels.field)==null?void 0:o.operator)||((l=(n=(i=(r=e.collectionField)==null?void 0:r.filterable)==null?void 0:i.operators)==null?void 0:n[0])==null?void 0:l.value)||"$includes"}function isFilterValueEmpty(e){return!!(e==null||typeof e=="string"&&e.trim()===""||Array.isArray(e)&&e.filter(t=>!(t==null||typeof t=="string"&&t.trim()==="")).length===0||typeof e=="object"&&e.constructor===Object&&Object.keys(e).length===0)}function getAllDataModels(e){return e.filterSubModels("items",t=>{var o;return!!((o=t.resource)!=null&&o.supportsFilter)})}class FilterManager{constructor(t,o){R(this,"filterConfigs"),R(this,"gridModel"),this.gridModel=t,this.filterConfigs=o||[]}saveFilterConfigs(){return L(this,null,function*(){yield this.gridModel.saveStepParams()})}getFilterConfigs(){return this.filterConfigs}getConnectFieldsConfig(t){const o=this.filterConfigs.filter(r=>r.filterId===t);if(o.length!==0)return{targets:o.map(r=>({targetId:r.targetId,filterPaths:r.filterPaths}))}}saveConnectFieldsConfig(t,o){return L(this,null,function*(){const r=o.targets.map(n=>({filterId:t,targetId:n.targetId,filterPaths:n.filterPaths})),i=this.filterConfigs.filter(n=>n.filterId!==t);this.filterConfigs=[],this.filterConfigs.push(...i,...r),yield this.saveFilterConfigs()})}addFilterConfig(t){return L(this,null,function*(){if(!t.filterId||!t.targetId){console.error("FilterConfig must have filterId, targetId, and operator");return}if(!Array.isArray(t.filterPaths)||t.filterPaths.length===0){console.error("FilterConfig must have non-empty filterPaths array");return}const o=this.filterConfigs.findIndex(r=>r.filterId===t.filterId&&r.targetId===t.targetId);o>=0?this.filterConfigs[o]=x({},t):this.filterConfigs.push(x({},t)),yield this.saveFilterConfigs()})}removeFilterConfig(t){return L(this,arguments,function*({filterId:o,targetId:r,persist:i=!0}){if(!o&&!r)return console.error("At least one of filterId or targetId must be provided"),0;const n=this.filterConfigs.length;this.filterConfigs=this.filterConfigs.filter(a=>o&&r?!(a.filterId===o&&a.targetId===r):o?a.filterId!==o:r?a.targetId!==r:!0);const l=n-this.filterConfigs.length;return l>0&&i&&(yield this.saveFilterConfigs()),l})}bindToTarget(t){if(!t||typeof t!="string"){console.error("[NocoBase]: targetId must be a non-empty string");return}const o=this.gridModel.flowEngine.getModel(t);if(!o){console.error(`[NocoBase]: Target model with uid "${t}" not found`);return}if(!o.resource||typeof o.resource.addFilterGroup!="function"){console.error(`[NocoBase]: Target model with uid "${t}" does not have a valid resource with addFilterGroup method`);return}if(typeof o.resource.removeFilterGroup!="function"){console.error(`[NocoBase]: Target model with uid "${t}" does not have a valid resource with removeFilterGroup method`);return}const r=this.filterConfigs.filter(n=>n.targetId===t);if(r.length===0)return;const i=o;r.forEach(n=>{const l=this.gridModel.flowEngine.getModel(n.filterId);if(!l){console.error(`[NocoBase]: Filter model with uid "${n.filterId}" not found`);return}if(!l.getFilterValue){console.error(`[NocoBase]: Filter model with uid "${n.filterId}" does not have getFilterValue method`);return}const a=l.getFilterValue();if(isFilterValueEmpty(a)){try{o.resource.removeFilterGroup(n.filterId),i.setFilterActive(n.filterId,!1)}catch(u){console.error(`[NocoBase]: Failed to remove filter configuration from target model: ${u.message}`);return}return}i.setFilterActive(n.filterId,!0);const c=n.filterPaths.map(u=>({path:u,operator:n.operator||getDefaultOperator(l),value:a}));try{if(c.length===1)o.resource.addFilterGroup(n.filterId,new import_flow_engine.FilterItem({path:c[0].path,operator:c[0].operator,value:c[0].value}));else if(c.length>1){const u={logic:"$or",items:c};o.resource.addFilterGroup(n.filterId,new import_flow_engine.FilterGroup(u))}}catch(u){console.error(`Failed to bind filter configuration to target model: ${u.message}`);return}})}unbindFromTarget(t){if(!t||typeof t!="string"){console.error("targetId must be a non-empty string");return}const o=this.gridModel.flowEngine.getModel(t);if(!o){console.error(`Target model with uid "${t}" not found`);return}if(!o.resource||typeof o.resource.removeFilterGroup!="function"){console.error(`Target model with uid "${t}" does not have a valid resource with removeFilterGroup method`);return}const r=this.filterConfigs.filter(n=>n.targetId===t);if(r.length===0)return;const i=o;r.forEach(n=>{try{o.resource.removeFilterGroup(n.filterId),typeof(i==null?void 0:i.removeFilterSource)=="function"&&i.removeFilterSource(n.filterId)}catch(l){console.error(`Failed to unbind filter configuration from target model: ${l.message}`);return}})}refreshTargetsByFilter(t){return L(this,null,function*(){if(!t){console.error("filterId must be provided");return}const o=Array.isArray(t)?t:[t];if(o.length===0||o.some(n=>!n||typeof n!="string")){console.error("filterId must be non-empty string(s)");return}const r=this.filterConfigs.filter(n=>o.includes(n.filterId));if(r.length===0)return;const i=[...new Set(r.map(n=>n.targetId))].map(n=>L(this,null,function*(){try{this.bindToTarget(n);const l=this.gridModel.flowEngine.getModel(n);if(!l){console.error(`Target model with uid "${n}" not found`);return}if(!l.resource||typeof l.resource.refresh!="function"){console.error(`Target model with uid "${n}" does not have a valid resource with refresh method`);return}const a=l,c=l.resource;if(a.getDataLoadingMode()==="manual"&&!a.hasActiveFilters()){c.setData([]),c.setMeta({count:0,hasNext:!1}),typeof c.setPage=="function"&&c.setPage(1),c.loading=!1;return}typeof c.setPage=="function"&&c.setPage(1),yield c.refresh()}catch(l){console.error(`Failed to refresh target model "${n}": ${l.message}`);return}}));yield Promise.all(i)})}}function Grid({rows:e,sizes:t={},renderItem:o,rowGap:r=16,colGap:i=16,dragOverlayRect:n}){return Object.keys(e||{}).length===0?(0,import_jsx_runtime.jsx)("div",{style:{position:"relative"},"data-grid-empty-container":!0,children:n&&(0,import_jsx_runtime.jsx)(GridDragOverlay,{rect:n})}):(0,import_jsx_runtime.jsxs)("div",{style:{position:"relative",display:"flex",flexDirection:"column",gap:r},children:[n&&(0,import_jsx_runtime.jsx)(GridDragOverlay,{rect:n}),Object.entries(e).map(([l,a])=>{const c=a.length,u=t[l]||[],d=u.some(p=>p!=null&&p!==void 0),m=a.map((p,h)=>{var g;if(d){const f=u.reduce((y,C)=>y+(C||0),0),_=c-u.filter(Boolean).length,v=_>0?(24-f)/_:0;return(g=u[h])!=null?g:v}else return 24/c});return(0,import_jsx_runtime.jsx)(import_antd.Row,{gutter:i,"data-grid-row-id":l,children:a.map((p,h)=>(0,import_jsx_runtime.jsx)(GridColumn,{rowKey:l,columnIndex:h,span:m[h],rowGap:r,cell:p,renderItem:o},`${l}:${p.join("|")||"empty"}`))},l)})]})}const GridColumn=import_react2.default.memo(function e({rowKey:t,columnIndex:o,span:r,rowGap:i,cell:n,renderItem:l}){return(0,import_jsx_runtime.jsx)(import_antd.Col,{span:r,"data-grid-column-row-id":t,"data-grid-column-index":o,children:(0,import_jsx_runtime.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:i},children:n.map((a,c)=>a===import_flow_engine.EMPTY_COLUMN_UID?null:(0,import_jsx_runtime.jsx)("div",{"data-grid-item-row-id":t,"data-grid-column-index":o,"data-grid-item-index":c,"data-grid-item-uid":a,children:l(a)},a))})})});GridColumn.displayName="GridColumn";function GridDragOverlay({rect:e}){const t={position:"absolute",top:e.top,left:e.left,width:e.width,height:e.height,borderRadius:6,pointerEvents:"none",transition:"all 60ms ease-out",zIndex:100},o={column:{border:"2px dashed var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.08)"},"column-edge":{border:"2px solid var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.12)"},"row-gap":{border:"2px dashed var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.05)"},"empty-row":{border:"2px dashed var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.04)"},"empty-column":{border:"2px dashed var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.04)"}};return(0,import_jsx_runtime.jsx)("div",{style:x(x({},t),o[e.type])})}const InnerJsonEditor=e=>{var t=e,{value:o,onChange:r,rows:i=10}=t,n=te(t,["value","onChange","rows"]);const[l,a]=(0,import_react2.useState)(()=>o?JSON.stringify(o,null,2):""),[c,u]=(0,import_react2.useState)(null);(0,import_react2.useEffect)(()=>{a(o?JSON.stringify(o,null,2):"")},[o]);const d=m=>{const p=m.target.value;a(p);try{const h=p.trim()?JSON.parse(p):void 0;u(null),r==null||r(h)}catch(h){u(h.message)}};return(0,import_jsx_runtime.jsxs)("div",{children:[(0,import_jsx_runtime.jsx)(import_antd.Input.TextArea,x({value:l,autoSize:{minRows:i,maxRows:i+10},onChange:d},n)),c&&(0,import_jsx_runtime.jsx)(import_antd.Alert,{type:"error",message:c,showIcon:!0,style:{marginTop:8}})]})},JsonEditor=(0,import_react.connect)(InnerJsonEditor);function SkeletonFallback(e){return(0,import_jsx_runtime.jsx)(import_antd.Card,A(x({},e),{children:(0,import_jsx_runtime.jsx)(import_antd.Skeleton,{paragraph:{rows:3}})}))}const GRID_FLOW_KEY="gridSettings",GRID_STEP="grid",getClientPoint=e=>{if(!e)return null;if(typeof e.clientX=="number"&&typeof e.clientY=="number")return{x:e.clientX,y:e.clientY};if(e.touches&&e.touches.length>0){const t=e.touches[0];return{x:t.clientX,y:t.clientY}}if(e.changedTouches&&e.changedTouches.length>0){const t=e.changedTouches[0];return{x:t.clientX,y:t.clientY}}return null};class GridModel extends import_flow_engine.FlowModel{constructor(){super(...arguments),R(this,"subModelBaseClass","BlockModel"),R(this,"gridContainerRef",import_react2.default.createRef()),R(this,"prevMoveDistance",0),R(this,"itemSettingsMenuLevel",1),R(this,"itemFlowSettings",{}),R(this,"dragOverlayConfig"),R(this,"itemFallback",(0,import_jsx_runtime.jsx)(SkeletonFallback,{})),R(this,"itemExtraToolbarItems",[{key:"drag-handler",component:import_flow_engine.DragHandler,sort:1}]),R(this,"dragState"),R(this,"_memoItemFlowSettings")}deriveRowOrder(t,o){const r=[],i=new Set;return(o||Object.keys(t)).forEach(n=>{t[n]&&!i.has(n)&&(r.push(n),i.add(n))}),Object.keys(t).forEach(n=>{i.has(n)||(r.push(n),i.add(n))}),r}normalizeRowsWithOrder(t,o){const r=this.deriveRowOrder(t,o),i={};return r.forEach(n=>{t[n]&&(i[n]=t[n])}),Object.keys(t).forEach(n=>{i[n]||(i[n]=t[n])}),{rows:i,rowOrder:r}}orderSizesByRowOrder(t,o){const r={};return o.forEach(i=>{t[i]&&(r[i]=t[i])}),Object.keys(t).forEach(i=>{r[i]||(r[i]=t[i])}),r}getItemFlowSettings(){return this._memoItemFlowSettings||(this._memoItemFlowSettings=x({showBackground:!1,showDragHandle:!0},this.itemFlowSettings)),this._memoItemFlowSettings}onMount(){super.onMount(),this.emitter.on("onSubModelAdded",t=>{if(!t.isNew)return;this.resetRows(!0);const o=(0,import_flow_engine.findModelUidPosition)(t.uid,this.props.rows||{});if(o){const r=import_lodash.default.cloneDeep(this.props.sizes||{});r[o.rowId]=[24];const{rowOrder:i}=this.normalizeRowsWithOrder(this.props.rows||{},this.props.rowOrder),n=this.orderSizesByRowOrder(r,i);this.setStepParams(GRID_FLOW_KEY,GRID_STEP,{rows:this.props.rows||{},sizes:n,rowOrder:i}),this.setProps("sizes",n),this.setProps("rowOrder",i)}}),this.emitter.on("onSubModelDestroyed",t=>{var o,r,i,n;const l=t.uid,a=(0,import_flow_engine.findModelUidPosition)(l,this.props.rows||{});if(this.resetRows(!0),a){const c=this.props.rows||{},u=import_lodash.default.cloneDeep(this.props.sizes||{});((o=c[a.rowId])==null?void 0:o[a.columnIndex])===void 0&&((r=u[a.rowId])==null||r.splice(a.columnIndex,1)),c[a.rowId]===void 0&&delete u[a.rowId];const{rowOrder:d}=this.normalizeRowsWithOrder(c,this.props.rowOrder),m=this.orderSizesByRowOrder(u,d);this.setStepParams(GRID_FLOW_KEY,GRID_STEP,{rows:c,sizes:m,rowOrder:d}),this.setProps("sizes",m),this.setProps("rowOrder",d)}(i=this.context.filterManager)==null||i.removeFilterConfig({targetId:l}),(n=this.context.filterManager)==null||n.removeFilterConfig({filterId:l}),this.saveStepParams()}),this.emitter.on("onSubModelMoved",()=>{this.resetRows(!0)}),this.emitter.on("onResizeLeft",({resizeDistance:t,model:o})=>{var r;const i=(0,import_flow_engine.findModelUidPosition)(o.uid,this.props.rows||{}),n=((r=this.gridContainerRef.current)==null?void 0:r.clientWidth)||0,{newRows:l,newSizes:a,moveDistance:c}=recalculateGridSizes({position:i,direction:"left",resizeDistance:t,prevMoveDistance:this.prevMoveDistance,oldRows:this.props.rows||{},oldSizes:this.props.sizes||{},gutter:this.context.themeToken.marginBlock,gridContainerWidth:n});this.prevMoveDistance=c,this.setProps("rows",l),this.setProps("sizes",a)}),this.emitter.on("onResizeRight",({resizeDistance:t,model:o})=>{var r;const i=(0,import_flow_engine.findModelUidPosition)(o.uid,this.props.rows||{}),n=((r=this.gridContainerRef.current)==null?void 0:r.clientWidth)||0,{newRows:l,newSizes:a,moveDistance:c}=recalculateGridSizes({position:i,direction:"right",resizeDistance:t,prevMoveDistance:this.prevMoveDistance,oldRows:this.props.rows||{},oldSizes:this.props.sizes||{},gutter:this.context.themeToken.marginBlock,gridContainerWidth:n});this.prevMoveDistance=c,this.setProps("rows",l),this.setProps("sizes",a)}),this.emitter.on("onResizeBottom",({resizeDistance:t,model:o})=>{}),this.emitter.on("onResizeEnd",()=>{this.prevMoveDistance=0,this.saveGridLayout()})}saveGridLayout(t){var o,r,i,n,l;const a=(r=(o=t==null?void 0:t.rows)!=null?o:this.props.rows)!=null?r:{},c=(i=t==null?void 0:t.rowOrder)!=null?i:this.props.rowOrder,{rows:u,rowOrder:d}=this.normalizeRowsWithOrder(a,c),m=this.orderSizesByRowOrder((l=(n=t==null?void 0:t.sizes)!=null?n:this.props.sizes)!=null?l:{},d);this.setStepParams(GRID_FLOW_KEY,GRID_STEP,{rows:u,sizes:m,rowOrder:d}),this.setProps("rowOrder",d),this.saveStepParams()}mergeRowsWithItems(t){const o=this.subModels.items||[];if(!o||o.length===0)return{};const r=new Set(o.map(a=>a.uid));r.add(import_flow_engine.EMPTY_COLUMN_UID);const i=new Set,n={};for(const[a,c]of Object.entries(t)){const u=c.map(d=>import_lodash.default.castArray(d).filter(m=>r.has(m))).filter(d=>d.length>0);u.length>0&&(n[a]=u,u.forEach(d=>d.forEach(m=>i.add(m))))}const l=new Set;Object.values(n).forEach(a=>a.forEach(c=>c.forEach(u=>l.add(u))));for(const a of o)l.has(a.uid)||(n[(0,import_shared.uid)()]=[[a.uid]]);return n}resetRows(t=!1){const o=this.getStepParams(GRID_FLOW_KEY,GRID_STEP)||{},r=this.mergeRowsWithItems(o.rows||{}),{rows:i,rowOrder:n}=this.normalizeRowsWithOrder(r,o.rowOrder),l=this.orderSizesByRowOrder(o.sizes||{},n);this.setStepParams(GRID_FLOW_KEY,GRID_STEP,{rows:i,sizes:l,rowOrder:n}),t&&(this.setProps("rows",i),this.setProps("sizes",l),this.setProps("rowOrder",n))}computePointerPosition(t){var o;if(!this.dragState)return null;const r=this.dragState.pointerOrigin;if(r)return{x:r.x+t.delta.x,y:r.y+t.delta.y};const i=getClientPoint(t.activatorEvent);if(i)return this.dragState.pointerOrigin=i,{x:i.x+t.delta.x,y:i.y+t.delta.y};const n=(o=t.over)==null?void 0:o.rect;return n?{x:n.left+n.width/2,y:n.top+n.height/2}:null}getDragContainer(){if(!this.dragState)return this.gridContainerRef.current;const t=this.gridContainerRef.current;return t&&this.dragState.containerEl!==t&&(this.dragState.containerEl=t),this.dragState.containerEl||t}updateLayoutSnapshot(){if(!this.dragState)return;const t=(0,import_flow_engine.buildLayoutSnapshot)({container:this.getDragContainer()});this.dragState.slots=t.slots,this.dragState.containerRect=t.containerRect}scheduleSnapshotRefresh(){this.dragState&&(this.dragState.refreshTimer&&clearTimeout(this.dragState.refreshTimer),this.dragState.refreshTimer=setTimeout(()=>{this.dragState&&(this.dragState.refreshTimer=null,this.updateLayoutSnapshot())},16))}computeOverlayRect(t){var o,r,i,n,l,a,c,u,d;const m=this.dragOverlayConfig,p=t.rect;switch(t.type){case"column":{const h=(o=m==null?void 0:m.columnInsert)==null?void 0:o[t.position],g=(r=h==null?void 0:h.height)!=null?r:p.height,f=(i=h==null?void 0:h.offsetTop)!=null?i:0;return{top:p.top+f,left:p.left,width:p.width,height:g}}case"column-edge":{const h=(n=m==null?void 0:m.columnEdge)==null?void 0:n[t.direction],g=(l=h==null?void 0:h.width)!=null?l:p.width,f=(a=h==null?void 0:h.offsetLeft)!=null?a:0;return{top:p.top,left:p.left+f,width:g,height:p.height}}case"row-gap":{const h=(c=m==null?void 0:m.rowGap)==null?void 0:c[t.position],g=(u=h==null?void 0:h.height)!=null?u:p.height,f=(d=h==null?void 0:h.offsetTop)!=null?d:0;return{top:p.top+f,left:p.left,width:p.width,height:g}}case"empty-column":case"empty-row":return{top:p.top,left:p.left,width:p.width,height:p.height};default:return{top:p.top,left:p.left,width:p.width,height:p.height}}}applyPreview(t){var o,r;if(!this.dragState)return;if(!t){this.dragState.activeSlotKey!==null&&(this.dragState.activeSlotKey=null,this.dragState.previewLayout=void 0,this.setProps("dragOverlayRect",null));return}const i=(0,import_flow_engine.getSlotKey)(t);if(this.dragState.activeSlotKey===i&&this.dragState.previewLayout)return;const n=(0,import_flow_engine.simulateLayoutForSlot)({slot:t,sourceUid:this.dragState.sourceUid,layout:this.dragState.snapshot,generateRowId:import_shared.uid});this.dragState.previewLayout={rows:import_lodash.default.cloneDeep(n.rows),sizes:import_lodash.default.cloneDeep(n.sizes),rowOrder:import_lodash.default.cloneDeep(n.rowOrder)};const l=this.getDragContainer(),a=(o=l==null?void 0:l.scrollTop)!=null?o:0,c=(r=l==null?void 0:l.scrollLeft)!=null?r:0,u=this.computeOverlayRect(t),d={top:u.top-this.dragState.containerRect.top+a,left:u.left-this.dragState.containerRect.left+c,width:u.width,height:u.height,type:t.type};this.setProps("dragOverlayRect",d),this.dragState.activeSlotKey=i}handleDragStart(t){var o;const r=t.active.id,{rows:i,rowOrder:n}=this.normalizeRowsWithOrder(this.props.rows||{},this.props.rowOrder),l=this.orderSizesByRowOrder(this.props.sizes||{},n);this.dragState={sourceUid:r,snapshot:{rows:import_lodash.default.cloneDeep(i),sizes:import_lodash.default.cloneDeep(l),rowOrder:n},slots:[],containerEl:this.gridContainerRef.current,containerRect:{top:0,left:0,width:0,height:0},pointerOrigin:(o=getClientPoint(t.activatorEvent))!=null?o:void 0,activeSlotKey:null,previewLayout:void 0,refreshTimer:null},this.setProps("dragOverlayRect",null),this.updateLayoutSnapshot(),this.scheduleSnapshotRefresh()}handleDragMove(t){if(!this.dragState)return;this.dragState.slots.length||this.updateLayoutSnapshot();const o=this.computePointerPosition(t);if(!o){this.applyPreview(null);return}const r=(0,import_flow_engine.resolveDropIntent)(o,this.dragState.slots);this.applyPreview(r)}finishDrag(){this.dragState&&(this.dragState.refreshTimer&&clearTimeout(this.dragState.refreshTimer),this.dragState=void 0,this.setProps("dragOverlayRect",null))}handleDragEnd(t){if(!this.dragState)return;const o=this.dragState.previewLayout;o&&(this.setProps("rows",import_lodash.default.cloneDeep(o.rows)),this.setProps("sizes",import_lodash.default.cloneDeep(o.sizes)),o.rowOrder&&this.setProps("rowOrder",import_lodash.default.cloneDeep(o.rowOrder)),this.saveGridLayout(o)),this.finishDrag()}handleDragCancel(t){this.finishDrag()}renderAddSubModelButton(){throw new Error("renderAddSubModelButton method must be implemented in subclasses of GridModel")}getVisibleLayout(){var t;const o=this.props.rows||{},r=this.props.sizes||{},i=this.context.isMobileLayout?transformRowsToSingleColumn(o):o,n=this.context.isMobileLayout?{}:r,{rows:l,rowOrder:a}=this.normalizeRowsWithOrder(i,this.props.rowOrder),c=this.orderSizesByRowOrder(n,a);if(this.context.flowSettingsEnabled)return{rows:l,sizes:c};const u=((t=this.subModels)==null?void 0:t.items)||[];if(!u.length)return{rows:i,sizes:n};const d=new Map(u.map(h=>[h.uid,h])),m={},p={};return a.forEach(h=>{const g=l[h],f=c[h]||[],_=[],v=[];g.forEach((y,C)=>{y=y.filter(b=>{var F;return b===import_flow_engine.EMPTY_COLUMN_UID?!1:((F=d.get(b))==null?void 0:F.hidden)!==!0}),y.some(b=>{if(b===import_flow_engine.EMPTY_COLUMN_UID)return!1;const F=d.get(b);return!F||!F.hidden})&&(_.push(y),v.push(f[C]))}),_.length>0&&(m[h]=_,v.length>0&&(p[h]=v))}),{rows:m,sizes:p}}render(){const{rows:t,sizes:o}=this.getVisibleLayout(),r=Object.keys(t||{}).length>0;return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[r&&(0,import_jsx_runtime.jsx)(import_antd.Space,{ref:this.gridContainerRef,direction:"vertical",style:{width:"100%",marginBottom:this.props.rowGap},size:this.props.rowGap,children:(0,import_jsx_runtime.jsx)(import_flow_engine.DndProvider,{onDragStart:this.handleDragStart.bind(this),onDragMove:this.handleDragMove.bind(this),onDragEnd:this.handleDragEnd.bind(this),onDragCancel:this.handleDragCancel.bind(this),children:(0,import_jsx_runtime.jsx)(Grid,{rowGap:this.props.rowGap,colGap:this.props.colGap,rows:t,sizes:o,dragOverlayRect:this.props.dragOverlayRect,renderItem:i=>{var n,l,a,c,u,d;const m=this.flowEngine.getModel(i);if(!m)return this.itemFallback;const p=this.context.fieldKey,h=this.context.fieldIndex,g=this.context.getPropertyOptions("item"),f=(l=(n=this.context).getPropertyOptions)==null?void 0:l.call(n,"record"),_=(c=(a=this.context).getPropertyOptions)==null?void 0:c.call(a,"currentObject"),v=h==null?m:(()=>{const y=m.createFork({},`${p}:${i}`);y.context.defineProperty("fieldIndex",{get:()=>h}),y.context.defineProperty("fieldKey",{get:()=>p}),y.context.defineProperty("record",{get:()=>this.context.record,cache:!1,meta:f==null?void 0:f.meta,resolveOnServer:f==null?void 0:f.resolveOnServer,serverOnlyWhenContextParams:f==null?void 0:f.serverOnlyWhenContextParams}),y.context.defineProperty("currentObject",{get:()=>this.context.currentObject,cache:!1,resolveOnServer:_==null?void 0:_.resolveOnServer,serverOnlyWhenContextParams:_==null?void 0:_.serverOnlyWhenContextParams});const C=g||{},b=te(C,["value"]);return y.context.defineProperty("item",A(x({},b),{get:()=>this.context.item,cache:!1})),y})();return(0,import_jsx_runtime.jsx)(import_flow_engine.Droppable,{model:v,children:(0,import_jsx_runtime.jsx)(import_flow_engine.MemoFlowModelRenderer,{model:v,fallback:m.skeleton||this.itemFallback,showFlowSettings:this.context.flowSettingsEnabled?this.getItemFlowSettings():!1,showErrorFallback:!0,settingsMenuLevel:(u=v==null?void 0:v.settingsMenuLevel)!=null?u:this.itemSettingsMenuLevel,showTitle:!0,extraToolbarItems:this.itemExtraToolbarItems},`${v.uid}:${p}:${(v==null?void 0:v.use)||((d=v==null?void 0:v.constructor)==null?void 0:d.name)||"m"}`)})}})})}),this.context.flowSettingsEnabled&&(0,import_jsx_runtime.jsx)("div",{style:{marginBottom:16},children:this.renderAddSubModelButton()})]})}}GridModel.registerFlow({key:GRID_FLOW_KEY,steps:{resetRows:{handler(e){e.model.resetRows()}},grid:{uiSchema:{rows:{title:(0,import_flow_engine.tExpr)("Rows"),"x-decorator":"FormItem","x-component":JsonEditor,"x-component-props":{autoSize:{minRows:10,maxRows:20},description:(0,import_flow_engine.tExpr)("Configure the rows and columns of the grid.")}},sizes:{title:(0,import_flow_engine.tExpr)("Sizes"),"x-decorator":"FormItem","x-component":JsonEditor,"x-component-props":{rows:5},description:(0,import_flow_engine.tExpr)("Configure the sizes of each row. The value is an array of numbers representing the width of each column in the row.")}},handler(e,t){return L(this,null,function*(){const o=e.model.mergeRowsWithItems(t.rows||{}),{rows:r,rowOrder:i}=e.model.normalizeRowsWithOrder(o,t.rowOrder),n=e.model.orderSizesByRowOrder(t.sizes||{},i);e.model.setProps("rows",r),e.model.setProps("sizes",n),e.model.setProps("rowOrder",i)})}}}});function transformRowsToSingleColumn(e,t){var o;const r=(o=t==null?void 0:t.emptyColumnUid)!=null?o:import_flow_engine.EMPTY_COLUMN_UID,i={};return Object.keys(e).forEach(n=>{e[n].forEach(l=>{const a=l.filter(c=>c!==r);a.length>0&&(i[(0,import_shared.uid)()]=[a])})}),i}function recalculateGridSizes({position:e,direction:t,resizeDistance:o,prevMoveDistance:r,oldSizes:i,oldRows:n,gridContainerWidth:l,gutter:a=16,columnCount:c=24}){var u;const d=import_lodash.default.cloneDeep(n),m=import_lodash.default.cloneDeep(i),p=m[e.rowId]||[],h=a*(p.length-1);let g=Math.floor(o/(l-h)*c);if(g===r)return{newRows:d,newSizes:m,moveDistance:g};m[u=e.rowId]!=null||(m[u]=[c]);const f=m[e.rowId];let _=g-r;const v=t==="left"&&e.columnIndex>0,y=t==="right"&&e.columnIndex<f.length-1;if(!v&&!y&&_>0){const C=f.reduce((F,S)=>F+S,0),b=c-C;if(b<=0)return{newRows:d,newSizes:m,moveDistance:r};_>b&&(g=r+b,_=b)}if(m[e.rowId][e.columnIndex]+=_,t==="left"&&e.columnIndex>0&&(m[e.rowId][e.columnIndex-1]-=_,m[e.rowId][e.columnIndex-1]===0&&removeEmptyColumnFromRow({rows:d,sizes:m,position:e,direction:"left"})),t==="left"&&e.columnIndex===0){const C=m[e.rowId].slice(1).reduce((b,F)=>b+F,0);m[e.rowId][0]<c-C&&addEmptyColumnToRow({rows:d,sizes:m,position:e,direction:"left"})}if(t==="right"&&e.columnIndex<m[e.rowId].length-1&&(m[e.rowId][e.columnIndex+1]-=_,m[e.rowId][e.columnIndex+1]===0&&removeEmptyColumnFromRow({rows:d,sizes:m,position:e,direction:"right"})),t==="right"&&e.columnIndex===m[e.rowId].length-1){const C=m[e.rowId].slice(0,-1).reduce((b,F)=>b+F,0);m[e.rowId][e.columnIndex]<c-C&&addEmptyColumnToRow({rows:d,sizes:m,position:e,direction:"right"})}return{newRows:d,newSizes:m,moveDistance:g}}function addEmptyColumnToRow({rows:e,sizes:t,position:o,direction:r}){const i=e[o.rowId]||[],n=t[o.rowId]||[];if(r==="left"){const l=i[o.columnIndex-1];if(l!=null&&l.includes(import_flow_engine.EMPTY_COLUMN_UID))return;i.splice(o.columnIndex,0,[import_flow_engine.EMPTY_COLUMN_UID]),n.splice(o.columnIndex,0,1)}if(r==="right"){const l=i[o.columnIndex+1];if(l!=null&&l.includes(import_flow_engine.EMPTY_COLUMN_UID))return;i.splice(o.columnIndex+1,0,[import_flow_engine.EMPTY_COLUMN_UID]),n.splice(o.columnIndex+1,0,1)}}function removeEmptyColumnFromRow({rows:e,sizes:t,position:o,direction:r}){const i=e[o.rowId]||[],n=t[o.rowId]||[];if(r==="left"){const l=i[o.columnIndex-1];if(!(l!=null&&l.includes(import_flow_engine.EMPTY_COLUMN_UID)))return;i.splice(o.columnIndex-1,1),n.splice(o.columnIndex-1,1)}if(r==="right"){const l=i[o.columnIndex+1];if(!(l!=null&&l.includes(import_flow_engine.EMPTY_COLUMN_UID)))return;i.splice(o.columnIndex+1,1),n.splice(o.columnIndex+1,1)}}class BlockGridModel extends GridModel{constructor(){super(...arguments),R(this,"dragOverlayConfig",{columnInsert:{before:{offsetTop:-24},after:{offsetTop:24}},columnEdge:{left:{offsetLeft:-5},right:{offsetLeft:6}}})}onInit(t){super.onInit(t),this.context.defineProperty("blockGridModel",{value:this}),this.context.defineProperty("filterManager",{once:!0,get:()=>new FilterManager(this,t.filterManager)})}get subModelBaseClasses(){var t,o;const r=(o=(t=this.context.view)==null?void 0:t.inputArgs)!=null?o:{};return r.collectionName&&!r.filterByTk?["DataBlockModel","FilterBlockModel","BlockModel"]:["DataBlockModel","FilterBlockModel","BlockModel"]}get filterManager(){return this.context.filterManager}serialize(){const t=super.serialize();return t.filterManager=this.filterManager.getFilterConfigs(),t}renderAddSubModelButton(){return(0,import_jsx_runtime.jsx)(import_flow_engine.AddSubModelButton,{model:this,subModelKey:"items",subModelBaseClasses:this.subModelBaseClasses,children:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowSettingsButton,{icon:(0,import_jsx_runtime.jsx)(import_icons.PlusOutlined,{}),"data-flow-add-block":!0,children:this.context.t("Add block")})})}render(){return(0,import_jsx_runtime.jsx)("div",{className:"nb-block-grid",style:this.context.disableBlockGridPadding?null:{padding:this.context.isMobileLayout?8:this.context.themeToken.marginBlock,paddingBottom:0},children:super.render()})}}BlockGridModel.registerFlow({key:"blockGridSettings",steps:{grid:{handler(e,t){e.model.setProps("rowGap",e.isMobileLayout?12:e.themeToken.marginBlock),e.model.setProps("colGap",e.themeToken.marginBlock)}}}});const parseMarkdown=import_lodash.default.memoize(e=>L(void 0,null,function*(){return e&&(yield Promise.resolve().then(()=>require("./md-BbvRKckr-IQIU5F3r.js"))).default.render(e)}));function useParseMarkdown(e){const[t,o]=(0,import_react2.useState)(""),[r,i]=(0,import_react2.useState)(!0);return(0,import_react2.useEffect)(()=>{i(!0),parseMarkdown(e).then(n=>{o(n),i(!1)}).catch(n=>console.log(n))},[e]),{html:t,loading:r}}function convertToText$1(e){const t=e;let o=document.createElement("div");o.innerHTML=t;const r=o.innerText;return o=null,(r==null?void 0:r.replace(/[\n\r]/g,""))||""}const useMarkdownStyles=()=>{const{token:e}=import_antd.theme.useToken(),{isDarkTheme:t}=useGlobalTheme(),o=new import_tinycolor.TinyColor(e.colorFillAlter).onBackground(e.colorBgContainer).toHexShortString(),r={lineHeight:"inherit","&.nb-markdown-default":{"pre code.hljs":{display:"block",overflowX:"auto",padding:"1em"},"code.hljs":{padding:"3px 5px"},":not(pre) code":{padding:"2px 5px",color:"#d56161",background:e.colorFillQuaternary,border:`1px solid ${e.colorBorder}`,borderRadius:e.borderRadiusSM},blockquote:{borderLeft:"4px solid #ccc",paddingLeft:"20px",marginLeft:"0",color:"#666",fontStyle:"italic"},img:{maxWidth:"100%"},".hljs":{background:"#f8f8f8",color:"#444"},".hljs-comment":{color:"#697070"},".hljs-punctuation,.hljs-tag":{color:"#444a"},".hljs-tag .hljs-attr,.hljs-tag .hljs-name":{color:"#444"},".hljs-attribute,.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-name,.hljs-selector-tag":{fontWeight:700},".hljs-deletion,.hljs-number,.hljs-quote,.hljs-selector-class,.hljs-selector-id,.hljs-string,.hljs-template-tag,.hljs-type":{color:"#800"},".hljs-section,.hljs-title":{color:"#800",fontWeight:700},".hljs-link,.hljs-operator,.hljs-regexp,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-symbol,.hljs-template-variable,.hljs-variable":{color:"#ab5656"},".hljs-literal":{color:"#695"},".hljs-addition,.hljs-built_in,.hljs-bullet,.hljs-code":{color:"#397300"},".hljs-meta":{color:"#1f7199"},".hljs-meta .hljs-string":{color:"#38a"},".hljs-emphasis":{fontStyle:"italic"},".hljs-strong":{fontWeight:700}},"&.nb-markdown-table":{table:{borderCollapse:"collapse",width:"100%",fontFamily:"Arial, sans-serif",marginBottom:"1.5rem"},"th, td":{borderBottom:`1px solid ${e.colorBorderSecondary}`,padding:`${e.paddingContentVertical}px ${e.paddingContentHorizontal}px`,textAlign:"left"},th:{backgroundColor:o,fontWeight:"bold",color:e.colorText},"tr:hover":{backgroundColor:e.colorFillTertiary},"tr:last-child td":{borderBottom:"none"},"tr:first-child th":{borderTop:"none"}}},i={"&.nb-markdown-default":{"pre code.hljs":{display:"block",overflowX:"auto",padding:"1em"},"code.hljs":{padding:"3px 5px"},":not(pre) code":{padding:"2px 5px",color:"#d56161",background:e.colorFillQuaternary,border:`1px solid ${e.colorBorder}`,borderRadius:e.borderRadiusSM},".hljs":{color:"#adbac7",background:"#22272e"},".hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_":{color:"#f47067"},".hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_":{color:"#dcbdfb"},".hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable":{color:"#6cb6ff"},".hljs-meta .hljs-string,.hljs-regexp,.hljs-string":{color:"#96d0ff"},".hljs-built_in,.hljs-symbol":{color:"#f69d50"},".hljs-code,.hljs-comment,.hljs-formula":{color:"#768390"},".hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag":{color:"#8ddb8c"},".hljs-subst":{color:"#adbac7"},".hljs-section":{color:"#316dca",fontWeight:700},".hljs-bullet":{color:"#eac55f"},".hljs-emphasis":{color:"#adbac7",fontStyle:"italic"},".hljs-strong":{color:"#adbac7",fontWeight:700},".hljs-addition":{color:"#b4f1b4",backgroundColor:"#1b4721"},".hljs-deletion":{color:"#ffd8d3",backgroundColor:"#78191b"}},"&.nb-markdown-table":{table:{borderCollapse:"collapse",width:"100%",fontFamily:"Arial, sans-serif",marginBottom:"1.5rem"},"th, td":{borderBottom:`1px solid ${e.colorBorderSecondary}`,padding:`${e.paddingContentVertical}px ${e.paddingContentHorizontal}px`,textAlign:"left"},th:{backgroundColor:o,fontWeight:"bold",color:e.colorText},"tr:hover":{backgroundColor:e.colorFillTertiary},"tr:last-child td":{borderBottom:"none"},"tr:first-child th":{borderTop:"none"}}};return(0,import_css.css)(x({lineHeight:e.lineHeight,"& > *:last-child":{marginBottom:"0"},".ant-description-textarea, .ant-description-input":{lineHeight:e.lineHeight},".field-interface-datetime":{minWidth:"100px"},img:{maxWidth:"100%"}},t?i:r))},DisplayMarkdown=e=>{const{textOnly:t,overflowMode:o,style:r}=e,i=useMarkdownStyles(),{html:n=""}=useParseMarkdown(e.value),l=convertToText$1(n),a=o==="ellipsis",c=(0,import_react2.useRef)(null),[u,d]=(0,import_react2.useState)(!1);(0,import_react2.useEffect)(()=>{if(c.current){const h=c.current,g=h.scrollWidth>h.clientWidth||h.scrollHeight>h.clientHeight;d(g)}},[n,r,o]);const m=x(x({},r||{}),a?{display:"-webkit-box",WebkitLineClamp:1,WebkitBoxOrient:"vertical",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"normal",wordBreak:"break-word",cursor:"default"}:{}),p=(0,import_jsx_runtime.jsx)("div",{ref:c,className:`${i} nb-markdown`,dangerouslySetInnerHTML:{__html:t?l:n},style:m});return a&&u?(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:(0,import_jsx_runtime.jsx)("div",{dangerouslySetInnerHTML:{__html:n},style:{maxHeight:500,overflowY:"auto",padding:10,color:"#000"}}),overlayInnerStyle:{background:"#fff",color:"#000",boxShadow:"0 2px 8px rgba(0,0,0,0.15)"},color:"#fff",children:p}):p},getRootElement=e=>e&&(e.closest(".nb-block-grid")||e.closest(".nb-page-wrapper")||e.closest(".nb-page"))||document.documentElement,getOuterHeight$2=e=>{if(!e)return 0;const t=e.getBoundingClientRect(),o=window.getComputedStyle(e),r=parseFloat(o.marginTop)||0,i=parseFloat(o.marginBottom)||0;return t.height+r+i},getPadding=e=>{if(!e||e===document.documentElement)return{top:0,bottom:0};const t=window.getComputedStyle(e);return{top:parseFloat(t.paddingTop)||0,bottom:parseFloat(t.paddingBottom)||0}},getPageHeader=e=>{const t=e.closest(".nb-page");return t?t.querySelector(".ant-page-header")||t.querySelector(".pageHeaderCss"):null},getAddBlockContainer=e=>{const t=e.querySelector("[data-flow-add-block]");return t?t.parentElement||t:null};function getValidPageTop(e,t){return e>0?e:t}const useBlockHeight$1=({height:e,heightMode:t,cardRef:o})=>{const[r,i]=(0,import_react2.useState)(),n=(0,import_flow_engine.useFlowContext)(),l=(0,import_react2.useCallback)(()=>{if(t!=="fullHeight"||typeof window>"u"){i(v=>v===void 0?v:void 0);return}const a=o.current;if(!a)return;const c=getRootElement(a),u=a.getBoundingClientRect(),d=c===document.documentElement?{top:0}:c.getBoundingClientRect(),m=getPadding(c),p=getAddBlockContainer(c),h=d.top+m.top,g=Math.min(Math.max(0,u.top-h),0);let f=m.bottom+n.themeToken.marginBlock;p&&(f=n.themeToken.marginBlock+getOuterHeight$2(p)+m.bottom);const _=Math.max(0,Math.floor(window.innerHeight-getValidPageTop(h,110)-g-f));i(v=>v===_?v:_)},[t,o]);return(0,import_react2.useLayoutEffect)(()=>{l()},[l]),(0,import_react2.useEffect)(()=>{if(t!=="fullHeight"||typeof window>"u")return;const a=o.current;if(!a||typeof ResizeObserver>"u")return;const c=getRootElement(a),u=getPageHeader(c),d=getAddBlockContainer(c),m=new ResizeObserver(()=>l());return m.observe(a),c instanceof HTMLElement&&m.observe(c),u&&m.observe(u),d&&m.observe(d),window.addEventListener("resize",l),()=>{m.disconnect(),window.removeEventListener("resize",l)}},[t,o,l]),t==="specifyValue"?e:t==="fullHeight"?r:null},BlockItemCard=import_react2.default.forwardRef((e,t)=>{(0,import_react_i18next.useTranslation)();const{token:o}=import_antd.theme.useToken(),r=e,{title:i,description:n,children:l,className:a,heightMode:c}=r,u=te(r,["title","description","children","className","heightMode"]),d=(0,import_react2.useRef)(null),m=(0,import_react2.useCallback)(g=>{d.current=g,typeof t=="function"?t(g):t&&(t.current=g)},[t]),p=useBlockHeight$1(A(x({},e),{cardRef:d})),h=(i||n)&&(0,import_jsx_runtime.jsxs)("div",{children:[(0,import_jsx_runtime.jsxs)("span",{children:[" ",i]}),n&&(0,import_jsx_runtime.jsx)(DisplayMarkdown,{value:n,style:{overflowWrap:"break-word",whiteSpace:"normal",fontWeight:400,color:o.colorTextDescription,borderRadius:"4px"}})]});return(0,import_jsx_runtime.jsxs)(import_antd.Card,A(x({ref:m,title:h,style:{display:"flex",flexDirection:"column",height:p},styles:{body:{flex:1,display:"flex",flexDirection:"column",overflow:"auto"},header:{marginTop:"8px"}},className:a},u),{children:[e.beforeContent,l,e.afterContent]}))}),getContentWidth$1=e=>{if(e){const t=document.createRange();return t.selectNodeContents(e),t.getBoundingClientRect().width}},ellipsisDefaultStyle={overflow:"hidden",overflowWrap:"break-word",textOverflow:"ellipsis",whiteSpace:"nowrap",wordBreak:"break-all"},wrappingDefaultStyle={overflowWrap:"break-word",whiteSpace:"normal",wordBreak:"break-word"},isOverflowTooltip=e=>{if(!e)return!1;const t=getContentWidth$1(e),o=e.offsetWidth;return t>o},popoverStyle={maxWidth:600,overflow:"auto",maxHeight:400},EllipsisWithTooltip=(0,import_react2.forwardRef)((e,t)=>{const[o,r]=(0,import_react2.useState)(!1),[i,n]=(0,import_react2.useState)(!1),l=(0,import_react2.useRef)();(0,import_react2.useImperativeHandle)(t,()=>({setPopoverVisible:n}),[]);const a=(0,import_react2.useCallback)(u=>{const d=u.target;isOverflowTooltip(l.current)&&r(d.scrollWidth>=d.clientWidth)},[]),c=(0,import_react2.useMemo)(()=>{const u=e.ellipsis?{onMouseEnter:a}:{};return(0,import_jsx_runtime.jsx)("div",A(x({ref:l,role:e.role,style:e.ellipsis?ellipsisDefaultStyle:wrappingDefaultStyle},u),{children:e.children}))},[a,e.children,e.ellipsis,e.role]);return!e.ellipsis||!o?c:(0,import_jsx_runtime.jsx)(import_antd.Popover,{open:o&&i,onOpenChange:u=>{n(o&&u)},content:(0,import_jsx_runtime.jsx)("div",{style:popoverStyle,children:e.popoverContent||e.children}),children:c})});EllipsisWithTooltip.displayName="EllipsisWithTooltip";const date=(0,import_dayjs.default)(),spaceCSS=import_css.css`
|
|
1762
|
+
`}function formatRunJSPreviewMessage(e){return buildPreviewMessageWithTruncation(e)}function diagnoseRunJS(e,t){return L(this,arguments,function*(o,r,i={}){const n=typeof o=="string"?o:String(o??""),l=[],a=[],c=i==null?void 0:i.version,u=(0,import_flow_engine.shouldPreprocessRunJSTemplates)({version:c});a.push(...collectLezerSyntaxIssues(n)),a.push(...collectHeuristicIssues(n));const d=typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now(),m={started:!1,finished:!1,timeout:!1,durationMs:void 0};try{m.started=!0;const{consoleCapture:p,loggerCapture:h}=createLogCollectors(l),g={console:p};try{if(typeof window<"u"){const y=(0,import_flow_engine.createSafeNavigator)();g.navigator=y,g.window=(0,import_flow_engine.createSafeWindow)({navigator:y}),g.document=(0,import_flow_engine.createSafeDocument)()}}catch{}let f=n;try{f=yield(0,import_flow_engine.prepareRunJsCode)(n,{preprocessTemplates:u})}catch(y){const C=String((y==null?void 0:y.name)||""),b=safeToString((y==null?void 0:y.message)||y),F=y instanceof SyntaxError||/^SyntaxError\b/i.test(C)||/SyntaxError\b/i.test(b);return a.push({type:"runtime",ruleId:F?"preview-start-failed":"internal",message:F?b:`Preview internal failure: ${b}`,stack:safeStack(y)}),m.finished=!0,m.timeout=!1,{issues:sortIssuesStable(a),logs:l,execution:m}}const _=yield r.createJSRunner({globals:g,timeoutMs:PREVIEW_TIMEOUT_MS,version:c});_.globals.ctx.defineProperty("logger",{value:h});const v=yield _.run(f);if(m.finished=!0,m.timeout=!!(v!=null&&v.timeout),!(v!=null&&v.success)){const y=v==null?void 0:v.error,C=v!=null&&v.timeout?"Execution timed out":safeToString((y==null?void 0:y.message)||y||"Unknown error"),b=y instanceof SyntaxError||/^SyntaxError\b/i.test(String((y==null?void 0:y.name)||""));a.push({type:"runtime",ruleId:v!=null&&v.timeout?"timeout":b?"preview-start-failed":"runtime-error",message:C,stack:safeStack(y)})}}catch(p){m.finished=!0,m.timeout=!1,a.push({type:"runtime",ruleId:"internal",message:`Preview internal failure: ${safeToString((p==null?void 0:p.message)||p)}`,stack:safeStack(p)})}finally{const p=typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now(),h=Math.max(0,p-d);m.durationMs=Number.isFinite(h)?h:void 0}return{issues:sortIssuesStable(a),logs:l,execution:m}})}function createPreviewFlowContext(e){const t=new import_flow_engine.FlowContext;if(t.addDelegate(e),typeof document<"u"&&typeof document.createElement=="function"&&!e.element)try{const o=document.createElement("div");t.defineProperty("element",{value:o})}catch{}return t}function previewRunJS(e,t){return L(this,arguments,function*(o,r,i={}){const n=createPreviewFlowContext(r),l=yield diagnoseRunJS(o,n,i),a=l.issues.length===0,c=formatRunJSPreviewMessage(l),u=c.length>MAX_MESSAGE_CHARS?clampText(c,MAX_MESSAGE_CHARS):c;return{success:a,message:u}})}const runjsDiagnostics=Object.freeze(Object.defineProperty({__proto__:null,MAX_MESSAGE_CHARS,diagnoseRunJS,formatRunJSPreviewMessage,previewRunJS},Symbol.toStringTag,{value:"Module"})),CodeEditor=({value:e="",onChange:t,placeholder:o="",height:r="100%",minHeight:i,theme:n="light",readonly:l=!1,enableLinter:a=!1,wrapperStyle:c,extraCompletions:u,version:d="v1",name:m,language:p,scene:h,RightExtra:g})=>{const f=(0,import_react2.useRef)(null),_=(0,import_react2.useRef)(null),{isFullscreen:v,toggleFullscreen:y,placeholderRef:C,placeholderStyle:b,container:F}=useFullscreenOverlay(),S=(0,import_flow_engine.useFlowContext)(),P=(0,import_react2.useMemo)(()=>{if(h&&(!Array.isArray(h)||h.length))return h;if(S)try{const z=(0,import_flow_engine.getRunJSScenesForContext)(S,{version:d});return z.length?z:void 0}catch{return}},[h,S,d]),{completions:j,entries:I}=useRunJSDocCompletions(S,d,P),{run:T,logs:N,running:D}=useCodeRunner(S,d),[w,k]=(0,import_react2.useState)(!1),B=(0,import_react2.useCallback)(()=>{const z=f.current;return z&&(z.closest(".ant-drawer-content-wrapper")||z.closest(".ant-drawer-content")||z.closest(".ant-modal-content")||z.parentElement)||document.body},[]),E=(0,import_react2.useCallback)((z,U)=>{try{return S!=null&&S.t?S.t(z,U):z}catch{return z}},[S]),M=(0,import_react2.useMemo)(()=>{const z=[];return Array.isArray(j)&&z.push(...j),Array.isArray(u)&&z.push(...u),z},[u,j]),O=(0,import_react2.useMemo)(()=>createRunJSCompletionSource({hostCtx:S,staticOptions:M}),[S,M]),V=(0,import_react2.useRef)({write(z){const U=_.current;U&&U.state.doc.toString()!==z&&U.dispatch({changes:{from:0,to:U.state.doc.length,insert:z}})},read(){const z=_.current;return z?z.state.doc.toString():""},buttonGroupHeight:0,snippetEntries:[],logs:[]});V.current.snippetEntries=I,V.current.logs=N,(0,import_react2.useEffect)(()=>{var z;(z=_.current)==null||z.requestMeasure()},[v]);const $=(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:E(v?"Exit fullscreen":"Fullscreen"),children:(0,import_jsx_runtime.jsx)(import_antd.Button,{size:"small","aria-label":E(v?"Exit fullscreen":"Fullscreen"),icon:v?(0,import_jsx_runtime.jsx)(import_icons.FullscreenExitOutlined,{}):(0,import_jsx_runtime.jsx)(import_icons.FullscreenOutlined,{}),onClick:y})}),q=(0,import_jsx_runtime.jsxs)("div",{style:x({border:v?"none":"1px solid #d9d9d9",borderRadius:v?0:"6px",overflow:"visible",position:"relative",display:"flex",flexDirection:"column",boxSizing:v?"border-box":void 0,padding:v?16:void 0,height:v?"100%":void 0,minHeight:v?0:void 0},c),ref:f,children:[(0,import_jsx_runtime.jsx)(RightExtra,{name:m,language:p,scene:P,extraEditorRef:V.current,extraContent:(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[g?(0,import_jsx_runtime.jsx)(g,{viewRef:_}):(0,import_jsx_runtime.jsxs)("div",{style:{display:"flex",gap:8,alignItems:"center"},children:[(0,import_jsx_runtime.jsx)(import_antd.Button,{size:"small",onClick:()=>k(!0),children:E("Snippets")}),(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:(0,import_jsx_runtime.jsx)(import_antd.Button,{size:"small",loading:D,onClick:()=>L(void 0,null,function*(){var z;const U=((z=_.current)==null?void 0:z.state.doc.toString())||"";clearDiagnostics(_.current);const K=yield T(U);if(!(K!=null&&K.success)){const W=K==null?void 0:K.error,Y=K!=null&&K.timeout?E("Execution timed out"):String(W||E("Unknown error")),Q=parseErrorLineColumn(W);Q&&_.current&&markErrorAt(_.current,Q.line,Q.column,Y)}}),children:E("Run")})})]}),$]})}),(0,import_jsx_runtime.jsx)(EditorCore,{value:e,onChange:t,placeholder:o,height:v?"100%":r,minHeight:i,theme:n,readonly:l,enableLinter:a,completionSource:O,viewRef:_}),(0,import_jsx_runtime.jsx)(LogsPanel,{logs:N,onJumpTo:(z,U)=>{const K=_.current;K&&jumpTo(K,z,U)},tr:E}),(0,import_jsx_runtime.jsx)(SnippetsDrawer,{open:w,onClose:()=>k(!1),getContainer:B,entries:I,tr:E,onInsert:z=>{const U=_.current;if(!U)return;const{from:K,to:W}=U.state.selection.main,Y=K+z.length;U.dispatch({changes:{from:K,to:W,insert:z},selection:{anchor:Y},scrollIntoView:!0}),U.focus(),k(!1)}})]});return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)("div",{ref:C,style:v?b:{display:"contents"}}),F?(0,import_react_dom.createPortal)(q,F):null]})},RunJSValueEditor=e=>{var t;const{t:o,value:r,onChange:i,height:n="200px",scene:l="formValue",containerStyle:a={flex:1,minWidth:0}}=e,c=(0,import_flow_engine.isRunJSValue)(r)?(0,import_flow_engine.normalizeRunJSValue)(r):{code:"",version:"v2"},u=`// ${(t=o==null?void 0:o("Use return to output value"))!=null?t:"Use return to output value"}`;return(0,import_jsx_runtime.jsx)("div",{style:a,children:(0,import_jsx_runtime.jsx)(CodeEditor,{value:c.code,onChange:d=>i==null?void 0:i(A(x({},c),{code:d})),version:c.version,height:n,enableLinter:!0,placeholder:u,scene:l})})},ConditionBuilder=(0,import_flow_engine.observer)(e=>{const t=(0,import_flow_engine.useFlowContext)();return(0,import_jsx_runtime.jsx)(FilterGroup,{value:e.value||{logic:"$and",items:[]},FilterItem:o=>(0,import_jsx_runtime.jsx)(LinkageFilterItem,{model:t.model,value:o.value,extraMetaTree:e.extraMetaTree}),onChange:e.onChange})}),commonConditionHandler=(e,t)=>{const{condition:o={logic:"$and",items:[]}}=t,r=(i,n,l)=>e.app.jsonLogic.apply({[n]:[i,l]});(0,import_client.evaluateConditions)((0,import_client.removeInvalidFilterItems)(o),r)||e.exit()};function ActionWithoutPermission(e){const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_flow_engine.useFlowModel)(),r=o.context.blockModel,i=e.collection||r.collection,n=i.dataSource,l=(0,import_react2.useMemo)(()=>{const u=`${t(n.displayName||n.key)} > `,d=i?`${t(i.title)||i.name||i.tableName} `:"";return`${u}${d}`},[]),{actionName:a}=(e==null?void 0:e.forbidden)||o.forbidden,c=(0,import_react2.useMemo)(()=>t(`The current user only has the UI configuration permission, but don't have "{{actionName}}" permission for collection "{{name}}"`,{name:l,actionName:t(import_lodash.default.capitalize(a))}).replaceAll(">",">"),[a,l,t]);return(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:e.message||c,children:e.children})}const ActionSceneEnum={collection:"collection",record:"record",all:["collection","record"],both:["collection","record"]};class ActionModel extends import_flow_engine.FlowModel{constructor(){super(...arguments),R(this,"defaultProps",{type:"default",title:(0,import_flow_engine.tExpr)("Action")}),R(this,"enableEditTooltip",!0),R(this,"enableEditTitle",!0),R(this,"enableEditIcon",!0),R(this,"enableEditType",!0),R(this,"enableEditDanger",!0),R(this,"enableEditColor",!1)}static _getScene(){return import_lodash.default.castArray(this.scene||[])}static _isScene(t){return this._getScene().includes(t)}getAclActionName(){return null}onInit(t){super.onInit(t),this.context.defineProperty("actionName",{get:()=>this.getAclActionName(),cache:!1})}getInputArgs(){const t={},o=[];if(this.context.resource){const r=this.context.resource.getSourceId();r&&(t.sourceId=r,o.push("sourceId"))}if(this.context.collection&&this.context.record){const r=this.context.collection.getFilterByTK(this.context.record);r&&(t.filterByTk=r,o.push("filterByTk"))}return o.length&&(t.defaultInputKeys=o),t}onClick(t){this.dispatchEvent("click",x({event:t},this.getInputArgs()),{debounce:!0})}getTitle(){return this.props.title}getIcon(){return this.props.icon}renderButton(){const t=this.props,o=this.getIcon()?(0,import_jsx_runtime.jsx)(Icon,{type:this.getIcon()}):void 0;return(0,import_jsx_runtime.jsx)(import_antd.Button,A(x({},t),{onClick:this.onClick.bind(this),icon:o,children:t.children||this.getTitle()}))}render(){return this.props.tooltip?(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:this.props.tooltip,children:this.renderButton()}):this.renderButton()}renderHiddenInConfig(){const t=this.props,o=this.getIcon()?(0,import_jsx_runtime.jsx)(Icon,{type:this.getIcon()}):void 0;return this.forbidden?(0,import_jsx_runtime.jsx)(ActionWithoutPermission,{children:(0,import_jsx_runtime.jsx)(import_antd.Button,A(x({},t),{onClick:this.onClick.bind(this),icon:o,style:{opacity:"0.3"},children:t.children||this.getTitle()}))}):(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:this.context.t("The button is hidden and only visible when the UI Editor is active"),children:(0,import_jsx_runtime.jsx)(import_antd.Button,A(x({},t),{onClick:this.onClick.bind(this),icon:o,style:{opacity:"0.3"},children:t.children||this.getTitle()}))})}}ActionModel.registerFlow({key:"buttonSettings",title:(0,import_flow_engine.tExpr)("Button settings"),sort:-999,steps:{general:{title:(0,import_flow_engine.tExpr)("Edit button"),uiSchema(e){return{title:e.model.enableEditTitle?{"x-decorator":"FormItem","x-component":"Input",title:(0,import_flow_engine.tExpr)("Button title")}:void 0,tooltip:e.model.enableEditTooltip?{"x-decorator":"FormItem","x-component":"Input",title:(0,import_flow_engine.tExpr)("Button tooltip")}:void 0,icon:e.model.enableEditIcon?{"x-decorator":"FormItem","x-component":"IconPicker",title:(0,import_flow_engine.tExpr)("Button icon")}:void 0,type:e.model.enableEditType?{"x-decorator":"FormItem","x-component":"Radio.Group",title:(0,import_flow_engine.tExpr)("Button type"),enum:[{value:"default",label:'{{t("Default")}}'},{value:"primary",label:'{{t("Primary")}}'},{value:"dashed",label:'{{t("Dashed")}}'},{value:"link",label:'{{t("Link")}}'},{value:"text",label:'{{t("Text")}}'}]}:void 0,danger:e.model.enableEditDanger?{"x-decorator":"FormItem","x-component":"Switch",title:(0,import_flow_engine.tExpr)("Danger action")}:void 0,color:e.model.enableEditColor?{"x-decorator":"FormItem","x-component":ColorPicker,title:(0,import_flow_engine.tExpr)("Color")}:void 0}},defaultParams(e){return e.model.defaultProps},handler(e,t){const o=t,{title:r,tooltip:i}=o,n=te(o,["title","tooltip"]);e.model.setProps(x({title:e.t(r,{ns:"lm-flow-engine"}),tooltip:e.t(i,{ns:"lm-flow-engine"})},n))}},linkageRules:{use:"actionLinkageRules"}}});ActionModel.registerFlow({key:"buttonAclSettings",steps:{aclCheck:{use:"aclCheck"}}});ActionModel.registerFlow({key:"paginationChange",on:"paginationChange",steps:{aclCheckRefresh:{use:"aclCheckRefresh"},linkageRulesRefresh:{use:"linkageRulesRefresh",defaultParams:{actionName:"actionLinkageRules",flowKey:"buttonSettings",stepKey:"linkageRules"}}}});ActionModel.registerEvents({click:{title:(0,import_flow_engine.tExpr)("Click"),name:"click",uiSchema:{condition:{type:"object",title:(0,import_flow_engine.tExpr)("Trigger condition"),"x-decorator":"FormItem","x-component":ConditionBuilder}},handler:commonConditionHandler}});const VIEW_ACTION_ALIASES={view:"get"},normalizeCapabilityActionName=e=>e?VIEW_ACTION_ALIASES[e]||e:null,getExplicitCapabilityNames=(e,t)=>{for(const o of t){if(!(o in e))continue;const r=e[o];return r==null?null:(Array.isArray(r)?r:[r]).map(i=>normalizeCapabilityActionName(i)).filter(Boolean)}},isCapabilitySupported=(e,t)=>{const o=normalizeCapabilityActionName(t);if(!o||!(e!=null&&e.options))return!0;const{availableActions:r,unavailableActions:i}=e.options;return Array.isArray(r)?r.includes(o):Array.isArray(i)?!i.includes(o):!0},areCapabilitiesSupported=(e,t)=>t!=null&&t.length?t.every(o=>isCapabilitySupported(e,o)):!0,getActionCapabilityNamesFromModelClass=e=>{var t;const o=getExplicitCapabilityNames(e,["capabilityActionNames","capabilityActionName"]);if(o!==void 0)return o;const r=(t=e==null?void 0:e.prototype)==null?void 0:t.getAclActionName;if(typeof r!="function")return null;try{const i=r.call({}),n=normalizeCapabilityActionName(i);return n?[n]:null}catch{return null}},getBlockCapabilityNamesFromModelClass=e=>{const t=getExplicitCapabilityNames(e,["blockCapabilityActionNames","blockCapabilityActionName"]);return t??null};class ActionGroupModel extends import_flow_engine.FlowModel{static getAllParentClasses(){const t=[];let o=this;for(;o&&o!==Object;)o=Object.getPrototypeOf(o),o!=null&&o.currentModels&&t.push(o);return t}static get currentModels(){return(!Object.prototype.hasOwnProperty.call(this,"_models")||!this._models)&&(this._models=new Map),this._models}static get models(){const t=new Map,o=this.getAllParentClasses();for(const r of o)for(const[i,n]of r.currentModels)t.set(i,n);for(const[r,i]of this.currentModels)t.set(r,i);return t}static registerActionModels(t){for(const[o,r]of Object.entries(t))Object.defineProperty(r,"name",{value:o}),this.currentModels.set(o,r)}static isActionModelVisible(t,o){var r;const i=o.collection||((r=o.blockModel)==null?void 0:r.collection),n=getActionCapabilityNamesFromModelClass(t);return areCapabilitiesSupported(i,n)}static defineChildren(t){return L(this,null,function*(){const o=this.baseClass?yield(0,import_flow_engine.buildSubModelItems)(this.baseClass)(t):[],r=[],i=o.filter(n=>{const l=t.engine.getModelClass(n.useModel);return this.isActionModelVisible(l,t)?this.scene?l._isScene(this.scene):!0:!1});for(const[n,l]of this.models){if(!this.isActionModelVisible(l,t)||i.find(c=>c.useModel===l.name))continue;const a=yield(0,import_flow_engine.buildSubModelItem)(l,t);a&&r.push(a)}return import_lodash.default.sortBy([...i,...r],"sort")})}}R(ActionGroupModel,"baseClass"),R(ActionGroupModel,"scene"),R(ActionGroupModel,"_models");class CollectionActionGroupModel extends ActionGroupModel{}R(CollectionActionGroupModel,"baseClass",ActionModel),R(CollectionActionGroupModel,"scene",ActionSceneEnum.collection);class RecordActionGroupModel extends ActionGroupModel{}R(RecordActionGroupModel,"baseClass",ActionModel),R(RecordActionGroupModel,"scene",ActionSceneEnum.record);class AssociationFieldGroupModel extends import_flow_engine.FlowModel{static defineChildren(t){const o=this.itemModelName,r=(i,n="")=>i.getToOneAssociationFields().map(l=>{const a=n?`${n}.${l.name}`:l.name;if(!l.targetCollection){console.error(`AssociationFieldGroupModel: target collection ${l.target} not found for field ${l.name}`);return}return{key:`${a}-assocationField`,label:l.title,children:()=>[{key:`${a}-children-collectionField`,label:t.t("Display fields"),type:"group",children:l.targetCollection.getFields().map(c=>{const u=`${a}.${c.name}`,d=import_flow_engine.DisplayItemModel.getDefaultBindingByField(t,c,{fallbackToTargetTitleField:!0});if(!d)return;const m=d.modelName;return{key:`c-${a}.${c.name}`,label:c.title,useModel:o,toggleable:p=>{var h;return((h=p.getStepParams("fieldSettings","init"))==null?void 0:h.fieldPath)===u},createModelOptions:{stepParams:{fieldSettings:{init:{dataSourceKey:t.collection.dataSourceKey,collectionName:t.prefixFieldPath?t.blockModel.context.collection.name:t.collection.name,fieldPath:u,associationPathName:a}}},subModels:{field:{use:m}}}}}).filter(Boolean)},{key:`${a}-children-associationField`,label:"Display association fields",type:"group",children:(r(l.targetCollection,a)||[]).filter(Boolean)}]}}).filter(Boolean);return r(t.collection,t.prefixFieldPath)}}R(AssociationFieldGroupModel,"itemModelName","DetailsItemModel");AssociationFieldGroupModel.define({label:'{{t("Display fields")}}'});function getDefaultOperator(e){var t,o,r,i,n,l;return e.operator||((t=e.getStepParams("filterFormItemSettings","defaultOperator"))==null?void 0:t.value)||((o=e.subModels.field)==null?void 0:o.operator)||((l=(n=(i=(r=e.collectionField)==null?void 0:r.filterable)==null?void 0:i.operators)==null?void 0:n[0])==null?void 0:l.value)||"$includes"}function isFilterValueEmpty(e){return!!(e==null||typeof e=="string"&&e.trim()===""||Array.isArray(e)&&e.filter(t=>!(t==null||typeof t=="string"&&t.trim()==="")).length===0||typeof e=="object"&&e.constructor===Object&&Object.keys(e).length===0)}function getAllDataModels(e){return e.filterSubModels("items",t=>{var o;return!!((o=t.resource)!=null&&o.supportsFilter)})}class FilterManager{constructor(t,o){R(this,"filterConfigs"),R(this,"gridModel"),this.gridModel=t,this.filterConfigs=o||[]}saveFilterConfigs(){return L(this,null,function*(){yield this.gridModel.saveStepParams()})}getFilterConfigs(){return this.filterConfigs}getConnectFieldsConfig(t){const o=this.filterConfigs.filter(r=>r.filterId===t);if(o.length!==0)return{targets:o.map(r=>({targetId:r.targetId,filterPaths:r.filterPaths}))}}saveConnectFieldsConfig(t,o){return L(this,null,function*(){const r=o.targets.map(n=>({filterId:t,targetId:n.targetId,filterPaths:n.filterPaths})),i=this.filterConfigs.filter(n=>n.filterId!==t);this.filterConfigs=[],this.filterConfigs.push(...i,...r),yield this.saveFilterConfigs()})}addFilterConfig(t){return L(this,null,function*(){if(!t.filterId||!t.targetId){console.error("FilterConfig must have filterId, targetId, and operator");return}if(!Array.isArray(t.filterPaths)||t.filterPaths.length===0){console.error("FilterConfig must have non-empty filterPaths array");return}const o=this.filterConfigs.findIndex(r=>r.filterId===t.filterId&&r.targetId===t.targetId);o>=0?this.filterConfigs[o]=x({},t):this.filterConfigs.push(x({},t)),yield this.saveFilterConfigs()})}removeFilterConfig(t){return L(this,arguments,function*({filterId:o,targetId:r,persist:i=!0}){if(!o&&!r)return console.error("At least one of filterId or targetId must be provided"),0;const n=this.filterConfigs.length;this.filterConfigs=this.filterConfigs.filter(a=>o&&r?!(a.filterId===o&&a.targetId===r):o?a.filterId!==o:r?a.targetId!==r:!0);const l=n-this.filterConfigs.length;return l>0&&i&&(yield this.saveFilterConfigs()),l})}bindToTarget(t){if(!t||typeof t!="string"){console.error("[NocoBase]: targetId must be a non-empty string");return}const o=this.gridModel.flowEngine.getModel(t);if(!o){console.error(`[NocoBase]: Target model with uid "${t}" not found`);return}if(!o.resource||typeof o.resource.addFilterGroup!="function"){console.error(`[NocoBase]: Target model with uid "${t}" does not have a valid resource with addFilterGroup method`);return}if(typeof o.resource.removeFilterGroup!="function"){console.error(`[NocoBase]: Target model with uid "${t}" does not have a valid resource with removeFilterGroup method`);return}const r=this.filterConfigs.filter(n=>n.targetId===t);if(r.length===0)return;const i=o;r.forEach(n=>{const l=this.gridModel.flowEngine.getModel(n.filterId);if(!l){console.error(`[NocoBase]: Filter model with uid "${n.filterId}" not found`);return}if(!l.getFilterValue){console.error(`[NocoBase]: Filter model with uid "${n.filterId}" does not have getFilterValue method`);return}const a=l.getFilterValue();if(isFilterValueEmpty(a)){try{o.resource.removeFilterGroup(n.filterId),i.setFilterActive(n.filterId,!1)}catch(u){console.error(`[NocoBase]: Failed to remove filter configuration from target model: ${u.message}`);return}return}i.setFilterActive(n.filterId,!0);const c=n.filterPaths.map(u=>({path:u,operator:n.operator||getDefaultOperator(l),value:a}));try{if(c.length===1)o.resource.addFilterGroup(n.filterId,new import_flow_engine.FilterItem({path:c[0].path,operator:c[0].operator,value:c[0].value}));else if(c.length>1){const u={logic:"$or",items:c};o.resource.addFilterGroup(n.filterId,new import_flow_engine.FilterGroup(u))}}catch(u){console.error(`Failed to bind filter configuration to target model: ${u.message}`);return}})}unbindFromTarget(t){if(!t||typeof t!="string"){console.error("targetId must be a non-empty string");return}const o=this.gridModel.flowEngine.getModel(t);if(!o){console.error(`Target model with uid "${t}" not found`);return}if(!o.resource||typeof o.resource.removeFilterGroup!="function"){console.error(`Target model with uid "${t}" does not have a valid resource with removeFilterGroup method`);return}const r=this.filterConfigs.filter(n=>n.targetId===t);if(r.length===0)return;const i=o;r.forEach(n=>{try{o.resource.removeFilterGroup(n.filterId),typeof(i==null?void 0:i.removeFilterSource)=="function"&&i.removeFilterSource(n.filterId)}catch(l){console.error(`Failed to unbind filter configuration from target model: ${l.message}`);return}})}refreshTargetsByFilter(t){return L(this,null,function*(){if(!t){console.error("filterId must be provided");return}const o=Array.isArray(t)?t:[t];if(o.length===0||o.some(n=>!n||typeof n!="string")){console.error("filterId must be non-empty string(s)");return}const r=this.filterConfigs.filter(n=>o.includes(n.filterId));if(r.length===0)return;const i=[...new Set(r.map(n=>n.targetId))].map(n=>L(this,null,function*(){try{this.bindToTarget(n);const l=this.gridModel.flowEngine.getModel(n);if(!l){console.error(`Target model with uid "${n}" not found`);return}if(!l.resource||typeof l.resource.refresh!="function"){console.error(`Target model with uid "${n}" does not have a valid resource with refresh method`);return}const a=l,c=l.resource;if(a.getDataLoadingMode()==="manual"&&!a.hasActiveFilters()){c.setData([]),c.setMeta({count:0,hasNext:!1}),typeof c.setPage=="function"&&c.setPage(1),c.loading=!1;return}typeof c.setPage=="function"&&c.setPage(1),yield c.refresh()}catch(l){console.error(`Failed to refresh target model "${n}": ${l.message}`);return}}));yield Promise.all(i)})}}function Grid({rows:e={},sizes:t={},layout:o,renderItem:r,rowGap:i=16,colGap:n=16,dragOverlayRect:l}){const a=o||(0,import_flow_engine.normalizeGridLayout)({rows:e,sizes:t});return a.rows.length?(0,import_jsx_runtime.jsxs)("div",{style:{position:"relative",display:"flex",flexDirection:"column",gap:i},"data-grid-root":!0,children:[l&&(0,import_jsx_runtime.jsx)(GridDragOverlay,{rect:l}),(0,import_jsx_runtime.jsx)(GridRows,{rows:a.rows,renderItem:r,rowGap:i,colGap:n,parentPath:[]})]}):(0,import_jsx_runtime.jsx)("div",{style:{position:"relative"},"data-grid-root":!0,"data-grid-empty-container":!0,children:l&&(0,import_jsx_runtime.jsx)(GridDragOverlay,{rect:l})})}function GridRows({rows:e,renderItem:t,rowGap:o,colGap:r,parentPath:i}){return(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:e.map(n=>{const l=n.cells.length,a=n.sizes||[],c=a.some(m=>m!=null&&m!==void 0),u=[...i,{rowId:n.id}],d=n.cells.map((m,p)=>{var h;if(c){const g=a.reduce((v,y)=>v+(y||0),0),f=l-a.filter(Boolean).length,_=f>0?(24-g)/f:0;return(h=a[p])!=null?h:_}else return 24/l});return(0,import_jsx_runtime.jsx)(import_antd.Row,{gutter:r,"data-grid-row-id":n.id,"data-grid-path":JSON.stringify(u),children:n.cells.map((m,p)=>(0,import_jsx_runtime.jsx)(GridColumn,{rowKey:n.id,columnIndex:p,span:d[p],rowGap:o,colGap:r,cell:m,path:[...u.slice(0,-1),{rowId:n.id,cellId:m.id}],renderItem:t},m.id))},n.id)})})}const GridColumn=import_react2.default.memo(function e({rowKey:t,columnIndex:o,span:r,rowGap:i,colGap:n,cell:l,path:a,renderItem:c}){var u;const d=l.items||[];return(0,import_jsx_runtime.jsx)(import_antd.Col,{span:r,"data-grid-column-row-id":t,"data-grid-column-index":o,"data-grid-path":JSON.stringify(a),children:(0,import_jsx_runtime.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:i},children:[d.map((m,p)=>m===import_flow_engine.EMPTY_COLUMN_UID?null:(0,import_jsx_runtime.jsx)("div",{"data-grid-item-row-id":t,"data-grid-column-index":o,"data-grid-item-index":p,"data-grid-item-uid":m,"data-grid-path":JSON.stringify(a),children:c(m)},m)),(u=l.rows)!=null&&u.length?(0,import_jsx_runtime.jsx)(GridRows,{rows:l.rows,renderItem:c,rowGap:i,colGap:n,parentPath:a}):null]})})});GridColumn.displayName="GridColumn";function GridDragOverlay({rect:e}){const t={position:"absolute",top:e.top,left:e.left,width:e.width,height:e.height,borderRadius:6,pointerEvents:"none",transition:"all 60ms ease-out",zIndex:100},o={column:{border:"2px dashed var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.08)"},"column-edge":{border:"2px solid var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.12)"},"row-gap":{border:"2px dashed var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.05)"},"empty-row":{border:"2px dashed var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.04)"},"empty-column":{border:"2px dashed var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.04)"},"item-edge":{border:"2px solid var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.12)"}};return(0,import_jsx_runtime.jsx)("div",{style:x(x({},t),o[e.type])})}const InnerJsonEditor=e=>{var t=e,{value:o,onChange:r,rows:i=10}=t,n=te(t,["value","onChange","rows"]);const[l,a]=(0,import_react2.useState)(()=>o?JSON.stringify(o,null,2):""),[c,u]=(0,import_react2.useState)(null);(0,import_react2.useEffect)(()=>{a(o?JSON.stringify(o,null,2):"")},[o]);const d=m=>{const p=m.target.value;a(p);try{const h=p.trim()?JSON.parse(p):void 0;u(null),r==null||r(h)}catch(h){u(h.message)}};return(0,import_jsx_runtime.jsxs)("div",{children:[(0,import_jsx_runtime.jsx)(import_antd.Input.TextArea,x({value:l,autoSize:{minRows:i,maxRows:i+10},onChange:d},n)),c&&(0,import_jsx_runtime.jsx)(import_antd.Alert,{type:"error",message:c,showIcon:!0,style:{marginTop:8}})]})},JsonEditor=(0,import_react.connect)(InnerJsonEditor);function SkeletonFallback(e){return(0,import_jsx_runtime.jsx)(import_antd.Card,A(x({},e),{children:(0,import_jsx_runtime.jsx)(import_antd.Skeleton,{paragraph:{rows:3}})}))}const GRID_FLOW_KEY="gridSettings",GRID_STEP="grid",getClientPoint=e=>{if(!e)return null;if(typeof e.clientX=="number"&&typeof e.clientY=="number")return{x:e.clientX,y:e.clientY};if(e.touches&&e.touches.length>0){const t=e.touches[0];return{x:t.clientX,y:t.clientY}}if(e.changedTouches&&e.changedTouches.length>0){const t=e.changedTouches[0];return{x:t.clientX,y:t.clientY}}return null};class GridModel extends import_flow_engine.FlowModel{constructor(){super(...arguments),R(this,"subModelBaseClass","BlockModel"),R(this,"gridContainerRef",import_react2.default.createRef()),R(this,"prevMoveDistance",0),R(this,"itemSettingsMenuLevel",1),R(this,"itemFlowSettings",{}),R(this,"dragOverlayConfig"),R(this,"itemFallback",(0,import_jsx_runtime.jsx)(SkeletonFallback,{})),R(this,"itemExtraToolbarItems",[{key:"drag-handler",component:import_flow_engine.DragHandler,sort:1}]),R(this,"dragState"),R(this,"_memoItemFlowSettings"),R(this,"updateDragPointerPosition",t=>{if(!this.dragState)return;const o=getClientPoint(t);o&&(this.dragState.pointerPosition=o)}),R(this,"handleDragScroll",()=>{this.dragState&&this.scheduleSnapshotRefresh()})}bindDragDocumentListeners(){var t;const o=((t=this.getDragContainer())==null?void 0:t.ownerDocument)||(typeof document>"u"?null:document);if(!o)return;const r={capture:!0,passive:!0},i={capture:!0},n=o.defaultView;return o.addEventListener("pointermove",this.updateDragPointerPosition,r),o.addEventListener("mousemove",this.updateDragPointerPosition,r),o.addEventListener("touchmove",this.updateDragPointerPosition,r),o.addEventListener("scroll",this.handleDragScroll,r),n==null||n.addEventListener("scroll",this.handleDragScroll,r),()=>{o.removeEventListener("pointermove",this.updateDragPointerPosition,i),o.removeEventListener("mousemove",this.updateDragPointerPosition,i),o.removeEventListener("touchmove",this.updateDragPointerPosition,i),o.removeEventListener("scroll",this.handleDragScroll,i),n==null||n.removeEventListener("scroll",this.handleDragScroll,i)}}deriveRowOrder(t,o){const r=[],i=new Set;return(o||Object.keys(t)).forEach(n=>{t[n]&&!i.has(n)&&(r.push(n),i.add(n))}),Object.keys(t).forEach(n=>{i.has(n)||(r.push(n),i.add(n))}),r}normalizeRowsWithOrder(t,o){const r=this.deriveRowOrder(t,o),i={};return r.forEach(n=>{t[n]&&(i[n]=t[n])}),Object.keys(t).forEach(n=>{i[n]||(i[n]=t[n])}),{rows:i,rowOrder:r}}orderSizesByRowOrder(t,o){const r={};return o.forEach(i=>{t[i]&&(r[i]=t[i])}),Object.keys(t).forEach(i=>{r[i]||(r[i]=t[i])}),r}getItemFlowSettings(){return this._memoItemFlowSettings||(this._memoItemFlowSettings=x({showBackground:!1,showDragHandle:!0},this.itemFlowSettings)),this._memoItemFlowSettings}getItemUids(){return(this.subModels.items||[]).map(t=>t.uid)}normalizeLayoutFromSource(t){var o,r,i,n,l,a,c,u;const d=this.getStepParams(GRID_FLOW_KEY,GRID_STEP)||{};return(0,import_flow_engine.normalizeGridLayout)({layout:(r=(o=t==null?void 0:t.layout)!=null?o:this.props.layout)!=null?r:d.layout,rows:(n=(i=t==null?void 0:t.rows)!=null?i:this.props.rows)!=null?n:d.rows,sizes:(a=(l=t==null?void 0:t.sizes)!=null?l:this.props.sizes)!=null?a:d.sizes,rowOrder:(u=(c=t==null?void 0:t.rowOrder)!=null?c:this.props.rowOrder)!=null?u:d.rowOrder,itemUids:this.getItemUids(),gridUid:this.uid,logger:console})}getGridLayout(){return this.normalizeLayoutFromSource()}syncLayoutProps(t){const o=(0,import_flow_engine.projectLayoutToLegacyRows)(t);this.setProps("layout",t),this.setProps("rows",o.rows),this.setProps("sizes",o.sizes),this.setProps("rowOrder",o.rowOrder)}setGridStepLayout(t){this.setStepParams(GRID_FLOW_KEY,{[GRID_STEP]:{layout:t}})}findLayoutRowByPath(t,o){if(!(o!=null&&o.length))return null;let r=t.rows;for(let i=0;i<o.length;i+=1){const n=o[i],l=r.find(c=>c.id===n.rowId);if(!l)return null;if(i===o.length-1)return l;const a=l.cells.find(c=>c.id===n.cellId);r=(a==null?void 0:a.rows)||[]}return null}collectCellItemsForResize(t){return Array.isArray(t.items)?[...t.items]:(t.rows||[]).flatMap(o=>o.cells.flatMap(r=>this.collectCellItemsForResize(r)))}buildResizedCells(t,o){const r=new Set;return o.map((i,n)=>{const l=t.cells.findIndex((a,c)=>!r.has(c)&&import_lodash.default.isEqual(this.collectCellItemsForResize(a),i));if(l!==-1){r.add(l);const a=t.cells[l];return a.rows&&!a.items?import_lodash.default.cloneDeep(a):{id:a.id,items:[...i]}}return{id:`${t.id}:cell:${n}:${(0,import_shared.uid)()}`,items:[...i]}})}getResizeRowPath(t){if(!(t!=null&&t.length))return[];const o=t.map(r=>x({},r));return delete o[o.length-1].cellId,o}getResizeContainerWidth(t){var o,r,i;const n=this.getResizeRowPath(t),l=((o=this.gridContainerRef.current)==null?void 0:o.clientWidth)||0;if(!n.length)return l;const a=Array.from(((r=this.gridContainerRef.current)==null?void 0:r.querySelectorAll("[data-grid-row-id]"))||[]).find(c=>{try{return import_lodash.default.isEqual(JSON.parse(c.dataset.gridPath||"[]"),n)}catch{return!1}});return((i=a==null?void 0:a.parentElement)==null?void 0:i.clientWidth)||l}resizeGridLayout({direction:t,resizeDistance:o,model:r}){var i,n;const l=this.getGridLayout(),a=(0,import_flow_engine.findModelUidLayoutPosition)(l,r.uid);if(!a)return null;const c=this.findLayoutRowByPath(l,a.path);if(!c)return null;const u=this.getResizeContainerWidth(a.path),d=c.cells.map(_=>this.collectCellItemsForResize(_)),{newRows:m,newSizes:p,moveDistance:h}=recalculateGridSizes({position:{rowId:c.id,columnIndex:a.cellIndex,itemIndex:a.itemIndex},direction:t,resizeDistance:o,prevMoveDistance:this.prevMoveDistance,oldRows:{[c.id]:d},oldSizes:{[c.id]:c.sizes||[]},gutter:(n=(i=this.context.themeToken)==null?void 0:i.marginBlock)!=null?n:16,gridContainerWidth:u}),g=import_lodash.default.cloneDeep(l),f=this.findLayoutRowByPath(g,a.path);return f?(f.cells=this.buildResizedCells(c,m[c.id]||[]),f.sizes=p[c.id]||[],{layout:(0,import_flow_engine.normalizeGridLayout)({layout:g,itemUids:this.getItemUids(),gridUid:this.uid,logger:console}),moveDistance:h}):null}onMount(){super.onMount(),this.emitter.on("onSubModelAdded",t=>{t.isNew&&(this.resetRows(!0),this.setGridStepLayout(this.props.layout))}),this.emitter.on("onSubModelDestroyed",t=>{var o,r;const i=t.uid;this.resetRows(!0),this.setGridStepLayout(this.props.layout),(o=this.context.filterManager)==null||o.removeFilterConfig({targetId:i}),(r=this.context.filterManager)==null||r.removeFilterConfig({filterId:i}),this.saveStepParams()}),this.emitter.on("onSubModelMoved",()=>{this.resetRows(!0)}),this.emitter.on("onResizeLeft",({resizeDistance:t,model:o})=>{const r=this.resizeGridLayout({direction:"left",resizeDistance:t,model:o});r&&(this.prevMoveDistance=r.moveDistance,this.syncLayoutProps(r.layout))}),this.emitter.on("onResizeRight",({resizeDistance:t,model:o})=>{const r=this.resizeGridLayout({direction:"right",resizeDistance:t,model:o});r&&(this.prevMoveDistance=r.moveDistance,this.syncLayoutProps(r.layout))}),this.emitter.on("onResizeBottom",({resizeDistance:t,model:o})=>{}),this.emitter.on("onResizeEnd",()=>{this.prevMoveDistance=0,this.saveGridLayout(this.props.layout)})}saveGridLayout(t){const o=t&&"version"in t?(0,import_flow_engine.normalizeGridLayout)({layout:t,itemUids:this.getItemUids(),gridUid:this.uid,logger:console}):this.normalizeLayoutFromSource(t);this.setGridStepLayout(o),this.syncLayoutProps(o),this.saveStepParams()}mergeRowsWithItems(t){const o=this.subModels.items||[];if(!o||o.length===0)return{};const r=new Set(o.map(a=>a.uid));r.add(import_flow_engine.EMPTY_COLUMN_UID);const i=new Set,n={};for(const[a,c]of Object.entries(t)){const u=c.map(d=>import_lodash.default.castArray(d).filter(m=>r.has(m))).filter(d=>d.length>0);u.length>0&&(n[a]=u,u.forEach(d=>d.forEach(m=>i.add(m))))}const l=new Set;Object.values(n).forEach(a=>a.forEach(c=>c.forEach(u=>l.add(u))));for(const a of o)l.has(a.uid)||(n[(0,import_shared.uid)()]=[[a.uid]]);return n}resetRows(t=!1){const o=this.getStepParams(GRID_FLOW_KEY,GRID_STEP)||{},r=this.normalizeLayoutFromSource(o);this.setGridStepLayout(r),t&&this.syncLayoutProps(r)}computePointerPosition(t){var o;if(!this.dragState)return null;if(this.dragState.pointerPosition)return this.dragState.pointerPosition;const r=this.dragState.pointerOrigin;if(r)return{x:r.x+t.delta.x,y:r.y+t.delta.y};const i=getClientPoint(t.activatorEvent);if(i)return this.dragState.pointerOrigin=i,{x:i.x+t.delta.x,y:i.y+t.delta.y};const n=(o=t.over)==null?void 0:o.rect;return n?{x:n.left+n.width/2,y:n.top+n.height/2}:null}getDragContainer(){if(!this.dragState)return this.gridContainerRef.current;const t=this.gridContainerRef.current;return t&&this.dragState.containerEl!==t&&(this.dragState.containerEl=t),this.dragState.containerEl||t}updateLayoutSnapshot(){if(!this.dragState)return;const t=(0,import_flow_engine.buildLayoutSnapshot)({container:this.getDragContainer()});this.dragState.slots=t.slots,this.dragState.containerRect=t.containerRect}scheduleSnapshotRefresh(){this.dragState&&(this.dragState.refreshTimer||(this.dragState.refreshTimer=setTimeout(()=>{this.dragState&&(this.dragState.refreshTimer=null,this.updateLayoutSnapshot(),this.refreshPreviewFromPointer())},16)))}refreshPreviewFromPointer(){if(!this.dragState)return;const t=this.dragState.pointerPosition||this.dragState.pointerOrigin;if(!t)return;const o=this.resolveDragSlot(t);this.applyPreview(o)}computeOverlayRect(t){var o,r,i,n,l,a,c,u,d,m,p,h;const g=this.dragOverlayConfig,f=t.rect;switch(t.type){case"column":{const _=(o=g==null?void 0:g.columnInsert)==null?void 0:o[t.position],v=(r=_==null?void 0:_.height)!=null?r:f.height,y=(i=_==null?void 0:_.offsetTop)!=null?i:0;return{top:f.top+y,left:f.left,width:f.width,height:v}}case"column-edge":{const _=(n=g==null?void 0:g.columnEdge)==null?void 0:n[t.direction],v=(l=_==null?void 0:_.width)!=null?l:f.width,y=(a=_==null?void 0:_.offsetLeft)!=null?a:0;return{top:f.top,left:f.left+y,width:v,height:f.height}}case"item-edge":{const _=(c=g==null?void 0:g.columnEdge)==null?void 0:c[t.direction],v=(u=_==null?void 0:_.width)!=null?u:f.width,y=(d=_==null?void 0:_.offsetLeft)!=null?d:0;return{top:f.top,left:f.left+y,width:v,height:f.height}}case"row-gap":{const _=(m=g==null?void 0:g.rowGap)==null?void 0:m[t.position],v=(p=_==null?void 0:_.height)!=null?p:f.height,y=(h=_==null?void 0:_.offsetTop)!=null?h:0;return{top:f.top+y,left:f.left,width:f.width,height:v}}case"empty-column":case"empty-row":return{top:f.top,left:f.left,width:f.width,height:f.height};default:return{top:f.top,left:f.left,width:f.width,height:f.height}}}getHitTestSlot(t){return A(x({},t),{rect:this.computeOverlayRect(t)})}resolveDragSlot(t){var o;return(o=this.dragState)!=null&&o.slots.length?(0,import_flow_engine.resolveDropIntent)(t,this.dragState.slots.map(r=>this.getHitTestSlot(r))):null}applyPreview(t){if(!this.dragState)return;if(!t){this.dragState.activeSlotKey!==null&&(this.dragState.activeSlotKey=null,this.dragState.previewLayout=void 0,this.setProps("dragOverlayRect",null));return}const o=(0,import_flow_engine.getSlotKey)(t);if(this.dragState.activeSlotKey===o&&this.dragState.previewLayout)return;const r=(0,import_flow_engine.simulateLayoutForSlot)({slot:t,sourceUid:this.dragState.sourceUid,layout:this.dragState.snapshot,generateRowId:import_shared.uid,generatedIds:this.dragState.generatedIds,generateId:()=>(0,import_shared.uid)()});if(r.layout&&this.dragState.snapshot.layout&&(0,import_flow_engine.isSameGridLayout)(r.layout,this.dragState.snapshot.layout)){this.applyPreview(null);return}this.dragState.previewLayout={rows:import_lodash.default.cloneDeep(r.rows),sizes:import_lodash.default.cloneDeep(r.sizes),rowOrder:import_lodash.default.cloneDeep(r.rowOrder),layout:import_lodash.default.cloneDeep(r.layout)};const i=this.computeOverlayRect(t),n={top:i.top-this.dragState.containerRect.top,left:i.left-this.dragState.containerRect.left,width:i.width,height:i.height,type:t.type};this.setProps("dragOverlayRect",n),this.dragState.activeSlotKey=o}handleDragStart(t){var o;const r=t.active.id,i=this.normalizeLayoutFromSource(),n=(0,import_flow_engine.projectLayoutToLegacyRows)(i);this.dragState={sourceUid:r,snapshot:{rows:import_lodash.default.cloneDeep(n.rows),sizes:import_lodash.default.cloneDeep(n.sizes),rowOrder:import_lodash.default.cloneDeep(n.rowOrder),layout:import_lodash.default.cloneDeep(i)},slots:[],containerEl:this.gridContainerRef.current,containerRect:{top:0,left:0,width:0,height:0},pointerOrigin:(o=getClientPoint(t.activatorEvent))!=null?o:void 0,activeSlotKey:null,previewLayout:void 0,refreshTimer:null,generatedIds:new Map},this.dragState.cleanupListeners=this.bindDragDocumentListeners(),this.setProps("dragOverlayRect",null),this.updateLayoutSnapshot(),this.scheduleSnapshotRefresh()}handleDragMove(t){if(!this.dragState)return;this.dragState.slots.length||this.updateLayoutSnapshot();const o=this.computePointerPosition(t);if(!o){this.applyPreview(null);return}const r=this.resolveDragSlot(o);this.applyPreview(r)}finishDrag(){var t,o;this.dragState&&(this.dragState.refreshTimer&&clearTimeout(this.dragState.refreshTimer),(o=(t=this.dragState).cleanupListeners)==null||o.call(t),this.dragState=void 0,this.setProps("dragOverlayRect",null))}handleDragEnd(t){if(!this.dragState)return;const o=this.dragState.previewLayout;o&&(o.layout?this.syncLayoutProps(import_lodash.default.cloneDeep(o.layout)):(this.setProps("rows",import_lodash.default.cloneDeep(o.rows)),this.setProps("sizes",import_lodash.default.cloneDeep(o.sizes)),o.rowOrder&&this.setProps("rowOrder",import_lodash.default.cloneDeep(o.rowOrder))),this.saveGridLayout(o)),this.finishDrag()}handleDragCancel(t){this.finishDrag()}renderAddSubModelButton(){throw new Error("renderAddSubModelButton method must be implemented in subclasses of GridModel")}getVisibleLayout(){var t;const o=this.normalizeLayoutFromSource(),r=this.context.isMobileLayout?(0,import_flow_engine.normalizeGridLayout)({rows:transformRowsToSingleColumn((0,import_flow_engine.projectLayoutToLegacyRows)(o).rows),itemUids:this.getItemUids()}):o,i=(0,import_flow_engine.projectLayoutToLegacyRows)(r),{rows:n,rowOrder:l}=this.normalizeRowsWithOrder(i.rows,i.rowOrder),a=this.orderSizesByRowOrder(i.sizes,l);if(this.context.flowSettingsEnabled)return{layout:r,rows:n,sizes:a};const c=((t=this.subModels)==null?void 0:t.items)||[];if(!c.length)return{layout:r,rows:i.rows,sizes:i.sizes};const u=new Map(c.map(h=>[h.uid,h])),d=h=>h.map(g=>{const f=[],_=[];return g.cells.forEach((v,y)=>{var C;const b=(C=g.sizes)==null?void 0:C[y],F=Number.isFinite(b)&&b>0?b:1;if(v.rows){const P=d(v.rows);P.length&&(f.push(A(x({},v),{rows:P})),_.push(F));return}const S=(v.items||[]).filter(P=>{var j;return P===import_flow_engine.EMPTY_COLUMN_UID?!1:((j=u.get(P))==null?void 0:j.hidden)!==!0});S.some(P=>{const j=u.get(P);return!j||!j.hidden})&&(f.push(A(x({},v),{items:S})),_.push(F))}),f.length?A(x({},g),{cells:f,sizes:_}):null}).filter(Boolean),m=(0,import_flow_engine.normalizeGridLayout)({layout:{version:2,rows:d(r.rows)}}),p=(0,import_flow_engine.projectLayoutToLegacyRows)(m);return{layout:m,rows:p.rows,sizes:p.sizes}}render(){const{layout:t,rows:o,sizes:r}=this.getVisibleLayout(),i=Object.keys(o||{}).length>0;return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[i&&(0,import_jsx_runtime.jsx)(import_antd.Space,{ref:this.gridContainerRef,direction:"vertical",style:{width:"100%",marginBottom:this.props.rowGap},size:this.props.rowGap,children:(0,import_jsx_runtime.jsx)(import_flow_engine.DndProvider,{onDragStart:this.handleDragStart.bind(this),onDragMove:this.handleDragMove.bind(this),onDragEnd:this.handleDragEnd.bind(this),onDragCancel:this.handleDragCancel.bind(this),children:(0,import_jsx_runtime.jsx)(Grid,{rowGap:this.props.rowGap,colGap:this.props.colGap,layout:t,rows:o,sizes:r,dragOverlayRect:this.props.dragOverlayRect,renderItem:n=>{var l,a,c,u,d,m;const p=this.flowEngine.getModel(n);if(!p)return this.itemFallback;const h=this.context.fieldKey,g=this.context.fieldIndex,f=this.context.getPropertyOptions("item"),_=(a=(l=this.context).getPropertyOptions)==null?void 0:a.call(l,"record"),v=(u=(c=this.context).getPropertyOptions)==null?void 0:u.call(c,"currentObject"),y=g==null?p:(()=>{const C=p.createFork({},`${h}:${n}`);C.context.defineProperty("fieldIndex",{get:()=>g}),C.context.defineProperty("fieldKey",{get:()=>h}),C.context.defineProperty("record",{get:()=>this.context.record,cache:!1,meta:_==null?void 0:_.meta,resolveOnServer:_==null?void 0:_.resolveOnServer,serverOnlyWhenContextParams:_==null?void 0:_.serverOnlyWhenContextParams}),C.context.defineProperty("currentObject",{get:()=>this.context.currentObject,cache:!1,resolveOnServer:v==null?void 0:v.resolveOnServer,serverOnlyWhenContextParams:v==null?void 0:v.serverOnlyWhenContextParams});const b=f||{},F=te(b,["value"]);return C.context.defineProperty("item",A(x({},F),{get:()=>this.context.item,cache:!1})),C})();return(0,import_jsx_runtime.jsx)(import_flow_engine.Droppable,{model:y,children:(0,import_jsx_runtime.jsx)(import_flow_engine.MemoFlowModelRenderer,{model:y,fallback:p.skeleton||this.itemFallback,showFlowSettings:this.context.flowSettingsEnabled?this.getItemFlowSettings():!1,showErrorFallback:!0,settingsMenuLevel:(d=y==null?void 0:y.settingsMenuLevel)!=null?d:this.itemSettingsMenuLevel,showTitle:!0,extraToolbarItems:this.itemExtraToolbarItems},`${y.uid}:${h}:${(y==null?void 0:y.use)||((m=y==null?void 0:y.constructor)==null?void 0:m.name)||"m"}`)})}})})}),this.context.flowSettingsEnabled&&(0,import_jsx_runtime.jsx)("div",{style:{marginBottom:16},children:this.renderAddSubModelButton()})]})}}GridModel.registerFlow({key:GRID_FLOW_KEY,steps:{resetRows:{handler(e){e.model.resetRows()}},grid:{uiSchema:{layout:{title:(0,import_flow_engine.tExpr)("Layout"),"x-decorator":"FormItem","x-component":JsonEditor,"x-component-props":{autoSize:{minRows:10,maxRows:20},description:(0,import_flow_engine.tExpr)("Configure the nested layout of the grid.")}}},handler(e,t){return L(this,null,function*(){const o=e.model,r=(0,import_flow_engine.normalizeGridLayout)({layout:t.layout,rows:t.rows,sizes:t.sizes,rowOrder:t.rowOrder,itemUids:o.getItemUids(),gridUid:o.uid,logger:console});o.setGridStepLayout(r),o.syncLayoutProps(r)})}}}});function transformRowsToSingleColumn(e,t){var o;const r=(o=t==null?void 0:t.emptyColumnUid)!=null?o:import_flow_engine.EMPTY_COLUMN_UID,i={};return Object.keys(e).forEach(n=>{e[n].forEach(l=>{const a=l.filter(c=>c!==r);a.length>0&&(i[(0,import_shared.uid)()]=[a])})}),i}function recalculateGridSizes({position:e,direction:t,resizeDistance:o,prevMoveDistance:r,oldSizes:i,oldRows:n,gridContainerWidth:l,gutter:a=16,columnCount:c=24}){var u;const d=import_lodash.default.cloneDeep(n),m=import_lodash.default.cloneDeep(i),p=m[e.rowId]||[],h=a*(p.length-1);let g=Math.floor(o/(l-h)*c);if(g===r)return{newRows:d,newSizes:m,moveDistance:g};m[u=e.rowId]!=null||(m[u]=[c]);const f=m[e.rowId];let _=g-r;const v=t==="left"&&e.columnIndex>0,y=t==="right"&&e.columnIndex<f.length-1;if(!v&&!y&&_>0){const C=f.reduce((F,S)=>F+S,0),b=c-C;if(b<=0)return{newRows:d,newSizes:m,moveDistance:r};_>b&&(g=r+b,_=b)}if(m[e.rowId][e.columnIndex]+=_,t==="left"&&e.columnIndex>0&&(m[e.rowId][e.columnIndex-1]-=_,m[e.rowId][e.columnIndex-1]===0&&removeEmptyColumnFromRow({rows:d,sizes:m,position:e,direction:"left"})),t==="left"&&e.columnIndex===0){const C=m[e.rowId].slice(1).reduce((b,F)=>b+F,0);m[e.rowId][0]<c-C&&addEmptyColumnToRow({rows:d,sizes:m,position:e,direction:"left"})}if(t==="right"&&e.columnIndex<m[e.rowId].length-1&&(m[e.rowId][e.columnIndex+1]-=_,m[e.rowId][e.columnIndex+1]===0&&removeEmptyColumnFromRow({rows:d,sizes:m,position:e,direction:"right"})),t==="right"&&e.columnIndex===m[e.rowId].length-1){const C=m[e.rowId].slice(0,-1).reduce((b,F)=>b+F,0);m[e.rowId][e.columnIndex]<c-C&&addEmptyColumnToRow({rows:d,sizes:m,position:e,direction:"right"})}return{newRows:d,newSizes:m,moveDistance:g}}function addEmptyColumnToRow({rows:e,sizes:t,position:o,direction:r}){const i=e[o.rowId]||[],n=t[o.rowId]||[];if(r==="left"){const l=i[o.columnIndex-1];if(l!=null&&l.includes(import_flow_engine.EMPTY_COLUMN_UID))return;i.splice(o.columnIndex,0,[import_flow_engine.EMPTY_COLUMN_UID]),n.splice(o.columnIndex,0,1)}if(r==="right"){const l=i[o.columnIndex+1];if(l!=null&&l.includes(import_flow_engine.EMPTY_COLUMN_UID))return;i.splice(o.columnIndex+1,0,[import_flow_engine.EMPTY_COLUMN_UID]),n.splice(o.columnIndex+1,0,1)}}function removeEmptyColumnFromRow({rows:e,sizes:t,position:o,direction:r}){const i=e[o.rowId]||[],n=t[o.rowId]||[];if(r==="left"){const l=i[o.columnIndex-1];if(!(l!=null&&l.includes(import_flow_engine.EMPTY_COLUMN_UID)))return;i.splice(o.columnIndex-1,1),n.splice(o.columnIndex-1,1)}if(r==="right"){const l=i[o.columnIndex+1];if(!(l!=null&&l.includes(import_flow_engine.EMPTY_COLUMN_UID)))return;i.splice(o.columnIndex+1,1),n.splice(o.columnIndex+1,1)}}class BlockGridModel extends GridModel{constructor(){super(...arguments),R(this,"dragOverlayConfig",{columnInsert:{before:{offsetTop:-12},after:{offsetTop:12}},columnEdge:{left:{offsetLeft:-5},right:{offsetLeft:6}}})}onInit(t){super.onInit(t),this.context.defineProperty("blockGridModel",{value:this}),this.context.defineProperty("filterManager",{once:!0,get:()=>new FilterManager(this,t.filterManager)})}get subModelBaseClasses(){var t,o;const r=(o=(t=this.context.view)==null?void 0:t.inputArgs)!=null?o:{};return r.collectionName&&!r.filterByTk?["DataBlockModel","FilterBlockModel","BlockModel"]:["DataBlockModel","FilterBlockModel","BlockModel"]}get filterManager(){return this.context.filterManager}serialize(){const t=super.serialize();return t.filterManager=this.filterManager.getFilterConfigs(),t}renderAddSubModelButton(){return(0,import_jsx_runtime.jsx)(import_flow_engine.AddSubModelButton,{model:this,subModelKey:"items",subModelBaseClasses:this.subModelBaseClasses,children:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowSettingsButton,{icon:(0,import_jsx_runtime.jsx)(import_icons.PlusOutlined,{}),"data-flow-add-block":!0,children:this.context.t("Add block")})})}render(){return(0,import_jsx_runtime.jsx)("div",{className:"nb-block-grid",style:this.context.disableBlockGridPadding?null:{padding:this.context.isMobileLayout?8:this.context.themeToken.marginBlock,paddingBottom:0},children:super.render()})}}BlockGridModel.registerFlow({key:"blockGridSettings",steps:{grid:{handler(e,t){e.model.setProps("rowGap",e.isMobileLayout?12:e.themeToken.marginBlock),e.model.setProps("colGap",e.themeToken.marginBlock)}}}});const parseMarkdown=import_lodash.default.memoize(e=>L(void 0,null,function*(){return e&&(yield Promise.resolve().then(()=>require("./md-oH2RssNY-IQIU5F3r.js"))).default.render(e)}));function useParseMarkdown(e){const[t,o]=(0,import_react2.useState)(""),[r,i]=(0,import_react2.useState)(!0);return(0,import_react2.useEffect)(()=>{i(!0),parseMarkdown(e).then(n=>{o(n),i(!1)}).catch(n=>console.log(n))},[e]),{html:t,loading:r}}function convertToText$1(e){const t=e;let o=document.createElement("div");o.innerHTML=t;const r=o.innerText;return o=null,(r==null?void 0:r.replace(/[\n\r]/g,""))||""}const useMarkdownStyles=()=>{const{token:e}=import_antd.theme.useToken(),{isDarkTheme:t}=useGlobalTheme(),o=new import_tinycolor.TinyColor(e.colorFillAlter).onBackground(e.colorBgContainer).toHexShortString(),r={lineHeight:"inherit","&.nb-markdown-default":{"pre code.hljs":{display:"block",overflowX:"auto",padding:"1em"},"code.hljs":{padding:"3px 5px"},":not(pre) code":{padding:"2px 5px",color:"#d56161",background:e.colorFillQuaternary,border:`1px solid ${e.colorBorder}`,borderRadius:e.borderRadiusSM},blockquote:{borderLeft:"4px solid #ccc",paddingLeft:"20px",marginLeft:"0",color:"#666",fontStyle:"italic"},img:{maxWidth:"100%"},".hljs":{background:"#f8f8f8",color:"#444"},".hljs-comment":{color:"#697070"},".hljs-punctuation,.hljs-tag":{color:"#444a"},".hljs-tag .hljs-attr,.hljs-tag .hljs-name":{color:"#444"},".hljs-attribute,.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-name,.hljs-selector-tag":{fontWeight:700},".hljs-deletion,.hljs-number,.hljs-quote,.hljs-selector-class,.hljs-selector-id,.hljs-string,.hljs-template-tag,.hljs-type":{color:"#800"},".hljs-section,.hljs-title":{color:"#800",fontWeight:700},".hljs-link,.hljs-operator,.hljs-regexp,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-symbol,.hljs-template-variable,.hljs-variable":{color:"#ab5656"},".hljs-literal":{color:"#695"},".hljs-addition,.hljs-built_in,.hljs-bullet,.hljs-code":{color:"#397300"},".hljs-meta":{color:"#1f7199"},".hljs-meta .hljs-string":{color:"#38a"},".hljs-emphasis":{fontStyle:"italic"},".hljs-strong":{fontWeight:700}},"&.nb-markdown-table":{table:{borderCollapse:"collapse",width:"100%",fontFamily:"Arial, sans-serif",marginBottom:"1.5rem"},"th, td":{borderBottom:`1px solid ${e.colorBorderSecondary}`,padding:`${e.paddingContentVertical}px ${e.paddingContentHorizontal}px`,textAlign:"left"},th:{backgroundColor:o,fontWeight:"bold",color:e.colorText},"tr:hover":{backgroundColor:e.colorFillTertiary},"tr:last-child td":{borderBottom:"none"},"tr:first-child th":{borderTop:"none"}}},i={"&.nb-markdown-default":{"pre code.hljs":{display:"block",overflowX:"auto",padding:"1em"},"code.hljs":{padding:"3px 5px"},":not(pre) code":{padding:"2px 5px",color:"#d56161",background:e.colorFillQuaternary,border:`1px solid ${e.colorBorder}`,borderRadius:e.borderRadiusSM},".hljs":{color:"#adbac7",background:"#22272e"},".hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_":{color:"#f47067"},".hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_":{color:"#dcbdfb"},".hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable":{color:"#6cb6ff"},".hljs-meta .hljs-string,.hljs-regexp,.hljs-string":{color:"#96d0ff"},".hljs-built_in,.hljs-symbol":{color:"#f69d50"},".hljs-code,.hljs-comment,.hljs-formula":{color:"#768390"},".hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag":{color:"#8ddb8c"},".hljs-subst":{color:"#adbac7"},".hljs-section":{color:"#316dca",fontWeight:700},".hljs-bullet":{color:"#eac55f"},".hljs-emphasis":{color:"#adbac7",fontStyle:"italic"},".hljs-strong":{color:"#adbac7",fontWeight:700},".hljs-addition":{color:"#b4f1b4",backgroundColor:"#1b4721"},".hljs-deletion":{color:"#ffd8d3",backgroundColor:"#78191b"}},"&.nb-markdown-table":{table:{borderCollapse:"collapse",width:"100%",fontFamily:"Arial, sans-serif",marginBottom:"1.5rem"},"th, td":{borderBottom:`1px solid ${e.colorBorderSecondary}`,padding:`${e.paddingContentVertical}px ${e.paddingContentHorizontal}px`,textAlign:"left"},th:{backgroundColor:o,fontWeight:"bold",color:e.colorText},"tr:hover":{backgroundColor:e.colorFillTertiary},"tr:last-child td":{borderBottom:"none"},"tr:first-child th":{borderTop:"none"}}};return(0,import_css.css)(x({lineHeight:e.lineHeight,"& > *:last-child":{marginBottom:"0"},".ant-description-textarea, .ant-description-input":{lineHeight:e.lineHeight},".field-interface-datetime":{minWidth:"100px"},img:{maxWidth:"100%"}},t?i:r))},DisplayMarkdown=e=>{const{textOnly:t,overflowMode:o,style:r}=e,i=useMarkdownStyles(),{html:n=""}=useParseMarkdown(e.value),l=convertToText$1(n),a=o==="ellipsis",c=(0,import_react2.useRef)(null),[u,d]=(0,import_react2.useState)(!1);(0,import_react2.useEffect)(()=>{if(c.current){const h=c.current,g=h.scrollWidth>h.clientWidth||h.scrollHeight>h.clientHeight;d(g)}},[n,r,o]);const m=x(x({},r||{}),a?{display:"-webkit-box",WebkitLineClamp:1,WebkitBoxOrient:"vertical",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"normal",wordBreak:"break-word",cursor:"default"}:{}),p=(0,import_jsx_runtime.jsx)("div",{ref:c,className:`${i} nb-markdown`,dangerouslySetInnerHTML:{__html:t?l:n},style:m});return a&&u?(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:(0,import_jsx_runtime.jsx)("div",{dangerouslySetInnerHTML:{__html:n},style:{maxHeight:500,overflowY:"auto",padding:10,color:"#000"}}),overlayInnerStyle:{background:"#fff",color:"#000",boxShadow:"0 2px 8px rgba(0,0,0,0.15)"},color:"#fff",children:p}):p},getRootElement=e=>e&&(e.closest(".nb-block-grid")||e.closest(".nb-page-wrapper")||e.closest(".nb-page"))||document.documentElement,getOuterHeight$2=e=>{if(!e)return 0;const t=e.getBoundingClientRect(),o=window.getComputedStyle(e),r=parseFloat(o.marginTop)||0,i=parseFloat(o.marginBottom)||0;return t.height+r+i},getPadding=e=>{if(!e||e===document.documentElement)return{top:0,bottom:0};const t=window.getComputedStyle(e);return{top:parseFloat(t.paddingTop)||0,bottom:parseFloat(t.paddingBottom)||0}},getPageHeader=e=>{const t=e.closest(".nb-page");return t?t.querySelector(".ant-page-header")||t.querySelector(".pageHeaderCss"):null},getAddBlockContainer=e=>{const t=e.querySelector("[data-flow-add-block]");return t?t.parentElement||t:null};function getValidPageTop(e,t){return e>0?e:t}const useBlockHeight$1=({height:e,heightMode:t,cardRef:o})=>{const[r,i]=(0,import_react2.useState)(),n=(0,import_flow_engine.useFlowContext)(),l=(0,import_react2.useCallback)(()=>{if(t!=="fullHeight"||typeof window>"u"){i(v=>v===void 0?v:void 0);return}const a=o.current;if(!a)return;const c=getRootElement(a),u=a.getBoundingClientRect(),d=c===document.documentElement?{top:0}:c.getBoundingClientRect(),m=getPadding(c),p=getAddBlockContainer(c),h=d.top+m.top,g=Math.min(Math.max(0,u.top-h),0);let f=m.bottom+n.themeToken.marginBlock;p&&(f=n.themeToken.marginBlock+getOuterHeight$2(p)+m.bottom);const _=Math.max(0,Math.floor(window.innerHeight-getValidPageTop(h,110)-g-f));i(v=>v===_?v:_)},[t,o]);return(0,import_react2.useLayoutEffect)(()=>{l()},[l]),(0,import_react2.useEffect)(()=>{if(t!=="fullHeight"||typeof window>"u")return;const a=o.current;if(!a||typeof ResizeObserver>"u")return;const c=getRootElement(a),u=getPageHeader(c),d=getAddBlockContainer(c),m=new ResizeObserver(()=>l());return m.observe(a),c instanceof HTMLElement&&m.observe(c),u&&m.observe(u),d&&m.observe(d),window.addEventListener("resize",l),()=>{m.disconnect(),window.removeEventListener("resize",l)}},[t,o,l]),t==="specifyValue"?e:t==="fullHeight"?r:null},BlockItemCard=import_react2.default.forwardRef((e,t)=>{(0,import_react_i18next.useTranslation)();const{token:o}=import_antd.theme.useToken(),r=e,{title:i,description:n,children:l,className:a,heightMode:c}=r,u=te(r,["title","description","children","className","heightMode"]),d=(0,import_react2.useRef)(null),m=(0,import_react2.useCallback)(g=>{d.current=g,typeof t=="function"?t(g):t&&(t.current=g)},[t]),p=useBlockHeight$1(A(x({},e),{cardRef:d})),h=(i||n)&&(0,import_jsx_runtime.jsxs)("div",{children:[(0,import_jsx_runtime.jsxs)("span",{children:[" ",i]}),n&&(0,import_jsx_runtime.jsx)(DisplayMarkdown,{value:n,style:{overflowWrap:"break-word",whiteSpace:"normal",fontWeight:400,color:o.colorTextDescription,borderRadius:"4px"}})]});return(0,import_jsx_runtime.jsxs)(import_antd.Card,A(x({ref:m,title:h,style:{display:"flex",flexDirection:"column",height:p},styles:{body:{flex:1,display:"flex",flexDirection:"column",overflow:"auto"},header:{marginTop:"8px"}},className:a},u),{children:[e.beforeContent,l,e.afterContent]}))}),getContentWidth$1=e=>{if(e){const t=document.createRange();return t.selectNodeContents(e),t.getBoundingClientRect().width}},ellipsisDefaultStyle={overflow:"hidden",overflowWrap:"break-word",textOverflow:"ellipsis",whiteSpace:"nowrap",wordBreak:"break-all"},wrappingDefaultStyle={overflowWrap:"break-word",whiteSpace:"normal",wordBreak:"break-word"},isOverflowTooltip=e=>{if(!e)return!1;const t=getContentWidth$1(e),o=e.offsetWidth;return t>o},popoverStyle={maxWidth:600,overflow:"auto",maxHeight:400},EllipsisWithTooltip=(0,import_react2.forwardRef)((e,t)=>{const[o,r]=(0,import_react2.useState)(!1),[i,n]=(0,import_react2.useState)(!1),l=(0,import_react2.useRef)();(0,import_react2.useImperativeHandle)(t,()=>({setPopoverVisible:n}),[]);const a=(0,import_react2.useCallback)(u=>{const d=u.target;isOverflowTooltip(l.current)&&r(d.scrollWidth>=d.clientWidth)},[]),c=(0,import_react2.useMemo)(()=>{const u=e.ellipsis?{onMouseEnter:a}:{};return(0,import_jsx_runtime.jsx)("div",A(x({ref:l,role:e.role,style:e.ellipsis?ellipsisDefaultStyle:wrappingDefaultStyle},u),{children:e.children}))},[a,e.children,e.ellipsis,e.role]);return!e.ellipsis||!o?c:(0,import_jsx_runtime.jsx)(import_antd.Popover,{open:o&&i,onOpenChange:u=>{n(o&&u)},content:(0,import_jsx_runtime.jsx)("div",{style:popoverStyle,children:e.popoverContent||e.children}),children:c})});EllipsisWithTooltip.displayName="EllipsisWithTooltip";const date=(0,import_dayjs.default)(),spaceCSS=import_css.css`
|
|
1763
1763
|
width: 100%;
|
|
1764
1764
|
& > .ant-space-item {
|
|
1765
1765
|
flex: 1;
|
|
@@ -1776,7 +1776,7 @@ ${u}`;return clampText(m,MAX_MESSAGE_CHARS)}}const i=e.issues.filter(c=>c.type==
|
|
|
1776
1776
|
background-color: ${xe.colorFillSecondary};
|
|
1777
1777
|
}
|
|
1778
1778
|
`;return(0,import_jsx_runtime.jsxs)("div",{style:{maxHeight:300,overflowY:"auto"},children:[be.map(Se=>(0,import_jsx_runtime.jsx)("div",{role:"option",onClick:()=>je(Se.value),className:we,children:Se.label},Se.value)),(0,import_jsx_runtime.jsx)(import_antd.Divider,{style:{margin:"4px 0"}}),ye.map(Se=>(0,import_jsx_runtime.jsx)("div",{role:"option",className:we,onClick:()=>je(Se.value),title:Se.label,children:Se.label},Se.value))]})};return(0,import_jsx_runtime.jsxs)(import_antd.Space.Compact,{style:withFullWidthStyle(le),children:[(0,import_jsx_runtime.jsx)(import_antd.Select,{options:se,open:ge,onDropdownVisibleChange:ve,allowClear:!1,style:{width:"100%",minWidth:100,maxWidth:["past","next","exact",void 0].includes(ue)?100:null},value:pe,onChange:je,dropdownRender:Ie}),["past","next"].includes(pe)&&[(0,import_jsx_runtime.jsx)(import_antd.InputNumber,{style:{flex:1},value:ae==null?void 0:ae.number,onChange:be=>{var ye;(ye=G==null?void 0:G.onChange)==null||ye.call(G,A(x({},ae),{type:pe,number:be,unit:(ae==null?void 0:ae.unit)||"day"}))}},"number"),(0,import_jsx_runtime.jsx)(import_antd.Select,{value:ae==null?void 0:ae.unit,style:{minWidth:130,maxWidth:140},onChange:be=>{var ye;(ye=G==null?void 0:G.onChange)==null||ye.call(G,A(x({},ae),{type:pe,unit:be,number:(ae==null?void 0:ae.number)||1}))},options:[{value:"day",label:(X=de==null?void 0:de("Day"))!=null?X:"Day"},{value:"week",label:(ie=de==null?void 0:de("Calendar week"))!=null?ie:"Calendar week"},{value:"month",label:(ee=de==null?void 0:de("Calendar Month"))!=null?ee:"Calendar Month"},{value:"year",label:(ne=de==null?void 0:de("Calendar Year"))!=null?ne:"Calendar Year"}],popupMatchSelectWidth:!0},"unit")],(pe==="exact"||!pe)&&(0,import_jsx_runtime.jsx)(FieldAssignExactDatePicker,A(x({},ce),{isRange:_e,value:_e?Ce:fe,onChange:_e?ke:Ae,style:{flex:1}}))]})},[]),Q=import_react2.default.useMemo(()=>()=>{var G,X;return(0,import_jsx_runtime.jsx)(import_antd.Input,{placeholder:`<${(X=(G=g.t)==null?void 0:G.call(g,"Null"))!=null?X:"Null"}>`,readOnly:!0,style:{width:"100%"}})},[g]),H=import_react2.default.useMemo(()=>G=>(0,import_jsx_runtime.jsx)(RunJSValueEditor,{t:g.t,value:G==null?void 0:G.value,onChange:G==null?void 0:G.onChange}),[g]),J=M?Y:W,Z=import_react2.default.useMemo(()=>()=>L(void 0,null,function*(){var G;const X=(yield(G=g.getPropertyMetaTree)==null?void 0:G.call(g))||[],ie=_.current,ee=Array.isArray(ie)?ie:[],ne=mergeItemMetaTreeForAssignValue(X,ee);return[{title:(0,import_flow_engine.tExpr)("Constant"),name:"constant",type:"string",paths:["constant"],render:J},{title:(0,import_flow_engine.tExpr)("Null"),name:"null",type:"object",paths:["null"],render:Q},{title:(0,import_flow_engine.tExpr)("RunJS"),name:"runjs",type:"object",paths:["runjs"],render:H},...ne]}),[g,J,Q,H]),re=import_react2.default.useMemo(()=>{if(!M)return t;if((0,import_flow_engine.isCtxDateExpression)(t)){const G=(0,import_flow_engine.parseCtxDateExpression)(t);return typeof G>"u"?"":G}return t},[M,t]),oe=import_react2.default.useCallback(G=>{if(!M){o(G);return}o(normalizeDateVariableOutput(G,O))},[O,o,M]);return P?(0,import_jsx_runtime.jsx)(import_flow_engine.VariableInput,{value:re,onChange:oe,metaTree:Z,style:{width:"100%"},clearValue:"",converters:{renderInputComponent:G=>{var X;const ie=(X=G==null?void 0:G.paths)==null?void 0:X[0];return ie==="constant"?J:ie==="null"?Q:ie==="runjs"?H:null},resolveValueFromPath:G=>{var X;const ie=(X=G==null?void 0:G.paths)==null?void 0:X[0];if(ie==="constant")return M?{type:"today"}:"";if(ie==="null")return null;if(ie==="runjs")return{code:"",version:"v2"}},resolvePathFromValue:G=>G===null?["null"]:(0,import_flow_engine.isRunJSValue)(G)?["runjs"]:M&&(0,import_flow_engine.isCtxDateExpression)(G)?["constant"]:(0,import_flow_engine.isVariableExpression)(G)?(0,import_flow_engine.parseValueToPath)(G):["constant"]}}):(0,import_jsx_runtime.jsx)(import_antd.Input,{disabled:!0,placeholder:(h=(p=g.t)==null?void 0:p.call(g,"Please select a field"))!=null?h:"Please select a field"})},{DateFilterDynamicComponent:DateFilterDynamicComponentLazy}=lazy(()=>Promise.resolve().then(()=>DateFilterDynamicComponent$1),"DateFilterDynamicComponent");function createStaticInputRenderer(e,t,o){var r,i,n;const l=e==null?void 0:e["x-component"],a=((r=t==null?void 0:t.uiSchema)==null?void 0:r["x-component-props"])||{},c=(e==null?void 0:e["x-component-props"])||{},u=(0,import_merge.default)({},a,c),d=Array.isArray((i=t==null?void 0:t.uiSchema)==null?void 0:i.enum)?(n=t==null?void 0:t.uiSchema)==null?void 0:n.enum:void 0,m=enumToOptions(d,o),p=x({style:x({width:200},(u==null?void 0:u.style)||{}),placeholder:(u==null?void 0:u.placeholder)||o("Enter value")},u);return h=>{const g=h||{},{value:f,onChange:_}=g,v=te(g,["value","onChange"]);if(l==="InputNumber")return(0,import_jsx_runtime.jsx)(import_antd.InputNumber,A(x(x({},p),v),{value:f,onChange:_}));if(l==="NumberPicker")return(0,import_jsx_runtime.jsx)(import_antd_v5.NumberPicker,A(x(x({},p),v),{value:f,onChange:_}));if(l==="Switch")return(0,import_jsx_runtime.jsx)(import_antd.Switch,A(x(x({},p),v),{checked:!!f,onChange:_}));if(l==="Select"){let y=p;return Array.isArray(y==null?void 0:y.options)&&y.options.length>0?y=A(x({},y),{options:translateOptions(y.options,o)}):m&&(y=A(x({},y),{options:m})),(0,import_jsx_runtime.jsx)(import_antd.Select,A(x(x({},y),v),{value:f,onChange:_}))}return l==="DateFilterDynamicComponent"?(0,import_jsx_runtime.jsx)(DateFilterDynamicComponentLazy,A(x(x({},p),v),{value:f,onChange:_})):(0,import_jsx_runtime.jsx)(import_antd.Input,A(x(x({},p),v),{value:f,onChange:y=>{var C;return _==null?void 0:_((C=y==null?void 0:y.target)==null?void 0:C.value)}}))}}const fallbackStringOperators=[{value:"$includes",label:"contains",selected:!0},{value:"$notIncludes",label:"does not contain"},{value:"$eq",label:"is"},{value:"$ne",label:"is not"},{value:"$empty",label:"is empty",noValue:!0},{value:"$notEmpty",label:"is not empty",noValue:!0}],KEYWORD_OPERATOR_VALUES=new Set(["$in","$notIn"]);function mergeExtraMetaTreeWithBase(e,t){const o=Array.isArray(e)?e:[],r=Array.isArray(t)?t:[];if(!r.length)return o;const i=r.find(l=>(l==null?void 0:l.name)==="item");if(!i)return[...r,...o];const n=mergeItemMetaTreeForAssignValue(o,[i]);return[...r.filter(l=>(l==null?void 0:l.name)!=="item"),...n]}function toFilterableChildMetaNode(e,t){var o,r;return{name:t.name,title:t.title||t.name,type:((o=t.schema)==null?void 0:o.type)||"string",interface:((r=t.schema)==null?void 0:r["x-component"])==="Select"?"select":"input",uiSchema:A(x({},t.schema||{}),{"x-filter-operators":t.operators}),paths:[...e.paths||[],t.name],parentTitles:[...e.parentTitles||[],e.title]}}function enhanceMetaTreeNodeWithFilterableChildren(e,t){return L(this,null,function*(){var o,r;const i=e.interface&&t?t(e.interface):void 0,n=(Array.isArray((o=i==null?void 0:i.filterable)==null?void 0:o.children)?(r=i==null?void 0:i.filterable)==null?void 0:r.children:[]).map(a=>toFilterableChildMetaNode(e,a)),l=a=>L(this,null,function*(){const c=[...yield Promise.all(a.map(u=>enhanceMetaTreeNodeWithFilterableChildren(u,t))),...n];return(0,import_uniqBy.default)(c,u=>u.name)});if(typeof e.children=="function"){const a=e.children;return A(x({},e),{children:()=>L(this,null,function*(){const c=yield a(),u=Array.isArray(c)?c:[];return yield l(u)})})}return Array.isArray(e.children)?A(x({},e),{children:yield l(e.children)}):n.length?A(x({},e),{children:n}):e})}function enhanceMetaTreeWithFilterableChildren(e,t){return L(this,null,function*(){const o=Array.isArray(e)?e:[];return yield Promise.all(o.map(r=>enhanceMetaTreeNodeWithFilterableChildren(r,t)))})}const LinkageFilterItem=(0,import_flow_engine.observer)(e=>{var t;const{value:o,model:r,extraMetaTree:i}=e,n=(0,import_flow_engine.useFlowViewContext)(),l=r.translate,{path:a,operator:c,value:u}=o||{},[d,m]=(0,import_react2.useState)(null),p=(0,import_react2.useRef)(!1),h=(0,import_react2.useMemo)(()=>{var D,w;if(d){const k=r.context.app.dataSourceManager,B=d.interface?k.collectionFieldInterfaceManager.getFieldInterface(d.interface):void 0,E=(D=d==null?void 0:d.uiSchema)==null?void 0:D["x-filter-operators"];return((Array.isArray(E)&&E.length?E:(w=B==null?void 0:B.filterable)==null?void 0:w.operators)||fallbackStringOperators).filter(M=>!M.visible||M.visible(d)).map(M=>({value:M.value,label:M.label,noValue:!!M.noValue,schema:M.schema,selected:!!M.selected}))}return[]},[d,r]),g=(0,import_react2.useMemo)(()=>h.map(D=>({value:D.value,label:typeof D.label=="string"?l(D.label):D.label})),[h,l]);(0,import_react2.useEffect)(()=>{if(h.length!==0){if(!c){if(p.current){const D=h.find(w=>w.selected)||h[0];o.operator=(D==null?void 0:D.value)||"",D!=null&&D.noValue?(o.value=!0,o.noValue=!0):o.noValue=!1,p.current=!1}return}if(!h.some(D=>D.value===c)){const D=h.find(w=>w.selected)||h[0];o.operator=(D==null?void 0:D.value)||"",D!=null&&D.noValue?(o.value=!0,o.noValue=!0):o.noValue=!1}}},[h,c,o]);const f=(0,import_react2.useMemo)(()=>h.find(D=>D.value===c),[h,c]),_=(0,import_react2.useMemo)(()=>{const D=(d==null?void 0:d.uiSchema)||{},w=(f==null?void 0:f.schema)||{};return(0,import_merge.default)({},D,w)},[d,f]),v=(0,import_react2.useRef)(l);(0,import_react2.useEffect)(()=>{v.current=l},[l]);const y=(0,import_react2.useCallback)(D=>{var w,k;return(k=(w=v.current)==null?void 0:w.call(v,D))!=null?k:D},[]),C=(0,import_react2.useMemo)(()=>createStaticInputRenderer(_,d,y),[_,d,y]),b=(0,import_react2.useMemo)(()=>enumToOptions(_==null?void 0:_.enum,y)||[],[_,y]),F=(0,import_react2.useMemo)(()=>{const D=resolveOperatorComponent(r.context.app,c,h),w=KEYWORD_OPERATOR_VALUES.has(c);if(!D||!w)return C;const{Comp:k,props:B}=D;return E=>{const M=E||{},{value:O,onChange:V}=M,$=te(M,["value","onChange"]),q=x({},B);(!(q!=null&&q.options)||(q==null?void 0:q.options.length)===0)&&b.length>0&&(q.options=b);const z=Array.isArray(O)?O:typeof O=="string"?O.split(/\r?\n/).map(U=>U.trim()).filter(Boolean):[];return(0,import_jsx_runtime.jsx)(k,A(x(x({},q),$),{value:z,onChange:V,style:x(x({width:200},(q==null?void 0:q.style)||{}),($==null?void 0:$.style)||{})}))}},[b,r.context.app,h,c,C]),S=(0,import_react2.useMemo)(()=>function(){return(0,import_jsx_runtime.jsx)(import_antd.Input,{placeholder:`<${l("Null")}>`,readOnly:!0})},[l]),P=(0,import_react2.useMemo)(()=>()=>L(void 0,null,function*(){const D=(r==null?void 0:r.context.getPropertyMetaTree())||n.getPropertyMetaTree(),w=mergeExtraMetaTreeWithBase(D,i);return[{title:l("Constant"),name:"constant",type:"string",paths:["constant"]},{title:l("Null"),name:"null",type:"object",paths:["null"]},...w]}),[n,r,l,i]),j=(0,import_react2.useCallback)(()=>L(void 0,null,function*(){var D,w;const k=((w=(D=r==null?void 0:r.context)==null?void 0:D.getPropertyMetaTree)==null?void 0:w.call(D))||n.getPropertyMetaTree(),B=Array.isArray(k)?k:[],E=mergeExtraMetaTreeWithBase(B,i);return yield enhanceMetaTreeWithFilterableChildren(E,M=>{var O,V,$,q;return(q=($=(V=(O=r.context.app)==null?void 0:O.dataSourceManager)==null?void 0:V.collectionFieldInterfaceManager)==null?void 0:$.getFieldInterface)==null?void 0:q.call($,M)})}),[n,r,i]),I=(0,import_react2.useMemo)(()=>({renderInputComponent:D=>{var w;const k=(w=D==null?void 0:D.paths)==null?void 0:w[0];return k==="constant"?F:k==="null"?S:null},resolveValueFromPath:D=>{var w;const k=(w=D==null?void 0:D.paths)==null?void 0:w[0];if(k==="constant")return"";if(k==="null")return null},resolvePathFromValue:D=>D===null?["null"]:(0,import_flow_engine.parseValueToPath)(D)||["constant"]}),[S,F]),T=(0,import_react2.useCallback)((D,w)=>{const k=o.path||"",B=D||"",E=B!==k;o.path=B,E&&k&&(o.operator="",o.value="",p.current=!0),!k&&B&&!o.operator&&(p.current=!0),w&&m(w)},[o]),N=(0,import_react2.useCallback)(D=>{const w=o.operator;o.operator=D;const k=h.find(B=>B.value===D);k!=null&&k.noValue?(o.value=!0,o.noValue=!0):(KEYWORD_OPERATOR_VALUES.has(w)&&!KEYWORD_OPERATOR_VALUES.has(D)&&Array.isArray(o.value)&&(o.value=o.value.join(`
|
|
1779
|
-
`)),o.noValue=!1)},[o,h]);return(0,import_jsx_runtime.jsxs)(import_antd.Space,{wrap:!0,style:{width:"100%"},children:[(0,import_jsx_runtime.jsx)(import_flow_engine.VariableInput,{value:a,onChange:T,metaTree:j,showValueComponent:!0,style:{flex:"1 1 40%",minWidth:160,maxWidth:"100%"},placeholder:l("Select variable"),onlyLeafSelectable:!0}),(0,import_jsx_runtime.jsx)(import_antd.Select,{style:{flex:"0 0 140px",minWidth:120,maxWidth:"100%"},placeholder:l("Comparison"),value:c||void 0,onChange:N,children:g.map(D=>(0,import_jsx_runtime.jsx)(import_antd.Select.Option,{value:D.value,children:D.label},D.value))}),!((t=h.find(D=>D.value===c))!=null&&t.noValue)&&(0,import_jsx_runtime.jsx)(import_flow_engine.VariableInput,{value:u,onChange:D=>o.value=D,metaTree:P,converters:I,showValueComponent:!0,style:{flex:"1 1 40%",minWidth:160,maxWidth:"100%"},placeholder:l("Enter value"),clearValue:""})]})}),dataScope=(0,import_flow_engine.defineAction)({name:"dataScope",title:(0,import_flow_engine.tExpr)("Data scope"),uiMode:{type:"dialog",props:{width:800}},uiSchema:{filter:{type:"object","x-decorator":"FormItem","x-component":function e(t){const o=(0,import_flow_engine.useFlowSettingsContext)();return(0,import_jsx_runtime.jsx)(FilterGroup,{value:t.value,FilterItem:r=>(0,import_jsx_runtime.jsx)(VariableFilterItem,A(x({},r),{model:o.model,rightAsVariable:!0}))})}}},defaultParams(e){return{filter:{logic:"$and",items:[]}}},handler(e,t){return L(this,null,function*(){var o;const r=(o=e.model)==null?void 0:o.resource;if(!r)return;const i=(0,import_flow_engine.pruneFilter)((0,import_client.transformFilter)(t.filter));(0,import_client.isEmptyFilter)(i)?r.removeFilterGroup(e.model.uid):r.addFilterGroup(e.model.uid,i)})}});class AddNewActionModel extends PopupActionModel{constructor(){super(...arguments),R(this,"defaultPopupTitle",(0,import_flow_engine.tExpr)("Add new")),R(this,"defaultProps",{type:"primary",title:(0,import_flow_engine.tExpr)("Add new"),icon:"PlusOutlined"})}getAclActionName(){return"create"}}R(AddNewActionModel,"scene",ActionSceneEnum.collection);AddNewActionModel.define({label:(0,import_flow_engine.tExpr)("Add new"),sort:10});class BulkDeleteActionModel extends ActionModel{constructor(){super(...arguments),R(this,"defaultProps",{title:(0,import_flow_engine.tExpr)("Delete"),icon:"DeleteOutlined"})}getAclActionName(){return"destroy"}}R(BulkDeleteActionModel,"scene",ActionSceneEnum.collection),R(BulkDeleteActionModel,"capabilityActionName","destroyMany");BulkDeleteActionModel.define({label:(0,import_flow_engine.tExpr)("Delete")});BulkDeleteActionModel.registerFlow({key:"deleteSettings",title:(0,import_flow_engine.tExpr)("Delete settings"),on:"click",steps:{confirm:{use:"confirm",defaultParams:{enable:!0,title:(0,import_flow_engine.tExpr)("Delete record"),content:(0,import_flow_engine.tExpr)("Are you sure you want to delete it?")}},delete:{handler(e,t){return L(this,null,function*(){var o;if(!((o=e.blockModel)!=null&&o.resource)){e.message.error(e.t("No resource selected for deletion"));return}const r=e.blockModel.resource;if(r.getSelectedRows().length===0){e.message.warning(e.t("Please select at least one record to delete"));return}yield r.destroy(e.blockModel.collection.getFilterByTK(r.getSelectedRows())),e.message.success(e.t("Selected records deleted successfully"))})}}}});class DeleteActionModel extends ActionModel{constructor(){super(...arguments),R(this,"defaultProps",{type:"link",title:(0,import_flow_engine.tExpr)("Delete"),icon:"DeleteOutlined"})}getAclActionName(){return"destroy"}}R(DeleteActionModel,"scene",ActionSceneEnum.record);DeleteActionModel.define({label:(0,import_flow_engine.tExpr)("Delete"),sort:60});DeleteActionModel.registerFlow({key:"deleteSettings",title:(0,import_flow_engine.tExpr)("Delete settings"),on:"click",steps:{confirm:{use:"confirm",defaultParams:{enable:!0,title:(0,import_flow_engine.tExpr)("Delete record"),content:(0,import_flow_engine.tExpr)("Are you sure you want to delete it?")}},delete:{handler(e,t){return L(this,null,function*(){if(!e.resource){e.message.error(e.t("No resource selected for deletion"));return}if(!e.record){e.message.error(e.t("No resource or record selected for deletion"));return}yield e.resource.destroy(e.blockModel.collection.getFilterByTK(e.record)),e.message.success(e.t("Record deleted successfully"))})}}}});class EditActionModel extends PopupActionModel{constructor(){super(...arguments),R(this,"defaultPopupTitle",(0,import_flow_engine.tExpr)("Edit")),R(this,"defaultProps",{title:(0,import_flow_engine.tExpr)("Edit"),icon:"EditOutlined"})}getAclActionName(){return"update"}}R(EditActionModel,"scene",ActionSceneEnum.record);EditActionModel.define({label:(0,import_flow_engine.tExpr)("Edit"),sort:20});class FilterActionModel extends ActionModel{constructor(){super(...arguments),R(this,"map",new WeakMap),R(this,"defaultProps",{type:"default",title:(0,import_flow_engine.tExpr)("Filter"),icon:"FilterOutlined",filterValue:{logic:"$and",items:[]}})}getIgnoreFieldNames(){var t;if(this.map.has(this.props.filterableFieldNames))return this.map.get(this.props.filterableFieldNames);const o=((t=this.context.blockModel.collection)==null?void 0:t.getFields())||[],r=getIgnoreFieldNames(this.props.filterableFieldNames||[],o.map(i=>i.name));return this.map.set(this.props.filterableFieldNames,r),r}render(){return this.context.isMobileLayout?(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(import_flow_engine.MobilePopup,{title:this.context.t("Filter"),visible:this.props.open,onClose:()=>{this.setProps("open",!1)},children:(0,import_jsx_runtime.jsxs)("div",{style:{padding:this.context.themeToken.paddingMD,backgroundColor:this.context.themeToken.colorBgContainer},children:[(0,import_jsx_runtime.jsx)(FilterContainer,{value:this.props.filterValue||this.props.defaultFilterValue,ctx:this.context,FilterItem:t=>(0,import_jsx_runtime.jsx)(VariableFilterItem,A(x({},t),{model:this,ignoreFieldNames:this.getIgnoreFieldNames()}))}),(0,import_jsx_runtime.jsx)("div",{style:{height:150}})]})}),super.render()]}):(0,import_jsx_runtime.jsx)(import_antd.Popover,{open:this.props.open,content:(0,import_jsx_runtime.jsx)(FilterContainer,{value:this.props.filterValue||this.props.defaultFilterValue,ctx:this.context,FilterItem:t=>(0,import_jsx_runtime.jsx)(VariableFilterItem,A(x({},t),{model:this,ignoreFieldNames:this.getIgnoreFieldNames()}))}),trigger:"click",placement:"bottomLeft",onOpenChange:t=>{t===!1&&this.setProps("open",void 0)},children:super.render()})}}R(FilterActionModel,"scene","collection");FilterActionModel.define({label:(0,import_flow_engine.tExpr)("Filter"),toggleable:!0,sort:5});FilterActionModel.registerFlow({key:"filterSettings",title:(0,import_flow_engine.tExpr)("Filter settings"),steps:{position:{handler(e,t){e.model.setProps("position",t.position||"left")}},filterableFieldNames:{title:(0,import_flow_engine.tExpr)("Filterable fields"),uiSchema:{filterableFieldNames:{type:"array","x-decorator":"FormItem","x-component":e=>{var t,o;const{model:r}=(0,import_flow_engine.useFlowSettingsContext)(),i=(o=(t=r==null?void 0:r.context)==null?void 0:t.app)==null?void 0:o.dataSourceManager,n=i==null?void 0:i.collectionFieldInterfaceManager,l=getFilterableFields(r.context.blockModel.collection,n).map(a=>({key:a.name,title:a.title}));return(0,import_jsx_runtime.jsx)(import_antd.Transfer,A(x({},e),{dataSource:l,targetKeys:e.value||[],onChange:a=>{var c;return(c=e.onChange)==null?void 0:c.call(e,a)},render:a=>a.title}))},"x-component-props":{showSearch:!0,listStyle:{width:280,height:360}}}},defaultParams(e){var t,o,r;const i=(r=(o=(t=e==null?void 0:e.model)==null?void 0:t.context)==null?void 0:o.app)==null?void 0:r.dataSourceManager,n=i==null?void 0:i.collectionFieldInterfaceManager;return{filterableFieldNames:getFilterableFields(e.blockModel.collection,n).map(l=>l.name)||[]}},handler(e,t){e.model.setProps("filterableFieldNames",t.filterableFieldNames)}},defaultFilter:{title:(0,import_flow_engine.tExpr)("Default filter conditions"),uiSchema:{defaultFilter:{type:"object","x-decorator":"FormItem","x-component":e=>{const{model:t}=(0,import_flow_engine.useFlowSettingsContext)();return(0,import_jsx_runtime.jsx)(FilterGroup,{value:e.value||{},FilterItem:o=>(0,import_jsx_runtime.jsx)(VariableFilterItem,A(x({},o),{model:t}))})}}},defaultParams(e){return{defaultFilter:e.model.defaultProps.filterValue}},handler(e,t){e.model.setProps("defaultFilterValue",import_lodash.default.cloneDeep(t.defaultFilter)),e.model.setProps("filterValue",import_lodash.default.cloneDeep(t.defaultFilter))}}}});FilterActionModel.registerFlow({key:"submitSettings",on:"submit",steps:{submit:{handler(e,t){const o=e.blockModel,r=o==null?void 0:o.resource;if(!o||!r)return;const i=(0,import_client.transformFilter)(e.model.props.filterValue),n=!(0,import_client.isEmptyFilter)(i);o.setFilterActive(e.model.uid,n),n?(r.addFilterGroup(e.model.uid,i),r.setPage(1)):r.removeFilterGroup(e.model.uid),o.getDataLoadingMode()==="manual"&&!n&&!o.hasActiveFilters()?(r.setData([]),r.setMeta({count:0,hasNext:!1}),typeof r.setPage=="function"&&r.setPage(1),r.loading=!1):r.refresh(),e.model.setProps("open",!1)}}}});FilterActionModel.registerFlow({key:"resetSettings",title:(0,import_flow_engine.tExpr)("Reset"),on:"reset",steps:{reset:{handler(e,t){const o=e.blockModel,r=o==null?void 0:o.resource;if(!o||!r)return;r.removeFilterGroup(e.model.uid),o.setFilterActive(e.model.uid,!1);const i=o.getDataLoadingMode(),n=e.model.props.defaultFilterValue,l=!(0,import_client.isEmptyFilter)((0,import_client.transformFilter)(n));i==="manual"&&!l&&!o.hasActiveFilters()?(r.setData([]),r.setMeta({count:0,hasNext:!1}),typeof r.setPage=="function"&&r.setPage(1),r.loading=!1):(l&&(r.addFilterGroup(e.model.uid,(0,import_client.transformFilter)(n)),o.setFilterActive(e.model.uid,!0),r.setPage(1)),r.refresh()),e.model.setProps("open",!1),e.model.setProps("filterValue",import_lodash.default.cloneDeep(n))}}}});FilterActionModel.registerFlow({key:"openSettings",on:"click",steps:{open:{handler(e,t){e.model.setProps("open",!e.model.props.open)}}}});function getFilterableFields(e,t){var o;const r=((o=e==null?void 0:e.getFields)==null?void 0:o.call(e))||[];return t?r.filter(i=>{if(!(i!=null&&i.interface)||(i==null?void 0:i.filterable)===!1)return!1;const n=t.getFieldInterface(i.interface);return!!(n!=null&&n.filterable)}):[]}function getIgnoreFieldNames(e,t){return t==null?void 0:t.filter(o=>!e.includes(o))}function resolveRunJsParams(e,t){var o,r,i,n;const l=((o=e.inputArgs)==null?void 0:o.preview)||{},a=(i=(r=l==null?void 0:l.version)!=null?r:t==null?void 0:t.version)!=null?i:"v1",c=typeof(l==null?void 0:l.code)=="string"?l.code:void 0;return{code:(n=c??(t==null?void 0:t.code))!=null?n:"",version:a}}class JSActionModel extends ActionModel{constructor(){super(...arguments),R(this,"defaultProps",{type:"default",title:(0,import_flow_engine.tExpr)("JS action"),icon:"JavaScriptOutlined"})}}JSActionModel.define({label:(0,import_flow_engine.tExpr)("JS action"),sort:9999,createModelOptions:{use:"JSActionModel"}});JSActionModel.registerFlow({key:"clickSettings",on:"click",title:(0,import_flow_engine.tExpr)("Click settings"),steps:{runJs:{title:(0,import_flow_engine.tExpr)("Write JavaScript"),useRawParams:!0,uiSchema:{code:{type:"string","x-component":CodeEditor,"x-component-props":{minHeight:"320px",theme:"light",enableLinter:!0,wrapperStyle:{position:"fixed",inset:8}}}},uiMode:{type:"embed",props:{styles:{body:{transform:"translateX(0)"}}}},defaultParams(e){return{version:"v2",code:`
|
|
1779
|
+
`)),o.noValue=!1)},[o,h]);return(0,import_jsx_runtime.jsxs)(import_antd.Space,{wrap:!0,style:{width:"100%"},children:[(0,import_jsx_runtime.jsx)(import_flow_engine.VariableInput,{value:a,onChange:T,metaTree:j,showValueComponent:!0,style:{flex:"1 1 40%",minWidth:160,maxWidth:"100%"},placeholder:l("Select variable"),onlyLeafSelectable:!0}),(0,import_jsx_runtime.jsx)(import_antd.Select,{style:{flex:"0 0 140px",minWidth:120,maxWidth:"100%"},placeholder:l("Comparison"),value:c||void 0,onChange:N,children:g.map(D=>(0,import_jsx_runtime.jsx)(import_antd.Select.Option,{value:D.value,children:D.label},D.value))}),!((t=h.find(D=>D.value===c))!=null&&t.noValue)&&(0,import_jsx_runtime.jsx)(import_flow_engine.VariableInput,{value:u,onChange:D=>o.value=D,metaTree:P,converters:I,showValueComponent:!0,style:{flex:"1 1 40%",minWidth:160,maxWidth:"100%"},placeholder:l("Enter value"),clearValue:""})]})}),PRESERVE_NULL={__nocobaseDataScopeNull__:!0};function isPreserveNull(e){return e&&typeof e=="object"&&!Array.isArray(e)&&e.__nocobaseDataScopeNull__===!0&&Object.keys(e).length===1}function restorePreservedNull(e){return isPreserveNull(e)?null:Array.isArray(e)?e.map(t=>restorePreservedNull(t)):e&&typeof e=="object"?Object.keys(e).reduce((t,o)=>(t[o]=restorePreservedNull(e[o]),t),{}):e}function markEmptyVariableValues(e,t){if(!(!e||!t||typeof e!="object"||typeof t!="object")){if("path"in e&&"operator"in e){(0,import_flow_engine.isVariableExpression)(e.value)&&(t.value===void 0||t.value===null||t.value==="")&&(t.value=PRESERVE_NULL);return}Array.isArray(e.items)&&Array.isArray(t.items)&&e.items.forEach((o,r)=>{markEmptyVariableValues(o,t.items[r])})}}function normalizeDataScopeFilter(e,t){const o=import_lodash.default.cloneDeep(t);markEmptyVariableValues(e,o);const r=(0,import_flow_engine.pruneFilter)((0,import_client.transformFilter)(o));return restorePreservedNull(r)}const dataScope=(0,import_flow_engine.defineAction)({name:"dataScope",title:(0,import_flow_engine.tExpr)("Data scope"),uiMode:{type:"dialog",props:{width:800}},uiSchema:{filter:{type:"object","x-decorator":"FormItem","x-component":function e(t){const o=(0,import_flow_engine.useFlowSettingsContext)();return(0,import_jsx_runtime.jsx)(FilterGroup,{value:t.value,FilterItem:r=>(0,import_jsx_runtime.jsx)(VariableFilterItem,A(x({},r),{model:o.model,rightAsVariable:!0}))})}}},defaultParams(e){return{filter:{logic:"$and",items:[]}}},useRawParams:!0,handler(e,t){return L(this,null,function*(){var o;const r=(o=e.model)==null?void 0:o.resource;if(!r)return;const i=yield e.resolveJsonTemplate(t.filter),n=normalizeDataScopeFilter(t.filter,i);(0,import_client.isEmptyFilter)(n)?r.removeFilterGroup(e.model.uid):r.addFilterGroup(e.model.uid,n)})}});class AddNewActionModel extends PopupActionModel{constructor(){super(...arguments),R(this,"defaultPopupTitle",(0,import_flow_engine.tExpr)("Add new")),R(this,"defaultProps",{type:"primary",title:(0,import_flow_engine.tExpr)("Add new"),icon:"PlusOutlined"})}getAclActionName(){return"create"}}R(AddNewActionModel,"scene",ActionSceneEnum.collection);AddNewActionModel.define({label:(0,import_flow_engine.tExpr)("Add new"),sort:10});class BulkDeleteActionModel extends ActionModel{constructor(){super(...arguments),R(this,"defaultProps",{title:(0,import_flow_engine.tExpr)("Delete"),icon:"DeleteOutlined"})}getAclActionName(){return"destroy"}}R(BulkDeleteActionModel,"scene",ActionSceneEnum.collection),R(BulkDeleteActionModel,"capabilityActionName","destroyMany");BulkDeleteActionModel.define({label:(0,import_flow_engine.tExpr)("Delete")});BulkDeleteActionModel.registerFlow({key:"deleteSettings",title:(0,import_flow_engine.tExpr)("Delete settings"),on:"click",steps:{confirm:{use:"confirm",defaultParams:{enable:!0,title:(0,import_flow_engine.tExpr)("Delete record"),content:(0,import_flow_engine.tExpr)("Are you sure you want to delete it?")}},delete:{handler(e,t){return L(this,null,function*(){var o;if(!((o=e.blockModel)!=null&&o.resource)){e.message.error(e.t("No resource selected for deletion"));return}const r=e.blockModel.resource;if(r.getSelectedRows().length===0){e.message.warning(e.t("Please select at least one record to delete"));return}yield r.destroy(e.blockModel.collection.getFilterByTK(r.getSelectedRows())),e.message.success(e.t("Selected records deleted successfully"))})}}}});class DeleteActionModel extends ActionModel{constructor(){super(...arguments),R(this,"defaultProps",{type:"link",title:(0,import_flow_engine.tExpr)("Delete"),icon:"DeleteOutlined"})}getAclActionName(){return"destroy"}}R(DeleteActionModel,"scene",ActionSceneEnum.record);DeleteActionModel.define({label:(0,import_flow_engine.tExpr)("Delete"),sort:60});DeleteActionModel.registerFlow({key:"deleteSettings",title:(0,import_flow_engine.tExpr)("Delete settings"),on:"click",steps:{confirm:{use:"confirm",defaultParams:{enable:!0,title:(0,import_flow_engine.tExpr)("Delete record"),content:(0,import_flow_engine.tExpr)("Are you sure you want to delete it?")}},delete:{handler(e,t){return L(this,null,function*(){if(!e.resource){e.message.error(e.t("No resource selected for deletion"));return}if(!e.record){e.message.error(e.t("No resource or record selected for deletion"));return}yield e.resource.destroy(e.blockModel.collection.getFilterByTK(e.record)),e.message.success(e.t("Record deleted successfully"))})}}}});class EditActionModel extends PopupActionModel{constructor(){super(...arguments),R(this,"defaultPopupTitle",(0,import_flow_engine.tExpr)("Edit")),R(this,"defaultProps",{title:(0,import_flow_engine.tExpr)("Edit"),icon:"EditOutlined"})}getAclActionName(){return"update"}}R(EditActionModel,"scene",ActionSceneEnum.record);EditActionModel.define({label:(0,import_flow_engine.tExpr)("Edit"),sort:20});class FilterActionModel extends ActionModel{constructor(){super(...arguments),R(this,"map",new WeakMap),R(this,"defaultProps",{type:"default",title:(0,import_flow_engine.tExpr)("Filter"),icon:"FilterOutlined",filterValue:{logic:"$and",items:[]}})}getIgnoreFieldNames(){var t;if(this.map.has(this.props.filterableFieldNames))return this.map.get(this.props.filterableFieldNames);const o=((t=this.context.blockModel.collection)==null?void 0:t.getFields())||[],r=getIgnoreFieldNames(this.props.filterableFieldNames||[],o.map(i=>i.name));return this.map.set(this.props.filterableFieldNames,r),r}render(){return this.context.isMobileLayout?(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(import_flow_engine.MobilePopup,{title:this.context.t("Filter"),visible:this.props.open,onClose:()=>{this.setProps("open",!1)},children:(0,import_jsx_runtime.jsxs)("div",{style:{padding:this.context.themeToken.paddingMD,backgroundColor:this.context.themeToken.colorBgContainer},children:[(0,import_jsx_runtime.jsx)(FilterContainer,{value:this.props.filterValue||this.props.defaultFilterValue,ctx:this.context,FilterItem:t=>(0,import_jsx_runtime.jsx)(VariableFilterItem,A(x({},t),{model:this,ignoreFieldNames:this.getIgnoreFieldNames()}))}),(0,import_jsx_runtime.jsx)("div",{style:{height:150}})]})}),super.render()]}):(0,import_jsx_runtime.jsx)(import_antd.Popover,{open:this.props.open,content:(0,import_jsx_runtime.jsx)(FilterContainer,{value:this.props.filterValue||this.props.defaultFilterValue,ctx:this.context,FilterItem:t=>(0,import_jsx_runtime.jsx)(VariableFilterItem,A(x({},t),{model:this,ignoreFieldNames:this.getIgnoreFieldNames()}))}),trigger:"click",placement:"bottomLeft",onOpenChange:t=>{t===!1&&this.setProps("open",void 0)},children:super.render()})}}R(FilterActionModel,"scene","collection");FilterActionModel.define({label:(0,import_flow_engine.tExpr)("Filter"),toggleable:!0,sort:5});FilterActionModel.registerFlow({key:"filterSettings",title:(0,import_flow_engine.tExpr)("Filter settings"),steps:{position:{handler(e,t){e.model.setProps("position",t.position||"left")}},filterableFieldNames:{title:(0,import_flow_engine.tExpr)("Filterable fields"),uiSchema:{filterableFieldNames:{type:"array","x-decorator":"FormItem","x-component":e=>{var t,o;const{model:r}=(0,import_flow_engine.useFlowSettingsContext)(),i=(o=(t=r==null?void 0:r.context)==null?void 0:t.app)==null?void 0:o.dataSourceManager,n=i==null?void 0:i.collectionFieldInterfaceManager,l=getFilterableFields(r.context.blockModel.collection,n).map(a=>({key:a.name,title:a.title}));return(0,import_jsx_runtime.jsx)(import_antd.Transfer,A(x({},e),{dataSource:l,targetKeys:e.value||[],onChange:a=>{var c;return(c=e.onChange)==null?void 0:c.call(e,a)},render:a=>a.title}))},"x-component-props":{showSearch:!0,listStyle:{width:280,height:360}}}},defaultParams(e){var t,o,r;const i=(r=(o=(t=e==null?void 0:e.model)==null?void 0:t.context)==null?void 0:o.app)==null?void 0:r.dataSourceManager,n=i==null?void 0:i.collectionFieldInterfaceManager;return{filterableFieldNames:getFilterableFields(e.blockModel.collection,n).map(l=>l.name)||[]}},handler(e,t){e.model.setProps("filterableFieldNames",t.filterableFieldNames)}},defaultFilter:{title:(0,import_flow_engine.tExpr)("Default filter conditions"),uiSchema:{defaultFilter:{type:"object","x-decorator":"FormItem","x-component":e=>{const{model:t}=(0,import_flow_engine.useFlowSettingsContext)();return(0,import_jsx_runtime.jsx)(FilterGroup,{value:e.value||{},FilterItem:o=>(0,import_jsx_runtime.jsx)(VariableFilterItem,A(x({},o),{model:t}))})}}},defaultParams(e){return{defaultFilter:e.model.defaultProps.filterValue}},handler(e,t){e.model.setProps("defaultFilterValue",import_lodash.default.cloneDeep(t.defaultFilter)),e.model.setProps("filterValue",import_lodash.default.cloneDeep(t.defaultFilter))}}}});FilterActionModel.registerFlow({key:"submitSettings",on:"submit",steps:{submit:{handler(e,t){const o=e.blockModel,r=o==null?void 0:o.resource;if(!o||!r)return;const i=(0,import_client.transformFilter)(e.model.props.filterValue),n=!(0,import_client.isEmptyFilter)(i);o.setFilterActive(e.model.uid,n),n?(r.addFilterGroup(e.model.uid,i),r.setPage(1)):r.removeFilterGroup(e.model.uid),o.getDataLoadingMode()==="manual"&&!n&&!o.hasActiveFilters()?(r.setData([]),r.setMeta({count:0,hasNext:!1}),typeof r.setPage=="function"&&r.setPage(1),r.loading=!1):r.refresh(),e.model.setProps("open",!1)}}}});FilterActionModel.registerFlow({key:"resetSettings",title:(0,import_flow_engine.tExpr)("Reset"),on:"reset",steps:{reset:{handler(e,t){const o=e.blockModel,r=o==null?void 0:o.resource;if(!o||!r)return;r.removeFilterGroup(e.model.uid),o.setFilterActive(e.model.uid,!1);const i=o.getDataLoadingMode(),n=e.model.props.defaultFilterValue,l=!(0,import_client.isEmptyFilter)((0,import_client.transformFilter)(n));i==="manual"&&!l&&!o.hasActiveFilters()?(r.setData([]),r.setMeta({count:0,hasNext:!1}),typeof r.setPage=="function"&&r.setPage(1),r.loading=!1):(l&&(r.addFilterGroup(e.model.uid,(0,import_client.transformFilter)(n)),o.setFilterActive(e.model.uid,!0),r.setPage(1)),r.refresh()),e.model.setProps("open",!1),e.model.setProps("filterValue",import_lodash.default.cloneDeep(n))}}}});FilterActionModel.registerFlow({key:"openSettings",on:"click",steps:{open:{handler(e,t){e.model.setProps("open",!e.model.props.open)}}}});function getFilterableFields(e,t){var o;const r=((o=e==null?void 0:e.getFields)==null?void 0:o.call(e))||[];return t?r.filter(i=>{if(!(i!=null&&i.interface)||(i==null?void 0:i.filterable)===!1)return!1;const n=t.getFieldInterface(i.interface);return!!(n!=null&&n.filterable)}):[]}function getIgnoreFieldNames(e,t){return t==null?void 0:t.filter(o=>!e.includes(o))}function resolveRunJsParams(e,t){var o,r,i,n;const l=((o=e.inputArgs)==null?void 0:o.preview)||{},a=(i=(r=l==null?void 0:l.version)!=null?r:t==null?void 0:t.version)!=null?i:"v1",c=typeof(l==null?void 0:l.code)=="string"?l.code:void 0;return{code:(n=c??(t==null?void 0:t.code))!=null?n:"",version:a}}class JSActionModel extends ActionModel{constructor(){super(...arguments),R(this,"defaultProps",{type:"default",title:(0,import_flow_engine.tExpr)("JS action"),icon:"JavaScriptOutlined"})}}JSActionModel.define({label:(0,import_flow_engine.tExpr)("JS action"),sort:9999,createModelOptions:{use:"JSActionModel"}});JSActionModel.registerFlow({key:"clickSettings",on:"click",title:(0,import_flow_engine.tExpr)("Click settings"),steps:{runJs:{title:(0,import_flow_engine.tExpr)("Write JavaScript"),useRawParams:!0,uiSchema:{code:{type:"string","x-component":CodeEditor,"x-component-props":{minHeight:"320px",theme:"light",enableLinter:!0,wrapperStyle:{position:"fixed",inset:8}}}},uiMode:{type:"embed",props:{styles:{body:{transform:"translateX(0)"}}}},defaultParams(e){return{version:"v2",code:`
|
|
1780
1780
|
ctx.message.info('Hello JS action.');
|
|
1781
1781
|
`}},handler(e,t){return L(this,null,function*(){const{code:o,version:r}=resolveRunJsParams(e,t),i=(0,import_flow_engine.createSafeNavigator)();yield e.runjs(o,{window:(0,import_flow_engine.createSafeWindow)({navigator:i}),document:(0,import_flow_engine.createSafeDocument)(),navigator:i},{version:r})})}}}});class JSCollectionActionModel extends ActionModel{constructor(){super(...arguments),R(this,"defaultProps",{title:(0,import_flow_engine.tExpr)("JS action"),icon:"JavaScriptOutlined"})}}R(JSCollectionActionModel,"scene",ActionSceneEnum.collection);JSCollectionActionModel.define({label:(0,import_flow_engine.tExpr)("JS action"),sort:9999,createModelOptions:{use:"JSCollectionActionModel"}});JSCollectionActionModel.registerFlow({key:"clickSettings",on:"click",title:(0,import_flow_engine.tExpr)("Click settings"),steps:{runJs:{title:(0,import_flow_engine.tExpr)("Write JavaScript"),useRawParams:!0,uiSchema:{code:{type:"string","x-component":CodeEditor,"x-component-props":{minHeight:"320px",theme:"light",enableLinter:!0,wrapperStyle:{position:"fixed",inset:8}}}},uiMode:{type:"embed",props:{styles:{body:{transform:"translateX(0)"}}}},defaultParams(e){return{version:"v2",code:`
|
|
1782
1782
|
const rows = ctx.resource?.getSelectedRows?.() || [];
|
|
@@ -1844,7 +1844,7 @@ if (!ctx.record) {
|
|
|
1844
1844
|
}
|
|
1845
1845
|
}
|
|
1846
1846
|
}
|
|
1847
|
-
`;function isGridDelegatedStep(e,t){var o;return!!((o=GRID_DELEGATED_STEP_KEYS[e])!=null&&o.has(t))}class FormBlockModel extends CollectionBlockModel{constructor(){super(...arguments),R(this,"formValueRuntime"),R(this,"userModifiedTopLevelFields",new Set),R(this,"_defaultCustomModelClasses",{FormActionGroupModel:"FormActionGroupModel",FormItemModel:"FormItemModel",FormAssociationFieldGroupModel:"FormAssociationFieldGroupModel"}),R(this,"customModelClasses",{})}get form(){return this.context.form}syncRuntimeAssignRules(t="unknown"){var o,r,i;const n=this.getStepParams("formModelSettings","assignRules"),l=(n==null?void 0:n.value)||[];(r=(o=this.formValueRuntime)==null?void 0:o.syncAssignRules)==null||r.call(o,Array.isArray(l)?l:[]);const a=(i=this.context)==null?void 0:i.resource,c=collectUpdateAssociationValuesFromAssignRules(l,this.collection);a!=null&&a.addUpdateAssociationValues&&c.length&&a.addUpdateAssociationValues(c)}renderConfigureActions(){return(0,import_jsx_runtime.jsx)(import_flow_engine.AddSubModelButton,{model:this,subModelKey:"actions",subModelBaseClass:this.getModelClassName("FormActionGroupModel"),children:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowSettingsButton,{icon:(0,import_jsx_runtime.jsx)(import_icons.SettingOutlined,{}),children:this.translate("Actions")})})}setFieldsValue(t){const o=this.context;if(typeof o.setFormValues=="function"){o.setFormValues(t,{source:"system"}).catch(r=>{console.warn("[FormBlockModel] Failed to set form values via ctx.setFormValues",r)});return}this.form.setFieldsValue(t)}setFieldValue(t,o){const r=this.context;if(typeof r.setFormValue=="function"){r.setFormValue(t,o,{source:"system"}).catch(i=>{console.warn("[FormBlockModel] Failed to set form value via ctx.setFormValue",i)});return}this.form.setFieldValue(t,o)}markUserModifiedFields(t){if(!(!t||typeof t!="object")&&!Array.isArray(t))for(const o of Object.keys(t))o&&this.userModifiedTopLevelFields.add(o)}getUserModifiedFields(){return this.userModifiedTopLevelFields}resetUserModifiedFields(){this.userModifiedTopLevelFields.clear()}onDispatchEventStart(t,o,r){return L(this,null,function*(){var i;if(t==="beforeRender"){const n=this.subModels.grid;n&&(yield n.dispatchEvent("beforeRender",r,{useCache:o==null?void 0:o.useCache}))}yield(i=$e(FormBlockModel.prototype,this,"onDispatchEventStart"))==null?void 0:i.call(this,t,o,r)})}getStepParams(t,o){const r=this.subModels.grid;if(t&&o&&isGridDelegatedStep(t,o)&&r){const i=r.getStepParams(t,o);return typeof i<"u"?i:super.getStepParams(t,o)}if(t&&!o&&GRID_DELEGATED_STEP_KEYS[t]&&r){const i=super.getStepParams(t)||{},n=r.getStepParams(t)||{};for(const l of GRID_DELEGATED_STEP_KEYS[t])Object.prototype.hasOwnProperty.call(n,l)&&typeof n[l]<"u"&&(i[l]=n[l]);return i}return super.getStepParams(t,o)}setStepParams(t,o,r){const i=this.subModels.grid,n=(l,a)=>{const c=GRID_DELEGATED_STEP_KEYS[l];if(!c||!i)return a;const u={};for(const[d,m]of Object.entries(a))c.has(d)?i.setStepParams(l,d,m):u[d]=m;return u};if(typeof t=="string"&&typeof o=="string"&&r!==void 0){isGridDelegatedStep(t,o)&&i?i.setStepParams(t,o,r):super.setStepParams(t,o,r);return}if(typeof t=="string"&&typeof o=="object"&&o!==null){const l=n(t,o);Object.keys(l).length>0&&super.setStepParams(t,l);return}if(typeof t=="object"&&t!==null){const l={};for(const[a,c]of Object.entries(t)){if(typeof c!="object"||c===null){l[a]=c;continue}const u=n(a,c);Object.keys(u).length>0&&(l[a]=u)}Object.keys(l).length>0&&super.setStepParams(l)}}saveStepParams(){return L(this,null,function*(){return yield saveStepParamsWithSubModelsIfNeeded(this,()=>L(this,null,function*(){const t=yield $e(FormBlockModel.prototype,this,"saveStepParams").call(this),o=this.subModels.grid;return yield o==null?void 0:o.saveStepParams(),t}))})}createFormValuesMetaFactory(){return(0,import_flow_engine.createAssociationAwareObjectMetaFactory)(()=>this.collection,this.translate("Current form"),()=>{var t,o;return((o=(t=this.form)==null?void 0:t.getFieldsValue)==null?void 0:o.call(t))||{}})}useHooksBeforeRender(){const[t]=import_antd.Form.useForm();this.context.defineProperty("form",{get:()=>t}),this.formValueRuntime||(this.formValueRuntime=new FormValueRuntime({model:this,getForm:()=>this.context.form}));const o=this.formValueRuntime;o.mount();const r=this.createFormValuesMetaFactory();this.context.defineProperty("formValues",{get:()=>o.formValues,cache:!1,meta:r,resolveOnServer:i=>{var n,l,a,c,u,d,m,p,h,g,f,_,v,y,C;if(!i)return!1;const b=(F=>{const S=String(F||"").match(/^([^.[]+)/);return S==null?void 0:S[1]})(i);if(!b||!((l=(n=this.collection)==null?void 0:n.getField)!=null&&l.call(n,b)))return!1;if((()=>{var F,S,P,j,I;const T=(P=(S=(F=this.subModels.grid)==null?void 0:F.subModels)==null?void 0:S.items)!=null?P:[],N=new Set;for(const D of T){const w=(I=(j=D==null?void 0:D.getStepParams)==null?void 0:j.call(D,"fieldSettings","init"))==null?void 0:I.fieldPath,k=w==null?void 0:w.toString().split(".")[0];k&&N.add(k)}return N})().has(b)){const F=(c=(a=this.form)==null?void 0:a.getFieldValue)==null?void 0:c.call(a,b);if(F==null||Array.isArray(F)&&F.length===0)return!1;const S=o.getFormValuesSnapshot();return S&&typeof S=="object"&&typeof(0,import_shared2.getValuesByPath)(S,i)<"u"?!1:(0,import_flow_engine.createAssociationSubpathResolver)(()=>this.collection,()=>o.getFormValuesSnapshot())(i)}try{const F=(C=(f=(m=(d=(u=this.context)==null?void 0:u.resource)==null?void 0:d.getMeta)==null?void 0:m.call(d,"currentFilterByTk"))!=null?f:(g=(h=(p=this.context)==null?void 0:p.resource)==null?void 0:h.getFilterByTk)==null?void 0:g.call(h))!=null?C:(y=(_=this.collection)==null?void 0:_.getFilterByTK)==null?void 0:y.call(_,(v=this.context)==null?void 0:v.record);if(typeof F>"u"||F===null)return!1}catch{return!1}return!0},serverOnlyWhenContextParams:!0}),this.context.defineMethod("getFormValues",function(){return o.getFormValuesSnapshot()}),this.context.defineMethod("setFormValues",function(i,n){return o.setFormValues(this,i,n)}),this.context.defineMethod("setFormValue",function(i,n,l){return o.setFormValues(this,[{path:i,value:n}],l)})}onInit(t){super.onInit(t),this.emitter.on("onSubModelAdded",o=>{o===this.subModels.grid&&queueMicrotask(()=>this.syncRuntimeAssignRules("onSubModelAdded:grid"))}),this.context.defineProperty("record",{get:()=>this.getCurrentRecord(),cache:!1}),this.context.resource.on("saved",()=>{this.dispatchEvent("formSubmitSuccess",{})})}onMount(){var t;super.onMount(),(t=this.formValueRuntime)==null||t.mount({sync:!0}),this.syncRuntimeAssignRules("onMount"),setTimeout(()=>{this.applyFlow("eventSettings")},100)}onUnmount(){var t;(t=this.formValueRuntime)==null||t.dispose(),this.formValueRuntime=void 0,super.onUnmount()}getCurrentRecord(){return{}}renderComponent(){throw new Error("renderComponent method must be implemented in subclasses of FormModel")}}function FormComponent(e){var t=e,{model:o,children:r,layoutProps:i={},initialValues:n}=t,l=te(t,["model","children","layoutProps","initialValues"]),a,c,u,d;const m=!!((a=o==null?void 0:o.context)!=null&&a.isMobileLayout&&(i==null?void 0:i.layout)==="horizontal"),p=[l.className,m?FLOW_KEEP_MOBILE_HORIZONTAL_CLASS:"",m?flowKeepMobileHorizontalClassName:""].filter(Boolean).join(" ");return(0,import_jsx_runtime.jsx)(import_antd.Form,A(x(A(x({form:o.form,initialValues:((d=(u=(c=o.context)==null?void 0:c.view)==null?void 0:u.inputArgs)==null?void 0:d.formData)||o.context.record||n},(0,import_lodash.omit)(i,"labelWidth")),{labelCol:{style:{width:i==null?void 0:i.labelWidth}},onFieldsChange:h=>{const g=o.formValueRuntime;g&&g.handleFormFieldsChange(h)},onValuesChange:(h,g)=>{var f;(f=o.markUserModifiedFields)==null||f.call(o,h);const _=o.formValueRuntime;if(_){_.handleFormValuesChange(h,g);return}o.dispatchEvent("formValuesChange",{changedValues:h,allValues:g},{debounce:!0}),o.emitter.emit("formValuesChange",{changedValues:h,allValues:g})}}),l),{className:p||void 0,children:r}))}const getOuterHeight$1=e=>{if(!e)return 0;const t=e.getBoundingClientRect(),o=window.getComputedStyle(e),r=parseFloat(o.marginTop)||0,i=parseFloat(o.marginBottom)||0;return t.height+r+i},normalizeCssSize=e=>{if(!(e==null||e===""))return typeof e=="number"?`${e}px`:/^\d+(\.\d+)?$/.test(e)?`${e}px`:e},useFormGridHeight=({heightMode:e,containerRef:t,actionsRef:o,footerRef:r,deps:i=[]})=>{const[n,l]=(0,import_react2.useState)(),a=(0,import_react2.useCallback)(()=>{if(e!=="specifyValue"&&e!=="fullHeight"){l(h=>h===void 0?h:void 0);return}const c=t.current;if(!c)return;const u=c.getBoundingClientRect().height;if(!u)return;const d=getOuterHeight$1((o==null?void 0:o.current)||null),m=getOuterHeight$1((r==null?void 0:r.current)||null),p=Math.max(0,Math.floor(u-d-m));l(h=>h===p?h:p)},[e,t,o,r]);return(0,import_react2.useLayoutEffect)(()=>{a()},[a,...i]),(0,import_react2.useEffect)(()=>{if(!t.current||typeof ResizeObserver>"u")return;const c=t.current,u=(o==null?void 0:o.current)||null,d=(r==null?void 0:r.current)||null,m=new ResizeObserver(()=>a());return m.observe(c),u&&m.observe(u),d&&m.observe(d),()=>m.disconnect()},[a,t,o,r,...i]),n},FormBlockContent=({model:e,gridModel:t,layoutProps:o,onFinish:r,grid:i,actions:n,footer:l,heightMode:a,height:c})=>{var u,d;const m=(0,import_react2.useRef)(null),p=(0,import_react2.useRef)(null),h=(0,import_react2.useRef)(null),g=a==="specifyValue"||a==="fullHeight",f={paddingTop:(d=(u=e.context)==null?void 0:u.themeToken)==null?void 0:d.padding},_=(o==null?void 0:o.layout)==="horizontal"?normalizeCssSize(o==null?void 0:o.labelWidth):void 0;_&&(f.marginInlineStart=_);const v=useFormGridHeight({heightMode:a,containerRef:m,actionsRef:n?p:void 0,footerRef:l?h:void 0,deps:[c]});return(0,import_react2.useEffect)(()=>{var y;if(!t)return;const C=g?v:void 0;((y=t.props)==null?void 0:y.height)!==C&&t.setProps({height:C})},[t,v,g]),(0,import_jsx_runtime.jsx)(FormComponent,{model:e,layoutProps:o,onFinish:r,style:g?{display:"flex",flexDirection:"column",minHeight:0,height:"100%"}:void 0,children:(0,import_jsx_runtime.jsxs)("div",{ref:m,style:g?{display:"flex",flexDirection:"column",minHeight:0,flex:1}:void 0,children:[i,n?(0,import_jsx_runtime.jsx)("div",{style:f,ref:p,children:n}):null,l?(0,import_jsx_runtime.jsx)("div",{ref:h,children:l}):null]})})};FormBlockModel.define({hide:!0});FormBlockModel.registerFlow({key:"formModelSettings",title:(0,import_flow_engine.tExpr)("Form settings"),steps:{layout:{use:"layout",title:(0,import_flow_engine.tExpr)("Layout")},assignRules:{use:"formAssignRules",title:(0,import_flow_engine.tExpr)("Field values"),beforeParamsSave(e){const t=clearLegacyDefaultValuesFromFormModel(e.model);Array.isArray(t)&&t.length&&markSaveStepParamsWithSubModels(e.model)},afterParamsSave(e){var t,o,r,i,n,l;const a=e.model.getStepParams("formModelSettings","assignRules"),c=(a==null?void 0:a.value)||[];(r=(o=(t=e.model)==null?void 0:t.formValueRuntime)==null?void 0:o.syncAssignRules)==null||r.call(o,Array.isArray(c)?c:[]);const u=(n=(i=e.model)==null?void 0:i.context)==null?void 0:n.resource,d=collectUpdateAssociationValuesFromAssignRules(c,(l=e.model)==null?void 0:l.collection);u!=null&&u.addUpdateAssociationValues&&d.length&&u.addUpdateAssociationValues(d)}}}});FormBlockModel.registerFlow({key:"eventSettings",title:(0,import_flow_engine.tExpr)("Event settings"),on:"formValuesChange",steps:{linkageRules:{use:"fieldLinkageRules",afterParamsSave(e){var t;e.model.applyFlow("eventSettings",{changedValues:{},allValues:(t=e.form)==null?void 0:t.getFieldsValue(!0)})}}}});FormBlockModel.registerEvents({formValuesChange:{title:(0,import_flow_engine.tExpr)("Form values change"),name:"formValuesChange",uiSchema:{condition:{type:"object",title:(0,import_flow_engine.tExpr)("Trigger condition"),"x-decorator":"FormItem","x-component":ConditionBuilder}},handler:commonConditionHandler}});class FormModel extends FormBlockModel{}FormModel.define({hide:!0});class AssignFormModel extends FormBlockModel{useHooksBeforeRender(){const[t]=import_antd.Form.useForm();this.context.defineProperty("form",{get:()=>t})}onInit(t){super.onInit(t);const o=(0,import_flow_engine.createCurrentRecordMetaFactory)(this.context,()=>this.collection);this.context.defineProperty("record",{get:()=>{var r;return(r=this.getCurrentRecord)==null?void 0:r.call(this)},cache:!1,resolveOnServer:(0,import_flow_engine.createRecordResolveOnServerWithLocal)(()=>this.collection,()=>{var r;return(r=this.getCurrentRecord)==null?void 0:r.call(this)}),meta:o}),this.context.defineProperty("filterManager",{once:!0,get:()=>new FilterManager(this,t==null?void 0:t.filterManager)}),this.isManualRefresh=!0}createResource(t,o){const r=this.context.createResource(import_flow_engine.SingleRecordResource);return r.isNewRecord=!0,r}renderComponent(){var t;const{colon:o,labelAlign:r,labelWidth:i,labelWrap:n,layout:l}=this.props;return(0,import_jsx_runtime.jsx)(FormComponent,{model:this,layoutProps:{colon:o,labelAlign:r,labelWidth:i,labelWrap:n,layout:l},children:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,{model:(t=this.subModels)==null?void 0:t.grid,showFlowSettings:!1})})}setInitialAssignedValues(t){var o;const r=(o=this.subModels)==null?void 0:o.grid;Object.entries(t||{}).forEach(([i,n])=>{r.addOrEnsureItem(i,n)})}getAssignedValues(){return this.subModels.grid.getAssignedValues()||{}}}AssignFormModel.define({label:(0,import_flow_engine.tExpr)("Field assignments"),hide:!0,createModelOptions:{use:"AssignFormModel",subModels:{grid:{use:"AssignFormGridModel"}}}});class FormGridModel extends GridModel{constructor(){super(...arguments),R(this,"itemFallback",(0,import_jsx_runtime.jsx)(import_antd.Skeleton.Input,{block:!0,size:"small",style:{marginBottom:"0.5rem"}})),R(this,"itemSettingsMenuLevel",2),R(this,"itemFlowSettings",{showBackground:!0,style:{top:-6,left:-6,right:-6,bottom:-6}}),R(this,"dragOverlayConfig",{columnInsert:{before:{offsetTop:-12,height:24},after:{offsetTop:7,height:24}},columnEdge:{left:{offsetLeft:-5,width:24},right:{offsetLeft:8,width:24}},rowGap:{above:{offsetTop:0,height:24},below:{offsetTop:-14,height:24}}})}renderAddSubModelButton(){return(0,import_jsx_runtime.jsx)(import_flow_engine.AddSubModelButton,{subModelKey:"items",subModelBaseClasses:[this.context.getModelClassName("FormItemModel"),this.context.getModelClassName("FormAssociationFieldGroupModel"),this.context.getModelClassName("FormCustomItemModel"),this.context.getModelClassName("FormJSFieldItemModel")].filter(Boolean),model:this,keepDropdownOpen:!0,children:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowSettingsButton,{icon:(0,import_jsx_runtime.jsx)(import_icons.SettingOutlined,{}),children:this.translate("Fields")})})}render(){var t,o;const r=(t=this.props)==null?void 0:t.height,i=(o=this.props)==null?void 0:o.heightModel,n=this.context.themeToken,l=super.render();return i==="defaultHeight"?l:(0,import_jsx_runtime.jsx)("div",{style:{height:r,overflowY:"auto",marginLeft:`-${n.marginLG}px`,marginRight:`-${n.marginLG}px`,paddingLeft:`${n.marginLG}px`,paddingRight:`${n.marginLG}px`,paddingTop:5},children:l})}}FormGridModel.registerFlow({key:"formFieldGridSettings",steps:{grid:{handler(e,t){e.model.setProps("rowGap",0),e.model.setProps("colGap",16)}}}});class AssignFormGridModel extends FormGridModel{renderAddSubModelButton(){var t,o;const r=(t=this.context)==null?void 0:t.collection,i=((o=r==null?void 0:r.getFields)==null?void 0:o.call(r))||[],n=typeof(r==null?void 0:r.getPrimaryKey)=="function"?r.getPrimaryKey():void 0,l=r==null?void 0:r.filterTargetKey,a=u=>u?!!(n&&u===n||typeof l=="string"&&u===l||Array.isArray(l)&&l.includes(u)):!1,c=i.filter(u=>!a(u==null?void 0:u.name)).map(u=>{const d=u.name,m=u.title||u.name,p=import_flow_engine.EditableItemModel.getDefaultBindingByField(this.context,u);if(!p)return;const h=p.modelName;return{key:d,label:m,toggleable:g=>{const f=g.getStepParams("fieldSettings","init")||{};return(f==null?void 0:f.fieldPath)===d},useModel:"AssignFormItemModel",createModelOptions:()=>({use:"AssignFormItemModel",stepParams:{fieldSettings:{init:{dataSourceKey:r==null?void 0:r.dataSourceKey,collectionName:r==null?void 0:r.name,fieldPath:d}}},subModels:{field:{use:h,stepParams:{fieldSettings:{init:{dataSourceKey:r==null?void 0:r.dataSourceKey,collectionName:r==null?void 0:r.name,fieldPath:d}}}}}})}}).filter(Boolean);return(0,import_jsx_runtime.jsx)(import_flow_engine.AddSubModelButton,{subModelKey:"items",model:this,items:c,keepDropdownOpen:!0,children:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowSettingsButton,{icon:(0,import_jsx_runtime.jsx)(import_icons.SettingOutlined,{}),children:this.translate("Fields")})})}addOrEnsureItem(t,o){var r,i,n;const l=(r=this.context)==null?void 0:r.collection,a=(((i=this.subModels)==null?void 0:i.items)||[]).find(p=>{try{const h=typeof(p==null?void 0:p.getStepParams)=="function"?p.getStepParams("fieldSettings","init"):null;return(h==null?void 0:h.fieldPath)===t}catch{return!1}});if(a){typeof(a==null?void 0:a.setStepParams)=="function"&&a.setStepParams("fieldSettings","assignValue",{value:o}),a.assignValue=o;return}const c=(((n=l==null?void 0:l.getFields)==null?void 0:n.call(l))||[]).find(p=>p.name===t),u=import_flow_engine.EditableItemModel.getDefaultBindingByField(this.context,c);if(!u)return;const d=u.modelName,m=this.flowEngine.createModel({use:"AssignFormItemModel",stepParams:{fieldSettings:{init:{dataSourceKey:l==null?void 0:l.dataSourceKey,collectionName:l==null?void 0:l.name,fieldPath:t},assignValue:{value:o}}},subModels:{field:{use:d,stepParams:{fieldSettings:{init:{dataSourceKey:l==null?void 0:l.dataSourceKey,collectionName:l==null?void 0:l.name,fieldPath:t}}}}},parentId:this.uid,subKey:"items"});m.assignValue=o}getAssignedValues(){var t;const o=((t=this.subModels)==null?void 0:t.items)||[],r={};for(const i of o){const n=typeof i.getAssignedEntry=="function"?i.getAssignedEntry():null;n&&Array.isArray(n)&&(r[n[0]]=n[1])}return r}}AssignFormGridModel.define({label:(0,import_flow_engine.tExpr)("Assign grid")});function getFieldBindingUse(e){var t,o;const r=(o=(t=e==null?void 0:e.stepParams)==null?void 0:t.fieldBinding)==null?void 0:o.use;return typeof r=="string"?r:void 0}function rebuildFieldSubModel(e){return L(this,arguments,function*({parentModel:t,targetUse:o,defaultProps:r,pattern:i,fieldSettingsInit:n}){var l,a,c;const u=t.subModels.field,d=u==null?void 0:u.uid,m=(a=(l=u==null?void 0:u.serialize)==null?void 0:l.call(u))==null?void 0:a.subModels;for(const _ in m)m[_].delegateToParent===!1&&delete m[_];const p=(u==null?void 0:u.stepParams)||{},h=n??((c=t.getFieldSettingsInitParams)==null?void 0:c.call(t)),g=A(x({},p),{fieldBinding:A(x({},p.fieldBinding),{use:o}),fieldSettings:{init:h}}),f=t.flowEngine;d&&(u==null||u.invalidateFlowCache("beforeRender",!0),f.removeModelWithSubModels(d)),yield t.setSubModel("field",{uid:d,use:FieldModel,props:x(x({},r||{}),i?{pattern:i}:{}),stepParams:g,subModels:m}).dispatchEvent("beforeRender",void 0,{useCache:!1}),yield t.save()})}function getValueWithIndex(e,t,o){const r=(0,import_lodash.castArray)(o).filter(n=>typeof n=="string"),i=t.split(".");if(r!=null&&r.length){const n=[];let l=0,a=0;for(;l<i.length;){const c=i[l];if(n.push(c),a<r.length){const[u,d]=r[a].split(":");u===c&&(n.push(Number(d)),a++)}l++}return(0,import_lodash.get)(e,n)}return(0,import_lodash.get)(e,i)}function getDetailsItemValue(e){const{record:t,currentObject:o,fieldPath:r,prefixFieldPath:i,idx:n}=e,l=getValueWithIndex(t,r,n);if(l!==void 0||o==null)return l;if(i&&r===i)return o;const a=i&&r.startsWith(`${i}.`)?r.slice(i.length+1):r;return a?(0,import_lodash.get)(o,a):o}function normalizeDetailsAssociationValue(e,t){return!isToManyAssociationField(e)||Array.isArray(t)?t:t&&typeof t=="object"&&Array.isArray(t.rows)?t.rows:t==null?[]:[t]}class DetailsItemModel 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:"DetailsItemModel",createModelOptions:()=>({use:"DetailsItemModel",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=this.context.item,l=this.context.getPropertyOptions("item"),a=this.context.prefixFieldPath,c=o!=null?(()=>{const m=t.createFork({},`${o}`);m.context.defineProperty("fieldIndex",{get:()=>o}),m.context.defineProperty("record",{get:()=>r,cache:!1}),m.context.defineProperty("currentObject",{get:()=>i,cache:!1});const p=l||{},h=te(p,["value"]);return m.context.defineProperty("item",A(x({},h),{get:()=>n,cache:!1})),this.context.pattern&&m.context.defineProperty("pattern",{get:()=>this.context.pattern}),m})():t,u=this.context.pattern?A(x(x({},this.context.blockModel.props),this.props),{pattern:this.context.pattern,disabled:this.context.pattern==="readPretty"}):x(x({},this.context.blockModel.props),this.props),d=normalizeDetailsAssociationValue(this.collectionField,getDetailsItemValue({record:r,currentObject:i,fieldPath:this.fieldPath,prefixFieldPath:a,idx:o}));return(0,import_jsx_runtime.jsx)(import_flow_engine.FormItem,A(x({},u),{value:d,children:(0,import_jsx_runtime.jsx)(import_flow_engine.FieldModelRenderer,{model:c})}))}}DetailsItemModel.define({label:(0,import_flow_engine.tExpr)("Display fields"),sort:100});DetailsItemModel.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;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.collectionField)==null?void 0:t.title}},handler(e,t){var o;const r={ns:"lm-flow-engine",compareWith:(o=e.collectionField)==null?void 0:o.title};e.model.setProps({label:e.t(t.title,r)})}},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})}}});DetailsItemModel.registerFlow({key:"paginationChange",on:"paginationChange",steps:{aclCheckRefresh:{use:"aclCheckRefresh"}}});function isInSameBlock(e,t){var o,r;const i=(r=(o=e==null?void 0:e.context)==null?void 0:o.blockModel)==null?void 0:r.uid,n=t==null?void 0:t.uid;return!i||!n?!1:String(i)===String(n)}function tryGetModelTargetPathCandidate(e){var t,o;const r=(t=e==null?void 0:e.context)==null?void 0:t.fieldPathArray;if(Array.isArray(r)&&r.length)return r;try{const a=(o=e==null?void 0:e.getStepParams)==null?void 0:o.call(e,"fieldSettings","init"),c=a==null?void 0:a.fieldPath;if(typeof c=="string"&&c)return c}catch{}const i=e==null?void 0:e.fieldPath;if(typeof i=="string"&&i)return i;const n=typeof(e==null?void 0:e.getProps)=="function"?e.getProps():e==null?void 0:e.props,l=n==null?void 0:n.name;return typeof l=="string"&&l||Array.isArray(l)&&l.length?l:null}function normalizeResolvedNamePath(e){return!Array.isArray(e)||!e.length||typeof e[0]!="string"?null:e}function resolveModelNamePath(e){var t;const o=tryGetModelTargetPathCandidate(e);if(!o)return null;const r=resolveDynamicNamePath(o,(t=e==null?void 0:e.context)==null?void 0:t.fieldIndex);return normalizeResolvedNamePath(r)}function cleanupEmptyPlainObjectAncestors(e,t){if(!(!e||typeof e!="object")&&!(!Array.isArray(t)||t.length<2))for(let o=t.length-1;o>=1;o--){const r=t.slice(0,o);if(typeof r[r.length-1]=="number")continue;const i=import_lodash.default.get(e,r);import_lodash.default.isPlainObject(i)&&Object.keys(i).length===0&&import_lodash.default.unset(e,r)}}function forEachModelIncludingForks(e,t){e!=null&&e.forEachModel&&e.forEachModel(o=>{t(o);const r=o==null?void 0:o.forks;r&&typeof r.forEach=="function"&&r.forEach(i=>t(i))})}function collectHiddenModelNamePaths(e){const t=e==null?void 0:e.flowEngine;if(!(t!=null&&t.forEachModel))return[];const o=[],r=new Set;return forEachModelIncludingForks(t,i=>{if(!i||typeof i!="object"||!i.hidden||!isInSameBlock(i,e))return;const n=resolveModelNamePath(i);if(!n)return;const l=JSON.stringify(n);r.has(l)||(r.add(l),o.push(n))}),o}function normalizeFormNamePath(e){return typeof e=="string"?e?[e]:null:Array.isArray(e)?normalizeResolvedNamePath(e):null}function isNamePathPrefix(e,t){if(!Array.isArray(e)||!Array.isArray(t)||e.length>t.length)return!1;for(let o=0;o<e.length;o++)if(e[o]!==t[o])return!1;return!0}function getValidationNamePathsExcludingHiddenModels(e){const t=e==null?void 0:e.form;if(!t||typeof t.getFieldsError!="function")return null;const o=t.getFieldsError();if(!Array.isArray(o))return null;const r=[],i=new Set;for(const l of o){const a=normalizeFormNamePath(l==null?void 0:l.name);if(!a)continue;const c=JSON.stringify(a);i.has(c)||(i.add(c),r.push(a))}if(!r.length)return null;const n=collectHiddenModelNamePaths(e);return n.length?r.filter(l=>!n.some(a=>isNamePathPrefix(a,l))):r}function shouldSkipSubmitValidation(e){var t,o;return((o=(t=e==null?void 0:e.getStepParams)==null?void 0:t.call(e,"submitSettings","skipRequiredValidation"))==null?void 0:o.skipValidator)===!0}function validateSubmitForm(e){return L(this,null,function*(){const{form:t,blockModel:o,flowSettingsEnabled:r,skipValidator:i}=e;if(i||!t||typeof t.validateFields!="function")return;const n=r&&o?getValidationNamePathsExcludingHiddenModels(o):null;if(Array.isArray(n)){n.length&&(yield t.validateFields(n));return}yield t.validateFields()})}function omitHiddenModelValuesFromSubmit(e,t){if(!e||typeof e!="object")return e;const o=collectHiddenModelNamePaths(t);if(!o.length)return e;const r=import_lodash.default.cloneDeep(e);for(const i of o)import_lodash.default.unset(r,i),cleanupEmptyPlainObjectAncestors(r,i);return r}function submitHandler(e,t,o){return L(this,null,function*(){var r,i,n,l,a;const c=e.resource,u=e.blockModel;yield validateSubmitForm({form:u==null?void 0:u.form,blockModel:u,flowSettingsEnabled:e==null?void 0:e.flowSettingsEnabled,skipValidator:shouldSkipSubmitValidation(e==null?void 0:e.model)});const d=u.form.getFieldsValue(!0),m=omitHiddenModelValuesFromSubmit(d,u);if(c instanceof import_flow_engine.SingleRecordResource){if(u instanceof EditFormModel){const h=c.getMeta("currentFilterByTk");h?c.setFilterByTk(h):c.isNewRecord=!0}const p=o?yield o(m):yield c.save(m,t.requestConfig);u instanceof EditFormModel?(c.isNewRecord=!1,(r=u.resetUserModifiedFields)==null||r.call(u),yield c.refresh()):(u.form.resetFields(),u.emitter.emit("onFieldReset"),(i=u.resetUserModifiedFields)==null||i.call(u),(l=(n=u.formValueRuntime)==null?void 0:n.resetAfterFormReset)==null||l.call(n),e.view.inputArgs.collectionName===u.collection.name&&e.view.inputArgs.onChange&&e.view.inputArgs.onChange(p==null?void 0:p.data))}else if(c instanceof import_flow_engine.MultiRecordResource){const p=c.getMeta("currentFilterByTk");if(!p){e.message.error(e.t("No filterByTk found for multi-record resource."));return}(yield o)?yield o(m,p):yield c.update(p,m,t.requestConfig),(a=u.resetUserModifiedFields)==null||a.call(u)}})}class EditFormModel extends FormBlockModel{constructor(){super(...arguments),R(this,"actionFlowSettings",{showBackground:!1,showBorder:!1,toolbarPosition:"above"}),R(this,"actionExtraToolbarItems",[{key:"drag-handler",component:import_flow_engine.DragHandler,sort:1}]),R(this,"handlePageChange",t=>L(this,null,function*(){if(this.resource instanceof import_flow_engine.MultiRecordResource){const o=this.resource;o.setPage(t),o.loading=!0,yield o.refresh(),yield dispatchEventDeep(this,"paginationChange")}}))}createResource(t,o){var r,i;if(((r=this.association)==null?void 0:r.type)==="hasOne"||((i=this.association)==null?void 0:i.type)==="belongsTo"){const l=this.context.createResource(import_flow_engine.SingleRecordResource);return l.isNewRecord=!1,l}if(Object.keys(o).includes("filterByTk")){const l=this.context.createResource(import_flow_engine.SingleRecordResource);return l.isNewRecord=!1,l}const n=this.context.createResource(import_flow_engine.MultiRecordResource);return n.setPageSize(1),n}isMultiRecordResource(){return this.resource instanceof import_flow_engine.MultiRecordResource}getCurrentRecord(){const t=this.resource.getData();return Array.isArray(t)?t[0]:t}hasAvailableData(){return this.resource.hasData()}getAclActionName(){return"update"}submitHandler(t,o,r){return L(this,null,function*(){yield submitHandler(t,o,r)})}submit(){return L(this,arguments,function*(t={},o){yield submitHandler(this.context,t,o)})}renderComponent(){var t,o;const{colon:r,labelAlign:i,labelWidth:n,labelWrap:l,layout:a}=this.props,c=!!this.context.flowSettingsEnabled,u=this.hasAvailableData(),d=!c&&!u,{heightMode:m,height:p}=this.decoratorProps,h=!this.resource.loading&&!u?(0,import_jsx_runtime.jsx)("div",{style:{textAlign:"center",marginTop:16,color:(o=(t=this.context)==null?void 0:t.themeToken)==null?void 0:o.colorTextDescription},children:this.translate("No available data currently")}):this.isMultiRecordResource()&&this.resource.getMeta("count")>1?(0,import_jsx_runtime.jsx)("div",{style:{textAlign:"center",marginTop:16},children:(0,import_jsx_runtime.jsx)(import_antd.Pagination,{simple:!0,pageSize:1,showSizeChanger:!1,defaultCurrent:this.resource.getPage(),total:this.resource.getTotalPage(),onChange:this.handlePageChange,style:{display:"inline-block"}})}):null;return(0,import_jsx_runtime.jsx)(FormBlockContent,{model:this,gridModel:this.subModels.grid,layoutProps:{colon:r,labelAlign:i,labelWidth:n,labelWrap:l,layout:a},heightMode:m,height:p,grid:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,{model:this.subModels.grid,showFlowSettings:!1}),actions:(0,import_jsx_runtime.jsx)("div",{style:d?{pointerEvents:"none",opacity:.45}:void 0,children:(0,import_jsx_runtime.jsx)(import_flow_engine.DndProvider,{children:(0,import_jsx_runtime.jsxs)(import_antd.Space,{wrap:!0,children:[this.mapSubModels("actions",g=>{if(!(g.hidden&&!c))return(0,import_jsx_runtime.jsx)(import_flow_engine.Droppable,{model:g,children:(0,import_jsx_runtime.jsx)(import_flow_engine.MemoFlowModelRenderer,{model:g,showFlowSettings:this.context.flowSettingsEnabled?this.actionFlowSettings:!1,extraToolbarItems:this.actionExtraToolbarItems},g.uid)},g.uid)}),this.renderConfigureActions()]})})}),footer:h})}}R(EditFormModel,"scene",BlockSceneEnum.oam),R(EditFormModel,"blockCapabilityActionName","update");EditFormModel.registerFlow({key:"formSettings",title:(0,import_flow_engine.tExpr)("Edit form settings"),steps:{init:{handler(e){return L(this,null,function*(){if(!e.resource)throw new Error("Resource is not initialized");e.resource.on("refresh",()=>L(this,null,function*(){var t,o,r,i,n,l;const a=e.resource.getMeta("currentFilterByTk"),c=x({},e.model.getCurrentRecord());if(!c)return;const u=(t=e.association)==null?void 0:t.targetKey;if(u&&((o=e.association)==null?void 0:o.interface)!=="m2m"?e.resource.setMeta({currentFilterByTk:c==null?void 0:c[u]}):e.resource.setMeta({currentFilterByTk:e.collection.getFilterByTK(c)}),!e.form)return;const d=e.resource.getMeta("currentFilterByTk"),m=!(0,import_lodash.isEqual)(a,d),p=(i=(r=e.model).getUserModifiedFields)==null?void 0:i.call(r),h=!!(p!=null&&p.size),g=()=>{if(!(p!=null&&p.size))return;const f=_=>_!==null&&typeof _=="object";for(const _ of Array.from(p)){const v=e.form.getFieldValue(_),y=c==null?void 0:c[_];(Object.is(v,y)||f(v)&&f(y)&&(0,import_lodash.isEqual)(v,y))&&p.delete(_)}};if(!m&&h){const f=x({},c);for(const _ of p)f[_]=e.form.getFieldValue(_);e.form.setFieldsValue(f),g();return}m&&((l=(n=e.model).resetUserModifiedFields)==null||l.call(n)),e.form.setFieldsValue(c),g()}))})}},dataScope:{use:"dataScope"},refresh:{handler(e){return L(this,null,function*(){if(!e.resource)throw new Error("Resource is not initialized")})}}}});EditFormModel.registerFlow({key:"paginationChange",on:"paginationChange",steps:{blockLinkageRulesRefresh:{use:"linkageRulesRefresh",defaultParams:{actionName:"blockLinkageRules",flowKey:"cardSettings",stepKey:"linkageRules"}},fieldsLinkageRulesRefresh:{use:"linkageRulesRefresh",defaultParams:{actionName:"fieldLinkageRules",flowKey:"eventSettings",stepKey:"linkageRules"}}}});EditFormModel.define({label:(0,import_flow_engine.tExpr)("Form (Edit)"),searchable:!0,searchPlaceholder:(0,import_flow_engine.tExpr)("Search"),createModelOptions:{use:"EditFormModel",subModels:{grid:{use:"FormGridModel"}}},sort:340});function isToManyAssociation(e){if(!e)return!1;const t=e==null?void 0:e.type;return t==="belongsToMany"||t==="hasMany"||t==="belongsToArray"}function coerceForToOneField(e,t){var o;const r=!!((o=e==null?void 0:e.isAssociationField)!=null&&o.call(e)),i=isToManyAssociation(e);return r&&!i&&Array.isArray(t)?t.length?t[0]:void 0:t}function buildDynamicNamePath(e,t){if(!(t!=null&&t.length))return e;const o=t[t.length-1],[r,i]=String(o).split(":"),n=Number(i);if(!r||!Number.isFinite(n))return e;let l=0;for(const u of t){const[d]=String(u).split(":");d===r&&(l+=1)}let a=-1,c=0;for(let u=0;u<e.length;u++)if(String(e[u])===r&&(c+=1,c===l)){a=u;break}if(a===-1){for(let u=e.length-1;u>=0;u--)if(String(e[u])===r){a=u;break}}return a===-1?e:[n,...e.slice(a+1)]}const interfacesOfUnsupportedDefaultValue=["o2o","oho","obo","o2m","attachment","expression","point","lineString","circle","polygon","sequence","formula"];class FormItemModel extends import_flow_engine.EditableItemModel{static defineChildren(t){const o=t.collection;return o.getFields().map(r=>{const i=this.getDefaultBindingByField(t,r);if(!i)return;const n=i.modelName,l=t.prefixFieldPath?`${t.prefixFieldPath}.${r.name}`:r.name;return{key:l,label:r.title,refreshTargets:["FormItemModel/FormJSFieldItemModel"],toggleable:a=>{var c;return((c=a.getStepParams("fieldSettings","init"))==null?void 0:c.fieldPath)===l},useModel:"FormItemModel",createModelOptions:()=>({use:"FormItemModel",stepParams:{fieldSettings:{init:{dataSourceKey:o.dataSourceKey,collectionName:t.model.context.blockModel.collection.name,fieldPath:l}}},subModels:{field:{use:n,props:typeof i.defaultProps=="function"?i.defaultProps(t,r):i.defaultProps}}})}}).filter(Boolean)}onInit(t){super.onInit(t),this.emitter.on("onSubModelAdded",o=>{if(this.collectionField){const r=this.collectionField.getComponentProps();o.setProps(r),this.setProps(x({},import_lodash.default.pick(r,"rules")||{}))}})}renderItem(){var t,o;const r=this.subModels.field,i=this.context.fieldIndex,n=this.context.fieldKey,l=((t=this.parent)==null?void 0:t.context.fieldPathArray)||[],a=i!=null?(()=>{const p=r.createFork({},`${n}`);p.context.defineProperty("fieldIndex",{get:()=>i}),p.context.defineProperty("fieldKey",{get:()=>n}),this.context.currentObject&&p.context.defineProperty("currentObject",{get:()=>this.context.currentObject});const h=this.context.getPropertyOptions("item");if(this.context.item){const g=h||{},f=te(g,["value"]);p.context.defineProperty("item",A(x({},f),{get:()=>this.context.item,cache:!1}))}return this.context.pattern&&p.context.defineProperty("pattern",{get:()=>this.context.pattern}),p})():r,c=this.context.pattern?A(x({},this.props),{pattern:this.context.pattern}):this.props,u=te(c,["initialValue"]),d=buildDynamicNamePath(this.props.name,i);this.context.defineProperty("fieldPathArray",{value:[...l,...import_lodash.default.castArray(d)]});const m=((o=this.context.item)==null?void 0:o.value)||this.context.record;return(0,import_jsx_runtime.jsx)(import_flow_engine.FormItem,A(x({},u),{name:d,validateFirst:!0,disabled:this.props.disabled||!import_lodash.default.isEmpty(m)&&!m.__is_new__&&this.props.aclDisabled||!import_lodash.default.isEmpty(m)&&m.__is_new__&&this.props.aclCreateDisabled,children:(0,import_jsx_runtime.jsx)(import_flow_engine.FieldModelRenderer,{model:a,name:d})}))}}FormItemModel.define({label:(0,import_flow_engine.tExpr)("Display fields"),sort:100});FormItemModel.registerFlow({key:"editItemSettings",sort:300,title:(0,import_flow_engine.tExpr)("Form item settings"),steps:{showLabel:{title:(0,import_flow_engine.tExpr)("Show label"),uiMode:{type:"switch",key:"showLabel"},defaultParams:{showLabel:!0},handler(e,t){e.model.setProps({showLabel:t.showLabel})}},label:{title:(0,import_flow_engine.tExpr)("Label"),uiSchema:e=>({label:{"x-component":"Input","x-decorator":"FormItem","x-reactions":t=>{var o;const r=e.model,i=(o=r.collectionField)==null?void 0:o.title;t.decoratorProps=A(x({},t.decoratorProps),{extra:r.context.t("Original field title: ")+i})}}}),defaultParams:e=>{var t;return{label:(t=e.collectionField)==null?void 0:t.title}},handler(e,t){var o;const r={ns:"lm-flow-engine",compareWith:(o=e.collectionField)==null?void 0:o.title};e.model.setProps({label:e.t(t.label,r)})}},aclCheck:{use:"aclCheck",handler(e,t){return L(this,null,function*(){var o,r,i,n,l,a,c,u,d,m,p,h,g,f,_;if(!e.collectionField||!e.blockModel)return;const v=e.blockModel.context.actionName,y=yield e.aclCheck({dataSourceKey:(o=e.dataSource)==null?void 0:o.key,resourceName:(r=e.collectionField)==null?void 0:r.collectionName,fields:[(i=e.collectionField)==null?void 0:i.name],actionName:v});if(v==="update"){const C=yield e.aclCheck({dataSourceKey:(n=e.dataSource)==null?void 0:n.key,resourceName:(l=e.collectionField)==null?void 0:l.collectionName,fields:[e.collectionField.name],actionName:"view"});e.prefixFieldPath&&e.item&&((yield e.aclCheck({dataSourceKey:(a=e.dataSource)==null?void 0:a.key,resourceName:(c=e.collectionField)==null?void 0:c.collectionName,fields:[e.collectionField.name],actionName:"create"}))||e.model.setProps({aclCreateDisabled:!0}));const b=(d=(u=e.item)==null?void 0:u.__is_new__)!=null?d:!1;!C&&!b&&(e.model.hidden=!0,e.model.forbidden={actionName:"view"},e.exitAll()),y||e.model.setProps({aclDisabled:!0})}else if(v==="create"){const C=yield e.aclCheck({dataSourceKey:(m=e.dataSource)==null?void 0:m.key,resourceName:(p=e.collectionField)==null?void 0:p.collectionName,actionName:"update"}),b=yield e.aclCheck({dataSourceKey:(h=e.dataSource)==null?void 0:h.key,resourceName:(g=e.collectionField)==null?void 0:g.collectionName,fields:[e.collectionField.name],actionName:"update"}),F=(_=(f=e.item)==null?void 0:f.__is_stored__)!=null?_:!1;!y&&!F&&(e.model.hidden=!0,e.model.forbidden={actionName:v},e.exitAll()),(!C||!b)&&e.model.setProps({aclDisabled:!0})}})}},init:{handler(e){return L(this,null,function*(){const t=e.model.fieldPath,o=t.includes(".")?t.split("."):t;e.model.setProps({name:o})})}},tooltip:{title:(0,import_flow_engine.tExpr)("Tooltip"),uiSchema:{tooltip:{"x-component":"Input.TextArea","x-decorator":"FormItem"}},handler(e,t){e.model.setProps({tooltip:e.t(t.tooltip,{ns:"lm-flow-engine"})})}},description:{title:(0,import_flow_engine.tExpr)("Description"),uiSchema:{description:{"x-component":"Input.TextArea","x-decorator":"FormItem","x-component-props":{autoSize:!0}}},handler(e,t){e.model.setProps({extra:e.t(t.description,{ns:"lm-flow-engine"})})}},initialValue:{title:(0,import_flow_engine.tExpr)("Default value"),disabledInSettings:!0,disabledReasonInSettings:e=>`${e.t("This setting has been moved to")}: ${e.t("Form block settings")} > ${e.t("Field values")}`,uiSchema:e=>{var t,o,r,i;if(e.model.parent.parent instanceof EditFormModel||(o=(t=e.model.subModels)==null?void 0:t.field)!=null&&o.updateAssociation)return;const n=(r=e.model.collectionField)==null?void 0:r.interface;if(!((i=interfacesOfUnsupportedDefaultValue==null?void 0:interfacesOfUnsupportedDefaultValue.includes)!=null&&i.call(interfacesOfUnsupportedDefaultValue,n)))return{defaultValue:{"x-component":"DefaultValue","x-decorator":"FormItem"}}},defaultParams:e=>{const t=e.model.collectionField;if(t.interface==="nanoid"&&t.options.autoFill!==!1){const{size:o,customAlphabet:r}=t.options||{size:21};return{defaultValue:(0,import_nanoid.customAlphabet)(r,o)()}}return{defaultValue:t.defaultValue}},handler(e,t){var o,r;const i=(o=e.model.collectionField)==null?void 0:o.interface;if((r=interfacesOfUnsupportedDefaultValue==null?void 0:interfacesOfUnsupportedDefaultValue.includes)!=null&&r.call(interfacesOfUnsupportedDefaultValue,i))return;const n=e.model.collectionField,l=coerceForToOneField(n,t.defaultValue);e.model.setProps({initialValue:l})}},validation:{title:(0,import_flow_engine.tExpr)("Validation"),use:"validation"},required:{title:(0,import_flow_engine.tExpr)("Required"),use:"required"},model:{use:"fieldComponent",title:(0,import_flow_engine.tExpr)("Field component")},pattern:{use:"pattern"},titleField:{use:"titleField",hideInSettings(e){return!e.collectionField||!e.collectionField.isAssociationField()||!(e.collectionField.isAssociationField()&&e.model.getProps().pattern==="readPretty")},defaultParams:e=>({titleField:e.model.props.titleField||e.model.context.collectionField.targetCollectionTitleFieldName}),beforeParamsSave:(e,t,o)=>L(void 0,null,function*(){if(!(e.collectionField.isAssociationField()&&e.model.getProps().pattern==="readPretty"))return null;const r=t.titleField||t.label;if(r!==o.titleField){const i=e.collectionField.targetCollection,n=i.getField(r),l=DetailsItemModel.getDefaultBindingByField(e,n);if(l.modelName!==e.model.subModels.field.use){const a=e.model.subModels.field.uid;yield e.engine.destroyModel(a),yield e.model.setSubModel("field",{use:l.modelName,stepParams:{fieldSettings:{init:{dataSourceKey:e.model.collectionField.dataSourceKey,collectionName:i.name,fieldPath:r}}}}).save()}e.model.setProps(e.collectionField.targetCollection.getField(r).getComponentProps())}}),handler(e,t){return L(this,null,function*(){e.model.props.pattern==="readPretty"?e.model.setProps({titleField:t==null?void 0:t.label}):e.model.setProps({titleField:t.titleField})})}}}});FormItemModel.registerFlow({key:"paginationChange",on:"paginationChange",steps:{aclCheckRefresh:{use:"aclCheckRefresh",defaultParams:{strategy:"formItem"}}}});class AssignFormItemModel extends FormItemModel{constructor(t){super(t),R(this,"assignValue"),(0,import_reactive.define)(this,{assignValue:import_reactive.observable})}onInit(t){var o,r,i,n,l,a,c;const u=(o=this.getStepParams("fieldSettings","assignValue"))==null?void 0:o.value;typeof u<"u"&&(this.assignValue=u),this.context.defineProperty("collectionField",{get:()=>{var f,_;const v=this.getStepParams("fieldSettings","init")||{},y=`${v==null?void 0:v.dataSourceKey}.${v==null?void 0:v.collectionName}.${v==null?void 0:v.fieldPath}`,C=(f=this.context)==null?void 0:f.dataSourceManager;return(_=C==null?void 0:C.getCollectionField)==null?void 0:_.call(C,y)}});const d=this.context,m=d==null?void 0:d.collection,p=this.fieldInit;if(!((r=this.subModels)!=null&&r.field)&&m!=null&&m.getFields){const f=(m.getFields()||[]).find(y=>(y==null?void 0:y.name)===(p==null?void 0:p.fieldPath));(i=m==null?void 0:m.getField)==null||i.call(m,p==null?void 0:p.fieldPath);const _=import_flow_engine.EditableItemModel.getDefaultBindingByField(d,f);if(!_)return;const v=_.modelName;(l=(n=d==null?void 0:d.engine)==null?void 0:n.createModel)==null||l.call(n,{use:v,stepParams:{fieldSettings:{init:p}},parentId:this.uid,subKey:"field"})}const h=(a=this.context)==null?void 0:a.collection,g=this.fieldPath;if(g){const f=(c=h==null?void 0:h.getField)==null?void 0:c.call(h,g),_=(f==null?void 0:f.title)||g,v=g.includes(".")?g.split("."):[g];this.setProps({label:_,name:v})}}get fieldInit(){return this.getStepParams("fieldSettings","init")||{}}get fieldPath(){var t;return(t=this.fieldInit)==null?void 0:t.fieldPath}getAssignedEntry(){const t=this.fieldPath;return t?[t,this.assignValue]:null}render(){var t;const o=this.context,r=o.collection,i=this.fieldInit,n=((t=this.props)==null?void 0:t.name)||(this.fieldPath?[this.fieldPath]:void 0),l=this.fieldPath;return(0,import_jsx_runtime.jsx)(()=>{var a,c,u,d,m,p,h;const[g,f]=import_react2.default.useState(null);import_react2.default.useEffect(()=>{var P,j,I,T,N,D,w,k,B,E,M,O,V,$,q,z,U,K,W,Y,Q;if(!l)return;const H=(((P=r==null?void 0:r.getFields)==null?void 0:P.call(r))||[]).find(ae=>(ae==null?void 0:ae.name)===l);r.getField(l);const J=import_flow_engine.EditableItemModel.getDefaultBindingByField(o,H);if(!J)return;const Z=J.modelName,re=(I=(j=o==null?void 0:o.engine)==null?void 0:j.createModel)==null?void 0:I.call(j,{use:"VariableFieldFormModel",subModels:{fields:[{use:Z,stepParams:{fieldSettings:{init:i}}}]}});if(!re)return;(N=(T=re.context)==null?void 0:T.defineProperty)==null||N.call(T,"collection",{value:r});const oe=o==null?void 0:o.dataSource;oe&&((w=(D=re.context)==null?void 0:D.defineProperty)==null||w.call(D,"dataSource",{value:oe}));const G=(k=r==null?void 0:r.getField)==null?void 0:k.call(r,i==null?void 0:i.fieldPath);G&&((E=(B=re.context)==null?void 0:B.defineProperty)==null||E.call(B,"collectionField",{value:G}));const X=o==null?void 0:o.blockModel;X&&((O=(M=re.context)==null?void 0:M.defineProperty)==null||O.call(M,"blockModel",{value:X}));const ie=o.form;ie&&(($=(V=re.context)==null?void 0:V.defineProperty)==null||$.call(V,"form",{value:ie})),re.context&&Object.defineProperty(re.context,"resource",{configurable:!0,enumerable:!0,get:()=>X==null?void 0:X.resource});const ee=(z=(q=re==null?void 0:re.subModels)==null?void 0:q.fields)==null?void 0:z[0],ne=(U=r==null?void 0:r.getField)==null?void 0:U.call(r,i==null?void 0:i.fieldPath),le=ne==null?void 0:ne.type,me=ne==null?void 0:ne.interface,he=le==="belongsToMany"||le==="hasMany"||le==="belongsToArray"||me==="m2m"||me==="o2m"||me==="mbm";if((K=ee==null?void 0:ee.setProps)==null||K.call(ee,{disabled:!1,readPretty:!1,pattern:"editable",updateAssociation:!1,multiple:he}),(W=ee==null?void 0:ee.dispatchEvent)==null||W.call(ee,"beforeRender",void 0,{sequential:!0,useCache:!0}),ensureOptionsFromUiSchemaEnumIfAbsent(ee,ne),!((Y=ee==null?void 0:ee.props)!=null&&Y.fieldNames)&&ne!=null&&ne.targetCollection){const ae=ne.targetCollection,xe=(ne==null?void 0:ne.targetKey)||(ae==null?void 0:ae.filterTargetKey)||"id";(Q=ee==null?void 0:ee.setProps)==null||Q.call(ee,{fieldNames:{label:ae==null?void 0:ae.titleField,value:xe}})}return f(re),()=>{var ae,xe,ge,ve;(ge=(xe=(ae=re==null?void 0:re.subModels)==null?void 0:ae.fields)==null?void 0:xe.forEach)==null||ge.call(xe,de=>{var ce;return(ce=de==null?void 0:de.remove)==null?void 0:ce.call(de)}),(ve=re==null?void 0:re.remove)==null||ve.call(re)}},[]);const _=P=>(import_react2.default.useEffect(()=>{var j,I,T,N;if(!g)return;(j=g.setProps)==null||j.call(g,x({},P));const D=(T=(I=g==null?void 0:g.subModels)==null?void 0:I.fields)==null?void 0:T[0];D&&((N=D.setProps)==null||N.call(D,{value:P==null?void 0:P.value,onChange:(...w)=>{var k;const B=w&&w.length?w[0]:void 0;(k=P==null?void 0:P.onChange)==null||k.call(P,B)}}))},[P]),g?(0,import_jsx_runtime.jsx)("div",{style:{width:"100%"},children:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,{model:g,showFlowSettings:!1})}):null),v=()=>(0,import_jsx_runtime.jsx)(import_antd.Input,{placeholder:"<Null>",readOnly:!0,style:{width:"100%"}}),y=P=>(0,import_jsx_runtime.jsx)(RunJSValueEditor,{t:this.context.t,value:P==null?void 0:P.value,onChange:P==null?void 0:P.onChange,containerStyle:{width:"100%"}}),C={renderInputComponent:P=>{var j;const I=(j=P==null?void 0:P.paths)==null?void 0:j[0];if(I==="constant")return _;if(I==="null")return v;if(I==="runjs")return y},resolveValueFromPath:P=>{var j;const I=(j=P==null?void 0:P.paths)==null?void 0:j[0];if(I==="constant")return"";if(I==="null")return null;if(I==="runjs")return{code:"",version:"v2"}},resolvePathFromValue:P=>P===null?["null"]:(0,import_flow_engine.isRunJSValue)(P)?["runjs"]:(0,import_flow_engine.isVariableExpression)(P)?(0,import_flow_engine.parseValueToPath)(P):["constant"]},b=()=>L(this,null,function*(){var P;const j=(P=this.context)==null?void 0:P.getPropertyMetaTree,I=typeof j=="function"?yield j():[];return[{title:(0,import_flow_engine.tExpr)("Constant"),name:"constant",type:"string",paths:["constant"],render:_},{title:(0,import_flow_engine.tExpr)("Null"),name:"null",type:"object",paths:["null"],render:v},{title:(0,import_flow_engine.tExpr)("RunJS"),name:"runjs",type:"object",paths:["runjs"],render:y},...I]});let F=(u=(c=(a=this.props)==null?void 0:a.label)!=null?c:this.fieldPath)!=null?u:"";const S=(d=r==null?void 0:r.getField)==null?void 0:d.call(r,this.fieldPath);return F=(h=(p=(m=this.props)==null?void 0:m.label)!=null?p:S==null?void 0:S.title)!=null?h:F,(0,import_jsx_runtime.jsx)(import_flow_engine.FormItem,A(x({},this.props),{label:F,name:n,initialValue:this.assignValue,valuePropName:"__assign_value__",trigger:"__assign_trigger__",validateTrigger:"__assign_trigger__",children:import_react2.default.createElement(P=>{const j=P==null?void 0:P.__assign_value__,I=typeof j>"u"?this.assignValue:j;return(0,import_jsx_runtime.jsx)(import_flow_engine.VariableInput,{value:I,onChange:T=>{var N;this.assignValue=T,(N=P==null?void 0:P.__assign_trigger__)==null||N.call(P,T)},metaTree:b,converters:C,clearValue:""})})}))},{})}}AssignFormItemModel.define({label:(0,import_flow_engine.tExpr)("Assign field")});AssignFormItemModel.registerFlow({key:"editItemSettings",sort:300,title:(0,import_flow_engine.tExpr)("Form item settings"),steps:{showLabel:{title:(0,import_flow_engine.tExpr)("Show label"),uiMode:{type:"switch",key:"showLabel"},defaultParams:{showLabel:!0},handler(e,t){e.model.setProps({showLabel:t.showLabel})}},label:{title:(0,import_flow_engine.tExpr)("Label"),uiSchema:e=>({label:{"x-component":"Input","x-decorator":"FormItem","x-reactions":t=>{var o;const r=e.model,i=(o=r.collectionField)==null?void 0:o.title;t.decoratorProps=A(x({},t.decoratorProps),{extra:r.context.t("Original field title: ")+i})}}}),defaultParams:e=>({label:e.model.collectionField.title}),handler(e,t){var o;t.label&&t.label===((o=e.model.collectionField)==null?void 0:o.title)?e.model.setProps({label:t.label}):e.model.setProps({label:e.t(t.label,{ns:"lm-flow-engine"})})}},init:{handler(e){return L(this,null,function*(){const t=e.model.collectionField;t&&e.model.setProps(t.getComponentProps());const o=e.model.fieldPath,r=o.includes(".")?o.split("."):o;e.model.setProps({name:r})})}},tooltip:{title:(0,import_flow_engine.tExpr)("Tooltip"),uiSchema:{tooltip:{"x-component":"Input.TextArea","x-decorator":"FormItem"}},handler(e,t){e.model.setProps({tooltip:e.t(t.tooltip,{ns:"lm-flow-engine"})})}},description:{title:(0,import_flow_engine.tExpr)("Description"),uiSchema:{description:{"x-component":"Input.TextArea","x-decorator":"FormItem"}},handler(e,t){e.model.setProps({extra:e.t(t.description,{ns:"lm-flow-engine"})})}},validation:{title:(0,import_flow_engine.tExpr)("Validation"),use:"validation"},required:{title:(0,import_flow_engine.tExpr)("Required"),use:"required"}}});class DetailsAssociationFieldGroupModel extends AssociationFieldGroupModel{}R(DetailsAssociationFieldGroupModel,"itemModelName","DetailsItemModel");DetailsAssociationFieldGroupModel.define({label:'{{t("Display association fields")}}'});const getOuterHeight=e=>{if(!e)return 0;const t=e.getBoundingClientRect(),o=window.getComputedStyle(e),r=parseFloat(o.marginTop)||0,i=parseFloat(o.marginBottom)||0;return t.height+r+i},useDetailsGridHeight=({heightMode:e,containerRef:t,actionsRef:o,paginationRef:r,deps:i=[]})=>{const[n,l]=(0,import_react2.useState)(),a=(0,import_react2.useCallback)(()=>{if(e!=="specifyValue"&&e!=="fullHeight"){l(h=>h===void 0?h:void 0);return}const c=t.current;if(!c)return;const u=c.getBoundingClientRect().height;if(!u)return;const d=getOuterHeight(o.current),m=getOuterHeight(r.current),p=Math.max(0,Math.floor(u-d-m));l(h=>h===p?h:p)},[e,t,o,r]);return(0,import_react2.useLayoutEffect)(()=>{a()},[a,...i]),(0,import_react2.useEffect)(()=>{if(!t.current||typeof ResizeObserver>"u")return;const c=t.current,u=o.current,d=r.current,m=new ResizeObserver(()=>a());return m.observe(c),u&&m.observe(u),d&&m.observe(d),()=>m.disconnect()},[a,t,o,r,...i]),n};class DetailsBlockModel extends CollectionBlockModel{constructor(){super(...arguments),R(this,"hadSingleRecordData",!1),R(this,"hasMultiRefreshDispatched",!1),R(this,"_defaultCustomModelClasses",{RecordActionGroupModel:"RecordActionGroupModel",DetailsItemModel:"DetailsItemModel",DetailsAssociationFieldGroupModel:"DetailsAssociationFieldGroupModel",DetailsCustomItemModel:"DetailsCustomItemModel"}),R(this,"customModelClasses",{}),R(this,"handlePageChange",t=>L(this,null,function*(){if(this.resource instanceof import_flow_engine.MultiRecordResource){const o=this.resource;o.setPage(t),o.loading=!0,yield this.refresh()}}))}createResource(t,o){var r,i;if(((r=this.association)==null?void 0:r.type)==="hasOne"||((i=this.association)==null?void 0:i.type)==="belongsTo"){const l=this.context.createResource(import_flow_engine.SingleRecordResource);return l.isNewRecord=!1,l}if(Object.keys(o).includes("filterByTk")){const l=this.context.createResource(import_flow_engine.SingleRecordResource);return l.isNewRecord=!1,l}const n=this.context.createResource(import_flow_engine.MultiRecordResource);return n.setPageSize(1),n}onInit(t){var o,r,i;super.onInit(t),this.hadSingleRecordData=(i=(r=(o=this.resource)==null?void 0:o.hasData)==null?void 0:r.call(o))!=null?i:!1,this.hasMultiRefreshDispatched=!1;const n=(0,import_flow_engine.createCurrentRecordMetaFactory)(this.context,()=>this.collection);this.context.defineProperty("record",{get:()=>this.getCurrentRecord(),cache:!1,resolveOnServer:(0,import_flow_engine.createRecordResolveOnServerWithLocal)(()=>this.collection,()=>this.getCurrentRecord()),meta:n}),this.resource.on("refresh",()=>{var l,a,c;if(this.isMultiRecordResource()){this.hasMultiRefreshDispatched=!0,dispatchEventDeep(this,"paginationChange");return}const u=this.hadSingleRecordData;this.hadSingleRecordData=(c=(a=(l=this.resource)==null?void 0:l.hasData)==null?void 0:a.call(l))!=null?c:!1,u&&dispatchEventDeep(this,"paginationChange")})}isMultiRecordResource(){return this.resource instanceof import_flow_engine.MultiRecordResource}hasDispatchedMultiRefresh(){return this.hasMultiRefreshDispatched}getCurrentRecord(){const t=this.resource.getData();return Array.isArray(t)?t[0]:t}hasAvailableData(){return this.resource.hasData()}refresh(){return L(this,null,function*(){yield this.resource.refresh()})}renderPagination(){var t,o;if(!this.resource.loading&&!this.hasAvailableData())return(0,import_jsx_runtime.jsx)("div",{style:{textAlign:"center",color:(o=(t=this.context)==null?void 0:t.themeToken)==null?void 0:o.colorTextDescription},children:this.translate("No available data currently")});const r=this.resource;return!this.isMultiRecordResource()||!r.getPage()||this.resource.getMeta("count")<=1?null:(0,import_jsx_runtime.jsx)("div",{style:{textAlign:"center"},children:(0,import_jsx_runtime.jsx)(import_antd.Pagination,{simple:!0,pageSize:1,showSizeChanger:!1,defaultCurrent:r.getPage(),total:r.getTotalPage(),onChange:this.handlePageChange,style:{display:"inline-block"}})})}renderConfigureActions(){return(0,import_jsx_runtime.jsx)(import_flow_engine.AddSubModelButton,{model:this,subModelKey:"actions",subModelBaseClass:this.getModelClassName("RecordActionGroupModel"),afterSubModelInit:t=>L(this,null,function*(){t.setStepParams("buttonSettings","general",{type:"default"})}),children:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowSettingsButton,{icon:(0,import_jsx_runtime.jsx)(import_icons.SettingOutlined,{}),children:this.translate("Actions")})},"details-actions-add")}renderComponent(){const{colon:t,labelAlign:o,labelWidth:r,labelWrap:i,layout:n}=this.props,l=!!this.context.flowSettingsEnabled,a=!l&&!this.hasAvailableData(),{heightMode:c,height:u}=this.decoratorProps;return(0,import_jsx_runtime.jsx)(DetailsBlockContent,{model:this,gridModel:this.subModels.grid,isConfigMode:l,heightMode:c,height:u,layoutProps:{colon:t,labelAlign:o,labelWidth:r,labelWrap:i,layout:n},actions:(0,import_jsx_runtime.jsx)(import_flow_engine.DndProvider,{children:(0,import_jsx_runtime.jsx)("div",{style:a?{pointerEvents:"none",opacity:.45}:void 0,children:(0,import_jsx_runtime.jsxs)(import_antd.Space,{wrap:!0,children:[this.mapSubModels("actions",d=>{if(!(d.hidden&&!l))return(0,import_jsx_runtime.jsx)(import_flow_engine.Droppable,{model:d,children:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,{model:d,showFlowSettings:{showBackground:!1,showBorder:!1,toolbarPosition:"above"},extraToolbarItems:[{key:"drag-handler",component:import_flow_engine.DragHandler,sort:1}]})},d.uid)}),this.renderConfigureActions()]})})})})}}R(DetailsBlockModel,"scene",BlockSceneEnum.oam);const DetailsBlockContent=({model:e,gridModel:t,isConfigMode:o,heightMode:r,height:i,layoutProps:n,actions:l})=>{const a=(0,import_react2.useRef)(null),c=(0,import_react2.useRef)(null),u=(0,import_react2.useRef)(null),d=r==="specifyValue"||r==="fullHeight",m=useDetailsGridHeight({heightMode:r,containerRef:a,actionsRef:c,paginationRef:u,deps:[i]});return(0,import_react2.useEffect)(()=>{var p,h;if(!t)return;const g=d?m:void 0;((p=t.props)==null?void 0:p.height)===g&&((h=t.props)==null?void 0:h.heightMode)===r||t.setProps({height:g,heightMode:r})},[t,m,d,r]),(0,import_jsx_runtime.jsx)(FormComponent,{model:e,layoutProps:n,style:d?{display:"flex",flexDirection:"column",minHeight:0,height:"100%"}:void 0,children:(0,import_jsx_runtime.jsxs)("div",{ref:a,style:d?{display:"flex",flexDirection:"column",minHeight:0,flex:1}:void 0,children:[(0,import_jsx_runtime.jsx)("div",{ref:c,style:{textAlign:"right",lineHeight:"0px",paddingBottom:o&&e.context.themeToken.padding},children:l}),(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,{model:t,showFlowSettings:!1},`${(t==null?void 0:t.uid)||"details-grid"}:${o?"design":"runtime"}`),(0,import_jsx_runtime.jsx)("div",{ref:u,children:e.renderPagination()})]})})};DetailsBlockModel.registerFlow({key:"detailsSettings",title:(0,import_flow_engine.tExpr)("Details settings"),sort:150,steps:{refresh:{handler(e){return L(this,null,function*(){if(!e.resource)throw new Error("Resource is not initialized");yield e.model.applySubModelsBeforeRenderFlows("grid")})}},layout:{use:"layout",title:(0,import_flow_engine.tExpr)("Layout")},dataScope:{use:"dataScope"},defaultSorting:{use:"sortingRule",title:(0,import_flow_engine.tExpr)("Default sorting")},linkageRules:{use:"detailsFieldLinkageRules"}}});DetailsBlockModel.registerFlow({key:"paginationChange",on:"paginationChange",steps:{blockLinkageRulesRefresh:{use:"linkageRulesRefresh",defaultParams:{actionName:"blockLinkageRules",flowKey:"cardSettings",stepKey:"linkageRules"}},fieldslinkageRulesRefresh:{use:"linkageRulesRefresh",defaultParams:{actionName:"detailsFieldLinkageRules",flowKey:"detailsSettings",stepKey:"linkageRules"}}}});DetailsBlockModel.registerFlow({key:"initialPaginationChangeRefresh",sort:10001,steps:{refreshPaginationRelatedStates:{handler(e){return L(this,null,function*(){var t;if(e.model.hidden||!e.model.isMultiRecordResource()||e.model.hasDispatchedMultiRefresh())return;const o=e.model.resource;if(!o)return;const r=((t=o.dataLoadingMode)!=null?t:o.loadingMode)==="manual",i=typeof o.hasActiveFilters=="function"?o.hasActiveFilters():!1;!r||i||(yield dispatchEventDeep(e.model,"paginationChange"))})}}}});DetailsBlockModel.define({label:(0,import_flow_engine.tExpr)("Details"),searchable:!0,searchPlaceholder:(0,import_flow_engine.tExpr)("Search"),createModelOptions:{use:"DetailsBlockModel",subModels:{grid:{use:"DetailsGridModel"}}},sort:350});class DetailsCustomItemModel extends import_flow_engine.FlowModel{static defineChildren(t){const o=t.engine.filterModelClassByParent("CommonItemModel"),r=t.engine.filterModelClassByParent("DetailsCustomItemModel"),i=n=>Array.from(n.entries()).map(([l,a])=>{var c,u,d,m,p,h;const g=typeof a.defineChildren=="function"||!!((c=a.meta)!=null&&c.children),f={key:l,label:t.t(a.meta.label),sort:(u=a.meta.sort)!=null?u:999,searchable:!!((d=a.meta)!=null&&d.searchable),searchPlaceholder:(m=a.meta)==null?void 0:m.searchPlaceholder,hide:(p=a.meta)==null?void 0:p.hide};return g?f.children=_=>{var v;return typeof a.defineChildren=="function"?a.defineChildren(_):((v=a.meta)==null?void 0:v.children)||[]}:f.createModelOptions=((h=a.meta)==null?void 0:h.createModelOptions)||{use:l},f});return import_lodash.default.sortBy([...i(o),...i(r)],"sort")}}R(DetailsCustomItemModel,"renderMode",import_flow_engine.ModelRenderMode.RenderFunction);DetailsCustomItemModel.define({hide:!0,label:(0,import_flow_engine.tExpr)("Others")});class DetailsGridModel extends GridModel{constructor(){super(...arguments),R(this,"itemFallback",(0,import_jsx_runtime.jsx)(import_antd.Skeleton.Input,{block:!0,size:"small",style:{marginBottom:"0.5rem"}})),R(this,"itemSettingsMenuLevel",2),R(this,"itemFlowSettings",{showBackground:!0,style:{top:-6,left:-6,right:-6,bottom:-6}}),R(this,"dragOverlayConfig",{columnInsert:{before:{offsetTop:-12,height:24},after:{offsetTop:7,height:24}},columnEdge:{left:{offsetLeft:-5,width:24},right:{offsetLeft:8,width:24}},rowGap:{above:{offsetTop:0,height:24},below:{offsetTop:-14,height:24}}})}renderAddSubModelButton(){return this.context.flowSettingsEnabled?(0,import_jsx_runtime.jsx)(import_flow_engine.AddSubModelButton,{model:this,subModelKey:"items",subModelBaseClasses:[this.context.getModelClassName("DetailsItemModel"),this.context.getModelClassName("DetailsAssociationFieldGroupModel"),this.context.getModelClassName("DetailsCustomItemModel")].filter(Boolean),keepDropdownOpen:!0,children:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowSettingsButton,{icon:(0,import_jsx_runtime.jsx)(import_icons.SettingOutlined,{}),children:this.translate("Fields")})}):null}render(){var t,o;const r=(t=this.props)==null?void 0:t.height,i=(o=this.props)==null?void 0:o.heightMode,n=this.context.themeToken,l=super.render();return i==="defaultHeight"?l:(0,import_jsx_runtime.jsx)("div",{style:{height:r,overflowY:"auto",marginLeft:`-${n.marginLG}px`,marginRight:`-${n.marginLG}px`,paddingLeft:`${n.marginLG}px`,paddingRight:`${n.marginLG}px`},children:l})}}DetailsGridModel.registerFlow({key:"detailFieldGridSettings",steps:{grid:{handler(e,t){e.model.setProps("rowGap",0),e.model.setProps("colGap",16)}}}});function transformChildrenToJS(e,t){const{fieldUseModel:o,refreshTargets:r}=t,i=n=>Array.isArray(n)?n.map(l=>{const a=x({},l);if(a.children)if(typeof a.children=="function"){const c=a.children;a.children=u=>L(this,null,function*(){const d=yield c(u);return i(d)})}else Array.isArray(a.children)&&(a.children=i(a.children));if(a.createModelOptions){const c=a.createModelOptions;a.createModelOptions=(u,d)=>L(this,null,function*(){const m=yield typeof c=="function"?c(u,d):c;return m.subModels=m.subModels||{},m.subModels.field=A(x({},m.subModels.field||{}),{use:o}),m}),a.refreshTargets=a.refreshTargets||r}return a}):[];return i(e)}function buildAssociationJSGroup(e,t,o){var r,i,n,l;const{fieldUseModel:a,refreshTargets:c}=o,u=(r=o.key)!=null?r:"js-association-fields",d=(i=o.label)!=null?i:(0,import_flow_engine.tExpr)("Display association fields"),m=(n=o.searchable)!=null?n:!0,p=(l=o.searchPlaceholder)!=null?l:(0,import_flow_engine.tExpr)("Search fields");return{key:u,type:"group",label:d,searchable:m,searchPlaceholder:p,children:h=>L(this,null,function*(){const g=yield t(h);return transformChildrenToJS(g,{fieldUseModel:a,refreshTargets:c})})}}function buildJSFieldMenuChildren(e,t){return L(this,null,function*(){var o;const{useModel:r,fieldUseModel:i,refreshTargets:n,associationPathName:l,associationProvider:a}=t,c=(0,import_flow_engine.buildWrapperFieldChildren)(e,{useModel:r,fieldUseModel:i,associationPathName:l,refreshTargets:n});let u=[];const d=(o=c==null?void 0:c[0])==null?void 0:o.children;if(Array.isArray(d)&&(u=d),!a)return u;const m=yield a(e);if(!Array.isArray(m)||m.length===0)return u;const p=buildAssociationJSGroup(e,a,{fieldUseModel:i,refreshTargets:n});return[...u,p]})}class DetailsJSFieldItemModel extends DetailsCustomItemModel{static defineChildren(t){return buildJSFieldMenuChildren(t,{useModel:"DetailsItemModel",fieldUseModel:"JSFieldModel",refreshTargets:["DetailsItemModel"],associationProvider:o=>DetailsAssociationFieldGroupModel.defineChildren(o)})}}DetailsJSFieldItemModel.define({label:(0,import_flow_engine.tExpr)("JS field"),searchable:!0,searchPlaceholder:(0,import_flow_engine.tExpr)("Search fields"),sort:110});class FilterFormFieldModel extends FieldModel{}class AssociationFieldModel extends FieldModel{constructor(){super(...arguments),R(this,"operator","$eq"),R(this,"updateAssociation",!0)}}AssociationFieldModel.registerFlow({key:"AssociationFieldInit",sort:800,steps:{init:{handler(e,t){return L(this,null,function*(){var o,r;if(e.model.updateAssociation){const i=e.model.context.blockModel,n=(o=i==null?void 0:i.context)==null?void 0:o.resource,l=(r=e.model.parent)==null?void 0:r.fieldPath;if(!n||!l)return;n.addUpdateAssociationValues(l)}})}},allowCreateCheck:{handler(e){return L(this,null,function*(){var t;const o=yield e.aclCheck({dataSourceKey:e.collectionField.dataSourceKey,resourceName:(t=e.collectionField)==null?void 0:t.target,actionName:"create"});e.model.setProps({allowCreate:!!o})})}}}});const isPlaceholderFieldName=(e,t)=>e===t,unwrapAssociationOptionRecord=e=>{if(e&&typeof e=="object"){const t=e.data;return t&&typeof t=="object"?t:e}};function normalizeFilterTargetKey$1(e){if(typeof e=="string"&&e)return e;if(Array.isArray(e)&&e.length===1&&typeof e[0]=="string")return e[0]}function normalizeAssociationFieldNames(e,t){var o;const r=typeof((o=t==null?void 0:t.titleCollectionField)==null?void 0:o.name)=="string"?t.titleCollectionField.name:void 0,i=normalizeFilterTargetKey$1(t==null?void 0:t.filterTargetKey)||"id",n=typeof(e==null?void 0:e.value)=="string"&&e.value&&!isPlaceholderFieldName(e.value,"value")?e.value:void 0,l=typeof(e==null?void 0:e.label)=="string"&&e.label&&!isPlaceholderFieldName(e.label,"label")?e.label:void 0,a=n||i;return{label:l||r||a,value:a}}function buildOpenerUids(e,t={}){var o,r,i,n,l,a;const c=!!t.navigation,u=_=>{if(Array.isArray(_))return _.filter(v=>typeof v=="string"&&!!v)},d=u((r=(o=e.view)==null?void 0:o.inputArgs)==null?void 0:r.openerUids),m=u(t.openerUids),p=d||m||[];if(c)return(m||p).filter(Boolean);const h=(n=(i=e.view)==null?void 0:i.inputArgs)==null?void 0:n.viewUid,g=(a=(l=e.model.context)==null?void 0:l.inputArgs)==null?void 0:a.viewUid,f=typeof h=="string"&&h?h:typeof g=="string"&&g?g:e.model.uid;return[...p,f].filter(Boolean)}function toSafeDisplayLabel(e){var t;if(typeof e=="string"||typeof e=="number"||typeof e=="boolean")return e;if(Array.isArray(e)){const o=e.map(r=>{var i;if(typeof r=="string"||typeof r=="number"||typeof r=="boolean")return r;if(r&&typeof r=="object"){const n=(i=r.label)!=null?i:r.name;if(typeof n=="string"||typeof n=="number"||typeof n=="boolean")return n}}).filter(r=>r!==void 0);return o.length?o.map(String).join(", "):void 0}if(e&&typeof e=="object"){const o=(t=e.label)!=null?t:e.name;if(typeof o=="string"||typeof o=="number"||typeof o=="boolean")return o}}function LabelByField(e){var t,o,r,i,n,l,a;const{option:c,fieldNames:u}=e,d=(0,import_flow_engine.useFlowModel)(),m=unwrapAssociationOptionRecord(c),p=normalizeAssociationFieldNames(u,(t=d.context.collectionField)==null?void 0:t.targetCollection),h=d.subModels.field,g=(r=(o=toSafeDisplayLabel(m==null?void 0:m[p.label]))!=null?o:toSafeDisplayLabel(m==null?void 0:m.label))!=null?r:toSafeDisplayLabel(m==null?void 0:m[p.value]);if(!h)return(0,import_jsx_runtime.jsx)("span",{children:g??"N/A"});const f=String((n=(i=m==null?void 0:m[p.value])!=null?i:g)!=null?n:"association-option"),_=h.createFork({},f);_.context.defineProperty("record",{get:()=>m,cache:!1,meta:(0,import_flow_engine.createCurrentRecordMetaFactory)(_.context,()=>_.context.collection)});const v=(a=(l=d.context.collectionField.targetCollection)==null?void 0:l.getField)==null?void 0:a.call(l,p.label),y=v&&typeof v.getComponentProps=="function"?v.getComponentProps():{};_.setProps(x({value:g,clickToOpen:!1},y));const C=g!==null&&typeof g<"u"&&g!==""?_.render():"N/A";return(0,import_jsx_runtime.jsx)("span",{style:{pointerEvents:"none"},children:C})}function toSelectValue(e,t,o=!1,r="record",i=[]){if(!e)return o?[]:void 0;const{value:n}=t||{},l=c=>typeof c=="object"&&c!==null,a=c=>{if(l(c))return{label:(0,import_jsx_runtime.jsx)(LabelByField,{option:c,fieldNames:t}),value:c[n]}};if(r==="value"){const c=u=>{if(typeof u=="object"&&u!==null)return a(u);const d=i.find(m=>(m==null?void 0:m[n])===u);return d?a(d):{label:String(u),value:u}};return o?Array.isArray(e)?e.map(u=>c(u)).filter(Boolean):[]:Array.isArray(e)?c(e[0]):c(e)}if(o)return Array.isArray(e)?e.filter(l).map(a).filter(Boolean):[];if(Array.isArray(e)){const c=e[0];return l(c)?a(c):void 0}return l(e)?a(e):void 0}function resolveOptions(e,t,o){return e!=null&&e.length?e.map(r=>(0,import_lodash.omit)(r,"disabled","options","style")):o?Array.isArray(t)?t.filter(r=>typeof r=="object"&&r!==null):[]:t&&typeof t=="object"?[t]:[]}const labelClassName=import_css.css`
|
|
1847
|
+
`;function isGridDelegatedStep(e,t){var o;return!!((o=GRID_DELEGATED_STEP_KEYS[e])!=null&&o.has(t))}class FormBlockModel extends CollectionBlockModel{constructor(){super(...arguments),R(this,"formValueRuntime"),R(this,"userModifiedTopLevelFields",new Set),R(this,"_defaultCustomModelClasses",{FormActionGroupModel:"FormActionGroupModel",FormItemModel:"FormItemModel",FormAssociationFieldGroupModel:"FormAssociationFieldGroupModel"}),R(this,"customModelClasses",{})}get form(){return this.context.form}syncRuntimeAssignRules(t="unknown"){var o,r,i;const n=this.getStepParams("formModelSettings","assignRules"),l=(n==null?void 0:n.value)||[];(r=(o=this.formValueRuntime)==null?void 0:o.syncAssignRules)==null||r.call(o,Array.isArray(l)?l:[]);const a=(i=this.context)==null?void 0:i.resource,c=collectUpdateAssociationValuesFromAssignRules(l,this.collection);a!=null&&a.addUpdateAssociationValues&&c.length&&a.addUpdateAssociationValues(c)}renderConfigureActions(){return(0,import_jsx_runtime.jsx)(import_flow_engine.AddSubModelButton,{model:this,subModelKey:"actions",subModelBaseClass:this.getModelClassName("FormActionGroupModel"),children:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowSettingsButton,{icon:(0,import_jsx_runtime.jsx)(import_icons.SettingOutlined,{}),children:this.translate("Actions")})})}setFieldsValue(t){const o=this.context;if(typeof o.setFormValues=="function"){o.setFormValues(t,{source:"system"}).catch(r=>{console.warn("[FormBlockModel] Failed to set form values via ctx.setFormValues",r)});return}this.form.setFieldsValue(t)}setFieldValue(t,o){const r=this.context;if(typeof r.setFormValue=="function"){r.setFormValue(t,o,{source:"system"}).catch(i=>{console.warn("[FormBlockModel] Failed to set form value via ctx.setFormValue",i)});return}this.form.setFieldValue(t,o)}markUserModifiedFields(t){if(!(!t||typeof t!="object")&&!Array.isArray(t))for(const o of Object.keys(t))o&&this.userModifiedTopLevelFields.add(o)}getUserModifiedFields(){return this.userModifiedTopLevelFields}resetUserModifiedFields(){this.userModifiedTopLevelFields.clear()}onDispatchEventStart(t,o,r){return L(this,null,function*(){var i;if(t==="beforeRender"){const n=this.subModels.grid;n&&(yield n.dispatchEvent("beforeRender",r,{useCache:o==null?void 0:o.useCache}))}yield(i=$e(FormBlockModel.prototype,this,"onDispatchEventStart"))==null?void 0:i.call(this,t,o,r)})}getStepParams(t,o){const r=this.subModels.grid;if(t&&o&&isGridDelegatedStep(t,o)&&r){const i=r.getStepParams(t,o);return typeof i<"u"?i:super.getStepParams(t,o)}if(t&&!o&&GRID_DELEGATED_STEP_KEYS[t]&&r){const i=super.getStepParams(t)||{},n=r.getStepParams(t)||{};for(const l of GRID_DELEGATED_STEP_KEYS[t])Object.prototype.hasOwnProperty.call(n,l)&&typeof n[l]<"u"&&(i[l]=n[l]);return i}return super.getStepParams(t,o)}setStepParams(t,o,r){const i=this.subModels.grid,n=(l,a)=>{const c=GRID_DELEGATED_STEP_KEYS[l];if(!c||!i)return a;const u={};for(const[d,m]of Object.entries(a))c.has(d)?i.setStepParams(l,d,m):u[d]=m;return u};if(typeof t=="string"&&typeof o=="string"&&r!==void 0){isGridDelegatedStep(t,o)&&i?i.setStepParams(t,o,r):super.setStepParams(t,o,r);return}if(typeof t=="string"&&typeof o=="object"&&o!==null){const l=n(t,o);Object.keys(l).length>0&&super.setStepParams(t,l);return}if(typeof t=="object"&&t!==null){const l={};for(const[a,c]of Object.entries(t)){if(typeof c!="object"||c===null){l[a]=c;continue}const u=n(a,c);Object.keys(u).length>0&&(l[a]=u)}Object.keys(l).length>0&&super.setStepParams(l)}}saveStepParams(){return L(this,null,function*(){return yield saveStepParamsWithSubModelsIfNeeded(this,()=>L(this,null,function*(){const t=yield $e(FormBlockModel.prototype,this,"saveStepParams").call(this),o=this.subModels.grid;return yield o==null?void 0:o.saveStepParams(),t}))})}createFormValuesMetaFactory(){return(0,import_flow_engine.createAssociationAwareObjectMetaFactory)(()=>this.collection,this.translate("Current form"),()=>{var t,o;return((o=(t=this.form)==null?void 0:t.getFieldsValue)==null?void 0:o.call(t))||{}})}useHooksBeforeRender(){const[t]=import_antd.Form.useForm();this.context.defineProperty("form",{get:()=>t}),this.formValueRuntime||(this.formValueRuntime=new FormValueRuntime({model:this,getForm:()=>this.context.form}));const o=this.formValueRuntime;o.mount();const r=this.createFormValuesMetaFactory();this.context.defineProperty("formValues",{get:()=>o.formValues,cache:!1,meta:r,resolveOnServer:i=>{var n,l,a,c,u,d,m,p,h,g,f,_,v,y,C;if(!i)return!1;const b=(F=>{const S=String(F||"").match(/^([^.[]+)/);return S==null?void 0:S[1]})(i);if(!b||!((l=(n=this.collection)==null?void 0:n.getField)!=null&&l.call(n,b)))return!1;if((()=>{var F,S,P,j,I;const T=(P=(S=(F=this.subModels.grid)==null?void 0:F.subModels)==null?void 0:S.items)!=null?P:[],N=new Set;for(const D of T){const w=(I=(j=D==null?void 0:D.getStepParams)==null?void 0:j.call(D,"fieldSettings","init"))==null?void 0:I.fieldPath,k=w==null?void 0:w.toString().split(".")[0];k&&N.add(k)}return N})().has(b)){const F=(c=(a=this.form)==null?void 0:a.getFieldValue)==null?void 0:c.call(a,b);if(F==null||Array.isArray(F)&&F.length===0)return!1;const S=o.getFormValuesSnapshot();return S&&typeof S=="object"&&typeof(0,import_shared2.getValuesByPath)(S,i)<"u"?!1:(0,import_flow_engine.createAssociationSubpathResolver)(()=>this.collection,()=>o.getFormValuesSnapshot())(i)}try{const F=(C=(f=(m=(d=(u=this.context)==null?void 0:u.resource)==null?void 0:d.getMeta)==null?void 0:m.call(d,"currentFilterByTk"))!=null?f:(g=(h=(p=this.context)==null?void 0:p.resource)==null?void 0:h.getFilterByTk)==null?void 0:g.call(h))!=null?C:(y=(_=this.collection)==null?void 0:_.getFilterByTK)==null?void 0:y.call(_,(v=this.context)==null?void 0:v.record);if(typeof F>"u"||F===null)return!1}catch{return!1}return!0},serverOnlyWhenContextParams:!0}),this.context.defineMethod("getFormValues",function(){return o.getFormValuesSnapshot()}),this.context.defineMethod("setFormValues",function(i,n){return o.setFormValues(this,i,n)}),this.context.defineMethod("setFormValue",function(i,n,l){return o.setFormValues(this,[{path:i,value:n}],l)})}onInit(t){super.onInit(t),this.emitter.on("onSubModelAdded",o=>{o===this.subModels.grid&&queueMicrotask(()=>this.syncRuntimeAssignRules("onSubModelAdded:grid"))}),this.context.defineProperty("record",{get:()=>this.getCurrentRecord(),cache:!1}),this.context.resource.on("saved",()=>{this.dispatchEvent("formSubmitSuccess",{})})}onMount(){var t;super.onMount(),(t=this.formValueRuntime)==null||t.mount({sync:!0}),this.syncRuntimeAssignRules("onMount"),setTimeout(()=>{this.applyFlow("eventSettings")},100)}onUnmount(){var t;(t=this.formValueRuntime)==null||t.dispose(),this.formValueRuntime=void 0,super.onUnmount()}getCurrentRecord(){return{}}renderComponent(){throw new Error("renderComponent method must be implemented in subclasses of FormModel")}}function FormComponent(e){var t=e,{model:o,children:r,layoutProps:i={},initialValues:n}=t,l=te(t,["model","children","layoutProps","initialValues"]),a,c,u,d;const m=!!((a=o==null?void 0:o.context)!=null&&a.isMobileLayout&&(i==null?void 0:i.layout)==="horizontal"),p=[l.className,m?FLOW_KEEP_MOBILE_HORIZONTAL_CLASS:"",m?flowKeepMobileHorizontalClassName:""].filter(Boolean).join(" ");return(0,import_jsx_runtime.jsx)(import_antd.Form,A(x(A(x({form:o.form,initialValues:((d=(u=(c=o.context)==null?void 0:c.view)==null?void 0:u.inputArgs)==null?void 0:d.formData)||o.context.record||n},(0,import_lodash.omit)(i,"labelWidth")),{labelCol:{style:{width:i==null?void 0:i.labelWidth}},onFieldsChange:h=>{const g=o.formValueRuntime;g&&g.handleFormFieldsChange(h)},onValuesChange:(h,g)=>{var f;(f=o.markUserModifiedFields)==null||f.call(o,h);const _=o.formValueRuntime;if(_){_.handleFormValuesChange(h,g);return}o.dispatchEvent("formValuesChange",{changedValues:h,allValues:g},{debounce:!0}),o.emitter.emit("formValuesChange",{changedValues:h,allValues:g})}}),l),{className:p||void 0,children:r}))}const getOuterHeight$1=e=>{if(!e)return 0;const t=e.getBoundingClientRect(),o=window.getComputedStyle(e),r=parseFloat(o.marginTop)||0,i=parseFloat(o.marginBottom)||0;return t.height+r+i},normalizeCssSize=e=>{if(!(e==null||e===""))return typeof e=="number"?`${e}px`:/^\d+(\.\d+)?$/.test(e)?`${e}px`:e},useFormGridHeight=({heightMode:e,containerRef:t,actionsRef:o,footerRef:r,deps:i=[]})=>{const[n,l]=(0,import_react2.useState)(),a=(0,import_react2.useCallback)(()=>{if(e!=="specifyValue"&&e!=="fullHeight"){l(h=>h===void 0?h:void 0);return}const c=t.current;if(!c)return;const u=c.getBoundingClientRect().height;if(!u)return;const d=getOuterHeight$1((o==null?void 0:o.current)||null),m=getOuterHeight$1((r==null?void 0:r.current)||null),p=Math.max(0,Math.floor(u-d-m));l(h=>h===p?h:p)},[e,t,o,r]);return(0,import_react2.useLayoutEffect)(()=>{a()},[a,...i]),(0,import_react2.useEffect)(()=>{if(!t.current||typeof ResizeObserver>"u")return;const c=t.current,u=(o==null?void 0:o.current)||null,d=(r==null?void 0:r.current)||null,m=new ResizeObserver(()=>a());return m.observe(c),u&&m.observe(u),d&&m.observe(d),()=>m.disconnect()},[a,t,o,r,...i]),n},FormBlockContent=({model:e,gridModel:t,layoutProps:o,onFinish:r,grid:i,actions:n,footer:l,heightMode:a,height:c})=>{var u,d;const m=(0,import_react2.useRef)(null),p=(0,import_react2.useRef)(null),h=(0,import_react2.useRef)(null),g=a==="specifyValue"||a==="fullHeight",f={paddingTop:(d=(u=e.context)==null?void 0:u.themeToken)==null?void 0:d.padding},_=(o==null?void 0:o.layout)==="horizontal"?normalizeCssSize(o==null?void 0:o.labelWidth):void 0;_&&(f.marginInlineStart=_);const v=useFormGridHeight({heightMode:a,containerRef:m,actionsRef:n?p:void 0,footerRef:l?h:void 0,deps:[c]});return(0,import_react2.useEffect)(()=>{var y;if(!t)return;const C=g?v:void 0;((y=t.props)==null?void 0:y.height)!==C&&t.setProps({height:C})},[t,v,g]),(0,import_jsx_runtime.jsx)(FormComponent,{model:e,layoutProps:o,onFinish:r,style:g?{display:"flex",flexDirection:"column",minHeight:0,height:"100%"}:void 0,children:(0,import_jsx_runtime.jsxs)("div",{ref:m,style:g?{display:"flex",flexDirection:"column",minHeight:0,flex:1}:void 0,children:[i,n?(0,import_jsx_runtime.jsx)("div",{style:f,ref:p,children:n}):null,l?(0,import_jsx_runtime.jsx)("div",{ref:h,children:l}):null]})})};FormBlockModel.define({hide:!0});FormBlockModel.registerFlow({key:"formModelSettings",title:(0,import_flow_engine.tExpr)("Form settings"),steps:{layout:{use:"layout",title:(0,import_flow_engine.tExpr)("Layout")},assignRules:{use:"formAssignRules",title:(0,import_flow_engine.tExpr)("Field values"),beforeParamsSave(e){const t=clearLegacyDefaultValuesFromFormModel(e.model);Array.isArray(t)&&t.length&&markSaveStepParamsWithSubModels(e.model)},afterParamsSave(e){var t,o,r,i,n,l;const a=e.model.getStepParams("formModelSettings","assignRules"),c=(a==null?void 0:a.value)||[];(r=(o=(t=e.model)==null?void 0:t.formValueRuntime)==null?void 0:o.syncAssignRules)==null||r.call(o,Array.isArray(c)?c:[]);const u=(n=(i=e.model)==null?void 0:i.context)==null?void 0:n.resource,d=collectUpdateAssociationValuesFromAssignRules(c,(l=e.model)==null?void 0:l.collection);u!=null&&u.addUpdateAssociationValues&&d.length&&u.addUpdateAssociationValues(d)}}}});FormBlockModel.registerFlow({key:"eventSettings",title:(0,import_flow_engine.tExpr)("Event settings"),on:"formValuesChange",steps:{linkageRules:{use:"fieldLinkageRules",afterParamsSave(e){var t;e.model.applyFlow("eventSettings",{changedValues:{},allValues:(t=e.form)==null?void 0:t.getFieldsValue(!0)})}}}});FormBlockModel.registerEvents({formValuesChange:{title:(0,import_flow_engine.tExpr)("Form values change"),name:"formValuesChange",uiSchema:{condition:{type:"object",title:(0,import_flow_engine.tExpr)("Trigger condition"),"x-decorator":"FormItem","x-component":ConditionBuilder}},handler:commonConditionHandler}});class FormModel extends FormBlockModel{}FormModel.define({hide:!0});class AssignFormModel extends FormBlockModel{useHooksBeforeRender(){const[t]=import_antd.Form.useForm();this.context.defineProperty("form",{get:()=>t})}onInit(t){super.onInit(t);const o=(0,import_flow_engine.createCurrentRecordMetaFactory)(this.context,()=>this.collection);this.context.defineProperty("record",{get:()=>{var r;return(r=this.getCurrentRecord)==null?void 0:r.call(this)},cache:!1,resolveOnServer:(0,import_flow_engine.createRecordResolveOnServerWithLocal)(()=>this.collection,()=>{var r;return(r=this.getCurrentRecord)==null?void 0:r.call(this)}),meta:o}),this.context.defineProperty("filterManager",{once:!0,get:()=>new FilterManager(this,t==null?void 0:t.filterManager)}),this.isManualRefresh=!0}createResource(t,o){const r=this.context.createResource(import_flow_engine.SingleRecordResource);return r.isNewRecord=!0,r}renderComponent(){var t;const{colon:o,labelAlign:r,labelWidth:i,labelWrap:n,layout:l}=this.props;return(0,import_jsx_runtime.jsx)(FormComponent,{model:this,layoutProps:{colon:o,labelAlign:r,labelWidth:i,labelWrap:n,layout:l},children:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,{model:(t=this.subModels)==null?void 0:t.grid,showFlowSettings:!1})})}setInitialAssignedValues(t){var o;const r=(o=this.subModels)==null?void 0:o.grid;Object.entries(t||{}).forEach(([i,n])=>{r.addOrEnsureItem(i,n)})}getAssignedValues(){return this.subModels.grid.getAssignedValues()||{}}}AssignFormModel.define({label:(0,import_flow_engine.tExpr)("Field assignments"),hide:!0,createModelOptions:{use:"AssignFormModel",subModels:{grid:{use:"AssignFormGridModel"}}}});class FormGridModel extends GridModel{constructor(){super(...arguments),R(this,"itemFallback",(0,import_jsx_runtime.jsx)(import_antd.Skeleton.Input,{block:!0,size:"small",style:{marginBottom:"0.5rem"}})),R(this,"itemSettingsMenuLevel",2),R(this,"itemFlowSettings",{showBackground:!0,style:{top:-6,left:-6,right:-6,bottom:-6}}),R(this,"dragOverlayConfig",{columnInsert:{before:{offsetTop:-6,height:24},after:{offsetTop:3,height:24}},columnEdge:{left:{offsetLeft:-5,width:24},right:{offsetLeft:8,width:24}},rowGap:{above:{offsetTop:-2,height:24},below:{offsetTop:-12,height:24}}})}renderAddSubModelButton(){return(0,import_jsx_runtime.jsx)(import_flow_engine.AddSubModelButton,{subModelKey:"items",subModelBaseClasses:[this.context.getModelClassName("FormItemModel"),this.context.getModelClassName("FormAssociationFieldGroupModel"),this.context.getModelClassName("FormCustomItemModel"),this.context.getModelClassName("FormJSFieldItemModel")].filter(Boolean),model:this,keepDropdownOpen:!0,children:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowSettingsButton,{icon:(0,import_jsx_runtime.jsx)(import_icons.SettingOutlined,{}),children:this.translate("Fields")})})}render(){var t,o;const r=(t=this.props)==null?void 0:t.height,i=(o=this.props)==null?void 0:o.heightModel,n=this.context.themeToken,l=super.render();return i==="defaultHeight"?l:(0,import_jsx_runtime.jsx)("div",{style:{height:r,overflowY:"auto",marginLeft:`-${n.marginLG}px`,marginRight:`-${n.marginLG}px`,paddingLeft:`${n.marginLG}px`,paddingRight:`${n.marginLG}px`,paddingTop:5},children:l})}}FormGridModel.registerFlow({key:"formFieldGridSettings",steps:{grid:{handler(e,t){e.model.setProps("rowGap",0),e.model.setProps("colGap",16)}}}});class AssignFormGridModel extends FormGridModel{renderAddSubModelButton(){var t,o;const r=(t=this.context)==null?void 0:t.collection,i=((o=r==null?void 0:r.getFields)==null?void 0:o.call(r))||[],n=typeof(r==null?void 0:r.getPrimaryKey)=="function"?r.getPrimaryKey():void 0,l=r==null?void 0:r.filterTargetKey,a=u=>u?!!(n&&u===n||typeof l=="string"&&u===l||Array.isArray(l)&&l.includes(u)):!1,c=i.filter(u=>!a(u==null?void 0:u.name)).map(u=>{const d=u.name,m=u.title||u.name,p=import_flow_engine.EditableItemModel.getDefaultBindingByField(this.context,u);if(!p)return;const h=p.modelName;return{key:d,label:m,toggleable:g=>{const f=g.getStepParams("fieldSettings","init")||{};return(f==null?void 0:f.fieldPath)===d},useModel:"AssignFormItemModel",createModelOptions:()=>({use:"AssignFormItemModel",stepParams:{fieldSettings:{init:{dataSourceKey:r==null?void 0:r.dataSourceKey,collectionName:r==null?void 0:r.name,fieldPath:d}}},subModels:{field:{use:h,stepParams:{fieldSettings:{init:{dataSourceKey:r==null?void 0:r.dataSourceKey,collectionName:r==null?void 0:r.name,fieldPath:d}}}}}})}}).filter(Boolean);return(0,import_jsx_runtime.jsx)(import_flow_engine.AddSubModelButton,{subModelKey:"items",model:this,items:c,keepDropdownOpen:!0,children:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowSettingsButton,{icon:(0,import_jsx_runtime.jsx)(import_icons.SettingOutlined,{}),children:this.translate("Fields")})})}addOrEnsureItem(t,o){var r,i,n;const l=(r=this.context)==null?void 0:r.collection,a=(((i=this.subModels)==null?void 0:i.items)||[]).find(p=>{try{const h=typeof(p==null?void 0:p.getStepParams)=="function"?p.getStepParams("fieldSettings","init"):null;return(h==null?void 0:h.fieldPath)===t}catch{return!1}});if(a){typeof(a==null?void 0:a.setStepParams)=="function"&&a.setStepParams("fieldSettings","assignValue",{value:o}),a.assignValue=o;return}const c=(((n=l==null?void 0:l.getFields)==null?void 0:n.call(l))||[]).find(p=>p.name===t),u=import_flow_engine.EditableItemModel.getDefaultBindingByField(this.context,c);if(!u)return;const d=u.modelName,m=this.flowEngine.createModel({use:"AssignFormItemModel",stepParams:{fieldSettings:{init:{dataSourceKey:l==null?void 0:l.dataSourceKey,collectionName:l==null?void 0:l.name,fieldPath:t},assignValue:{value:o}}},subModels:{field:{use:d,stepParams:{fieldSettings:{init:{dataSourceKey:l==null?void 0:l.dataSourceKey,collectionName:l==null?void 0:l.name,fieldPath:t}}}}},parentId:this.uid,subKey:"items"});m.assignValue=o}getAssignedValues(){var t;const o=((t=this.subModels)==null?void 0:t.items)||[],r={};for(const i of o){const n=typeof i.getAssignedEntry=="function"?i.getAssignedEntry():null;n&&Array.isArray(n)&&(r[n[0]]=n[1])}return r}}AssignFormGridModel.define({label:(0,import_flow_engine.tExpr)("Assign grid")});function getFieldBindingUse(e){var t,o;const r=(o=(t=e==null?void 0:e.stepParams)==null?void 0:t.fieldBinding)==null?void 0:o.use;return typeof r=="string"?r:void 0}function rebuildFieldSubModel(e){return L(this,arguments,function*({parentModel:t,targetUse:o,defaultProps:r,pattern:i,fieldSettingsInit:n}){var l,a,c;const u=t.subModels.field,d=u==null?void 0:u.uid,m=(a=(l=u==null?void 0:u.serialize)==null?void 0:l.call(u))==null?void 0:a.subModels;for(const _ in m)m[_].delegateToParent===!1&&delete m[_];const p=(u==null?void 0:u.stepParams)||{},h=n??((c=t.getFieldSettingsInitParams)==null?void 0:c.call(t)),g=A(x({},p),{fieldBinding:A(x({},p.fieldBinding),{use:o}),fieldSettings:{init:h}}),f=t.flowEngine;d&&(u==null||u.invalidateFlowCache("beforeRender",!0),f.removeModelWithSubModels(d)),yield t.setSubModel("field",{uid:d,use:FieldModel,props:x(x({},r||{}),i?{pattern:i}:{}),stepParams:g,subModels:m}).dispatchEvent("beforeRender",void 0,{useCache:!1}),yield t.save()})}function getValueWithIndex(e,t,o){const r=(0,import_lodash.castArray)(o).filter(n=>typeof n=="string"),i=t.split(".");if(r!=null&&r.length){const n=[];let l=0,a=0;for(;l<i.length;){const c=i[l];if(n.push(c),a<r.length){const[u,d]=r[a].split(":");u===c&&(n.push(Number(d)),a++)}l++}return(0,import_lodash.get)(e,n)}return(0,import_lodash.get)(e,i)}function getDetailsItemValue(e){const{record:t,currentObject:o,fieldPath:r,prefixFieldPath:i,idx:n}=e,l=getValueWithIndex(t,r,n);if(l!==void 0||o==null)return l;if(i&&r===i)return o;const a=i&&r.startsWith(`${i}.`)?r.slice(i.length+1):r;return a?(0,import_lodash.get)(o,a):o}function normalizeDetailsAssociationValue(e,t){return!isToManyAssociationField(e)||Array.isArray(t)?t:t&&typeof t=="object"&&Array.isArray(t.rows)?t.rows:t==null?[]:[t]}class DetailsItemModel 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:"DetailsItemModel",createModelOptions:()=>({use:"DetailsItemModel",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=this.context.item,l=this.context.getPropertyOptions("item"),a=this.context.prefixFieldPath,c=o!=null?(()=>{const m=t.createFork({},`${o}`);m.context.defineProperty("fieldIndex",{get:()=>o}),m.context.defineProperty("record",{get:()=>r,cache:!1}),m.context.defineProperty("currentObject",{get:()=>i,cache:!1});const p=l||{},h=te(p,["value"]);return m.context.defineProperty("item",A(x({},h),{get:()=>n,cache:!1})),this.context.pattern&&m.context.defineProperty("pattern",{get:()=>this.context.pattern}),m})():t,u=this.context.pattern?A(x(x({},this.context.blockModel.props),this.props),{pattern:this.context.pattern,disabled:this.context.pattern==="readPretty"}):x(x({},this.context.blockModel.props),this.props),d=normalizeDetailsAssociationValue(this.collectionField,getDetailsItemValue({record:r,currentObject:i,fieldPath:this.fieldPath,prefixFieldPath:a,idx:o}));return(0,import_jsx_runtime.jsx)(import_flow_engine.FormItem,A(x({},u),{value:d,children:(0,import_jsx_runtime.jsx)(import_flow_engine.FieldModelRenderer,{model:c})}))}}DetailsItemModel.define({label:(0,import_flow_engine.tExpr)("Display fields"),sort:100});DetailsItemModel.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;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.collectionField)==null?void 0:t.title}},handler(e,t){var o;const r={ns:"lm-flow-engine",compareWith:(o=e.collectionField)==null?void 0:o.title};e.model.setProps({label:e.t(t.title,r)})}},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})}}});DetailsItemModel.registerFlow({key:"paginationChange",on:"paginationChange",steps:{aclCheckRefresh:{use:"aclCheckRefresh"}}});function isInSameBlock(e,t){var o,r;const i=(r=(o=e==null?void 0:e.context)==null?void 0:o.blockModel)==null?void 0:r.uid,n=t==null?void 0:t.uid;return!i||!n?!1:String(i)===String(n)}function tryGetModelTargetPathCandidate(e){var t,o;const r=(t=e==null?void 0:e.context)==null?void 0:t.fieldPathArray;if(Array.isArray(r)&&r.length)return r;try{const a=(o=e==null?void 0:e.getStepParams)==null?void 0:o.call(e,"fieldSettings","init"),c=a==null?void 0:a.fieldPath;if(typeof c=="string"&&c)return c}catch{}const i=e==null?void 0:e.fieldPath;if(typeof i=="string"&&i)return i;const n=typeof(e==null?void 0:e.getProps)=="function"?e.getProps():e==null?void 0:e.props,l=n==null?void 0:n.name;return typeof l=="string"&&l||Array.isArray(l)&&l.length?l:null}function normalizeResolvedNamePath(e){return!Array.isArray(e)||!e.length||typeof e[0]!="string"?null:e}function resolveModelNamePath(e){var t;const o=tryGetModelTargetPathCandidate(e);if(!o)return null;const r=resolveDynamicNamePath(o,(t=e==null?void 0:e.context)==null?void 0:t.fieldIndex);return normalizeResolvedNamePath(r)}function cleanupEmptyPlainObjectAncestors(e,t){if(!(!e||typeof e!="object")&&!(!Array.isArray(t)||t.length<2))for(let o=t.length-1;o>=1;o--){const r=t.slice(0,o);if(typeof r[r.length-1]=="number")continue;const i=import_lodash.default.get(e,r);import_lodash.default.isPlainObject(i)&&Object.keys(i).length===0&&import_lodash.default.unset(e,r)}}function forEachModelIncludingForks(e,t){e!=null&&e.forEachModel&&e.forEachModel(o=>{t(o);const r=o==null?void 0:o.forks;r&&typeof r.forEach=="function"&&r.forEach(i=>t(i))})}function collectHiddenModelNamePaths(e){const t=e==null?void 0:e.flowEngine;if(!(t!=null&&t.forEachModel))return[];const o=[],r=new Set;return forEachModelIncludingForks(t,i=>{if(!i||typeof i!="object"||!i.hidden||!isInSameBlock(i,e))return;const n=resolveModelNamePath(i);if(!n)return;const l=JSON.stringify(n);r.has(l)||(r.add(l),o.push(n))}),o}function normalizeFormNamePath(e){return typeof e=="string"?e?[e]:null:Array.isArray(e)?normalizeResolvedNamePath(e):null}function isNamePathPrefix(e,t){if(!Array.isArray(e)||!Array.isArray(t)||e.length>t.length)return!1;for(let o=0;o<e.length;o++)if(e[o]!==t[o])return!1;return!0}function getValidationNamePathsExcludingHiddenModels(e){const t=e==null?void 0:e.form;if(!t||typeof t.getFieldsError!="function")return null;const o=t.getFieldsError();if(!Array.isArray(o))return null;const r=[],i=new Set;for(const l of o){const a=normalizeFormNamePath(l==null?void 0:l.name);if(!a)continue;const c=JSON.stringify(a);i.has(c)||(i.add(c),r.push(a))}if(!r.length)return null;const n=collectHiddenModelNamePaths(e);return n.length?r.filter(l=>!n.some(a=>isNamePathPrefix(a,l))):r}function shouldSkipSubmitValidation(e){var t,o;return((o=(t=e==null?void 0:e.getStepParams)==null?void 0:t.call(e,"submitSettings","skipRequiredValidation"))==null?void 0:o.skipValidator)===!0}function validateSubmitForm(e){return L(this,null,function*(){const{form:t,blockModel:o,flowSettingsEnabled:r,skipValidator:i}=e;if(i||!t||typeof t.validateFields!="function")return;const n=r&&o?getValidationNamePathsExcludingHiddenModels(o):null;if(Array.isArray(n)){n.length&&(yield t.validateFields(n));return}yield t.validateFields()})}function omitHiddenModelValuesFromSubmit(e,t){if(!e||typeof e!="object")return e;const o=collectHiddenModelNamePaths(t);if(!o.length)return e;const r=import_lodash.default.cloneDeep(e);for(const i of o)import_lodash.default.unset(r,i),cleanupEmptyPlainObjectAncestors(r,i);return r}function submitHandler(e,t,o){return L(this,null,function*(){var r,i,n,l,a;const c=e.resource,u=e.blockModel;yield validateSubmitForm({form:u==null?void 0:u.form,blockModel:u,flowSettingsEnabled:e==null?void 0:e.flowSettingsEnabled,skipValidator:shouldSkipSubmitValidation(e==null?void 0:e.model)});const d=u.form.getFieldsValue(!0),m=omitHiddenModelValuesFromSubmit(d,u);if(c instanceof import_flow_engine.SingleRecordResource){if(u instanceof EditFormModel){const h=c.getMeta("currentFilterByTk");h?c.setFilterByTk(h):c.isNewRecord=!0}const p=o?yield o(m):yield c.save(m,t.requestConfig);u instanceof EditFormModel?(c.isNewRecord=!1,(r=u.resetUserModifiedFields)==null||r.call(u),yield c.refresh()):(u.form.resetFields(),u.emitter.emit("onFieldReset"),(i=u.resetUserModifiedFields)==null||i.call(u),(l=(n=u.formValueRuntime)==null?void 0:n.resetAfterFormReset)==null||l.call(n),e.view.inputArgs.collectionName===u.collection.name&&e.view.inputArgs.onChange&&e.view.inputArgs.onChange(p==null?void 0:p.data))}else if(c instanceof import_flow_engine.MultiRecordResource){const p=c.getMeta("currentFilterByTk");if(!p){e.message.error(e.t("No filterByTk found for multi-record resource."));return}(yield o)?yield o(m,p):yield c.update(p,m,t.requestConfig),(a=u.resetUserModifiedFields)==null||a.call(u)}})}class EditFormModel extends FormBlockModel{constructor(){super(...arguments),R(this,"actionFlowSettings",{showBackground:!1,showBorder:!1,toolbarPosition:"above"}),R(this,"actionExtraToolbarItems",[{key:"drag-handler",component:import_flow_engine.DragHandler,sort:1}]),R(this,"handlePageChange",t=>L(this,null,function*(){if(this.resource instanceof import_flow_engine.MultiRecordResource){const o=this.resource;o.setPage(t),o.loading=!0,yield o.refresh(),yield dispatchEventDeep(this,"paginationChange")}}))}createResource(t,o){var r,i;if(((r=this.association)==null?void 0:r.type)==="hasOne"||((i=this.association)==null?void 0:i.type)==="belongsTo"){const l=this.context.createResource(import_flow_engine.SingleRecordResource);return l.isNewRecord=!1,l}if(Object.keys(o).includes("filterByTk")){const l=this.context.createResource(import_flow_engine.SingleRecordResource);return l.isNewRecord=!1,l}const n=this.context.createResource(import_flow_engine.MultiRecordResource);return n.setPageSize(1),n}isMultiRecordResource(){return this.resource instanceof import_flow_engine.MultiRecordResource}getCurrentRecord(){const t=this.resource.getData();return Array.isArray(t)?t[0]:t}hasAvailableData(){return this.resource.hasData()}getAclActionName(){return"update"}submitHandler(t,o,r){return L(this,null,function*(){yield submitHandler(t,o,r)})}submit(){return L(this,arguments,function*(t={},o){yield submitHandler(this.context,t,o)})}renderComponent(){var t,o;const{colon:r,labelAlign:i,labelWidth:n,labelWrap:l,layout:a}=this.props,c=!!this.context.flowSettingsEnabled,u=this.hasAvailableData(),d=!c&&!u,{heightMode:m,height:p}=this.decoratorProps,h=!this.resource.loading&&!u?(0,import_jsx_runtime.jsx)("div",{style:{textAlign:"center",marginTop:16,color:(o=(t=this.context)==null?void 0:t.themeToken)==null?void 0:o.colorTextDescription},children:this.translate("No available data currently")}):this.isMultiRecordResource()&&this.resource.getMeta("count")>1?(0,import_jsx_runtime.jsx)("div",{style:{textAlign:"center",marginTop:16},children:(0,import_jsx_runtime.jsx)(import_antd.Pagination,{simple:!0,pageSize:1,showSizeChanger:!1,defaultCurrent:this.resource.getPage(),total:this.resource.getTotalPage(),onChange:this.handlePageChange,style:{display:"inline-block"}})}):null;return(0,import_jsx_runtime.jsx)(FormBlockContent,{model:this,gridModel:this.subModels.grid,layoutProps:{colon:r,labelAlign:i,labelWidth:n,labelWrap:l,layout:a},heightMode:m,height:p,grid:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,{model:this.subModels.grid,showFlowSettings:!1}),actions:(0,import_jsx_runtime.jsx)("div",{style:d?{pointerEvents:"none",opacity:.45}:void 0,children:(0,import_jsx_runtime.jsx)(import_flow_engine.DndProvider,{children:(0,import_jsx_runtime.jsxs)(import_antd.Space,{wrap:!0,children:[this.mapSubModels("actions",g=>{if(!(g.hidden&&!c))return(0,import_jsx_runtime.jsx)(import_flow_engine.Droppable,{model:g,children:(0,import_jsx_runtime.jsx)(import_flow_engine.MemoFlowModelRenderer,{model:g,showFlowSettings:this.context.flowSettingsEnabled?this.actionFlowSettings:!1,extraToolbarItems:this.actionExtraToolbarItems},g.uid)},g.uid)}),this.renderConfigureActions()]})})}),footer:h})}}R(EditFormModel,"scene",BlockSceneEnum.oam),R(EditFormModel,"blockCapabilityActionName","update");EditFormModel.registerFlow({key:"formSettings",title:(0,import_flow_engine.tExpr)("Edit form settings"),steps:{init:{handler(e){return L(this,null,function*(){if(!e.resource)throw new Error("Resource is not initialized");e.resource.on("refresh",()=>L(this,null,function*(){var t,o,r,i,n,l;const a=e.resource.getMeta("currentFilterByTk"),c=x({},e.model.getCurrentRecord());if(!c)return;const u=(t=e.association)==null?void 0:t.targetKey;if(u&&((o=e.association)==null?void 0:o.interface)!=="m2m"?e.resource.setMeta({currentFilterByTk:c==null?void 0:c[u]}):e.resource.setMeta({currentFilterByTk:e.collection.getFilterByTK(c)}),!e.form)return;const d=e.resource.getMeta("currentFilterByTk"),m=!(0,import_lodash.isEqual)(a,d),p=(i=(r=e.model).getUserModifiedFields)==null?void 0:i.call(r),h=!!(p!=null&&p.size),g=()=>{if(!(p!=null&&p.size))return;const f=_=>_!==null&&typeof _=="object";for(const _ of Array.from(p)){const v=e.form.getFieldValue(_),y=c==null?void 0:c[_];(Object.is(v,y)||f(v)&&f(y)&&(0,import_lodash.isEqual)(v,y))&&p.delete(_)}};if(!m&&h){const f=x({},c);for(const _ of p)f[_]=e.form.getFieldValue(_);e.form.setFieldsValue(f),g();return}m&&((l=(n=e.model).resetUserModifiedFields)==null||l.call(n)),e.form.setFieldsValue(c),g()}))})}},dataScope:{use:"dataScope"},refresh:{handler(e){return L(this,null,function*(){if(!e.resource)throw new Error("Resource is not initialized")})}}}});EditFormModel.registerFlow({key:"paginationChange",on:"paginationChange",steps:{blockLinkageRulesRefresh:{use:"linkageRulesRefresh",defaultParams:{actionName:"blockLinkageRules",flowKey:"cardSettings",stepKey:"linkageRules"}},fieldsLinkageRulesRefresh:{use:"linkageRulesRefresh",defaultParams:{actionName:"fieldLinkageRules",flowKey:"eventSettings",stepKey:"linkageRules"}}}});EditFormModel.define({label:(0,import_flow_engine.tExpr)("Form (Edit)"),searchable:!0,searchPlaceholder:(0,import_flow_engine.tExpr)("Search"),createModelOptions:{use:"EditFormModel",subModels:{grid:{use:"FormGridModel"}}},sort:340});function isToManyAssociation(e){if(!e)return!1;const t=e==null?void 0:e.type;return t==="belongsToMany"||t==="hasMany"||t==="belongsToArray"}function coerceForToOneField(e,t){var o;const r=!!((o=e==null?void 0:e.isAssociationField)!=null&&o.call(e)),i=isToManyAssociation(e);return r&&!i&&Array.isArray(t)?t.length?t[0]:void 0:t}function buildDynamicNamePath(e,t){if(!(t!=null&&t.length))return e;const o=t[t.length-1],[r,i]=String(o).split(":"),n=Number(i);if(!r||!Number.isFinite(n))return e;let l=0;for(const u of t){const[d]=String(u).split(":");d===r&&(l+=1)}let a=-1,c=0;for(let u=0;u<e.length;u++)if(String(e[u])===r&&(c+=1,c===l)){a=u;break}if(a===-1){for(let u=e.length-1;u>=0;u--)if(String(e[u])===r){a=u;break}}return a===-1?e:[n,...e.slice(a+1)]}const interfacesOfUnsupportedDefaultValue=["o2o","oho","obo","o2m","attachment","expression","point","lineString","circle","polygon","sequence","formula"];class FormItemModel extends import_flow_engine.EditableItemModel{static defineChildren(t){const o=t.collection;return o.getFields().map(r=>{const i=this.getDefaultBindingByField(t,r);if(!i)return;const n=i.modelName,l=t.prefixFieldPath?`${t.prefixFieldPath}.${r.name}`:r.name;return{key:l,label:r.title,refreshTargets:["FormItemModel/FormJSFieldItemModel"],toggleable:a=>{var c;return((c=a.getStepParams("fieldSettings","init"))==null?void 0:c.fieldPath)===l},useModel:"FormItemModel",createModelOptions:()=>({use:"FormItemModel",stepParams:{fieldSettings:{init:{dataSourceKey:o.dataSourceKey,collectionName:t.model.context.blockModel.collection.name,fieldPath:l}}},subModels:{field:{use:n,props:typeof i.defaultProps=="function"?i.defaultProps(t,r):i.defaultProps}}})}}).filter(Boolean)}onInit(t){super.onInit(t),this.emitter.on("onSubModelAdded",o=>{if(this.collectionField){const r=this.collectionField.getComponentProps();o.setProps(r),this.setProps(x({},import_lodash.default.pick(r,"rules")||{}))}})}renderItem(){var t,o;const r=this.subModels.field,i=this.context.fieldIndex,n=this.context.fieldKey,l=((t=this.parent)==null?void 0:t.context.fieldPathArray)||[],a=i!=null?(()=>{const p=r.createFork({},`${n}`);p.context.defineProperty("fieldIndex",{get:()=>i}),p.context.defineProperty("fieldKey",{get:()=>n}),this.context.currentObject&&p.context.defineProperty("currentObject",{get:()=>this.context.currentObject});const h=this.context.getPropertyOptions("item");if(this.context.item){const g=h||{},f=te(g,["value"]);p.context.defineProperty("item",A(x({},f),{get:()=>this.context.item,cache:!1}))}return this.context.pattern&&p.context.defineProperty("pattern",{get:()=>this.context.pattern}),p})():r,c=this.context.pattern?A(x({},this.props),{pattern:this.context.pattern}):this.props,u=te(c,["initialValue"]),d=buildDynamicNamePath(this.props.name,i);this.context.defineProperty("fieldPathArray",{value:[...l,...import_lodash.default.castArray(d)]});const m=((o=this.context.item)==null?void 0:o.value)||this.context.record;return(0,import_jsx_runtime.jsx)(import_flow_engine.FormItem,A(x({},u),{name:d,validateFirst:!0,disabled:this.props.disabled||!import_lodash.default.isEmpty(m)&&!m.__is_new__&&this.props.aclDisabled||!import_lodash.default.isEmpty(m)&&m.__is_new__&&this.props.aclCreateDisabled,children:(0,import_jsx_runtime.jsx)(import_flow_engine.FieldModelRenderer,{model:a,name:d})}))}}FormItemModel.define({label:(0,import_flow_engine.tExpr)("Display fields"),sort:100});FormItemModel.registerFlow({key:"editItemSettings",sort:300,title:(0,import_flow_engine.tExpr)("Form item settings"),steps:{showLabel:{title:(0,import_flow_engine.tExpr)("Show label"),uiMode:{type:"switch",key:"showLabel"},defaultParams:{showLabel:!0},handler(e,t){e.model.setProps({showLabel:t.showLabel})}},label:{title:(0,import_flow_engine.tExpr)("Label"),uiSchema:e=>({label:{"x-component":"Input","x-decorator":"FormItem","x-reactions":t=>{var o;const r=e.model,i=(o=r.collectionField)==null?void 0:o.title;t.decoratorProps=A(x({},t.decoratorProps),{extra:r.context.t("Original field title: ")+i})}}}),defaultParams:e=>{var t;return{label:(t=e.collectionField)==null?void 0:t.title}},handler(e,t){var o;const r={ns:"lm-flow-engine",compareWith:(o=e.collectionField)==null?void 0:o.title};e.model.setProps({label:e.t(t.label,r)})}},aclCheck:{use:"aclCheck",handler(e,t){return L(this,null,function*(){var o,r,i,n,l,a,c,u,d,m,p,h,g,f,_;if(!e.collectionField||!e.blockModel)return;const v=e.blockModel.context.actionName,y=yield e.aclCheck({dataSourceKey:(o=e.dataSource)==null?void 0:o.key,resourceName:(r=e.collectionField)==null?void 0:r.collectionName,fields:[(i=e.collectionField)==null?void 0:i.name],actionName:v});if(v==="update"){const C=yield e.aclCheck({dataSourceKey:(n=e.dataSource)==null?void 0:n.key,resourceName:(l=e.collectionField)==null?void 0:l.collectionName,fields:[e.collectionField.name],actionName:"view"});e.prefixFieldPath&&e.item&&((yield e.aclCheck({dataSourceKey:(a=e.dataSource)==null?void 0:a.key,resourceName:(c=e.collectionField)==null?void 0:c.collectionName,fields:[e.collectionField.name],actionName:"create"}))||e.model.setProps({aclCreateDisabled:!0}));const b=(d=(u=e.item)==null?void 0:u.__is_new__)!=null?d:!1;!C&&!b&&(e.model.hidden=!0,e.model.forbidden={actionName:"view"},e.exitAll()),y||e.model.setProps({aclDisabled:!0})}else if(v==="create"){const C=yield e.aclCheck({dataSourceKey:(m=e.dataSource)==null?void 0:m.key,resourceName:(p=e.collectionField)==null?void 0:p.collectionName,actionName:"update"}),b=yield e.aclCheck({dataSourceKey:(h=e.dataSource)==null?void 0:h.key,resourceName:(g=e.collectionField)==null?void 0:g.collectionName,fields:[e.collectionField.name],actionName:"update"}),F=(_=(f=e.item)==null?void 0:f.__is_stored__)!=null?_:!1;!y&&!F&&(e.model.hidden=!0,e.model.forbidden={actionName:v},e.exitAll()),(!C||!b)&&e.model.setProps({aclDisabled:!0})}})}},init:{handler(e){return L(this,null,function*(){const t=e.model.fieldPath,o=t.includes(".")?t.split("."):t;e.model.setProps({name:o})})}},tooltip:{title:(0,import_flow_engine.tExpr)("Tooltip"),uiSchema:{tooltip:{"x-component":"Input.TextArea","x-decorator":"FormItem"}},handler(e,t){e.model.setProps({tooltip:e.t(t.tooltip,{ns:"lm-flow-engine"})})}},description:{title:(0,import_flow_engine.tExpr)("Description"),uiSchema:{description:{"x-component":"Input.TextArea","x-decorator":"FormItem","x-component-props":{autoSize:!0}}},handler(e,t){e.model.setProps({extra:e.t(t.description,{ns:"lm-flow-engine"})})}},initialValue:{title:(0,import_flow_engine.tExpr)("Default value"),disabledInSettings:!0,disabledReasonInSettings:e=>`${e.t("This setting has been moved to")}: ${e.t("Form block settings")} > ${e.t("Field values")}`,uiSchema:e=>{var t,o,r,i;if(e.model.parent.parent instanceof EditFormModel||(o=(t=e.model.subModels)==null?void 0:t.field)!=null&&o.updateAssociation)return;const n=(r=e.model.collectionField)==null?void 0:r.interface;if(!((i=interfacesOfUnsupportedDefaultValue==null?void 0:interfacesOfUnsupportedDefaultValue.includes)!=null&&i.call(interfacesOfUnsupportedDefaultValue,n)))return{defaultValue:{"x-component":"DefaultValue","x-decorator":"FormItem"}}},defaultParams:e=>{const t=e.model.collectionField;if(t.interface==="nanoid"&&t.options.autoFill!==!1){const{size:o,customAlphabet:r}=t.options||{size:21};return{defaultValue:(0,import_nanoid.customAlphabet)(r,o)()}}return{defaultValue:t.defaultValue}},handler(e,t){var o,r;const i=(o=e.model.collectionField)==null?void 0:o.interface;if((r=interfacesOfUnsupportedDefaultValue==null?void 0:interfacesOfUnsupportedDefaultValue.includes)!=null&&r.call(interfacesOfUnsupportedDefaultValue,i))return;const n=e.model.collectionField,l=coerceForToOneField(n,t.defaultValue);e.model.setProps({initialValue:l})}},validation:{title:(0,import_flow_engine.tExpr)("Validation"),use:"validation"},required:{title:(0,import_flow_engine.tExpr)("Required"),use:"required"},model:{use:"fieldComponent",title:(0,import_flow_engine.tExpr)("Field component")},pattern:{use:"pattern"},titleField:{use:"titleField",hideInSettings(e){return!e.collectionField||!e.collectionField.isAssociationField()||!(e.collectionField.isAssociationField()&&e.model.getProps().pattern==="readPretty")},defaultParams:e=>({titleField:e.model.props.titleField||e.model.context.collectionField.targetCollectionTitleFieldName}),beforeParamsSave:(e,t,o)=>L(void 0,null,function*(){if(!(e.collectionField.isAssociationField()&&e.model.getProps().pattern==="readPretty"))return null;const r=t.titleField||t.label;if(r!==o.titleField){const i=e.collectionField.targetCollection,n=i.getField(r),l=DetailsItemModel.getDefaultBindingByField(e,n);if(l.modelName!==e.model.subModels.field.use){const a=e.model.subModels.field.uid;yield e.engine.destroyModel(a),yield e.model.setSubModel("field",{use:l.modelName,stepParams:{fieldSettings:{init:{dataSourceKey:e.model.collectionField.dataSourceKey,collectionName:i.name,fieldPath:r}}}}).save()}e.model.setProps(e.collectionField.targetCollection.getField(r).getComponentProps())}}),handler(e,t){return L(this,null,function*(){e.model.props.pattern==="readPretty"?e.model.setProps({titleField:t==null?void 0:t.label}):e.model.setProps({titleField:t.titleField})})}}}});FormItemModel.registerFlow({key:"paginationChange",on:"paginationChange",steps:{aclCheckRefresh:{use:"aclCheckRefresh",defaultParams:{strategy:"formItem"}}}});class AssignFormItemModel extends FormItemModel{constructor(t){super(t),R(this,"assignValue"),(0,import_reactive.define)(this,{assignValue:import_reactive.observable})}onInit(t){var o,r,i,n,l,a,c;const u=(o=this.getStepParams("fieldSettings","assignValue"))==null?void 0:o.value;typeof u<"u"&&(this.assignValue=u),this.context.defineProperty("collectionField",{get:()=>{var f,_;const v=this.getStepParams("fieldSettings","init")||{},y=`${v==null?void 0:v.dataSourceKey}.${v==null?void 0:v.collectionName}.${v==null?void 0:v.fieldPath}`,C=(f=this.context)==null?void 0:f.dataSourceManager;return(_=C==null?void 0:C.getCollectionField)==null?void 0:_.call(C,y)}});const d=this.context,m=d==null?void 0:d.collection,p=this.fieldInit;if(!((r=this.subModels)!=null&&r.field)&&m!=null&&m.getFields){const f=(m.getFields()||[]).find(y=>(y==null?void 0:y.name)===(p==null?void 0:p.fieldPath));(i=m==null?void 0:m.getField)==null||i.call(m,p==null?void 0:p.fieldPath);const _=import_flow_engine.EditableItemModel.getDefaultBindingByField(d,f);if(!_)return;const v=_.modelName;(l=(n=d==null?void 0:d.engine)==null?void 0:n.createModel)==null||l.call(n,{use:v,stepParams:{fieldSettings:{init:p}},parentId:this.uid,subKey:"field"})}const h=(a=this.context)==null?void 0:a.collection,g=this.fieldPath;if(g){const f=(c=h==null?void 0:h.getField)==null?void 0:c.call(h,g),_=(f==null?void 0:f.title)||g,v=g.includes(".")?g.split("."):[g];this.setProps({label:_,name:v})}}get fieldInit(){return this.getStepParams("fieldSettings","init")||{}}get fieldPath(){var t;return(t=this.fieldInit)==null?void 0:t.fieldPath}getAssignedEntry(){const t=this.fieldPath;return t?[t,this.assignValue]:null}render(){var t;const o=this.context,r=o.collection,i=this.fieldInit,n=((t=this.props)==null?void 0:t.name)||(this.fieldPath?[this.fieldPath]:void 0),l=this.fieldPath;return(0,import_jsx_runtime.jsx)(()=>{var a,c,u,d,m,p,h;const[g,f]=import_react2.default.useState(null);import_react2.default.useEffect(()=>{var P,j,I,T,N,D,w,k,B,E,M,O,V,$,q,z,U,K,W,Y,Q;if(!l)return;const H=(((P=r==null?void 0:r.getFields)==null?void 0:P.call(r))||[]).find(ae=>(ae==null?void 0:ae.name)===l);r.getField(l);const J=import_flow_engine.EditableItemModel.getDefaultBindingByField(o,H);if(!J)return;const Z=J.modelName,re=(I=(j=o==null?void 0:o.engine)==null?void 0:j.createModel)==null?void 0:I.call(j,{use:"VariableFieldFormModel",subModels:{fields:[{use:Z,stepParams:{fieldSettings:{init:i}}}]}});if(!re)return;(N=(T=re.context)==null?void 0:T.defineProperty)==null||N.call(T,"collection",{value:r});const oe=o==null?void 0:o.dataSource;oe&&((w=(D=re.context)==null?void 0:D.defineProperty)==null||w.call(D,"dataSource",{value:oe}));const G=(k=r==null?void 0:r.getField)==null?void 0:k.call(r,i==null?void 0:i.fieldPath);G&&((E=(B=re.context)==null?void 0:B.defineProperty)==null||E.call(B,"collectionField",{value:G}));const X=o==null?void 0:o.blockModel;X&&((O=(M=re.context)==null?void 0:M.defineProperty)==null||O.call(M,"blockModel",{value:X}));const ie=o.form;ie&&(($=(V=re.context)==null?void 0:V.defineProperty)==null||$.call(V,"form",{value:ie})),re.context&&Object.defineProperty(re.context,"resource",{configurable:!0,enumerable:!0,get:()=>X==null?void 0:X.resource});const ee=(z=(q=re==null?void 0:re.subModels)==null?void 0:q.fields)==null?void 0:z[0],ne=(U=r==null?void 0:r.getField)==null?void 0:U.call(r,i==null?void 0:i.fieldPath),le=ne==null?void 0:ne.type,me=ne==null?void 0:ne.interface,he=le==="belongsToMany"||le==="hasMany"||le==="belongsToArray"||me==="m2m"||me==="o2m"||me==="mbm";if((K=ee==null?void 0:ee.setProps)==null||K.call(ee,{disabled:!1,readPretty:!1,pattern:"editable",updateAssociation:!1,multiple:he}),(W=ee==null?void 0:ee.dispatchEvent)==null||W.call(ee,"beforeRender",void 0,{sequential:!0,useCache:!0}),ensureOptionsFromUiSchemaEnumIfAbsent(ee,ne),!((Y=ee==null?void 0:ee.props)!=null&&Y.fieldNames)&&ne!=null&&ne.targetCollection){const ae=ne.targetCollection,xe=(ne==null?void 0:ne.targetKey)||(ae==null?void 0:ae.filterTargetKey)||"id";(Q=ee==null?void 0:ee.setProps)==null||Q.call(ee,{fieldNames:{label:ae==null?void 0:ae.titleField,value:xe}})}return f(re),()=>{var ae,xe,ge,ve;(ge=(xe=(ae=re==null?void 0:re.subModels)==null?void 0:ae.fields)==null?void 0:xe.forEach)==null||ge.call(xe,de=>{var ce;return(ce=de==null?void 0:de.remove)==null?void 0:ce.call(de)}),(ve=re==null?void 0:re.remove)==null||ve.call(re)}},[]);const _=P=>(import_react2.default.useEffect(()=>{var j,I,T,N;if(!g)return;(j=g.setProps)==null||j.call(g,x({},P));const D=(T=(I=g==null?void 0:g.subModels)==null?void 0:I.fields)==null?void 0:T[0];D&&((N=D.setProps)==null||N.call(D,{value:P==null?void 0:P.value,onChange:(...w)=>{var k;const B=w&&w.length?w[0]:void 0;(k=P==null?void 0:P.onChange)==null||k.call(P,B)}}))},[P]),g?(0,import_jsx_runtime.jsx)("div",{style:{width:"100%"},children:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,{model:g,showFlowSettings:!1})}):null),v=()=>(0,import_jsx_runtime.jsx)(import_antd.Input,{placeholder:"<Null>",readOnly:!0,style:{width:"100%"}}),y=P=>(0,import_jsx_runtime.jsx)(RunJSValueEditor,{t:this.context.t,value:P==null?void 0:P.value,onChange:P==null?void 0:P.onChange,containerStyle:{width:"100%"}}),C={renderInputComponent:P=>{var j;const I=(j=P==null?void 0:P.paths)==null?void 0:j[0];if(I==="constant")return _;if(I==="null")return v;if(I==="runjs")return y},resolveValueFromPath:P=>{var j;const I=(j=P==null?void 0:P.paths)==null?void 0:j[0];if(I==="constant")return"";if(I==="null")return null;if(I==="runjs")return{code:"",version:"v2"}},resolvePathFromValue:P=>P===null?["null"]:(0,import_flow_engine.isRunJSValue)(P)?["runjs"]:(0,import_flow_engine.isVariableExpression)(P)?(0,import_flow_engine.parseValueToPath)(P):["constant"]},b=()=>L(this,null,function*(){var P;const j=(P=this.context)==null?void 0:P.getPropertyMetaTree,I=typeof j=="function"?yield j():[];return[{title:(0,import_flow_engine.tExpr)("Constant"),name:"constant",type:"string",paths:["constant"],render:_},{title:(0,import_flow_engine.tExpr)("Null"),name:"null",type:"object",paths:["null"],render:v},{title:(0,import_flow_engine.tExpr)("RunJS"),name:"runjs",type:"object",paths:["runjs"],render:y},...I]});let F=(u=(c=(a=this.props)==null?void 0:a.label)!=null?c:this.fieldPath)!=null?u:"";const S=(d=r==null?void 0:r.getField)==null?void 0:d.call(r,this.fieldPath);return F=(h=(p=(m=this.props)==null?void 0:m.label)!=null?p:S==null?void 0:S.title)!=null?h:F,(0,import_jsx_runtime.jsx)(import_flow_engine.FormItem,A(x({},this.props),{label:F,name:n,initialValue:this.assignValue,valuePropName:"__assign_value__",trigger:"__assign_trigger__",validateTrigger:"__assign_trigger__",children:import_react2.default.createElement(P=>{const j=P==null?void 0:P.__assign_value__,I=typeof j>"u"?this.assignValue:j;return(0,import_jsx_runtime.jsx)(import_flow_engine.VariableInput,{value:I,onChange:T=>{var N;this.assignValue=T,(N=P==null?void 0:P.__assign_trigger__)==null||N.call(P,T)},metaTree:b,converters:C,clearValue:""})})}))},{})}}AssignFormItemModel.define({label:(0,import_flow_engine.tExpr)("Assign field")});AssignFormItemModel.registerFlow({key:"editItemSettings",sort:300,title:(0,import_flow_engine.tExpr)("Form item settings"),steps:{showLabel:{title:(0,import_flow_engine.tExpr)("Show label"),uiMode:{type:"switch",key:"showLabel"},defaultParams:{showLabel:!0},handler(e,t){e.model.setProps({showLabel:t.showLabel})}},label:{title:(0,import_flow_engine.tExpr)("Label"),uiSchema:e=>({label:{"x-component":"Input","x-decorator":"FormItem","x-reactions":t=>{var o;const r=e.model,i=(o=r.collectionField)==null?void 0:o.title;t.decoratorProps=A(x({},t.decoratorProps),{extra:r.context.t("Original field title: ")+i})}}}),defaultParams:e=>({label:e.model.collectionField.title}),handler(e,t){var o;t.label&&t.label===((o=e.model.collectionField)==null?void 0:o.title)?e.model.setProps({label:t.label}):e.model.setProps({label:e.t(t.label,{ns:"lm-flow-engine"})})}},init:{handler(e){return L(this,null,function*(){const t=e.model.collectionField;t&&e.model.setProps(t.getComponentProps());const o=e.model.fieldPath,r=o.includes(".")?o.split("."):o;e.model.setProps({name:r})})}},tooltip:{title:(0,import_flow_engine.tExpr)("Tooltip"),uiSchema:{tooltip:{"x-component":"Input.TextArea","x-decorator":"FormItem"}},handler(e,t){e.model.setProps({tooltip:e.t(t.tooltip,{ns:"lm-flow-engine"})})}},description:{title:(0,import_flow_engine.tExpr)("Description"),uiSchema:{description:{"x-component":"Input.TextArea","x-decorator":"FormItem"}},handler(e,t){e.model.setProps({extra:e.t(t.description,{ns:"lm-flow-engine"})})}},validation:{title:(0,import_flow_engine.tExpr)("Validation"),use:"validation"},required:{title:(0,import_flow_engine.tExpr)("Required"),use:"required"}}});class DetailsAssociationFieldGroupModel extends AssociationFieldGroupModel{}R(DetailsAssociationFieldGroupModel,"itemModelName","DetailsItemModel");DetailsAssociationFieldGroupModel.define({label:'{{t("Display association fields")}}'});const getOuterHeight=e=>{if(!e)return 0;const t=e.getBoundingClientRect(),o=window.getComputedStyle(e),r=parseFloat(o.marginTop)||0,i=parseFloat(o.marginBottom)||0;return t.height+r+i},useDetailsGridHeight=({heightMode:e,containerRef:t,actionsRef:o,paginationRef:r,deps:i=[]})=>{const[n,l]=(0,import_react2.useState)(),a=(0,import_react2.useCallback)(()=>{if(e!=="specifyValue"&&e!=="fullHeight"){l(h=>h===void 0?h:void 0);return}const c=t.current;if(!c)return;const u=c.getBoundingClientRect().height;if(!u)return;const d=getOuterHeight(o.current),m=getOuterHeight(r.current),p=Math.max(0,Math.floor(u-d-m));l(h=>h===p?h:p)},[e,t,o,r]);return(0,import_react2.useLayoutEffect)(()=>{a()},[a,...i]),(0,import_react2.useEffect)(()=>{if(!t.current||typeof ResizeObserver>"u")return;const c=t.current,u=o.current,d=r.current,m=new ResizeObserver(()=>a());return m.observe(c),u&&m.observe(u),d&&m.observe(d),()=>m.disconnect()},[a,t,o,r,...i]),n};class DetailsBlockModel extends CollectionBlockModel{constructor(){super(...arguments),R(this,"hadSingleRecordData",!1),R(this,"hasMultiRefreshDispatched",!1),R(this,"_defaultCustomModelClasses",{RecordActionGroupModel:"RecordActionGroupModel",DetailsItemModel:"DetailsItemModel",DetailsAssociationFieldGroupModel:"DetailsAssociationFieldGroupModel",DetailsCustomItemModel:"DetailsCustomItemModel"}),R(this,"customModelClasses",{}),R(this,"handlePageChange",t=>L(this,null,function*(){if(this.resource instanceof import_flow_engine.MultiRecordResource){const o=this.resource;o.setPage(t),o.loading=!0,yield this.refresh()}}))}createResource(t,o){var r,i;if(((r=this.association)==null?void 0:r.type)==="hasOne"||((i=this.association)==null?void 0:i.type)==="belongsTo"){const l=this.context.createResource(import_flow_engine.SingleRecordResource);return l.isNewRecord=!1,l}if(Object.keys(o).includes("filterByTk")){const l=this.context.createResource(import_flow_engine.SingleRecordResource);return l.isNewRecord=!1,l}const n=this.context.createResource(import_flow_engine.MultiRecordResource);return n.setPageSize(1),n}onInit(t){var o,r,i;super.onInit(t),this.hadSingleRecordData=(i=(r=(o=this.resource)==null?void 0:o.hasData)==null?void 0:r.call(o))!=null?i:!1,this.hasMultiRefreshDispatched=!1;const n=(0,import_flow_engine.createCurrentRecordMetaFactory)(this.context,()=>this.collection);this.context.defineProperty("record",{get:()=>this.getCurrentRecord(),cache:!1,resolveOnServer:(0,import_flow_engine.createRecordResolveOnServerWithLocal)(()=>this.collection,()=>this.getCurrentRecord()),meta:n}),this.resource.on("refresh",()=>{var l,a,c;if(this.isMultiRecordResource()){this.hasMultiRefreshDispatched=!0,dispatchEventDeep(this,"paginationChange");return}const u=this.hadSingleRecordData;this.hadSingleRecordData=(c=(a=(l=this.resource)==null?void 0:l.hasData)==null?void 0:a.call(l))!=null?c:!1,u&&dispatchEventDeep(this,"paginationChange")})}isMultiRecordResource(){return this.resource instanceof import_flow_engine.MultiRecordResource}hasDispatchedMultiRefresh(){return this.hasMultiRefreshDispatched}getCurrentRecord(){const t=this.resource.getData();return Array.isArray(t)?t[0]:t}hasAvailableData(){return this.resource.hasData()}refresh(){return L(this,null,function*(){yield this.resource.refresh()})}renderPagination(){var t,o;if(!this.resource.loading&&!this.hasAvailableData())return(0,import_jsx_runtime.jsx)("div",{style:{textAlign:"center",color:(o=(t=this.context)==null?void 0:t.themeToken)==null?void 0:o.colorTextDescription},children:this.translate("No available data currently")});const r=this.resource;return!this.isMultiRecordResource()||!r.getPage()||this.resource.getMeta("count")<=1?null:(0,import_jsx_runtime.jsx)("div",{style:{textAlign:"center"},children:(0,import_jsx_runtime.jsx)(import_antd.Pagination,{simple:!0,pageSize:1,showSizeChanger:!1,defaultCurrent:r.getPage(),total:r.getTotalPage(),onChange:this.handlePageChange,style:{display:"inline-block"}})})}renderConfigureActions(){return(0,import_jsx_runtime.jsx)(import_flow_engine.AddSubModelButton,{model:this,subModelKey:"actions",subModelBaseClass:this.getModelClassName("RecordActionGroupModel"),afterSubModelInit:t=>L(this,null,function*(){t.setStepParams("buttonSettings","general",{type:"default"})}),children:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowSettingsButton,{icon:(0,import_jsx_runtime.jsx)(import_icons.SettingOutlined,{}),children:this.translate("Actions")})},"details-actions-add")}renderComponent(){const{colon:t,labelAlign:o,labelWidth:r,labelWrap:i,layout:n}=this.props,l=!!this.context.flowSettingsEnabled,a=!l&&!this.hasAvailableData(),{heightMode:c,height:u}=this.decoratorProps;return(0,import_jsx_runtime.jsx)(DetailsBlockContent,{model:this,gridModel:this.subModels.grid,isConfigMode:l,heightMode:c,height:u,layoutProps:{colon:t,labelAlign:o,labelWidth:r,labelWrap:i,layout:n},actions:(0,import_jsx_runtime.jsx)(import_flow_engine.DndProvider,{children:(0,import_jsx_runtime.jsx)("div",{style:a?{pointerEvents:"none",opacity:.45}:void 0,children:(0,import_jsx_runtime.jsxs)(import_antd.Space,{wrap:!0,children:[this.mapSubModels("actions",d=>{if(!(d.hidden&&!l))return(0,import_jsx_runtime.jsx)(import_flow_engine.Droppable,{model:d,children:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,{model:d,showFlowSettings:{showBackground:!1,showBorder:!1,toolbarPosition:"above"},extraToolbarItems:[{key:"drag-handler",component:import_flow_engine.DragHandler,sort:1}]})},d.uid)}),this.renderConfigureActions()]})})})})}}R(DetailsBlockModel,"scene",BlockSceneEnum.oam);const DetailsBlockContent=({model:e,gridModel:t,isConfigMode:o,heightMode:r,height:i,layoutProps:n,actions:l})=>{const a=(0,import_react2.useRef)(null),c=(0,import_react2.useRef)(null),u=(0,import_react2.useRef)(null),d=r==="specifyValue"||r==="fullHeight",m=useDetailsGridHeight({heightMode:r,containerRef:a,actionsRef:c,paginationRef:u,deps:[i]});return(0,import_react2.useEffect)(()=>{var p,h;if(!t)return;const g=d?m:void 0;((p=t.props)==null?void 0:p.height)===g&&((h=t.props)==null?void 0:h.heightMode)===r||t.setProps({height:g,heightMode:r})},[t,m,d,r]),(0,import_jsx_runtime.jsx)(FormComponent,{model:e,layoutProps:n,style:d?{display:"flex",flexDirection:"column",minHeight:0,height:"100%"}:void 0,children:(0,import_jsx_runtime.jsxs)("div",{ref:a,style:d?{display:"flex",flexDirection:"column",minHeight:0,flex:1}:void 0,children:[(0,import_jsx_runtime.jsx)("div",{ref:c,style:{textAlign:"right",lineHeight:"0px",paddingBottom:o&&e.context.themeToken.padding},children:l}),(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,{model:t,showFlowSettings:!1},`${(t==null?void 0:t.uid)||"details-grid"}:${o?"design":"runtime"}`),(0,import_jsx_runtime.jsx)("div",{ref:u,children:e.renderPagination()})]})})};DetailsBlockModel.registerFlow({key:"detailsSettings",title:(0,import_flow_engine.tExpr)("Details settings"),sort:150,steps:{refresh:{handler(e){return L(this,null,function*(){if(!e.resource)throw new Error("Resource is not initialized");yield e.model.applySubModelsBeforeRenderFlows("grid")})}},layout:{use:"layout",title:(0,import_flow_engine.tExpr)("Layout")},dataScope:{use:"dataScope"},defaultSorting:{use:"sortingRule",title:(0,import_flow_engine.tExpr)("Default sorting")},linkageRules:{use:"detailsFieldLinkageRules"}}});DetailsBlockModel.registerFlow({key:"paginationChange",on:"paginationChange",steps:{blockLinkageRulesRefresh:{use:"linkageRulesRefresh",defaultParams:{actionName:"blockLinkageRules",flowKey:"cardSettings",stepKey:"linkageRules"}},fieldslinkageRulesRefresh:{use:"linkageRulesRefresh",defaultParams:{actionName:"detailsFieldLinkageRules",flowKey:"detailsSettings",stepKey:"linkageRules"}}}});DetailsBlockModel.registerFlow({key:"initialPaginationChangeRefresh",sort:10001,steps:{refreshPaginationRelatedStates:{handler(e){return L(this,null,function*(){var t;if(e.model.hidden||!e.model.isMultiRecordResource()||e.model.hasDispatchedMultiRefresh())return;const o=e.model.resource;if(!o)return;const r=((t=o.dataLoadingMode)!=null?t:o.loadingMode)==="manual",i=typeof o.hasActiveFilters=="function"?o.hasActiveFilters():!1;!r||i||(yield dispatchEventDeep(e.model,"paginationChange"))})}}}});DetailsBlockModel.define({label:(0,import_flow_engine.tExpr)("Details"),searchable:!0,searchPlaceholder:(0,import_flow_engine.tExpr)("Search"),createModelOptions:{use:"DetailsBlockModel",subModels:{grid:{use:"DetailsGridModel"}}},sort:350});class DetailsCustomItemModel extends import_flow_engine.FlowModel{static defineChildren(t){const o=t.engine.filterModelClassByParent("CommonItemModel"),r=t.engine.filterModelClassByParent("DetailsCustomItemModel"),i=n=>Array.from(n.entries()).map(([l,a])=>{var c,u,d,m,p,h;const g=typeof a.defineChildren=="function"||!!((c=a.meta)!=null&&c.children),f={key:l,label:t.t(a.meta.label),sort:(u=a.meta.sort)!=null?u:999,searchable:!!((d=a.meta)!=null&&d.searchable),searchPlaceholder:(m=a.meta)==null?void 0:m.searchPlaceholder,hide:(p=a.meta)==null?void 0:p.hide};return g?f.children=_=>{var v;return typeof a.defineChildren=="function"?a.defineChildren(_):((v=a.meta)==null?void 0:v.children)||[]}:f.createModelOptions=((h=a.meta)==null?void 0:h.createModelOptions)||{use:l},f});return import_lodash.default.sortBy([...i(o),...i(r)],"sort")}}R(DetailsCustomItemModel,"renderMode",import_flow_engine.ModelRenderMode.RenderFunction);DetailsCustomItemModel.define({hide:!0,label:(0,import_flow_engine.tExpr)("Others")});class DetailsGridModel extends GridModel{constructor(){super(...arguments),R(this,"itemFallback",(0,import_jsx_runtime.jsx)(import_antd.Skeleton.Input,{block:!0,size:"small",style:{marginBottom:"0.5rem"}})),R(this,"itemSettingsMenuLevel",2),R(this,"itemFlowSettings",{showBackground:!0,style:{top:-6,left:-6,right:-6,bottom:-6}}),R(this,"dragOverlayConfig",{columnInsert:{before:{offsetTop:-6,height:24},after:{offsetTop:3,height:24}},columnEdge:{left:{offsetLeft:-5,width:24},right:{offsetLeft:8,width:24}},rowGap:{above:{offsetTop:-2,height:24},below:{offsetTop:-12,height:24}}})}renderAddSubModelButton(){return this.context.flowSettingsEnabled?(0,import_jsx_runtime.jsx)(import_flow_engine.AddSubModelButton,{model:this,subModelKey:"items",subModelBaseClasses:[this.context.getModelClassName("DetailsItemModel"),this.context.getModelClassName("DetailsAssociationFieldGroupModel"),this.context.getModelClassName("DetailsCustomItemModel")].filter(Boolean),keepDropdownOpen:!0,children:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowSettingsButton,{icon:(0,import_jsx_runtime.jsx)(import_icons.SettingOutlined,{}),children:this.translate("Fields")})}):null}render(){var t,o;const r=(t=this.props)==null?void 0:t.height,i=(o=this.props)==null?void 0:o.heightMode,n=this.context.themeToken,l=super.render();return i==="defaultHeight"?l:(0,import_jsx_runtime.jsx)("div",{style:{height:r,overflowY:"auto",marginLeft:`-${n.marginLG}px`,marginRight:`-${n.marginLG}px`,paddingLeft:`${n.marginLG}px`,paddingRight:`${n.marginLG}px`},children:l})}}DetailsGridModel.registerFlow({key:"detailFieldGridSettings",steps:{grid:{handler(e,t){e.model.setProps("rowGap",0),e.model.setProps("colGap",16)}}}});function transformChildrenToJS(e,t){const{fieldUseModel:o,refreshTargets:r}=t,i=n=>Array.isArray(n)?n.map(l=>{const a=x({},l);if(a.children)if(typeof a.children=="function"){const c=a.children;a.children=u=>L(this,null,function*(){const d=yield c(u);return i(d)})}else Array.isArray(a.children)&&(a.children=i(a.children));if(a.createModelOptions){const c=a.createModelOptions;a.createModelOptions=(u,d)=>L(this,null,function*(){const m=yield typeof c=="function"?c(u,d):c;return m.subModels=m.subModels||{},m.subModels.field=A(x({},m.subModels.field||{}),{use:o}),m}),a.refreshTargets=a.refreshTargets||r}return a}):[];return i(e)}function buildAssociationJSGroup(e,t,o){var r,i,n,l;const{fieldUseModel:a,refreshTargets:c}=o,u=(r=o.key)!=null?r:"js-association-fields",d=(i=o.label)!=null?i:(0,import_flow_engine.tExpr)("Display association fields"),m=(n=o.searchable)!=null?n:!0,p=(l=o.searchPlaceholder)!=null?l:(0,import_flow_engine.tExpr)("Search fields");return{key:u,type:"group",label:d,searchable:m,searchPlaceholder:p,children:h=>L(this,null,function*(){const g=yield t(h);return transformChildrenToJS(g,{fieldUseModel:a,refreshTargets:c})})}}function buildJSFieldMenuChildren(e,t){return L(this,null,function*(){var o;const{useModel:r,fieldUseModel:i,refreshTargets:n,associationPathName:l,associationProvider:a}=t,c=(0,import_flow_engine.buildWrapperFieldChildren)(e,{useModel:r,fieldUseModel:i,associationPathName:l,refreshTargets:n});let u=[];const d=(o=c==null?void 0:c[0])==null?void 0:o.children;if(Array.isArray(d)&&(u=d),!a)return u;const m=yield a(e);if(!Array.isArray(m)||m.length===0)return u;const p=buildAssociationJSGroup(e,a,{fieldUseModel:i,refreshTargets:n});return[...u,p]})}class DetailsJSFieldItemModel extends DetailsCustomItemModel{static defineChildren(t){return buildJSFieldMenuChildren(t,{useModel:"DetailsItemModel",fieldUseModel:"JSFieldModel",refreshTargets:["DetailsItemModel"],associationProvider:o=>DetailsAssociationFieldGroupModel.defineChildren(o)})}}DetailsJSFieldItemModel.define({label:(0,import_flow_engine.tExpr)("JS field"),searchable:!0,searchPlaceholder:(0,import_flow_engine.tExpr)("Search fields"),sort:110});class FilterFormFieldModel extends FieldModel{}class AssociationFieldModel extends FieldModel{constructor(){super(...arguments),R(this,"operator","$eq"),R(this,"updateAssociation",!0)}}AssociationFieldModel.registerFlow({key:"AssociationFieldInit",sort:800,steps:{init:{handler(e,t){return L(this,null,function*(){var o,r;if(e.model.updateAssociation){const i=e.model.context.blockModel,n=(o=i==null?void 0:i.context)==null?void 0:o.resource,l=(r=e.model.parent)==null?void 0:r.fieldPath;if(!n||!l)return;n.addUpdateAssociationValues(l)}})}},allowCreateCheck:{handler(e){return L(this,null,function*(){var t;const o=yield e.aclCheck({dataSourceKey:e.collectionField.dataSourceKey,resourceName:(t=e.collectionField)==null?void 0:t.target,actionName:"create"});e.model.setProps({allowCreate:!!o})})}}}});const isPlaceholderFieldName=(e,t)=>e===t,unwrapAssociationOptionRecord=e=>{if(e&&typeof e=="object"){const t=e.data;return t&&typeof t=="object"?t:e}};function normalizeFilterTargetKey$1(e){if(typeof e=="string"&&e)return e;if(Array.isArray(e)&&e.length===1&&typeof e[0]=="string")return e[0]}function normalizeAssociationFieldNames(e,t){var o;const r=typeof((o=t==null?void 0:t.titleCollectionField)==null?void 0:o.name)=="string"?t.titleCollectionField.name:void 0,i=normalizeFilterTargetKey$1(t==null?void 0:t.filterTargetKey)||"id",n=typeof(e==null?void 0:e.value)=="string"&&e.value&&!isPlaceholderFieldName(e.value,"value")?e.value:void 0,l=typeof(e==null?void 0:e.label)=="string"&&e.label&&!isPlaceholderFieldName(e.label,"label")?e.label:void 0,a=n||i;return{label:l||r||a,value:a}}function buildOpenerUids(e,t={}){var o,r,i,n,l,a;const c=!!t.navigation,u=_=>{if(Array.isArray(_))return _.filter(v=>typeof v=="string"&&!!v)},d=u((r=(o=e.view)==null?void 0:o.inputArgs)==null?void 0:r.openerUids),m=u(t.openerUids),p=d||m||[];if(c)return(m||p).filter(Boolean);const h=(n=(i=e.view)==null?void 0:i.inputArgs)==null?void 0:n.viewUid,g=(a=(l=e.model.context)==null?void 0:l.inputArgs)==null?void 0:a.viewUid,f=typeof h=="string"&&h?h:typeof g=="string"&&g?g:e.model.uid;return[...p,f].filter(Boolean)}function toSafeDisplayLabel(e){var t;if(typeof e=="string"||typeof e=="number"||typeof e=="boolean")return e;if(Array.isArray(e)){const o=e.map(r=>{var i;if(typeof r=="string"||typeof r=="number"||typeof r=="boolean")return r;if(r&&typeof r=="object"){const n=(i=r.label)!=null?i:r.name;if(typeof n=="string"||typeof n=="number"||typeof n=="boolean")return n}}).filter(r=>r!==void 0);return o.length?o.map(String).join(", "):void 0}if(e&&typeof e=="object"){const o=(t=e.label)!=null?t:e.name;if(typeof o=="string"||typeof o=="number"||typeof o=="boolean")return o}}function LabelByField(e){var t,o,r,i,n,l,a;const{option:c,fieldNames:u}=e,d=(0,import_flow_engine.useFlowModel)(),m=unwrapAssociationOptionRecord(c),p=normalizeAssociationFieldNames(u,(t=d.context.collectionField)==null?void 0:t.targetCollection),h=d.subModels.field,g=(r=(o=toSafeDisplayLabel(m==null?void 0:m[p.label]))!=null?o:toSafeDisplayLabel(m==null?void 0:m.label))!=null?r:toSafeDisplayLabel(m==null?void 0:m[p.value]);if(!h)return(0,import_jsx_runtime.jsx)("span",{children:g??"N/A"});const f=String((n=(i=m==null?void 0:m[p.value])!=null?i:g)!=null?n:"association-option"),_=h.createFork({},f);_.context.defineProperty("record",{get:()=>m,cache:!1,meta:(0,import_flow_engine.createCurrentRecordMetaFactory)(_.context,()=>_.context.collection)});const v=(a=(l=d.context.collectionField.targetCollection)==null?void 0:l.getField)==null?void 0:a.call(l,p.label),y=v&&typeof v.getComponentProps=="function"?v.getComponentProps():{};_.setProps(x({value:g,clickToOpen:!1},y));const C=g!==null&&typeof g<"u"&&g!==""?_.render():"N/A";return(0,import_jsx_runtime.jsx)("span",{style:{pointerEvents:"none"},children:C})}function toSelectValue(e,t,o=!1,r="record",i=[]){if(!e)return o?[]:void 0;const{value:n}=t||{},l=c=>typeof c=="object"&&c!==null,a=c=>{if(l(c))return{label:(0,import_jsx_runtime.jsx)(LabelByField,{option:c,fieldNames:t}),value:c[n]}};if(r==="value"){const c=u=>{if(typeof u=="object"&&u!==null)return a(u);const d=i.find(m=>(m==null?void 0:m[n])===u);return d?a(d):{label:String(u),value:u}};return o?Array.isArray(e)?e.map(u=>c(u)).filter(Boolean):[]:Array.isArray(e)?c(e[0]):c(e)}if(o)return Array.isArray(e)?e.filter(l).map(a).filter(Boolean):[];if(Array.isArray(e)){const c=e[0];return l(c)?a(c):void 0}return l(e)?a(e):void 0}function resolveOptions(e,t,o){return e!=null&&e.length?e.map(r=>(0,import_lodash.omit)(r,"disabled","options","style")):o?Array.isArray(t)?t.filter(r=>typeof r=="object"&&r!==null):[]:t&&typeof t=="object"?[t]:[]}const labelClassName=import_css.css`
|
|
1848
1848
|
div {
|
|
1849
1849
|
white-space: nowrap !important;
|
|
1850
1850
|
overflow: hidden;
|
|
@@ -1865,7 +1865,7 @@ ctx.message.success('Current form values: ' + JSON.stringify(values));
|
|
|
1865
1865
|
white-space: nowrap;
|
|
1866
1866
|
width: calc(${this.props.width}px - 16px);
|
|
1867
1867
|
opacity: ${this.hidden?"0.3":"1"};
|
|
1868
|
-
`,children:this.props.title})})}),o=this.render();return A(x({},this.props),{sortField:getTableColumnSortField(this),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*(){var t,o;return!e.model.collectionField.getInterfaceOptions().sortable||((o=(t=e.collectionField)==null?void 0:t.isAssociationField)==null?void 0:o.call(t))||!!e.model.associationPathName||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(">",">"),[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=te(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:y,onChange:C}=v,b=te(v,["model","onChange"]),F=(0,import_react2.useMemo)(()=>(0,import_lodash.debounce)(S=>{_.onChange&&_.onChange(S),C&&C(S)},200),[_.onChange,C]);return(0,import_jsx_runtime.jsx)(import_flow_engine.FieldModelRenderer,A(x({model:y},b),{onChange:F}))},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);function shouldCommitImmediately(e){return Array.isArray(e)?!0:e&&typeof e=="object"?!("target"in e):!1}const FieldModelRendererOptimize=import_react2.default.memo(e=>{const t=e,{model:o,onChange:r,value:i}=t,n=te(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,shouldCommitImmediately(u)&&(r==null||r(u))},[r]),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`
|
|
1868
|
+
`,children:this.props.title})})}),o=this.render();return A(x({},this.props),{sortField:getTableColumnSortField(this),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 l.setProps({value:u}),(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*(){var t,o;return!e.model.collectionField.getInterfaceOptions().sortable||((o=(t=e.collectionField)==null?void 0:t.isAssociationField)==null?void 0:o.call(t))||!!e.model.associationPathName||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(">",">"),[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=te(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:y,onChange:C}=v,b=te(v,["model","onChange"]),F=(0,import_react2.useMemo)(()=>(0,import_lodash.debounce)(S=>{_.onChange&&_.onChange(S),C&&C(S)},200),[_.onChange,C]);return(0,import_jsx_runtime.jsx)(import_flow_engine.FieldModelRenderer,A(x({model:y},b),{onChange:F}))},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);function shouldCommitImmediately(e){return Array.isArray(e)?!0:e&&typeof e=="object"?!("target"in e):!1}const FieldModelRendererOptimize=import_react2.default.memo(e=>{const t=e,{model:o,onChange:r,value:i}=t,n=te(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,shouldCommitImmediately(u)&&(r==null||r(u))},[r]),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`
|
|
1869
1869
|
.ant-form-item-explain-error {
|
|
1870
1870
|
white-space: break-spaces;
|
|
1871
1871
|
}
|
|
@@ -2013,7 +2013,7 @@ ctx.message.success('Current form values: ' + JSON.stringify(values));
|
|
|
2013
2013
|
overflow: hidden;
|
|
2014
2014
|
text-overflow: ellipsis;
|
|
2015
2015
|
}
|
|
2016
|
-
`,children:F.label}),dropdownRender:F=>{const S=f.some(P=>P[r.label]===h.searchText);return(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:c==="quickAdd"&&d&&m&&h.searchText?(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[!(f.length===0&&h.searchText)&&F,f.length>0&&h.searchText&&!S&&(0,import_jsx_runtime.jsx)(import_antd.Divider,{style:{margin:0}}),!S&&(0,import_jsx_runtime.jsx)(C,{searchText:h.searchText})]}):F})}})),c==="modalAdd"&&(d&&m||v)&&(d&&m?(0,import_jsx_runtime.jsx)(import_antd.Button,{onClick:h.onModalAddClick,children:y("Add new")}):(0,import_jsx_runtime.jsx)(ActionWithoutPermission,{forbidden:{actionName:"create"},collection:(t=_==null?void 0:_.collectionField)==null?void 0:t.targetCollection,message:b,children:(0,import_jsx_runtime.jsx)(import_antd.Button,{onClick:h.onModalAddClick,disabled:!m,style:{opacity:"0.3"},children:y("Add new")})}))]})};class FilterFormCustomRecordSelectFieldModel extends RecordSelectFieldModel{constructor(){super(...arguments),R(this,"valueOptionsSyncKey",null),R(this,"valueOptionsSyncedKey",null),R(this,"valueOptionsSyncTask",null)}buildValueOptionsSyncKey(){var t,o,r,i,n,l,a,c,u,d,m,p,h;if((((t=this.props)==null?void 0:t.valueMode)||"record")!=="value")return null;const g=((o=this.props)==null?void 0:o.fieldNames)||{},f=((i=(r=this.context.collectionField)==null?void 0:r.targetCollection)==null?void 0:i.filterTargetKey)||"id",_=(g==null?void 0:g.value)||"id",v=!!((n=this.props)!=null&&n.multiple&&(l=this.props)!=null&&l.allowMultiple),y=resolveOptions((a=this.props)==null?void 0:a.options,(c=this.props)==null?void 0:c.value,v),C=(p=(m=(d=(u=this.context.collectionField)==null?void 0:u.targetCollection)==null?void 0:d.getField)==null?void 0:m.call(d,f))==null?void 0:p.type,b=normalizePrimaryKeys((h=this.props)==null?void 0:h.value,y,f,_,v,C);if(!b.length)return null;const F=new Set(y.map(P=>P==null?void 0:P[f]).filter(P=>P!=null)),S=b.filter(P=>!F.has(P));return S.length?`${f}::${S.slice().sort().join(",")}`:null}ensureValueOptionsSynced(){const t=this.buildValueOptionsSyncKey();t&&t!==this.valueOptionsSyncedKey&&(this.valueOptionsSyncTask&&this.valueOptionsSyncKey===t||(this.valueOptionsSyncKey=t,this.valueOptionsSyncTask=this.applyFlow("syncValueOptions").then(()=>{this.valueOptionsSyncedKey=t}).finally(()=>{this.valueOptionsSyncKey===t&&(this.valueOptionsSyncTask=null)})))}onDispatchEventStart(t){return L(this,null,function*(){t==="beforeRender"&&this.ensureValueOptionsSynced()})}getFilterValue(){var t,o;if((this.props.valueMode||"record")==="value"){const r=((o=(t=this.props)==null?void 0:t.fieldNames)==null?void 0:o.value)||"id",i=n=>{var l;return n==null?n:typeof n=="object"?(l=n==null?void 0:n[r])!=null?l:n==null?void 0:n.value:n};return Array.isArray(this.props.value)?this.props.value.map(n=>i(n)).filter(n=>n!=null&&n!==""):i(this.props.value)}return super.getFilterValue()}render(){return this.context.isMobileLayout?(0,import_jsx_runtime.jsx)(MobileLazySelect,A(x({},this.props),{loading:this.resource.loading})):(0,import_jsx_runtime.jsx)(FilterFormLazySelect,x({},this.props))}}FilterFormCustomRecordSelectFieldModel.registerFlow({key:"syncValueOptions",sort:780,steps:{syncByValue:{handler(e){return L(this,null,function*(){var t,o,r,i,n,l,a,c,u,d,m,p,h,g,f;if((((t=e.model.props)==null?void 0:t.valueMode)||"record")!=="value")return;const _=((o=e.model.props)==null?void 0:o.fieldNames)||{},v=((i=(r=e.model.context.collectionField)==null?void 0:r.targetCollection)==null?void 0:i.filterTargetKey)||"id",y=(_==null?void 0:_.value)||"id",C=!!((n=e.model.props)!=null&&n.multiple&&(l=e.model.props)!=null&&l.allowMultiple),b=resolveOptions((a=e.model.props)==null?void 0:a.options,(c=e.model.props)==null?void 0:c.value,C),F=(p=(m=(d=(u=e.model.context.collectionField)==null?void 0:u.targetCollection)==null?void 0:d.getField)==null?void 0:m.call(d,v))==null?void 0:p.type,S=normalizePrimaryKeys((h=e.model.props)==null?void 0:h.value,b,v,y,C,F);if(!S.length)return;const P=new Set(b.map(N=>N==null?void 0:N[v]).filter(N=>N!=null)),j=S.filter(N=>!P.has(N));if(!j.length)return;const I=e.model.resource;if(!I||typeof(I==null?void 0:I.addFilterGroup)!="function"||typeof(I==null?void 0:I.refresh)!="function")return;const T=j.length===1?{[`${v}.$eq`]:j[0]}:{[`${v}.$in`]:j};try{I.addFilterGroup(FILTER_FORM_VALUE_OPTIONS_GROUP,T),yield I.refresh();const N=((g=I.getData)==null?void 0:g.call(I))||[];if(!Array.isArray(N)||!N.length)return;const D=mergeOptionsByValue(b,N,v);if(!(D.length!==b.length||D.some((w,k)=>{var B;return(w==null?void 0:w[v])!==((B=b==null?void 0:b[k])==null?void 0:B[v])})))return;e.model.setDataSource(D)}finally{(f=I.removeFilterGroup)==null||f.call(I,FILTER_FORM_VALUE_OPTIONS_GROUP)}})}}}});FilterFormCustomRecordSelectFieldModel.registerFlow({key:"selectSettings",title:(0,import_flow_engine.tExpr)("Association select settings"),sort:800,steps:{fieldNames:{use:"titleField"},valueFieldOverride:{handler(e){const t=e.model.props.recordSelectValueField;if(!t)return;const o=A(x({},e.model.props.fieldNames||{}),{value:t});e.model.setProps({fieldNames:o})}},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 typeof e.model.props.allowMultiple=="boolean"?{allowMultiple:e.model.props.allowMultiple}:{allowMultiple:e.collectionField&&["belongsToMany","hasMany","belongsToArray"].includes(e.model.context.collectionField.type)}},handler(e,t){var o,r;const i=((r=(o=e==null?void 0:e.blockModel)==null?void 0:o.constructor)==null?void 0:r.scene)===BlockSceneEnum.filter,n=typeof e.model.props.allowMultiple=="boolean"?e.model.props.allowMultiple:t==null?void 0:t.allowMultiple;if(i&&typeof n=="boolean"){e.model.setProps({allowMultiple:n,multiple:n});return}e.model.setProps({allowMultiple:t==null?void 0:t.allowMultiple,multiple: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})}}}});class FilterFormActionModel extends ActionModel{}class FilterFormActionGroupModel extends ActionGroupModel{}R(FilterFormActionGroupModel,"baseClass",FilterFormActionModel);const FILTER_FORM_FLOW_KEYS=["filterFormItemSettings"],getLegacyFilterFormItemInitialValue=createLegacyValueExtractor(FILTER_FORM_FLOW_KEYS),clearLegacyFilterFormItemInitialValue=createLegacyClearer(FILTER_FORM_FLOW_KEYS);function collectLegacyDefaultValueRulesFromFilterFormModel(e){return collectLegacyDefaultValueRules(e,getLegacyFilterFormItemInitialValue)}function clearLegacyDefaultValuesFromFilterFormModel(e){return clearLegacyDefaultValues(e,getLegacyFilterFormItemInitialValue,clearLegacyFilterFormItemInitialValue)}const He=class ct extends FilterBlockModel{constructor(){super(...arguments),R(this,"autoTriggerFilter",!0),R(this,"removeTargetBlockListener")}get form(){return this.context.form}get title(){return"Filter form"}useHooksBeforeRender(){const[t]=import_antd.Form.useForm();this.context.defineProperty("form",{get:()=>t,cache:!1})}saveStepParams(){return L(this,null,function*(){return yield saveStepParamsWithSubModelsIfNeeded(this,()=>L(this,null,function*(){return yield $e(ct.prototype,this,"saveStepParams").call(this)}))})}addAppends(){}onInit(t){super.onInit(t),this.context.defineProperty("blockModel",{value:this}),this.context.defineMethod("refreshTargets",()=>L(this,null,function*(){const o=this.subModels.grid.subModels.items;o&&o.forEach(r=>{var i;(i=r==null?void 0:r.doFilter)==null||i.call(r)})}))}onMount(){super.onMount(),this.context.defineProperty("filterFormGridModel",{value:this.subModels.grid}),this.applyDefaultsAndInitialFilter();const t=this.context.blockGridModel;if(t!=null&&t.emitter){const o=r=>{!(r!=null&&r.uid)||r.uid===this.uid||this.handleTargetBlockRemoved(r.uid)};t.emitter.on("onSubModelRemoved",o),this.removeTargetBlockListener=()=>t.emitter.off("onSubModelRemoved",o)}}onUnmount(){var t;(t=this.removeTargetBlockListener)==null||t.call(this),super.onUnmount()}applyDefaultsAndInitialFilter(){return L(this,null,function*(){var t,o;yield this.ensureFilterItemsBeforeRender(),yield this.applyFormDefaultValues(),yield(o=(t=this.context).refreshTargets)==null?void 0:o.call(t)})}ensureFilterItemsBeforeRender(){return L(this,null,function*(){var t,o;const r=(t=this.subModels)==null?void 0:t.grid,i=((o=r==null?void 0:r.subModels)==null?void 0:o.items)||[];if(!(!Array.isArray(i)||i.length===0))for(const n of i)typeof(n==null?void 0:n.dispatchEvent)=="function"&&(yield n.dispatchEvent("beforeRender"))})}applyFormDefaultValues(t){return L(this,null,function*(){var o,r,i,n,l,a,c,u;const d=this.form;if(!d)return;const m=(t==null?void 0:t.force)===!0,p=(o=this.getStepParams)==null?void 0:o.call(this,"formFilterBlockModelSettings","defaultValues"),h=(p==null?void 0:p.value)||[];if(!Array.isArray(h)||h.length===0)return;const g=f=>L(this,null,function*(){var _,v;if((0,import_flow_engine.isRunJSValue)(f)){const{code:y,version:C}=(0,import_flow_engine.normalizeRunJSValue)(f),b=yield(0,import_flow_engine.runjsWithSafeGlobals)(this.context,y,{version:C});return b!=null&&b.success?b.value:void 0}return yield(v=(_=this.context).resolveJsonTemplate)==null?void 0:v.call(_,f)});for(const f of h){if(!f||typeof f!="object"||f.enable===!1||f.mode&&String(f.mode)!=="default")continue;const _=f.targetPath?String(f.targetPath).trim():"",v=f.field?String(f.field).trim():"",y=(l=_?findFormItemModelByFieldPath(this,_):null)!=null?l:v?(n=(i=(r=this.context)==null?void 0:r.engine)==null?void 0:i.getModel)==null?void 0:n.call(i,v):null;if(!y)continue;const C=typeof y.getProps=="function"?y.getProps():y.props,b=(a=C==null?void 0:C.name)!=null?a:y.fieldPath?`${y.fieldPath}_${y.uid}`:void 0;if(!b)continue;const F=(c=d.getFieldValue)==null?void 0:c.call(d,b);if(!m&&!isEmptyValue(F))continue;const S=yield g(f.value);if(typeof S>"u")continue;const P=getDefaultOperator(y),j=normalizeFilterValueByOperator(P,S);typeof d.setFieldValue=="function"?d.setFieldValue(b,j):(u=d.setFieldsValue)==null||u.call(d,{[String(b)]:j})}})}handleTargetBlockRemoved(t){return L(this,null,function*(){const o=this.context.filterManager,r=this.subModels.grid.subModels.items||[];for(const i of[...r]){const n=o.getConnectFieldsConfig(i.uid),l=(n==null?void 0:n.targets)||[],a=l.some(d=>d.targetId===t),c=i.defaultTargetUid===t;if(!a&&!c)continue;const u=l.filter(d=>d.targetId!==t);if(u.length>0){yield o.saveConnectFieldsConfig(i.uid,{targets:u});continue}yield o.removeFilterConfig({filterId:i.uid}),yield i.destroy()}})}destroy(){return L(this,null,function*(){var t;const o=this.context.filterManager;return(t=this.subModels.grid.subModels.items)==null||t.map(r=>{o.removeFilterConfig({filterId:r.uid,persist:!1})}),yield $e(ct.prototype,this,"destroy").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,onFinish:()=>{this.context.refreshTargets()},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_v5.FormButtonGroup,{align:"right",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.FlowModelRenderer,{model:a,showFlowSettings:{showBackground:!1,showBorder:!1,toolbarPosition:"above"},extraToolbarItems:[{key:"drag-handler",component:import_flow_engine.DragHandler,sort:1}]},a.uid)},a.uid)}),(0,import_jsx_runtime.jsx)(import_flow_engine.AddSubModelButton,{model:this,subModelKey:"actions",subModelBaseClass:"FilterFormActionGroupModel",children:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowSettingsButton,{icon:(0,import_jsx_runtime.jsx)(import_icons.SettingOutlined,{}),children:this.translate("Actions")})},"filter-form-actions-add")]})})]})}};R(He,"scene",BlockSceneEnum.filter);let FilterFormBlockModel=He;FilterFormBlockModel.define({label:(0,import_flow_engine.tExpr)("Form"),createModelOptions:{use:"FilterFormBlockModel",subModels:{grid:{use:"FilterFormGridModel"}}}});FilterFormBlockModel.registerFlow({key:"formFilterBlockModelSettings",title:(0,import_flow_engine.tExpr)("Form settings"),steps:{layout:{use:"layout",title:(0,import_flow_engine.tExpr)("Layout")},defaultValues:{use:"filterFormDefaultValues",title:(0,import_flow_engine.tExpr)("Field values"),beforeParamsSave(e){const t=clearLegacyDefaultValuesFromFilterFormModel(e.model);Array.isArray(t)&&t.length&&markSaveStepParamsWithSubModels(e.model)},afterParamsSave(e){var t,o;(o=(t=e.model)==null?void 0:t.applyFormDefaultValues)==null||o.call(t,{force:!0}).then(()=>{var r,i,n;return(n=(i=(r=e.model)==null?void 0:r.context)==null?void 0:i.refreshTargets)==null?void 0:n.call(i)})}}}});FilterFormBlockModel.registerEvents({formValuesChange:{title:(0,import_flow_engine.tExpr)("Form values change"),name:"formValuesChange",uiSchema:{condition:{type:"object",title:(0,import_flow_engine.tExpr)("Trigger condition"),"x-decorator":"FormItem","x-component":ConditionBuilder}},handler:commonConditionHandler}});const collapseState=(0,import_reactive.observable)({collapsed:!1}),CollapseButton=(0,import_flow_engine.observer)(()=>{const e=(0,import_flow_engine.useFlowModel)(),t=x(x({},e.defaultProps),e.props),o=()=>{e.dispatchEvent("collapseToggle")};return(0,import_jsx_runtime.jsx)(import_antd.Button,A(x({},t),{onClick:o,icon:(0,import_jsx_runtime.jsx)(import_icons.DownOutlined,{rotate:collapseState.collapsed?0:180}),iconPosition:"end",children:collapseState.collapsed?e.translate("Expand button"):e.translate("Collapse button")}))});class FilterFormCollapseActionModel extends FilterFormActionModel{constructor(){super(...arguments),R(this,"defaultProps",{type:"link"}),R(this,"enableEditTitle",!1),R(this,"enableEditIcon",!1)}onMount(){var t,o;super.onMount();const r=((t=this.getStepParams("collapseSettings","defaultCollapsed"))==null?void 0:t.value)||!1,i=((o=this.getStepParams("collapseSettings","toggle"))==null?void 0:o.collapsedRows)||1;collapseState.collapsed=r,this.context.filterFormGridModel.toggleFormFieldsCollapse(collapseState.collapsed,i)}render(){return(0,import_jsx_runtime.jsx)(CollapseButton,{})}}FilterFormCollapseActionModel.registerFlow({key:"collapseSettings",title:(0,import_flow_engine.tExpr)("Collapse settings"),on:"collapseToggle",steps:{toggle:{title:(0,import_flow_engine.tExpr)("Collapsed rows"),uiSchema:{collapsedRows:{type:"number","x-decorator":"FormItem","x-component":import_antd.InputNumber,"x-component-props":{min:1,max:10,placeholder:(0,import_flow_engine.tExpr)("Enter number of rows to display")},default:1}},handler(e,t){return L(this,null,function*(){const o=t.collapsedRows||1;collapseState.collapsed=!collapseState.collapsed,e.model.context.filterFormGridModel.toggleFormFieldsCollapse(collapseState.collapsed,o)})}},defaultCollapsed:{title:(0,import_flow_engine.tExpr)("Default collapsed"),uiSchema:{value:{type:"boolean","x-decorator":"FormItem","x-component":"Switch"}},beforeParamsSave(e,t){var o;const r=t.value||!1;collapseState.collapsed=r;const i=((o=e.model.getStepParams("collapseSettings","toggle"))==null?void 0:o.collapsedRows)||1;e.model.context.filterFormGridModel.toggleFormFieldsCollapse(collapseState.collapsed,i)},handler(e,t){}}}});FilterFormCollapseActionModel.define({label:(0,import_flow_engine.tExpr)("Collapse button"),toggleable:!0,sort:300});FilterFormCollapseActionModel.registerEvents({collapseToggle:{title:(0,import_flow_engine.tExpr)("Collapse / Expand toggle"),name:"collapseToggle",uiSchema:{condition:{type:"object",title:(0,import_flow_engine.tExpr)("Trigger condition"),"x-decorator":"FormItem","x-component":ConditionBuilder}},handler:commonConditionHandler}});const getAssociationTargetCollection=(e,t,o)=>{var r,i,n;if(e!=null&&e.targetCollection)return e.targetCollection;const l=e==null?void 0:e.target;if(!l)return;if((r=t==null?void 0:t.dataSource)!=null&&r.getCollection)return t.dataSource.getCollection(l);const a=t==null?void 0:t.dataSourceKey;if(a&&(n=(i=o==null?void 0:o.context)==null?void 0:i.dataSourceManager)!=null&&n.getCollection)return o.context.dataSourceManager.getCollection(a,l)},getTargetFilterableFields=(e,t,o)=>{const r=getAssociationTargetCollection(e,t,o);return r!=null&&r.getFields?(r.getFields()||[]).filter(i=>i==null?void 0:i.filterable):[]},MAX_ASSOCIATION_DEPTH=5,normalizeAssociationDefaultFilterValue=(e,t)=>{var o,r,i,n,l;const a=(o=t==null?void 0:t.context)==null?void 0:o.collectionField;if(!((r=a==null?void 0:a.isAssociationField)!=null&&r.call(a)))return e;const c=((i=t==null?void 0:t.props)==null?void 0:i.fieldNames)||(a==null?void 0:a.fieldNames)||{},u=(c==null?void 0:c.value)||(a==null?void 0:a.targetKey)||((n=a==null?void 0:a.targetCollection)==null?void 0:n.filterTargetKey)||((l=a==null?void 0:a.collection)==null?void 0:l.filterTargetKey)||"id",d=m=>{const p=m&&typeof m=="object"&&typeof(m==null?void 0:m.data)<"u"?m.data:m;return!p||typeof p!="object"?p:typeof(p==null?void 0:p[u])<"u"?p[u]:typeof(p==null?void 0:p.id)<"u"?p.id:typeof(p==null?void 0:p.value)<"u"?p.value:p};return Array.isArray(e)?e.map(d):d(e)},buildVirtualFilterCollectionField=(e,t)=>{var o,r,i;if(!t)return;const n=(t==null?void 0:t.title)||(t==null?void 0:t.name),l=t==null?void 0:t.interface,a=l?(i=(r=(o=e==null?void 0:e.dataSourceManager)==null?void 0:o.collectionFieldInterfaceManager)==null?void 0:r.getFieldInterface)==null?void 0:i.call(r,l):void 0;return A(x({},t),{title:n,uiSchema:A(x({},(t==null?void 0:t.uiSchema)||{}),{title:n}),filterable:(t==null?void 0:t.filterable)||(a==null?void 0:a.filterable),isAssociationField:typeof(t==null?void 0:t.isAssociationField)=="function"?t.isAssociationField:()=>!!(t!=null&&t.target),getComponentProps:typeof(t==null?void 0:t.getComponentProps)=="function"?t.getComponentProps:()=>({})})},buildFilterFormFieldItem=({model:e,collection:t,ctxWithFlags:o,field:r,fieldPath:i,labelPrefix:n})=>{var l,a;const c=import_flow_engine.FilterableItemModel.getDefaultBindingByField(o,r);if(!c)return;const u=(typeof(r==null?void 0:r.isAssociationField)=="function"?r.isAssociationField():r!=null&&r.target)&&(a=(l=o.engine)==null?void 0:l.getModelClass)!=null&&a.call(l,"FilterFormRecordSelectFieldModel")?"FilterFormRecordSelectFieldModel":c.modelName,d=r.title||r.name,m=n?`${n} / ${d}`:d;return{key:i,label:m,useModel:"FilterFormItemModel",refreshTargets:["FilterFormCustomItemModel"],createModelOptions:()=>({use:"FilterFormItemModel",stepParams:{fieldSettings:{init:{dataSourceKey:t==null?void 0:t.dataSourceKey,collectionName:t==null?void 0:t.name,fieldPath:i}},filterFormItemSettings:{init:{filterField:import_lodash.default.pick(r,["name","title","interface","type"]),defaultTargetUid:e.uid}}},subModels:{field:{use:u,props:typeof c.defaultProps=="function"?c.defaultProps(e.context,r):c.defaultProps}}})}},buildAssociationFieldMenuItem=({model:e,collection:t,ctxWithFlags:o,field:r,fieldPath:i,depth:n})=>{var l;if(!getAssociationTargetCollection(r,t,e)||n>MAX_ASSOCIATION_DEPTH)return;const a=r.title||r.name,c=((l=e.context)==null?void 0:l.t)||(o==null?void 0:o.t)||(u=>u);return{key:`${i}-associationField`,label:a,children:()=>L(void 0,null,function*(){const u=getTargetFilterableFields(r,t,e),d=[],m=[];u.forEach(h=>{const g=`${i}.${h.name}`;if(h!=null&&h.targetCollection){const _=buildAssociationFieldMenuItem({model:e,collection:t,ctxWithFlags:o,field:h,fieldPath:g,depth:n+1});_&&m.push(_);return}const f=buildFilterFormFieldItem({model:e,collection:t,ctxWithFlags:o,field:h,fieldPath:g});f&&d.push(f)});const p=[];return d.length&&p.push({key:`${i}-fields`,label:c("Fields"),type:"group",searchable:!0,searchPlaceholder:c("Search fields"),children:d}),m.length&&p.push({key:`${i}-relation-fields`,label:c("Association fields"),type:"group",searchable:!0,searchPlaceholder:c("Search association fields"),children:m}),p.length?p:[{key:`${i}-empty`,label:(0,import_jsx_runtime.jsx)(import_antd.Empty,{style:{width:140},description:c("No data"),image:import_antd.Empty.PRESENTED_IMAGE_SIMPLE}),disabled:!0}]})}},getModelFieldGroups=e=>L(void 0,null,function*(){var t,o;const r=e.collection||e.context.collection,i=(yield(t=e==null?void 0:e.getFilterFields)==null?void 0:t.call(e))||[],n=new import_flow_engine.FlowModelContext(e);n.addDelegate(e.context),n.defineProperty("flags",{value:A(x({},(o=e.context)==null?void 0:o.flags),{isInFilterFormBlock:!0})});const l=[],a=[];return i.forEach(c=>{const u=c.name,d=buildFilterFormFieldItem({model:e,collection:r,ctxWithFlags:n,field:c,fieldPath:u});if(d&&l.push(d),c!=null&&c.targetCollection){const m=buildAssociationFieldMenuItem({model:e,collection:r,ctxWithFlags:n,field:c,fieldPath:u,depth:1});m&&a.push(m)}}),{baseItems:l.filter(Boolean),relationItems:a.filter(Boolean)}});class FilterFormItemModel extends import_flow_engine.FilterableItemModel{constructor(){super(...arguments),R(this,"operator"),R(this,"mounted",!1),R(this,"debouncedDoFilter"),R(this,"lastAutoTriggerValue"),R(this,"autoTriggerInitialized",!1),R(this,"handleEnterPress",t=>{(t.key==="Enter"||t.keyCode===13)&&(t.preventDefault(),this.doFilter())})}static defineChildren(t){const o=t.blockGridModel;if(!o)return[];const r=getAllDataModels(o);return r.length===0?[{key:"no-data-blocks",label:(0,import_jsx_runtime.jsx)(import_antd.Empty,{style:{width:140},description:t.t("Please add a data block on the page first"),image:import_antd.Empty.PRESENTED_IMAGE_SIMPLE}),disabled:!0}]:r.map(i=>({key:i.uid,label:(0,import_jsx_runtime.jsx)("span",{style:{margin:"-5px -24px -5px -12px",padding:"5px 24px 5px 12px"},onMouseEnter:()=>{var n;const l=(n=i.context.ref)==null?void 0:n.current;l instanceof HTMLElement&&(l.style.outline=`2px solid ${i.context.themeToken.colorPrimaryBorder}`)},onMouseLeave:()=>{var n;const l=(n=i.context.ref)==null?void 0:n.current;l instanceof HTMLElement&&(l.style.outline="none")},children:`${i.title} #${i.uid.substring(0,4)}`}),children:()=>L(this,null,function*(){const{baseItems:n,relationItems:l}=yield getModelFieldGroups(i),a=[{key:"fields",label:t.t("Fields"),type:"group",searchable:!0,searchPlaceholder:t.t("Search fields"),children:n}];return l.length&&a.push({key:"relation-fields",label:t.t("Association fields"),type:"group",searchable:!0,searchPlaceholder:t.t("Search association fields"),children:l}),[...a]})}))}get defaultTargetUid(){return this.getStepParams("filterFormItemSettings","init").defaultTargetUid}getCurrentOperatorMeta(){var t,o;const r=getDefaultOperator(this);if(!r)return null;const i=(o=(t=this.collectionField)==null?void 0:t.filterable)==null?void 0:o.operators;return Array.isArray(i)&&i.find(n=>n.value===r)||null}onInit(t){var o;super.onInit(t),this.debouncedDoFilter=(0,import_lodash.debounce)(this.doFilter.bind(this),300);const r=(o=this.getStepParams("filterFormItemSettings","init"))==null?void 0:o.filterField;r&&this.context.defineProperty("filterField",{value:A(x({},r),{title:(r==null?void 0:r.title)||(r==null?void 0:r.name)})})}onMount(){super.onMount(),this.mounted=!0}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=this.subModels.field,l=n.getFilterValue?n.getFilterValue():(t=this.context.form)==null?void 0:t.getFieldValue(this.props.name);let a=l;if(!this.mounted){const d=import_lodash.default.isEmpty(l)?this.getDefaultValue():l;a=normalizeAssociationDefaultFilterValue(d,(o=this.subModels)==null?void 0:o.field)}const c=getDefaultOperator(this);a=this.normalizeAssociationFilterValue(a,n);const u=this.getCurrentOperatorMeta();if(u!=null&&u.noValue){const d=(i=(r=u==null?void 0:u.schema)==null?void 0:r["x-component-props"])==null?void 0:i.options;return Array.isArray(d)?a:!0}return normalizeFilterValueByOperator(c,a)}normalizeAssociationFilterValue(t,o){var r,i;if(t===null||typeof t>"u")return t;const n=(r=o==null?void 0:o.context)==null?void 0:r.collectionField;if(!(typeof(n==null?void 0:n.isAssociationField)=="function"?n.isAssociationField():n!=null&&n.target))return t;const l=(n==null?void 0:n.targetKey)||((i=n==null?void 0:n.targetCollection)==null?void 0:i.filterTargetKey)||"id";return Array.isArray(t)?t.length===0?t:t.map(a=>a&&typeof a=="object"?a[l]:a):typeof t=="object"?t==null?void 0:t[l]:t}getDefaultValue(){var t;return(t=this.getStepParams("filterFormItemSettings","initialValue"))==null?void 0:t.defaultValue}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),isRange:this.operator==="$dateBetween"}}renderItem(){const t=this.subModels.field;return(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:t})}))}}FilterFormItemModel.define({label:(0,import_flow_engine.tExpr)("Block list")});FilterFormItemModel.registerFlow({key:"filterFormItemSettings",sort:300,title:(0,import_flow_engine.tExpr)("Form item settings"),steps:{label:{title:(0,import_flow_engine.tExpr)("Label"),uiSchema:e=>({label:{"x-component":"Input","x-decorator":"FormItem","x-reactions":t=>{var o,r,i;const n=e.model,l=((o=n.collectionField)==null?void 0:o.title)||((r=e.filterField)==null?void 0:r.title)||((i=e.filterField)==null?void 0:i.name)||n.fieldPath;t.decoratorProps=A(x({},t.decoratorProps),{extra:n.context.t("Original field title: ")+l})}}}),defaultParams:e=>{var t,o,r;return{label:((t=e.collectionField)==null?void 0:t.title)||((o=e.filterField)==null?void 0:o.title)||((r=e.filterField)==null?void 0:r.name)}},handler(e,t){var o,r,i;const n=((o=e.collectionField)==null?void 0:o.title)||((r=e.filterField)==null?void 0:r.title)||((i=e.filterField)==null?void 0:i.name);t.label&&t.label===n?e.model.setProps({label:t.label}):e.model.setProps({label:e.t(t.label,{ns:"lm-flow-engine"})})}},init:{handler(e,t){return L(this,null,function*(){var o,r,i,n,l;const a=t.filterField?A(x({},t.filterField),{title:((o=t.filterField)==null?void 0:o.title)||((r=t.filterField)==null?void 0:r.name)}):t.filterField;e.model.context.defineProperty("filterField",{value:a}),e.model.setProps({name:`${e.model.fieldPath}_${e.model.uid}`});let c=e.model.collectionField;const u=((n=(i=e.model).getFieldSettingsInitParams)==null?void 0:n.call(i))||{};if(!(u!=null&&u.dataSourceKey&&u!=null&&u.collectionName)&&!c&&a){const d=buildVirtualFilterCollectionField(e,a);d&&(e.model.context.defineProperty("collectionField",{value:d}),c=d)}if(c!=null&&c.getComponentProps){const d=c.getComponentProps(),m=((l=e.model.subModels)==null?void 0:l.field)instanceof RecordSelectFieldModel,p=d||{},{rules:h,required:g,multiple:f,allowMultiple:_,maxCount:v}=p,y=te(p,["rules","required","multiple","allowMultiple","maxCount"]);e.model.setProps(A(x({},m?y:A(x({},y),{multiple:f,allowMultiple:_,maxCount:v})),{rules:void 0,required:void 0}))}})}},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})}},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"})})}},initialValue:{title:(0,import_flow_engine.tExpr)("Default value"),disabledInSettings:!0,disabledReasonInSettings:e=>`${e.t("This setting has been moved to")}: ${e.t("Form block settings")} > ${e.t("Field values")}`,uiSchema:e=>{var t,o;const r=((o=(t=e==null?void 0:e.model)==null?void 0:t.context)==null?void 0:o.flags)||{};return{defaultValue:{"x-component":"DefaultValue","x-decorator":"FormItem","x-component-props":{flags:A(x({},r),{isInSetDefaultValueDialog:!0})}}}},handler(e,t){e.model.setProps({initialValue:t.defaultValue})}},model:{use:"fieldComponent",title:(0,import_flow_engine.tExpr)("Field component"),uiMode(e){const t=import_flow_engine.FilterableItemModel.getBindingsByField(e,e.collectionField),o=e.t;return{type:"select",key:"use",props:{options:t.map(r=>({label:o(r.modelName),value:r.modelName}))}}},hideInSettings(e){if(import_flow_engine.FilterableItemModel.getBindingsByField(e,e.collectionField).length===1)return!0}},connectFields:{use:"connectFields"},defaultOperator:{use:"defaultOperator"},operatorComponentProps:{use:"operatorComponentProps"},customizeFilterRender:{use:"customizeFilterRender"}}});FilterFormItemModel.registerFlow({key:"fieldSettings",title:(0,import_flow_engine.tExpr)("Field settings"),steps:{init:{handler(e,t){}}}});class FilterFormGridModel extends GridModel{constructor(){super(...arguments),R(this,"itemSettingsMenuLevel",2),R(this,"itemFlowSettings",{showBackground:!0,style:{top:-6,left:-6,right:-6,bottom:-6}}),R(this,"dragOverlayConfig",{columnInsert:{before:{offsetTop:-12,height:24},after:{offsetTop:7,height:24}},columnEdge:{left:{offsetLeft:-5,width:24},right:{offsetLeft:8,width:24}},rowGap:{above:{offsetTop:0,height:24},below:{offsetTop:-14,height:24}}}),R(this,"loading",import_flow_engine.observable.ref(!1))}getAssociationFilterTargetKey(t){var o;const r=(o=t==null?void 0:t.targetCollection)==null?void 0:o.filterTargetKey;return Array.isArray(r)?r[0]||"id":r||"id"}getFullLayout(){const t=this.getStepParams(GRID_FLOW_KEY,GRID_STEP)||{},o=this.props.rows||{},r=t.rows||{},i=Object.keys(o).length,n=Object.keys(r).length,l=p=>Object.values(p).reduce((h,g)=>h+g.reduce((f,_)=>f+_.length,0),0),a=l(o),c=l(r),u=i>n||i===n&&a>=c,d=this.mergeRowsWithItems(u?o:r),m=u?this.props.rowOrder||t.rowOrder:t.rowOrder||this.props.rowOrder;return this.normalizeRowsWithOrder(d,m)}limitRowsByVisibleCount(t,o,r){const i={};let n=r;return o.forEach(l=>{if(n<=0||!t[l])return;const a=t[l],c=a.reduce((m,p)=>Math.max(m,p.length),0),u=Math.min(c,n),d=a.map(m=>m.slice(0,u));d.some(m=>m.length>0)&&(i[l]=d,n-=u)}),i}toggleFormFieldsCollapse(t,o){const{rows:r,rowOrder:i}=this.getFullLayout();if(!t){this.setProps("rows",r),this.setProps("rowOrder",i);return}const n=this.limitRowsByVisibleCount(r,i,o);this.setProps("rows",n),this.setProps("rowOrder",i)}onModelCreated(t){return L(this,null,function*(){if(!(t instanceof FilterFormItemModel))return;const{fieldPath:o}=t.getFieldSettingsInitParams(),r=getAllDataModels(t.context.blockGridModel).filter(i=>{var n;return(n=i.resource)!=null&&n.supportsFilter?i.uid===t.defaultTargetUid:!1});if(r.length>0){const i=r.map(n=>{var l,a,c;const u=n.collection||n.context.collection;if(u){let d;if(o!=null&&o.includes(".")){const m=`${u.dataSourceKey}.${u.name}.${o}`;d=(a=(l=n.context.dataSourceManager)==null?void 0:l.getCollectionField)==null?void 0:a.call(l,m)}if(d||(d=(c=u.getField)==null?void 0:c.call(u,o)),d!=null&&d.target)return{targetId:n.uid,filterPaths:[`${o}.${this.getAssociationFilterTargetKey(d)}`]}}return{targetId:n.uid,filterPaths:[o]}});yield this.context.filterManager.saveConnectFieldsConfig(t.uid,{targets:i})}})}renderAddSubModelButton(){var t,o,r;return this.loading.value?null:(0,import_jsx_runtime.jsx)(import_flow_engine.AddSubModelButton,{subModelKey:"items",model:this,afterSubModelInit:this.onModelCreated.bind(this),keepDropdownOpen:!0,subModelBaseClasses:["FilterFormItemModel","FilterFormCustomItemModel"],children:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowSettingsButton,{icon:(0,import_jsx_runtime.jsx)(import_icons.SettingOutlined,{}),children:this.translate("Fields")})},(r=(o=(t=this.context.blockGridModel)==null?void 0:t.subModels)==null?void 0:o.items)==null?void 0:r.length)}}FilterFormGridModel.registerFlow({key:"filterFormGridSettings",steps:{grid:{handler(e,t){e.model.setProps("rowGap",0),e.model.setProps("colGap",16)}}}});class FilterFormJSActionModel extends FilterFormActionModel{}FilterFormJSActionModel.define({label:(0,import_flow_engine.tExpr)("JS action"),sort:9999});FilterFormJSActionModel.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:"400px",theme:"light",enableLinter:!0,wrapperStyle:{position:"fixed",inset:8}}}},uiMode:{type:"embed",props:{styles:{body:{transform:"translateX(0)"}}}},defaultParams(e){return{version:"v2",code:""}},handler(e,t){return L(this,null,function*(){const{code:o,version:r}=resolveRunJsParams(e,t),i=(0,import_flow_engine.createSafeNavigator)();yield e.runjs(o,{window:(0,import_flow_engine.createSafeWindow)({navigator:i}),document:(0,import_flow_engine.createSafeDocument)(),navigator:i},{version:r})})}}}});class FilterFormResetActionModel extends FilterFormActionModel{constructor(){super(...arguments),R(this,"defaultProps",{title:(0,import_flow_engine.tExpr)("Reset")})}}FilterFormResetActionModel.registerFlow({key:"resetSettings",on:{eventName:"click"},steps:{doReset:{handler(e,t){return L(this,null,function*(){const o=e.model.context.blockModel,r=o.subModels.grid.subModels.items;e.form.resetFields(),setTimeout(()=>{var i;(i=o.applyFormDefaultValues)==null||i.call(o,{force:!0}).finally(()=>{r.forEach(n=>{n.doReset()})})})})}}}});FilterFormResetActionModel.define({label:(0,import_flow_engine.tExpr)("Reset"),toggleable:!0,sort:200});class FilterFormSubmitActionModel extends FilterFormActionModel{constructor(){super(...arguments),R(this,"defaultProps",{title:(0,import_flow_engine.tExpr)("Filter"),type:"primary"})}onInit(t){super.onInit(t),this.context.blockModel.autoTriggerFilter=!1}onUnmount(){super.onUnmount(),this.context.blockModel.autoTriggerFilter=!0}}FilterFormSubmitActionModel.registerFlow({key:"submitSettings",on:{eventName:"click"},steps:{doFilter:{handler(e,t){return L(this,null,function*(){e.form.submit()})}}}});FilterFormSubmitActionModel.define({label:(0,import_flow_engine.tExpr)("Filter"),toggleable:!0,sort:100});const connectFields=(0,import_flow_engine.defineAction)({name:"connectFields",title:(0,import_flow_engine.tExpr)("Connect fields"),uiSchema(e){return{value:{type:"object","x-component":ConnectFields}}},beforeParamsSave(e,t){import_lodash.default.isEmpty(t.value)||e.model.context.filterManager.saveConnectFieldsConfig(e.model.uid,t.value),e.exit()},handler(e,t){}}),buildCascaderOptions=(e,t,o="",r=[],i="")=>{const n=r.filter(Boolean);return t.map(l=>{var a,c,u;const d=o?`${o}.${l.name}`:l.name,m=l.title||l.name,p=i?`${i} / ${m}`:m,h=!l.target,g={label:m,value:l.name,isLeaf:h,disableCheckbox:!h,meta:{field:l,fullPath:d,fullLabel:p}};if(!h&&n.some(f=>f&&f.startsWith(d+".")))if((c=(a=l.filterable)==null?void 0:a.children)!=null&&c.length)g.children=buildCascaderOptions(e,l.filterable.children,d,r,p);else{const f=l.targetCollection;if(f){const _=((u=f.getFields)==null?void 0:u.call(f))||[];g.children=buildCascaderOptions(e,_,d,r,p)}}return g}).sort((l,a)=>l.isLeaf&&!a.isLeaf?-1:!l.isLeaf&&a.isLeaf?1:0)};function ConnectFields(e){const t=(0,import_flow_engine.useFlowSettingsContext)(),o=(0,import_react2.useMemo)(()=>getAllDataModels(t.blockGridModel),[t.blockGridModel]),[r,i]=(0,import_react2.useState)(()=>t.model.context.filterManager.getConnectFieldsConfig(t.model.uid)),[n,l]=(0,import_react2.useState)({}),[a,c]=(0,import_react2.useState)({});import_react2.default.useEffect(()=>{L(this,null,function*(){var _;const v={},y=((r==null?void 0:r.targets)||[]).map(C=>C.targetId);for(const C of o.filter(b=>y.includes(b.uid))){const b=(yield(_=C.getFilterFields)==null?void 0:_.call(C))||[];v[C.uid]=b}l(v)})},[r==null?void 0:r.targets,o]);const u=(_,v)=>{c(y=>A(x({},y),{[_]:v}))},d=_=>a[_]||"field-select",m=(_,v)=>{var y;const C={};((r==null?void 0:r.targets)||[]).forEach(F=>{C[F.targetId]=F}),C[_]={targetId:_,filterPaths:v};const b=Object.values(C);(y=e.onChange)==null||y.call(e,{targets:b}),i({targets:b})},p=(_,v)=>{var y;const C={};((r==null?void 0:r.targets)||[]).forEach(F=>{C[F.targetId]=F}),v?C[_]={targetId:_,filterPaths:[]}:delete C[_];const b=Object.values(C);(y=e.onChange)==null||y.call(e,{targets:b}),i({targets:b})},h=_=>{var v;const y={};((r==null?void 0:r.targets)||[]).forEach(b=>{b.targetId!==_&&(y[b.targetId]=b)});const C=Object.values(y);(v=e.onChange)==null||v.call(e,{targets:C}),i({targets:C})},g=((r==null?void 0:r.targets)||[]).map(_=>_.targetId),f=o.filter(_=>{var v;return(v=_.resource)==null?void 0:v.supportsFilter}).map(_=>{const v=g.includes(_.uid);return{key:_.uid,label:(0,import_jsx_runtime.jsxs)("button",{type:"button",style:{display:"flex",justifyContent:"space-between",alignItems:"center",minWidth:"200px",border:"none",background:"none",padding:"0",width:"100%",cursor:"pointer"},onClick:y=>{y.stopPropagation(),p(_.uid,!v)},children:[(0,import_jsx_runtime.jsxs)("span",{style:{marginRight:"16px"},children:[_.title," #",_.uid.substring(0,4)]}),(0,import_jsx_runtime.jsx)(import_antd.Switch,{size:"small",checked:v})]})}});return(0,import_jsx_runtime.jsxs)("div",{children:[(0,import_jsx_runtime.jsxs)("div",{style:{marginBottom:"16px",padding:"12px",backgroundColor:"#f0f9ff",border:"1px solid #bae6fd",borderRadius:"6px",fontSize:"14px",color:"#0369a1"},children:[(0,import_jsx_runtime.jsx)("div",{style:{fontWeight:500,marginBottom:"8px"},children:t.t("Configuration:")}),(0,import_jsx_runtime.jsxs)("ul",{style:{margin:0,paddingLeft:"16px"},children:[(0,import_jsx_runtime.jsx)("li",{children:t.t('Available "target blocks" are all data blocks on the current page')}),(0,import_jsx_runtime.jsx)("li",{children:t.t("Support filtering multiple blocks simultaneously, support deep selection of relationship fields (e.g.: User/Department/Name)")})]})]}),o.filter(_=>g.includes(_.uid)&&n[_.uid]).sort((_,v)=>{const y=((r==null?void 0:r.targets)||[]).findIndex(b=>b.targetId===_.uid),C=((r==null?void 0:r.targets)||[]).findIndex(b=>b.targetId===v.uid);return y-C}).map(_=>{var v,y;const C=n[_.uid]||[],b=((y=(v=r==null?void 0:r.targets)==null?void 0:v.find(j=>j.targetId===_.uid))==null?void 0:y.filterPaths)||[],F=buildCascaderOptions(t,C,"",b,""),S=b.map(j=>j.split(".")),P=d(_.uid);return(0,import_jsx_runtime.jsx)(import_antd_v5.FormItem,{label:`${_.title} #${_.uid.substring(0,4)}`,children:(0,import_jsx_runtime.jsxs)("div",{style:{display:"flex",gap:"8px",alignItems:"center"},children:[(0,import_jsx_runtime.jsx)("div",{style:{flex:1},children:P==="field-select"?(0,import_jsx_runtime.jsx)(CascaderWrapper,{options:F,value:S,onChange:j=>{const I=(j||[]).map(T=>T.join("."));m(_.uid,I)},multiple:!0,allowClear:!0,placeholder:t.t("Please select fields to filter"),style:{width:"100%"},showSearch:{filter:(j,I)=>I.some(T=>(T.label||"").toString().toLowerCase().includes(j.toLowerCase()))}}):(0,import_jsx_runtime.jsx)(import_antd.Select,{mode:"tags",value:b,onChange:j=>m(_.uid,j),placeholder:t.t("Separate multiple values with comma or Enter"),style:{width:"100%"},allowClear:!0,tokenSeparators:[","],open:!1,suffixIcon:null})}),(0,import_jsx_runtime.jsx)(import_antd.Segmented,{value:P,onChange:j=>u(_.uid,j),options:[{label:t.t("Dropdown select"),value:"field-select"},{label:t.t("Text input"),value:"text-input"}]}),(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"text",icon:(0,import_jsx_runtime.jsx)(import_icons.DeleteOutlined,{}),onClick:()=>h(_.uid),style:{color:"#8c8c8c"},title:t.t("Delete this target block")})]})},_.uid)}),(0,import_jsx_runtime.jsx)("div",{style:{marginTop:"16px"},children:(0,import_jsx_runtime.jsx)(import_antd.Dropdown,{menu:{items:f},trigger:["hover"],autoFocus:!1,children:(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"dashed",icon:(0,import_jsx_runtime.jsx)(import_icons.PlusOutlined,{}),style:{width:"100%"},children:t.t("Add target block")})})})]})}function CascaderWrapper(e){const t=(0,import_flow_engine.useFlowSettingsContext)(),[o,r]=import_react2.default.useState(e.options||[]),i=import_react2.default.useMemo(()=>(e.options||[]).map(m=>{var p;return((p=m==null?void 0:m.meta)==null?void 0:p.fullPath)||(m==null?void 0:m.value)}).filter(Boolean).join("|"),[e.options]),n=(0,import_css.cx)(e.popupClassName,import_css.css`
|
|
2016
|
+
`,children:F.label}),dropdownRender:F=>{const S=f.some(P=>P[r.label]===h.searchText);return(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:c==="quickAdd"&&d&&m&&h.searchText?(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[!(f.length===0&&h.searchText)&&F,f.length>0&&h.searchText&&!S&&(0,import_jsx_runtime.jsx)(import_antd.Divider,{style:{margin:0}}),!S&&(0,import_jsx_runtime.jsx)(C,{searchText:h.searchText})]}):F})}})),c==="modalAdd"&&(d&&m||v)&&(d&&m?(0,import_jsx_runtime.jsx)(import_antd.Button,{onClick:h.onModalAddClick,children:y("Add new")}):(0,import_jsx_runtime.jsx)(ActionWithoutPermission,{forbidden:{actionName:"create"},collection:(t=_==null?void 0:_.collectionField)==null?void 0:t.targetCollection,message:b,children:(0,import_jsx_runtime.jsx)(import_antd.Button,{onClick:h.onModalAddClick,disabled:!m,style:{opacity:"0.3"},children:y("Add new")})}))]})};class FilterFormCustomRecordSelectFieldModel extends RecordSelectFieldModel{constructor(){super(...arguments),R(this,"valueOptionsSyncKey",null),R(this,"valueOptionsSyncedKey",null),R(this,"valueOptionsSyncTask",null)}buildValueOptionsSyncKey(){var t,o,r,i,n,l,a,c,u,d,m,p,h;if((((t=this.props)==null?void 0:t.valueMode)||"record")!=="value")return null;const g=((o=this.props)==null?void 0:o.fieldNames)||{},f=((i=(r=this.context.collectionField)==null?void 0:r.targetCollection)==null?void 0:i.filterTargetKey)||"id",_=(g==null?void 0:g.value)||"id",v=!!((n=this.props)!=null&&n.multiple&&(l=this.props)!=null&&l.allowMultiple),y=resolveOptions((a=this.props)==null?void 0:a.options,(c=this.props)==null?void 0:c.value,v),C=(p=(m=(d=(u=this.context.collectionField)==null?void 0:u.targetCollection)==null?void 0:d.getField)==null?void 0:m.call(d,f))==null?void 0:p.type,b=normalizePrimaryKeys((h=this.props)==null?void 0:h.value,y,f,_,v,C);if(!b.length)return null;const F=new Set(y.map(P=>P==null?void 0:P[f]).filter(P=>P!=null)),S=b.filter(P=>!F.has(P));return S.length?`${f}::${S.slice().sort().join(",")}`:null}ensureValueOptionsSynced(){const t=this.buildValueOptionsSyncKey();t&&t!==this.valueOptionsSyncedKey&&(this.valueOptionsSyncTask&&this.valueOptionsSyncKey===t||(this.valueOptionsSyncKey=t,this.valueOptionsSyncTask=this.applyFlow("syncValueOptions").then(()=>{this.valueOptionsSyncedKey=t}).finally(()=>{this.valueOptionsSyncKey===t&&(this.valueOptionsSyncTask=null)})))}onDispatchEventStart(t){return L(this,null,function*(){t==="beforeRender"&&this.ensureValueOptionsSynced()})}getFilterValue(){var t,o;if((this.props.valueMode||"record")==="value"){const r=((o=(t=this.props)==null?void 0:t.fieldNames)==null?void 0:o.value)||"id",i=n=>{var l;return n==null?n:typeof n=="object"?(l=n==null?void 0:n[r])!=null?l:n==null?void 0:n.value:n};return Array.isArray(this.props.value)?this.props.value.map(n=>i(n)).filter(n=>n!=null&&n!==""):i(this.props.value)}return super.getFilterValue()}render(){return this.context.isMobileLayout?(0,import_jsx_runtime.jsx)(MobileLazySelect,A(x({},this.props),{loading:this.resource.loading})):(0,import_jsx_runtime.jsx)(FilterFormLazySelect,x({},this.props))}}FilterFormCustomRecordSelectFieldModel.registerFlow({key:"syncValueOptions",sort:780,steps:{syncByValue:{handler(e){return L(this,null,function*(){var t,o,r,i,n,l,a,c,u,d,m,p,h,g,f;if((((t=e.model.props)==null?void 0:t.valueMode)||"record")!=="value")return;const _=((o=e.model.props)==null?void 0:o.fieldNames)||{},v=((i=(r=e.model.context.collectionField)==null?void 0:r.targetCollection)==null?void 0:i.filterTargetKey)||"id",y=(_==null?void 0:_.value)||"id",C=!!((n=e.model.props)!=null&&n.multiple&&(l=e.model.props)!=null&&l.allowMultiple),b=resolveOptions((a=e.model.props)==null?void 0:a.options,(c=e.model.props)==null?void 0:c.value,C),F=(p=(m=(d=(u=e.model.context.collectionField)==null?void 0:u.targetCollection)==null?void 0:d.getField)==null?void 0:m.call(d,v))==null?void 0:p.type,S=normalizePrimaryKeys((h=e.model.props)==null?void 0:h.value,b,v,y,C,F);if(!S.length)return;const P=new Set(b.map(N=>N==null?void 0:N[v]).filter(N=>N!=null)),j=S.filter(N=>!P.has(N));if(!j.length)return;const I=e.model.resource;if(!I||typeof(I==null?void 0:I.addFilterGroup)!="function"||typeof(I==null?void 0:I.refresh)!="function")return;const T=j.length===1?{[`${v}.$eq`]:j[0]}:{[`${v}.$in`]:j};try{I.addFilterGroup(FILTER_FORM_VALUE_OPTIONS_GROUP,T),yield I.refresh();const N=((g=I.getData)==null?void 0:g.call(I))||[];if(!Array.isArray(N)||!N.length)return;const D=mergeOptionsByValue(b,N,v);if(!(D.length!==b.length||D.some((w,k)=>{var B;return(w==null?void 0:w[v])!==((B=b==null?void 0:b[k])==null?void 0:B[v])})))return;e.model.setDataSource(D)}finally{(f=I.removeFilterGroup)==null||f.call(I,FILTER_FORM_VALUE_OPTIONS_GROUP)}})}}}});FilterFormCustomRecordSelectFieldModel.registerFlow({key:"selectSettings",title:(0,import_flow_engine.tExpr)("Association select settings"),sort:800,steps:{fieldNames:{use:"titleField"},valueFieldOverride:{handler(e){const t=e.model.props.recordSelectValueField;if(!t)return;const o=A(x({},e.model.props.fieldNames||{}),{value:t});e.model.setProps({fieldNames:o})}},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 typeof e.model.props.allowMultiple=="boolean"?{allowMultiple:e.model.props.allowMultiple}:{allowMultiple:e.collectionField&&["belongsToMany","hasMany","belongsToArray"].includes(e.model.context.collectionField.type)}},handler(e,t){var o,r;const i=((r=(o=e==null?void 0:e.blockModel)==null?void 0:o.constructor)==null?void 0:r.scene)===BlockSceneEnum.filter,n=typeof e.model.props.allowMultiple=="boolean"?e.model.props.allowMultiple:t==null?void 0:t.allowMultiple;if(i&&typeof n=="boolean"){e.model.setProps({allowMultiple:n,multiple:n});return}e.model.setProps({allowMultiple:t==null?void 0:t.allowMultiple,multiple: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})}}}});class FilterFormActionModel extends ActionModel{}class FilterFormActionGroupModel extends ActionGroupModel{}R(FilterFormActionGroupModel,"baseClass",FilterFormActionModel);const FILTER_FORM_FLOW_KEYS=["filterFormItemSettings"],getLegacyFilterFormItemInitialValue=createLegacyValueExtractor(FILTER_FORM_FLOW_KEYS),clearLegacyFilterFormItemInitialValue=createLegacyClearer(FILTER_FORM_FLOW_KEYS);function collectLegacyDefaultValueRulesFromFilterFormModel(e){return collectLegacyDefaultValueRules(e,getLegacyFilterFormItemInitialValue)}function clearLegacyDefaultValuesFromFilterFormModel(e){return clearLegacyDefaultValues(e,getLegacyFilterFormItemInitialValue,clearLegacyFilterFormItemInitialValue)}const He=class ct extends FilterBlockModel{constructor(){super(...arguments),R(this,"autoTriggerFilter",!0),R(this,"removeTargetBlockListener")}get form(){return this.context.form}get title(){return"Filter form"}useHooksBeforeRender(){const[t]=import_antd.Form.useForm();this.context.defineProperty("form",{get:()=>t,cache:!1})}saveStepParams(){return L(this,null,function*(){return yield saveStepParamsWithSubModelsIfNeeded(this,()=>L(this,null,function*(){return yield $e(ct.prototype,this,"saveStepParams").call(this)}))})}addAppends(){}onInit(t){super.onInit(t),this.context.defineProperty("blockModel",{value:this}),this.context.defineMethod("refreshTargets",()=>L(this,null,function*(){const o=this.subModels.grid.subModels.items;o&&o.forEach(r=>{var i;(i=r==null?void 0:r.doFilter)==null||i.call(r)})}))}onMount(){super.onMount(),this.context.defineProperty("filterFormGridModel",{value:this.subModels.grid}),this.applyDefaultsAndInitialFilter();const t=this.context.blockGridModel;if(t!=null&&t.emitter){const o=r=>{!(r!=null&&r.uid)||r.uid===this.uid||this.handleTargetBlockRemoved(r.uid).catch(i=>{console.error("Failed to handle destroyed target block in FilterFormBlockModel:",i)})};t.emitter.on("onSubModelDestroyed",o),this.removeTargetBlockListener=()=>t.emitter.off("onSubModelDestroyed",o)}}onUnmount(){var t;(t=this.removeTargetBlockListener)==null||t.call(this),super.onUnmount()}applyDefaultsAndInitialFilter(){return L(this,null,function*(){var t,o;yield this.ensureFilterItemsBeforeRender(),yield this.applyFormDefaultValues(),yield(o=(t=this.context).refreshTargets)==null?void 0:o.call(t)})}ensureFilterItemsBeforeRender(){return L(this,null,function*(){var t,o;const r=(t=this.subModels)==null?void 0:t.grid,i=((o=r==null?void 0:r.subModels)==null?void 0:o.items)||[];if(!(!Array.isArray(i)||i.length===0))for(const n of i)typeof(n==null?void 0:n.dispatchEvent)=="function"&&(yield n.dispatchEvent("beforeRender"))})}applyFormDefaultValues(t){return L(this,null,function*(){var o,r,i,n,l,a,c,u;const d=this.form;if(!d)return;const m=(t==null?void 0:t.force)===!0,p=(o=this.getStepParams)==null?void 0:o.call(this,"formFilterBlockModelSettings","defaultValues"),h=(p==null?void 0:p.value)||[];if(!Array.isArray(h)||h.length===0)return;const g=f=>L(this,null,function*(){var _,v;if((0,import_flow_engine.isRunJSValue)(f)){const{code:y,version:C}=(0,import_flow_engine.normalizeRunJSValue)(f),b=yield(0,import_flow_engine.runjsWithSafeGlobals)(this.context,y,{version:C});return b!=null&&b.success?b.value:void 0}return yield(v=(_=this.context).resolveJsonTemplate)==null?void 0:v.call(_,f)});for(const f of h){if(!f||typeof f!="object"||f.enable===!1||f.mode&&String(f.mode)!=="default")continue;const _=f.targetPath?String(f.targetPath).trim():"",v=f.field?String(f.field).trim():"",y=(l=_?findFormItemModelByFieldPath(this,_):null)!=null?l:v?(n=(i=(r=this.context)==null?void 0:r.engine)==null?void 0:i.getModel)==null?void 0:n.call(i,v):null;if(!y)continue;const C=typeof y.getProps=="function"?y.getProps():y.props,b=(a=C==null?void 0:C.name)!=null?a:y.fieldPath?`${y.fieldPath}_${y.uid}`:void 0;if(!b)continue;const F=(c=d.getFieldValue)==null?void 0:c.call(d,b);if(!m&&!isEmptyValue(F))continue;const S=yield g(f.value);if(typeof S>"u")continue;const P=getDefaultOperator(y),j=normalizeFilterValueByOperator(P,S);typeof d.setFieldValue=="function"?d.setFieldValue(b,j):(u=d.setFieldsValue)==null||u.call(d,{[String(b)]:j})}})}handleTargetBlockRemoved(t){return L(this,null,function*(){const o=this.context.filterManager,r=this.subModels.grid.subModels.items||[];for(const i of[...r]){const n=o.getConnectFieldsConfig(i.uid),l=(n==null?void 0:n.targets)||[],a=l.some(d=>d.targetId===t),c=i.defaultTargetUid===t;if(!a&&!c)continue;const u=l.filter(d=>d.targetId!==t);if(u.length>0){yield o.saveConnectFieldsConfig(i.uid,{targets:u});continue}yield o.removeFilterConfig({filterId:i.uid}),yield i.destroy()}})}destroy(){return L(this,null,function*(){var t;const o=this.context.filterManager;return(t=this.subModels.grid.subModels.items)==null||t.map(r=>{o.removeFilterConfig({filterId:r.uid,persist:!1})}),yield $e(ct.prototype,this,"destroy").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,onFinish:()=>{this.context.refreshTargets()},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_v5.FormButtonGroup,{align:"right",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.FlowModelRenderer,{model:a,showFlowSettings:{showBackground:!1,showBorder:!1,toolbarPosition:"above"},extraToolbarItems:[{key:"drag-handler",component:import_flow_engine.DragHandler,sort:1}]},a.uid)},a.uid)}),(0,import_jsx_runtime.jsx)(import_flow_engine.AddSubModelButton,{model:this,subModelKey:"actions",subModelBaseClass:"FilterFormActionGroupModel",children:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowSettingsButton,{icon:(0,import_jsx_runtime.jsx)(import_icons.SettingOutlined,{}),children:this.translate("Actions")})},"filter-form-actions-add")]})})]})}};R(He,"scene",BlockSceneEnum.filter);let FilterFormBlockModel=He;FilterFormBlockModel.define({label:(0,import_flow_engine.tExpr)("Form"),createModelOptions:{use:"FilterFormBlockModel",subModels:{grid:{use:"FilterFormGridModel"}}}});FilterFormBlockModel.registerFlow({key:"formFilterBlockModelSettings",title:(0,import_flow_engine.tExpr)("Form settings"),steps:{layout:{use:"layout",title:(0,import_flow_engine.tExpr)("Layout")},defaultValues:{use:"filterFormDefaultValues",title:(0,import_flow_engine.tExpr)("Field values"),beforeParamsSave(e){const t=clearLegacyDefaultValuesFromFilterFormModel(e.model);Array.isArray(t)&&t.length&&markSaveStepParamsWithSubModels(e.model)},afterParamsSave(e){var t,o;(o=(t=e.model)==null?void 0:t.applyFormDefaultValues)==null||o.call(t,{force:!0}).then(()=>{var r,i,n;return(n=(i=(r=e.model)==null?void 0:r.context)==null?void 0:i.refreshTargets)==null?void 0:n.call(i)})}}}});FilterFormBlockModel.registerEvents({formValuesChange:{title:(0,import_flow_engine.tExpr)("Form values change"),name:"formValuesChange",uiSchema:{condition:{type:"object",title:(0,import_flow_engine.tExpr)("Trigger condition"),"x-decorator":"FormItem","x-component":ConditionBuilder}},handler:commonConditionHandler}});const collapseState=(0,import_reactive.observable)({collapsed:!1}),CollapseButton=(0,import_flow_engine.observer)(()=>{const e=(0,import_flow_engine.useFlowModel)(),t=x(x({},e.defaultProps),e.props),o=()=>{e.dispatchEvent("collapseToggle")};return(0,import_jsx_runtime.jsx)(import_antd.Button,A(x({},t),{onClick:o,icon:(0,import_jsx_runtime.jsx)(import_icons.DownOutlined,{rotate:collapseState.collapsed?0:180}),iconPosition:"end",children:collapseState.collapsed?e.translate("Expand button"):e.translate("Collapse button")}))});class FilterFormCollapseActionModel extends FilterFormActionModel{constructor(){super(...arguments),R(this,"defaultProps",{type:"link"}),R(this,"enableEditTitle",!1),R(this,"enableEditIcon",!1)}onMount(){var t,o;super.onMount();const r=((t=this.getStepParams("collapseSettings","defaultCollapsed"))==null?void 0:t.value)||!1,i=((o=this.getStepParams("collapseSettings","toggle"))==null?void 0:o.collapsedRows)||1;collapseState.collapsed=r,this.context.filterFormGridModel.toggleFormFieldsCollapse(collapseState.collapsed,i)}render(){return(0,import_jsx_runtime.jsx)(CollapseButton,{})}}FilterFormCollapseActionModel.registerFlow({key:"collapseSettings",title:(0,import_flow_engine.tExpr)("Collapse settings"),on:"collapseToggle",steps:{toggle:{title:(0,import_flow_engine.tExpr)("Collapsed rows"),uiSchema:{collapsedRows:{type:"number","x-decorator":"FormItem","x-component":import_antd.InputNumber,"x-component-props":{min:1,max:10,placeholder:(0,import_flow_engine.tExpr)("Enter number of rows to display")},default:1}},handler(e,t){return L(this,null,function*(){const o=t.collapsedRows||1;collapseState.collapsed=!collapseState.collapsed,e.model.context.filterFormGridModel.toggleFormFieldsCollapse(collapseState.collapsed,o)})}},defaultCollapsed:{title:(0,import_flow_engine.tExpr)("Default collapsed"),uiSchema:{value:{type:"boolean","x-decorator":"FormItem","x-component":"Switch"}},beforeParamsSave(e,t){var o;const r=t.value||!1;collapseState.collapsed=r;const i=((o=e.model.getStepParams("collapseSettings","toggle"))==null?void 0:o.collapsedRows)||1;e.model.context.filterFormGridModel.toggleFormFieldsCollapse(collapseState.collapsed,i)},handler(e,t){}}}});FilterFormCollapseActionModel.define({label:(0,import_flow_engine.tExpr)("Collapse button"),toggleable:!0,sort:300});FilterFormCollapseActionModel.registerEvents({collapseToggle:{title:(0,import_flow_engine.tExpr)("Collapse / Expand toggle"),name:"collapseToggle",uiSchema:{condition:{type:"object",title:(0,import_flow_engine.tExpr)("Trigger condition"),"x-decorator":"FormItem","x-component":ConditionBuilder}},handler:commonConditionHandler}});const getAssociationTargetCollection=(e,t,o)=>{var r,i,n;if(e!=null&&e.targetCollection)return e.targetCollection;const l=e==null?void 0:e.target;if(!l)return;if((r=t==null?void 0:t.dataSource)!=null&&r.getCollection)return t.dataSource.getCollection(l);const a=t==null?void 0:t.dataSourceKey;if(a&&(n=(i=o==null?void 0:o.context)==null?void 0:i.dataSourceManager)!=null&&n.getCollection)return o.context.dataSourceManager.getCollection(a,l)},getTargetFilterableFields=(e,t,o)=>{const r=getAssociationTargetCollection(e,t,o);return r!=null&&r.getFields?(r.getFields()||[]).filter(i=>i==null?void 0:i.filterable):[]},MAX_ASSOCIATION_DEPTH=5,normalizeAssociationDefaultFilterValue=(e,t)=>{var o,r,i,n,l;const a=(o=t==null?void 0:t.context)==null?void 0:o.collectionField;if(!((r=a==null?void 0:a.isAssociationField)!=null&&r.call(a)))return e;const c=((i=t==null?void 0:t.props)==null?void 0:i.fieldNames)||(a==null?void 0:a.fieldNames)||{},u=(c==null?void 0:c.value)||(a==null?void 0:a.targetKey)||((n=a==null?void 0:a.targetCollection)==null?void 0:n.filterTargetKey)||((l=a==null?void 0:a.collection)==null?void 0:l.filterTargetKey)||"id",d=m=>{const p=m&&typeof m=="object"&&typeof(m==null?void 0:m.data)<"u"?m.data:m;return!p||typeof p!="object"?p:typeof(p==null?void 0:p[u])<"u"?p[u]:typeof(p==null?void 0:p.id)<"u"?p.id:typeof(p==null?void 0:p.value)<"u"?p.value:p};return Array.isArray(e)?e.map(d):d(e)},buildVirtualFilterCollectionField=(e,t)=>{var o,r,i;if(!t)return;const n=(t==null?void 0:t.title)||(t==null?void 0:t.name),l=t==null?void 0:t.interface,a=l?(i=(r=(o=e==null?void 0:e.dataSourceManager)==null?void 0:o.collectionFieldInterfaceManager)==null?void 0:r.getFieldInterface)==null?void 0:i.call(r,l):void 0;return A(x({},t),{title:n,uiSchema:A(x({},(t==null?void 0:t.uiSchema)||{}),{title:n}),filterable:(t==null?void 0:t.filterable)||(a==null?void 0:a.filterable),isAssociationField:typeof(t==null?void 0:t.isAssociationField)=="function"?t.isAssociationField:()=>!!(t!=null&&t.target),getComponentProps:typeof(t==null?void 0:t.getComponentProps)=="function"?t.getComponentProps:()=>({})})},buildFilterFormFieldItem=({model:e,collection:t,ctxWithFlags:o,field:r,fieldPath:i,labelPrefix:n})=>{var l,a;const c=import_flow_engine.FilterableItemModel.getDefaultBindingByField(o,r);if(!c)return;const u=(typeof(r==null?void 0:r.isAssociationField)=="function"?r.isAssociationField():r!=null&&r.target)&&(a=(l=o.engine)==null?void 0:l.getModelClass)!=null&&a.call(l,"FilterFormRecordSelectFieldModel")?"FilterFormRecordSelectFieldModel":c.modelName,d=r.title||r.name,m=n?`${n} / ${d}`:d;return{key:i,label:m,useModel:"FilterFormItemModel",refreshTargets:["FilterFormCustomItemModel"],createModelOptions:()=>({use:"FilterFormItemModel",stepParams:{fieldSettings:{init:{dataSourceKey:t==null?void 0:t.dataSourceKey,collectionName:t==null?void 0:t.name,fieldPath:i}},filterFormItemSettings:{init:{filterField:import_lodash.default.pick(r,["name","title","interface","type"]),defaultTargetUid:e.uid}}},subModels:{field:{use:u,props:typeof c.defaultProps=="function"?c.defaultProps(e.context,r):c.defaultProps}}})}},buildAssociationFieldMenuItem=({model:e,collection:t,ctxWithFlags:o,field:r,fieldPath:i,depth:n})=>{var l;if(!getAssociationTargetCollection(r,t,e)||n>MAX_ASSOCIATION_DEPTH)return;const a=r.title||r.name,c=((l=e.context)==null?void 0:l.t)||(o==null?void 0:o.t)||(u=>u);return{key:`${i}-associationField`,label:a,children:()=>L(void 0,null,function*(){const u=getTargetFilterableFields(r,t,e),d=[],m=[];u.forEach(h=>{const g=`${i}.${h.name}`;if(h!=null&&h.targetCollection){const _=buildAssociationFieldMenuItem({model:e,collection:t,ctxWithFlags:o,field:h,fieldPath:g,depth:n+1});_&&m.push(_);return}const f=buildFilterFormFieldItem({model:e,collection:t,ctxWithFlags:o,field:h,fieldPath:g});f&&d.push(f)});const p=[];return d.length&&p.push({key:`${i}-fields`,label:c("Fields"),type:"group",searchable:!0,searchPlaceholder:c("Search fields"),children:d}),m.length&&p.push({key:`${i}-relation-fields`,label:c("Association fields"),type:"group",searchable:!0,searchPlaceholder:c("Search association fields"),children:m}),p.length?p:[{key:`${i}-empty`,label:(0,import_jsx_runtime.jsx)(import_antd.Empty,{style:{width:140},description:c("No data"),image:import_antd.Empty.PRESENTED_IMAGE_SIMPLE}),disabled:!0}]})}},getModelFieldGroups=e=>L(void 0,null,function*(){var t,o;const r=e.collection||e.context.collection,i=(yield(t=e==null?void 0:e.getFilterFields)==null?void 0:t.call(e))||[],n=new import_flow_engine.FlowModelContext(e);n.addDelegate(e.context),n.defineProperty("flags",{value:A(x({},(o=e.context)==null?void 0:o.flags),{isInFilterFormBlock:!0})});const l=[],a=[];return i.forEach(c=>{const u=c.name,d=buildFilterFormFieldItem({model:e,collection:r,ctxWithFlags:n,field:c,fieldPath:u});if(d&&l.push(d),c!=null&&c.targetCollection){const m=buildAssociationFieldMenuItem({model:e,collection:r,ctxWithFlags:n,field:c,fieldPath:u,depth:1});m&&a.push(m)}}),{baseItems:l.filter(Boolean),relationItems:a.filter(Boolean)}});class FilterFormItemModel extends import_flow_engine.FilterableItemModel{constructor(){super(...arguments),R(this,"operator"),R(this,"mounted",!1),R(this,"debouncedDoFilter"),R(this,"lastAutoTriggerValue"),R(this,"autoTriggerInitialized",!1),R(this,"handleEnterPress",t=>{(t.key==="Enter"||t.keyCode===13)&&(t.preventDefault(),this.doFilter())})}static defineChildren(t){const o=t.blockGridModel;if(!o)return[];const r=getAllDataModels(o);return r.length===0?[{key:"no-data-blocks",label:(0,import_jsx_runtime.jsx)(import_antd.Empty,{style:{width:140},description:t.t("Please add a data block on the page first"),image:import_antd.Empty.PRESENTED_IMAGE_SIMPLE}),disabled:!0}]:r.map(i=>({key:i.uid,label:(0,import_jsx_runtime.jsx)("span",{style:{margin:"-5px -24px -5px -12px",padding:"5px 24px 5px 12px"},onMouseEnter:()=>{var n;const l=(n=i.context.ref)==null?void 0:n.current;l instanceof HTMLElement&&(l.style.outline=`2px solid ${i.context.themeToken.colorPrimaryBorder}`)},onMouseLeave:()=>{var n;const l=(n=i.context.ref)==null?void 0:n.current;l instanceof HTMLElement&&(l.style.outline="none")},children:`${i.title} #${i.uid.substring(0,4)}`}),children:()=>L(this,null,function*(){const{baseItems:n,relationItems:l}=yield getModelFieldGroups(i),a=[{key:"fields",label:t.t("Fields"),type:"group",searchable:!0,searchPlaceholder:t.t("Search fields"),children:n}];return l.length&&a.push({key:"relation-fields",label:t.t("Association fields"),type:"group",searchable:!0,searchPlaceholder:t.t("Search association fields"),children:l}),[...a]})}))}get defaultTargetUid(){return this.getStepParams("filterFormItemSettings","init").defaultTargetUid}getCurrentOperatorMeta(){var t,o;const r=getDefaultOperator(this);if(!r)return null;const i=(o=(t=this.collectionField)==null?void 0:t.filterable)==null?void 0:o.operators;return Array.isArray(i)&&i.find(n=>n.value===r)||null}onInit(t){var o;super.onInit(t),this.debouncedDoFilter=(0,import_lodash.debounce)(this.doFilter.bind(this),300);const r=(o=this.getStepParams("filterFormItemSettings","init"))==null?void 0:o.filterField;r&&this.context.defineProperty("filterField",{value:A(x({},r),{title:(r==null?void 0:r.title)||(r==null?void 0:r.name)})})}onMount(){super.onMount(),this.mounted=!0}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=this.subModels.field,l=n.getFilterValue?n.getFilterValue():(t=this.context.form)==null?void 0:t.getFieldValue(this.props.name);let a=l;if(!this.mounted){const d=import_lodash.default.isEmpty(l)?this.getDefaultValue():l;a=normalizeAssociationDefaultFilterValue(d,(o=this.subModels)==null?void 0:o.field)}const c=getDefaultOperator(this);a=this.normalizeAssociationFilterValue(a,n);const u=this.getCurrentOperatorMeta();if(u!=null&&u.noValue){const d=(i=(r=u==null?void 0:u.schema)==null?void 0:r["x-component-props"])==null?void 0:i.options;return Array.isArray(d)?a:!0}return normalizeFilterValueByOperator(c,a)}normalizeAssociationFilterValue(t,o){var r,i;if(t===null||typeof t>"u")return t;const n=(r=o==null?void 0:o.context)==null?void 0:r.collectionField;if(!(typeof(n==null?void 0:n.isAssociationField)=="function"?n.isAssociationField():n!=null&&n.target))return t;const l=(n==null?void 0:n.targetKey)||((i=n==null?void 0:n.targetCollection)==null?void 0:i.filterTargetKey)||"id";return Array.isArray(t)?t.length===0?t:t.map(a=>a&&typeof a=="object"?a[l]:a):typeof t=="object"?t==null?void 0:t[l]:t}getDefaultValue(){var t;return(t=this.getStepParams("filterFormItemSettings","initialValue"))==null?void 0:t.defaultValue}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),isRange:this.operator==="$dateBetween"}}renderItem(){const t=this.subModels.field;return(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:t})}))}}FilterFormItemModel.define({label:(0,import_flow_engine.tExpr)("Block list")});FilterFormItemModel.registerFlow({key:"filterFormItemSettings",sort:300,title:(0,import_flow_engine.tExpr)("Form item settings"),steps:{label:{title:(0,import_flow_engine.tExpr)("Label"),uiSchema:e=>({label:{"x-component":"Input","x-decorator":"FormItem","x-reactions":t=>{var o,r,i;const n=e.model,l=((o=n.collectionField)==null?void 0:o.title)||((r=e.filterField)==null?void 0:r.title)||((i=e.filterField)==null?void 0:i.name)||n.fieldPath;t.decoratorProps=A(x({},t.decoratorProps),{extra:n.context.t("Original field title: ")+l})}}}),defaultParams:e=>{var t,o,r;return{label:((t=e.collectionField)==null?void 0:t.title)||((o=e.filterField)==null?void 0:o.title)||((r=e.filterField)==null?void 0:r.name)}},handler(e,t){var o,r,i;const n=((o=e.collectionField)==null?void 0:o.title)||((r=e.filterField)==null?void 0:r.title)||((i=e.filterField)==null?void 0:i.name);t.label&&t.label===n?e.model.setProps({label:t.label}):e.model.setProps({label:e.t(t.label,{ns:"lm-flow-engine"})})}},init:{handler(e,t){return L(this,null,function*(){var o,r,i,n,l;const a=t.filterField?A(x({},t.filterField),{title:((o=t.filterField)==null?void 0:o.title)||((r=t.filterField)==null?void 0:r.name)}):t.filterField;e.model.context.defineProperty("filterField",{value:a}),e.model.setProps({name:`${e.model.fieldPath}_${e.model.uid}`});let c=e.model.collectionField;const u=((n=(i=e.model).getFieldSettingsInitParams)==null?void 0:n.call(i))||{};if(!(u!=null&&u.dataSourceKey&&u!=null&&u.collectionName)&&!c&&a){const d=buildVirtualFilterCollectionField(e,a);d&&(e.model.context.defineProperty("collectionField",{value:d}),c=d)}if(c!=null&&c.getComponentProps){const d=c.getComponentProps(),m=((l=e.model.subModels)==null?void 0:l.field)instanceof RecordSelectFieldModel,p=d||{},{rules:h,required:g,multiple:f,allowMultiple:_,maxCount:v}=p,y=te(p,["rules","required","multiple","allowMultiple","maxCount"]);e.model.setProps(A(x({},m?y:A(x({},y),{multiple:f,allowMultiple:_,maxCount:v})),{rules:void 0,required:void 0}))}})}},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})}},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"})})}},initialValue:{title:(0,import_flow_engine.tExpr)("Default value"),disabledInSettings:!0,disabledReasonInSettings:e=>`${e.t("This setting has been moved to")}: ${e.t("Form block settings")} > ${e.t("Field values")}`,uiSchema:e=>{var t,o;const r=((o=(t=e==null?void 0:e.model)==null?void 0:t.context)==null?void 0:o.flags)||{};return{defaultValue:{"x-component":"DefaultValue","x-decorator":"FormItem","x-component-props":{flags:A(x({},r),{isInSetDefaultValueDialog:!0})}}}},handler(e,t){e.model.setProps({initialValue:t.defaultValue})}},model:{use:"fieldComponent",title:(0,import_flow_engine.tExpr)("Field component"),uiMode(e){const t=import_flow_engine.FilterableItemModel.getBindingsByField(e,e.collectionField),o=e.t;return{type:"select",key:"use",props:{options:t.map(r=>({label:o(r.modelName),value:r.modelName}))}}},hideInSettings(e){if(import_flow_engine.FilterableItemModel.getBindingsByField(e,e.collectionField).length===1)return!0}},connectFields:{use:"connectFields"},defaultOperator:{use:"defaultOperator"},operatorComponentProps:{use:"operatorComponentProps"},customizeFilterRender:{use:"customizeFilterRender"}}});FilterFormItemModel.registerFlow({key:"fieldSettings",title:(0,import_flow_engine.tExpr)("Field settings"),steps:{init:{handler(e,t){}}}});class FilterFormGridModel extends GridModel{constructor(){super(...arguments),R(this,"fullLayoutBeforeCollapse"),R(this,"itemSettingsMenuLevel",2),R(this,"itemFlowSettings",{showBackground:!0,style:{top:-6,left:-6,right:-6,bottom:-6}}),R(this,"dragOverlayConfig",{columnInsert:{before:{offsetTop:-6,height:24},after:{offsetTop:3,height:24}},columnEdge:{left:{offsetLeft:-5,width:24},right:{offsetLeft:8,width:24}},rowGap:{above:{offsetTop:-2,height:24},below:{offsetTop:-12,height:24}}}),R(this,"loading",import_flow_engine.observable.ref(!1))}getAssociationFilterTargetKey(t){var o;const r=(o=t==null?void 0:t.targetCollection)==null?void 0:o.filterTargetKey;return Array.isArray(r)?r[0]||"id":r||"id"}getFullLayout(){const t=this.getStepParams(GRID_FLOW_KEY,GRID_STEP)||{},o=this.props.layout?this.getGridLayout():void 0,r=t.layout?this.normalizeLayoutFromSource(t):void 0,i=o?(0,import_flow_engine.projectLayoutToLegacyRows)(o):{rows:this.props.rows||{},rowOrder:this.props.rowOrder},n=r?(0,import_flow_engine.projectLayoutToLegacyRows)(r):{rows:t.rows||{},rowOrder:t.rowOrder},l=i.rows,a=n.rows||{},c=Object.keys(l).length,u=Object.keys(a).length,d=_=>Object.values(_).reduce((v,y)=>v+y.reduce((C,b)=>C+b.length,0),0),m=d(l),p=d(a),h=c>u||c===u&&m>=p,g=this.mergeRowsWithItems(h?l:a),f=h?i.rowOrder||this.props.rowOrder||t.rowOrder:n.rowOrder||t.rowOrder||this.props.rowOrder;return A(x({},this.normalizeRowsWithOrder(g,f)),{layout:h?o:r})}limitRowsByVisibleCount(t,o,r){const i={};let n=r;return o.forEach(l=>{if(n<=0||!t[l])return;const a=t[l],c=a.reduce((m,p)=>Math.max(m,p.length),0),u=Math.min(c,n),d=a.map(m=>m.slice(0,u));d.some(m=>m.length>0)&&(i[l]=d,n-=u)}),i}toggleFormFieldsCollapse(t,o){const{rows:r,rowOrder:i,layout:n}=this.getFullLayout();if(!t){const c=this.fullLayoutBeforeCollapse||n;c?this.syncLayoutProps(c):(this.setProps("rows",r),this.setProps("rowOrder",i)),this.fullLayoutBeforeCollapse=void 0;return}this.fullLayoutBeforeCollapse||(this.fullLayoutBeforeCollapse=n||(0,import_flow_engine.normalizeGridLayout)({rows:r,rowOrder:i,itemUids:this.getItemUids()}));const l=this.limitRowsByVisibleCount(r,i,o),a=(0,import_flow_engine.normalizeGridLayout)({rows:l,rowOrder:i});this.syncLayoutProps(a),this.setProps("rowOrder",i)}onModelCreated(t){return L(this,null,function*(){if(!(t instanceof FilterFormItemModel))return;const{fieldPath:o}=t.getFieldSettingsInitParams(),r=getAllDataModels(t.context.blockGridModel).filter(i=>{var n;return(n=i.resource)!=null&&n.supportsFilter?i.uid===t.defaultTargetUid:!1});if(r.length>0){const i=r.map(n=>{var l,a,c;const u=n.collection||n.context.collection;if(u){let d;if(o!=null&&o.includes(".")){const m=`${u.dataSourceKey}.${u.name}.${o}`;d=(a=(l=n.context.dataSourceManager)==null?void 0:l.getCollectionField)==null?void 0:a.call(l,m)}if(d||(d=(c=u.getField)==null?void 0:c.call(u,o)),d!=null&&d.target)return{targetId:n.uid,filterPaths:[`${o}.${this.getAssociationFilterTargetKey(d)}`]}}return{targetId:n.uid,filterPaths:[o]}});yield this.context.filterManager.saveConnectFieldsConfig(t.uid,{targets:i})}})}renderAddSubModelButton(){var t,o,r;return this.loading.value?null:(0,import_jsx_runtime.jsx)(import_flow_engine.AddSubModelButton,{subModelKey:"items",model:this,afterSubModelInit:this.onModelCreated.bind(this),keepDropdownOpen:!0,subModelBaseClasses:["FilterFormItemModel","FilterFormCustomItemModel"],children:(0,import_jsx_runtime.jsx)(import_flow_engine.FlowSettingsButton,{icon:(0,import_jsx_runtime.jsx)(import_icons.SettingOutlined,{}),children:this.translate("Fields")})},(r=(o=(t=this.context.blockGridModel)==null?void 0:t.subModels)==null?void 0:o.items)==null?void 0:r.length)}}FilterFormGridModel.registerFlow({key:"filterFormGridSettings",steps:{grid:{handler(e,t){e.model.setProps("rowGap",0),e.model.setProps("colGap",16)}}}});class FilterFormJSActionModel extends FilterFormActionModel{}FilterFormJSActionModel.define({label:(0,import_flow_engine.tExpr)("JS action"),sort:9999});FilterFormJSActionModel.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:"400px",theme:"light",enableLinter:!0,wrapperStyle:{position:"fixed",inset:8}}}},uiMode:{type:"embed",props:{styles:{body:{transform:"translateX(0)"}}}},defaultParams(e){return{version:"v2",code:""}},handler(e,t){return L(this,null,function*(){const{code:o,version:r}=resolveRunJsParams(e,t),i=(0,import_flow_engine.createSafeNavigator)();yield e.runjs(o,{window:(0,import_flow_engine.createSafeWindow)({navigator:i}),document:(0,import_flow_engine.createSafeDocument)(),navigator:i},{version:r})})}}}});class FilterFormResetActionModel extends FilterFormActionModel{constructor(){super(...arguments),R(this,"defaultProps",{title:(0,import_flow_engine.tExpr)("Reset")})}}FilterFormResetActionModel.registerFlow({key:"resetSettings",on:{eventName:"click"},steps:{doReset:{handler(e,t){return L(this,null,function*(){const o=e.model.context.blockModel,r=o.subModels.grid.subModels.items;e.form.resetFields(),setTimeout(()=>{var i;(i=o.applyFormDefaultValues)==null||i.call(o,{force:!0}).finally(()=>{r.forEach(n=>{n.doReset()})})})})}}}});FilterFormResetActionModel.define({label:(0,import_flow_engine.tExpr)("Reset"),toggleable:!0,sort:200});class FilterFormSubmitActionModel extends FilterFormActionModel{constructor(){super(...arguments),R(this,"defaultProps",{title:(0,import_flow_engine.tExpr)("Filter"),type:"primary"})}onInit(t){super.onInit(t),this.context.blockModel.autoTriggerFilter=!1}onUnmount(){super.onUnmount(),this.context.blockModel.autoTriggerFilter=!0}}FilterFormSubmitActionModel.registerFlow({key:"submitSettings",on:{eventName:"click"},steps:{doFilter:{handler(e,t){return L(this,null,function*(){e.form.submit()})}}}});FilterFormSubmitActionModel.define({label:(0,import_flow_engine.tExpr)("Filter"),toggleable:!0,sort:100});const connectFields=(0,import_flow_engine.defineAction)({name:"connectFields",title:(0,import_flow_engine.tExpr)("Connect fields"),uiSchema(e){return{value:{type:"object","x-component":ConnectFields}}},beforeParamsSave(e,t){import_lodash.default.isEmpty(t.value)||e.model.context.filterManager.saveConnectFieldsConfig(e.model.uid,t.value),e.exit()},handler(e,t){}}),buildCascaderOptions=(e,t,o="",r=[],i="")=>{const n=r.filter(Boolean);return t.map(l=>{var a,c,u;const d=o?`${o}.${l.name}`:l.name,m=l.title||l.name,p=i?`${i} / ${m}`:m,h=!l.target,g={label:m,value:l.name,isLeaf:h,disableCheckbox:!h,meta:{field:l,fullPath:d,fullLabel:p}};if(!h&&n.some(f=>f&&f.startsWith(d+".")))if((c=(a=l.filterable)==null?void 0:a.children)!=null&&c.length)g.children=buildCascaderOptions(e,l.filterable.children,d,r,p);else{const f=l.targetCollection;if(f){const _=((u=f.getFields)==null?void 0:u.call(f))||[];g.children=buildCascaderOptions(e,_,d,r,p)}}return g}).sort((l,a)=>l.isLeaf&&!a.isLeaf?-1:!l.isLeaf&&a.isLeaf?1:0)};function ConnectFields(e){const t=(0,import_flow_engine.useFlowSettingsContext)(),o=(0,import_react2.useMemo)(()=>getAllDataModels(t.blockGridModel),[t.blockGridModel]),[r,i]=(0,import_react2.useState)(()=>t.model.context.filterManager.getConnectFieldsConfig(t.model.uid)),[n,l]=(0,import_react2.useState)({}),[a,c]=(0,import_react2.useState)({});import_react2.default.useEffect(()=>{L(this,null,function*(){var _;const v={},y=((r==null?void 0:r.targets)||[]).map(C=>C.targetId);for(const C of o.filter(b=>y.includes(b.uid))){const b=(yield(_=C.getFilterFields)==null?void 0:_.call(C))||[];v[C.uid]=b}l(v)})},[r==null?void 0:r.targets,o]);const u=(_,v)=>{c(y=>A(x({},y),{[_]:v}))},d=_=>a[_]||"field-select",m=(_,v)=>{var y;const C={};((r==null?void 0:r.targets)||[]).forEach(F=>{C[F.targetId]=F}),C[_]={targetId:_,filterPaths:v};const b=Object.values(C);(y=e.onChange)==null||y.call(e,{targets:b}),i({targets:b})},p=(_,v)=>{var y;const C={};((r==null?void 0:r.targets)||[]).forEach(F=>{C[F.targetId]=F}),v?C[_]={targetId:_,filterPaths:[]}:delete C[_];const b=Object.values(C);(y=e.onChange)==null||y.call(e,{targets:b}),i({targets:b})},h=_=>{var v;const y={};((r==null?void 0:r.targets)||[]).forEach(b=>{b.targetId!==_&&(y[b.targetId]=b)});const C=Object.values(y);(v=e.onChange)==null||v.call(e,{targets:C}),i({targets:C})},g=((r==null?void 0:r.targets)||[]).map(_=>_.targetId),f=o.filter(_=>{var v;return(v=_.resource)==null?void 0:v.supportsFilter}).map(_=>{const v=g.includes(_.uid);return{key:_.uid,label:(0,import_jsx_runtime.jsxs)("button",{type:"button",style:{display:"flex",justifyContent:"space-between",alignItems:"center",minWidth:"200px",border:"none",background:"none",padding:"0",width:"100%",cursor:"pointer"},onClick:y=>{y.stopPropagation(),p(_.uid,!v)},children:[(0,import_jsx_runtime.jsxs)("span",{style:{marginRight:"16px"},children:[_.title," #",_.uid.substring(0,4)]}),(0,import_jsx_runtime.jsx)(import_antd.Switch,{size:"small",checked:v})]})}});return(0,import_jsx_runtime.jsxs)("div",{children:[(0,import_jsx_runtime.jsxs)("div",{style:{marginBottom:"16px",padding:"12px",backgroundColor:"#f0f9ff",border:"1px solid #bae6fd",borderRadius:"6px",fontSize:"14px",color:"#0369a1"},children:[(0,import_jsx_runtime.jsx)("div",{style:{fontWeight:500,marginBottom:"8px"},children:t.t("Configuration:")}),(0,import_jsx_runtime.jsxs)("ul",{style:{margin:0,paddingLeft:"16px"},children:[(0,import_jsx_runtime.jsx)("li",{children:t.t('Available "target blocks" are all data blocks on the current page')}),(0,import_jsx_runtime.jsx)("li",{children:t.t("Support filtering multiple blocks simultaneously, support deep selection of relationship fields (e.g.: User/Department/Name)")})]})]}),o.filter(_=>g.includes(_.uid)&&n[_.uid]).sort((_,v)=>{const y=((r==null?void 0:r.targets)||[]).findIndex(b=>b.targetId===_.uid),C=((r==null?void 0:r.targets)||[]).findIndex(b=>b.targetId===v.uid);return y-C}).map(_=>{var v,y;const C=n[_.uid]||[],b=((y=(v=r==null?void 0:r.targets)==null?void 0:v.find(j=>j.targetId===_.uid))==null?void 0:y.filterPaths)||[],F=buildCascaderOptions(t,C,"",b,""),S=b.map(j=>j.split(".")),P=d(_.uid);return(0,import_jsx_runtime.jsx)(import_antd_v5.FormItem,{label:`${_.title} #${_.uid.substring(0,4)}`,children:(0,import_jsx_runtime.jsxs)("div",{style:{display:"flex",gap:"8px",alignItems:"center"},children:[(0,import_jsx_runtime.jsx)("div",{style:{flex:1},children:P==="field-select"?(0,import_jsx_runtime.jsx)(CascaderWrapper,{options:F,value:S,onChange:j=>{const I=(j||[]).map(T=>T.join("."));m(_.uid,I)},multiple:!0,allowClear:!0,placeholder:t.t("Please select fields to filter"),style:{width:"100%"},showSearch:{filter:(j,I)=>I.some(T=>(T.label||"").toString().toLowerCase().includes(j.toLowerCase()))}}):(0,import_jsx_runtime.jsx)(import_antd.Select,{mode:"tags",value:b,onChange:j=>m(_.uid,j),placeholder:t.t("Separate multiple values with comma or Enter"),style:{width:"100%"},allowClear:!0,tokenSeparators:[","],open:!1,suffixIcon:null})}),(0,import_jsx_runtime.jsx)(import_antd.Segmented,{value:P,onChange:j=>u(_.uid,j),options:[{label:t.t("Dropdown select"),value:"field-select"},{label:t.t("Text input"),value:"text-input"}]}),(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"text",icon:(0,import_jsx_runtime.jsx)(import_icons.DeleteOutlined,{}),onClick:()=>h(_.uid),style:{color:"#8c8c8c"},title:t.t("Delete this target block")})]})},_.uid)}),(0,import_jsx_runtime.jsx)("div",{style:{marginTop:"16px"},children:(0,import_jsx_runtime.jsx)(import_antd.Dropdown,{menu:{items:f},trigger:["hover"],autoFocus:!1,children:(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"dashed",icon:(0,import_jsx_runtime.jsx)(import_icons.PlusOutlined,{}),style:{width:"100%"},children:t.t("Add target block")})})})]})}function CascaderWrapper(e){const t=(0,import_flow_engine.useFlowSettingsContext)(),[o,r]=import_react2.default.useState(e.options||[]),i=import_react2.default.useMemo(()=>(e.options||[]).map(m=>{var p;return((p=m==null?void 0:m.meta)==null?void 0:p.fullPath)||(m==null?void 0:m.value)}).filter(Boolean).join("|"),[e.options]),n=(0,import_css.cx)(e.popupClassName,import_css.css`
|
|
2017
2017
|
.ant-cascader-checkbox {
|
|
2018
2018
|
display: none;
|
|
2019
2019
|
}
|
|
@@ -2150,7 +2150,7 @@ ctx.render(\`
|
|
|
2150
2150
|
&:hover .edit-icon {
|
|
2151
2151
|
display: inline-flex;
|
|
2152
2152
|
}
|
|
2153
|
-
`),children:[(0,import_jsx_runtime.jsx)(import_icons.EditOutlined,{className:"edit-icon",onClick:g=>L(this,null,function*(){g.preventDefault(),g.stopPropagation();try{yield QuickEditFormModel.open({flowEngine:this.flowEngine,target:h.current,dataSourceKey:this.collection.dataSourceKey,collectionName:this.collection.name,fieldPath:u,filterByTk:this.collection.getFilterByTK(a),record:a,fieldProps:x(x({},m.props),m.subModels.field.props),sourceFieldModelUid:m.subModels.field.uid,onSuccess:f=>{var _;const v=this.collection.getField(u);a[u]=f[u],
|
|
2153
|
+
`),children:[(0,import_jsx_runtime.jsx)(import_icons.EditOutlined,{className:"edit-icon",onClick:g=>L(this,null,function*(){g.preventDefault(),g.stopPropagation();try{yield QuickEditFormModel.open({flowEngine:this.flowEngine,target:h.current,dataSourceKey:this.collection.dataSourceKey,collectionName:this.collection.name,fieldPath:u,filterByTk:this.collection.getFilterByTK(a),record:a,fieldProps:x(x({},m.props),m.subModels.field.props),sourceFieldModelUid:m.subModels.field.uid,onSuccess:f=>{var _;const v=this.collection.getField(u);if(a[u]=f[u],typeof c=="number")this.resource.setItem(c,a);else{const b=import_lodash.default.cloneDeep(this.resource.getData());setNestedValue(b,c,a),this.resource.setData(b)}this.resource.emit("refresh");const y=m.subModels.field.createFork({},`${c}`),C=(0,import_flow_engine.createCurrentRecordMetaFactory)(y.context,()=>y.context.collection);y.context.defineProperty("record",{get:()=>a,cache:!1,meta:C}),y.setProps(A(x({},m.props),{value:f[u]})),y.context.defineProperty("recordIndex",{get:()=>c}),((_=v==null?void 0:v.targetCollection)==null?void 0:_.template)==="tree"?this.resource.refresh():m.rerender()}})}catch{}})}),(0,import_jsx_runtime.jsx)("div",{ref:h,className:import_css.css`
|
|
2154
2154
|
overflow: hidden;
|
|
2155
2155
|
text-overflow: ellipsis;
|
|
2156
2156
|
white-space: nowrap;
|
|
@@ -2171,12 +2171,12 @@ ctx.render(\`
|
|
|
2171
2171
|
.ant-table-body {
|
|
2172
2172
|
min-height: ${m.y}px;
|
|
2173
2173
|
}
|
|
2174
|
-
`:void 0;return(0,import_classnames.default)(D,w,k)},[o.props.dragSort,o.props.dragSortBy,m==null?void 0:m.y]);return(0,import_jsx_runtime.jsx)(MemoizedTable,{summary:o.props.summary,components:T,tableLayout:"fixed",size:r,rowKey:f,rowSelection:_,virtual:i,scroll:m,dataSource:n,columns:l,pagination:C,onChange:v,rowClassName:y,onRow:b,className:N,defaultExpandAllRows:u,expandable:P,indentSize:15})});HighPerformanceTable.displayName="HighPerformanceTable";TableBlockModel.registerEvents({rowClick:{title:(0,import_flow_engine.tExpr)("Row click"),name:"rowClick",uiSchema:{condition:{type:"object",title:(0,import_flow_engine.tExpr)("Trigger condition"),"x-decorator":"FormItem","x-component":e=>{const t=(0,import_flow_engine.useFlowContext)();return(0,import_react2.useEffect)(()=>(defineClickedRowRecordVariable(t.model,null),()=>removeClickedRowRecordVariable(t.model)),[t.model]),(0,import_jsx_runtime.jsx)(ConditionBuilder,x({},e))}}},handler(e,t){return L(this,null,function*(){commonConditionHandler(e,t);const o=e.model,r=getRowKey$1(e.inputArgs.record,o.collection.filterTargetKey);o.props.highlightedRowKey!==r?o.highlightRow(e.inputArgs.record):o.clearHighlight()})}}});function defineClickedRowRecordVariable(e,t){const o=(0,import_flow_engine.createCurrentRecordMetaFactory)(e.context,()=>e.collection,{title:(0,import_flow_engine.tExpr)("Clicked row record")});e.context.defineProperty("clickedRowRecord",{get:()=>t,meta:o})}function removeClickedRowRecordVariable(e){e.context.defineProperty("clickedRowRecord",{})}class TableSelectModel extends TableBlockModel{constructor(){super(...arguments),R(this,"rowSelectionProps",import_flow_engine.observable.deep({}))}onInit(t){var o;super.onInit(t);const r=this.context.view.inputArgs.collectionField||{},i=["oho","o2m"].includes(r==null?void 0:r.interface),n=this.context.view.inputArgs.sourceId;if(i){const u=r.foreignKey,d=`${this.uid}-${r.name}`;u&&(n!=null?this.resource.addFilterGroup(d,{$or:[{[u]:{$is:null}},{[u]:{$eq:n}}]}):this.resource.addFilterGroup(d,{[u]:{$is:null}}))}Object.assign(this.rowSelectionProps,this.context.view.inputArgs.rowSelectionProps||{});const l=(o=this.rowSelectionProps)==null?void 0:o.defaultSelectedRows,a=typeof l=="function"?l():l,c=(a&&(0,import_lodash.castArray)(a)||[]).map(u=>u[this.collection.filterTargetKey]).filter(Boolean);this.resource.addFilterGroup(`${this.uid}-select`,{[`${this.collection.filterTargetKey}.$ne`]:c})}}R(TableSelectModel,"scene",BlockSceneEnum.select);TableSelectModel.define({label:(0,import_flow_engine.tExpr)("Table"),children:!1,useModel:"TableSelectModel",createModelOptions:e=>L(void 0,null,function*(){const{dataSourceKey:t,collectionName:o}=e.view.inputArgs;return{use:"TableSelectModel",stepParams:{resourceSettings:{init:{dataSourceKey:t,collectionName:o}}}}})});class TableJSFieldItemModel extends TableCustomColumnModel{static defineChildren(t){return buildJSFieldMenuChildren(t,{useModel:"TableColumnModel",fieldUseModel:"JSFieldModel",refreshTargets:["TableColumnModel"],associationProvider:o=>TableAssociationFieldGroupModel.defineChildren(o)})}}TableJSFieldItemModel.define({label:(0,import_flow_engine.tExpr)("JS field"),searchable:!0,searchPlaceholder:(0,import_flow_engine.tExpr)("Search fields"),sort:110});class JSColumnModel extends TableCustomColumnModel{constructor(){super(...arguments),R(this,"_RenderComponent")}renderHiddenInConfig(){return(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:this.context.t("This field has been hidden and you cannot view it (this content is only visible when the UI Editor is activated)."),children:(0,import_jsx_runtime.jsx)(import_icons.LockOutlined,{style:{opacity:"0.45"}})})}getInputArgs(){const t={};if(this.context.resource){const o=this.context.resource.getSourceId();o&&(t.sourceId=o)}if(this.context.collection&&this.context.record){const o=this.context.collection.getFilterByTK(this.context.record);o&&(t.filterByTk=o)}return t}getColumnProps(){const t=this,o=(0,import_flow_engine.observer)(()=>(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:t.props.title})),r=(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 8px",margin:"-11px -8px"},showBorder:!1,extraToolbarItems:[{key:"drag-handler",component:import_flow_engine.DragHandler,sort:1}],children:(0,import_jsx_runtime.jsx)("div",{className:import_css.css`
|
|
2174
|
+
`:void 0;return(0,import_classnames.default)(D,w,k)},[o.props.dragSort,o.props.dragSortBy,m==null?void 0:m.y]);return(0,import_jsx_runtime.jsx)(MemoizedTable,{summary:o.props.summary,components:T,tableLayout:"fixed",size:r,rowKey:f,rowSelection:_,virtual:i,scroll:m,dataSource:n,columns:l,pagination:C,onChange:v,rowClassName:y,onRow:b,className:N,defaultExpandAllRows:u,expandable:P,indentSize:15})});HighPerformanceTable.displayName="HighPerformanceTable";TableBlockModel.registerEvents({rowClick:{title:(0,import_flow_engine.tExpr)("Row click"),name:"rowClick",uiSchema:{condition:{type:"object",title:(0,import_flow_engine.tExpr)("Trigger condition"),"x-decorator":"FormItem","x-component":e=>{const t=(0,import_flow_engine.useFlowContext)();return(0,import_react2.useEffect)(()=>(defineClickedRowRecordVariable(t.model,null),()=>removeClickedRowRecordVariable(t.model)),[t.model]),(0,import_jsx_runtime.jsx)(ConditionBuilder,x({},e))}}},handler(e,t){return L(this,null,function*(){commonConditionHandler(e,t);const o=e.model,r=getRowKey$1(e.inputArgs.record,o.collection.filterTargetKey);o.props.highlightedRowKey!==r?o.highlightRow(e.inputArgs.record):o.clearHighlight()})}}});function defineClickedRowRecordVariable(e,t){const o=(0,import_flow_engine.createCurrentRecordMetaFactory)(e.context,()=>e.collection,{title:(0,import_flow_engine.tExpr)("Clicked row record")});e.context.defineProperty("clickedRowRecord",{get:()=>t,meta:o})}function removeClickedRowRecordVariable(e){e.context.defineProperty("clickedRowRecord",{})}class TableSelectModel extends TableBlockModel{constructor(){super(...arguments),R(this,"rowSelectionProps",import_flow_engine.observable.deep({}))}onInit(t){var o;super.onInit(t);const r=this.context.view.inputArgs.collectionField||{},i=["oho","o2m"].includes(r==null?void 0:r.interface),n=this.context.view.inputArgs.sourceId;if(i){const u=r.foreignKey,d=`${this.uid}-${r.name}`;u&&(n!=null?this.resource.addFilterGroup(d,{$or:[{[u]:{$is:null}},{[u]:{$eq:n}}]}):this.resource.addFilterGroup(d,{[u]:{$is:null}}))}Object.assign(this.rowSelectionProps,this.context.view.inputArgs.rowSelectionProps||{});const l=(o=this.rowSelectionProps)==null?void 0:o.defaultSelectedRows,a=typeof l=="function"?l():l,c=(a&&(0,import_lodash.castArray)(a)||[]).map(u=>u[this.collection.filterTargetKey]).filter(Boolean);this.resource.addFilterGroup(`${this.uid}-select`,{[`${this.collection.filterTargetKey}.$ne`]:c})}}R(TableSelectModel,"scene",BlockSceneEnum.select);TableSelectModel.define({label:(0,import_flow_engine.tExpr)("Table"),children:!1,useModel:"TableSelectModel",createModelOptions:e=>L(void 0,null,function*(){const{dataSourceKey:t,collectionName:o}=e.view.inputArgs;return{use:"TableSelectModel",stepParams:{resourceSettings:{init:{dataSourceKey:t,collectionName:o}}}}})});class TableJSFieldItemModel extends TableCustomColumnModel{static defineChildren(t){return buildJSFieldMenuChildren(t,{useModel:"TableColumnModel",fieldUseModel:"JSFieldModel",refreshTargets:["TableColumnModel"],associationProvider:o=>TableAssociationFieldGroupModel.defineChildren(o)})}}TableJSFieldItemModel.define({label:(0,import_flow_engine.tExpr)("JS field"),searchable:!0,searchPlaceholder:(0,import_flow_engine.tExpr)("Search fields"),sort:110});function getRecordRenderSignature(e){if(!e||typeof e!="object")return String(e);try{const t=new WeakSet;return JSON.stringify(e,(o,r)=>{if(r&&typeof r=="object"){if(t.has(r))return"[Circular]";t.add(r)}return r})}catch{return String(e)}}class JSColumnModel extends TableCustomColumnModel{constructor(){super(...arguments),R(this,"_RenderComponent")}renderHiddenInConfig(){return(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:this.context.t("This field has been hidden and you cannot view it (this content is only visible when the UI Editor is activated)."),children:(0,import_jsx_runtime.jsx)(import_icons.LockOutlined,{style:{opacity:"0.45"}})})}getInputArgs(){const t={};if(this.context.resource){const o=this.context.resource.getSourceId();o&&(t.sourceId=o)}if(this.context.collection&&this.context.record){const o=this.context.collection.getFilterByTK(this.context.record);o&&(t.filterByTk=o)}return t}getColumnProps(){const t=this,o=(0,import_flow_engine.observer)(()=>(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:t.props.title})),r=(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 8px",margin:"-11px -8px"},showBorder:!1,extraToolbarItems:[{key:"drag-handler",component:import_flow_engine.DragHandler,sort:1}],children:(0,import_jsx_runtime.jsx)("div",{className:import_css.css`
|
|
2175
2175
|
overflow: hidden;
|
|
2176
2176
|
text-overflow: ellipsis;
|
|
2177
2177
|
white-space: nowrap;
|
|
2178
2178
|
width: calc(${this.props.width}px - 16px);
|
|
2179
|
-
`,children:(0,import_jsx_runtime.jsx)(o,{})})})});return this.hidden&&!this.context.flowSettingsEnabled?null:A(x({},this.props),{title:this.props.tooltip?(0,import_jsx_runtime.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4},children:[r,(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:this.props.tooltip,children:(0,import_jsx_runtime.jsx)(import_icons.QuestionCircleOutlined,{style:{cursor:"pointer"}})})]}):r,render:(i,n,l)=>{var a,c,u;const d=(c=(a=this.context.collection)==null?void 0:a.getFilterByTK)==null?void 0:c.call(a,n),m=(u=d??(n==null?void 0:n.id))!=null?u:l,p=this.createFork({},String(m)),h=(0,import_flow_engine.createRecordMetaFactory)(()=>p.context.collection,p.context.t("Current record"),g=>{var f,_,v,y;const C=(f=g.collection)==null?void 0:f.name,b=(_=g.collection)==null?void 0:_.dataSourceKey,F=(y=(v=g.collection)==null?void 0:v.getFilterByTK)==null?void 0:y.call(v,g.record);if(!(!C||typeof F>"u"||F===null))return{collection:C,dataSourceKey:b,filterByTk:F}});return p.context.defineProperty("record",{get:()=>n,cache:!1,resolveOnServer:(0,import_flow_engine.createRecordResolveOnServerWithLocal)(()=>p.context.collection,()=>n),meta:h}),p.context.defineProperty("recordIndex",{get:()=>l}),(0,import_jsx_runtime.jsx)(import_flow_engine.MemoFlowModelRenderer,{model:p},p.uid)}})}render(){if(!this._RenderComponent){const t=this,o=()=>{const r=t.context.ref;return import_react2.default.useEffect(()=>{const i=t;r!=null&&r.current&&(i.__mountedOnce?t.rerender():i.__mountedOnce=!0)},[r==null?void 0:r.current]),(0,import_jsx_runtime.jsx)("div",{style:{width:this.props.width-8,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:(0,import_jsx_runtime.jsx)("span",{ref:r,style:{maxWidth:"100%"}})})};o.displayName="JSColumnModelStableRenderer",this._RenderComponent=o}return this._RenderComponent}afterAddAsSubModel(){return L(this,null,function*(){yield $e(JSColumnModel.prototype,this,"afterAddAsSubModel").call(this),yield this.applyFlow("tableColumnSettings")})}}JSColumnModel.define({label:(0,import_flow_engine.tExpr)("JS column"),createModelOptions:{stepParams:{tableColumnSettings:{title:{title:(0,import_flow_engine.tExpr)("JS column")}}}}});JSColumnModel.registerFlow({key:"jsSettings",title:(0,import_flow_engine.tExpr)("JavaScript settings"),steps:{runJs:{title:(0,import_flow_engine.tExpr)("Write JavaScript"),useRawParams:!0,uiSchema:{code:{type:"string","x-decorator":"FormItem","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(){return{version:"v2",code:`ctx.render('<span class="nb-js-column">JS column</span>');`}},handler(e,t){return L(this,null,function*(){var o,r;const{code:i,version:n}=resolveRunJsParams(e,t),l=!!((o=e.inputArgs)!=null&&o.preview),a=((r=e.model)==null?void 0:r.isFork)===!0;if(l&&!a){const c=e.model,u=Array.from((c==null?void 0:c.forks)||[]).filter(d=>{var m,p;return!!((p=(m=d==null?void 0:d.context)==null?void 0:m.ref)!=null&&p.current)});if(u.length>0){const d=(yield Promise.allSettled(u.map(m=>m.applyFlow("jsSettings",{preview:{code:i,version:n}})))).find(m=>m.status==="rejected");if(d)throw d.reason;return}}e.onRefReady(e.ref,c=>L(this,null,function*(){e.defineProperty("element",{get:()=>new import_flow_engine.ElementProxy(c)});const u=(0,import_flow_engine.createSafeNavigator)();yield e.runjs(i,{window:(0,import_flow_engine.createSafeWindow)({navigator:u}),document:(0,import_flow_engine.createSafeDocument)(),navigator:u},{version:n})}))})}}}});class CheckboxFieldModel extends FieldModel{render(){return(0,import_jsx_runtime.jsx)(import_antd.Checkbox,A(x({},this.props),{checked:this.props.value,onChange:t=>{this.props.onChange(t.target.checked)}}))}}import_flow_engine.EditableItemModel.bindModelToInterface("CheckboxFieldModel",["checkbox"],{isDefault:!0});class CheckboxGroupFieldModel extends FieldModel{render(){return(0,import_jsx_runtime.jsx)(import_antd.Checkbox.Group,x({},this.props))}}CheckboxGroupFieldModel.define({label:(0,import_flow_engine.tExpr)("CheckboxGroup")});import_flow_engine.EditableItemModel.bindModelToInterface("CheckboxGroupFieldModel",["checkboxGroup"],{isDefault:!0});const CollectionSelector=e=>{const t=e,{filter:o,options:r}=t,i=te(t,["filter","options"]),{t:n}=(0,import_react_i18next.useTranslation)(),l=(0,import_react2.useCallback)((a,c)=>{var u,d;return((u=c==null?void 0:c.label.toLowerCase())!=null?u:"").includes(a.toLocaleLowerCase())||((d=c==null?void 0:c.value.toString().toLowerCase())!=null?d:"").includes(a.toLocaleLowerCase())},[]);return(0,import_jsx_runtime.jsx)(import_antd.Select,A(x({role:"button","data-testid":"select-collection",placeholder:n("Select collection"),popupMatchSelectWidth:!1},i),{showSearch:!0,filterOption:l,options:r}))};class CollectionSelectorFieldModel extends FieldModel{render(){return(0,import_jsx_runtime.jsx)(CollectionSelector,x({},this.props))}}CollectionSelectorFieldModel.registerFlow({key:"collectionSelectFlow",sort:5e3,steps:{init:{handler(e){if(e.model.props.isTableOid){const t=e.dataSourceManager.getDataSource("main").collectionManager.getChildrenCollections(e.collectionField.collectionName),o=(0,import_lodash.castArray)(e.collectionField.collection).concat(t).map(r=>({label:r.title||r.name,value:r.name||r.value}));e.model.setProps({options:o})}else{const t=e.dataSourceManager.getDataSource("main").getCollections(),o=e.model.context.collectionField.enum||[],r=t.filter(i=>!i.options.hidden).filter(i=>o.length?o.find(n=>n.value===i.name):!0).map(i=>{var n;return{label:i.title||i.name,value:i.name||i.value,color:(n=i.category)==null?void 0:n.color}});e.model.setProps({options:r})}}}}});import_flow_engine.EditableItemModel.bindModelToInterface("CollectionSelectorFieldModel",["collection","tableoid"],{isDefault:!0});const NBColorPicker=e=>{const t=(0,import_flow_engine.useFlowEngineContext)(),o=A(x({},e),{trigger:"hover",style:{maWidth:30},destroyTooltipOnHide:!0,onChange:r=>{r!=null&&r.cleared?e.onChange(null):e.onChange(r.toHexString())},presets:[{label:t.t("Recommended"),colors:["#8BBB11","#52C41A","#13A8A8","#1677FF","#F5222D","#FADB14","#FA8C164D","#FADB144D","#52C41A4D","#1677FF4D","#2F54EB4D","#722ED14D","#EB2F964D"]}]});return(0,import_jsx_runtime.jsx)(import_antd.ColorPicker,x({allowClear:!0},o))};class ColorFieldModel extends FieldModel{render(){return(0,import_jsx_runtime.jsx)(NBColorPicker,x({},this.props))}}import_flow_engine.EditableItemModel.bindModelToInterface("ColorFieldModel",["color"],{isDefault:!0});class DateTimeFieldModel extends FieldModel{}DateTimeFieldModel.registerFlow({key:"datetimeSettings",sort:3e3,title:(0,import_flow_engine.tExpr)("Datetime settings"),steps:{dateFormat:{use:"dateDisplayFormat",title:(0,import_flow_engine.tExpr)("Date display format")}}});const MobileDatePicker=e=>{const t=e,{value:o,onChange:r,dateFormat:i="YYYY-MM-DD",timeFormat:n="HH:mm",showTime:l=!1,picker:a,disabled:c,dateOnly:u,utc:d,minDate:m,maxDate:p}=t,h=te(t,["value","onChange","dateFormat","timeFormat","showTime","picker","disabled","dateOnly","utc","minDate","maxDate"]),[g,f]=(0,import_react2.useState)(!1),_=(0,import_flow_engine.useFlowModelContext)().t,v=(0,import_react2.useCallback)(S=>{f(!1),r((0,import_client.dayjs)(S))},[r]),y=(0,import_react2.useCallback)(()=>{f(!1),r(null)},[r]),C=(0,import_react2.useCallback)((S,P)=>{switch(S){case"year":return P;case"quarter":return P;default:return P}},[]),b=m?m.toDate():new Date(1950,0,1),F=p?p.toDate():new Date(2050,11,31);return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)("div",{onClick:()=>!c&&f(!0),children:(0,import_jsx_runtime.jsx)(import_antd.DatePicker,A(x({onClick:()=>f(!0),value:o,picker:a,disabled:c},h),{popupStyle:{display:"none"},style:{pointerEvents:"none",width:"100%"}}))}),(0,import_jsx_runtime.jsx)(import_antd_mobile.DatePicker,A(x({},h),{cancelText:_("Cancel"),confirmText:_("Confirm"),visible:g,title:(0,import_jsx_runtime.jsx)("a",{onClick:y,children:_("Clear")}),onClose:()=>{f(!1)},precision:l&&a==="date"?getPrecision(n):a==="date"?"day":a,renderLabel:C,min:b,max:F,onConfirm:S=>{v(S)}}))]})};function getPrecision(e){const t=e.toLowerCase();if(/\bss?\b/.test(t))return"second";if(/\bmm?\b/.test(t))return"minute";if(/\bhh?\b/.test(t))return"hour";throw new Error("Invalid time format")}const DateOnlyPicker=e=>{const t=e,{value:o,format:r="YYYY-MM-DD",picker:i="date",showTime:n}=t,l=te(t,["value","format","picker","showTime"]),a=o&&(0,import_dayjs.default)(o).isValid()?(0,import_dayjs.default)(o):null,c=(0,import_flow_engine.useFlowModelContext)(),u=A(x({},l),{value:a,format:r,picker:i,showTime:n,onChange:d=>{const m="YYYY-MM-DD";if(!d){e.onChange(void 0);return}i==="date"?e.onChange(d.format(m)):e.onChange(d.startOf(i).format(m))}});return c.isMobileLayout?(0,import_jsx_runtime.jsx)(MobileDatePicker,x({},u)):(0,import_jsx_runtime.jsx)(import_antd.DatePicker,x({},u))};class DateOnlyFieldModel extends DateTimeFieldModel{setProps(t){super.setProps(A(x({},t),{showTime:!1,utc:!1}))}render(){return(0,import_jsx_runtime.jsx)(DateOnlyPicker,A(x({},this.props),{style:{width:"100%"}}))}}import_flow_engine.EditableItemModel.bindModelToInterface("DateOnlyFieldModel",["date"],{isDefault:!0});const DateTimeNoTzPicker=e=>{const t=e,{value:o,format:r="YYYY-MM-DD HH:mm:ss",showTime:i,picker:n="date",onChange:l}=t,a=te(t,["value","format","showTime","picker","onChange"]),c=o?(0,import_dayjs.default)(o):null,u=(0,import_flow_engine.useFlowModelContext)(),d=A(x({},a),{value:c,format:r,picker:n,showTime:i,onChange:m=>{if(!m)return l(m);const p=i?"YYYY-MM-DD HH:mm:ss":"YYYY-MM-DD",h=n!=="date"?(0,import_dayjs.default)(m).startOf(n):(0,import_dayjs.default)(m);l(h.format(p))}});return u.isMobileLayout?(0,import_jsx_runtime.jsx)(MobileDatePicker,x({},d)):(0,import_jsx_runtime.jsx)(import_antd.DatePicker,x({},d))};class DateTimeNoTzFieldModel extends DateTimeFieldModel{render(){return(0,import_jsx_runtime.jsx)(DateTimeNoTzPicker,A(x({},this.props),{style:{width:"100%"}}))}}import_flow_engine.EditableItemModel.bindModelToInterface("DateTimeNoTzFieldModel",["datetimeNoTz"],{isDefault:!0});function parseToDate(e,t){if(!e)return;if(e instanceof Date)return e;if(import_client.dayjs.isDayjs(e))return e.toDate();const o=String(e).trim();if(!o)return;if(t){const i=(0,import_client.dayjs)(o,t,!0);return i.isValid()?i.toDate():void 0}const r=(0,import_client.dayjs)(o);return r.isValid()?r.toDate():void 0}function parseInitialValue(e,t){if(!e)return null;if(e instanceof Date)return(0,import_client.dayjs)(e);const o=String(e).trim();if(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?Z?$/.test(o)){const i=import_client.dayjs.utc(o).local();return i.isValid()?i:null}if(t){const i=import_client.dayjs.utc(o,t,!0).local();return i.isValid()?i:null}const r=(0,import_client.dayjs)(o);return r.isValid()?r:null}const DateTimeTzPicker=e=>{const t=e,{value:o,format:r="YYYY-MM-DD HH:mm:ss",picker:i="date",showTime:n}=t,l=te(t,["value","format","picker","showTime"]),a=(0,import_flow_engine.useFlowModelContext)(),c=A(x({},l),{value:parseInitialValue(o,r),format:r,picker:i,showTime:n,onChange:u=>{let d=parseToDate(u,r);if(d&&i!=="date"){const m=(0,import_client.dayjs)(d);m.isValid()&&(d=m.startOf(i).toDate())}l.onChange(d)}});return a.isMobileLayout?(0,import_jsx_runtime.jsx)(MobileDatePicker,x({},c)):(0,import_jsx_runtime.jsx)(import_antd.DatePicker,x({},c))};class DateTimeTzFieldModel extends DateTimeFieldModel{setProps(t){super.setProps(A(x({},t),{utc:!0}))}render(){return(0,import_jsx_runtime.jsx)(DateTimeTzPicker,A(x({},this.props),{style:{width:"100%"}}))}}import_flow_engine.EditableItemModel.bindModelToInterface("DateTimeTzFieldModel",["createdAt","datetime","updatedAt","unixTimestamp"],{isDefault:!0});const{Search}=import_antd.Input,groupByIconName=e=>(0,import_lodash.groupBy)(e,t=>{if(t.endsWith("outlined"))return"Outlined";if(t.endsWith("filled"))return"Filled";if(t.endsWith("twotone"))return"TwoTone"});function IconPicker(e){const{fontSizeXL:t}=import_antd.theme.useToken().token,o=[...icons.keys()],r=(0,import_antd_v5.useFormLayout)(),{value:i,onChange:n,disabled:l,iconSize:a=t,searchable:c=!0,onChangeComplete:u}=e,[d,m]=(0,import_react2.useState)(!1),[p,h]=(0,import_react2.useState)(o),[g,f]=(0,import_react2.useState)("Outlined"),{t:_}=(0,import_react_i18next.useTranslation)(),v=groupByIconName(o),y={width:"26em",[`${c?"height":"maxHeight"}`]:"20em",overflowY:"auto"},C=(0,import_lodash.debounce)(F=>{var S;const P=(S=F==null?void 0:F.trim())!=null?S:"";h(P.length?o.filter(j=>j.split(" ").some(I=>I.includes(P))):o)},250),b=()=>(0,import_jsx_runtime.jsxs)(import_antd.Flex,{vertical:!0,gap:"middle",children:[(0,import_jsx_runtime.jsx)(import_antd.Radio.Group,{options:[{label:_("Outlined"),value:"Outlined"},{label:_("Filled"),value:"Filled"},{label:_("Two tone"),value:"TwoTone"}],value:g,optionType:"button",onChange:F=>{f(F.target.value)}}),(0,import_jsx_runtime.jsx)("div",{children:v[g].map(F=>{if(p.includes(F))return(0,import_jsx_runtime.jsx)("span",{title:F.replace(/outlined|filled|twotone$/i,""),style:{fontSize:a,marginRight:10,cursor:"pointer"},onClick:()=>{n(F),m(!1),u==null||u(F)},children:(0,import_jsx_runtime.jsx)(Icon,{type:F})},F)})})]});return(0,import_jsx_runtime.jsx)("div",{children:(0,import_jsx_runtime.jsxs)(import_antd.Space.Compact,{children:[(0,import_jsx_runtime.jsx)(import_antd.Popover,{placement:"bottom",open:d,onOpenChange:F=>{l||m(F)},content:(0,import_jsx_runtime.jsx)("div",{style:y,children:p.length===0?(0,import_jsx_runtime.jsx)(import_antd.Empty,{image:import_antd.Empty.PRESENTED_IMAGE_SIMPLE}):(0,import_jsx_runtime.jsx)(b,{})}),title:(0,import_jsx_runtime.jsx)("div",{children:c&&(0,import_jsx_runtime.jsx)(Search,{style:{marginTop:8},role:"search",name:"icon-search",placeholder:_("Search"),allowClear:!0,onSearch:C,onChange:F=>{var S;return C((S=F.target)==null?void 0:S.value)}})}),trigger:"click",children:(0,import_jsx_runtime.jsx)(import_antd.Button,{size:r.size,disabled:l,children:hasIcon(i)?(0,import_jsx_runtime.jsx)(Icon,{type:i}):_("Select icon")})}),i&&!l&&(0,import_jsx_runtime.jsx)(import_antd.Button,{size:r.size,icon:(0,import_jsx_runtime.jsx)(import_icons.CloseOutlined,{}),onClick:F=>{n(null)}})]})})}class IconFieldModel extends FieldModel{render(){return(0,import_jsx_runtime.jsx)(IconPicker,x({},this.props))}}import_flow_engine.EditableItemModel.bindModelToInterface("IconFieldModel",["icon"],{isDefault:!0});var __decorateClass$2=(e,t,o,r)=>{for(var i=t,n=e.length-1,l;n>=0;n--)(l=e[n])&&(i=l(i)||i);return i};const jsonCss=import_css.css`
|
|
2179
|
+
`,children:(0,import_jsx_runtime.jsx)(o,{})})})});return this.hidden&&!this.context.flowSettingsEnabled?null:A(x({},this.props),{title:this.props.tooltip?(0,import_jsx_runtime.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4},children:[r,(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:this.props.tooltip,children:(0,import_jsx_runtime.jsx)(import_icons.QuestionCircleOutlined,{style:{cursor:"pointer"}})})]}):r,render:(i,n,l)=>{var a,c,u;const d=(c=(a=this.context.collection)==null?void 0:a.getFilterByTK)==null?void 0:c.call(a,n),m=(u=d??(n==null?void 0:n.id))!=null?u:l,p=getRecordRenderSignature(n),h=this.createFork({},String(m));h.__recordRenderSignature!==p&&(h.__recordRenderSignature=p,h.invalidateFlowCache("beforeRender"));const g=(0,import_flow_engine.createRecordMetaFactory)(()=>h.context.collection,h.context.t("Current record"),f=>{var _,v,y,C;const b=(_=f.collection)==null?void 0:_.name,F=(v=f.collection)==null?void 0:v.dataSourceKey,S=(C=(y=f.collection)==null?void 0:y.getFilterByTK)==null?void 0:C.call(y,f.record);if(!(!b||typeof S>"u"||S===null))return{collection:b,dataSourceKey:F,filterByTk:S}});return h.context.defineProperty("record",{get:()=>n,cache:!1,resolveOnServer:(0,import_flow_engine.createRecordResolveOnServerWithLocal)(()=>h.context.collection,()=>n),meta:g}),h.context.defineProperty("recordIndex",{get:()=>l}),(0,import_jsx_runtime.jsx)(import_flow_engine.MemoFlowModelRenderer,{model:h},`${h.uid}:${p}`)}})}render(){if(!this._RenderComponent){const t=this,o=()=>{const r=t.context.ref;return import_react2.default.useEffect(()=>{const i=t;r!=null&&r.current&&(i.__mountedOnce?t.rerender():i.__mountedOnce=!0)},[r==null?void 0:r.current]),(0,import_jsx_runtime.jsx)("div",{style:{width:this.props.width-8,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:(0,import_jsx_runtime.jsx)("span",{ref:r,style:{maxWidth:"100%"}})})};o.displayName="JSColumnModelStableRenderer",this._RenderComponent=o}return this._RenderComponent}afterAddAsSubModel(){return L(this,null,function*(){yield $e(JSColumnModel.prototype,this,"afterAddAsSubModel").call(this),yield this.applyFlow("tableColumnSettings")})}}JSColumnModel.define({label:(0,import_flow_engine.tExpr)("JS column"),createModelOptions:{stepParams:{tableColumnSettings:{title:{title:(0,import_flow_engine.tExpr)("JS column")}}}}});JSColumnModel.registerFlow({key:"jsSettings",title:(0,import_flow_engine.tExpr)("JavaScript settings"),steps:{runJs:{title:(0,import_flow_engine.tExpr)("Write JavaScript"),useRawParams:!0,uiSchema:{code:{type:"string","x-decorator":"FormItem","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(){return{version:"v2",code:`ctx.render('<span class="nb-js-column">JS column</span>');`}},handler(e,t){return L(this,null,function*(){var o,r;const{code:i,version:n}=resolveRunJsParams(e,t),l=!!((o=e.inputArgs)!=null&&o.preview),a=((r=e.model)==null?void 0:r.isFork)===!0;if(l&&!a){const c=e.model,u=Array.from((c==null?void 0:c.forks)||[]).filter(d=>{var m,p;return!!((p=(m=d==null?void 0:d.context)==null?void 0:m.ref)!=null&&p.current)});if(u.length>0){const d=(yield Promise.allSettled(u.map(m=>m.applyFlow("jsSettings",{preview:{code:i,version:n}})))).find(m=>m.status==="rejected");if(d)throw d.reason;return}}e.onRefReady(e.ref,c=>L(this,null,function*(){e.defineProperty("element",{get:()=>{var d;return new import_flow_engine.ElementProxy(((d=e.ref)==null?void 0:d.current)||c)},cache:!1});const u=(0,import_flow_engine.createSafeNavigator)();yield e.runjs(i,{window:(0,import_flow_engine.createSafeWindow)({navigator:u}),document:(0,import_flow_engine.createSafeDocument)(),navigator:u},{version:n})}))})}}}});class CheckboxFieldModel extends FieldModel{render(){return(0,import_jsx_runtime.jsx)(import_antd.Checkbox,A(x({},this.props),{checked:this.props.value,onChange:t=>{this.props.onChange(t.target.checked)}}))}}import_flow_engine.EditableItemModel.bindModelToInterface("CheckboxFieldModel",["checkbox"],{isDefault:!0});class CheckboxGroupFieldModel extends FieldModel{render(){return(0,import_jsx_runtime.jsx)(import_antd.Checkbox.Group,x({},this.props))}}CheckboxGroupFieldModel.define({label:(0,import_flow_engine.tExpr)("CheckboxGroup")});import_flow_engine.EditableItemModel.bindModelToInterface("CheckboxGroupFieldModel",["checkboxGroup"],{isDefault:!0});const CollectionSelector=e=>{const t=e,{filter:o,options:r}=t,i=te(t,["filter","options"]),{t:n}=(0,import_react_i18next.useTranslation)(),l=(0,import_react2.useCallback)((a,c)=>{var u,d;return((u=c==null?void 0:c.label.toLowerCase())!=null?u:"").includes(a.toLocaleLowerCase())||((d=c==null?void 0:c.value.toString().toLowerCase())!=null?d:"").includes(a.toLocaleLowerCase())},[]);return(0,import_jsx_runtime.jsx)(import_antd.Select,A(x({role:"button","data-testid":"select-collection",placeholder:n("Select collection"),popupMatchSelectWidth:!1},i),{showSearch:!0,filterOption:l,options:r}))};class CollectionSelectorFieldModel extends FieldModel{render(){return(0,import_jsx_runtime.jsx)(CollectionSelector,x({},this.props))}}CollectionSelectorFieldModel.registerFlow({key:"collectionSelectFlow",sort:5e3,steps:{init:{handler(e){if(e.model.props.isTableOid){const t=e.dataSourceManager.getDataSource("main").collectionManager.getChildrenCollections(e.collectionField.collectionName),o=(0,import_lodash.castArray)(e.collectionField.collection).concat(t).map(r=>({label:r.title||r.name,value:r.name||r.value}));e.model.setProps({options:o})}else{const t=e.dataSourceManager.getDataSource("main").getCollections(),o=e.model.context.collectionField.enum||[],r=t.filter(i=>!i.options.hidden).filter(i=>o.length?o.find(n=>n.value===i.name):!0).map(i=>{var n;return{label:i.title||i.name,value:i.name||i.value,color:(n=i.category)==null?void 0:n.color}});e.model.setProps({options:r})}}}}});import_flow_engine.EditableItemModel.bindModelToInterface("CollectionSelectorFieldModel",["collection","tableoid"],{isDefault:!0});const NBColorPicker=e=>{const t=(0,import_flow_engine.useFlowEngineContext)(),o=A(x({},e),{trigger:"hover",style:{maWidth:30},destroyTooltipOnHide:!0,onChange:r=>{r!=null&&r.cleared?e.onChange(null):e.onChange(r.toHexString())},presets:[{label:t.t("Recommended"),colors:["#8BBB11","#52C41A","#13A8A8","#1677FF","#F5222D","#FADB14","#FA8C164D","#FADB144D","#52C41A4D","#1677FF4D","#2F54EB4D","#722ED14D","#EB2F964D"]}]});return(0,import_jsx_runtime.jsx)(import_antd.ColorPicker,x({allowClear:!0},o))};class ColorFieldModel extends FieldModel{render(){return(0,import_jsx_runtime.jsx)(NBColorPicker,x({},this.props))}}import_flow_engine.EditableItemModel.bindModelToInterface("ColorFieldModel",["color"],{isDefault:!0});class DateTimeFieldModel extends FieldModel{}DateTimeFieldModel.registerFlow({key:"datetimeSettings",sort:3e3,title:(0,import_flow_engine.tExpr)("Datetime settings"),steps:{dateFormat:{use:"dateDisplayFormat",title:(0,import_flow_engine.tExpr)("Date display format")}}});const MobileDatePicker=e=>{const t=e,{value:o,onChange:r,dateFormat:i="YYYY-MM-DD",timeFormat:n="HH:mm",showTime:l=!1,picker:a,disabled:c,dateOnly:u,utc:d,minDate:m,maxDate:p}=t,h=te(t,["value","onChange","dateFormat","timeFormat","showTime","picker","disabled","dateOnly","utc","minDate","maxDate"]),[g,f]=(0,import_react2.useState)(!1),_=(0,import_flow_engine.useFlowModelContext)().t,v=(0,import_react2.useCallback)(S=>{f(!1),r((0,import_client.dayjs)(S))},[r]),y=(0,import_react2.useCallback)(()=>{f(!1),r(null)},[r]),C=(0,import_react2.useCallback)((S,P)=>{switch(S){case"year":return P;case"quarter":return P;default:return P}},[]),b=m?m.toDate():new Date(1950,0,1),F=p?p.toDate():new Date(2050,11,31);return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)("div",{onClick:()=>!c&&f(!0),children:(0,import_jsx_runtime.jsx)(import_antd.DatePicker,A(x({onClick:()=>f(!0),value:o,picker:a,disabled:c},h),{popupStyle:{display:"none"},style:{pointerEvents:"none",width:"100%"}}))}),(0,import_jsx_runtime.jsx)(import_antd_mobile.DatePicker,A(x({},h),{cancelText:_("Cancel"),confirmText:_("Confirm"),visible:g,title:(0,import_jsx_runtime.jsx)("a",{onClick:y,children:_("Clear")}),onClose:()=>{f(!1)},precision:l&&a==="date"?getPrecision(n):a==="date"?"day":a,renderLabel:C,min:b,max:F,onConfirm:S=>{v(S)}}))]})};function getPrecision(e){const t=e.toLowerCase();if(/\bss?\b/.test(t))return"second";if(/\bmm?\b/.test(t))return"minute";if(/\bhh?\b/.test(t))return"hour";throw new Error("Invalid time format")}const DateOnlyPicker=e=>{const t=e,{value:o,format:r="YYYY-MM-DD",picker:i="date",showTime:n}=t,l=te(t,["value","format","picker","showTime"]),a=o&&(0,import_dayjs.default)(o).isValid()?(0,import_dayjs.default)(o):null,c=(0,import_flow_engine.useFlowModelContext)(),u=A(x({},l),{value:a,format:r,picker:i,showTime:n,onChange:d=>{const m="YYYY-MM-DD";if(!d){e.onChange(void 0);return}i==="date"?e.onChange(d.format(m)):e.onChange(d.startOf(i).format(m))}});return c.isMobileLayout?(0,import_jsx_runtime.jsx)(MobileDatePicker,x({},u)):(0,import_jsx_runtime.jsx)(import_antd.DatePicker,x({},u))};class DateOnlyFieldModel extends DateTimeFieldModel{setProps(t){super.setProps(A(x({},t),{showTime:!1,utc:!1}))}render(){return(0,import_jsx_runtime.jsx)(DateOnlyPicker,A(x({},this.props),{style:{width:"100%"}}))}}import_flow_engine.EditableItemModel.bindModelToInterface("DateOnlyFieldModel",["date"],{isDefault:!0});const DateTimeNoTzPicker=e=>{const t=e,{value:o,format:r="YYYY-MM-DD HH:mm:ss",showTime:i,picker:n="date",onChange:l}=t,a=te(t,["value","format","showTime","picker","onChange"]),c=o?(0,import_dayjs.default)(o):null,u=(0,import_flow_engine.useFlowModelContext)(),d=A(x({},a),{value:c,format:r,picker:n,showTime:i,onChange:m=>{if(!m)return l(m);const p=i?"YYYY-MM-DD HH:mm:ss":"YYYY-MM-DD",h=n!=="date"?(0,import_dayjs.default)(m).startOf(n):(0,import_dayjs.default)(m);l(h.format(p))}});return u.isMobileLayout?(0,import_jsx_runtime.jsx)(MobileDatePicker,x({},d)):(0,import_jsx_runtime.jsx)(import_antd.DatePicker,x({},d))};class DateTimeNoTzFieldModel extends DateTimeFieldModel{render(){return(0,import_jsx_runtime.jsx)(DateTimeNoTzPicker,A(x({},this.props),{style:{width:"100%"}}))}}import_flow_engine.EditableItemModel.bindModelToInterface("DateTimeNoTzFieldModel",["datetimeNoTz"],{isDefault:!0});function parseToDate(e,t){if(!e)return;if(e instanceof Date)return e;if(import_client.dayjs.isDayjs(e))return e.toDate();const o=String(e).trim();if(!o)return;if(t){const i=(0,import_client.dayjs)(o,t,!0);return i.isValid()?i.toDate():void 0}const r=(0,import_client.dayjs)(o);return r.isValid()?r.toDate():void 0}function parseInitialValue(e,t){if(!e)return null;if(e instanceof Date)return(0,import_client.dayjs)(e);const o=String(e).trim();if(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?Z?$/.test(o)){const i=import_client.dayjs.utc(o).local();return i.isValid()?i:null}if(t){const i=import_client.dayjs.utc(o,t,!0).local();return i.isValid()?i:null}const r=(0,import_client.dayjs)(o);return r.isValid()?r:null}const DateTimeTzPicker=e=>{const t=e,{value:o,format:r="YYYY-MM-DD HH:mm:ss",picker:i="date",showTime:n}=t,l=te(t,["value","format","picker","showTime"]),a=(0,import_flow_engine.useFlowModelContext)(),c=A(x({},l),{value:parseInitialValue(o,r),format:r,picker:i,showTime:n,onChange:u=>{let d=parseToDate(u,r);if(d&&i!=="date"){const m=(0,import_client.dayjs)(d);m.isValid()&&(d=m.startOf(i).toDate())}l.onChange(d)}});return a.isMobileLayout?(0,import_jsx_runtime.jsx)(MobileDatePicker,x({},c)):(0,import_jsx_runtime.jsx)(import_antd.DatePicker,x({},c))};class DateTimeTzFieldModel extends DateTimeFieldModel{setProps(t){super.setProps(A(x({},t),{utc:!0}))}render(){return(0,import_jsx_runtime.jsx)(DateTimeTzPicker,A(x({},this.props),{style:{width:"100%"}}))}}import_flow_engine.EditableItemModel.bindModelToInterface("DateTimeTzFieldModel",["createdAt","datetime","updatedAt","unixTimestamp"],{isDefault:!0});const{Search}=import_antd.Input,groupByIconName=e=>(0,import_lodash.groupBy)(e,t=>{if(t.endsWith("outlined"))return"Outlined";if(t.endsWith("filled"))return"Filled";if(t.endsWith("twotone"))return"TwoTone"});function IconPicker(e){const{fontSizeXL:t}=import_antd.theme.useToken().token,o=[...icons.keys()],r=(0,import_antd_v5.useFormLayout)(),{value:i,onChange:n,disabled:l,iconSize:a=t,searchable:c=!0,onChangeComplete:u}=e,[d,m]=(0,import_react2.useState)(!1),[p,h]=(0,import_react2.useState)(o),[g,f]=(0,import_react2.useState)("Outlined"),{t:_}=(0,import_react_i18next.useTranslation)(),v=groupByIconName(o),y={width:"26em",[`${c?"height":"maxHeight"}`]:"20em",overflowY:"auto"},C=(0,import_lodash.debounce)(F=>{var S;const P=(S=F==null?void 0:F.trim())!=null?S:"";h(P.length?o.filter(j=>j.split(" ").some(I=>I.includes(P))):o)},250),b=()=>(0,import_jsx_runtime.jsxs)(import_antd.Flex,{vertical:!0,gap:"middle",children:[(0,import_jsx_runtime.jsx)(import_antd.Radio.Group,{options:[{label:_("Outlined"),value:"Outlined"},{label:_("Filled"),value:"Filled"},{label:_("Two tone"),value:"TwoTone"}],value:g,optionType:"button",onChange:F=>{f(F.target.value)}}),(0,import_jsx_runtime.jsx)("div",{children:v[g].map(F=>{if(p.includes(F))return(0,import_jsx_runtime.jsx)("span",{title:F.replace(/outlined|filled|twotone$/i,""),style:{fontSize:a,marginRight:10,cursor:"pointer"},onClick:()=>{n(F),m(!1),u==null||u(F)},children:(0,import_jsx_runtime.jsx)(Icon,{type:F})},F)})})]});return(0,import_jsx_runtime.jsx)("div",{children:(0,import_jsx_runtime.jsxs)(import_antd.Space.Compact,{children:[(0,import_jsx_runtime.jsx)(import_antd.Popover,{placement:"bottom",open:d,onOpenChange:F=>{l||m(F)},content:(0,import_jsx_runtime.jsx)("div",{style:y,children:p.length===0?(0,import_jsx_runtime.jsx)(import_antd.Empty,{image:import_antd.Empty.PRESENTED_IMAGE_SIMPLE}):(0,import_jsx_runtime.jsx)(b,{})}),title:(0,import_jsx_runtime.jsx)("div",{children:c&&(0,import_jsx_runtime.jsx)(Search,{style:{marginTop:8},role:"search",name:"icon-search",placeholder:_("Search"),allowClear:!0,onSearch:C,onChange:F=>{var S;return C((S=F.target)==null?void 0:S.value)}})}),trigger:"click",children:(0,import_jsx_runtime.jsx)(import_antd.Button,{size:r.size,disabled:l,children:hasIcon(i)?(0,import_jsx_runtime.jsx)(Icon,{type:i}):_("Select icon")})}),i&&!l&&(0,import_jsx_runtime.jsx)(import_antd.Button,{size:r.size,icon:(0,import_jsx_runtime.jsx)(import_icons.CloseOutlined,{}),onClick:F=>{n(null)}})]})})}class IconFieldModel extends FieldModel{render(){return(0,import_jsx_runtime.jsx)(IconPicker,x({},this.props))}}import_flow_engine.EditableItemModel.bindModelToInterface("IconFieldModel",["icon"],{isDefault:!0});var __decorateClass$2=(e,t,o,r)=>{for(var i=t,n=e.length-1,l;n>=0;n--)(l=e[n])&&(i=l(i)||i);return i};const jsonCss=import_css.css`
|
|
2180
2180
|
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
|
|
2181
2181
|
font-size: 14px;
|
|
2182
2182
|
`,JsonInput=(0,import_flow_engine.observer)(e=>{const{value:t,onChange:o,json5:r=!1,className:i,space:n=2}=e,l=r?import_json5.default:JSON,a=(0,import_react2.useRef)(!1),[c,u]=(0,import_react2.useState)(typeof t=="string"?t:t?l.stringify(t,null,n):"");(0,import_react2.useEffect)(()=>{a.current||(t!=null?u(typeof t=="string"?t:l.stringify(t,null,n)):u(void 0)),a.current=!1},[t]);const d=p=>{const h=p.target.value;u(h);try{const g=h.trim()!==""?l.parse(h):null;o==null||o(g),a.current=!0}catch{a.current=!1,o==null||o(p)}},m=p=>{const h=p.target.value;try{const g=l.parse(c);u(l.stringify(g,null,n)),o==null||o(g)}catch{o==null||o(h.trim()!==""?h:null)}};return(0,import_jsx_runtime.jsx)(import_antd.Input.TextArea,{value:c,onChange:d,onBlur:m,autoSize:{minRows:4,maxRows:10},className:(0,import_css.cx)(jsonCss,i)})});let JsonFieldModel=class extends FieldModel{render(){return(0,import_jsx_runtime.jsx)(JsonInput,x({},this.props))}};JsonFieldModel=__decorateClass$2([(0,import_flow_engine.largeField)()],JsonFieldModel);JsonFieldModel.registerFlow({key:"jsonInitSetting",steps:{initValidation:{handler(e,t){const o=e.model.parent.props.rules||[];o.push({validator:(r,i)=>{if(i==null||i===""||typeof i=="object")return Promise.resolve();try{return JSON.parse(i),Promise.resolve()}catch(n){return Promise.reject(e.t("Invalid JSON format")+": "+n.message)}}}),e.model.parent.setProps({rules:o})}}}});import_flow_engine.EditableItemModel.bindModelToInterface("JsonFieldModel",["json"],{isDefault:!0});function toSafeNumber(e){return e&&(e>Number.MAX_SAFE_INTEGER||e<Number.MIN_SAFE_INTEGER?new import_bignumber.default(e).toString():Number(e))}const InputNumberField=e=>{const t=e,{onChange:o}=t,r=te(t,["onChange"]),i=a=>{Number.isNaN(a)?o(null):o(toSafeNumber(a))},n=a=>{Number.isNaN(a)||typeof a=="object"?e.onCompositionEnd(void 0):e.onCompositionEnd(a)};let l=A(x({},r),{onChange:i,onCompositionEnd:n});return r.formatStyle&&(l=(0,import_lodash.omit)(l,["addonAfter","addonBefore"])),(0,import_jsx_runtime.jsx)(import_antd.InputNumber,x({},l))};class NumberFieldModel extends FieldModel{render(){return(0,import_jsx_runtime.jsx)(InputNumberField,A(x({},this.props),{style:{width:"100%"}}))}}import_flow_engine.EditableItemModel.bindModelToInterface("NumberFieldModel",["number","integer","id","snowflakeId"],{isDefault:!0});import_flow_engine.FilterableItemModel.bindModelToInterface("NumberFieldModel",["number","integer","id","snowflakeId"],{isDefault:!0});class PasswordFieldModel extends FieldModel{render(){return(0,import_jsx_runtime.jsx)(Password,x({},this.props))}}PasswordFieldModel.registerFlow({key:"passwordSettings",sort:1e3,title:(0,import_flow_engine.tExpr)("Password settings"),steps:{checkStrength:{title:(0,import_flow_engine.tExpr)("Check strength"),uiMode:{type:"switch",key:"checkStrength"},handler(e,t){e.model.setProps({checkStrength:t.checkStrength||!1})}},placeholder:{title:(0,import_flow_engine.tExpr)("Placeholder"),uiSchema:{placeholder:{"x-component":"Input","x-decorator":"FormItem","x-component-props":{placeholder:(0,import_flow_engine.tExpr)("Enter placeholder text")}}},handler(e,t){e.model.setProps({placeholder:t.placeholder})}}}});import_flow_engine.EditableItemModel.bindModelToInterface("PasswordFieldModel",["password"],{isDefault:!0});const isNumberLike=e=>(0,import_shared.isNum)(e)||/^-?\d+(\.\d+)?$/.test(e),toValue=(e,t)=>isNumberLike(e)?math.round(t(e),9):null,PercentInput=e=>{const t=(0,import_react2.useMemo)(()=>toValue(e.value,r=>r*100),[e.value]),o=A(x({},e),{value:t,addonAfter:"%",onChange:r=>{e.onChange(toValue(r,i=>i/100))},style:{width:"100%"}});return(0,import_jsx_runtime.jsx)(import_antd.InputNumber,x({},o))};class PercentFieldModel extends FieldModel{render(){return(0,import_jsx_runtime.jsx)(PercentInput,x({},this.props))}}import_flow_engine.EditableItemModel.bindModelToInterface("PercentFieldModel",["percent"],{isDefault:!0});import_flow_engine.FilterableItemModel.bindModelToInterface("PercentFieldModel",["percent"],{isDefault:!0});class RadioGroupFieldModel extends FieldModel{render(){return(0,import_jsx_runtime.jsx)(import_antd.Radio.Group,x({},this.props))}}RadioGroupFieldModel.define({label:(0,import_flow_engine.tExpr)("RadioGroup")});import_flow_engine.EditableItemModel.bindModelToInterface("RadioGroupFieldModel",["radioGroup"],{isDefault:!0});const useRichTextStyles=()=>{const{token:e}=import_antd.theme.useToken();return(0,import_css.css)({".ql-container":{boxSizing:"border-box",height:"100%",margin:"0px",position:"relative"},".ql-container.ql-disabled .ql-tooltip":{visibility:"hidden"},".ql-container.ql-disabled .ql-editor ul[data-checked] > li::before":{pointerEvents:"none"},".ql-clipboard":{left:"-100000px",height:"1px",overflowY:"hidden",position:"absolute",top:"50%"},".ql-clipboard p":{margin:"0",padding:"0"},".ql-editor":{minHeight:"10em",boxSizing:"border-box",lineHeight:1.42,height:"100%",outline:"none",overflowY:"auto",padding:"12px 15px",tabSize:4,MozTabSize:"4",textAlign:"left",whiteSpace:"pre-wrap",wordWrap:"break-word"},".ql-snow.ql-toolbar:after,\n.ql-snow .ql-toolbar:after":{clear:"both",content:"''",display:"table"},".ql-snow.ql-toolbar button,\n.ql-snow .ql-toolbar button":{background:"none",border:"none",cursor:"pointer",display:"inline-block",cssFloat:"left",height:"24px",padding:"3px 5px",width:"28px"},".ql-snow.ql-toolbar button svg,\n.ql-snow .ql-toolbar button svg":{cssFloat:"left",height:"100%"},".ql-snow.ql-toolbar button:active:hover,\n.ql-snow .ql-toolbar button:active:hover":{outline:"none"},".ql-snow.ql-toolbar input.ql-image[type='file'],\n.ql-snow .ql-toolbar input.ql-image[type='file']":{display:"none"},".ql-snow.ql-toolbar button:hover,\n.ql-snow .ql-toolbar button:hover,\n.ql-snow.ql-toolbar button:focus,\n.ql-snow .ql-toolbar button:focus,\n.ql-snow.ql-toolbar button.ql-active,\n.ql-snow .ql-toolbar button.ql-active,\n.ql-snow.ql-toolbar .ql-picker-label:hover,\n.ql-snow .ql-toolbar .ql-picker-label:hover,\n.ql-snow.ql-toolbar .ql-picker-label.ql-active,\n.ql-snow .ql-toolbar .ql-picker-label.ql-active,\n.ql-snow.ql-toolbar .ql-picker-item:hover,\n.ql-snow .ql-toolbar .ql-picker-item:hover,\n.ql-snow.ql-toolbar .ql-picker-item.ql-selected,\n.ql-snow .ql-toolbar .ql-picker-item.ql-selected":{color:e.colorPrimaryTextHover},".ql-snow.ql-toolbar button:hover .ql-fill,\n.ql-snow .ql-toolbar button:hover .ql-fill,\n.ql-snow.ql-toolbar button:focus .ql-fill,\n.ql-snow .ql-toolbar button:focus .ql-fill,\n.ql-snow.ql-toolbar button.ql-active .ql-fill,\n.ql-snow .ql-toolbar button.ql-active .ql-fill,\n.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill,\n.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill,\n.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,\n.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,\n.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill,\n.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill,\n.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,\n.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,\n.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill,\n.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill,\n.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill,\n.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill,\n.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,\n.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,\n.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,\n.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,\n.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,\n.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,\n.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,\n.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,\n.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,\n.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill":{fill:e.colorPrimaryTextHover},".ql-snow.ql-toolbar button:hover .ql-stroke,\n.ql-snow .ql-toolbar button:hover .ql-stroke,\n.ql-snow.ql-toolbar button:focus .ql-stroke,\n.ql-snow .ql-toolbar button:focus .ql-stroke,\n.ql-snow.ql-toolbar button.ql-active .ql-stroke,\n.ql-snow .ql-toolbar button.ql-active .ql-stroke,\n.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke,\n.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke,\n.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,\n.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,\n.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke,\n.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke,\n.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,\n.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,\n.ql-snow.ql-toolbar button:hover .ql-stroke-miter,\n.ql-snow .ql-toolbar button:hover .ql-stroke-miter,\n.ql-snow.ql-toolbar button:focus .ql-stroke-miter,\n.ql-snow .ql-toolbar button:focus .ql-stroke-miter,\n.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,\n.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,\n.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,\n.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,\n.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,\n.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,\n.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,\n.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,\n.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,\n.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter":{stroke:e.colorPrimaryTextHover},"@media (pointer: coarse)":{".ql-snow.ql-toolbar button:hover:not(.ql-active),\n .ql-snow .ql-toolbar button:hover:not(.ql-active)":{color:e.colorTextSecondary},".ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,\n .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,\n .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,\n .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill":{fill:e.colorTextSecondary},".ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,\n .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,\n .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,\n .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter":{stroke:e.colorTextSecondary}},".ql-snow":{boxSizing:"border-box"},".ql-snow *":{boxSizing:"border-box"},".ql-snow .ql-hidden":{display:"none"},".ql-snow .ql-out-bottom,\n.ql-snow .ql-out-top":{visibility:"hidden"},".ql-snow .ql-tooltip":{position:"absolute",transform:"translateY(10px)",backgroundColor:"#fff",border:`1px solid ${e.colorBorder}`,boxShadow:"0px 0px 5px #ddd",color:e.colorTextSecondary,padding:"5px 12px",whiteSpace:"nowrap"},".ql-snow .ql-tooltip a":{cursor:"pointer",textDecoration:"none",lineHeight:"26px"},".ql-snow .ql-tooltip.ql-flip":{transform:"translateY(-10px)"},".ql-snow .ql-formats":{display:"inline-block",verticalAlign:"middle"},".ql-snow .ql-formats:after":{clear:"both",content:"''",display:"table"},".ql-snow .ql-stroke":{fill:"none",stroke:e.colorTextSecondary,strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2},".ql-snow .ql-stroke-miter":{fill:"none",stroke:e.colorTextSecondary,strokeMiterlimit:"10",strokeWidth:2},".ql-snow .ql-fill,\n.ql-snow .ql-stroke.ql-fill":{fill:e.colorTextSecondary},".ql-snow .ql-empty":{fill:"none"},".ql-snow .ql-even":{fillRule:"evenodd"},".ql-snow .ql-thin,\n.ql-snow .ql-stroke.ql-thin":{strokeWidth:1},".ql-snow .ql-transparent":{opacity:.4},".ql-snow .ql-direction svg:last-child":{display:"none"},".ql-snow .ql-direction.ql-active svg:last-child":{display:"inline"},".ql-snow .ql-direction.ql-active svg:first-child":{display:"none"},".ql-snow .ql-editor h1":{fontSize:"2em"},".ql-snow .ql-editor h2":{fontSize:"1.5em"},".ql-snow .ql-editor h3":{fontSize:"1.17em"},".ql-snow .ql-editor h4":{fontSize:"1em"},".ql-snow .ql-editor h5":{fontSize:"0.83em"},".ql-snow .ql-editor h6":{fontSize:"0.67em"},".ql-snow .ql-editor blockquote":{borderLeft:"4px solid #ccc",marginBottom:"5px",marginTop:"5px",paddingLeft:"16px"},".ql-snow .ql-editor code,\n.ql-snow .ql-editor pre":{backgroundColor:"#f0f0f0",borderRadius:"3px"},".ql-snow .ql-editor pre":{whiteSpace:"pre-wrap",marginBottom:"5px",marginTop:"5px",padding:"5px 10px"},".ql-snow .ql-editor code":{fontSize:"85%",padding:"2px 4px"},".ql-snow .ql-editor pre.ql-syntax":{backgroundColor:"#23241f",color:"#f8f8f2",overflow:"visible"},".ql-snow .ql-editor img":{maxWidth:"100%"},".ql-snow .ql-picker":{color:e.colorTextSecondary,display:"inline-block",cssFloat:"left",fontSize:"14px",fontWeight:500,height:"24px",position:"relative",verticalAlign:"middle"},".ql-snow .ql-picker-label":{cursor:"pointer",display:"inline-block",height:"100%",paddingLeft:"8px",paddingRight:"2px",position:"relative",width:"100%"},".ql-snow .ql-picker-label::before":{display:"inline-block",lineHeight:"22px"},".ql-snow .ql-picker-options":{backgroundColor:"#fff",display:"none",minWidth:"100%",padding:"4px 8px",position:"absolute",whiteSpace:"nowrap"},".ql-snow .ql-picker-options .ql-picker-item":{cursor:"pointer",display:"block",paddingBottom:"5px",paddingTop:"5px"},".ql-snow .ql-picker.ql-expanded .ql-picker-label":{color:"#ccc",zIndex:2},".ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill":{fill:"#ccc"},".ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke":{stroke:"#ccc"},".ql-snow .ql-picker.ql-expanded .ql-picker-options":{display:"block",marginTop:"-1px",top:"100%",zIndex:1},".ql-snow .ql-color-picker,\n.ql-snow .ql-icon-picker":{width:"28px"},".ql-snow .ql-color-picker .ql-picker-label,\n.ql-snow .ql-icon-picker .ql-picker-label":{padding:"2px 4px"},".ql-snow .ql-color-picker .ql-picker-label svg,\n.ql-snow .ql-icon-picker .ql-picker-label svg":{right:"4px"},".ql-snow .ql-icon-picker .ql-picker-options":{padding:"4px 0px"},".ql-snow .ql-icon-picker .ql-picker-item":{height:"24px",width:"24px",padding:"2px 4px"},".ql-snow .ql-color-picker .ql-picker-options":{padding:"3px 5px",width:"152px"},".ql-snow .ql-color-picker .ql-picker-item":{border:"1px solid transparent",cssFloat:"left",height:"16px",margin:"2px",padding:"0px",width:"16px"},".ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg":{position:"absolute",marginTop:"-9px",right:"0",top:"50%",width:"18px"},".ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=''])::before,\n.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=''])::before,\n.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=''])::before,\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=''])::before,\n.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=''])::before,\n.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=''])::before":{content:"attr(data-label)"},".ql-snow .ql-picker.ql-header":{width:"98px"},".ql-snow .ql-picker.ql-header .ql-picker-label::before,\n.ql-snow .ql-picker.ql-header .ql-picker-item::before":{content:"'Normal'"},".ql-snow .ql-picker.ql-header .ql-picker-label[data-value='1']::before,\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value='1']::before":{content:"'Heading 1'"},".ql-snow .ql-picker.ql-header .ql-picker-label[data-value='2']::before,\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value='2']::before":{content:"'Heading 2'"},".ql-snow .ql-picker.ql-header .ql-picker-label[data-value='3']::before,\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value='3']::before":{content:"'Heading 3'"},".ql-snow .ql-picker.ql-header .ql-picker-label[data-value='4']::before,\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value='4']::before":{content:"'Heading 4'"},".ql-snow .ql-picker.ql-header .ql-picker-label[data-value='5']::before,\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value='5']::before":{content:"'Heading 5'"},".ql-snow .ql-picker.ql-header .ql-picker-label[data-value='6']::before,\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value='6']::before":{content:"'Heading 6'"},".ql-snow .ql-picker.ql-header .ql-picker-item[data-value='1']::before":{fontSize:"2em"},".ql-snow .ql-picker.ql-header .ql-picker-item[data-value='2']::before":{fontSize:"1.5em"},".ql-snow .ql-picker.ql-header .ql-picker-item[data-value='3']::before":{fontSize:"1.17em"},".ql-snow .ql-picker.ql-header .ql-picker-item[data-value='4']::before":{fontSize:"1em"},".ql-snow .ql-picker.ql-header .ql-picker-item[data-value='5']::before":{fontSize:"0.83em"},".ql-snow .ql-picker.ql-header .ql-picker-item[data-value='6']::before":{fontSize:"0.67em"},".ql-snow .ql-picker.ql-font":{width:"108px"},".ql-snow .ql-picker.ql-font .ql-picker-label::before,\n.ql-snow .ql-picker.ql-font .ql-picker-item::before":{content:"'Sans Serif'"},".ql-snow .ql-picker.ql-font .ql-picker-label[data-value='serif']::before,\n.ql-snow .ql-picker.ql-font .ql-picker-item[data-value='serif']::before":{content:"'Serif'"},".ql-snow .ql-picker.ql-font .ql-picker-label[data-value='monospace']::before,\n.ql-snow .ql-picker.ql-font .ql-picker-item[data-value='monospace']::before":{content:"'Monospace'"},".ql-snow .ql-picker.ql-font .ql-picker-item[data-value='serif']::before":{fontFamily:"Georgia, Times New Roman, serif"},".ql-snow .ql-picker.ql-font .ql-picker-item[data-value='monospace']::before":{fontFamily:"Monaco, Courier New, monospace"},".ql-snow .ql-picker.ql-size":{width:"98px"},".ql-snow .ql-picker.ql-size .ql-picker-label::before,\n.ql-snow .ql-picker.ql-size .ql-picker-item::before":{content:"'Normal'"},".ql-snow .ql-picker.ql-size .ql-picker-label[data-value='small']::before,\n.ql-snow .ql-picker.ql-size .ql-picker-item[data-value='small']::before":{content:"'Small'"},".ql-snow .ql-picker.ql-size .ql-picker-label[data-value='large']::before,\n.ql-snow .ql-picker.ql-size .ql-picker-item[data-value='large']::before":{content:"'Large'"},".ql-snow .ql-picker.ql-size .ql-picker-label[data-value='huge']::before,\n.ql-snow .ql-picker.ql-size .ql-picker-item[data-value='huge']::before":{content:"'Huge'"},".ql-snow .ql-picker.ql-size .ql-picker-item[data-value='small']::before":{fontSize:"10px"},".ql-snow .ql-picker.ql-size .ql-picker-item[data-value='large']::before":{fontSize:"18px"},".ql-snow .ql-picker.ql-size .ql-picker-item[data-value='huge']::before":{fontSize:"32px"},".ql-snow .ql-picker.ql-size .ql-picker-item[data-value='12px']::before":{content:"'12px'"},".ql-snow .ql-picker.ql-size .ql-picker-item[data-value='14px']::before":{content:"'14px'"},".ql-snow .ql-picker.ql-size .ql-picker-item[data-value='16px']::before":{content:"'16px'"},".ql-snow .ql-picker.ql-size .ql-picker-item[data-value='18px']::before":{content:"'18px'"},".ql-snow .ql-picker.ql-size .ql-picker-item[data-value='20px']::before":{content:"'20px'"},".ql-snow .ql-picker.ql-size .ql-picker-item[data-value='24px']::before":{content:"'24px'"},".ql-snow .ql-picker.ql-size .ql-picker-item[data-value='32px']::before":{content:"'32px'"},".ql-snow .ql-picker.ql-size .ql-picker-item[data-value='48px']::before":{content:"'48px'"},".ql-snow .ql-picker.ql-size .ql-picker-label[data-value='12px']::before":{content:"'12px'"},".ql-snow .ql-picker.ql-size .ql-picker-label[data-value='14px']::before":{content:"'14px'"},".ql-snow .ql-picker.ql-size .ql-picker-label[data-value='16px']::before":{content:"'16px'"},".ql-snow .ql-picker.ql-size .ql-picker-label[data-value='18px']::before":{content:"'18px'"},".ql-snow .ql-picker.ql-size .ql-picker-label[data-value='20px']::before":{content:"'20px'"},".ql-snow .ql-picker.ql-size .ql-picker-label[data-value='24px']::before":{content:"'24px'"},".ql-snow .ql-picker.ql-size .ql-picker-label[data-value='32px']::before":{content:"'32px'"},".ql-snow .ql-picker.ql-size .ql-picker-label[data-value='48px']::before":{content:"'48px'"},".ql-snow .ql-color-picker.ql-background .ql-picker-item":{backgroundColor:"#fff"},".ql-snow .ql-color-picker.ql-color .ql-picker-item":{backgroundColor:"#000"},".ql-toolbar.ql-snow":{border:`1px solid ${e.colorBorder}`,boxSizing:"border-box",padding:"8px",borderTopLeftRadius:"2px",borderTopRightRadius:"2px",lineHeight:1.6},".ql-toolbar.ql-snow .ql-formats":{marginRight:"15px"},".ql-toolbar.ql-snow .ql-picker-label":{border:"1px solid transparent"},".ql-toolbar.ql-snow .ql-picker-options":{border:"1px solid transparent",boxShadow:"rgba(0, 0, 0, 0.2) 0 2px 8px"},".ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label":{borderColor:e.colorBorder},".ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options":{borderColor:e.colorBorder},".ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,\n.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover":{borderColor:"#000"},".ql-toolbar.ql-snow + .ql-container.ql-snow":{borderTop:"0px"},".ql-snow .ql-tooltip::before":{content:"'Visit URL:'",lineHeight:"26px",marginRight:"8px"},".ql-snow .ql-tooltip input[type='text']":{display:"none",border:`1px solid ${e.colorBorder}`,fontSize:"13px",height:"26px",margin:"0px",padding:"3px 5px",width:"170px"},".ql-snow .ql-tooltip a.ql-preview":{display:"inline-block",maxWidth:"200px",overflowX:"hidden",textOverflow:"ellipsis",verticalAlign:"top"},".ql-snow .ql-tooltip a.ql-action::after":{borderRight:"1px solid #ccc",content:"'Edit'",marginLeft:"16px",paddingRight:"8px"},".ql-snow .ql-tooltip a.ql-remove::before":{content:"'Remove'",marginLeft:"8px"},".ql-snow .ql-tooltip.ql-editing a.ql-preview,\n.ql-snow .ql-tooltip.ql-editing a.ql-remove":{display:"none"},".ql-snow .ql-tooltip.ql-editing input[type='text']":{display:"inline-block"},".ql-snow .ql-tooltip.ql-editing a.ql-action::after":{borderRight:"0px",content:"'Save'",paddingRight:"0px"},".ql-snow .ql-tooltip[data-mode='link']::before":{content:"'Enter link:'"},".ql-snow .ql-tooltip[data-mode='formula']::before":{content:"'Enter formula:'"},".ql-snow .ql-tooltip[data-mode='video']::before":{content:"'Enter video:'"},".ql-snow a":{color:e.colorPrimaryTextHover},".ql-container.ql-snow":{border:`1px solid ${e.colorBorder}`,borderBottomLeftRadius:"2px",borderBottomRightRadius:"2px"},".ql-container p":{marginBlockEnd:"1em"}})},registerSmartBreak=e=>{class t extends e.import("blots/break"){length(){return 1}value(){return`
|
|
@@ -2199,7 +2199,7 @@ function JsReadonlyField() {
|
|
|
2199
2199
|
}
|
|
2200
2200
|
|
|
2201
2201
|
ctx.render(<JsReadonlyField />);
|
|
2202
|
-
`.trim();class JSFieldModel extends FieldModel{constructor(){super(...arguments),R(this,"_mountedOnce",!1)}getInputArgs(){var t,o,r,i,n,l;const a=this.context.collectionField;if((t=a==null?void 0:a.isAssociationField)!=null&&t.call(a)){const c=a.targetCollection,u=(o=this.context.blockModel)==null?void 0:o.collection,d=a.sourceKey||(u==null?void 0:u.filterTargetKey),m=a==null?void 0:a.targetKey,p=(r=this.props)==null?void 0:r.value;return{collectionName:c==null?void 0:c.name,associationName:u!=null&&u.name&&a!=null&&a.name?`${u.name}.${a.name}`:void 0,sourceId:(i=this.context.record)==null?void 0:i[d],filterByTk:p&&typeof p=="object"&&!Array.isArray(p)?p==null?void 0:p[m]:void 0}}return{sourceId:(l=(n=this.context.resource)==null?void 0:n.getSourceId)==null?void 0:l.call(n),filterByTk:this.context.collection&&this.context.record?this.context.collection.getFilterByTK(this.context.record):void 0}}useHooksBeforeRender(){var t;const o=(t=this.getStepParams("jsSettings","runJs"))==null?void 0:t.code
|
|
2202
|
+
`.trim();class JSFieldModel extends FieldModel{constructor(){super(...arguments),R(this,"_mountedOnce",!1),R(this,"_lastRenderedElement"),R(this,"_pendingRenderedElement"),R(this,"_lastRunJs")}getInputArgs(){var t,o,r,i,n,l;const a=this.context.collectionField;if((t=a==null?void 0:a.isAssociationField)!=null&&t.call(a)){const c=a.targetCollection,u=(o=this.context.blockModel)==null?void 0:o.collection,d=a.sourceKey||(u==null?void 0:u.filterTargetKey),m=a==null?void 0:a.targetKey,p=(r=this.props)==null?void 0:r.value;return{collectionName:c==null?void 0:c.name,associationName:u!=null&&u.name&&a!=null&&a.name?`${u.name}.${a.name}`:void 0,sourceId:(i=this.context.record)==null?void 0:i[d],filterByTk:p&&typeof p=="object"&&!Array.isArray(p)?p==null?void 0:p[m]:void 0}}return{sourceId:(l=(n=this.context.resource)==null?void 0:n.getSourceId)==null?void 0:l.call(n),filterByTk:this.context.collection&&this.context.record?this.context.collection.getFilterByTK(this.context.record):void 0}}useHooksBeforeRender(){var t;const o=(t=this.getStepParams("jsSettings","runJs"))==null?void 0:t.code;(0,import_react2.useEffect)(()=>{var r;this.refreshRenderedElement((r=this.context.ref)==null?void 0:r.current)},[o,this.props.value])}getRunJsCode(){var t;const o=(t=this.getStepParams("jsSettings","runJs"))==null?void 0:t.code;return(typeof o=="string"&&o.trim().length?o:DEFAULT_CODE$1).trim()}refreshRenderedElement(t){if(!t||this._pendingRenderedElement===t)return;this._pendingRenderedElement=t;const o=this.context.ref;queueMicrotask(()=>{if(this._pendingRenderedElement===t&&(this._pendingRenderedElement=null),o.current!==t)return;const r=this.getRunJsCode(),i=this.props.value,n=this._lastRunJs;n&&n.element===t&&n.code===r&&Object.is(n.value,i)||(this._lastRunJs={code:r,value:i,element:t},this.applyFlow("jsSettings"))})}render(){const t=this.context.ref;return(0,import_jsx_runtime.jsx)("span",{ref:o=>{if(t.current=o,!o)return;const r=this._lastRenderedElement&&this._lastRenderedElement!==o;this._lastRenderedElement=o,(r||!this._mountedOnce)&&this.refreshRenderedElement(o)},style:{display:"inline-block",maxWidth:"100%"}})}onMount(){var t;this._mountedOnce&&(t=this.context.ref)!=null&&t.current&&this.refreshRenderedElement(this.context.ref.current),this._mountedOnce=!0}}JSFieldModel.define({label:(0,import_flow_engine.tExpr)("JS field"),createModelOptions:{use:"JSFieldModel"}});JSFieldModel.registerFlow({key:"jsSettings",title:(0,import_flow_engine.tExpr)("JavaScript settings"),manual:!0,steps:{runJs:{title:(0,import_flow_engine.tExpr)("Write JavaScript"),useRawParams:!0,uiSchema:{code:{type:"string","x-decorator":"FormItem","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:DEFAULT_CODE$1}},handler(e,t){return L(this,null,function*(){const{code:o,version:r}=resolveRunJsParams(e,t);e.onRefReady(e.ref,i=>L(this,null,function*(){e.defineProperty("element",{get:()=>{var l;return new import_flow_engine.ElementProxy(((l=e.ref)==null?void 0:l.current)||i)},cache:!1}),e.defineProperty("value",{get:()=>{var l;return(l=e.model.props)==null?void 0:l.value},cache:!1});const n=(0,import_flow_engine.createSafeNavigator)();yield e.runjs(o,{window:(0,import_flow_engine.createSafeWindow)({navigator:n}),document:(0,import_flow_engine.createSafeDocument)(),navigator:n},{version:r})}))})}}}});const DEFAULT_CODE=`
|
|
2203
2203
|
// Render an editable antd Input via JSX and keep it in sync with form value.
|
|
2204
2204
|
// - Uses ctx.getValue/ctx.setValue for two-way binding
|
|
2205
2205
|
// - Listens to external value changes via 'js-field:value-change'
|
|
@@ -2286,7 +2286,7 @@ ctx.render(<JsItem />);
|
|
|
2286
2286
|
flex-shrink: 0;
|
|
2287
2287
|
flex: 1;
|
|
2288
2288
|
}
|
|
2289
|
-
`},properties:{name:{type:"string","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:'{{t("Name")}}'}},value:{type:"string","x-decorator":"FormItem","x-component":TextAreaWithContextSelector,"x-component-props":{rows:1}},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}}}}},properties:{add:{type:"void",title:'{{t("Add parameter")}}',"x-component":"ArrayItems.Addition"}}},openInNewWindow:{type:"boolean","x-content":'{{t("Open in new window")}}',"x-decorator":"FormItem","x-component":"Checkbox"}}}},handler(e,t){return L(this,arguments,function*(o,{value:r}){const i=r||{url:"",searchParams:[],openInNewWindow:!1},{url:n,searchParams:l=[],openInNewWindow:a=!1}=i;if(!n)return;let c=n;if(l&&l.length>0){const u=new URL(n,globalThis.location.origin);for(const d of l)d.name&&d.value!==void 0&&u.searchParams.append(d.name,d.value);c=u.pathname+u.search+u.hash}a?globalThis.open(c,"_blank"):o.router.navigate(c)})}}),customVariable=(0,import_flow_engine.defineAction)({name:"customVariable",title:(0,import_flow_engine.tExpr)("Custom variable"),scene:[import_flow_engine.ActionScene.DYNAMIC_EVENT_FLOW],sort:100,uiSchema:{variables:{type:"array","x-component":VariableEditor,"x-component-props":{}}},handler(e,t){return L(this,null,function*(){const{variables:o=[]}=t;o.forEach(r=>{const i=()=>{var l;const a=e.model.flowEngine.getModel(r.formUid);return(l=a==null?void 0:a.form)==null?void 0:l.getFieldsValue(!0)},n=()=>{var l;const a=e.model.flowEngine.getModel(r.formUid),c=(l=a==null?void 0:a.subModels)==null?void 0:l.grid,u={};if(!c){console.warn(`Not found form or form has no grid: ${r.formUid}`);return}return c.mapSubModels("items",d=>{u[d.props.name]={title:d.props.label,type:"string"}}),{title:r.title,type:"object",properties:u}};n.title=r.title,e.model.context.defineProperty(r.key,{get:i,cache:!1,meta:n})})})}}),VARIABLE_TYPE_LABELS={formValue:(0,import_flow_engine.tExpr)("Form variable")},generateVariableKey=()=>`var_${(0,import_shared.uid)().slice(0,4)}`;function VariableEditor(e){const{value:t=[],onChange:o,disabled:r}=e,i=(0,import_flow_engine.useFlowContext)(),n=import_react2.default.useMemo(()=>i.model.translate.bind(i.model),[i.model]),[l]=import_antd.Form.useForm(),[a,c]=import_react2.default.useState(!1),[u,d]=import_react2.default.useState(null),[m,p]=import_react2.default.useState("formValue"),h=import_react2.default.useCallback(()=>{l.resetFields(),l.setFieldsValue({key:generateVariableKey(),title:"",formUid:""})},[l]),g=import_react2.default.useCallback((S,P)=>{if(p(S),d(P),P===null)h();else{const j=t[P];if(!j)return;l.setFieldsValue({key:j.key,title:j.title,formUid:j.type==="formValue"?j.formUid:""})}c(!0)},[l,h,t]),f=import_react2.default.useCallback(()=>{c(!1),d(null),h()},[h]),_=import_react2.default.useCallback(()=>L(this,null,function*(){const S=yield l.validateFields(),P={key:S.key,title:S.title,type:m,formUid:S.formUid},j=[...t];u===null?j.push(P):j.splice(u,1,P),o==null||o(j),f()}),[f,m,u,l,o,t]),v=import_react2.default.useCallback(S=>{import_antd.Modal.confirm({title:n("Delete variable"),content:n("Are you sure you want to delete this variable?"),okText:n("Confirm"),cancelText:n("Cancel"),onOk:()=>{const P=t.filter((j,I)=>I!==S);o==null||o(P)}})},[o,n,t]),y=import_react2.default.useCallback(S=>{r||g(S,null)},[r,g]),C=import_react2.default.useCallback(S=>{if(r)return;const P=t[S];P&&g(P.type,S)},[r,g,t]),b=import_react2.default.useMemo(()=>[{title:n("Title"),dataIndex:"title",key:"title",ellipsis:!0,render:S=>(0,import_jsx_runtime.jsx)("span",{style:{whiteSpace:"nowrap"},children:S})},{title:n("Identifier"),dataIndex:"key",key:"key",ellipsis:!0,render:S=>(0,import_jsx_runtime.jsx)("span",{style:{whiteSpace:"nowrap"},children:S})},{title:n("Type"),dataIndex:"type",key:"type",ellipsis:!0,render:S=>(0,import_jsx_runtime.jsx)(import_antd.Tag,{style:{whiteSpace:"nowrap"},children:n(VARIABLE_TYPE_LABELS[S]||S)})},{title:n("Actions"),key:"actions",render:(S,P,j)=>(0,import_jsx_runtime.jsxs)(import_antd.Space,{size:12,style:{whiteSpace:"nowrap"},children:[(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"link",size:"small",icon:(0,import_jsx_runtime.jsx)(import_icons.EditOutlined,{}),onClick:()=>C(j),disabled:r,title:n("Edit")}),(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"link",size:"small",icon:(0,import_jsx_runtime.jsx)(import_icons.DeleteOutlined,{}),danger:!0,onClick:()=>v(j),disabled:r,title:n("Delete")})]})}],[r,v,C,n]),F=import_react2.default.useMemo(()=>({items:[{key:"formValue",label:n(VARIABLE_TYPE_LABELS.formValue)}],onClick:({key:S})=>y(S)}),[y,n]);return(0,import_jsx_runtime.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[(0,import_jsx_runtime.jsx)(import_antd.Table,{rowKey:"key",columns:b,dataSource:t,pagination:!1,locale:{emptyText:n("No data")},size:"small",scroll:{x:"max-content"},bordered:!0}),(0,import_jsx_runtime.jsx)(import_antd.Dropdown,{menu:F,trigger:["hover"],disabled:r,children:(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"dashed",block:!0,icon:(0,import_jsx_runtime.jsx)(import_icons.PlusOutlined,{}),disabled:r,children:n("Add variable")})}),(0,import_jsx_runtime.jsx)(import_antd.Modal,{open:a,title:n(u===null?"Add variable":"Edit variable"),onCancel:f,onOk:_,okText:n("Confirm"),cancelText:n("Cancel"),destroyOnClose:!0,maskClosable:!1,okButtonProps:{disabled:r},cancelButtonProps:{disabled:r},children:(0,import_jsx_runtime.jsxs)(import_antd.Form,{form:l,layout:"vertical",disabled:r,children:[(0,import_jsx_runtime.jsx)(import_antd.Form.Item,{label:n("Variable title"),name:"title",rules:[{required:!0,message:n("Please enter variable title")}],children:(0,import_jsx_runtime.jsx)(import_antd.Input,{placeholder:n("Please enter variable title")})}),(0,import_jsx_runtime.jsx)(import_antd.Form.Item,{label:n("Variable identifier"),name:"key",rules:[{required:!0,message:n("Please enter variable identifier")}],children:(0,import_jsx_runtime.jsx)(import_antd.Input,{placeholder:n("Please enter variable identifier")})}),m==="formValue"?(0,import_jsx_runtime.jsx)(import_antd.Form.Item,{label:n("Form UID"),name:"formUid",rules:[{required:!0,message:n("Please enter form uid")}],children:(0,import_jsx_runtime.jsx)(import_antd.Input,{placeholder:n("Please enter form uid")})}):null]})})]})}const refreshTargetBlocks=(0,import_flow_engine.defineAction)({name:"refreshTargetBlocks",title:(0,import_flow_engine.tExpr)("Refresh target blocks"),scene:[import_flow_engine.ActionScene.DYNAMIC_EVENT_FLOW],sort:300,uiSchema:{targets:{type:"array","x-component":EditTargets,"x-component-props":{}}},handler(e,t){return L(this,null,function*(){const{targets:o=[]}=t;o.forEach(r=>{const i=e.engine.getModel(r,!0);if(!i){console.warn(`Not found model: ${r}`);return}i.refresh()})})}});function EditTargets(e){const{value:t=[],onChange:o}=e,{t:r}=(0,import_react_i18next.useTranslation)(),i=(0,import_flow_engine.useFlowContext)().themeToken,n=t.length>0?t:[""],l=(u,d)=>{const m=[...n];m[u]=d,o==null||o(m)},a=u=>{const d=n.filter((m,p)=>p!==u);o==null||o(d.length>0?d:[""])},c=()=>{o==null||o([...n,""])};return(0,import_jsx_runtime.jsxs)(import_antd.Space,{direction:"vertical",size:8,style:{width:"100%"},children:[n.map((u,d)=>(0,import_jsx_runtime.jsxs)(import_antd.Space,{style:{width:"100%"},size:8,children:[(0,import_jsx_runtime.jsx)(import_antd.Input,{placeholder:r("Target block uid"),value:u,onChange:m=>l(d,m.target.value),style:{flex:1}}),n.length>1&&(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"text",icon:(0,import_jsx_runtime.jsx)(import_icons.CloseOutlined,{}),onClick:()=>a(d),"aria-label":r("Remove"),style:{color:i.colorTextSecondary}})]},`target-${d}-${u}`)),(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"dashed",block:!0,icon:(0,import_jsx_runtime.jsx)(import_icons.PlusOutlined,{}),onClick:c,children:r("Add target block")})]})}const setTargetDataScope=(0,import_flow_engine.defineAction)({name:"setTargetDataScope",title:(0,import_flow_engine.tExpr)("Set data scope"),scene:[import_flow_engine.ActionScene.DYNAMIC_EVENT_FLOW],sort:200,uiSchema:{targetBlockUid:{type:"string",title:(0,import_flow_engine.tExpr)("Target block UID"),"x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:(0,import_flow_engine.tExpr)("Please enter the target block UID")}},filter:{type:"object",title:(0,import_flow_engine.tExpr)("Condition"),"x-decorator":"FormItem","x-component":SetTargetDataScope,"x-reactions":[{dependencies:["targetBlockUid"],fulfill:{state:{componentProps:{uid:"{{$deps[0]}}"},hidden:"{{!$deps[0]}}"}}}]}},defaultParams(e){return{targetBlockUid:"",filter:{logic:"$and",items:[]}}},handler(e,t){return L(this,null,function*(){const o=t.targetBlockUid;o&&e.model.scheduleModelOperation(o,r=>{const i=r.resource;if(!i)return;const n=(0,import_flow_engine.pruneFilter)((0,import_client.transformFilter)(t.filter));(0,import_client.isEmptyFilter)(n)?i.removeFilterGroup(`setTargetDataScope_${e.model.uid}`):i.addFilterGroup(`setTargetDataScope_${e.model.uid}`,n),i.hasData()&&i.refresh()})})}});function SetTargetDataScope(e){const t=(0,import_flow_engine.useFlowContext)(),o=e.uid,r=t.engine.getModel(o,!0);return r?(0,import_jsx_runtime.jsx)(FilterGroup,{value:e.value,FilterItem:i=>(0,import_jsx_runtime.jsx)(VariableFilterItem,A(x({},i),{model:r,rightAsVariable:!0}))}):(0,import_jsx_runtime.jsxs)("div",{style:{color:t.themeToken.colorError},children:[t.t("Cannot find the model instance with UID"),": ",o]})}const normalizeFilterTargetKey=e=>{if(typeof e=="string")return e;if(Array.isArray(e)&&e.length===1)return e[0]},resolveTargetCollectionField=(e,t)=>{var o;if(!e)return null;const r=t||((o=e.titleCollectionField)==null?void 0:o.name)||normalizeFilterTargetKey(e.filterTargetKey);return r?e.getField(r):null},titleField=(0,import_flow_engine.defineAction)({name:"titleField",title:(0,import_flow_engine.tExpr)("Title field"),uiMode:e=>{var t,o;const r=e.collectionField.targetCollection,i=e.app.dataSourceManager;return{type:"select",key:"label",props:{options:((o=(t=r==null?void 0:r.getFields)==null?void 0:t.call(r))!=null?o:[]).filter(n=>isTitleField(i,n.options)).map(n=>({value:n.name,label:n==null?void 0:n.title}))}}},defaultParams:e=>{var t,o;const r=e.model.context.collectionField.targetCollectionTitleFieldName;return{label:((o=(t=e.model.parent)==null?void 0:t.props)==null?void 0:o.titleField)||e.model.props.titleField||r}},hideInSettings:e=>L(void 0,null,function*(){var t;return!e.collectionField||!e.collectionField.isAssociationField()||((t=e.model.subModels.field)==null?void 0:t.disableTitleField)}),beforeParamsSave:(e,t,o)=>L(void 0,null,function*(){var r;const i=e.model.collectionField.target,n=e.model.collectionField.targetCollection;if(t.label!==o.label){const l=(r=e.model.subModels.field)==null?void 0:r.uid;l&&(yield e.engine.destroyModel(l));const a=resolveTargetCollectionField(n,t.label);if(!a)return;const c=import_flow_engine.DisplayItemModel.getDefaultBindingByField(e,a);if(!c)return;const u=c.modelName,d=e.model.setSubModel("field",{use:u,stepParams:{fieldSettings:{init:{dataSourceKey:e.model.collectionField.dataSourceKey,collectionName:i,fieldPath:t.label}}}});yield d.save(),yield d.dispatchEvent("beforeRender"),yield e.model.save()}}),handler(e,t){return L(this,null,function*(){const o=e.model.collectionField.target,r=e.model.collectionField.targetCollection,i=resolveTargetCollectionField(r,t.label);if(!i)return;const n=normalizeFilterTargetKey(r.filterTargetKey)||i.name,l=i.name,a={value:n,label:l};e.model.setProps({fieldNames:a});const c=import_flow_engine.DisplayItemModel.getDefaultBindingByField(e,i);if(!c)return;const u=c.modelName;e.model.subModels.field||(yield e.model.setSubModel("field",{use:u,stepParams:{fieldSettings:{init:{dataSourceKey:e.model.collectionField.dataSourceKey,collectionName:o,fieldPath:a.label}}}}).dispatchEvent("beforeRender"))})}}),dateTimeFormat=(0,import_flow_engine.defineAction)({title:(0,import_flow_engine.tExpr)("Date display format"),name:"dateDisplayFormat",uiSchema:e=>{const{collectionField:t}=e.model.context,o=t.type,r={type:"string",title:'{{t("Time format")}}',"x-component":ExpiresRadio,"x-decorator":"FormItem","x-component-props":{className:import_css.css`
|
|
2289
|
+
`},properties:{name:{type:"string","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:'{{t("Name")}}'}},value:{type:"string","x-decorator":"FormItem","x-component":TextAreaWithContextSelector,"x-component-props":{rows:1}},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}}}}},properties:{add:{type:"void",title:'{{t("Add parameter")}}',"x-component":"ArrayItems.Addition"}}},openInNewWindow:{type:"boolean","x-content":'{{t("Open in new window")}}',"x-decorator":"FormItem","x-component":"Checkbox"}}}},handler(e,t){return L(this,arguments,function*(o,{value:r}){const i=r||{url:"",searchParams:[],openInNewWindow:!1},{url:n,searchParams:l=[],openInNewWindow:a=!1}=i;if(!n)return;let c=n;if(l&&l.length>0){const u=new URL(n,globalThis.location.origin);for(const d of l)d.name&&d.value!==void 0&&u.searchParams.append(d.name,d.value);c=u.pathname+u.search+u.hash}a?globalThis.open(c,"_blank"):o.router.navigate(c)})}}),customVariable=(0,import_flow_engine.defineAction)({name:"customVariable",title:(0,import_flow_engine.tExpr)("Custom variable"),scene:[import_flow_engine.ActionScene.DYNAMIC_EVENT_FLOW],sort:100,uiSchema:{variables:{type:"array","x-component":VariableEditor,"x-component-props":{}}},handler(e,t){return L(this,null,function*(){const{variables:o=[]}=t;o.forEach(r=>{const i=()=>{var l;const a=e.model.flowEngine.getModel(r.formUid);return(l=a==null?void 0:a.form)==null?void 0:l.getFieldsValue(!0)},n=()=>{var l;const a=e.model.flowEngine.getModel(r.formUid),c=(l=a==null?void 0:a.subModels)==null?void 0:l.grid,u={};if(!c){console.warn(`Not found form or form has no grid: ${r.formUid}`);return}return c.mapSubModels("items",d=>{u[d.props.name]={title:d.props.label,type:"string"}}),{title:r.title,type:"object",properties:u}};n.title=r.title,e.model.context.defineProperty(r.key,{get:i,cache:!1,meta:n})})})}}),VARIABLE_TYPE_LABELS={formValue:(0,import_flow_engine.tExpr)("Form variable")},generateVariableKey=()=>`var_${(0,import_shared.uid)().slice(0,4)}`;function VariableEditor(e){const{value:t=[],onChange:o,disabled:r}=e,i=(0,import_flow_engine.useFlowContext)(),n=import_react2.default.useMemo(()=>i.model.translate.bind(i.model),[i.model]),[l]=import_antd.Form.useForm(),[a,c]=import_react2.default.useState(!1),[u,d]=import_react2.default.useState(null),[m,p]=import_react2.default.useState("formValue"),h=import_react2.default.useCallback(()=>{l.resetFields(),l.setFieldsValue({key:generateVariableKey(),title:"",formUid:""})},[l]),g=import_react2.default.useCallback((S,P)=>{if(p(S),d(P),P===null)h();else{const j=t[P];if(!j)return;l.setFieldsValue({key:j.key,title:j.title,formUid:j.type==="formValue"?j.formUid:""})}c(!0)},[l,h,t]),f=import_react2.default.useCallback(()=>{c(!1),d(null),h()},[h]),_=import_react2.default.useCallback(()=>L(this,null,function*(){const S=yield l.validateFields(),P={key:S.key,title:S.title,type:m,formUid:S.formUid},j=[...t];u===null?j.push(P):j.splice(u,1,P),o==null||o(j),f()}),[f,m,u,l,o,t]),v=import_react2.default.useCallback(S=>{import_antd.Modal.confirm({title:n("Delete variable"),content:n("Are you sure you want to delete this variable?"),okText:n("Confirm"),cancelText:n("Cancel"),onOk:()=>{const P=t.filter((j,I)=>I!==S);o==null||o(P)}})},[o,n,t]),y=import_react2.default.useCallback(S=>{r||g(S,null)},[r,g]),C=import_react2.default.useCallback(S=>{if(r)return;const P=t[S];P&&g(P.type,S)},[r,g,t]),b=import_react2.default.useMemo(()=>[{title:n("Title"),dataIndex:"title",key:"title",ellipsis:!0,render:S=>(0,import_jsx_runtime.jsx)("span",{style:{whiteSpace:"nowrap"},children:S})},{title:n("Identifier"),dataIndex:"key",key:"key",ellipsis:!0,render:S=>(0,import_jsx_runtime.jsx)("span",{style:{whiteSpace:"nowrap"},children:S})},{title:n("Type"),dataIndex:"type",key:"type",ellipsis:!0,render:S=>(0,import_jsx_runtime.jsx)(import_antd.Tag,{style:{whiteSpace:"nowrap"},children:n(VARIABLE_TYPE_LABELS[S]||S)})},{title:n("Actions"),key:"actions",render:(S,P,j)=>(0,import_jsx_runtime.jsxs)(import_antd.Space,{size:12,style:{whiteSpace:"nowrap"},children:[(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"link",size:"small",icon:(0,import_jsx_runtime.jsx)(import_icons.EditOutlined,{}),onClick:()=>C(j),disabled:r,title:n("Edit")}),(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"link",size:"small",icon:(0,import_jsx_runtime.jsx)(import_icons.DeleteOutlined,{}),danger:!0,onClick:()=>v(j),disabled:r,title:n("Delete")})]})}],[r,v,C,n]),F=import_react2.default.useMemo(()=>({items:[{key:"formValue",label:n(VARIABLE_TYPE_LABELS.formValue)}],onClick:({key:S})=>y(S)}),[y,n]);return(0,import_jsx_runtime.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[(0,import_jsx_runtime.jsx)(import_antd.Table,{rowKey:"key",columns:b,dataSource:t,pagination:!1,locale:{emptyText:n("No data")},size:"small",scroll:{x:"max-content"},bordered:!0}),(0,import_jsx_runtime.jsx)(import_antd.Dropdown,{menu:F,trigger:["hover"],disabled:r,children:(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"dashed",block:!0,icon:(0,import_jsx_runtime.jsx)(import_icons.PlusOutlined,{}),disabled:r,children:n("Add variable")})}),(0,import_jsx_runtime.jsx)(import_antd.Modal,{open:a,title:n(u===null?"Add variable":"Edit variable"),onCancel:f,onOk:_,okText:n("Confirm"),cancelText:n("Cancel"),destroyOnClose:!0,maskClosable:!1,okButtonProps:{disabled:r},cancelButtonProps:{disabled:r},children:(0,import_jsx_runtime.jsxs)(import_antd.Form,{form:l,layout:"vertical",disabled:r,children:[(0,import_jsx_runtime.jsx)(import_antd.Form.Item,{label:n("Variable title"),name:"title",rules:[{required:!0,message:n("Please enter variable title")}],children:(0,import_jsx_runtime.jsx)(import_antd.Input,{placeholder:n("Please enter variable title")})}),(0,import_jsx_runtime.jsx)(import_antd.Form.Item,{label:n("Variable identifier"),name:"key",rules:[{required:!0,message:n("Please enter variable identifier")}],children:(0,import_jsx_runtime.jsx)(import_antd.Input,{placeholder:n("Please enter variable identifier")})}),m==="formValue"?(0,import_jsx_runtime.jsx)(import_antd.Form.Item,{label:n("Form UID"),name:"formUid",rules:[{required:!0,message:n("Please enter form uid")}],children:(0,import_jsx_runtime.jsx)(import_antd.Input,{placeholder:n("Please enter form uid")})}):null]})})]})}const refreshTargetBlocks=(0,import_flow_engine.defineAction)({name:"refreshTargetBlocks",title:(0,import_flow_engine.tExpr)("Refresh target blocks"),scene:[import_flow_engine.ActionScene.DYNAMIC_EVENT_FLOW],sort:300,uiSchema:{targets:{type:"array","x-component":EditTargets,"x-component-props":{}}},handler(e,t){return L(this,null,function*(){const{targets:o=[]}=t;o.forEach(r=>{const i=e.engine.getModel(r,!0);if(!i){console.warn(`Not found model: ${r}`);return}i.refresh()})})}});function EditTargets(e){const{value:t=[],onChange:o}=e,{t:r}=(0,import_react_i18next.useTranslation)(),i=(0,import_flow_engine.useFlowContext)().themeToken,n=t.length>0?t:[""],l=(u,d)=>{const m=[...n];m[u]=d,o==null||o(m)},a=u=>{const d=n.filter((m,p)=>p!==u);o==null||o(d.length>0?d:[""])},c=()=>{o==null||o([...n,""])};return(0,import_jsx_runtime.jsxs)(import_antd.Space,{direction:"vertical",size:8,style:{width:"100%"},children:[n.map((u,d)=>(0,import_jsx_runtime.jsxs)(import_antd.Space,{style:{width:"100%"},size:8,children:[(0,import_jsx_runtime.jsx)(import_antd.Input,{placeholder:r("Target block uid"),value:u,onChange:m=>l(d,m.target.value),style:{flex:1}}),n.length>1&&(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"text",icon:(0,import_jsx_runtime.jsx)(import_icons.CloseOutlined,{}),onClick:()=>a(d),"aria-label":r("Remove"),style:{color:i.colorTextSecondary}})]},`target-${d}-${u}`)),(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"dashed",block:!0,icon:(0,import_jsx_runtime.jsx)(import_icons.PlusOutlined,{}),onClick:c,children:r("Add target block")})]})}const setTargetDataScope=(0,import_flow_engine.defineAction)({name:"setTargetDataScope",title:(0,import_flow_engine.tExpr)("Set data scope"),scene:[import_flow_engine.ActionScene.DYNAMIC_EVENT_FLOW],sort:200,uiSchema:{targetBlockUid:{type:"string",title:(0,import_flow_engine.tExpr)("Target block UID"),"x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:(0,import_flow_engine.tExpr)("Please enter the target block UID")}},filter:{type:"object",title:(0,import_flow_engine.tExpr)("Condition"),"x-decorator":"FormItem","x-component":SetTargetDataScope,"x-reactions":[{dependencies:["targetBlockUid"],fulfill:{state:{componentProps:{uid:"{{$deps[0]}}"},hidden:"{{!$deps[0]}}"}}}]}},defaultParams(e){return{targetBlockUid:"",filter:{logic:"$and",items:[]}}},useRawParams:!0,handler(e,t){return L(this,null,function*(){const o=yield e.resolveJsonTemplate(t),r=o.targetBlockUid;r&&e.model.scheduleModelOperation(r,i=>{const n=i.resource;if(!n)return;const l=normalizeDataScopeFilter(t.filter,o.filter);(0,import_client.isEmptyFilter)(l)?n.removeFilterGroup(`setTargetDataScope_${e.model.uid}`):n.addFilterGroup(`setTargetDataScope_${e.model.uid}`,l),n.hasData()&&n.refresh()})})}});function SetTargetDataScope(e){const t=(0,import_flow_engine.useFlowContext)(),o=e.uid,r=t.engine.getModel(o,!0);return r?(0,import_jsx_runtime.jsx)(FilterGroup,{value:e.value,FilterItem:i=>(0,import_jsx_runtime.jsx)(VariableFilterItem,A(x({},i),{model:r,rightAsVariable:!0}))}):(0,import_jsx_runtime.jsxs)("div",{style:{color:t.themeToken.colorError},children:[t.t("Cannot find the model instance with UID"),": ",o]})}const normalizeFilterTargetKey=e=>{if(typeof e=="string")return e;if(Array.isArray(e)&&e.length===1)return e[0]},resolveTargetCollectionField=(e,t)=>{var o;if(!e)return null;const r=t||((o=e.titleCollectionField)==null?void 0:o.name)||normalizeFilterTargetKey(e.filterTargetKey);return r?e.getField(r):null},titleField=(0,import_flow_engine.defineAction)({name:"titleField",title:(0,import_flow_engine.tExpr)("Title field"),uiMode:e=>{var t,o;const r=e.collectionField.targetCollection,i=e.app.dataSourceManager;return{type:"select",key:"label",props:{options:((o=(t=r==null?void 0:r.getFields)==null?void 0:t.call(r))!=null?o:[]).filter(n=>isTitleField(i,n.options)).map(n=>({value:n.name,label:n==null?void 0:n.title}))}}},defaultParams:e=>{var t,o;const r=e.model.context.collectionField.targetCollectionTitleFieldName;return{label:((o=(t=e.model.parent)==null?void 0:t.props)==null?void 0:o.titleField)||e.model.props.titleField||r}},hideInSettings:e=>L(void 0,null,function*(){var t;return!e.collectionField||!e.collectionField.isAssociationField()||((t=e.model.subModels.field)==null?void 0:t.disableTitleField)}),beforeParamsSave:(e,t,o)=>L(void 0,null,function*(){var r;const i=e.model.collectionField.target,n=e.model.collectionField.targetCollection;if(t.label!==o.label){const l=(r=e.model.subModels.field)==null?void 0:r.uid;l&&(yield e.engine.destroyModel(l));const a=resolveTargetCollectionField(n,t.label);if(!a)return;const c=import_flow_engine.DisplayItemModel.getDefaultBindingByField(e,a);if(!c)return;const u=c.modelName,d=e.model.setSubModel("field",{use:u,stepParams:{fieldSettings:{init:{dataSourceKey:e.model.collectionField.dataSourceKey,collectionName:i,fieldPath:t.label}}}});yield d.save(),yield d.dispatchEvent("beforeRender"),yield e.model.save()}}),handler(e,t){return L(this,null,function*(){const o=e.model.collectionField.target,r=e.model.collectionField.targetCollection,i=resolveTargetCollectionField(r,t.label);if(!i)return;const n=normalizeFilterTargetKey(r.filterTargetKey)||i.name,l=i.name,a={value:n,label:l};e.model.setProps({fieldNames:a});const c=import_flow_engine.DisplayItemModel.getDefaultBindingByField(e,i);if(!c)return;const u=c.modelName;e.model.subModels.field||(yield e.model.setSubModel("field",{use:u,stepParams:{fieldSettings:{init:{dataSourceKey:e.model.collectionField.dataSourceKey,collectionName:o,fieldPath:a.label}}}}).dispatchEvent("beforeRender"))})}}),dateTimeFormat=(0,import_flow_engine.defineAction)({title:(0,import_flow_engine.tExpr)("Date display format"),name:"dateDisplayFormat",uiSchema:e=>{const{collectionField:t}=e.model.context,o=t.type,r={type:"string",title:'{{t("Time format")}}',"x-component":ExpiresRadio,"x-decorator":"FormItem","x-component-props":{className:import_css.css`
|
|
2290
2290
|
.ant-radio-wrapper {
|
|
2291
2291
|
display: flex;
|
|
2292
2292
|
margin: 5px 0px;
|