@nocobase/client 2.0.0-beta.2 → 2.0.0-beta.3
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/index.mjs +64 -59
- package/lib/{index-C3fHjsMw-D4vY2Hrd.js → index-C3fHjsMw-CvzEor8U.js} +110 -110
- package/lib/index.js +3 -3
- package/lib/locale/zh-CN.json +1 -0
- 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=Y(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),x=(0,import_react2.useMemo)(()=>[k(f({},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:x})},SchemaInitializerSubMenuInternal=()=>{const e=useSchemaInitializerItem();return(0,import_jsx_runtime.jsx)(SchemaInitializerSubMenu,f({},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,f({},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:()=>N(void 0,null,function*(){i(!0);try{const l=yield n.request({url:"logger:collect",method:"post",responseType:"blob",data:f({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 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 N(this,null,function*(){})}beforeLoad(){return N(this,null,function*(){})}load(){return N(this,null,function*(){})}t(t,o={}){var r;return this.app.i18n.t(t,f({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,f({},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,f({},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)(()=>{N(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,f({now:()=>new Date().toString()},l));i(a)}catch(a){console.error(a)}})},[t.parseVariable,e,o]),r};class SchemaInitializer{constructor(t){I(this,"options"),I(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=k(f({},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=>N(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)(()=>N(void 0,null,function*(){const u=yield FormDialog(e("Add page"),()=>(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{scope:t.scope,components:f({},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)(()=>N(void 0,null,function*(){const c=yield FormDialog(e("Add group"),()=>(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{scope:t.scope,components:f({},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=f(f(f({},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,f({},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,f({},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.0-beta.2",license="AGPL-3.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.0-beta.2","@nocobase/flow-engine":"2.0.0-beta.2","@nocobase/sdk":"2.0.0-beta.2","@nocobase/utils":"2.0.0-beta.2","@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:"^10.6.0",mermaid:"9.4.3",mime:"^4.0.4","mime-match":"^1.0.2","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=k(f({},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]=k(f({},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){I(this,"current"),I(this,"options"),I(this,"appVersion"),I(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=>N(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=>N(this,[i],function*({schema:n}){this.refresh(),n!=null&&n["x-uid"]&&(yield t.request({url:"/uiSchemas:patch",method:"post",data:f({},n)}),import_antd.message.success(o("Saved successfully"),.2))})),this.on("initializeActionContext",i=>N(this,[i],function*({schema:n}){n!=null&&n["x-uid"]&&(yield t.request({url:"/uiSchemas:initializeActionContext",method:"post",data:f({},n)}))})),this.on("batchPatch",i=>N(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=>N(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 N(this,null,function*(){if(!this.events[t])return;const[r,...i]=o;return Promise.all(this.events[t].map(n=>n.bind(this)(f({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((x,_)=>{_===this.current.name&&(d=u,c=!0,++u),x["x-index"]=u,++u,c&&(a[_]=x,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",f({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",f({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",f({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((x,_)=>{x["x-index"]=a,_===this.current.name&&(++a,c=a,u=!0),++a,u&&_!==this.current.name&&(d[_]=x,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",f({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)(),x=(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)(()=>{x.loadAPIClientEvents()},[x]);const{isMobileLayout:_}=useMobileLayout();return{dn:x,designable:_?!1:e,reset:r,refresh:d,setDesignable:t,DesignableBar:l,findComponent:(0,import_react2.useCallback)(v=>{var b;if(!v)return null;if(typeof v!="string")return v;const C=(0,import_get.default)(n,v);return(b=C==null?void 0:C[LAZY_COMPONENT_KEY])!=null?b:C},[import_get.default]),on:x.on.bind(x),patch:(0,import_react2.useCallback)((v,b)=>{const C=y=>{Object.keys(y).forEach(S=>{const F=y[S];S==="title"&&(m.title=F,p.title=F),S==="x-decorator-props"&&(m.decoratorProps||(m.decoratorProps={}),p["x-decorator-props"]||(p["x-decorator-props"]={}),Object.keys(F).forEach(j=>{m.decoratorProps[j]=F[j],p["x-decorator-props"][j]=F[j]})),S==="x-component-props"&&(m.componentProps||(m.componentProps={}),p["x-component-props"]||(p["x-component-props"]={}),Object.keys(F).forEach(j=>{m.componentProps[j]=F[j],p["x-component-props"][j]=F[j]}))})};if(typeof v=="string"){const y={};return(0,import_set.default)(y,v,b),C(y)}C(v),d()},[x]),shallowMerge:(0,import_react2.useCallback)(v=>{x.shallowMerge(v)},[x]),deepMerge:(0,import_react2.useCallback)(v=>{x.deepMerge(v)},[x]),remove:(0,import_react2.useCallback)((v,b)=>{x.remove(v,b)},[x]),insertAdjacent:(0,import_react2.useCallback)((v,b,C)=>{x.insertAdjacent(v,b,C)},[x]),insertBeforeBegin:(0,import_react2.useCallback)(v=>{x.insertBeforeBegin(v)},[x]),insertAfterBegin:(0,import_react2.useCallback)(v=>{x.insertAfterBegin(v)},[x]),insertBeforeEnd:(0,import_react2.useCallback)(v=>{x.insertBeforeEnd(v)},[x]),insertAfterEnd:(0,import_react2.useCallback)(v=>{x.insertAfterEnd(v)},[x])}}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(k(f({},t),{get scope(){return f(f({},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=Y(t,["useProps"]);let i=o;typeof o!="function"&&(i=useDef$4);const n=i();return f(f({},r),n)};function useParsedFilter({filterOption:e,onFilterChange:t}){const{parseFilter:o,findVariable:r}=useParseDataScopeFilter(),[i,n]=(0,import_react2.useState)({}),[l,a]=(0,import_react2.useState)(!!e);return(0,import_react2.useEffect)(()=>{if(!e)return;const c=()=>N(this,null,function*(){a(!0);const d=yield o(e);a(!1),n(d),t==null||t(d)});c();const u=import_lodash.default.debounce(c,DEBOUNCE_WAIT);(0,import_reactive.reaction)(()=>(0,import_client.flatten)(e,{breakOn({key:d}){return d.startsWith("$")&&d!=="$and"&&d!=="$or"},transformValue(d){if(!isVariable$1(d))return d;const m=getVariableName(d),p=r(m);let h=null;const g=getPath(d).split(".");return g.forEach((x,_)=>{const v=g.slice(0,_+1).join("."),b=(0,import_client.getValuesByPath)({[m]:(p==null?void 0:p.ctx)||{}},v);import_lodash.default.isEmpty(b)||(h=b)}),h}}),u,{equals:import_lodash.default.isEqual})},[JSON.stringify(e),o,r]),{filter:i,parseVariableLoading:l}}const useParentRecordCommon=e=>{const t=useCollectionRecordData();if(e)return t},useTableBlockDecoratorProps=e=>{var t;const{params:o,parseVariableLoading:r}=useTableBlockParams(e),i=useParentRecordCommon(e.association),n=(t=useDataSourceManager().getDataSource(e.dataSource))==null?void 0:t.collectionManager.getCollection(e.collection);return{params:o,parentRecord:i,parseVariableLoading:r,rowKey:(n==null?void 0:n.filterTargetKey)||"id"}};function useTableBlockParams(e){var t;const o=(0,import_react.useFieldSchema)(),{filter:r,parseVariableLoading:i}=useParsedFilter({filterOption:(t=e.params)==null?void 0:t.filter});return{params:(0,import_react2.useMemo)(()=>{const n=e.params||{},{dragSortBy:l}=(o==null?void 0:o["x-decorator-props"])||{};return e.dragSort&&l&&(n.sort=l),k(f({},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,f({},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)=>N(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield Promise.all(o.filter(l=>!l.disabled).map(l=>N(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)=>N(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield getSatisfiedActions({rules:o,variables:r,localVariables:i},n)).map(l=>k(f({},l),{value:getActionValue(l.operator,l.value)}))}),getSatisfiedValueMap=(e,t)=>N(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)=>k(f({},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,k(f({},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,x,_,v;let b=d;const C=o.find(j=>j.uid===h.uid);if(!C)return;import_lodash.default.isFunction(u)&&(u=u(C,h,getSourceKey$1(p,C.field))),import_lodash.default.isFunction(d)&&(b=d(C,h)),import_lodash.default.isFunction(m)&&(m=m(C));const y=((g=h.service.params)==null?void 0:g[0])||{},S=((_=(x=h.service.params)==null?void 0:x[1])==null?void 0:_.filters)||{};if(u!=null)S[r]={$and:[{[b]:{[m]:u}}]};else if((v=h.clearSelection)==null||v.call(h),delete S[r],h.dataLoadingMode==="manual")return h.clearData();const F=mergeFilter([...Object.values(S).map(j=>removeNullCondition(j)),h.defaultFilter]);h.doFilter(k(f({},y),{page:1,filter:F}),{filters:S})})},[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)(),x=(0,import_react.useField)(),{getField:_}=useCollection_deprecated(),{getCollectionJoinField:v}=useCollectionManager_deprecated(),b=useRecord(),{isNew:C}=useCollectionRecord()||{},y=((0,import_lodash.isString)((r=(o=(t=g==null?void 0:g["x-component-props"])==null?void 0:t.service)==null?void 0:o.params)==null?void 0:r.filter)?(l=(n=(i=x.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:S}=useParsedFilter({filterOption:y,onFilterChange:()=>{C&&x.reset()}}),F=(0,import_react2.useMemo)(()=>_(g.name)||v(g==null?void 0:g["x-collection-field"]),[g]),j=b==null?void 0:b[F==null?void 0:F.sourceKey],P=(0,import_react2.useMemo)(()=>{const A=["oho","o2m"].includes(F==null?void 0:F.interface);return mergeFilter([mergeFilter([A&&!isInFilterFormBlock(g)&&F!=null&&F.foreignKey&&!h?{[F.foreignKey]:{$is:null}}:null,S]),A&&j!==void 0&&j!==null&&!isInFilterFormBlock(g)&&F!=null&&F.foreignKey&&!h?{[F.foreignKey]:{$eq:j}}:null],"$or")},[F==null?void 0:F.interface,F==null?void 0:F.foreignKey,g,S,j,h]);return(0,import_react2.useMemo)(()=>k(f({resource:F==null?void 0:F.target,action:m},p),{params:k(f({},p==null?void 0:p.params),{filter:P})}),[F==null?void 0:F.target,m,P,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 f({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}},useColumnSettings=e=>{const{t}=(0,import_react_i18next.useTranslation)(),o=`nocobase_table_column_settings_${e}`,r=(0,import_react2.useCallback)(()=>{try{const l=localStorage.getItem(o);return l?JSON.parse(l):null}catch(l){return console.warn("Failed to parse table column settings from localStorage:",l),null}},[o]),i=(0,import_react2.useCallback)(l=>{try{const a=JSON.stringify(l);localStorage.setItem(o,a);const c=new CustomEvent("nocobase-table-settings-changed",{detail:{key:o,tableId:e,settings:l}});window.dispatchEvent(c)}catch(a){console.warn("Failed to save table column settings to localStorage:",a),import_antd.message.error(t("Failed to save table settings"))}},[o,e,t]),n=(0,import_react2.useCallback)(()=>{try{localStorage.removeItem(o);const l=new CustomEvent("nocobase-table-settings-changed",{detail:{key:o,tableId:e,settings:null}});window.dispatchEvent(l)}catch(l){console.warn("Failed to clear table column settings from localStorage:",l),import_antd.message.error(t("Failed to clear table settings"))}},[o,e,t]);return{getSettings:r,saveSettings:i,clearSettings:n}},useTableColumnIntegration=(e,t=!0)=>{const o=(0,import_react.useFieldSchema)(),r=(o==null?void 0:o["x-uid"])||"default",{getSettings:i}=useColumnSettings(r),[n,l]=(0,import_react2.useState)(0);(0,import_react2.useEffect)(()=>{const c=u=>{const{key:d,tableId:m}=u.detail;(d.includes(r)||m===r)&&l(p=>p+1)};return window.addEventListener("nocobase-table-settings-changed",c),()=>{window.removeEventListener("nocobase-table-settings-changed",c)}},[r]);const a=(0,import_react2.useMemo)(()=>i(),[i,n]);return{columns:(0,import_react2.useMemo)(()=>{if(!t||!a||a.length===0)return e;const c=new Map;a.forEach(h=>{c.set(h.key,h)});const u=e.map(h=>{const g=c.get(h.key);if(g){const x=h.columnHidden||!g.visible,_=g.width||h.width,v=g.fixed||h.fixed;return k(f({},h),{columnHidden:x,fixed:v,width:_,_orderIndex:g.order})}return h}),d=[],m=[];u.forEach(h=>{h._orderIndex!==void 0?d.push(h):m.push(h)}),d.sort((h,g)=>(h._orderIndex||0)-(g._orderIndex||0));const p=[...d,...m];return p.forEach(h=>{delete h._orderIndex}),p},[e,a])}},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=Y(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),x=(0,import_react2.useMemo)(()=>[k(f({},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:x})},SchemaInitializerSubMenuInternal=()=>{const e=useSchemaInitializerItem();return(0,import_jsx_runtime.jsx)(SchemaInitializerSubMenu,f({},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,f({},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:()=>N(void 0,null,function*(){i(!0);try{const l=yield n.request({url:"logger:collect",method:"post",responseType:"blob",data:f({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 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 N(this,null,function*(){})}beforeLoad(){return N(this,null,function*(){})}load(){return N(this,null,function*(){})}t(t,o={}){var r;return this.app.i18n.t(t,f({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,f({},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,f({},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)(()=>{N(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,f({now:()=>new Date().toString()},l));i(a)}catch(a){console.error(a)}})},[t.parseVariable,e,o]),r};class SchemaInitializer{constructor(t){I(this,"options"),I(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=k(f({},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=>N(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)(()=>N(void 0,null,function*(){const u=yield FormDialog(e("Add page"),()=>(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{scope:t.scope,components:f({},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)(()=>N(void 0,null,function*(){const c=yield FormDialog(e("Add group"),()=>(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{scope:t.scope,components:f({},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=f(f(f({},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,f({},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,f({},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.0-beta.3",license="AGPL-3.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.0-beta.3","@nocobase/flow-engine":"2.0.0-beta.3","@nocobase/sdk":"2.0.0-beta.3","@nocobase/utils":"2.0.0-beta.3","@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:"^10.6.0",mermaid:"9.4.3",mime:"^4.0.4","mime-match":"^1.0.2","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=k(f({},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]=k(f({},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){I(this,"current"),I(this,"options"),I(this,"appVersion"),I(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=>N(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=>N(this,[i],function*({schema:n}){this.refresh(),n!=null&&n["x-uid"]&&(yield t.request({url:"/uiSchemas:patch",method:"post",data:f({},n)}),import_antd.message.success(o("Saved successfully"),.2))})),this.on("initializeActionContext",i=>N(this,[i],function*({schema:n}){n!=null&&n["x-uid"]&&(yield t.request({url:"/uiSchemas:initializeActionContext",method:"post",data:f({},n)}))})),this.on("batchPatch",i=>N(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=>N(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 N(this,null,function*(){if(!this.events[t])return;const[r,...i]=o;return Promise.all(this.events[t].map(n=>n.bind(this)(f({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((x,_)=>{_===this.current.name&&(d=u,c=!0,++u),x["x-index"]=u,++u,c&&(a[_]=x,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",f({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",f({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",f({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((x,_)=>{x["x-index"]=a,_===this.current.name&&(++a,c=a,u=!0),++a,u&&_!==this.current.name&&(d[_]=x,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",f({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)(),x=(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)(()=>{x.loadAPIClientEvents()},[x]);const{isMobileLayout:_}=useMobileLayout();return{dn:x,designable:_?!1:e,reset:r,refresh:d,setDesignable:t,DesignableBar:l,findComponent:(0,import_react2.useCallback)(v=>{var b;if(!v)return null;if(typeof v!="string")return v;const C=(0,import_get.default)(n,v);return(b=C==null?void 0:C[LAZY_COMPONENT_KEY])!=null?b:C},[import_get.default]),on:x.on.bind(x),patch:(0,import_react2.useCallback)((v,b)=>{const C=y=>{Object.keys(y).forEach(S=>{const F=y[S];S==="title"&&(m.title=F,p.title=F),S==="x-decorator-props"&&(m.decoratorProps||(m.decoratorProps={}),p["x-decorator-props"]||(p["x-decorator-props"]={}),Object.keys(F).forEach(j=>{m.decoratorProps[j]=F[j],p["x-decorator-props"][j]=F[j]})),S==="x-component-props"&&(m.componentProps||(m.componentProps={}),p["x-component-props"]||(p["x-component-props"]={}),Object.keys(F).forEach(j=>{m.componentProps[j]=F[j],p["x-component-props"][j]=F[j]}))})};if(typeof v=="string"){const y={};return(0,import_set.default)(y,v,b),C(y)}C(v),d()},[x]),shallowMerge:(0,import_react2.useCallback)(v=>{x.shallowMerge(v)},[x]),deepMerge:(0,import_react2.useCallback)(v=>{x.deepMerge(v)},[x]),remove:(0,import_react2.useCallback)((v,b)=>{x.remove(v,b)},[x]),insertAdjacent:(0,import_react2.useCallback)((v,b,C)=>{x.insertAdjacent(v,b,C)},[x]),insertBeforeBegin:(0,import_react2.useCallback)(v=>{x.insertBeforeBegin(v)},[x]),insertAfterBegin:(0,import_react2.useCallback)(v=>{x.insertAfterBegin(v)},[x]),insertBeforeEnd:(0,import_react2.useCallback)(v=>{x.insertBeforeEnd(v)},[x]),insertAfterEnd:(0,import_react2.useCallback)(v=>{x.insertAfterEnd(v)},[x])}}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(k(f({},t),{get scope(){return f(f({},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=Y(t,["useProps"]);let i=o;typeof o!="function"&&(i=useDef$4);const n=i();return f(f({},r),n)};function useParsedFilter({filterOption:e,onFilterChange:t}){const{parseFilter:o,findVariable:r}=useParseDataScopeFilter(),[i,n]=(0,import_react2.useState)({}),[l,a]=(0,import_react2.useState)(!!e);return(0,import_react2.useEffect)(()=>{if(!e)return;const c=()=>N(this,null,function*(){a(!0);const d=yield o(e);a(!1),n(d),t==null||t(d)});c();const u=import_lodash.default.debounce(c,DEBOUNCE_WAIT);(0,import_reactive.reaction)(()=>(0,import_client.flatten)(e,{breakOn({key:d}){return d.startsWith("$")&&d!=="$and"&&d!=="$or"},transformValue(d){if(!isVariable$1(d))return d;const m=getVariableName(d),p=r(m);let h=null;const g=getPath(d).split(".");return g.forEach((x,_)=>{const v=g.slice(0,_+1).join("."),b=(0,import_client.getValuesByPath)({[m]:(p==null?void 0:p.ctx)||{}},v);import_lodash.default.isEmpty(b)||(h=b)}),h}}),u,{equals:import_lodash.default.isEqual})},[JSON.stringify(e),o,r]),{filter:i,parseVariableLoading:l}}const useParentRecordCommon=e=>{const t=useCollectionRecordData();if(e)return t},useTableBlockDecoratorProps=e=>{var t;const{params:o,parseVariableLoading:r}=useTableBlockParams(e),i=useParentRecordCommon(e.association),n=(t=useDataSourceManager().getDataSource(e.dataSource))==null?void 0:t.collectionManager.getCollection(e.collection);return{params:o,parentRecord:i,parseVariableLoading:r,rowKey:(n==null?void 0:n.filterTargetKey)||"id"}};function useTableBlockParams(e){var t;const o=(0,import_react.useFieldSchema)(),{filter:r,parseVariableLoading:i}=useParsedFilter({filterOption:(t=e.params)==null?void 0:t.filter});return{params:(0,import_react2.useMemo)(()=>{const n=e.params||{},{dragSortBy:l}=(o==null?void 0:o["x-decorator-props"])||{};return e.dragSort&&l&&(n.sort=l),k(f({},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,f({},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)=>N(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield Promise.all(o.filter(l=>!l.disabled).map(l=>N(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)=>N(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield getSatisfiedActions({rules:o,variables:r,localVariables:i},n)).map(l=>k(f({},l),{value:getActionValue(l.operator,l.value)}))}),getSatisfiedValueMap=(e,t)=>N(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)=>k(f({},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,k(f({},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,x,_,v;let b=d;const C=o.find(j=>j.uid===h.uid);if(!C)return;import_lodash.default.isFunction(u)&&(u=u(C,h,getSourceKey$1(p,C.field))),import_lodash.default.isFunction(d)&&(b=d(C,h)),import_lodash.default.isFunction(m)&&(m=m(C));const y=((g=h.service.params)==null?void 0:g[0])||{},S=((_=(x=h.service.params)==null?void 0:x[1])==null?void 0:_.filters)||{};if(u!=null)S[r]={$and:[{[b]:{[m]:u}}]};else if((v=h.clearSelection)==null||v.call(h),delete S[r],h.dataLoadingMode==="manual")return h.clearData();const F=mergeFilter([...Object.values(S).map(j=>removeNullCondition(j)),h.defaultFilter]);h.doFilter(k(f({},y),{page:1,filter:F}),{filters:S})})},[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)(),x=(0,import_react.useField)(),{getField:_}=useCollection_deprecated(),{getCollectionJoinField:v}=useCollectionManager_deprecated(),b=useRecord(),{isNew:C}=useCollectionRecord()||{},y=((0,import_lodash.isString)((r=(o=(t=g==null?void 0:g["x-component-props"])==null?void 0:t.service)==null?void 0:o.params)==null?void 0:r.filter)?(l=(n=(i=x.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:S}=useParsedFilter({filterOption:y,onFilterChange:()=>{C&&x.reset()}}),F=(0,import_react2.useMemo)(()=>_(g.name)||v(g==null?void 0:g["x-collection-field"]),[g]),j=b==null?void 0:b[F==null?void 0:F.sourceKey],P=(0,import_react2.useMemo)(()=>{const A=["oho","o2m"].includes(F==null?void 0:F.interface);return mergeFilter([mergeFilter([A&&!isInFilterFormBlock(g)&&F!=null&&F.foreignKey&&!h?{[F.foreignKey]:{$is:null}}:null,S]),A&&j!==void 0&&j!==null&&!isInFilterFormBlock(g)&&F!=null&&F.foreignKey&&!h?{[F.foreignKey]:{$eq:j}}:null],"$or")},[F==null?void 0:F.interface,F==null?void 0:F.foreignKey,g,S,j,h]);return(0,import_react2.useMemo)(()=>k(f({resource:F==null?void 0:F.target,action:m},p),{params:k(f({},p==null?void 0:p.params),{filter:P})}),[F==null?void 0:F.target,m,P,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 f({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}},useColumnSettings=e=>{const{t}=(0,import_react_i18next.useTranslation)(),o=`nocobase_table_column_settings_${e}`,r=(0,import_react2.useCallback)(()=>{try{const l=localStorage.getItem(o);return l?JSON.parse(l):null}catch(l){return console.warn("Failed to parse table column settings from localStorage:",l),null}},[o]),i=(0,import_react2.useCallback)(l=>{try{const a=JSON.stringify(l);localStorage.setItem(o,a);const c=new CustomEvent("nocobase-table-settings-changed",{detail:{key:o,tableId:e,settings:l}});window.dispatchEvent(c)}catch(a){console.warn("Failed to save table column settings to localStorage:",a),import_antd.message.error(t("Failed to save table settings"))}},[o,e,t]),n=(0,import_react2.useCallback)(()=>{try{localStorage.removeItem(o);const l=new CustomEvent("nocobase-table-settings-changed",{detail:{key:o,tableId:e,settings:null}});window.dispatchEvent(l)}catch(l){console.warn("Failed to clear table column settings from localStorage:",l),import_antd.message.error(t("Failed to clear table settings"))}},[o,e,t]);return{getSettings:r,saveSettings:i,clearSettings:n}},useTableColumnIntegration=(e,t=!0)=>{const o=(0,import_react.useFieldSchema)(),r=(o==null?void 0:o["x-uid"])||"default",{getSettings:i}=useColumnSettings(r),[n,l]=(0,import_react2.useState)(0);(0,import_react2.useEffect)(()=>{const c=u=>{const{key:d,tableId:m}=u.detail;(d.includes(r)||m===r)&&l(p=>p+1)};return window.addEventListener("nocobase-table-settings-changed",c),()=>{window.removeEventListener("nocobase-table-settings-changed",c)}},[r]);const a=(0,import_react2.useMemo)(()=>i(),[i,n]);return{columns:(0,import_react2.useMemo)(()=>{if(!t||!a||a.length===0)return e;const c=new Map;a.forEach(h=>{c.set(h.key,h)});const u=e.map(h=>{const g=c.get(h.key);if(g){const x=h.columnHidden||!g.visible,_=g.width||h.width,v=g.fixed||h.fixed;return k(f({},h),{columnHidden:x,fixed:v,width:_,_orderIndex:g.order})}return h}),d=[],m=[];u.forEach(h=>{h._orderIndex!==void 0?d.push(h):m.push(h)}),d.sort((h,g)=>(h._orderIndex||0)-(g._orderIndex||0));const p=[...d,...m];return p.forEach(h=>{delete h._orderIndex}),p},[e,a])}},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};
|
|
@@ -307,7 +307,7 @@ ${JSON.stringify(O,null,2)}`)},[u,c,a,i,r,j,t,l,n,g,o,x,C,P,y,S,h]),T=(0,import_
|
|
|
307
307
|
`,popupMatchSelectWidth:!1,value:c==null?void 0:c.value,options:o(l),onChange:y,placeholder:t("Comparision")}),c!=null&&c.noValue?null:(0,import_jsx_runtime.jsx)(DynamicComponent$2,{value:m,schema:i,collectionField:h,onChange:p}),!e.disabled&&(0,import_jsx_runtime.jsx)("a",{role:"button","aria-label":"icon-close",children:(0,import_jsx_runtime.jsx)(import_icons.CloseCircleOutlined,{onClick:r,style:S})})]})})},{displayName:"FilterItem"}),FilterItems$1=(0,import_react.observer)(e=>{var t;const o=(0,import_react.useField)();return(0,import_jsx_runtime.jsx)("div",{children:(t=o==null?void 0:o.value)==null?void 0:t.filter(Boolean).map((r,i)=>(0,import_jsx_runtime.jsx)(RemoveConditionContext$1.Provider,{value:()=>o.remove(i),children:(0,import_jsx_runtime.jsx)(import_react.ObjectField,{name:i,component:[r.$and||r.$or?FilterGroup$2:FilterItem$1]})},i))})},{displayName:"FilterItems"}),FilterGroup$2=(0,import_react.connect)(e=>{const{bordered:t=!0,disabled:o}=e,r=(0,import_react.useField)(),i=(0,import_react2.useContext)(RemoveConditionContext$1),{t:n}=(0,import_react_i18next.useTranslation)(),{token:l}=useToken$1(),a=Object.keys(r.value||{}).includes("$or")?"$or":"$and",c=d=>{const m=r.value||{};r.value={[d]:[...m[a]||[]]}},u=o||r.disabled;return(0,import_jsx_runtime.jsx)(FilterLogicContext$1.Provider,{value:a,children:(0,import_jsx_runtime.jsxs)("div",{style:t?{position:"relative",border:`1px dashed ${l.colorBorder}`,padding:l.paddingSM,marginBottom:l.marginXS}:{position:"relative",marginBottom:l.marginXS},children:[i&&!u&&(0,import_jsx_runtime.jsx)("a",{role:"button","aria-label":"icon-close",children:(0,import_jsx_runtime.jsx)(import_icons.CloseCircleOutlined,{style:{position:"absolute",right:10,top:10,color:"#bfbfbf"},onClick:()=>i()})}),(0,import_jsx_runtime.jsx)("div",{style:{marginBottom:8,color:l.colorText},children:(0,import_jsx_runtime.jsxs)(import_react_i18next.Trans,{children:["Meet ",(0,import_jsx_runtime.jsxs)(import_antd.Select,{role:"button","data-testid":"filter-select-all-or-any",style:{width:"auto"},value:a,onChange:d=>{c(d)},children:[(0,import_jsx_runtime.jsx)(import_antd.Select.Option,{value:"$and",children:"All"}),(0,import_jsx_runtime.jsx)(import_antd.Select.Option,{value:"$or",children:"Any"})]})," conditions in the group"]})}),(0,import_jsx_runtime.jsx)("div",{children:(0,import_jsx_runtime.jsx)(import_react.ArrayField,{name:a,component:[FilterItems$1],disabled:u})}),!u&&(0,import_jsx_runtime.jsxs)(import_antd.Space,{size:16,style:{marginTop:8,marginBottom:8},children:[(0,import_jsx_runtime.jsx)("a",{onClick:()=>{const d=(r.value||{})[a]||[];d.push({}),r.value={[a]:d},r.initialValue={[a]:d}},children:n("Add condition")}),(0,import_jsx_runtime.jsx)("a",{onClick:()=>{const d=(r.value||{})[a]||[];d.push({$and:[{}]}),r.value={[a]:d}},children:n("Add condition group")})]})]})})}),SaveDefaultValue=e=>{const{t}=(0,import_react_i18next.useTranslation)(),{designable:o,dn:r,refresh:i}=useDesignable(),n=(0,import_react.useFieldSchema)(),l=(0,import_react.useForm)();return o?(0,import_jsx_runtime.jsx)(import_antd.Button,{className:import_css.css`
|
|
308
308
|
border-color: var(--colorSettings);
|
|
309
309
|
color: var(--colorSettings);
|
|
310
|
-
`,type:"dashed",onClick:()=>{var a,c,u,d;const m=(d=(u=(c=(a=n==null?void 0:n.parent)==null?void 0:a.parent)==null?void 0:c.parent)==null?void 0:u.properties)==null?void 0:d.filter;if(!m)return;const p=l.values.filter;r.emit("patch",{schema:{"x-uid":m["x-uid"],default:p}}),r.refresh(),m.default=p,console.log("filterSchema",p)},children:t("Save conditions")}):null},useDef$3=e=>{const t=(0,import_react.useField)();return useRequest(()=>Promise.resolve({data:t.dataSource}),e)},Filter=withDynamicSchemaProps((0,import_react.observer)(e=>{const{useDataSource:t=useDef$3}=e,{options:o,dynamicComponent:r,className:i,collectionName:n}=useProps(e),l=(0,import_react.useField)(),a=(0,import_react.useFieldSchema)();return t({onSuccess(c){l.dataSource=(c==null?void 0:c.data)||[]}}),(0,import_react2.useEffect)(()=>{a.defaultValue&&(l.initialValue=a.defaultValue)},[a.defaultValue]),(0,import_jsx_runtime.jsx)("div",{className:i,children:(0,import_jsx_runtime.jsx)(FilterContext$3.Provider,{value:{field:l,fieldSchema:a,dynamicComponent:r,options:o||l.dataSource||[],disabled:e.disabled,collectionName:n},children:(0,import_jsx_runtime.jsx)(FilterGroup$2,k(f({},e),{bordered:!1}))})})}),{displayName:"Filter"});Filter.SaveDefaultValue=SaveDefaultValue;Filter.Action=FilterAction;Filter.Action.Designer=FilterActionDesigner;const useGetFilterOptions=()=>{const e=useDataSourceManager(),t=useGetFilterFieldOptions();return(o,r,i)=>{var n;const l=(n=e==null?void 0:e.getDataSource(r))==null?void 0:n.collectionManager,a=l==null?void 0:l.getCollectionFields(o);return t(a,i)}},useFilterOptions=e=>{const t=useCollectionManager(),o=t==null?void 0:t.getCollectionFields(e);return useFilterFieldOptions(o)},useGetFilterFieldOptions=()=>{var e;const t=(0,import_react.useFieldSchema)(),o=((e=t==null?void 0:t["x-component-props"])==null?void 0:e.nonfilterable)||[],r=useCollectionManager(),i=useDataSourceManager(),n=(a,c,u)=>{var d,m;if(o.length&&c===1&&o.includes(a.name)||!a.interface)return;const p=i==null?void 0:i.collectionFieldInterfaceManager.getFieldInterface(a.interface);if(!(p!=null&&p.filterable)&&!u)return;const{nested:h,children:g,operators:x}=(p==null?void 0:p.filterable)||{},_={name:a.name,type:a.type,target:a.target,title:((d=a==null?void 0:a.uiSchema)==null?void 0:d.title)||a.name,schema:a==null?void 0:a.uiSchema,interface:a.interface,operators:((m=x==null?void 0:x.filter)==null?void 0:m.call(x,v=>!(v!=null&&v.visible)||v.visible(a)))||[]};if(!(a.target&&c>2)){if(c>2)return _;if(g!=null&&g.length&&(_.children=g),h){const v=r==null?void 0:r.getCollectionFields(a.target),b=l(v,c+1).filter(Boolean);_.children=_.children||[],_.children.push(...b)}return _}},l=(a,c,u)=>{const d=[];return a==null||a.forEach(m=>{const p=n(m,c,u);p&&d.push(p)}),d};return(a,c)=>l(a,1,c)},field2option$1=(e,t,o,r,i)=>{var n,l;if(o.length&&t===1&&o.includes(e.name)||!e.interface||e.filterable===!1)return;const a=r==null?void 0:r.collectionFieldInterfaceManager.getFieldInterface(e.interface);if(!(a!=null&&a.filterable))return;const{nested:c,children:u,operators:d}=a.filterable,m={name:e.name,type:e.type,target:e.target,title:((n=e==null?void 0:e.uiSchema)==null?void 0:n.title)||e.name,schema:e==null?void 0:e.uiSchema,operators:((l=d==null?void 0:d.filter)==null?void 0:l.call(d,p=>!(p!=null&&p.visible)||p.visible(e)))||[]};if(!(e.target&&t>2)){if(t>2)return m;if(u!=null&&u.length&&(m.children=u),c){const p=r.getDataSource(e.dataSourceKey).collectionManager.getCollectionFields(e.target),h=getOptions$3(p,t+1,o,r).filter(Boolean);m.children=m.children||[],m.children.push(...h)}return m}},getOptions$3=(e,t,o,r,i)=>{const n=[];return e.forEach(l=>{const a=field2option$1(l,t,o,r);a&&n.push(a)}),n},useFilterFieldOptions=e=>{var t;const o=(0,import_react.useFieldSchema)(),r=((t=o==null?void 0:o["x-component-props"])==null?void 0:t.nonfilterable)||[];useCollectionManager();const i=useDataSourceManager();return getOptions$3(e,1,r,i)},isEmpty=e=>Array.isArray(e)&&e.length===0||e&&Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype,removeNullCondition=(e,t=import_flat.default)=>{const o=t(e||{}),r={};for(const i in o){const n=o[i];n!=null&&!isEmpty(n)&&(r[i]=n)}return t.unflatten(r)},useFilterActionProps$1=()=>{const e=useCollection(),t=useFilterOptions(e==null?void 0:e.name),o=useDataBlockProps();return useFilterFieldProps({options:t,params:o==null?void 0:o.params})},useFilterFieldProps=({options:e,service:t,params:o})=>{const{getDataBlockRequest:r}=useDataBlockRequestGetter(),{t:i}=(0,import_react_i18next.useTranslation)(),n=(0,import_react.useField)(),l=useDataLoadingMode(),a=(0,import_react.useFieldSchema)(),c=useCompile(),u=(0,import_react2.useCallback)(m=>{var p,h,g,x,_;const v=t||r(),b=(o||((h=(p=v.state)==null?void 0:p.params)==null?void 0:h[0])||v.params).filter,C=removeNullCondition(m==null?void 0:m.filter);if(l==="manual"&&import_lodash.default.isEmpty(C))return v==null?void 0:v.mutate(void 0);const y=((x=(g=v==null?void 0:v.params)==null?void 0:g[1])==null?void 0:x.filters)||{};y.filterAction=C,v==null||v.run(k(f({},(_=v==null?void 0:v.params)==null?void 0:_[0]),{page:1,filter:mergeFilter([...Object.values(y),b])}),{filters:y});const S=(C==null?void 0:C.$and)||(C==null?void 0:C.$or);S!=null&&S.length?n.title=i("{{count}} filter items",{count:(S==null?void 0:S.length)||0}):n.title=c(a.title)||i("Filter")},[l,n,r,o,t,i,a.title]),d=(0,import_react2.useCallback)(()=>{var m,p,h,g,x;const _=t||r(),v=(o||((p=(m=_.state)==null?void 0:m.params)==null?void 0:p[0])||_.params).filter,b=((g=(h=_==null?void 0:_.params)==null?void 0:h[1])==null?void 0:g.filters)||{};delete b.filterAction;const C=[k(f({},(x=_==null?void 0:_.params)==null?void 0:x[0]),{filter:mergeFilter([...Object.values(b),v]),page:1}),{filters:b}];if(n.title=c(a.title)||i("Filter"),l==="manual")return _.params=C,_==null?void 0:_.mutate(void 0);_==null||_.run(...C)},[l,n,r,o,t,i,a.title]);return{options:e,onSubmit:u,onReset:d}},useLabelFields$1=e=>{var t,o,r;const i=useCompile(),{getCollectionFields:n}=useCollectionManager_deprecated();if(!e)return[];const l=n(e);return(r=(o=(t=l==null?void 0:l.filter)==null?void 0:t.call(l,a=>(a==null?void 0:a.interface)&&!(a!=null&&a.target)&&a.type!=="boolean"))==null?void 0:o.map)==null?void 0:r.call(o,a=>{var c;return{value:a.name,label:i(((c=a==null?void 0:a.uiSchema)==null?void 0:c.title)||a.name)}})},useColorFields=e=>{var t,o,r;const i=useCompile(),{getCollectionFields:n}=useCollectionManager_deprecated();if(!e)return[];const l=n(e);return(r=(o=(t=l==null?void 0:l.filter)==null?void 0:t.call(l,a=>(a==null?void 0:a.interface)==="color"))==null?void 0:o.map)==null?void 0:r.call(o,a=>{var c;return{value:a.name,label:i(((c=a==null?void 0:a.uiSchema)==null?void 0:c.title)||a.name)}})},TableColumnDesigner$1=e=>{var t,o,r,i,n,l,a,c,u,d,m,p;const{uiSchema:h,fieldSchema:g,collectionField:x}=e,{form:_}=useFormBlockContext(),{getInterface:v,getCollection:b}=useCollectionManager_deprecated(),C=(0,import_react.useField)(),{t:y}=(0,import_react_i18next.useTranslation)(),S=(0,import_react.useFieldSchema)(),{dn:F}=useDesignable(),j=((t=g==null?void 0:g["x-component-props"])==null?void 0:t.fieldNames)||((o=h==null?void 0:h["x-component-props"])==null?void 0:o.fieldNames),P=useLabelFields$1((r=x==null?void 0:x.target)!=null?r:x==null?void 0:x.targetCollection),A=useColorFields((i=x==null?void 0:x.target)!=null?i:x==null?void 0:x.targetCollection),T=v(x==null?void 0:x.interface),D=b(x==null?void 0:x.target),E=isFileCollection$2(D),R=["QuickEdit","FormItem"].includes(g["x-decorator"]),{currentMode:M}=useAssociationFieldContext(),{isAllowToSetDefaultValue:L}=useIsAllowToSetDefaultValue({collectionField:x,fieldSchema:g}),$=["datetime","createdAt","updatedAt"].includes(x==null?void 0:x.interface),w=["obo","oho","o2o","o2m","m2m","m2o","snapshot"].includes(x==null?void 0:x.interface),B=useFieldModeOptions({fieldSchema:g}),O=((n=g==null?void 0:g["x-component-props"])==null?void 0:n.mode)||"Select";let V="editable";g["x-disabled"]===!0&&(V="readonly"),g["x-read-pretty"]===!0&&(V="read-pretty");const q=w&&O==="Select",U=()=>{const{name:z}=useCollection(),{linkageRulesProps:G}=useSchemaToolbar();return(0,import_jsx_runtime.jsx)(SchemaSettingsLinkageRules,f({category:"style"},k(f({},G),{collectionName:z})))};return(0,import_jsx_runtime.jsxs)(GeneralSchemaDesigner,{disableInitializer:!0,children:[(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:y("Custom column title"),schema:{type:"object",title:y("Custom column title"),properties:{title:{title:y("Column title"),default:S==null?void 0:S.title,description:`${y("Original field title: ")}${((l=x==null?void 0:x.uiSchema)==null?void 0:l.title)||(g==null?void 0:g.title)}`,"x-decorator":"FormItem","x-component":"Input","x-component-props":{}}}},onSubmit:({title:z})=>{z&&(C.title=z,S.title=z,F.emit("patch",{schema:{"x-uid":S["x-uid"],title:S.title}})),F.refresh()}}),q&&!C.readPretty&&!(h!=null&&h["x-read-pretty"])&&R&&(0,import_jsx_runtime.jsx)(SchemaSettingsDataScope,{collectionName:x==null?void 0:x.target,defaultFilter:((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)||{},form:_,onSubmit:({filter:z})=>{var G,H;z=removeNullCondition(z),(0,import_lodash.set)(C.componentProps,"service.params.filter",z),g["x-component-props"]=C.componentProps;const W=(H=C.path)==null?void 0:H.splice(((G=C.path)==null?void 0:G.length)-1,1);C.form.query(`${W.concat("*."+g.name)}`).forEach(J=>{J.componentProps.service=J.componentProps.service||{params:{}},J.componentProps.service.params.filter=z}),F.emit("patch",{schema:{"x-uid":g["x-uid"],"x-component-props":C.componentProps}})}}),(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:y("Column width"),schema:{type:"object",title:y("Column width"),properties:{width:{default:((d=S==null?void 0:S["x-component-props"])==null?void 0:d.width)||100,"x-decorator":"FormItem","x-component":"InputNumber","x-component-props":{}}}},onSubmit:({width:z})=>{const G=S["x-component-props"]||{};G.width=z;const H={"x-uid":S["x-uid"]};H["x-component-props"]=G,S["x-component-props"]=G,C.componentProps.width=z,F.emit("patch",{schema:H}),F.refresh()}}),(0,import_jsx_runtime.jsx)(U,{}),T&&T.sortable===!0&&!M&&(0,import_jsx_runtime.jsx)(SchemaSettingsSwitchItem,{title:y("Sortable"),checked:C.componentProps.sorter,onChange:z=>{const G={"x-uid":S["x-uid"]};S["x-component-props"]=k(f({},S["x-component-props"]),{sorter:z}),G["x-component-props"]=S["x-component-props"],C.componentProps.sorter=z,F.emit("patch",{schema:G}),F.refresh()}}),["linkTo","m2m","m2o","o2m","obo","oho","snapshot","createdBy","updatedBy"].includes(x==null?void 0:x.interface)&&!E&&(V==="read-pretty"||C.readPretty||C.readOnly)&&(0,import_jsx_runtime.jsx)(SchemaSettingsSwitchItem,{title:y("Enable link"),checked:((m=g["x-component-props"])==null?void 0:m.enableLink)!==!1,onChange:z=>{g["x-component-props"]=k(f({},g==null?void 0:g["x-component-props"]),{enableLink:z}),C.componentProps=k(f({},g==null?void 0:g["x-component-props"]),{enableLink:z}),F.emit("patch",{schema:{"x-uid":g["x-uid"],"x-component-props":f({},g==null?void 0:g["x-component-props"])}}),F.refresh()}}),["linkTo","m2m","m2o","o2m","obo","oho","snapshot"].includes(x==null?void 0:x.interface)&&(0,import_jsx_runtime.jsx)(SchemaSettingsSelectItem,{title:y("Title field"),options:P,value:j==null?void 0:j.label,onChange:z=>{var G,H,W,J,K;const Q=k(f(f({},(H=(G=x==null?void 0:x.uiSchema)==null?void 0:G["x-component-props"])==null?void 0:H.fieldNames),(W=g==null?void 0:g["x-component-props"])==null?void 0:W.fieldNames),{label:z});import_lodash.default.set(g,"x-component-props.fieldNames",Q);const Z=(K=C.path)==null?void 0:K.splice(((J=C.path)==null?void 0:J.length)-1,1);C.form.query(`${Z.concat("*."+g.name)}`).forEach(ee=>{ee.componentProps.fieldNames=Q}),F.emit("patch",{schema:{"x-uid":g["x-uid"],"x-component-props":f({},g["x-component-props"])}}),F.refresh()}}),w&&(0,import_jsx_runtime.jsx)(SchemaSettingsSelectItem,{title:y("Field component"),options:V==="read-pretty"?[{label:y("Title"),value:"Select"},E&&{label:y("File manager"),value:"FileManager"},{label:y("Tag"),value:"Tag"}].filter(Boolean):B,value:O,onChange:z=>{const G={"x-uid":g["x-uid"]};g["x-component-props"]=g["x-component-props"]||{},g["x-component-props"].mode=z,G["x-component-props"]=g["x-component-props"],C.componentProps=C.componentProps||{},C.componentProps.mode=z,F.emit("patch",{schema:G}),F.refresh()}},"field-mode"),["Tag"].includes(O)&&(0,import_jsx_runtime.jsx)(SchemaSettingsSelectItem,{title:y("Tag color field"),options:A,value:(p=g==null?void 0:g["x-component-props"])==null?void 0:p.tagColorField,onChange:z=>{const G={"x-uid":g["x-uid"]};g["x-component-props"]=g["x-component-props"]||{},g["x-component-props"].tagColorField=z,G["x-component-props"]=g["x-component-props"],C.componentProps.tagColorField=z,F.emit("patch",{schema:G}),F.refresh()}},"title-field"),R&&!C.readPretty&&!(h!=null&&h["x-read-pretty"])&&(0,import_jsx_runtime.jsx)(SchemaSettingsSwitchItem,{title:y("Required"),checked:g.required,onChange:z=>{var G,H;const W={"x-uid":g["x-uid"]};g.required=z,W.required=z;const J=(H=C.path)==null?void 0:H.splice(((G=C.path)==null?void 0:G.length)-1,1);C.form.query(`${J.concat("*."+g.name)}`).forEach(K=>{K.required=z}),F.emit("patch",{schema:W}),F.refresh()}},"required"),R&&!(C!=null&&C.readPretty)&&(x==null?void 0:x.interface)!=="o2m"&&!isPatternDisabled(g)&&(0,import_jsx_runtime.jsx)(SchemaSettingsSelectItem,{title:y("Pattern"),options:[{label:y("Editable"),value:"editable"},{label:y("Readonly"),value:"readonly"},{label:y("Easy-reading"),value:"read-pretty"}],value:V,onChange:z=>{var G,H;const W={"x-uid":g["x-uid"]},J=(H=C.path)==null?void 0:H.splice(((G=C.path)==null?void 0:G.length)-1,1);switch(z){case"readonly":{g["x-read-pretty"]=!1,g["x-disabled"]=!0,W["x-read-pretty"]=!1,W["x-disabled"]=!0,C.form.query(`${J.concat("*."+g.name)}`).forEach(K=>{K.readonly=!0,K.disabled=!0});break}case"read-pretty":{g["x-read-pretty"]=!0,g["x-disabled"]=!1,W["x-read-pretty"]=!0,W["x-disabled"]=!1,C.form.query(`${J.concat("*."+g.name)}`).forEach(K=>{K.readPretty=!0});break}default:{g["x-read-pretty"]=!1,g["x-disabled"]=!1,W["x-read-pretty"]=!1,W["x-disabled"]=!1,C.form.query(`${J.concat("*."+g.name)}`).forEach(K=>{K.readPretty=!1,K.disabled+!1});break}}F.emit("patch",{schema:W}),F.refresh()}},"pattern"),$&&(0,import_jsx_runtime.jsx)(SchemaSettingsDateFormat,{fieldSchema:g}),R&&!(C!=null&&C.readPretty)&&["obo","oho","o2o","o2m","m2m","m2o"].includes(x==null?void 0:x.interface)&&(0,import_jsx_runtime.jsx)(SchemaSettingsSortingRule,{fieldSchema:g,onSubmitCallBack:z=>{var G,H;const W=(H=C.path)==null?void 0:H.splice(((G=C.path)==null?void 0:G.length)-1,1);C.form.query(`${W.concat("*."+g.name)}`).forEach(J=>{J.componentProps.service=J.componentProps.service||{params:{}},J.componentProps.service.params.sort=z})}}),L(R)&&(0,import_jsx_runtime.jsx)(SchemaSettingsDefaultValue,{fieldSchema:g}),(0,import_jsx_runtime.jsx)(SchemaSettingsDivider,{}),(0,import_jsx_runtime.jsx)(SchemaSettingsRemove,{removeParentsIfNoChildren:!R,breakRemoveOn:{"x-component":"Grid"},confirm:{title:y("Delete table column")}})]})};function isFileCollection$2(e){return(e==null?void 0:e.template)==="file"}const allowAddNew={name:"allowAddNew",type:"switch",useVisible(){const e=useFlag(),t=useIsFieldReadPretty(),o=useIsAssociationField(),r=useFieldMode();return!(e!=null&&e.isInSubTable)&&!t&&o&&["Picker"].includes(r)},useComponentProps(){const{defaultOpenMode:e}=useOpenModeContext(),{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{dn:i,refresh:n,insertAdjacent:l}=useDesignable();return{title:t("Allow add new data"),checked:r["x-add-new"],onChange(a){r.reduceProperties((u,d)=>d["x-component"]==="Action"?d:u,null)||l("afterBegin",{"x-action":"create","x-acl-action":"create",title:"{{t('Add new')}}","x-toolbar":"ActionSchemaToolbar","x-toolbar-props":{draggable:!1},"x-settings":"actionSettings:addNew","x-component":"Action","x-decorator":"ACLActionProvider","x-component-props":{openMode:e,type:"default",component:"CreateRecordAction"}});const c={"x-uid":r["x-uid"]};o["x-add-new"]=a,r["x-add-new"]=a,c["x-add-new"]=a,i.emit("patch",{schema:c}),n()}}}},formItemSettings=new SchemaSettings({name:"FormItemSettings",items:[...generalSettingsItems,{name:"allowAddNewData",type:"switch",useVisible(){const e=useIsFieldReadPretty(),t=useIsAssociationField(),o=useFieldMode();return!e&&t&&["SubTable"].includes(o)},useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{dn:i,refresh:n}=useDesignable();return{title:t("Allow add new"),checked:((e=r["x-component-props"])==null?void 0:e.allowAddnew)!==!1,onChange(l){const a={"x-uid":r["x-uid"]};o.componentProps.allowAddnew=l,r["x-component-props"]=r["x-component-props"]||{},r["x-component-props"].allowAddnew=l,a["x-component-props"]=r["x-component-props"],i.emit("patch",{schema:a}),n()}}}},{name:"allowSelectExistingRecord",type:"switch",useVisible(){const e=useIsFieldReadPretty(),t=useIsAssociationField(),o=useFieldMode();return!e&&t&&["SubTable"].includes(o)},useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{dn:i,refresh:n}=useDesignable();return{title:t("Allow selection of existing records"),checked:(e=r["x-component-props"])==null?void 0:e.allowSelectExistingRecord,onChange(l){const a={"x-uid":r["x-uid"]};o.componentProps.allowSelectExistingRecord=l,r["x-component-props"]=r["x-component-props"]||{},r["x-component-props"].allowSelectExistingRecord=l,a["x-component-props"]=r["x-component-props"],i.emit("patch",{schema:a}),n()}}}},{name:"quickUpload",type:"switch",useVisible(){const e=useIsFileField();return!useIsFormReadPretty()&&e},useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{dn:i,refresh:n}=useDesignable();return{title:t("Quick upload"),checked:((e=r["x-component-props"])==null?void 0:e.quickUpload)!==!1,onChange(l){const a={"x-uid":r["x-uid"]};o.componentProps.quickUpload=l,r["x-component-props"]=r["x-component-props"]||{},r["x-component-props"].quickUpload=l,a["x-component-props"]=r["x-component-props"],i.emit("patch",{schema:a}),n()}}}},{name:"selectFile",type:"switch",useVisible(){const e=useIsFileField();return!useIsFormReadPretty()&&e},useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{dn:i,refresh:n}=useDesignable();return{title:t("Select file"),checked:((e=r["x-component-props"])==null?void 0:e.selectFile)!==!1,onChange(l){const a={"x-uid":r["x-uid"]};o.componentProps.selectFile=l,r["x-component-props"]=r["x-component-props"]||{},r["x-component-props"].selectFile=l,a["x-component-props"]=r["x-component-props"],i.emit("patch",{schema:a}),n()}}}},{name:"validationRules",type:"modal",useComponentProps(){const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_react.useField)(),o=(0,import_react.useFieldSchema)(),{dn:r,refresh:i}=useDesignable(),n=useValidateSchema(),{getCollectionJoinField:l}=useCollectionManager_deprecated(),{getField:a}=useCollection_deprecated(),c=a(o.name)||l(o["x-collection-field"]);return{title:e("Set validation rules"),components:{ArrayCollapse:import_antd_v5.ArrayCollapse,FormLayout:import_antd_v5.FormLayout},schema:{type:"object",title:e("Set validation rules"),properties:{rules:{type:"array",default:o==null?void 0:o["x-validator"],"x-component":"ArrayCollapse","x-decorator":"FormItem","x-component-props":{accordion:!0},maxItems:3,items:{type:"object","x-component":"ArrayCollapse.CollapsePanel","x-component-props":{header:'{{ t("Validation rule") }}'},properties:{index:{type:"void","x-component":"ArrayCollapse.Index"},layout:{type:"void","x-component":"FormLayout","x-component-props":{labelStyle:{marginTop:"6px"},labelCol:8,wrapperCol:16},properties:k(f({},n),{message:{type:"string",title:'{{ t("Error message") }}',"x-decorator":"FormItem","x-component":"Input.TextArea","x-component-props":{autoSize:{minRows:2,maxRows:2}}}})},remove:{type:"void","x-component":"ArrayCollapse.Remove"},moveUp:{type:"void","x-component":"ArrayCollapse.MoveUp"},moveDown:{type:"void","x-component":"ArrayCollapse.MoveDown"}}},properties:{add:{type:"void",title:'{{ t("Add validation rule") }}',"x-component":"ArrayCollapse.Addition","x-reactions":{dependencies:["rules"],fulfill:{state:{disabled:"{{$deps[0].length >= 3}}"}}}}}}}},onSubmit(u){var d;const m=[];for(const g of u.rules)m.push(import_lodash.default.pickBy(g,import_lodash.default.identity));const p={"x-uid":o["x-uid"]};if(["percent"].includes(c==null?void 0:c.interface))for(const g of m)(g.maxValue||g.minValue)&&(g.percentMode=!0),g.percentFormat&&(g.percentFormats=!0);const h=import_lodash.default.concat([],((d=c==null?void 0:c.uiSchema)==null?void 0:d["x-validator"])||[],m);t.validator=h,o["x-validator"]=m,p["x-validator"]=m,r.emit("patch",{schema:p}),i()}}},useVisible(){const{form:e}=useFormBlockContext(),t=useIsFormReadPretty(),o=useValidateSchema();return e&&!t&&o}},{name:"defaultValue",Component:SchemaSettingsDefaultValue,useVisible(){const{isAllowToSetDefaultValue:e}=useIsAllowToSetDefaultValue();return e()}},{name:"dataScope",Component:SchemaSettingsDataScope,useVisible(){const e=useIsSelectFieldMode(),t=useIsFormReadPretty();return e&&!t},useComponentProps(){var e,t,o;const{getCollectionJoinField:r,getAllCollectionsInheritChain:i}=useCollectionManager_deprecated(),{getField:n}=useCollection_deprecated(),{form:l}=useFormBlockContext(),a=useRecord(),c=(0,import_react.useField)(),u=(0,import_react.useFieldSchema)(),d=n(u.name)||r(u["x-collection-field"]),m=useVariables$1(),p=useLocalVariables$1(),{dn:h}=useDesignable();return{collectionName:d==null?void 0:d.target,defaultFilter:((o=(t=(e=u==null?void 0:u["x-component-props"])==null?void 0:e.service)==null?void 0:t.params)==null?void 0:o.filter)||{},form:l,dynamicComponent:g=>(0,import_jsx_runtime.jsx)(VariableInput,k(f({},g),{form:l,collectionField:g.collectionField,record:a,shouldChange:getShouldChange({collectionField:g.collectionField,variables:m,localVariables:p,getAllCollectionsInheritChain:i})})),onSubmit:({filter:g})=>{g=removeNullCondition(g),import_lodash.default.set(c.componentProps,"service.params.filter",g),u["x-component-props"]=c.componentProps,h.emit("patch",{schema:{"x-uid":u["x-uid"],"x-component-props":c.componentProps}})}}}},{name:"sortingRule",Component:SchemaSettingsSortingRule,useVisible(){const e=useIsSelectFieldMode(),t=useIsFormReadPretty();return e&&!t}},{name:"fieldMode",type:"select",useComponentProps(){const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_react.useField)(),o=(0,import_react.useFieldSchema)(),{dn:r}=useDesignable(),i=useFieldModeOptions(),n=useIsAddNewForm(),l=useFieldMode();return{title:e("Field component"),options:i,value:l,onChange(a){const c={"x-uid":o["x-uid"]};o["x-component-props"]=o["x-component-props"]||{},o["x-component-props"].mode=a,c["x-component-props"]=o["x-component-props"],t.componentProps=t.componentProps||{},t.componentProps.mode=a,isSubMode(o)&&n&&(c.default=null,o.default=null,t.setInitialValue(null),t.setValue(null)),r.emit("patch",{schema:c}),r.refresh()}}},useVisible:useShowFieldMode},{name:"popupSize",type:"select",useComponentProps(){var e,t;const{t:o}=(0,import_react_i18next.useTranslation)(),r=(0,import_react.useField)(),i=(0,import_react.useFieldSchema)(),{dn:n}=useDesignable();return{title:o("Popup size"),options:[{label:o("Small"),value:"small"},{label:o("Middle"),value:"middle"},{label:o("Large"),value:"large"}],value:(t=(e=i==null?void 0:i["x-component-props"])==null?void 0:e.openSize)!=null?t:"middle",onChange:l=>{r.componentProps.openSize=l,i["x-component-props"]=r.componentProps,n.emit("patch",{schema:{"x-uid":i["x-uid"],"x-component-props":i["x-component-props"]}}),n.refresh()}}},useVisible(){var e;const t=useShowFieldMode(),o=((e=(0,import_react.useFieldSchema)()["x-component-props"])==null?void 0:e.mode)==="Picker";return t&&o}},allowAddNew,{name:"addMode",type:"select",useVisible(){const e=useIsFieldReadPretty(),t=useIsAssociationField(),o=useFieldMode();return!e&&t&&["Select"].includes(o)},useComponentProps(){var e;const{defaultOpenMode:t}=useOpenModeContext(),{t:o}=(0,import_react_i18next.useTranslation)(),r=(0,import_react.useField)(),i=(0,import_react.useFieldSchema)(),{dn:n,insertAdjacent:l}=useDesignable();return{title:o("Quick create"),options:[{label:o("None"),value:"none"},{label:o("Dropdown"),value:"quickAdd"},{label:o("Pop-up"),value:"modalAdd"}],value:((e=r.componentProps)==null?void 0:e.addMode)||"none",onChange(a){a==="modalAdd"&&(i.reduceProperties((u,d)=>d["x-component"]==="Action"?d:u,null)||l("afterBegin",{"x-action":"create","x-acl-action":"create",title:"{{t('Add new')}}","x-toolbar":"ActionSchemaToolbar","x-settings":"actionSettings:addNew","x-component":"Action","x-decorator":"ACLActionProvider","x-component-props":{openMode:t,type:"default",component:"CreateRecordAction"}}));const c={"x-uid":i["x-uid"]};i["x-component-props"]=i["x-component-props"]||{},i["x-component-props"].addMode=a,c["x-component-props"]=i["x-component-props"],r.componentProps=r.componentProps||{},r.componentProps.addMode=a,n.emit("patch",{schema:c}),n.refresh()}}}},{name:"multiple",type:"switch",useVisible(){const e=useIsAssociationField(),t=useIsShowMultipleSwitch();return e&&t()},useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{dn:i,refresh:n}=useDesignable();return{title:t("Allow multiple"),checked:((e=r["x-component-props"])==null?void 0:e.multiple)===void 0?!0:r["x-component-props"].multiple,onChange(l){const a={"x-uid":r["x-uid"]};r["x-component-props"]=r["x-component-props"]||{},o.componentProps=o.componentProps||{},r["x-component-props"].multiple=l,o.componentProps.multiple=l,a["x-component-props"]=r["x-component-props"],i.emit("patch",{schema:a}),n()}}}},{name:"allowDissociate",type:"switch",useVisible(){var e;const t=useIsShowMultipleSwitch();return((e=(0,import_react.useFieldSchema)()["x-component-props"])==null?void 0:e.mode)==="Nester"&&t()},useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{dn:i,refresh:n}=useDesignable();return{title:t("Allow dissociate"),checked:((e=r["x-component-props"])==null?void 0:e.allowDissociate)!==!1,onChange(l){const a={"x-uid":r["x-uid"]};r["x-component-props"]=r["x-component-props"]||{},o.componentProps=o.componentProps||{},r["x-component-props"].allowDissociate=l,o.componentProps.allowDissociate=l,a["x-component-props"]=r["x-component-props"],i.emit("patch",{schema:a}),n()}}}},{name:"enableLink",type:"switch",useVisible(){const e=useTitleFieldOptions(),t=useIsFieldReadPretty(),o=useIsFileField(),r=(0,import_react.useFieldSchema)();return t&&e.length>0&&!o&&r["x-component"]==="CollectionField"},useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{dn:i}=useDesignable();return{title:t("Enable link"),checked:((e=r["x-component-props"])==null?void 0:e.enableLink)!==!1,onChange(n){r["x-component-props"]=k(f({},r==null?void 0:r["x-component-props"]),{enableLink:n}),o.componentProps.enableLink=n,i.emit("patch",{schema:{"x-uid":r["x-uid"],"x-component-props":f({},r==null?void 0:r["x-component-props"])}}),i.refresh()}}}},{name:"pattern",type:"select",useVisible(){const{form:e}=useFormBlockContext(),t=(0,import_react.useFieldSchema)();return e&&!(e!=null&&e.readPretty)&&!isPatternDisabled(t)},useComponentProps(){const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_react.useField)(),o=(0,import_react.useFieldSchema)(),{dn:r}=useDesignable();let i="editable";return o["x-disabled"]===!0&&(i="readonly"),o["x-read-pretty"]===!0&&(i="read-pretty"),{title:e("Pattern"),options:[{label:e("Editable"),value:"editable"},{label:e("Readonly"),value:"readonly"},{label:e("Easy-reading"),value:"read-pretty"}],value:i,onChange(n){const l={"x-uid":o["x-uid"]};switch(n){case"readonly":{o["x-read-pretty"]=!1,o["x-disabled"]=!0,l["x-read-pretty"]=!1,l["x-disabled"]=!0,t.readPretty=!1,t.disabled=!0,import_lodash.default.set(t,"initStateOfLinkageRules.pattern",getTempFieldState(!0,ActionType.ReadOnly));break}case"read-pretty":{o["x-read-pretty"]=!0,o["x-disabled"]=!1,l["x-read-pretty"]=!0,l["x-disabled"]=!1,t.readPretty=!0,import_lodash.default.set(t,"initStateOfLinkageRules.pattern",getTempFieldState(!0,ActionType.ReadPretty));break}default:{o["x-read-pretty"]=!1,o["x-disabled"]=!1,l["x-read-pretty"]=!1,l["x-disabled"]=!1,t.readPretty=!1,t.disabled=!1,import_lodash.default.set(t,"initStateOfLinkageRules.pattern",getTempFieldState(!0,ActionType.Editable));break}}r.emit("patch",{schema:l}),r.refresh()}}}},{name:"titleField",type:"select",useVisible(){const e=useTitleFieldOptions(),t=useIsAssociationField(),o=useFieldMode();return e.length>0&&t&&o!=="SubTable"},useComponentProps(){var e,t;const{t:o}=(0,import_react_i18next.useTranslation)(),r=(0,import_react.useField)(),i=(0,import_react.useFieldSchema)(),{dn:n}=useDesignable(),l=useTitleFieldOptions(),a=useCollectionField_deprecated();return{title:o("Title field"),options:l,value:(t=(e=r==null?void 0:r.componentProps)==null?void 0:e.fieldNames)==null?void 0:t.label,onChange(c){var u,d;const m={"x-uid":i["x-uid"]},p=k(f(f({},(d=(u=a==null?void 0:a.uiSchema)==null?void 0:u["x-component-props"])==null?void 0:d.fieldNames),r.componentProps.fieldNames),{label:c});i["x-component-props"]=i["x-component-props"]||{},i["x-component-props"].fieldNames=p,m["x-component-props"]=i["x-component-props"],r.componentProps.fieldNames=i["x-component-props"].fieldNames,n.emit("patch",{schema:m}),n.refresh()}}}},{name:"dateFormat",Component:SchemaSettingsDateFormat,useVisible(){const e=useFormItemCollectionField();return["datetime","createdAt","updatedAt"].includes(e==null?void 0:e.interface)},useComponentProps(){return{fieldSchema:(0,import_react.useFieldSchema)()}}},{name:"size",type:"select",useVisible(){const e=useIsFieldReadPretty(),t=useFormItemCollectionField(),{getCollection:o}=useCollectionManager_deprecated(),r=o(t==null?void 0:t.target),i=["attachment"].includes(t==null?void 0:t.interface)||(r==null?void 0:r.template)==="file";return e&&i},useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{dn:i}=useDesignable();return{title:t("Size"),options:[{label:t("Large"),value:"large"},{label:t("Default"),value:"default"},{label:t("Small"),value:"small"}],value:((e=o==null?void 0:o.componentProps)==null?void 0:e.size)||"default",onChange(n){const l={"x-uid":r["x-uid"]};r["x-component-props"]=r["x-component-props"]||{},r["x-component-props"].size=n,l["x-component-props"]=r["x-component-props"],o.componentProps=o.componentProps||{},o.componentProps.size=n,i.emit("patch",{schema:l}),i.refresh()}}}},{name:"tagColor",type:"select",useVisible(){const e=useIsAssociationField(),t=useFieldMode();return e&&["Tag"].includes(t)},useComponentProps(){var e,t;const{t:o}=(0,import_react_i18next.useTranslation)(),r=(0,import_react.useField)(),i=(0,import_react.useFieldSchema)(),{dn:n}=useDesignable(),l=useFormItemCollectionField(),a=useColorFields((e=l==null?void 0:l.target)!=null?e:l==null?void 0:l.targetCollection);return{title:o("Tag color field"),options:a,value:(t=r==null?void 0:r.componentProps)==null?void 0:t.tagColorField,onChange(c){const u={"x-uid":i["x-uid"]};i["x-component-props"]=i["x-component-props"]||{},i["x-component-props"].tagColorField=c,u["x-component-props"]=i["x-component-props"],r.componentProps.tagColorField=c,n.emit("patch",{schema:u}),n.refresh()}}}},{name:"divider",type:"divider",useVisible(){return!!useFormItemCollectionField()}},{name:"remove",type:"remove",useComponentProps(){const{t:e}=(0,import_react_i18next.useTranslation)();return{removeParentsIfNoChildren:!0,confirm:{title:e("Delete field")},breakRemoveOn:{"x-component":"Grid"}}}}]});function useIsAddNewForm(){const e=useRecord();return import_lodash.default.isEmpty(import_lodash.default.omit(e,["__parent","__collectionName"]))}function isFileCollection$1(e){return(e==null?void 0:e.template)==="file"}function useIsFormReadPretty(){const{form:e}=useFormBlockContext();return!!(e!=null&&e.readPretty)}function useIsFieldReadPretty(){const{fieldSchema:e}=useColumnSchema$1();return(0,import_react.useField)().readPretty||(e==null?void 0:e["x-read-pretty"])}function useFormItemCollectionField(){const{getCollectionJoinField:e}=useCollectionManager_deprecated(),{getField:t}=useCollection_deprecated(),o=(0,import_react.useFieldSchema)(),{collectionField:r}=useColumnSchema$1(),i=o?t(o.name)||e(o["x-collection-field"]):null;return o?i||r:null}function useIsAssociationField(){const e=useFormItemCollectionField();return e&&["hasOne","hasMany","belongsTo","belongsToMany","belongsToArray"].includes(e.type)}function useIsFileField(){const e=useCollectionManager(),t=useFormItemCollectionField(),o=e.getCollection(t==null?void 0:t.target);return isFileCollection$1(o)}function useFieldMode(){var e;const t=(0,import_react.useField)(),o=useIsFileField();return((e=t==null?void 0:t.componentProps)==null?void 0:e.mode)||(o?"FileManager":"Select")}function useIsSelectFieldMode(){const e=useFieldMode();return useIsAssociationField()&&e==="Select"}function useValidateSchema(){var e;const{getInterface:t}=useCollectionManager_deprecated(),o=(0,import_react.useFieldSchema)(),r=useFormItemCollectionField(),i=t(r==null?void 0:r.interface);return(e=i==null?void 0:i.validateSchema)==null?void 0:e.call(i,o)}function useShowFieldMode(){const e=(0,import_react.useFieldSchema)(),t=useFieldModeOptions(),o=e["x-component"]==="TableField";return useIsAssociationField()&&t&&!o}function useTitleFieldOptions(){var e;const{getCollectionFields:t,isTitleField:o}=useCollectionManager_deprecated(),r=useCompile(),i=useFormItemCollectionField();return(i!=null&&i.target?t(i==null?void 0:i.target):(e=t(i==null?void 0:i.targetCollection))!=null?e:[]).filter(n=>o(n)).map(n=>{var l;return{value:n==null?void 0:n.name,label:r((l=n==null?void 0:n.uiSchema)==null?void 0:l.title)||(n==null?void 0:n.name)}})}function useFieldComponentName(){var e,t,o,r;const{fieldSchema:i,collectionField:n}=useColumnSchema$1(),l=(0,import_react.useField)(),a=useIsFileField(),c=(0,import_react.useFieldSchema)(),u=useCollectionField(),d=i||c,m=n||u,p={AssociationField:"Select"},h=((e=d==null?void 0:d["x-component-props"])==null?void 0:e.mode)||((t=l==null?void 0:l.componentProps)==null?void 0:t.mode)||(a?"FileManager":"")||((o=d==null?void 0:d["x-component-props"])==null?void 0:o.component)||((r=m==null?void 0:m.uiSchema)==null?void 0:r["x-component"]);return p[h]||h}const SchemaSettingsChildErrorFallback=e=>{const t=e,{title:o}=t,r=Y(t,["title"]);return(0,import_jsx_runtime.jsx)(SchemaSettingsItem,{title:o,children:(0,import_jsx_runtime.jsx)(ErrorFallback.Modal,f({},r))})},getFallbackComponent=import_lodash.default.memoize(e=>t=>(0,import_jsx_runtime.jsx)(SchemaSettingsChildErrorFallback,k(f({},t),{title:e}))),SchemaSettingsChildren=e=>{const{children:t}=e,{visible:o}=useSchemaSettings(),r=(0,import_react2.useRef)(!1),i=useFieldComponentName();return(0,import_react2.useEffect)(()=>{o&&(r.current=!0)},[o]),!o&&!r.current||!t||t.length===0?null:(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:t.sort((n,l)=>(n.sort||0)-(l.sort||0)).map(n=>{const l=`${i?i+"-":""}${n==null?void 0:n.name}`;return(0,import_jsx_runtime.jsx)(import_react_error_boundary.ErrorBoundary,{FallbackComponent:getFallbackComponent(l),onError:console.log,children:(0,import_jsx_runtime.jsx)(SchemaSettingsChild,f({},n))},l)})})},useChildrenDefault$1=()=>{},useComponentPropsDefault$1=()=>{},useVisibleDefault$1=()=>!0,SchemaSettingsChild=e=>{const{useVisible:t=useVisibleDefault$1,useChildren:o=useChildrenDefault$1,useComponentProps:r=useComponentPropsDefault$1,type:i,Component:n,children:l,hideIfNoChildren:a,componentProps:c}=e,u={item:SchemaSettingsItem,itemGroup:SchemaSettingsItemGroup,subMenu:SchemaSettingsSubMenu,divider:SchemaSettingsDivider,remove:SchemaSettingsRemove,select:SchemaSettingsSelectItem,cascader:SchemaSettingsCascaderItem,switch:SchemaSettingsSwitchItem,popup:SchemaSettingsPopupItem,actionModal:SchemaSettingsActionModalItem,modal:SchemaSettingsModalItem},d=o(),m=r(),p=useFindComponent(),h=(0,import_react2.useMemo)(()=>{const v=[...d||[],...l||[]];return v.length===0?void 0:v},[d,l]),g=t(),x=(0,import_react2.useMemo)(()=>!n&&i&&u[i]?u[i]:n,[i,n]);if(!g||!i&&!n)return null;const _=p(x);return!_||a&&!h?null:(0,import_jsx_runtime.jsx)(SchemaSettingItemContext.Provider,{value:e,children:(0,import_jsx_runtime.jsx)(_,k(f(f({},c),m),{children:Array.isArray(h)&&h.length>0&&(0,import_jsx_runtime.jsx)(SchemaSettingsChildren,{children:h})}))})},useGetAriaLabelOfDesigner=()=>{const e=(0,import_react.useFieldSchema)(),{name:t}=useCollection_deprecated();return{getAriaLabel:(0,import_react2.useCallback)((o,r)=>{if(!e)return`designer-${o}-${r}`;const i=e["x-component"],n=typeof i=="string"?i:(i==null?void 0:i.displayName)||(i==null?void 0:i.name),l=e["x-designer"]?`-${e["x-designer"]}`:"",a=e["x-settings"]?`-${e["x-settings"]}`:"",c=e["x-collection-field"]?`-${e["x-collection-field"]}`:"",u=t?`-${t}`:"";return r=r?`-${r}`:"",`designer-${o}-${n}${l}${a}${u}${c}${r}`},[e,t])}},SchemaSettingsIcon=import_react2.default.memo(e=>{const{name:t}=e,{getAriaLabel:o}=useGetAriaLabelOfDesigner(),r=(0,import_react2.useMemo)(()=>({cursor:"pointer",fontSize:12}),[]);return(0,import_jsx_runtime.jsx)(import_icons.MenuOutlined,{role:"button",style:r,"aria-label":o("schema-settings",t)})});SchemaSettingsIcon.displayName="SchemaSettingsIcon";const SchemaSettingsWrapper=import_react2.default.memo(e=>{const t=e,{items:o,Component:r=SchemaSettingsIcon,name:i,componentProps:n,style:l}=t,a=Y(t,["items","Component","name","componentProps","style"]),{dn:c}=useDesignable(),u=(0,import_react.useField)(),d=(0,import_react.useFieldSchema)(),m=(0,import_react2.useMemo)(()=>f({options:e,style:l},n),[n,e,l]);return(0,import_jsx_runtime.jsx)(SchemaSettingsDropdown,k(f({title:import_react2.default.createElement(r,m),dn:c,field:u,fieldSchema:d},a),{children:(0,import_jsx_runtime.jsx)(SchemaSettingsChildren,{children:o})}))});SchemaSettingsWrapper.displayName="SchemaSettingsWrapper";function useSchemaSettingsRender(e,t){const o=useApp(),r=(0,import_react2.useMemo)(()=>typeof e=="object"?e:o.schemaSettingsManager.get(e),[o.schemaSettingsManager,e]);return e?r?{exists:!0,render:(i={})=>import_react2.default.createElement(SchemaSettingsWrapper,f(f(f({},r.options),t),i))}:(console.error(`[nocobase]: SchemaSettings "${e}" not found`),{exists:!1,render:()=>null}):{exists:!1,render:()=>null}}const BlockTemplateContext=(0,import_react2.createContext)({componentNamePrefix:""}),BlockTemplateProvider=e=>(0,import_jsx_runtime.jsx)(BlockTemplateContext.Provider,{value:k(f({},e),{componentNamePrefix:e.componentNamePrefix||""}),children:e.children}),useBlockTemplateContext=()=>(0,import_react2.useContext)(BlockTemplateContext),itemsMerge=e=>e,gridRowColWrap=e=>({type:"void","x-component":"Grid.Row",properties:{[(0,import_shared.uid)()]:{type:"void","x-component":"Grid.Col",properties:{[(e==null?void 0:e.name)||(0,import_shared.uid)()]:e}}}}),removeTableColumn=(e,t)=>{t(e.parent)},removeGridFormItem=(e,t)=>{t(e,{removeParentsIfNoChildren:!0,breakRemoveOn:{"x-component":"Grid"}})},useRemoveGridFormItem=()=>{const e=(0,import_react.useForm)();return(t,o)=>{var r;o(t,{removeParentsIfNoChildren:!0,breakRemoveOn:{"x-component":"Grid"}}),(r=e.values)==null||delete r[t.name]}},findTableColumn=(e,t,o,r)=>e.reduceProperties((i,n)=>n[t]===o&&(!r||n.name===r)?n:n.reduceProperties((a,c)=>c[t]===o&&(!r||c.name===r)?c:a)||i),quickEditField$1=["attachment","textarea","markdown","json","richText","polygon","circle","point","lineString","vditor"];function useTableColumnInitializerFields(){const{name:e,currentFields:t=[]}=useCollection_deprecated(),{getInterface:o,getCollection:r}=useCollectionManager_deprecated(),i=(0,import_react.useFieldSchema)()["x-component"]==="AssociationField.SubTable",n=(0,import_react.useForm)(),l=i?n.readPretty:!0;return t.filter(a=>!a.collectionName||a.collectionName===e).filter(a=>(a==null?void 0:a.interface)&&(a==null?void 0:a.interface)!=="subTable"&&!(a!=null&&a.treeChildren)).map(a=>{var c,u,d,m;const p=o(a.interface),h=(a==null?void 0:a.target)&&((c=r(a==null?void 0:a.target))==null?void 0:c.template)==="file",g=((u=a==null?void 0:a.uiSchema)==null?void 0:u["x-component"])==="Preview",x={name:a.name,"x-collection-field":`${e}.${a.name}`,"x-component":"CollectionField","x-component-props":h?{fieldNames:{label:"preview",value:"id"}}:g?{size:"small"}:{},"x-read-pretty":l||((d=a.uiSchema)==null?void 0:d["x-read-pretty"]),"x-decorator":i?quickEditField$1.includes(a.interface)||h?"QuickEdit":"FormItem":null,"x-decorator-props":{labelStyle:{display:"none"}}};return{type:"item",name:a.name,title:((m=a==null?void 0:a.uiSchema)==null?void 0:m.title)||a.name,Component:"TableCollectionFieldInitializer",find:findTableColumn,remove:removeTableColumn,schemaInitialize:_=>{var v;(v=p==null?void 0:p.schemaInitialize)==null||v.call(p,_,{field:a,readPretty:l,block:"Table",targetCollection:r(a.target)})},field:a,schema:x}})}function useAssociatedTableColumnInitializerFields(){var e;const{fields:t}=useCollection_deprecated(),{t:o}=(0,import_react_i18next.useTranslation)(),{getInterface:r,getCollectionFields:i,getCollection:n}=useCollectionManager_deprecated();return(e=t==null?void 0:t.filter(l=>["o2o","oho","obo","m2o"].includes(l.interface)))==null?void 0:e.map(l=>getGroupItemForTable({getCollectionFields:i,field:l,getInterface:r,getCollection:n,schemaName:l.name,maxDepth:2,depth:1,t:o}))}function getGroupItemForTable({getCollectionFields:e,field:t,getInterface:o,getCollection:r,schemaName:i,maxDepth:n,depth:l,t:a}){var c,u;const d=e(t.target),m=(c=d==null?void 0:d.filter(h=>(h==null?void 0:h.interface)&&!["subTable"].includes(h==null?void 0:h.interface)&&!(h!=null&&h.treeChildren)))==null?void 0:c.map(h=>{var g;const x=o(h.interface),_=`${i}.${h.name}`,v={name:_,"x-component":"CollectionField","x-read-pretty":!0,"x-collection-field":`${t.target}.${h.name}`,"x-component-props":{}};return{type:"item",key:`${t.target}_${h.name}_${_}`,name:_,title:((g=h==null?void 0:h.uiSchema)==null?void 0:g.title)||h.name,Component:"TableCollectionFieldInitializer",find:findTableColumn,remove:removeTableColumn,schemaInitialize:b=>{var C;(C=x==null?void 0:x.schemaInitialize)==null||C.call(x,b,{field:h,readPretty:!0,block:"Table",targetCollection:r(t.target)})},field:h,schema:v}}),p=[{type:"itemGroup",key:`${t.target}_${i}_displayFields`,name:`${i}-displayCollectionFields`,title:a("Display fields"),children:m}];if(l<n){const h=d==null?void 0:d.filter(g=>["o2o","oho","obo","m2o"].includes(g.interface)).map(g=>getGroupItemForTable({getCollectionFields:e,field:g,getInterface:o,getCollection:r,schemaName:`${i}.${g.name}`,maxDepth:n,depth:l+1,t:a}));if(h.length){const g={type:"itemGroup",key:`${t.target}_${i}_associationFields`,name:`${i}-associationFields`,title:a("Display association fields"),children:h};p.push(g)}}return{type:"subMenu",key:`${t.target}_${i}_submenu`,name:i,title:(u=t.uiSchema)==null?void 0:u.title,children:p}}function useInheritsTableColumnInitializerFields(){const{name:e}=useCollection_deprecated(),{getInterface:t,getInheritCollections:o,getCollection:r,getParentCollectionFields:i}=useCollectionManager_deprecated(),n=(0,import_react.useFieldSchema)()["x-component"]==="AssociationField.SubTable",l=(0,import_react.useForm)(),a=n?l.readPretty:!0,c=o(e);return c==null?void 0:c.map(u=>{const d=i(u,e),m=r(u);return{[m==null?void 0:m.title]:d==null?void 0:d.filter(p=>p==null?void 0:p.interface).map(p=>{var h,g,x,_;const v=t(p.interface),b=(p==null?void 0:p.target)&&((h=r(p==null?void 0:p.target))==null?void 0:h.template)==="file",C={name:`${p.name}`,"x-component":"CollectionField","x-read-pretty":a||((g=p.uiSchema)==null?void 0:g["x-read-pretty"]),"x-collection-field":`${e}.${p.name}`,"x-component-props":b?{fieldNames:{label:"preview",value:"id"}}:{},"x-decorator":n?quickEditField$1.includes(p.interface)||b?"QuickEdit":"FormItem":null,"x-decorator-props":{labelStyle:{display:"none"}}};return{name:((x=p==null?void 0:p.uiSchema)==null?void 0:x.title)||p.name,type:"item",title:((_=p==null?void 0:p.uiSchema)==null?void 0:_.title)||p.name,Component:"TableCollectionFieldInitializer",find:findTableColumn,remove:removeTableColumn,schemaInitialize:y=>{var S;(S=v==null?void 0:v.schemaInitialize)==null||S.call(v,y,{field:p,readPretty:!0,block:"Table",targetCollection:r(p==null?void 0:p.target)})},field:p,schema:C}})}})}const useFormItemInitializerFields=e=>{var t,o;const{name:r,currentFields:i}=useCollection_deprecated(),{getInterface:n,getCollection:l}=useCollectionManager_deprecated(),a=(0,import_react.useForm)(),{readPretty:c=a.readPretty,block:u="Form"}=e||{},{fieldSchema:d}=useActionContext(),m=d==null?void 0:d["x-action"];return(o=(t=i.filter(p=>!p.collectionName||p.collectionName===r))==null?void 0:t.filter(p=>(p==null?void 0:p.interface)&&!(p!=null&&p.treeChildren)))==null?void 0:o.map(p=>{var h,g,x,_,v;const b=n(p.interface),C=l(p.target),y=(p==null?void 0:p.target)&&((h=l(p==null?void 0:p.target))==null?void 0:h.template)==="file",S=C,F=(x=(g=p==null?void 0:p.uiSchema)==null?void 0:g["x-component-props"])==null?void 0:x.fieldNames,j={type:"string",name:p.name,"x-toolbar":"FormItemSchemaToolbar","x-settings":"fieldSettings:FormItem","x-component":"CollectionField","x-decorator":"FormItem","x-collection-field":`${r}.${p.name}`,"x-component-props":y?{fieldNames:{label:"preview",value:"id"}}:S&&F?{fieldNames:k(f({},F),{label:(C==null?void 0:C.titleField)||F.label})}:{},"x-read-pretty":(_=p==null?void 0:p.uiSchema)==null?void 0:_["x-read-pretty"]},P={type:"item",name:p.name,title:((v=p==null?void 0:p.uiSchema)==null?void 0:v.title)||p.name,Component:"CollectionFieldInitializer",remove:removeGridFormItem,schemaInitialize:A=>{var T;(T=b==null?void 0:b.schemaInitialize)==null||T.call(b,A,{field:p,block:u,readPretty:c,action:m,targetCollection:C})},schema:j};return u=="Kanban"&&(P.find=(A,T,D)=>{const E=findSchema(A,"x-component",u);return findSchema(E,T,D)}),P})},useFilterFormItemInitializerFields=e=>{var t,o;const{name:r,currentFields:i}=useCollection_deprecated(),{getInterface:n,getCollection:l}=useCollectionManager_deprecated(),a=(0,import_react.useForm)(),{readPretty:c=a.readPretty,block:u="FilterForm"}=e||{},{snapshot:d,fieldSchema:m}=useActionContext(),p=m==null?void 0:m["x-action"];return(o=(t=i.filter(h=>!h.collectionName||h.collectionName===r))==null?void 0:t.filter(h=>{var g;return(h==null?void 0:h.interface)&&((g=n(h.interface))==null?void 0:g.filterable)}))==null?void 0:o.map(h=>{var g,x,_;const v=n(h.interface),b=l(h.target);let C={type:"string",name:h.name,required:!1,"x-toolbar":"FormItemSchemaToolbar","x-settings":"fieldSettings:FilterFormItem","x-component":"CollectionField","x-decorator":"FormItem","x-use-decorator-props":"useFormItemProps","x-collection-field":`${r}.${h.name}`,"x-component-props":{utc:!1}};return isAssocField(h)&&(C={type:"string",name:`${h.name}`,required:!1,"x-toolbar":"FormItemSchemaToolbar","x-settings":"fieldSettings:FilterFormItem","x-component":"CollectionField","x-decorator":"FormItem","x-use-decorator-props":"useFormItemProps","x-collection-field":`${r}.${h.name}`,"x-component-props":k(f({},(g=h.uiSchema)==null?void 0:g["x-component-props"]),{utc:!1})}),{name:((x=h==null?void 0:h.uiSchema)==null?void 0:x.title)||h.name,type:"item",title:((_=h==null?void 0:h.uiSchema)==null?void 0:_.title)||h.name,Component:"CollectionFieldInitializer",remove:removeGridFormItem,schemaInitialize:y=>{var S;(S=v==null?void 0:v.schemaInitialize)==null||S.call(v,y,{field:h,block:u,readPretty:c,action:p,targetCollection:b})},schema:C}})},useAssociatedFormItemInitializerFields=e=>{var t;const{name:o,fields:r}=useCollection_deprecated(),{getInterface:i,getCollectionFields:n,getCollection:l}=useCollectionManager_deprecated(),a=(0,import_react.useForm)(),{t:c}=(0,import_react_i18next.useTranslation)(),{readPretty:u=a.readPretty,block:d="Form"}=e||{},m=d==="Form"?["m2o","obo","oho"]:["o2o","oho","obo","m2o"];return(t=r==null?void 0:r.filter(p=>m.includes(p.interface)))==null?void 0:t.map(p=>getGroupItemForForm({getCollectionFields:n,field:p,getInterface:i,getCollection:l,readPretty:u,block:d,schemaName:p.name,maxDepth:2,depth:1,t:c}))},associationFieldToMenu=(e,t,o,r,i)=>{var n,l,a;if(e.target&&e.uiSchema){if(i.includes(e.target)||i.length>=1)return;const u=r(e.target);return u!=null&&u.length?{type:"subMenu",name:t,title:(n=e.uiSchema)==null?void 0:n.title,children:u.map(d=>associationFieldToMenu(d,`${t}.${d.name}`,o,r,[...i,e.target])).filter(Boolean)}:void 0}if(!e.uiSchema)return;const c={type:"string",name:t,"x-toolbar":"FormItemSchemaToolbar","x-settings":"fieldSettings:FilterFormItem","x-designer-props":{interface:e.interface},"x-component":"CollectionField","x-component-props":{utc:!1},"x-read-pretty":!1,"x-decorator":"FormItem","x-collection-field":`${o}.${t}`};return{name:((l=e.uiSchema)==null?void 0:l.title)||e.name,type:"item",title:((a=e.uiSchema)==null?void 0:a.title)||e.name,Component:"CollectionFieldInitializer",remove:removeGridFormItem,schema:c}},useFilterAssociatedFormItemInitializerFields=()=>{const{name:e,fields:t}=useCollection_deprecated(),{getCollectionFields:o}=useCollectionManager_deprecated(),r=["attachmentURL"];return t==null?void 0:t.filter(i=>i.target&&i.uiSchema&&!r.includes(i.interface)).map(i=>associationFieldToMenu(i,i.name,e,o,[])).filter(Boolean)},useInheritsFormItemInitializerFields=e=>{const{name:t}=useCollection_deprecated(),{getInterface:o,getInheritCollections:r,getCollection:i,getParentCollectionFields:n}=useCollectionManager_deprecated(),l=r(t);useActionContext();const a=(0,import_react.useForm)();return l==null?void 0:l.map(c=>{var u;const d=n(c,t),{readPretty:m=a.readPretty,block:p="Form",component:h="CollectionField"}=e||{},g=i(c);return{[g==null?void 0:g.title]:(u=d==null?void 0:d.filter(x=>x==null?void 0:x.interface))==null?void 0:u.map(x=>{var _,v,b,C;const y=o(x.interface),S=i(x.target),F={type:"string",name:x.name,title:((_=x==null?void 0:x.uiSchema)==null?void 0:_.title)||x.name,"x-toolbar":"FormItemSchemaToolbar","x-settings":"fieldSettings:FormItem","x-component":h,"x-decorator":"FormItem","x-collection-field":`${t}.${x.name}`,"x-component-props":{},"x-read-pretty":(v=x==null?void 0:x.uiSchema)==null?void 0:v["x-read-pretty"]};return{name:((b=x==null?void 0:x.uiSchema)==null?void 0:b.title)||x.name,type:"item",title:((C=x==null?void 0:x.uiSchema)==null?void 0:C.title)||x.name,Component:"CollectionFieldInitializer",remove:removeGridFormItem,schemaInitialize:j=>{var P;(P=y==null?void 0:y.schemaInitialize)==null||P.call(y,j,{field:x,block:p,readPretty:m,targetCollection:S})},schema:F}})}})},useFilterInheritsFormItemInitializerFields=e=>{const{name:t}=useCollection_deprecated(),{getInterface:o,getInheritCollections:r,getCollection:i,getParentCollectionFields:n}=useCollectionManager_deprecated(),l=r(t);useActionContext();const a=(0,import_react.useForm)();return l==null?void 0:l.map(c=>{var u;const d=n(c,t),{readPretty:m=a.readPretty,block:p="Form"}={};return{[i(c).title]:(u=d==null?void 0:d.filter(h=>{var g;return(h==null?void 0:h.interface)&&((g=o(h.interface))==null?void 0:g.filterable)}))==null?void 0:u.map(h=>{var g,x,_,v;const b=o(h.interface),C=i(h.target),y={type:"string",name:h.name,title:((g=h==null?void 0:h.uiSchema)==null?void 0:g.title)||h.name,required:!1,"x-toolbar":"FormItemSchemaToolbar","x-settings":"fieldSettings:FilterFormItem","x-component":"CollectionField","x-decorator":"FormItem","x-collection-field":`${t}.${h.name}`,"x-component-props":{utc:!1},"x-read-pretty":(x=h==null?void 0:h.uiSchema)==null?void 0:x["x-read-pretty"]};return{name:((_=h==null?void 0:h.uiSchema)==null?void 0:_.title)||h.name,type:"item",title:((v=h==null?void 0:h.uiSchema)==null?void 0:v.title)||h.name,Component:"CollectionFieldInitializer",remove:removeGridFormItem,schemaInitialize:S=>{var F;(F=b==null?void 0:b.schemaInitialize)==null||F.call(b,S,{field:h,block:p,readPretty:m,targetCollection:C})},schema:y}})}})},useCustomFormItemInitializerFields=e=>{var t;const{name:o,currentFields:r}=useCollection_deprecated(),{getInterface:i,getCollection:n}=useCollectionManager_deprecated(),l=(0,import_react.useForm)(),{readPretty:a=l.readPretty,block:c="Form"}=e||{},u=useRemoveGridFormItem();return(t=r==null?void 0:r.filter(d=>!d.inherit&&(d==null?void 0:d.interface)&&d.interface!=="snapshot"&&d.type!=="sequence"))==null?void 0:t.map(d=>{var m,p;const h=i(d.interface),g={type:"string",name:d.name,"x-toolbar":"FormItemSchemaToolbar","x-settings":"fieldSettings:FormItem","x-component":"AssignedField","x-decorator":"FormItem","x-collection-field":`${o}.${d.name}`};return{name:((m=d==null?void 0:d.uiSchema)==null?void 0:m.title)||d.name,type:"item",title:((p=d==null?void 0:d.uiSchema)==null?void 0:p.title)||d.name,Component:"CollectionFieldInitializer",remove:u,schemaInitialize:x=>{var _;(_=h==null?void 0:h.schemaInitialize)==null||_.call(h,x,{field:d,block:c,readPretty:a,targetCollection:n(d.target)})},schema:g}})},findSchema=(e,t,o,r)=>import_react.Schema.isSchemaInstance(e)?e.reduceProperties((i,n)=>{if(n[t]===o&&(!r||n.name===r))return n;if(n["x-component"]&&n["x-component"]!=="Action.Container"&&!n["x-component"].includes("AssociationField")){const l=findSchema(n,t,o,r);if(l)return l}return i}):null,removeSchema=(e,t)=>t(e),recursiveParent$1=e=>e.parent?e.parent["x-initializer"]?e.parent:recursiveParent$1(e.parent):null,useCurrentSchema=(e,t,o=findSchema,r=removeSchema,i)=>{const{removeActiveFieldName:n}=useFormActiveFields()||{},{form:l}=useFormBlockContext();let a=(0,import_react.useFieldSchema)();if(!(a!=null&&a["x-initializer"])&&(a==null?void 0:a["x-decorator"])==="FormItem"){const d=recursiveParent$1(a);d&&(a=d)}const{remove:c}=useDesignable(),u=o(a,t,e,i);return{schema:u,exists:!!u,remove(){n==null||n(u.name),l==null||l.query(new RegExp(`${u.parent.name}.${u.name}$`)).forEach(d=>{var m,p;(m=d.setValue)==null||m.call(d,void 0),(p=d.setInitialValue)==null||p.call(d,void 0)}),u&&r(u,c)}}},useRecordCollectionDataSourceItems=(e,t=null,o=null,r=null)=>{const{t:i}=(0,import_react_i18next.useTranslation)(),n=useCollection_deprecated(),{getTemplatesByCollection:l}=useSchemaTemplateManager(),a=l(n.dataSource,o||n.name).filter(m=>e&&m.componentName===e).filter(m=>["FormItem","ReadPrettyFormItem"].includes(e)||m.resourceName===r),c=Array.from(initializerMenusGenerators.values()).map(m=>m({collection:n,componentName:e})).filter(Boolean).flat();if(!a.length&&!c.length||isInTemplateSettingPage())return[];const u=0,d=[{type:"divider",name:"divider"}];return a.length&&d.push({key:`${o||e}_table_subMenu_${u}_copy`,type:"subMenu",name:"copy",title:i("Duplicate template"),children:a.map(m=>{const p=["FormItem","ReadPrettyFormItem"].includes(m==null?void 0:m.componentName)?`${m==null?void 0:m.name} ${i("(Fields only)")}`:m==null?void 0:m.name;return{type:"item",mode:"copy",name:n.name,template:m,item:t,title:p||i("Untitled")}})},{key:`${o||e}_table_subMenu_${u}_ref`,type:"subMenu",name:"ref",title:i("Reference template"),children:a.map(m=>{const p=["FormItem","ReadPrettyFormItem"].includes(m==null?void 0:m.componentName)?`${m==null?void 0:m.name} ${i("(Fields only)")}`:m==null?void 0:m.name;return{type:"item",mode:"reference",name:n.name,template:m,item:t,title:p||i("Untitled")}})}),c.length&&d.push({type:"subMenu",name:"inherited_templates",key:`associationFiled_${e}_table_subMenu_${u}_inherited`,title:i("Inherited template"),children:c}),[{key:`${o||e}_table_blank`,type:"item",name:n.name,title:i("Blank block"),item:t},...d]},useCollectionDataSourceItems=({name:e,componentName:t,filter:o=()=>!0,onlyCurrentDataSource:r=!1,showAssociationFields:i,filterDataSource:n,dataBlockInitializerProps:l,hideOtherRecordsInPopup:a,onClick:c,filterOtherRecordsCollection:u,currentText:d,otherText:m})=>{const{componentNamePrefix:p}=useBlockTemplateContext(),{t:h}=(0,import_react_i18next.useTranslation)(),g=useDataSourceManager(),x=useDataSourceKey(),_=useCollection(),v=useAssociationFields({componentName:p+t,filterCollections:o,showAssociationFields:i,componentNamePrefix:p,name:e}),b=useAssociationName();let C=g.getAllCollections({filterCollection:F=>r&&F.dataSource!==x?!1:o({collection:F}),filterDataSource:n});r&&(C=C.filter(F=>F.key===x));const{getTemplatesByCollection:y}=useSchemaTemplateManager(),S=(0,import_react2.useMemo)(()=>C.map(({key:F,displayName:j,collections:P})=>({name:F,label:j,type:"subMenu",children:[...getChildren({name:e,association:b,collections:P,componentName:p+t,searchValue:"",dataSource:F,getTemplatesByCollection:y,t:h,componentNamePrefix:p}).sort(A=>{const T=import_lodash.default.toArray((_==null?void 0:_.inherits)||[]);if(A.name===(_==null?void 0:_.name)||T.some(D=>D===A.name))return-1})]})),[C,_==null?void 0:_.inherits,_==null?void 0:_.name,t,y,h]);return i?(0,import_react2.useMemo)(()=>{var F;const j={name:"currentRecord",collectionName:_.name,dataSource:_.dataSource,Component:DataBlockInitializer,onClick(){},componentProps:k(f({},l),{icon:null,title:d||h("Current record"),name:"currentRecord",hideSearch:!1,hideChildrenIfSingleCollection:!0,items:S})},P={name:"associationRecords",Component:DataBlockInitializer,onClick(){},componentProps:k(f({},l),{icon:null,title:h("Associated records"),name:"associationRecords",hideSearch:!1,items:[{name:"associationFields",label:h("Association fields"),type:"subMenu",children:v}]})},A={ReadPrettyFormItem:"Details"},T={name:"otherRecords",Component:DataBlockInitializer,onClick(){},componentProps:k(f({},l),{hideSearch:!1,icon:null,title:m||h("Other records"),name:"otherRecords",showAssociationFields:!1,onlyCurrentDataSource:!1,hideChildrenIfSingleCollection:!1,fromOthersInPopup:!0,componentType:A[t]||t,filter({collection:R,associationField:M}){return u?u(R):!0},onClick(R){c(k(f({},R),{fromOthersInPopup:!0}))}})};let D;const E=v.length?P:null;if(S[0].children.length&&v.length)a?D=[j,E]:D=[j,E,T];else if(S[0].children.length)if(a){if(S[0].children.length<=1)return S[0].children=((F=S[0].children[0])==null?void 0:F.children)||[],S;D=[j]}else D=[j,T];else a?D=[E]:D=[E,T];return[{name:"records",label:h("Records"),type:"subMenu",children:D.filter(Boolean)}]},[v,_.dataSource,_.name,t,l,u,a,S,c,h]):S},createDetailsBlockSchema=e=>{const t=e,{formItemInitializers:o="details:configureFields",actionInitializers:r="detailsWithPaging:configureActions",collection:i,dataSource:n,association:l,template:a,settings:c,action:u="list"}=t,d=Y(t,["formItemInitializers","actionInitializers","collection","dataSource","association","template","settings","action"]),m=l||i;return{type:"void","x-acl-action":u==="get"?`${m}:get`:`${m}:view`,"x-decorator":"DetailsBlockProvider","x-decorator-props":f(f({dataSource:n,collection:i,association:l,readPretty:!0,action:u},u==="list"?{params:{pageSize:1}}:{}),d),"x-toolbar":"BlockSchemaToolbar","x-settings":c,"x-component":"CardItem",properties:{[(0,import_shared.uid)()]:{type:"void","x-component":"Details","x-use-component-props":"useDetailsBlockProps","x-read-pretty":!0,properties:f({[(0,import_shared.uid)()]:{type:"void","x-initializer":r,"x-component":"ActionBar","x-component-props":{style:{marginBottom:24}},properties:{}},grid:a||{type:"void","x-component":"Grid","x-initializer":o,properties:{}}},u==="list"?{pagination:{type:"void","x-component":"Pagination","x-use-component-props":"useDetailsPaginationProps"}}:{})}}}},createFormBlockSchema=e=>{const t=e,{formItemInitializers:o="form:configureFields",actionInitializers:r="createForm:configureActions",collection:i,resource:n,dataSource:l,association:a,action:c,actions:u={},"x-designer":d="FormV2.Designer",template:m,title:p,settings:h}=t,g=Y(t,["formItemInitializers","actionInitializers","collection","resource","dataSource","association","action","actions","x-designer","template","title","settings"]),x=n||a||i;return k(f({type:"void","x-acl-action-props":{skipScopeCheck:!c},"x-acl-action":c?`${x}:update`:`${x}:create`,"x-decorator":"FormBlockProvider","x-decorator-props":k(f({},g),{action:c,dataSource:l,resource:x,collection:i,association:a}),"x-toolbar":"BlockSchemaToolbar"},h?{"x-settings":h}:{"x-designer":d}),{"x-component":"CardItem","x-component-props":{title:p},properties:{[(0,import_shared.uid)()]:{type:"void","x-component":"FormV2","x-use-component-props":"useFormBlockProps",properties:{grid:m||{type:"void","x-component":"Grid","x-initializer":o,properties:{}},[(0,import_shared.uid)()]:{type:"void","x-initializer":r,"x-component":"ActionBar","x-component-props":{layout:"one-column",style:{marginTop:24}},properties:u}}}}})},createReadPrettyFormBlockSchema=e=>{const t=e,{formItemInitializers:o="details:configureFields",actionInitializers:r="details:configureActions",collection:i,association:n,dataSource:l,resource:a,template:c,settings:u}=t,d=Y(t,["formItemInitializers","actionInitializers","collection","association","dataSource","resource","template","settings"]),m=a||n||i;return{type:"void","x-acl-action":`${m}:get`,"x-decorator":"FormBlockProvider","x-decorator-props":f({resource:m,collection:i,association:n,dataSource:l,readPretty:!0,action:"get",useParams:"{{ useParamsFromRecord }}"},d),"x-toolbar":"BlockSchemaToolbar","x-settings":u,"x-component":"CardItem",properties:{[(0,import_shared.uid)()]:{type:"void","x-component":"FormV2","x-use-component-props":"useFormBlockProps","x-read-pretty":!0,properties:{[(0,import_shared.uid)()]:{type:"void","x-initializer":r,"x-component":"ActionBar","x-component-props":{style:{marginBottom:24}},properties:{}},grid:c||{type:"void","x-component":"Grid","x-initializer":o,properties:{}}}}}}},createTableBlockSchema=e=>{const t=e,{collection:o,rowKey:r,tableActionInitializers:i,tableColumnInitializers:n,tableActionColumnInitializers:l,tableBlockProvider:a,disableTemplate:c,dataSource:u,blockType:d,pageSize:m=20}=t,p=Y(t,["collection","rowKey","tableActionInitializers","tableColumnInitializers","tableActionColumnInitializers","tableBlockProvider","disableTemplate","dataSource","blockType","pageSize"]);return{type:"void","x-decorator":a??"TableBlockProvider","x-acl-action":`${o}:list`,"x-decorator-props":f({collection:o,dataSource:u,action:"list",params:{pageSize:m},rowKey:r,showIndex:!0,dragSort:!1,disableTemplate:c??!1,blockType:d},p),"x-toolbar":"BlockSchemaToolbar","x-settings":"blockSettings:table","x-component":"CardItem","x-filter-targets":[],properties:{actions:{type:"void","x-initializer":i??"table:configureActions","x-component":"ActionBar","x-component-props":{style:{marginBottom:"var(--nb-spacing)"}},properties:{}},[(0,import_shared.uid)()]:{type:"array","x-initializer":n??"table:configureColumns","x-component":"TableV2","x-use-component-props":"useTableBlockProps","x-component-props":{rowKey:"id",rowSelection:{type:"checkbox"}},properties:{actions:{type:"void",title:'{{ t("Actions") }}',"x-action-column":"actions","x-decorator":"TableV2.Column.ActionBar","x-component":"TableV2.Column","x-designer":"TableV2.ActionColumnDesigner","x-initializer":l??"table:configureItemActions",properties:{[(0,import_shared.uid)()]:{type:"void","x-decorator":"DndContext","x-component":"Space","x-component-props":{},properties:{}}}}}}}}},getChildren=({name:e,association:t,collections:o,dataSource:r,componentName:i,searchValue:n,getTemplatesByCollection:l,t:a,componentNamePrefix:c})=>{var u;return(u=o==null?void 0:o.filter(d=>{if(d.inherit)return!1;if(d.filterTargetKey){if([c+"Kanban",c+"FormItem"].includes(i)&&(d.template==="view"&&!d.writableView||d.template==="sql")||d.template==="file"&&[c+"Kanban",c+"FormItem",c+"Calendar"].includes(i))return!1;{const m=d.title||d.tableName;return m?m.toUpperCase().includes(n.toUpperCase())&&!(d!=null&&d.isThrough&&d!=null&&d.autoCreate):!1}}else return!1}))==null?void 0:u.map((d,m)=>{const p=d.title||d.tableName||d.label,h=l(r,d.name).filter(_=>{var v;const b=e!=="otherRecords"&&t;return b?_.resourceName!==t?!1:i&&_.componentName===i:!b&&(v=_==null?void 0:_.resourceName)!=null&&v.includes(".")?!1:i&&_.componentName===i}),g=Array.from(initializerMenusGenerators.values()).map(_=>_({item:d,index:m,componentName:i,association:t})).filter(Boolean).flat();if(!h.length&&!g.length||isInTemplateSettingPage())return{type:"item",name:d.name,title:p,dataSource:r};const x=[{type:"divider",name:"divider"}];return h.length&&x.push({key:`${i}_table_subMenu_${m}_copy`,type:"subMenu",name:"copy",dataSource:r,title:a("Duplicate template"),children:h.map(_=>{const v=[c+"FormItem",c+"ReadPrettyFormItem"].includes(_==null?void 0:_.componentName)?`${_==null?void 0:_.name} ${a("(Fields only)")}`:_==null?void 0:_.name;return{type:"item",mode:"copy",name:d.name,template:_,dataSource:r,title:v||a("Untitled")}})},{key:`${i}_table_subMenu_${m}_ref`,type:"subMenu",name:"ref",dataSource:r,title:a("Reference template"),children:h.map(_=>{const v=[c+"FormItem",c+"ReadPrettyFormItem"].includes(_==null?void 0:_.componentName)?`${_==null?void 0:_.name} ${a("(Fields only)")}`:_==null?void 0:_.name;return{type:"item",mode:"reference",name:d.name,template:_,dataSource:r,title:v||a("Untitled")}})}),g.length&&x.push({type:"subMenu",name:"inherited_templates",key:`associationFiled_${i}_table_subMenu_${m}_inherited`,dataSource:r,title:a("Inherited template"),children:g}),{key:`${i}_table_subMenu_${m}`,type:"subMenu",name:`${d.name}_${m}`,title:p,dataSource:r,children:[{type:"item",name:d.name,dataSource:r,title:a("Blank block")},...x]}})};function getGroupItemForForm({getCollectionFields:e,field:t,getInterface:o,getCollection:r,readPretty:i,block:n,maxDepth:l,depth:a,schemaName:c,t:u}){var d,m;const p=e(t.target),h=(d=p==null?void 0:p.filter(x=>(x==null?void 0:x.interface)&&!["subTable"].includes(x==null?void 0:x.interface)&&!x.treeChildren))==null?void 0:d.map(x=>{var _,v;const b=o(x.interface),C=(t==null?void 0:t.target)&&((_=r(t==null?void 0:t.target))==null?void 0:_.template)==="file",y=`${c}.${x.name}`,S={type:"string",name:y,"x-toolbar":"FormItemSchemaToolbar","x-settings":"fieldSettings:FormItem","x-component":"CollectionField","x-read-pretty":i,"x-component-props":{"pattern-disable":n==="Form"&&i,fieldNames:C?{label:"preview",value:"id"}:void 0},"x-decorator":"FormItem","x-collection-field":`${t.target}.${x.name}`};return{name:y,type:"item",title:((v=x==null?void 0:x.uiSchema)==null?void 0:v.title)||x.name,Component:"CollectionFieldInitializer",remove:removeGridFormItem,schemaInitialize:F=>{var j;(j=b==null?void 0:b.schemaInitialize)==null||j.call(b,F,{field:x,block:n,readPretty:i,targetCollection:r(t.target)})},schema:S}}),g=[{type:"itemGroup",name:`${c}-displayCollectionFields`,title:u("Display fields"),children:h}];if(a<l){const x=p==null?void 0:p.filter(_=>["o2o","oho","obo","m2o"].includes(_.interface)).map(_=>getGroupItemForForm({getCollectionFields:e,field:_,getInterface:o,getCollection:r,schemaName:`${c}.${_.name}`,readPretty:i,block:n,maxDepth:l,depth:a+1,t:u}));if(x.length){const _={type:"itemGroup",name:`${c}-associationFields`,title:u("Display association fields"),children:x};g.push(_)}}return{type:"subMenu",name:`${c}.${t.name}`,title:(m=t.uiSchema)==null?void 0:m.title,children:g}}function useAssociationFields({componentName:e,filterCollections:t,showAssociationFields:o,componentNamePrefix:r,name:i}){const n=(0,import_react.useFieldSchema)(),{getCollectionFields:l}=useCollectionManager_deprecated(),a=useCollection_deprecated();useCollectionManager();const c=useDataSourceKey(),{getTemplatesByCollection:u}=useSchemaTemplateManager(),{t:d}=(0,import_react_i18next.useTranslation)(),m=useCompile();return(0,import_react2.useMemo)(()=>{if(!o)return[];let p=[];if(n["x-initializer"])p=a.fields;else{const h=recursiveParent$1(n.parent);h&&(p=l(h))}return p.filter(h=>["linkTo","subTable","o2m","m2m","obo","oho","o2o","m2o"].includes(h.interface)).filter(h=>t({associationField:h})).map((h,g)=>{const x=m(h.uiSchema.title||h.name),_=u(c,h.target).filter(y=>y.resourceName!==`${h.collectionName}.${h.name}`?!1:e===r+"ReadPrettyFormItem"?["hasOne","belongsTo"].includes(h.type)?y.componentName===r+"ReadPrettyFormItem":y.componentName===r+"Details":y.componentName===e),v="associationFiled_table_subMenu",b=Array.from(initializerMenusGenerators.values()).map(y=>y({collection:a,index:g,field:h,componentName:e,keyPrefix:v,name:i})).filter(Boolean).flat();if(!_.length&&!b.length||isInTemplateSettingPage())return{type:"item",name:`${h.collectionName}.${h.name}`,collectionName:h.target,title:x,dataSource:c,associationField:h};const C=[{type:"divider",name:"divider"}];return _.length&&C.push({key:`associationFiled_${e}_table_subMenu_${g}_copy`,type:"subMenu",name:"copy",dataSource:c,title:d("Duplicate template"),children:_.map(y=>{const S=[r+"FormItem",r+"ReadPrettyFormItem"].includes(y==null?void 0:y.componentName)?`${y==null?void 0:y.name} ${d("(Fields only)")}`:y==null?void 0:y.name;return{type:"item",mode:"copy",name:`${h.collectionName}.${h.name}`,collectionName:h.target,template:y,dataSource:c,title:S||d("Untitled"),associationField:h}})},{key:`associationFiled_${e}_table_subMenu_${g}_ref`,type:"subMenu",name:"ref",dataSource:c,title:d("Reference template"),children:_.map(y=>{const S=[r+"FormItem",r+"ReadPrettyFormItem"].includes(y==null?void 0:y.componentName)?`${y==null?void 0:y.name} ${d("(Fields only)")}`:y==null?void 0:y.name;return{type:"item",mode:"reference",name:`${h.collectionName}.${h.name}`,collectionName:h.target,template:y,dataSource:c,title:S||d("Untitled"),associationField:h}})}),b.length&&C.push({type:"subMenu",name:"inherited_templates",key:`associationFiled_${e}_table_subMenu_${g}_inherited`,dataSource:c,title:d("Inherited template"),children:b}),{key:`associationFiled_${e}_table_subMenu_${g}`,type:"subMenu",name:`${h.target}_${g}`,title:x,dataSource:c,children:[{type:"item",name:`${h.collectionName}.${h.name}`,collectionName:h.target,dataSource:c,title:d("Blank block"),associationField:h},...C]}})},[a.fields,m,e,c,n,t,l,u,o,d,r])}const isInTemplateSettingPage=()=>window.location.pathname.includes("/block-templates/inherited"),initializerMenusGenerators=new Map;function registerInitializerMenusGenerator(e,t){initializerMenusGenerators.set(e,t)}const useStyles$g=genStyleHook("nb-schema-toolbar",e=>{const{componentCls:t}=e;return{[t]:{position:"absolute",zIndex:999,top:0,left:0,right:0,bottom:0,border:"2px solid var(--colorBorderSettingsHover)",background:"var(--colorBgSettingsHover)",pointerEvents:"none","&.nb-in-template":{background:"var(--colorTemplateBgSettingsHover)"},"&.hidden":{transform:"scale(0)",pointerEvents:"none"},"&.hidden-e2e":{display:"none"},".ant-space-item .anticon":{margin:0},".toolbar-title":{pointerEvents:"none",position:"absolute",fontSize:12,padding:0,lineHeight:"16px",height:"16px",borderBottomRightRadius:2,borderRadius:2,top:2,left:2},".toolbar-title-tag":{padding:"0 3px",borderRadius:2,background:"var(--colorSettings)",color:"#fff",display:"block"},".toolbar-icons":{position:"absolute",right:"2px",top:"2px",lineHeight:"16px",pointerEvents:"all",".ant-space-item":{backgroundColor:"var(--colorSettings)",color:"#fff",lineHeight:"16px",width:"16px",paddingLeft:"1px",alignSelf:"stretch"}}}}}),titleCss=import_css.css`
|
|
310
|
+
`,type:"dashed",onClick:()=>{var a,c,u,d;const m=(d=(u=(c=(a=n==null?void 0:n.parent)==null?void 0:a.parent)==null?void 0:c.parent)==null?void 0:u.properties)==null?void 0:d.filter;if(!m)return;const p=l.values.filter;r.emit("patch",{schema:{"x-uid":m["x-uid"],default:p}}),r.refresh(),m.default=p,console.log("filterSchema",p)},children:t("Save conditions")}):null},useDef$3=e=>{const t=(0,import_react.useField)();return useRequest(()=>Promise.resolve({data:t.dataSource}),e)},Filter=withDynamicSchemaProps((0,import_react.observer)(e=>{const{useDataSource:t=useDef$3}=e,{options:o,dynamicComponent:r,className:i,collectionName:n}=useProps(e),l=(0,import_react.useField)(),a=(0,import_react.useFieldSchema)();return t({onSuccess(c){l.dataSource=(c==null?void 0:c.data)||[]}}),(0,import_react2.useEffect)(()=>{a.defaultValue&&(l.initialValue=a.defaultValue)},[a.defaultValue]),(0,import_jsx_runtime.jsx)("div",{className:i,children:(0,import_jsx_runtime.jsx)(FilterContext$3.Provider,{value:{field:l,fieldSchema:a,dynamicComponent:r,options:o||l.dataSource||[],disabled:e.disabled,collectionName:n},children:(0,import_jsx_runtime.jsx)(FilterGroup$2,k(f({},e),{bordered:!1}))})})}),{displayName:"Filter"});Filter.SaveDefaultValue=SaveDefaultValue;Filter.Action=FilterAction;Filter.Action.Designer=FilterActionDesigner;const useGetFilterOptions=()=>{const e=useDataSourceManager(),t=useGetFilterFieldOptions();return(o,r,i)=>{var n;const l=(n=e==null?void 0:e.getDataSource(r))==null?void 0:n.collectionManager,a=l==null?void 0:l.getCollectionFields(o);return t(a,i)}},useFilterOptions=e=>{const t=useCollectionManager(),o=t==null?void 0:t.getCollectionFields(e);return useFilterFieldOptions(o)},useGetFilterFieldOptions=()=>{var e,t;const o=(0,import_react.useFieldSchema)(),r=Array.isArray((e=o==null?void 0:o["x-component-props"])==null?void 0:e.nonfilterable)?(t=o==null?void 0:o["x-component-props"])==null?void 0:t.nonfilterable:[],i=useCollectionManager(),n=useDataSourceManager(),l=(c,u,d,m)=>{var p,h;const g=m?`${m}.${c.name}`:c.name;if(r.length&&r.includes(g)||!c.interface)return;const x=n==null?void 0:n.collectionFieldInterfaceManager.getFieldInterface(c.interface);if(!(x!=null&&x.filterable)&&!d)return;const{nested:_,children:v,operators:b}=(x==null?void 0:x.filterable)||{},C={name:c.name,type:c.type,target:c.target,title:((p=c==null?void 0:c.uiSchema)==null?void 0:p.title)||c.name,schema:c==null?void 0:c.uiSchema,interface:c.interface,operators:((h=b==null?void 0:b.filter)==null?void 0:h.call(b,y=>!(y!=null&&y.visible)||y.visible(c)))||[]};if(!(c.target&&u>2)){if(u>2)return C;if(v!=null&&v.length&&(C.children=v),_){const y=i==null?void 0:i.getCollectionFields(c.target),S=a(y,u+1,d,g).filter(Boolean);C.children=C.children||[],C.children.push(...S)}return C}},a=(c,u,d,m)=>{const p=[];return c==null||c.forEach(h=>{const g=l(h,u,d,m);g&&p.push(g)}),p};return(c,u)=>a(c,1,u)},field2option$1=(e,t,o,r,i,n)=>{var l,a,c,u,d;const m=n?`${n}.${e.name}`:e.name;if(o.length&&o.includes(m)||!e.interface||e.filterable===!1)return;const p=r==null?void 0:r.collectionFieldInterfaceManager.getFieldInterface(e.interface);if(!(p!=null&&p.filterable))return;const{nested:h,children:g,operators:x}=p.filterable,_={name:e.name,type:e.type,target:e.target,title:((l=e==null?void 0:e.uiSchema)==null?void 0:l.title)||e.name,schema:e==null?void 0:e.uiSchema,operators:((a=x==null?void 0:x.filter)==null?void 0:a.call(x,v=>!(v!=null&&v.visible)||v.visible(e)))||[]};if(!(e.target&&t>2)){if(t>2)return _;if(g!=null&&g.length&&(_.children=g),h){const v=(c=i==null?void 0:i.dataSource)==null?void 0:c.key,b=e.dataSourceKey||v,C=b&&b!==v?((u=r==null?void 0:r.getDataSource(b))==null?void 0:u.collectionManager)||i:i||((d=r==null?void 0:r.getDataSource(b))==null?void 0:d.collectionManager),y=C==null?void 0:C.getCollectionFields(e.target),S=getOptions$3(y||[],t+1,o,r,C||i,m).filter(Boolean);_.children=_.children||[],_.children.push(...S)}return _}},getOptions$3=(e=[],t,o,r,i,n)=>{const l=[];return e.forEach(a=>{const c=field2option$1(a,t,o,r,i,n);c&&l.push(c)}),l},useFilterFieldOptions=e=>{var t,o;const r=(0,import_react.useFieldSchema)(),i=Array.isArray((t=r==null?void 0:r["x-component-props"])==null?void 0:t.nonfilterable)?(o=r==null?void 0:r["x-component-props"])==null?void 0:o.nonfilterable:[],n=useCollectionManager(),l=useDataSourceManager();return getOptions$3(e,1,i,l,n)},isEmpty=e=>Array.isArray(e)&&e.length===0||e&&Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype,removeNullCondition=(e,t=import_flat.default)=>{const o=t(e||{}),r={};for(const i in o){const n=o[i];n!=null&&!isEmpty(n)&&(r[i]=n)}return t.unflatten(r)},useFilterActionProps$1=()=>{const e=useCollection(),t=useFilterOptions(e==null?void 0:e.name),o=useDataBlockProps();return useFilterFieldProps({options:t,params:o==null?void 0:o.params})},useFilterFieldProps=({options:e,service:t,params:o})=>{const{getDataBlockRequest:r}=useDataBlockRequestGetter(),{t:i}=(0,import_react_i18next.useTranslation)(),n=(0,import_react.useField)(),l=useDataLoadingMode(),a=(0,import_react.useFieldSchema)(),c=useCompile(),u=(0,import_react2.useCallback)(m=>{var p,h,g,x,_;const v=t||r(),b=(o||((h=(p=v.state)==null?void 0:p.params)==null?void 0:h[0])||v.params).filter,C=removeNullCondition(m==null?void 0:m.filter);if(l==="manual"&&import_lodash.default.isEmpty(C))return v==null?void 0:v.mutate(void 0);const y=((x=(g=v==null?void 0:v.params)==null?void 0:g[1])==null?void 0:x.filters)||{};y.filterAction=C,v==null||v.run(k(f({},(_=v==null?void 0:v.params)==null?void 0:_[0]),{page:1,filter:mergeFilter([...Object.values(y),b])}),{filters:y});const S=(C==null?void 0:C.$and)||(C==null?void 0:C.$or);S!=null&&S.length?n.title=i("{{count}} filter items",{count:(S==null?void 0:S.length)||0}):n.title=c(a.title)||i("Filter")},[l,n,r,o,t,i,a.title]),d=(0,import_react2.useCallback)(()=>{var m,p,h,g,x;const _=t||r(),v=(o||((p=(m=_.state)==null?void 0:m.params)==null?void 0:p[0])||_.params).filter,b=((g=(h=_==null?void 0:_.params)==null?void 0:h[1])==null?void 0:g.filters)||{};delete b.filterAction;const C=[k(f({},(x=_==null?void 0:_.params)==null?void 0:x[0]),{filter:mergeFilter([...Object.values(b),v]),page:1}),{filters:b}];if(n.title=c(a.title)||i("Filter"),l==="manual")return _.params=C,_==null?void 0:_.mutate(void 0);_==null||_.run(...C)},[l,n,r,o,t,i,a.title]);return{options:e,onSubmit:u,onReset:d}},useLabelFields$1=e=>{var t,o,r;const i=useCompile(),{getCollectionFields:n}=useCollectionManager_deprecated();if(!e)return[];const l=n(e);return(r=(o=(t=l==null?void 0:l.filter)==null?void 0:t.call(l,a=>(a==null?void 0:a.interface)&&!(a!=null&&a.target)&&a.type!=="boolean"))==null?void 0:o.map)==null?void 0:r.call(o,a=>{var c;return{value:a.name,label:i(((c=a==null?void 0:a.uiSchema)==null?void 0:c.title)||a.name)}})},useColorFields=e=>{var t,o,r;const i=useCompile(),{getCollectionFields:n}=useCollectionManager_deprecated();if(!e)return[];const l=n(e);return(r=(o=(t=l==null?void 0:l.filter)==null?void 0:t.call(l,a=>(a==null?void 0:a.interface)==="color"))==null?void 0:o.map)==null?void 0:r.call(o,a=>{var c;return{value:a.name,label:i(((c=a==null?void 0:a.uiSchema)==null?void 0:c.title)||a.name)}})},TableColumnDesigner$1=e=>{var t,o,r,i,n,l,a,c,u,d,m,p;const{uiSchema:h,fieldSchema:g,collectionField:x}=e,{form:_}=useFormBlockContext(),{getInterface:v,getCollection:b}=useCollectionManager_deprecated(),C=(0,import_react.useField)(),{t:y}=(0,import_react_i18next.useTranslation)(),S=(0,import_react.useFieldSchema)(),{dn:F}=useDesignable(),j=((t=g==null?void 0:g["x-component-props"])==null?void 0:t.fieldNames)||((o=h==null?void 0:h["x-component-props"])==null?void 0:o.fieldNames),P=useLabelFields$1((r=x==null?void 0:x.target)!=null?r:x==null?void 0:x.targetCollection),A=useColorFields((i=x==null?void 0:x.target)!=null?i:x==null?void 0:x.targetCollection),T=v(x==null?void 0:x.interface),D=b(x==null?void 0:x.target),E=isFileCollection$2(D),R=["QuickEdit","FormItem"].includes(g["x-decorator"]),{currentMode:M}=useAssociationFieldContext(),{isAllowToSetDefaultValue:L}=useIsAllowToSetDefaultValue({collectionField:x,fieldSchema:g}),$=["datetime","createdAt","updatedAt"].includes(x==null?void 0:x.interface),w=["obo","oho","o2o","o2m","m2m","m2o","snapshot"].includes(x==null?void 0:x.interface),B=useFieldModeOptions({fieldSchema:g}),O=((n=g==null?void 0:g["x-component-props"])==null?void 0:n.mode)||"Select";let V="editable";g["x-disabled"]===!0&&(V="readonly"),g["x-read-pretty"]===!0&&(V="read-pretty");const q=w&&O==="Select",U=()=>{const{name:z}=useCollection(),{linkageRulesProps:G}=useSchemaToolbar();return(0,import_jsx_runtime.jsx)(SchemaSettingsLinkageRules,f({category:"style"},k(f({},G),{collectionName:z})))};return(0,import_jsx_runtime.jsxs)(GeneralSchemaDesigner,{disableInitializer:!0,children:[(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:y("Custom column title"),schema:{type:"object",title:y("Custom column title"),properties:{title:{title:y("Column title"),default:S==null?void 0:S.title,description:`${y("Original field title: ")}${((l=x==null?void 0:x.uiSchema)==null?void 0:l.title)||(g==null?void 0:g.title)}`,"x-decorator":"FormItem","x-component":"Input","x-component-props":{}}}},onSubmit:({title:z})=>{z&&(C.title=z,S.title=z,F.emit("patch",{schema:{"x-uid":S["x-uid"],title:S.title}})),F.refresh()}}),q&&!C.readPretty&&!(h!=null&&h["x-read-pretty"])&&R&&(0,import_jsx_runtime.jsx)(SchemaSettingsDataScope,{collectionName:x==null?void 0:x.target,defaultFilter:((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)||{},form:_,onSubmit:({filter:z})=>{var G,H;z=removeNullCondition(z),(0,import_lodash.set)(C.componentProps,"service.params.filter",z),g["x-component-props"]=C.componentProps;const W=(H=C.path)==null?void 0:H.splice(((G=C.path)==null?void 0:G.length)-1,1);C.form.query(`${W.concat("*."+g.name)}`).forEach(J=>{J.componentProps.service=J.componentProps.service||{params:{}},J.componentProps.service.params.filter=z}),F.emit("patch",{schema:{"x-uid":g["x-uid"],"x-component-props":C.componentProps}})}}),(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:y("Column width"),schema:{type:"object",title:y("Column width"),properties:{width:{default:((d=S==null?void 0:S["x-component-props"])==null?void 0:d.width)||100,"x-decorator":"FormItem","x-component":"InputNumber","x-component-props":{}}}},onSubmit:({width:z})=>{const G=S["x-component-props"]||{};G.width=z;const H={"x-uid":S["x-uid"]};H["x-component-props"]=G,S["x-component-props"]=G,C.componentProps.width=z,F.emit("patch",{schema:H}),F.refresh()}}),(0,import_jsx_runtime.jsx)(U,{}),T&&T.sortable===!0&&!M&&(0,import_jsx_runtime.jsx)(SchemaSettingsSwitchItem,{title:y("Sortable"),checked:C.componentProps.sorter,onChange:z=>{const G={"x-uid":S["x-uid"]};S["x-component-props"]=k(f({},S["x-component-props"]),{sorter:z}),G["x-component-props"]=S["x-component-props"],C.componentProps.sorter=z,F.emit("patch",{schema:G}),F.refresh()}}),["linkTo","m2m","m2o","o2m","obo","oho","snapshot","createdBy","updatedBy"].includes(x==null?void 0:x.interface)&&!E&&(V==="read-pretty"||C.readPretty||C.readOnly)&&(0,import_jsx_runtime.jsx)(SchemaSettingsSwitchItem,{title:y("Enable link"),checked:((m=g["x-component-props"])==null?void 0:m.enableLink)!==!1,onChange:z=>{g["x-component-props"]=k(f({},g==null?void 0:g["x-component-props"]),{enableLink:z}),C.componentProps=k(f({},g==null?void 0:g["x-component-props"]),{enableLink:z}),F.emit("patch",{schema:{"x-uid":g["x-uid"],"x-component-props":f({},g==null?void 0:g["x-component-props"])}}),F.refresh()}}),["linkTo","m2m","m2o","o2m","obo","oho","snapshot"].includes(x==null?void 0:x.interface)&&(0,import_jsx_runtime.jsx)(SchemaSettingsSelectItem,{title:y("Title field"),options:P,value:j==null?void 0:j.label,onChange:z=>{var G,H,W,J,K;const Q=k(f(f({},(H=(G=x==null?void 0:x.uiSchema)==null?void 0:G["x-component-props"])==null?void 0:H.fieldNames),(W=g==null?void 0:g["x-component-props"])==null?void 0:W.fieldNames),{label:z});import_lodash.default.set(g,"x-component-props.fieldNames",Q);const Z=(K=C.path)==null?void 0:K.splice(((J=C.path)==null?void 0:J.length)-1,1);C.form.query(`${Z.concat("*."+g.name)}`).forEach(ee=>{ee.componentProps.fieldNames=Q}),F.emit("patch",{schema:{"x-uid":g["x-uid"],"x-component-props":f({},g["x-component-props"])}}),F.refresh()}}),w&&(0,import_jsx_runtime.jsx)(SchemaSettingsSelectItem,{title:y("Field component"),options:V==="read-pretty"?[{label:y("Title"),value:"Select"},E&&{label:y("File manager"),value:"FileManager"},{label:y("Tag"),value:"Tag"}].filter(Boolean):B,value:O,onChange:z=>{const G={"x-uid":g["x-uid"]};g["x-component-props"]=g["x-component-props"]||{},g["x-component-props"].mode=z,G["x-component-props"]=g["x-component-props"],C.componentProps=C.componentProps||{},C.componentProps.mode=z,F.emit("patch",{schema:G}),F.refresh()}},"field-mode"),["Tag"].includes(O)&&(0,import_jsx_runtime.jsx)(SchemaSettingsSelectItem,{title:y("Tag color field"),options:A,value:(p=g==null?void 0:g["x-component-props"])==null?void 0:p.tagColorField,onChange:z=>{const G={"x-uid":g["x-uid"]};g["x-component-props"]=g["x-component-props"]||{},g["x-component-props"].tagColorField=z,G["x-component-props"]=g["x-component-props"],C.componentProps.tagColorField=z,F.emit("patch",{schema:G}),F.refresh()}},"title-field"),R&&!C.readPretty&&!(h!=null&&h["x-read-pretty"])&&(0,import_jsx_runtime.jsx)(SchemaSettingsSwitchItem,{title:y("Required"),checked:g.required,onChange:z=>{var G,H;const W={"x-uid":g["x-uid"]};g.required=z,W.required=z;const J=(H=C.path)==null?void 0:H.splice(((G=C.path)==null?void 0:G.length)-1,1);C.form.query(`${J.concat("*."+g.name)}`).forEach(K=>{K.required=z}),F.emit("patch",{schema:W}),F.refresh()}},"required"),R&&!(C!=null&&C.readPretty)&&(x==null?void 0:x.interface)!=="o2m"&&!isPatternDisabled(g)&&(0,import_jsx_runtime.jsx)(SchemaSettingsSelectItem,{title:y("Pattern"),options:[{label:y("Editable"),value:"editable"},{label:y("Readonly"),value:"readonly"},{label:y("Easy-reading"),value:"read-pretty"}],value:V,onChange:z=>{var G,H;const W={"x-uid":g["x-uid"]},J=(H=C.path)==null?void 0:H.splice(((G=C.path)==null?void 0:G.length)-1,1);switch(z){case"readonly":{g["x-read-pretty"]=!1,g["x-disabled"]=!0,W["x-read-pretty"]=!1,W["x-disabled"]=!0,C.form.query(`${J.concat("*."+g.name)}`).forEach(K=>{K.readonly=!0,K.disabled=!0});break}case"read-pretty":{g["x-read-pretty"]=!0,g["x-disabled"]=!1,W["x-read-pretty"]=!0,W["x-disabled"]=!1,C.form.query(`${J.concat("*."+g.name)}`).forEach(K=>{K.readPretty=!0});break}default:{g["x-read-pretty"]=!1,g["x-disabled"]=!1,W["x-read-pretty"]=!1,W["x-disabled"]=!1,C.form.query(`${J.concat("*."+g.name)}`).forEach(K=>{K.readPretty=!1,K.disabled+!1});break}}F.emit("patch",{schema:W}),F.refresh()}},"pattern"),$&&(0,import_jsx_runtime.jsx)(SchemaSettingsDateFormat,{fieldSchema:g}),R&&!(C!=null&&C.readPretty)&&["obo","oho","o2o","o2m","m2m","m2o"].includes(x==null?void 0:x.interface)&&(0,import_jsx_runtime.jsx)(SchemaSettingsSortingRule,{fieldSchema:g,onSubmitCallBack:z=>{var G,H;const W=(H=C.path)==null?void 0:H.splice(((G=C.path)==null?void 0:G.length)-1,1);C.form.query(`${W.concat("*."+g.name)}`).forEach(J=>{J.componentProps.service=J.componentProps.service||{params:{}},J.componentProps.service.params.sort=z})}}),L(R)&&(0,import_jsx_runtime.jsx)(SchemaSettingsDefaultValue,{fieldSchema:g}),(0,import_jsx_runtime.jsx)(SchemaSettingsDivider,{}),(0,import_jsx_runtime.jsx)(SchemaSettingsRemove,{removeParentsIfNoChildren:!R,breakRemoveOn:{"x-component":"Grid"},confirm:{title:y("Delete table column")}})]})};function isFileCollection$2(e){return(e==null?void 0:e.template)==="file"}const allowAddNew={name:"allowAddNew",type:"switch",useVisible(){const e=useFlag(),t=useIsFieldReadPretty(),o=useIsAssociationField(),r=useFieldMode();return!(e!=null&&e.isInSubTable)&&!t&&o&&["Picker"].includes(r)},useComponentProps(){const{defaultOpenMode:e}=useOpenModeContext(),{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{dn:i,refresh:n,insertAdjacent:l}=useDesignable();return{title:t("Allow add new data"),checked:r["x-add-new"],onChange(a){r.reduceProperties((u,d)=>d["x-component"]==="Action"?d:u,null)||l("afterBegin",{"x-action":"create","x-acl-action":"create",title:"{{t('Add new')}}","x-toolbar":"ActionSchemaToolbar","x-toolbar-props":{draggable:!1},"x-settings":"actionSettings:addNew","x-component":"Action","x-decorator":"ACLActionProvider","x-component-props":{openMode:e,type:"default",component:"CreateRecordAction"}});const c={"x-uid":r["x-uid"]};o["x-add-new"]=a,r["x-add-new"]=a,c["x-add-new"]=a,i.emit("patch",{schema:c}),n()}}}},formItemSettings=new SchemaSettings({name:"FormItemSettings",items:[...generalSettingsItems,{name:"allowAddNewData",type:"switch",useVisible(){const e=useIsFieldReadPretty(),t=useIsAssociationField(),o=useFieldMode();return!e&&t&&["SubTable"].includes(o)},useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{dn:i,refresh:n}=useDesignable();return{title:t("Allow add new"),checked:((e=r["x-component-props"])==null?void 0:e.allowAddnew)!==!1,onChange(l){const a={"x-uid":r["x-uid"]};o.componentProps.allowAddnew=l,r["x-component-props"]=r["x-component-props"]||{},r["x-component-props"].allowAddnew=l,a["x-component-props"]=r["x-component-props"],i.emit("patch",{schema:a}),n()}}}},{name:"allowSelectExistingRecord",type:"switch",useVisible(){const e=useIsFieldReadPretty(),t=useIsAssociationField(),o=useFieldMode();return!e&&t&&["SubTable"].includes(o)},useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{dn:i,refresh:n}=useDesignable();return{title:t("Allow selection of existing records"),checked:(e=r["x-component-props"])==null?void 0:e.allowSelectExistingRecord,onChange(l){const a={"x-uid":r["x-uid"]};o.componentProps.allowSelectExistingRecord=l,r["x-component-props"]=r["x-component-props"]||{},r["x-component-props"].allowSelectExistingRecord=l,a["x-component-props"]=r["x-component-props"],i.emit("patch",{schema:a}),n()}}}},{name:"quickUpload",type:"switch",useVisible(){const e=useIsFileField();return!useIsFormReadPretty()&&e},useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{dn:i,refresh:n}=useDesignable();return{title:t("Quick upload"),checked:((e=r["x-component-props"])==null?void 0:e.quickUpload)!==!1,onChange(l){const a={"x-uid":r["x-uid"]};o.componentProps.quickUpload=l,r["x-component-props"]=r["x-component-props"]||{},r["x-component-props"].quickUpload=l,a["x-component-props"]=r["x-component-props"],i.emit("patch",{schema:a}),n()}}}},{name:"selectFile",type:"switch",useVisible(){const e=useIsFileField();return!useIsFormReadPretty()&&e},useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{dn:i,refresh:n}=useDesignable();return{title:t("Select file"),checked:((e=r["x-component-props"])==null?void 0:e.selectFile)!==!1,onChange(l){const a={"x-uid":r["x-uid"]};o.componentProps.selectFile=l,r["x-component-props"]=r["x-component-props"]||{},r["x-component-props"].selectFile=l,a["x-component-props"]=r["x-component-props"],i.emit("patch",{schema:a}),n()}}}},{name:"validationRules",type:"modal",useComponentProps(){const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_react.useField)(),o=(0,import_react.useFieldSchema)(),{dn:r,refresh:i}=useDesignable(),n=useValidateSchema(),{getCollectionJoinField:l}=useCollectionManager_deprecated(),{getField:a}=useCollection_deprecated(),c=a(o.name)||l(o["x-collection-field"]);return{title:e("Set validation rules"),components:{ArrayCollapse:import_antd_v5.ArrayCollapse,FormLayout:import_antd_v5.FormLayout},schema:{type:"object",title:e("Set validation rules"),properties:{rules:{type:"array",default:o==null?void 0:o["x-validator"],"x-component":"ArrayCollapse","x-decorator":"FormItem","x-component-props":{accordion:!0},maxItems:3,items:{type:"object","x-component":"ArrayCollapse.CollapsePanel","x-component-props":{header:'{{ t("Validation rule") }}'},properties:{index:{type:"void","x-component":"ArrayCollapse.Index"},layout:{type:"void","x-component":"FormLayout","x-component-props":{labelStyle:{marginTop:"6px"},labelCol:8,wrapperCol:16},properties:k(f({},n),{message:{type:"string",title:'{{ t("Error message") }}',"x-decorator":"FormItem","x-component":"Input.TextArea","x-component-props":{autoSize:{minRows:2,maxRows:2}}}})},remove:{type:"void","x-component":"ArrayCollapse.Remove"},moveUp:{type:"void","x-component":"ArrayCollapse.MoveUp"},moveDown:{type:"void","x-component":"ArrayCollapse.MoveDown"}}},properties:{add:{type:"void",title:'{{ t("Add validation rule") }}',"x-component":"ArrayCollapse.Addition","x-reactions":{dependencies:["rules"],fulfill:{state:{disabled:"{{$deps[0].length >= 3}}"}}}}}}}},onSubmit(u){var d;const m=[];for(const g of u.rules)m.push(import_lodash.default.pickBy(g,import_lodash.default.identity));const p={"x-uid":o["x-uid"]};if(["percent"].includes(c==null?void 0:c.interface))for(const g of m)(g.maxValue||g.minValue)&&(g.percentMode=!0),g.percentFormat&&(g.percentFormats=!0);const h=import_lodash.default.concat([],((d=c==null?void 0:c.uiSchema)==null?void 0:d["x-validator"])||[],m);t.validator=h,o["x-validator"]=m,p["x-validator"]=m,r.emit("patch",{schema:p}),i()}}},useVisible(){const{form:e}=useFormBlockContext(),t=useIsFormReadPretty(),o=useValidateSchema();return e&&!t&&o}},{name:"defaultValue",Component:SchemaSettingsDefaultValue,useVisible(){const{isAllowToSetDefaultValue:e}=useIsAllowToSetDefaultValue();return e()}},{name:"dataScope",Component:SchemaSettingsDataScope,useVisible(){const e=useIsSelectFieldMode(),t=useIsFormReadPretty();return e&&!t},useComponentProps(){var e,t,o;const{getCollectionJoinField:r,getAllCollectionsInheritChain:i}=useCollectionManager_deprecated(),{getField:n}=useCollection_deprecated(),{form:l}=useFormBlockContext(),a=useRecord(),c=(0,import_react.useField)(),u=(0,import_react.useFieldSchema)(),d=n(u.name)||r(u["x-collection-field"]),m=useVariables$1(),p=useLocalVariables$1(),{dn:h}=useDesignable();return{collectionName:d==null?void 0:d.target,defaultFilter:((o=(t=(e=u==null?void 0:u["x-component-props"])==null?void 0:e.service)==null?void 0:t.params)==null?void 0:o.filter)||{},form:l,dynamicComponent:g=>(0,import_jsx_runtime.jsx)(VariableInput,k(f({},g),{form:l,collectionField:g.collectionField,record:a,shouldChange:getShouldChange({collectionField:g.collectionField,variables:m,localVariables:p,getAllCollectionsInheritChain:i})})),onSubmit:({filter:g})=>{g=removeNullCondition(g),import_lodash.default.set(c.componentProps,"service.params.filter",g),u["x-component-props"]=c.componentProps,h.emit("patch",{schema:{"x-uid":u["x-uid"],"x-component-props":c.componentProps}})}}}},{name:"sortingRule",Component:SchemaSettingsSortingRule,useVisible(){const e=useIsSelectFieldMode(),t=useIsFormReadPretty();return e&&!t}},{name:"fieldMode",type:"select",useComponentProps(){const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_react.useField)(),o=(0,import_react.useFieldSchema)(),{dn:r}=useDesignable(),i=useFieldModeOptions(),n=useIsAddNewForm(),l=useFieldMode();return{title:e("Field component"),options:i,value:l,onChange(a){const c={"x-uid":o["x-uid"]};o["x-component-props"]=o["x-component-props"]||{},o["x-component-props"].mode=a,c["x-component-props"]=o["x-component-props"],t.componentProps=t.componentProps||{},t.componentProps.mode=a,isSubMode(o)&&n&&(c.default=null,o.default=null,t.setInitialValue(null),t.setValue(null)),r.emit("patch",{schema:c}),r.refresh()}}},useVisible:useShowFieldMode},{name:"popupSize",type:"select",useComponentProps(){var e,t;const{t:o}=(0,import_react_i18next.useTranslation)(),r=(0,import_react.useField)(),i=(0,import_react.useFieldSchema)(),{dn:n}=useDesignable();return{title:o("Popup size"),options:[{label:o("Small"),value:"small"},{label:o("Middle"),value:"middle"},{label:o("Large"),value:"large"}],value:(t=(e=i==null?void 0:i["x-component-props"])==null?void 0:e.openSize)!=null?t:"middle",onChange:l=>{r.componentProps.openSize=l,i["x-component-props"]=r.componentProps,n.emit("patch",{schema:{"x-uid":i["x-uid"],"x-component-props":i["x-component-props"]}}),n.refresh()}}},useVisible(){var e;const t=useShowFieldMode(),o=((e=(0,import_react.useFieldSchema)()["x-component-props"])==null?void 0:e.mode)==="Picker";return t&&o}},allowAddNew,{name:"addMode",type:"select",useVisible(){const e=useIsFieldReadPretty(),t=useIsAssociationField(),o=useFieldMode();return!e&&t&&["Select"].includes(o)},useComponentProps(){var e;const{defaultOpenMode:t}=useOpenModeContext(),{t:o}=(0,import_react_i18next.useTranslation)(),r=(0,import_react.useField)(),i=(0,import_react.useFieldSchema)(),{dn:n,insertAdjacent:l}=useDesignable();return{title:o("Quick create"),options:[{label:o("None"),value:"none"},{label:o("Dropdown"),value:"quickAdd"},{label:o("Pop-up"),value:"modalAdd"}],value:((e=r.componentProps)==null?void 0:e.addMode)||"none",onChange(a){a==="modalAdd"&&(i.reduceProperties((u,d)=>d["x-component"]==="Action"?d:u,null)||l("afterBegin",{"x-action":"create","x-acl-action":"create",title:"{{t('Add new')}}","x-toolbar":"ActionSchemaToolbar","x-settings":"actionSettings:addNew","x-component":"Action","x-decorator":"ACLActionProvider","x-component-props":{openMode:t,type:"default",component:"CreateRecordAction"}}));const c={"x-uid":i["x-uid"]};i["x-component-props"]=i["x-component-props"]||{},i["x-component-props"].addMode=a,c["x-component-props"]=i["x-component-props"],r.componentProps=r.componentProps||{},r.componentProps.addMode=a,n.emit("patch",{schema:c}),n.refresh()}}}},{name:"multiple",type:"switch",useVisible(){const e=useIsAssociationField(),t=useIsShowMultipleSwitch();return e&&t()},useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{dn:i,refresh:n}=useDesignable();return{title:t("Allow multiple"),checked:((e=r["x-component-props"])==null?void 0:e.multiple)===void 0?!0:r["x-component-props"].multiple,onChange(l){const a={"x-uid":r["x-uid"]};r["x-component-props"]=r["x-component-props"]||{},o.componentProps=o.componentProps||{},r["x-component-props"].multiple=l,o.componentProps.multiple=l,a["x-component-props"]=r["x-component-props"],i.emit("patch",{schema:a}),n()}}}},{name:"allowDissociate",type:"switch",useVisible(){var e;const t=useIsShowMultipleSwitch();return((e=(0,import_react.useFieldSchema)()["x-component-props"])==null?void 0:e.mode)==="Nester"&&t()},useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{dn:i,refresh:n}=useDesignable();return{title:t("Allow dissociate"),checked:((e=r["x-component-props"])==null?void 0:e.allowDissociate)!==!1,onChange(l){const a={"x-uid":r["x-uid"]};r["x-component-props"]=r["x-component-props"]||{},o.componentProps=o.componentProps||{},r["x-component-props"].allowDissociate=l,o.componentProps.allowDissociate=l,a["x-component-props"]=r["x-component-props"],i.emit("patch",{schema:a}),n()}}}},{name:"enableLink",type:"switch",useVisible(){const e=useTitleFieldOptions(),t=useIsFieldReadPretty(),o=useIsFileField(),r=(0,import_react.useFieldSchema)();return t&&e.length>0&&!o&&r["x-component"]==="CollectionField"},useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{dn:i}=useDesignable();return{title:t("Enable link"),checked:((e=r["x-component-props"])==null?void 0:e.enableLink)!==!1,onChange(n){r["x-component-props"]=k(f({},r==null?void 0:r["x-component-props"]),{enableLink:n}),o.componentProps.enableLink=n,i.emit("patch",{schema:{"x-uid":r["x-uid"],"x-component-props":f({},r==null?void 0:r["x-component-props"])}}),i.refresh()}}}},{name:"pattern",type:"select",useVisible(){const{form:e}=useFormBlockContext(),t=(0,import_react.useFieldSchema)();return e&&!(e!=null&&e.readPretty)&&!isPatternDisabled(t)},useComponentProps(){const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_react.useField)(),o=(0,import_react.useFieldSchema)(),{dn:r}=useDesignable();let i="editable";return o["x-disabled"]===!0&&(i="readonly"),o["x-read-pretty"]===!0&&(i="read-pretty"),{title:e("Pattern"),options:[{label:e("Editable"),value:"editable"},{label:e("Readonly"),value:"readonly"},{label:e("Easy-reading"),value:"read-pretty"}],value:i,onChange(n){const l={"x-uid":o["x-uid"]};switch(n){case"readonly":{o["x-read-pretty"]=!1,o["x-disabled"]=!0,l["x-read-pretty"]=!1,l["x-disabled"]=!0,t.readPretty=!1,t.disabled=!0,import_lodash.default.set(t,"initStateOfLinkageRules.pattern",getTempFieldState(!0,ActionType.ReadOnly));break}case"read-pretty":{o["x-read-pretty"]=!0,o["x-disabled"]=!1,l["x-read-pretty"]=!0,l["x-disabled"]=!1,t.readPretty=!0,import_lodash.default.set(t,"initStateOfLinkageRules.pattern",getTempFieldState(!0,ActionType.ReadPretty));break}default:{o["x-read-pretty"]=!1,o["x-disabled"]=!1,l["x-read-pretty"]=!1,l["x-disabled"]=!1,t.readPretty=!1,t.disabled=!1,import_lodash.default.set(t,"initStateOfLinkageRules.pattern",getTempFieldState(!0,ActionType.Editable));break}}r.emit("patch",{schema:l}),r.refresh()}}}},{name:"titleField",type:"select",useVisible(){const e=useTitleFieldOptions(),t=useIsAssociationField(),o=useFieldMode();return e.length>0&&t&&o!=="SubTable"},useComponentProps(){var e,t;const{t:o}=(0,import_react_i18next.useTranslation)(),r=(0,import_react.useField)(),i=(0,import_react.useFieldSchema)(),{dn:n}=useDesignable(),l=useTitleFieldOptions(),a=useCollectionField_deprecated();return{title:o("Title field"),options:l,value:(t=(e=r==null?void 0:r.componentProps)==null?void 0:e.fieldNames)==null?void 0:t.label,onChange(c){var u,d;const m={"x-uid":i["x-uid"]},p=k(f(f({},(d=(u=a==null?void 0:a.uiSchema)==null?void 0:u["x-component-props"])==null?void 0:d.fieldNames),r.componentProps.fieldNames),{label:c});i["x-component-props"]=i["x-component-props"]||{},i["x-component-props"].fieldNames=p,m["x-component-props"]=i["x-component-props"],r.componentProps.fieldNames=i["x-component-props"].fieldNames,n.emit("patch",{schema:m}),n.refresh()}}}},{name:"dateFormat",Component:SchemaSettingsDateFormat,useVisible(){const e=useFormItemCollectionField();return["datetime","createdAt","updatedAt"].includes(e==null?void 0:e.interface)},useComponentProps(){return{fieldSchema:(0,import_react.useFieldSchema)()}}},{name:"size",type:"select",useVisible(){const e=useIsFieldReadPretty(),t=useFormItemCollectionField(),{getCollection:o}=useCollectionManager_deprecated(),r=o(t==null?void 0:t.target),i=["attachment"].includes(t==null?void 0:t.interface)||(r==null?void 0:r.template)==="file";return e&&i},useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{dn:i}=useDesignable();return{title:t("Size"),options:[{label:t("Large"),value:"large"},{label:t("Default"),value:"default"},{label:t("Small"),value:"small"}],value:((e=o==null?void 0:o.componentProps)==null?void 0:e.size)||"default",onChange(n){const l={"x-uid":r["x-uid"]};r["x-component-props"]=r["x-component-props"]||{},r["x-component-props"].size=n,l["x-component-props"]=r["x-component-props"],o.componentProps=o.componentProps||{},o.componentProps.size=n,i.emit("patch",{schema:l}),i.refresh()}}}},{name:"tagColor",type:"select",useVisible(){const e=useIsAssociationField(),t=useFieldMode();return e&&["Tag"].includes(t)},useComponentProps(){var e,t;const{t:o}=(0,import_react_i18next.useTranslation)(),r=(0,import_react.useField)(),i=(0,import_react.useFieldSchema)(),{dn:n}=useDesignable(),l=useFormItemCollectionField(),a=useColorFields((e=l==null?void 0:l.target)!=null?e:l==null?void 0:l.targetCollection);return{title:o("Tag color field"),options:a,value:(t=r==null?void 0:r.componentProps)==null?void 0:t.tagColorField,onChange(c){const u={"x-uid":i["x-uid"]};i["x-component-props"]=i["x-component-props"]||{},i["x-component-props"].tagColorField=c,u["x-component-props"]=i["x-component-props"],r.componentProps.tagColorField=c,n.emit("patch",{schema:u}),n.refresh()}}}},{name:"divider",type:"divider",useVisible(){return!!useFormItemCollectionField()}},{name:"remove",type:"remove",useComponentProps(){const{t:e}=(0,import_react_i18next.useTranslation)();return{removeParentsIfNoChildren:!0,confirm:{title:e("Delete field")},breakRemoveOn:{"x-component":"Grid"}}}}]});function useIsAddNewForm(){const e=useRecord();return import_lodash.default.isEmpty(import_lodash.default.omit(e,["__parent","__collectionName"]))}function isFileCollection$1(e){return(e==null?void 0:e.template)==="file"}function useIsFormReadPretty(){const{form:e}=useFormBlockContext();return!!(e!=null&&e.readPretty)}function useIsFieldReadPretty(){const{fieldSchema:e}=useColumnSchema$1();return(0,import_react.useField)().readPretty||(e==null?void 0:e["x-read-pretty"])}function useFormItemCollectionField(){const{getCollectionJoinField:e}=useCollectionManager_deprecated(),{getField:t}=useCollection_deprecated(),o=(0,import_react.useFieldSchema)(),{collectionField:r}=useColumnSchema$1(),i=o?t(o.name)||e(o["x-collection-field"]):null;return o?i||r:null}function useIsAssociationField(){const e=useFormItemCollectionField();return e&&["hasOne","hasMany","belongsTo","belongsToMany","belongsToArray"].includes(e.type)}function useIsFileField(){const e=useCollectionManager(),t=useFormItemCollectionField(),o=e.getCollection(t==null?void 0:t.target);return isFileCollection$1(o)}function useFieldMode(){var e;const t=(0,import_react.useField)(),o=useIsFileField();return((e=t==null?void 0:t.componentProps)==null?void 0:e.mode)||(o?"FileManager":"Select")}function useIsSelectFieldMode(){const e=useFieldMode();return useIsAssociationField()&&e==="Select"}function useValidateSchema(){var e;const{getInterface:t}=useCollectionManager_deprecated(),o=(0,import_react.useFieldSchema)(),r=useFormItemCollectionField(),i=t(r==null?void 0:r.interface);return(e=i==null?void 0:i.validateSchema)==null?void 0:e.call(i,o)}function useShowFieldMode(){const e=(0,import_react.useFieldSchema)(),t=useFieldModeOptions(),o=e["x-component"]==="TableField";return useIsAssociationField()&&t&&!o}function useTitleFieldOptions(){var e;const{getCollectionFields:t,isTitleField:o}=useCollectionManager_deprecated(),r=useCompile(),i=useFormItemCollectionField();return(i!=null&&i.target?t(i==null?void 0:i.target):(e=t(i==null?void 0:i.targetCollection))!=null?e:[]).filter(n=>o(n)).map(n=>{var l;return{value:n==null?void 0:n.name,label:r((l=n==null?void 0:n.uiSchema)==null?void 0:l.title)||(n==null?void 0:n.name)}})}function useFieldComponentName(){var e,t,o,r;const{fieldSchema:i,collectionField:n}=useColumnSchema$1(),l=(0,import_react.useField)(),a=useIsFileField(),c=(0,import_react.useFieldSchema)(),u=useCollectionField(),d=i||c,m=n||u,p={AssociationField:"Select"},h=((e=d==null?void 0:d["x-component-props"])==null?void 0:e.mode)||((t=l==null?void 0:l.componentProps)==null?void 0:t.mode)||(a?"FileManager":"")||((o=d==null?void 0:d["x-component-props"])==null?void 0:o.component)||((r=m==null?void 0:m.uiSchema)==null?void 0:r["x-component"]);return p[h]||h}const SchemaSettingsChildErrorFallback=e=>{const t=e,{title:o}=t,r=Y(t,["title"]);return(0,import_jsx_runtime.jsx)(SchemaSettingsItem,{title:o,children:(0,import_jsx_runtime.jsx)(ErrorFallback.Modal,f({},r))})},getFallbackComponent=import_lodash.default.memoize(e=>t=>(0,import_jsx_runtime.jsx)(SchemaSettingsChildErrorFallback,k(f({},t),{title:e}))),SchemaSettingsChildren=e=>{const{children:t}=e,{visible:o}=useSchemaSettings(),r=(0,import_react2.useRef)(!1),i=useFieldComponentName();return(0,import_react2.useEffect)(()=>{o&&(r.current=!0)},[o]),!o&&!r.current||!t||t.length===0?null:(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:t.sort((n,l)=>(n.sort||0)-(l.sort||0)).map(n=>{const l=`${i?i+"-":""}${n==null?void 0:n.name}`;return(0,import_jsx_runtime.jsx)(import_react_error_boundary.ErrorBoundary,{FallbackComponent:getFallbackComponent(l),onError:console.log,children:(0,import_jsx_runtime.jsx)(SchemaSettingsChild,f({},n))},l)})})},useChildrenDefault$1=()=>{},useComponentPropsDefault$1=()=>{},useVisibleDefault$1=()=>!0,SchemaSettingsChild=e=>{const{useVisible:t=useVisibleDefault$1,useChildren:o=useChildrenDefault$1,useComponentProps:r=useComponentPropsDefault$1,type:i,Component:n,children:l,hideIfNoChildren:a,componentProps:c}=e,u={item:SchemaSettingsItem,itemGroup:SchemaSettingsItemGroup,subMenu:SchemaSettingsSubMenu,divider:SchemaSettingsDivider,remove:SchemaSettingsRemove,select:SchemaSettingsSelectItem,cascader:SchemaSettingsCascaderItem,switch:SchemaSettingsSwitchItem,popup:SchemaSettingsPopupItem,actionModal:SchemaSettingsActionModalItem,modal:SchemaSettingsModalItem},d=o(),m=r(),p=useFindComponent(),h=(0,import_react2.useMemo)(()=>{const v=[...d||[],...l||[]];return v.length===0?void 0:v},[d,l]),g=t(),x=(0,import_react2.useMemo)(()=>!n&&i&&u[i]?u[i]:n,[i,n]);if(!g||!i&&!n)return null;const _=p(x);return!_||a&&!h?null:(0,import_jsx_runtime.jsx)(SchemaSettingItemContext.Provider,{value:e,children:(0,import_jsx_runtime.jsx)(_,k(f(f({},c),m),{children:Array.isArray(h)&&h.length>0&&(0,import_jsx_runtime.jsx)(SchemaSettingsChildren,{children:h})}))})},useGetAriaLabelOfDesigner=()=>{const e=(0,import_react.useFieldSchema)(),{name:t}=useCollection_deprecated();return{getAriaLabel:(0,import_react2.useCallback)((o,r)=>{if(!e)return`designer-${o}-${r}`;const i=e["x-component"],n=typeof i=="string"?i:(i==null?void 0:i.displayName)||(i==null?void 0:i.name),l=e["x-designer"]?`-${e["x-designer"]}`:"",a=e["x-settings"]?`-${e["x-settings"]}`:"",c=e["x-collection-field"]?`-${e["x-collection-field"]}`:"",u=t?`-${t}`:"";return r=r?`-${r}`:"",`designer-${o}-${n}${l}${a}${u}${c}${r}`},[e,t])}},SchemaSettingsIcon=import_react2.default.memo(e=>{const{name:t}=e,{getAriaLabel:o}=useGetAriaLabelOfDesigner(),r=(0,import_react2.useMemo)(()=>({cursor:"pointer",fontSize:12}),[]);return(0,import_jsx_runtime.jsx)(import_icons.MenuOutlined,{role:"button",style:r,"aria-label":o("schema-settings",t)})});SchemaSettingsIcon.displayName="SchemaSettingsIcon";const SchemaSettingsWrapper=import_react2.default.memo(e=>{const t=e,{items:o,Component:r=SchemaSettingsIcon,name:i,componentProps:n,style:l}=t,a=Y(t,["items","Component","name","componentProps","style"]),{dn:c}=useDesignable(),u=(0,import_react.useField)(),d=(0,import_react.useFieldSchema)(),m=(0,import_react2.useMemo)(()=>f({options:e,style:l},n),[n,e,l]);return(0,import_jsx_runtime.jsx)(SchemaSettingsDropdown,k(f({title:import_react2.default.createElement(r,m),dn:c,field:u,fieldSchema:d},a),{children:(0,import_jsx_runtime.jsx)(SchemaSettingsChildren,{children:o})}))});SchemaSettingsWrapper.displayName="SchemaSettingsWrapper";function useSchemaSettingsRender(e,t){const o=useApp(),r=(0,import_react2.useMemo)(()=>typeof e=="object"?e:o.schemaSettingsManager.get(e),[o.schemaSettingsManager,e]);return e?r?{exists:!0,render:(i={})=>import_react2.default.createElement(SchemaSettingsWrapper,f(f(f({},r.options),t),i))}:(console.error(`[nocobase]: SchemaSettings "${e}" not found`),{exists:!1,render:()=>null}):{exists:!1,render:()=>null}}const BlockTemplateContext=(0,import_react2.createContext)({componentNamePrefix:""}),BlockTemplateProvider=e=>(0,import_jsx_runtime.jsx)(BlockTemplateContext.Provider,{value:k(f({},e),{componentNamePrefix:e.componentNamePrefix||""}),children:e.children}),useBlockTemplateContext=()=>(0,import_react2.useContext)(BlockTemplateContext),itemsMerge=e=>e,gridRowColWrap=e=>({type:"void","x-component":"Grid.Row",properties:{[(0,import_shared.uid)()]:{type:"void","x-component":"Grid.Col",properties:{[(e==null?void 0:e.name)||(0,import_shared.uid)()]:e}}}}),removeTableColumn=(e,t)=>{t(e.parent)},removeGridFormItem=(e,t)=>{t(e,{removeParentsIfNoChildren:!0,breakRemoveOn:{"x-component":"Grid"}})},useRemoveGridFormItem=()=>{const e=(0,import_react.useForm)();return(t,o)=>{var r;o(t,{removeParentsIfNoChildren:!0,breakRemoveOn:{"x-component":"Grid"}}),(r=e.values)==null||delete r[t.name]}},findTableColumn=(e,t,o,r)=>e.reduceProperties((i,n)=>n[t]===o&&(!r||n.name===r)?n:n.reduceProperties((a,c)=>c[t]===o&&(!r||c.name===r)?c:a)||i),quickEditField$1=["attachment","textarea","markdown","json","richText","polygon","circle","point","lineString","vditor"];function useTableColumnInitializerFields(){const{name:e,currentFields:t=[]}=useCollection_deprecated(),{getInterface:o,getCollection:r}=useCollectionManager_deprecated(),i=(0,import_react.useFieldSchema)()["x-component"]==="AssociationField.SubTable",n=(0,import_react.useForm)(),l=i?n.readPretty:!0;return t.filter(a=>!a.collectionName||a.collectionName===e).filter(a=>(a==null?void 0:a.interface)&&(a==null?void 0:a.interface)!=="subTable"&&!(a!=null&&a.treeChildren)).map(a=>{var c,u,d,m;const p=o(a.interface),h=(a==null?void 0:a.target)&&((c=r(a==null?void 0:a.target))==null?void 0:c.template)==="file",g=((u=a==null?void 0:a.uiSchema)==null?void 0:u["x-component"])==="Preview",x={name:a.name,"x-collection-field":`${e}.${a.name}`,"x-component":"CollectionField","x-component-props":h?{fieldNames:{label:"preview",value:"id"}}:g?{size:"small"}:{},"x-read-pretty":l||((d=a.uiSchema)==null?void 0:d["x-read-pretty"]),"x-decorator":i?quickEditField$1.includes(a.interface)||h?"QuickEdit":"FormItem":null,"x-decorator-props":{labelStyle:{display:"none"}}};return{type:"item",name:a.name,title:((m=a==null?void 0:a.uiSchema)==null?void 0:m.title)||a.name,Component:"TableCollectionFieldInitializer",find:findTableColumn,remove:removeTableColumn,schemaInitialize:_=>{var v;(v=p==null?void 0:p.schemaInitialize)==null||v.call(p,_,{field:a,readPretty:l,block:"Table",targetCollection:r(a.target)})},field:a,schema:x}})}function useAssociatedTableColumnInitializerFields(){var e;const{fields:t}=useCollection_deprecated(),{t:o}=(0,import_react_i18next.useTranslation)(),{getInterface:r,getCollectionFields:i,getCollection:n}=useCollectionManager_deprecated();return(e=t==null?void 0:t.filter(l=>["o2o","oho","obo","m2o"].includes(l.interface)))==null?void 0:e.map(l=>getGroupItemForTable({getCollectionFields:i,field:l,getInterface:r,getCollection:n,schemaName:l.name,maxDepth:2,depth:1,t:o}))}function getGroupItemForTable({getCollectionFields:e,field:t,getInterface:o,getCollection:r,schemaName:i,maxDepth:n,depth:l,t:a}){var c,u;const d=e(t.target),m=(c=d==null?void 0:d.filter(h=>(h==null?void 0:h.interface)&&!["subTable"].includes(h==null?void 0:h.interface)&&!(h!=null&&h.treeChildren)))==null?void 0:c.map(h=>{var g;const x=o(h.interface),_=`${i}.${h.name}`,v={name:_,"x-component":"CollectionField","x-read-pretty":!0,"x-collection-field":`${t.target}.${h.name}`,"x-component-props":{}};return{type:"item",key:`${t.target}_${h.name}_${_}`,name:_,title:((g=h==null?void 0:h.uiSchema)==null?void 0:g.title)||h.name,Component:"TableCollectionFieldInitializer",find:findTableColumn,remove:removeTableColumn,schemaInitialize:b=>{var C;(C=x==null?void 0:x.schemaInitialize)==null||C.call(x,b,{field:h,readPretty:!0,block:"Table",targetCollection:r(t.target)})},field:h,schema:v}}),p=[{type:"itemGroup",key:`${t.target}_${i}_displayFields`,name:`${i}-displayCollectionFields`,title:a("Display fields"),children:m}];if(l<n){const h=d==null?void 0:d.filter(g=>["o2o","oho","obo","m2o"].includes(g.interface)).map(g=>getGroupItemForTable({getCollectionFields:e,field:g,getInterface:o,getCollection:r,schemaName:`${i}.${g.name}`,maxDepth:n,depth:l+1,t:a}));if(h.length){const g={type:"itemGroup",key:`${t.target}_${i}_associationFields`,name:`${i}-associationFields`,title:a("Display association fields"),children:h};p.push(g)}}return{type:"subMenu",key:`${t.target}_${i}_submenu`,name:i,title:(u=t.uiSchema)==null?void 0:u.title,children:p}}function useInheritsTableColumnInitializerFields(){const{name:e}=useCollection_deprecated(),{getInterface:t,getInheritCollections:o,getCollection:r,getParentCollectionFields:i}=useCollectionManager_deprecated(),n=(0,import_react.useFieldSchema)()["x-component"]==="AssociationField.SubTable",l=(0,import_react.useForm)(),a=n?l.readPretty:!0,c=o(e);return c==null?void 0:c.map(u=>{const d=i(u,e),m=r(u);return{[m==null?void 0:m.title]:d==null?void 0:d.filter(p=>p==null?void 0:p.interface).map(p=>{var h,g,x,_;const v=t(p.interface),b=(p==null?void 0:p.target)&&((h=r(p==null?void 0:p.target))==null?void 0:h.template)==="file",C={name:`${p.name}`,"x-component":"CollectionField","x-read-pretty":a||((g=p.uiSchema)==null?void 0:g["x-read-pretty"]),"x-collection-field":`${e}.${p.name}`,"x-component-props":b?{fieldNames:{label:"preview",value:"id"}}:{},"x-decorator":n?quickEditField$1.includes(p.interface)||b?"QuickEdit":"FormItem":null,"x-decorator-props":{labelStyle:{display:"none"}}};return{name:((x=p==null?void 0:p.uiSchema)==null?void 0:x.title)||p.name,type:"item",title:((_=p==null?void 0:p.uiSchema)==null?void 0:_.title)||p.name,Component:"TableCollectionFieldInitializer",find:findTableColumn,remove:removeTableColumn,schemaInitialize:y=>{var S;(S=v==null?void 0:v.schemaInitialize)==null||S.call(v,y,{field:p,readPretty:!0,block:"Table",targetCollection:r(p==null?void 0:p.target)})},field:p,schema:C}})}})}const useFormItemInitializerFields=e=>{var t,o;const{name:r,currentFields:i}=useCollection_deprecated(),{getInterface:n,getCollection:l}=useCollectionManager_deprecated(),a=(0,import_react.useForm)(),{readPretty:c=a.readPretty,block:u="Form"}=e||{},{fieldSchema:d}=useActionContext(),m=d==null?void 0:d["x-action"];return(o=(t=i.filter(p=>!p.collectionName||p.collectionName===r))==null?void 0:t.filter(p=>(p==null?void 0:p.interface)&&!(p!=null&&p.treeChildren)))==null?void 0:o.map(p=>{var h,g,x,_,v;const b=n(p.interface),C=l(p.target),y=(p==null?void 0:p.target)&&((h=l(p==null?void 0:p.target))==null?void 0:h.template)==="file",S=C,F=(x=(g=p==null?void 0:p.uiSchema)==null?void 0:g["x-component-props"])==null?void 0:x.fieldNames,j={type:"string",name:p.name,"x-toolbar":"FormItemSchemaToolbar","x-settings":"fieldSettings:FormItem","x-component":"CollectionField","x-decorator":"FormItem","x-collection-field":`${r}.${p.name}`,"x-component-props":y?{fieldNames:{label:"preview",value:"id"}}:S&&F?{fieldNames:k(f({},F),{label:(C==null?void 0:C.titleField)||F.label})}:{},"x-read-pretty":(_=p==null?void 0:p.uiSchema)==null?void 0:_["x-read-pretty"]},P={type:"item",name:p.name,title:((v=p==null?void 0:p.uiSchema)==null?void 0:v.title)||p.name,Component:"CollectionFieldInitializer",remove:removeGridFormItem,schemaInitialize:A=>{var T;(T=b==null?void 0:b.schemaInitialize)==null||T.call(b,A,{field:p,block:u,readPretty:c,action:m,targetCollection:C})},schema:j};return u=="Kanban"&&(P.find=(A,T,D)=>{const E=findSchema(A,"x-component",u);return findSchema(E,T,D)}),P})},useFilterFormItemInitializerFields=e=>{var t,o;const{name:r,currentFields:i}=useCollection_deprecated(),{getInterface:n,getCollection:l}=useCollectionManager_deprecated(),a=(0,import_react.useForm)(),{readPretty:c=a.readPretty,block:u="FilterForm"}=e||{},{snapshot:d,fieldSchema:m}=useActionContext(),p=m==null?void 0:m["x-action"];return(o=(t=i.filter(h=>!h.collectionName||h.collectionName===r))==null?void 0:t.filter(h=>{var g;return(h==null?void 0:h.interface)&&((g=n(h.interface))==null?void 0:g.filterable)}))==null?void 0:o.map(h=>{var g,x,_;const v=n(h.interface),b=l(h.target);let C={type:"string",name:h.name,required:!1,"x-toolbar":"FormItemSchemaToolbar","x-settings":"fieldSettings:FilterFormItem","x-component":"CollectionField","x-decorator":"FormItem","x-use-decorator-props":"useFormItemProps","x-collection-field":`${r}.${h.name}`,"x-component-props":{utc:!1}};return isAssocField(h)&&(C={type:"string",name:`${h.name}`,required:!1,"x-toolbar":"FormItemSchemaToolbar","x-settings":"fieldSettings:FilterFormItem","x-component":"CollectionField","x-decorator":"FormItem","x-use-decorator-props":"useFormItemProps","x-collection-field":`${r}.${h.name}`,"x-component-props":k(f({},(g=h.uiSchema)==null?void 0:g["x-component-props"]),{utc:!1})}),{name:((x=h==null?void 0:h.uiSchema)==null?void 0:x.title)||h.name,type:"item",title:((_=h==null?void 0:h.uiSchema)==null?void 0:_.title)||h.name,Component:"CollectionFieldInitializer",remove:removeGridFormItem,schemaInitialize:y=>{var S;(S=v==null?void 0:v.schemaInitialize)==null||S.call(v,y,{field:h,block:u,readPretty:c,action:p,targetCollection:b})},schema:C}})},useAssociatedFormItemInitializerFields=e=>{var t;const{name:o,fields:r}=useCollection_deprecated(),{getInterface:i,getCollectionFields:n,getCollection:l}=useCollectionManager_deprecated(),a=(0,import_react.useForm)(),{t:c}=(0,import_react_i18next.useTranslation)(),{readPretty:u=a.readPretty,block:d="Form"}=e||{},m=d==="Form"?["m2o","obo","oho"]:["o2o","oho","obo","m2o"];return(t=r==null?void 0:r.filter(p=>m.includes(p.interface)))==null?void 0:t.map(p=>getGroupItemForForm({getCollectionFields:n,field:p,getInterface:i,getCollection:l,readPretty:u,block:d,schemaName:p.name,maxDepth:2,depth:1,t:c}))},associationFieldToMenu=(e,t,o,r,i)=>{var n,l,a;if(e.target&&e.uiSchema){if(i.includes(e.target)||i.length>=1)return;const u=r(e.target);return u!=null&&u.length?{type:"subMenu",name:t,title:(n=e.uiSchema)==null?void 0:n.title,children:u.map(d=>associationFieldToMenu(d,`${t}.${d.name}`,o,r,[...i,e.target])).filter(Boolean)}:void 0}if(!e.uiSchema)return;const c={type:"string",name:t,"x-toolbar":"FormItemSchemaToolbar","x-settings":"fieldSettings:FilterFormItem","x-designer-props":{interface:e.interface},"x-component":"CollectionField","x-component-props":{utc:!1},"x-read-pretty":!1,"x-decorator":"FormItem","x-collection-field":`${o}.${t}`};return{name:((l=e.uiSchema)==null?void 0:l.title)||e.name,type:"item",title:((a=e.uiSchema)==null?void 0:a.title)||e.name,Component:"CollectionFieldInitializer",remove:removeGridFormItem,schema:c}},useFilterAssociatedFormItemInitializerFields=()=>{const{name:e,fields:t}=useCollection_deprecated(),{getCollectionFields:o}=useCollectionManager_deprecated(),r=["attachmentURL"];return t==null?void 0:t.filter(i=>i.target&&i.uiSchema&&!r.includes(i.interface)).map(i=>associationFieldToMenu(i,i.name,e,o,[])).filter(Boolean)},useInheritsFormItemInitializerFields=e=>{const{name:t}=useCollection_deprecated(),{getInterface:o,getInheritCollections:r,getCollection:i,getParentCollectionFields:n}=useCollectionManager_deprecated(),l=r(t);useActionContext();const a=(0,import_react.useForm)();return l==null?void 0:l.map(c=>{var u;const d=n(c,t),{readPretty:m=a.readPretty,block:p="Form",component:h="CollectionField"}=e||{},g=i(c);return{[g==null?void 0:g.title]:(u=d==null?void 0:d.filter(x=>x==null?void 0:x.interface))==null?void 0:u.map(x=>{var _,v,b,C;const y=o(x.interface),S=i(x.target),F={type:"string",name:x.name,title:((_=x==null?void 0:x.uiSchema)==null?void 0:_.title)||x.name,"x-toolbar":"FormItemSchemaToolbar","x-settings":"fieldSettings:FormItem","x-component":h,"x-decorator":"FormItem","x-collection-field":`${t}.${x.name}`,"x-component-props":{},"x-read-pretty":(v=x==null?void 0:x.uiSchema)==null?void 0:v["x-read-pretty"]};return{name:((b=x==null?void 0:x.uiSchema)==null?void 0:b.title)||x.name,type:"item",title:((C=x==null?void 0:x.uiSchema)==null?void 0:C.title)||x.name,Component:"CollectionFieldInitializer",remove:removeGridFormItem,schemaInitialize:j=>{var P;(P=y==null?void 0:y.schemaInitialize)==null||P.call(y,j,{field:x,block:p,readPretty:m,targetCollection:S})},schema:F}})}})},useFilterInheritsFormItemInitializerFields=e=>{const{name:t}=useCollection_deprecated(),{getInterface:o,getInheritCollections:r,getCollection:i,getParentCollectionFields:n}=useCollectionManager_deprecated(),l=r(t);useActionContext();const a=(0,import_react.useForm)();return l==null?void 0:l.map(c=>{var u;const d=n(c,t),{readPretty:m=a.readPretty,block:p="Form"}={};return{[i(c).title]:(u=d==null?void 0:d.filter(h=>{var g;return(h==null?void 0:h.interface)&&((g=o(h.interface))==null?void 0:g.filterable)}))==null?void 0:u.map(h=>{var g,x,_,v;const b=o(h.interface),C=i(h.target),y={type:"string",name:h.name,title:((g=h==null?void 0:h.uiSchema)==null?void 0:g.title)||h.name,required:!1,"x-toolbar":"FormItemSchemaToolbar","x-settings":"fieldSettings:FilterFormItem","x-component":"CollectionField","x-decorator":"FormItem","x-collection-field":`${t}.${h.name}`,"x-component-props":{utc:!1},"x-read-pretty":(x=h==null?void 0:h.uiSchema)==null?void 0:x["x-read-pretty"]};return{name:((_=h==null?void 0:h.uiSchema)==null?void 0:_.title)||h.name,type:"item",title:((v=h==null?void 0:h.uiSchema)==null?void 0:v.title)||h.name,Component:"CollectionFieldInitializer",remove:removeGridFormItem,schemaInitialize:S=>{var F;(F=b==null?void 0:b.schemaInitialize)==null||F.call(b,S,{field:h,block:p,readPretty:m,targetCollection:C})},schema:y}})}})},useCustomFormItemInitializerFields=e=>{var t;const{name:o,currentFields:r}=useCollection_deprecated(),{getInterface:i,getCollection:n}=useCollectionManager_deprecated(),l=(0,import_react.useForm)(),{readPretty:a=l.readPretty,block:c="Form"}=e||{},u=useRemoveGridFormItem();return(t=r==null?void 0:r.filter(d=>!d.inherit&&(d==null?void 0:d.interface)&&d.interface!=="snapshot"&&d.type!=="sequence"))==null?void 0:t.map(d=>{var m,p;const h=i(d.interface),g={type:"string",name:d.name,"x-toolbar":"FormItemSchemaToolbar","x-settings":"fieldSettings:FormItem","x-component":"AssignedField","x-decorator":"FormItem","x-collection-field":`${o}.${d.name}`};return{name:((m=d==null?void 0:d.uiSchema)==null?void 0:m.title)||d.name,type:"item",title:((p=d==null?void 0:d.uiSchema)==null?void 0:p.title)||d.name,Component:"CollectionFieldInitializer",remove:u,schemaInitialize:x=>{var _;(_=h==null?void 0:h.schemaInitialize)==null||_.call(h,x,{field:d,block:c,readPretty:a,targetCollection:n(d.target)})},schema:g}})},findSchema=(e,t,o,r)=>import_react.Schema.isSchemaInstance(e)?e.reduceProperties((i,n)=>{if(n[t]===o&&(!r||n.name===r))return n;if(n["x-component"]&&n["x-component"]!=="Action.Container"&&!n["x-component"].includes("AssociationField")){const l=findSchema(n,t,o,r);if(l)return l}return i}):null,removeSchema=(e,t)=>t(e),recursiveParent$1=e=>e.parent?e.parent["x-initializer"]?e.parent:recursiveParent$1(e.parent):null,useCurrentSchema=(e,t,o=findSchema,r=removeSchema,i)=>{const{removeActiveFieldName:n}=useFormActiveFields()||{},{form:l}=useFormBlockContext();let a=(0,import_react.useFieldSchema)();if(!(a!=null&&a["x-initializer"])&&(a==null?void 0:a["x-decorator"])==="FormItem"){const d=recursiveParent$1(a);d&&(a=d)}const{remove:c}=useDesignable(),u=o(a,t,e,i);return{schema:u,exists:!!u,remove(){n==null||n(u.name),l==null||l.query(new RegExp(`${u.parent.name}.${u.name}$`)).forEach(d=>{var m,p;(m=d.setValue)==null||m.call(d,void 0),(p=d.setInitialValue)==null||p.call(d,void 0)}),u&&r(u,c)}}},useRecordCollectionDataSourceItems=(e,t=null,o=null,r=null)=>{const{t:i}=(0,import_react_i18next.useTranslation)(),n=useCollection_deprecated(),{getTemplatesByCollection:l}=useSchemaTemplateManager(),a=l(n.dataSource,o||n.name).filter(m=>e&&m.componentName===e).filter(m=>["FormItem","ReadPrettyFormItem"].includes(e)||m.resourceName===r),c=Array.from(initializerMenusGenerators.values()).map(m=>m({collection:n,componentName:e})).filter(Boolean).flat();if(!a.length&&!c.length||isInTemplateSettingPage())return[];const u=0,d=[{type:"divider",name:"divider"}];return a.length&&d.push({key:`${o||e}_table_subMenu_${u}_copy`,type:"subMenu",name:"copy",title:i("Duplicate template"),children:a.map(m=>{const p=["FormItem","ReadPrettyFormItem"].includes(m==null?void 0:m.componentName)?`${m==null?void 0:m.name} ${i("(Fields only)")}`:m==null?void 0:m.name;return{type:"item",mode:"copy",name:n.name,template:m,item:t,title:p||i("Untitled")}})},{key:`${o||e}_table_subMenu_${u}_ref`,type:"subMenu",name:"ref",title:i("Reference template"),children:a.map(m=>{const p=["FormItem","ReadPrettyFormItem"].includes(m==null?void 0:m.componentName)?`${m==null?void 0:m.name} ${i("(Fields only)")}`:m==null?void 0:m.name;return{type:"item",mode:"reference",name:n.name,template:m,item:t,title:p||i("Untitled")}})}),c.length&&d.push({type:"subMenu",name:"inherited_templates",key:`associationFiled_${e}_table_subMenu_${u}_inherited`,title:i("Inherited template"),children:c}),[{key:`${o||e}_table_blank`,type:"item",name:n.name,title:i("Blank block"),item:t},...d]},useCollectionDataSourceItems=({name:e,componentName:t,filter:o=()=>!0,onlyCurrentDataSource:r=!1,showAssociationFields:i,filterDataSource:n,dataBlockInitializerProps:l,hideOtherRecordsInPopup:a,onClick:c,filterOtherRecordsCollection:u,currentText:d,otherText:m})=>{const{componentNamePrefix:p}=useBlockTemplateContext(),{t:h}=(0,import_react_i18next.useTranslation)(),g=useDataSourceManager(),x=useDataSourceKey(),_=useCollection(),v=useAssociationFields({componentName:p+t,filterCollections:o,showAssociationFields:i,componentNamePrefix:p,name:e}),b=useAssociationName();let C=g.getAllCollections({filterCollection:F=>r&&F.dataSource!==x?!1:o({collection:F}),filterDataSource:n});r&&(C=C.filter(F=>F.key===x));const{getTemplatesByCollection:y}=useSchemaTemplateManager(),S=(0,import_react2.useMemo)(()=>C.map(({key:F,displayName:j,collections:P})=>({name:F,label:j,type:"subMenu",children:[...getChildren({name:e,association:b,collections:P,componentName:p+t,searchValue:"",dataSource:F,getTemplatesByCollection:y,t:h,componentNamePrefix:p}).sort(A=>{const T=import_lodash.default.toArray((_==null?void 0:_.inherits)||[]);if(A.name===(_==null?void 0:_.name)||T.some(D=>D===A.name))return-1})]})),[C,_==null?void 0:_.inherits,_==null?void 0:_.name,t,y,h]);return i?(0,import_react2.useMemo)(()=>{var F;const j={name:"currentRecord",collectionName:_.name,dataSource:_.dataSource,Component:DataBlockInitializer,onClick(){},componentProps:k(f({},l),{icon:null,title:d||h("Current record"),name:"currentRecord",hideSearch:!1,hideChildrenIfSingleCollection:!0,items:S})},P={name:"associationRecords",Component:DataBlockInitializer,onClick(){},componentProps:k(f({},l),{icon:null,title:h("Associated records"),name:"associationRecords",hideSearch:!1,items:[{name:"associationFields",label:h("Association fields"),type:"subMenu",children:v}]})},A={ReadPrettyFormItem:"Details"},T={name:"otherRecords",Component:DataBlockInitializer,onClick(){},componentProps:k(f({},l),{hideSearch:!1,icon:null,title:m||h("Other records"),name:"otherRecords",showAssociationFields:!1,onlyCurrentDataSource:!1,hideChildrenIfSingleCollection:!1,fromOthersInPopup:!0,componentType:A[t]||t,filter({collection:R,associationField:M}){return u?u(R):!0},onClick(R){c(k(f({},R),{fromOthersInPopup:!0}))}})};let D;const E=v.length?P:null;if(S[0].children.length&&v.length)a?D=[j,E]:D=[j,E,T];else if(S[0].children.length)if(a){if(S[0].children.length<=1)return S[0].children=((F=S[0].children[0])==null?void 0:F.children)||[],S;D=[j]}else D=[j,T];else a?D=[E]:D=[E,T];return[{name:"records",label:h("Records"),type:"subMenu",children:D.filter(Boolean)}]},[v,_.dataSource,_.name,t,l,u,a,S,c,h]):S},createDetailsBlockSchema=e=>{const t=e,{formItemInitializers:o="details:configureFields",actionInitializers:r="detailsWithPaging:configureActions",collection:i,dataSource:n,association:l,template:a,settings:c,action:u="list"}=t,d=Y(t,["formItemInitializers","actionInitializers","collection","dataSource","association","template","settings","action"]),m=l||i;return{type:"void","x-acl-action":u==="get"?`${m}:get`:`${m}:view`,"x-decorator":"DetailsBlockProvider","x-decorator-props":f(f({dataSource:n,collection:i,association:l,readPretty:!0,action:u},u==="list"?{params:{pageSize:1}}:{}),d),"x-toolbar":"BlockSchemaToolbar","x-settings":c,"x-component":"CardItem",properties:{[(0,import_shared.uid)()]:{type:"void","x-component":"Details","x-use-component-props":"useDetailsBlockProps","x-read-pretty":!0,properties:f({[(0,import_shared.uid)()]:{type:"void","x-initializer":r,"x-component":"ActionBar","x-component-props":{style:{marginBottom:24}},properties:{}},grid:a||{type:"void","x-component":"Grid","x-initializer":o,properties:{}}},u==="list"?{pagination:{type:"void","x-component":"Pagination","x-use-component-props":"useDetailsPaginationProps"}}:{})}}}},createFormBlockSchema=e=>{const t=e,{formItemInitializers:o="form:configureFields",actionInitializers:r="createForm:configureActions",collection:i,resource:n,dataSource:l,association:a,action:c,actions:u={},"x-designer":d="FormV2.Designer",template:m,title:p,settings:h}=t,g=Y(t,["formItemInitializers","actionInitializers","collection","resource","dataSource","association","action","actions","x-designer","template","title","settings"]),x=n||a||i;return k(f({type:"void","x-acl-action-props":{skipScopeCheck:!c},"x-acl-action":c?`${x}:update`:`${x}:create`,"x-decorator":"FormBlockProvider","x-decorator-props":k(f({},g),{action:c,dataSource:l,resource:x,collection:i,association:a}),"x-toolbar":"BlockSchemaToolbar"},h?{"x-settings":h}:{"x-designer":d}),{"x-component":"CardItem","x-component-props":{title:p},properties:{[(0,import_shared.uid)()]:{type:"void","x-component":"FormV2","x-use-component-props":"useFormBlockProps",properties:{grid:m||{type:"void","x-component":"Grid","x-initializer":o,properties:{}},[(0,import_shared.uid)()]:{type:"void","x-initializer":r,"x-component":"ActionBar","x-component-props":{layout:"one-column",style:{marginTop:24}},properties:u}}}}})},createReadPrettyFormBlockSchema=e=>{const t=e,{formItemInitializers:o="details:configureFields",actionInitializers:r="details:configureActions",collection:i,association:n,dataSource:l,resource:a,template:c,settings:u}=t,d=Y(t,["formItemInitializers","actionInitializers","collection","association","dataSource","resource","template","settings"]),m=a||n||i;return{type:"void","x-acl-action":`${m}:get`,"x-decorator":"FormBlockProvider","x-decorator-props":f({resource:m,collection:i,association:n,dataSource:l,readPretty:!0,action:"get",useParams:"{{ useParamsFromRecord }}"},d),"x-toolbar":"BlockSchemaToolbar","x-settings":u,"x-component":"CardItem",properties:{[(0,import_shared.uid)()]:{type:"void","x-component":"FormV2","x-use-component-props":"useFormBlockProps","x-read-pretty":!0,properties:{[(0,import_shared.uid)()]:{type:"void","x-initializer":r,"x-component":"ActionBar","x-component-props":{style:{marginBottom:24}},properties:{}},grid:c||{type:"void","x-component":"Grid","x-initializer":o,properties:{}}}}}}},createTableBlockSchema=e=>{const t=e,{collection:o,rowKey:r,tableActionInitializers:i,tableColumnInitializers:n,tableActionColumnInitializers:l,tableBlockProvider:a,disableTemplate:c,dataSource:u,blockType:d,pageSize:m=20}=t,p=Y(t,["collection","rowKey","tableActionInitializers","tableColumnInitializers","tableActionColumnInitializers","tableBlockProvider","disableTemplate","dataSource","blockType","pageSize"]);return{type:"void","x-decorator":a??"TableBlockProvider","x-acl-action":`${o}:list`,"x-decorator-props":f({collection:o,dataSource:u,action:"list",params:{pageSize:m},rowKey:r,showIndex:!0,dragSort:!1,disableTemplate:c??!1,blockType:d},p),"x-toolbar":"BlockSchemaToolbar","x-settings":"blockSettings:table","x-component":"CardItem","x-filter-targets":[],properties:{actions:{type:"void","x-initializer":i??"table:configureActions","x-component":"ActionBar","x-component-props":{style:{marginBottom:"var(--nb-spacing)"}},properties:{}},[(0,import_shared.uid)()]:{type:"array","x-initializer":n??"table:configureColumns","x-component":"TableV2","x-use-component-props":"useTableBlockProps","x-component-props":{rowKey:"id",rowSelection:{type:"checkbox"}},properties:{actions:{type:"void",title:'{{ t("Actions") }}',"x-action-column":"actions","x-decorator":"TableV2.Column.ActionBar","x-component":"TableV2.Column","x-designer":"TableV2.ActionColumnDesigner","x-initializer":l??"table:configureItemActions",properties:{[(0,import_shared.uid)()]:{type:"void","x-decorator":"DndContext","x-component":"Space","x-component-props":{},properties:{}}}}}}}}},getChildren=({name:e,association:t,collections:o,dataSource:r,componentName:i,searchValue:n,getTemplatesByCollection:l,t:a,componentNamePrefix:c})=>{var u;return(u=o==null?void 0:o.filter(d=>{if(d.inherit)return!1;if(d.filterTargetKey){if([c+"Kanban",c+"FormItem"].includes(i)&&(d.template==="view"&&!d.writableView||d.template==="sql")||d.template==="file"&&[c+"Kanban",c+"FormItem",c+"Calendar"].includes(i))return!1;{const m=d.title||d.tableName;return m?m.toUpperCase().includes(n.toUpperCase())&&!(d!=null&&d.isThrough&&d!=null&&d.autoCreate):!1}}else return!1}))==null?void 0:u.map((d,m)=>{const p=d.title||d.tableName||d.label,h=l(r,d.name).filter(_=>{var v;const b=e!=="otherRecords"&&t;return b?_.resourceName!==t?!1:i&&_.componentName===i:!b&&(v=_==null?void 0:_.resourceName)!=null&&v.includes(".")?!1:i&&_.componentName===i}),g=Array.from(initializerMenusGenerators.values()).map(_=>_({item:d,index:m,componentName:i,association:t})).filter(Boolean).flat();if(!h.length&&!g.length||isInTemplateSettingPage())return{type:"item",name:d.name,title:p,dataSource:r};const x=[{type:"divider",name:"divider"}];return h.length&&x.push({key:`${i}_table_subMenu_${m}_copy`,type:"subMenu",name:"copy",dataSource:r,title:a("Duplicate template"),children:h.map(_=>{const v=[c+"FormItem",c+"ReadPrettyFormItem"].includes(_==null?void 0:_.componentName)?`${_==null?void 0:_.name} ${a("(Fields only)")}`:_==null?void 0:_.name;return{type:"item",mode:"copy",name:d.name,template:_,dataSource:r,title:v||a("Untitled")}})},{key:`${i}_table_subMenu_${m}_ref`,type:"subMenu",name:"ref",dataSource:r,title:a("Reference template"),children:h.map(_=>{const v=[c+"FormItem",c+"ReadPrettyFormItem"].includes(_==null?void 0:_.componentName)?`${_==null?void 0:_.name} ${a("(Fields only)")}`:_==null?void 0:_.name;return{type:"item",mode:"reference",name:d.name,template:_,dataSource:r,title:v||a("Untitled")}})}),g.length&&x.push({type:"subMenu",name:"inherited_templates",key:`associationFiled_${i}_table_subMenu_${m}_inherited`,dataSource:r,title:a("Inherited template"),children:g}),{key:`${i}_table_subMenu_${m}`,type:"subMenu",name:`${d.name}_${m}`,title:p,dataSource:r,children:[{type:"item",name:d.name,dataSource:r,title:a("Blank block")},...x]}})};function getGroupItemForForm({getCollectionFields:e,field:t,getInterface:o,getCollection:r,readPretty:i,block:n,maxDepth:l,depth:a,schemaName:c,t:u}){var d,m;const p=e(t.target),h=(d=p==null?void 0:p.filter(x=>(x==null?void 0:x.interface)&&!["subTable"].includes(x==null?void 0:x.interface)&&!x.treeChildren))==null?void 0:d.map(x=>{var _,v;const b=o(x.interface),C=(t==null?void 0:t.target)&&((_=r(t==null?void 0:t.target))==null?void 0:_.template)==="file",y=`${c}.${x.name}`,S={type:"string",name:y,"x-toolbar":"FormItemSchemaToolbar","x-settings":"fieldSettings:FormItem","x-component":"CollectionField","x-read-pretty":i,"x-component-props":{"pattern-disable":n==="Form"&&i,fieldNames:C?{label:"preview",value:"id"}:void 0},"x-decorator":"FormItem","x-collection-field":`${t.target}.${x.name}`};return{name:y,type:"item",title:((v=x==null?void 0:x.uiSchema)==null?void 0:v.title)||x.name,Component:"CollectionFieldInitializer",remove:removeGridFormItem,schemaInitialize:F=>{var j;(j=b==null?void 0:b.schemaInitialize)==null||j.call(b,F,{field:x,block:n,readPretty:i,targetCollection:r(t.target)})},schema:S}}),g=[{type:"itemGroup",name:`${c}-displayCollectionFields`,title:u("Display fields"),children:h}];if(a<l){const x=p==null?void 0:p.filter(_=>["o2o","oho","obo","m2o"].includes(_.interface)).map(_=>getGroupItemForForm({getCollectionFields:e,field:_,getInterface:o,getCollection:r,schemaName:`${c}.${_.name}`,readPretty:i,block:n,maxDepth:l,depth:a+1,t:u}));if(x.length){const _={type:"itemGroup",name:`${c}-associationFields`,title:u("Display association fields"),children:x};g.push(_)}}return{type:"subMenu",name:`${c}.${t.name}`,title:(m=t.uiSchema)==null?void 0:m.title,children:g}}function useAssociationFields({componentName:e,filterCollections:t,showAssociationFields:o,componentNamePrefix:r,name:i}){const n=(0,import_react.useFieldSchema)(),{getCollectionFields:l}=useCollectionManager_deprecated(),a=useCollection_deprecated();useCollectionManager();const c=useDataSourceKey(),{getTemplatesByCollection:u}=useSchemaTemplateManager(),{t:d}=(0,import_react_i18next.useTranslation)(),m=useCompile();return(0,import_react2.useMemo)(()=>{if(!o)return[];let p=[];if(n["x-initializer"])p=a.fields;else{const h=recursiveParent$1(n.parent);h&&(p=l(h))}return p.filter(h=>["linkTo","subTable","o2m","m2m","obo","oho","o2o","m2o"].includes(h.interface)).filter(h=>t({associationField:h})).map((h,g)=>{const x=m(h.uiSchema.title||h.name),_=u(c,h.target).filter(y=>y.resourceName!==`${h.collectionName}.${h.name}`?!1:e===r+"ReadPrettyFormItem"?["hasOne","belongsTo"].includes(h.type)?y.componentName===r+"ReadPrettyFormItem":y.componentName===r+"Details":y.componentName===e),v="associationFiled_table_subMenu",b=Array.from(initializerMenusGenerators.values()).map(y=>y({collection:a,index:g,field:h,componentName:e,keyPrefix:v,name:i})).filter(Boolean).flat();if(!_.length&&!b.length||isInTemplateSettingPage())return{type:"item",name:`${h.collectionName}.${h.name}`,collectionName:h.target,title:x,dataSource:c,associationField:h};const C=[{type:"divider",name:"divider"}];return _.length&&C.push({key:`associationFiled_${e}_table_subMenu_${g}_copy`,type:"subMenu",name:"copy",dataSource:c,title:d("Duplicate template"),children:_.map(y=>{const S=[r+"FormItem",r+"ReadPrettyFormItem"].includes(y==null?void 0:y.componentName)?`${y==null?void 0:y.name} ${d("(Fields only)")}`:y==null?void 0:y.name;return{type:"item",mode:"copy",name:`${h.collectionName}.${h.name}`,collectionName:h.target,template:y,dataSource:c,title:S||d("Untitled"),associationField:h}})},{key:`associationFiled_${e}_table_subMenu_${g}_ref`,type:"subMenu",name:"ref",dataSource:c,title:d("Reference template"),children:_.map(y=>{const S=[r+"FormItem",r+"ReadPrettyFormItem"].includes(y==null?void 0:y.componentName)?`${y==null?void 0:y.name} ${d("(Fields only)")}`:y==null?void 0:y.name;return{type:"item",mode:"reference",name:`${h.collectionName}.${h.name}`,collectionName:h.target,template:y,dataSource:c,title:S||d("Untitled"),associationField:h}})}),b.length&&C.push({type:"subMenu",name:"inherited_templates",key:`associationFiled_${e}_table_subMenu_${g}_inherited`,dataSource:c,title:d("Inherited template"),children:b}),{key:`associationFiled_${e}_table_subMenu_${g}`,type:"subMenu",name:`${h.target}_${g}`,title:x,dataSource:c,children:[{type:"item",name:`${h.collectionName}.${h.name}`,collectionName:h.target,dataSource:c,title:d("Blank block"),associationField:h},...C]}})},[a.fields,m,e,c,n,t,l,u,o,d,r])}const isInTemplateSettingPage=()=>window.location.pathname.includes("/block-templates/inherited"),initializerMenusGenerators=new Map;function registerInitializerMenusGenerator(e,t){initializerMenusGenerators.set(e,t)}const useStyles$g=genStyleHook("nb-schema-toolbar",e=>{const{componentCls:t}=e;return{[t]:{position:"absolute",zIndex:999,top:0,left:0,right:0,bottom:0,border:"2px solid var(--colorBorderSettingsHover)",background:"var(--colorBgSettingsHover)",pointerEvents:"none","&.nb-in-template":{background:"var(--colorTemplateBgSettingsHover)"},"&.hidden":{transform:"scale(0)",pointerEvents:"none"},"&.hidden-e2e":{display:"none"},".ant-space-item .anticon":{margin:0},".toolbar-title":{pointerEvents:"none",position:"absolute",fontSize:12,padding:0,lineHeight:"16px",height:"16px",borderBottomRightRadius:2,borderRadius:2,top:2,left:2},".toolbar-title-tag":{padding:"0 3px",borderRadius:2,background:"var(--colorSettings)",color:"#fff",display:"block"},".toolbar-icons":{position:"absolute",right:"2px",top:"2px",lineHeight:"16px",pointerEvents:"all",".ant-space-item":{backgroundColor:"var(--colorSettings)",color:"#fff",lineHeight:"16px",width:"16px",paddingLeft:"1px",alignSelf:"stretch"}}}}}),titleCss=import_css.css`
|
|
311
311
|
pointer-events: none;
|
|
312
312
|
position: absolute;
|
|
313
313
|
font-size: 12px;
|
|
@@ -1709,7 +1709,7 @@ https://requirejs.org/docs/errors.html#`+e);return i.requireType=e,i.requireModu
|
|
|
1709
1709
|
border-top-color: transparent;
|
|
1710
1710
|
background-color: transparent;
|
|
1711
1711
|
}
|
|
1712
|
-
`,children:"x"})})})]})},confirm$1=(0,import_flow_engine.defineAction)({name:"confirm",title:(0,import_flow_engine.tExpr)("Confirmation"),uiSchema:{enable:{type:"boolean",title:(0,import_flow_engine.tExpr)("Enable secondary confirmation"),"x-decorator":"FormItem","x-component":"Switch"},title:{type:"string",title:(0,import_flow_engine.tExpr)("Title"),"x-decorator":"FormItem","x-component":TextAreaWithContextSelector,"x-component-props":{rows:2}},content:{type:"string",title:(0,import_flow_engine.tExpr)("Content"),"x-decorator":"FormItem","x-component":TextAreaWithContextSelector,"x-component-props":{rows:3}}},defaultParams:{enable:!1,title:(0,import_flow_engine.tExpr)("Please Confirm"),content:(0,import_flow_engine.tExpr)("Are you sure you want to perform the action?")},handler(e,t){return N(this,null,function*(){t.enable&&((yield e.modal.confirm({title:e.t(t.title),content:e.t(t.content),okText:e.t("Confirm"),cancelText:e.t("Cancel")}))||e.exit())})}}),itemKeyMap=new WeakMap;let itemKeyCounter=0;const getFilterItemKey=e=>{let t=itemKeyMap.get(e);return t||(itemKeyCounter+=1,t=`filter-item-${itemKeyCounter}`,itemKeyMap.set(e,t)),t},FilterGroup=(0,import_flow_engine.observer)(e=>{const{token:t}=import_antd.theme.useToken(),{value:o={logic:"$and",items:[]},FilterItem:r,showBorder:i=!1,onRemove:n,onChange:l,closeIcon:a=(0,import_jsx_runtime.jsx)(import_icons.CloseCircleOutlined,{style:{color:t.colorIcon}})}=e,{t:c}=(0,import_react_i18next.useTranslation)();o.logic||(o.logic="$and"),Array.isArray(o.items)||(o.items=[]);const{logic:u,items:d}=o,m=i?{position:"relative",border:`1px dashed ${t.colorBorder}`,padding:t.paddingSM,marginBottom:t.marginXS,borderRadius:t.borderRadius}:{position:"relative",marginBottom:t.marginXS},p=b=>{o.logic=b,l==null||l(o)},h=()=>{d.push({path:"",operator:"",value:""}),l==null||l(o)},g=()=>{d.push({logic:"$and",items:[]}),l==null||l(o)},x=b=>{d.splice(b,1),l==null||l(o)},_=b=>"path"in b||"operator"in b||"value"in b,v=b=>"logic"in b&&"items"in b;return(0,import_jsx_runtime.jsxs)("div",{style:m,children:[i&&n&&(0,import_jsx_runtime.jsx)("button",{type:"button","aria-label":"icon-close",style:{position:"absolute",right:10,top:10,cursor:"pointer",background:"transparent",border:0,padding:0},onClick:n,children:a}),(0,import_jsx_runtime.jsx)("div",{style:{marginBottom:8,color:t.colorText},children:(0,import_jsx_runtime.jsxs)("span",{children:[c("Meet")," ",(0,import_jsx_runtime.jsxs)(import_antd.Select,{"data-testid":"filter-select-all-or-any",style:{width:"auto"},value:u,onChange:p,children:[(0,import_jsx_runtime.jsx)(import_antd.Select.Option,{value:"$and",children:c("All")}),(0,import_jsx_runtime.jsx)(import_antd.Select.Option,{value:"$or",children:c("Any")})]})," ",c("conditions in the group")]})}),(0,import_jsx_runtime.jsx)("div",{children:d.map((b,C)=>v(b)?(0,import_jsx_runtime.jsx)(FilterGroup,{value:b,FilterItem:r,showBorder:!0,onRemove:()=>x(C),onChange:y=>{d[C]=y,l==null||l(o)}},getFilterItemKey(b)):_(b)?r?(0,import_jsx_runtime.jsx)("div",{style:{marginBottom:8,display:"flex",alignItems:"flex-end"},children:(0,import_jsx_runtime.jsxs)(import_antd.Space,{style:{flex:1,minWidth:0},children:[(0,import_jsx_runtime.jsx)(r,{value:b}),(0,import_jsx_runtime.jsx)("button",{type:"button","aria-label":"icon-close",style:{marginLeft:8,marginRight:8,flex:"0 0 auto",cursor:"pointer",background:"transparent",border:0,padding:0},onClick:()=>x(C),children:a})]})},getFilterItemKey(b)):(0,import_jsx_runtime.jsx)("div",{style:{marginBottom:8,display:"flex",alignItems:"flex-end"},children:(0,import_jsx_runtime.jsxs)(import_antd.Space,{style:{flex:1,minWidth:0},children:[(0,import_jsx_runtime.jsxs)("span",{children:[b.path," ",b.operator," ",String(b.value)]}),(0,import_jsx_runtime.jsx)("button",{type:"button","aria-label":"icon-close",style:{marginLeft:8,marginRight:8,flex:"0 0 auto",cursor:"pointer",background:"transparent",border:0,padding:0},onClick:()=>x(C),children:a})]})},getFilterItemKey(b)):(0,import_jsx_runtime.jsx)("div",{style:{marginBottom:8,display:"flex",alignItems:"flex-end"},children:(0,import_jsx_runtime.jsxs)(import_antd.Space,{style:{flex:1,minWidth:0},children:[(0,import_jsx_runtime.jsx)("span",{style:{color:t.colorTextTertiary},children:"Invalid filter item"}),(0,import_jsx_runtime.jsx)("button",{type:"button","aria-label":"icon-close",style:{marginLeft:8,marginRight:8,flex:"0 0 auto",cursor:"pointer",background:"transparent",border:0,padding:0},onClick:()=>x(C),children:a})]})},getFilterItemKey(b)))}),(0,import_jsx_runtime.jsxs)(import_antd.Space,{size:16,style:{marginTop:8,marginBottom:8},children:[(0,import_jsx_runtime.jsx)(import_antd.Button,{style:{padding:0},type:"link",size:"small",icon:(0,import_jsx_runtime.jsx)(import_icons.PlusOutlined,{}),onClick:h,children:c("Add condition")}),(0,import_jsx_runtime.jsx)(import_antd.Button,{style:{padding:0},type:"link",size:"small",icon:(0,import_jsx_runtime.jsx)(import_icons.PlusOutlined,{}),onClick:g,children:c("Add condition group")})]})]})},{displayName:"FilterGroup"}),FilterContainer=(0,import_flow_engine.observer)(e=>{var t;const{value:o,FilterItem:r,ctx:i}=e;o.logic||(o.logic="$and"),Array.isArray(o.items)||(o.items=[]);const n=()=>{var c;(c=i==null?void 0:i.model)!=null&&c.dispatchEvent&&i.model.dispatchEvent("reset")},l=()=>{var c;(c=i==null?void 0:i.model)!=null&&c.dispatchEvent&&i.model.dispatchEvent("submit")},a=((t=i==null?void 0:i.model)==null?void 0:t.translate)||(c=>c);return(0,import_jsx_runtime.jsxs)("form",{onSubmit:c=>{c.preventDefault(),l()},children:[(0,import_jsx_runtime.jsx)(FilterGroup,{value:o,FilterItem:r}),(0,import_jsx_runtime.jsxs)(import_antd.Space,{style:{width:"100%",display:"flex",justifyContent:"flex-end"},children:[(0,import_jsx_runtime.jsx)(import_antd.Button,{htmlType:"button",onClick:n,children:a("Reset")}),(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"primary",htmlType:"submit",children:a("Submit")})]})]})},{displayName:"FilterContent"}),fieldsToOptions=(e,t,o,r)=>e.map(i=>field2option(i,t,o,r)).filter(Boolean),field2option=(e,t,o,r)=>{var i;if(o.length&&t===1&&o.includes(e.name)||!e.interface||e.filterable===!1)return;const n=e.getInterfaceOptions();if(!(n!=null&&n.filterable))return;const{nested:l,children:a,operators:c}=n.filterable,u={name:e.name,type:e.type,target:e.target,title:r(e.title),schema:e==null?void 0:e.uiSchema,operators:(((i=c==null?void 0:c.filter)==null?void 0:i.call(c,d=>!(d!=null&&d.visible)||d.visible(e)))||[]).map(d=>k(f({},d),{label:r(d.label)}))};if(!(e.target&&t>2)){if(t>2)return u;if(a!=null&&a.length&&(u.children=a),l){const d=e.getFields().filter(p=>p.target!=="attachments"&&p.interface!=="formula"),m=fieldsToOptions(d,t+1,o,r).filter(Boolean);u.children=u.children||[],u.children.push(...m)}return u}},FilterItem=(0,import_flow_engine.observer)(e=>{var t;const{path:o,operator:r,value:i}=e.value,n=e.model,l=((t=n.context.blockModel.collection)==null?void 0:t.getFields().filter(g=>g.target!=="attachments"))||[],a=getIgnoreFieldsNames(n.props.filterableFieldNames||[],l.map(g=>g.name)),c=n.translate,u=fieldsToOptions(l.filter(g=>g.target!=="attachments"&&g.interface!=="formula"&&!["belongsTo","belongsToMany","hasOne","hasMany","oho","obo","m2o","o2m","m2m"].includes(g.type)),1,e.noIgnore?[]:a,c).filter(Boolean),d=(0,import_react2.useMemo)(()=>{const g=u.find(x=>x.name===o);return(g==null?void 0:g.operators)||[]},[u,o]),m=g=>{var x;e.value.path=g;const _=u.find(v=>v.name===g);((x=_==null?void 0:_.operators)==null?void 0:x.length)>0?e.value.operator=_.operators[0].value:e.value.operator="",e.value.value=""},p=g=>{e.value.operator=g},h=g=>{e.value.value=g.target.value};return(0,import_jsx_runtime.jsxs)(import_antd.Space,{children:[(0,import_jsx_runtime.jsx)(import_antd.Select,{style:{width:200},placeholder:c("Select field"),value:o||void 0,onChange:m,children:u.map(g=>(0,import_jsx_runtime.jsx)(import_antd.Select.Option,{value:g.name,children:g.title},g.name))}),(0,import_jsx_runtime.jsx)(import_antd.Select,{style:{width:120},placeholder:c("Select operator"),value:r||void 0,onChange:p,disabled:!o||d.length===0,children:d.map(g=>(0,import_jsx_runtime.jsx)(import_antd.Select.Option,{value:g.value,children:g.label},g.value))}),(0,import_jsx_runtime.jsx)(import_antd.Input,{style:{width:200},placeholder:c("Enter value"),value:i,onChange:h})]})},{displayName:"FilterItem"});function getIgnoreFieldsNames(e,t){return t==null?void 0:t.filter(o=>!e.includes(o))}function normalizeUiSchemaEnumToOptions(e=[]){return Array.isArray(e)?e.map(t=>{var o;if(t&&typeof t=="object"&&!Array.isArray(t)){const r=t,i=typeof r.label<"u",n=typeof r.value<"u",l=i?r.label:String((o=r.value)!=null?o:""),a=n?r.value:l,c={label:l,value:a};return r.color&&(c.color=r.color),r.icon&&(c.icon=r.icon),c}return{label:String(t),value:t}}):[]}function translateOptions(e=[],t){return Array.isArray(e)?e.map(o=>typeof(o==null?void 0:o.label)=="string"?k(f({},o),{label:t(o.label)}):o):[]}function enumToOptions(e,t){if(!e||!Array.isArray(e)||e.length===0)return;const o=normalizeUiSchemaEnumToOptions(e);return translateOptions(o,t)}function ensureOptionsFromUiSchemaEnumIfAbsent(e,t){var o,r,i,n;const l=t==null?void 0:t.interface;if(!["radioGroup","checkboxGroup","select","multipleSelect"].includes(l)||Array.isArray((o=e.props)==null?void 0:o.options)&&((i=(r=e.props)==null?void 0:r.options)==null?void 0:i.length)>0)return!1;const a=(n=t.uiSchema)==null?void 0:n.enum;if(!Array.isArray(a)||a.length===0)return!1;const c=normalizeUiSchemaEnumToOptions(a);return c.length?(e.setProps({options:c}),!0):!1}function resolveOperatorComponent(e,t,o){var r;if(!o||!Array.isArray(o))return null;const i=o.find(u=>(u==null?void 0:u.value)===t),n=i==null?void 0:i.schema,l=n==null?void 0:n["x-component"];if(!l)return null;const a=(r=e==null?void 0:e.getComponent)==null?void 0:r.call(e,l);if(!a)return null;const c=(n==null?void 0:n["x-component-props"])||{};return{Comp:a,props:c}}const{DateFilterDynamicComponent:DateFilterDynamicComponentLazy$1}=lazy(()=>Promise.resolve().then(()=>require("./index-C3fHjsMw-D4vY2Hrd.js")),"DateFilterDynamicComponent");function buildCollectionLeftMetaTreeLocal(e){return N(this,null,function*(){var t,o,r,i;const n=u=>N(this,null,function*(){return Array.isArray(u)?u:typeof u=="function"?yield u():[]});if((o=(t=e.getPropertyOptions)==null?void 0:t.call(e,"collection"))!=null&&o.meta){const u=(r=e.getPropertyMetaTree)==null?void 0:r.call(e,"{{ ctx.collection }}");return yield n(u)}const l=()=>{var u;return(u=e==null?void 0:e.collection)!=null?u:null},a=yield(0,import_flow_engine.createEphemeralContext)(e,{defineProperties:{collection:{get:l,meta:(0,import_flow_engine.createCollectionContextMeta)(l,"Current collection")}}}),c=(i=a.getPropertyMetaTree)==null?void 0:i.call(a,"{{ ctx.collection }}");return yield n(c)})}function createStaticInputRenderer$1(e,t,o,r){var i;const n=e==null?void 0:e["x-component"],l=((i=t==null?void 0:t.uiSchema)==null?void 0:i["x-component-props"])||{},a=(e==null?void 0:e["x-component-props"])||{},c=(0,import_merge.default)({},l,a),u=enumToOptions(e==null?void 0:e.enum,o)||[],d=f({style:f({width:200},(c==null?void 0:c.style)||{}),placeholder:(c==null?void 0:c.placeholder)||o("Enter value")},c),m=p=>{if(typeof p=="number"||(c==null?void 0:c.stringMode)===!0&&typeof p=="string")return p};return p=>{const h=p||{},{value:g,onChange:x}=h,_=Y(h,["value","onChange"]);if(n==="InputNumber")return(0,import_jsx_runtime.jsx)(import_antd.InputNumber,k(f(f({},d),_),{value:m(g),onChange:v=>x==null?void 0:x(v)}));if(n==="NumberPicker")return(0,import_jsx_runtime.jsx)(import_antd_v5.NumberPicker,k(f(f({},d),_),{value:m(g),onChange:v=>x==null?void 0:x(v)}));if(n==="Switch")return(0,import_jsx_runtime.jsx)(import_antd.Switch,k(f(f({},d),_),{checked:!!g,onChange:v=>x==null?void 0:x(v)}));if(n==="Select")return(0,import_jsx_runtime.jsx)(import_antd.Select,k(f(f({options:u},d),_),{value:Array.isArray(g)||typeof g=="string"||typeof g=="number"||typeof g=="boolean"?g:void 0,onChange:v=>x==null?void 0:x(v)}));if(n==="DateFilterDynamicComponent")return(0,import_jsx_runtime.jsx)(DateFilterDynamicComponentLazy$1,k(f(f({},d),_),{value:g,onChange:v=>x==null?void 0:x(v)}));if(n&&r!=null&&r.getComponent){const v=r.getComponent(n);if(v)return(0,import_jsx_runtime.jsx)(v,k(f(f({},d),_),{value:g,onChange:b=>x==null?void 0:x(b),style:f(f({width:200},d.style||{}),_==null?void 0:_.style)}))}return(0,import_jsx_runtime.jsx)(import_antd.Input,k(f(f({},d),_),{value:typeof g=="string"?g:g==null?"":String(g),onChange:v=>x==null?void 0:x(v.target.value)}))}}function normalizeRightValueInput(e){var t;if(e&&typeof e=="object"){const o=e;if(typeof o.preventDefault=="function"||o.nativeEvent||"target"in o){const r=(t=o.target)==null?void 0:t.value;return r!==void 0?r:e}}return e}const VariableFilterItem=(0,import_flow_engine.observer)(({value:e,model:t,rightAsVariable:o,rightMetaTree:r,ignoreFieldNames:i})=>{const n=(0,import_flow_engine.useFlowViewContext)(),l=t.translate,{path:a,operator:c,value:u}=e,[d,m]=(0,import_react2.useState)(null),p=(0,import_react2.useMemo)(()=>{var B,O,V,q;if(!d)return[];const U=(B=t.context.app)==null?void 0:B.dataSourceManager,z=d.interface?(O=U==null?void 0:U.collectionFieldInterfaceManager)==null?void 0:O.getFieldInterface(d.interface):void 0,G=(V=d==null?void 0:d.uiSchema)==null?void 0:V["x-filter-operators"];return((Array.isArray(G)&&G.length?G:(q=z==null?void 0:z.filterable)==null?void 0:q.operators)||[]).filter(H=>!H.visible||H.visible(d))},[d,t]);(0,import_react2.useEffect)(()=>{if(!p.length)return;const B=import_lodash.default.find(p,O=>O.value===e.operator);if(B)e.noValue=!!B.noValue;else{const O=p[0];e.operator=O.value,e.value=O.noValue?!0:void 0,e.noValue=!!O.noValue}},[p,e]);const h=(0,import_react2.useMemo)(()=>p.map(B=>({value:B.value,label:typeof B.label=="string"?l(B.label):B.label})),[p,l]),g=(0,import_react2.useCallback)((B,O)=>{e.path=B||"",O&&m(O)},[e]),x=(0,import_react2.useMemo)(()=>({resolveValueFromPath:B=>(m(B),(B==null?void 0:B.paths.slice(1).join("."))||null),resolvePathFromValue(B){return B&&["collection",...String(B).split(".")]}}),[]),_=(0,import_react2.useCallback)(B=>{e.operator=B;const O=p.find(V=>V.value===B);O!=null&&O.noValue?(e.value=!0,e.noValue=!0):(e.value=void 0,e.noValue=!1)},[p,e]),v=(0,import_react2.useMemo)(()=>p.find(B=>B.value===c),[p,c]),b=(0,import_react2.useMemo)(()=>{const B=(d==null?void 0:d.uiSchema)||{},O=(v==null?void 0:v.schema)||{},V=(0,import_merge.default)({},B,O);if((d==null?void 0:d.interface)==="formula"){const q={"x-read-pretty":!1,"x-component":"Input","x-component-props":f({},V["x-component-props"])};return(0,import_merge.default)({},V,q)}return V},[d,v]),C=import_react2.default.useRef(b==null?void 0:b["x-component"]),y=b==null?void 0:b["x-component"],S=(0,import_react2.useMemo)(()=>{const B=C.current;C.current=y;const O=B!==void 0&&B!==y;if(v!=null&&v.noValue)return u;if(O&&u!=null){e.value=void 0;return}return u},[y,u,e,v]),F=(0,import_react2.useCallback)(B=>{e.value=normalizeRightValueInput(B)},[e]),j=import_react2.default.useRef(l);import_react2.default.useEffect(()=>{j.current=l},[l]);const P=import_react2.default.useCallback(B=>{var O,V;return(V=(O=j.current)==null?void 0:O.call(j,B))!=null?V:B},[]),A=(0,import_react2.useMemo)(()=>enumToOptions(b==null?void 0:b.enum,P)||[],[b,P]),T=(0,import_react2.useMemo)(()=>createStaticInputRenderer$1(b,d,P,t.context.app),[b,d,P,t.context.app]),D=(0,import_react2.useCallback)(B=>B?B==="Input"||B==="InputNumber"||B==="NumberPicker"||B==="Switch"||B==="Select"||B==="DateFilterDynamicComponent":!0,[]),E=(0,import_react2.useMemo)(()=>{function B({dynValue:O}){const V=import_react2.default.useRef(()=>{}),q=(0,import_react2.useCallback)(G=>{F(G)},[F]);(0,import_react2.useEffect)(()=>{V.current=q},[q]);const U=import_react2.default.useRef(null);U.current||(U.current=(0,import_core.createForm)({values:{value:O},effects(){const G=H=>"value"in H;(0,import_core.onFieldValueChange)("value",H=>{G(H)&&V.current(H.value)})}})),(0,import_react2.useEffect)(()=>{var G;(G=U.current)==null||G.setValues({value:O})},[O]);const z=(0,import_react2.useMemo)(()=>(0,import_merge.default)({name:"value","x-component":"Input","x-component-props":{style:{width:200},placeholder:P("Enter value")},"x-read-pretty":!1,"x-validator":void 0,"x-decorator":void 0},b||{}),[b,P]);return(0,import_jsx_runtime.jsx)(FormProvider,{form:U.current,children:(0,import_jsx_runtime.jsx)("div",{style:{flex:"1 1 40%",minWidth:160,maxWidth:"100%"},children:(0,import_jsx_runtime.jsx)(SchemaComponent,{schema:z})})})}return B},[b,P,F]),R=(0,import_react2.useCallback)(()=>{const B=resolveOperatorComponent(t.context.app,c,p);if(B&&(c==="$in"||c==="$notIn")){const{Comp:O,props:V}=B;(!(V!=null&&V.options)||(V==null?void 0:V.options.length)===0)&&A!=null&&A.length&&(V.options=A);const q=f({flex:"1 1 40%",minWidth:160,maxWidth:"100%"},(V==null?void 0:V.style)||{}),U=Array.isArray(S)&&S.every(z=>typeof z=="string"||typeof z=="number")?S:typeof S=="string"?S.split(/\r?\n/).map(z=>z.trim()).filter(Boolean):[];return(0,import_jsx_runtime.jsx)("div",{style:q,children:(0,import_jsx_runtime.jsx)(O,k(f({},V),{style:f({width:"100%"},(V==null?void 0:V.style)||{}),value:U,onChange:z=>F(z)}))})}return D(y)?(0,import_jsx_runtime.jsx)("div",{style:{flex:"1 1 40%",minWidth:160,maxWidth:"100%"},children:(0,import_jsx_runtime.jsx)(T,{value:S,onChange:O=>F(O)})}):(0,import_jsx_runtime.jsx)(E,{dynValue:S})},[E,D,c,p,S,T,t.context.app,F,A]),M=(0,import_react2.useMemo)(()=>function(){return(0,import_jsx_runtime.jsx)(import_antd.Input,{placeholder:`<${l("Null")}>`,readOnly:!0})},[l]),L=(0,import_react2.useMemo)(()=>()=>N(void 0,null,function*(){const B=typeof r=="function"?yield r():r??n.getPropertyMetaTree(),O=Array.isArray(B)?B:yield B();return[{title:l("Constant"),name:"constant",type:"string",paths:["constant"],render:T},{title:l("Null"),name:"null",type:"object",paths:["null"],render:M},...O]}),[r,n,T,M,l]),$=(0,import_react2.useMemo)(()=>({renderInputComponent:B=>{var O;const V=(O=B==null?void 0:B.paths)==null?void 0:O[0];return V==="constant"?T:V==="null"?M:null},resolveValueFromPath:B=>{var O;const V=(O=B==null?void 0:B.paths)==null?void 0:O[0];if(V==="constant")return"";if(V==="null")return null},resolvePathFromValue:B=>B===null?["null"]:(typeof B=="string"?(0,import_flow_engine.parseValueToPath)(B):void 0)||["constant"]}),[M,T]),w=(0,import_react2.useMemo)(()=>()=>N(void 0,null,function*(){var B;const O=(B=t.context.app)==null?void 0:B.dataSourceManager,V=O==null?void 0:O.collectionFieldInterfaceManager,q=yield buildCollectionLeftMetaTreeLocal(t.context),U=G=>N(void 0,null,function*(){var H,W;const J=G.interface?V==null?void 0:V.getFieldInterface(G.interface):void 0,K=[],Q=J==null?void 0:J.filterable,Z=Q==null?void 0:Q.children;if(Array.isArray(Z)&&Z.length)for(const X of Z)K.push({name:X.name,title:X.title||X.name,type:((H=X.schema)==null?void 0:H.type)||"string",interface:((W=X.schema)==null?void 0:W["x-component"])==="Select"?"select":"input",uiSchema:k(f({},X.schema||{}),{"x-filter-operators":X.operators}),paths:[...G.paths||[],X.name],parentTitles:[...G.parentTitles||[],G.title]});if(typeof G.children=="function"){const X=G.children;return k(f({},G),{children:()=>N(void 0,null,function*(){const oe=yield X();return[...Array.isArray(oe)?oe:[],...K]})})}const ee=[...Array.isArray(G.children)?G.children:[],...K];return k(f({},G),{children:ee.length?ee:G.children})}),z=[];for(const G of q)z.push(yield U(G));return z}),[t]);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,metaTree:w,onChange:g,converters:x,showValueComponent:!1,style:{flex:"1 1 40%",minWidth:160,maxWidth:"100%"},onlyLeafSelectable:!0,placeholder:l("Select field"),ignoreFieldNames:i}),(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:_,children:h.map(B=>(0,import_jsx_runtime.jsx)(import_antd.Select.Option,{value:B.value,children:B.label},B.value))}),!(v!=null&&v.noValue)&&(o?(0,import_jsx_runtime.jsx)(import_flow_engine.VariableInput,{value:S,onChange:B=>F(B),metaTree:L,converters:$,showValueComponent:!0,style:{flex:"1 1 40%",minWidth:160,maxWidth:"100%"},placeholder:l("Enter value")}):R())]})}),{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=f({style:f({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:x,onChange:_}=g,v=Y(g,["value","onChange"]);if(l==="InputNumber")return(0,import_jsx_runtime.jsx)(import_antd.InputNumber,k(f(f({},p),v),{value:x,onChange:_}));if(l==="NumberPicker")return(0,import_jsx_runtime.jsx)(import_antd_v5.NumberPicker,k(f(f({},p),v),{value:x,onChange:_}));if(l==="Switch")return(0,import_jsx_runtime.jsx)(import_antd.Switch,k(f(f({},p),v),{checked:!!x,onChange:_}));if(l==="Select"){let b=p;return Array.isArray(b==null?void 0:b.options)&&b.options.length>0?b=k(f({},b),{options:translateOptions(b.options,o)}):m&&(b=k(f({},b),{options:m})),(0,import_jsx_runtime.jsx)(import_antd.Select,k(f(f({},b),v),{value:x,onChange:_}))}return l==="DateFilterDynamicComponent"?(0,import_jsx_runtime.jsx)(DateFilterDynamicComponentLazy,k(f(f({},p),v),{value:x,onChange:_})):(0,import_jsx_runtime.jsx)(import_antd.Input,k(f(f({},p),v),{value:x,onChange:b=>{var C;return _==null?void 0:_((C=b==null?void 0:b.target)==null?void 0:C.value)}}))}}const fallbackStringOperators=[{value:"$includes",label:"contains",selected:!0},{value:"$notIncludes",label:"does not contain"},{value:"$eq",label:"is"},{value:"$ne",label:"is not"},{value:"$empty",label:"is empty",noValue:!0},{value:"$notEmpty",label:"is not empty",noValue:!0}],LinkageFilterItem=(0,import_flow_engine.observer)(e=>{var t;const{value:o,model:r}=e,i=(0,import_flow_engine.useFlowViewContext)(),n=r.translate,{path:l,operator:a,value:c}=o||{},[u,d]=(0,import_react2.useState)(null),m=(0,import_react2.useRef)(!1),p=(0,import_react2.useMemo)(()=>{if(!u)return"";const T=u.interface||"",D=Array.isArray(u.paths)?u.paths.join("."):"";return`${T}|${D}`},[u]),h=(0,import_react2.useMemo)(()=>u!=null&&u.interface?(r.context.app.dataSourceManager.collectionFieldInterfaceManager.getFieldInterface(u.interface).filterable.operators||[]).filter(T=>!T.visible||T.visible(u)).map(T=>({value:T.value,label:typeof T.label=="string"?T.label:String(T.label),noValue:!!T.noValue,schema:T.schema,selected:!!T.selected})):u?fallbackStringOperators:[],[p,r]),g=(0,import_react2.useMemo)(()=>h.map(T=>({value:T.value,label:n(T.label)})),[h,n]);(0,import_react2.useEffect)(()=>{if(h.length!==0){if(!a){if(m.current){const T=h.find(D=>D.selected)||h[0];o.operator=(T==null?void 0:T.value)||"",T!=null&&T.noValue?(o.value=!0,o.noValue=!0):o.noValue=!1,m.current=!1}return}if(!h.some(T=>T.value===a)){const T=h.find(D=>D.selected)||h[0];o.operator=(T==null?void 0:T.value)||"",T!=null&&T.noValue?(o.value=!0,o.noValue=!0):o.noValue=!1}}},[h,a,o]);const x=(0,import_react2.useMemo)(()=>h.find(T=>T.value===a),[h,a]),_=(0,import_react2.useMemo)(()=>{const T=(u==null?void 0:u.uiSchema)||{},D=(x==null?void 0:x.schema)||{};return(0,import_merge.default)({},T,D)},[u,x]),v=(0,import_react2.useRef)(n);(0,import_react2.useEffect)(()=>{v.current=n},[n]);const b=(0,import_react2.useCallback)(T=>{var D,E;return(E=(D=v.current)==null?void 0:D.call(v,T))!=null?E:T},[]),C=(0,import_react2.useMemo)(()=>createStaticInputRenderer(_,u,b),[_,u,b]),y=(0,import_react2.useMemo)(()=>function(){return(0,import_jsx_runtime.jsx)(import_antd.Input,{placeholder:`<${n("Null")}>`,readOnly:!0})},[n]),S=(0,import_react2.useMemo)(()=>()=>N(void 0,null,function*(){const T=(r==null?void 0:r.context.getPropertyMetaTree())||i.getPropertyMetaTree();return[{title:n("Constant"),name:"constant",type:"string",paths:["constant"]},{title:n("Null"),name:"null",type:"object",paths:["null"]},...Array.isArray(T)?T:[]]}),[i,r,n]),F=(0,import_react2.useCallback)(()=>{var T,D;return((D=(T=r==null?void 0:r.context)==null?void 0:T.getPropertyMetaTree)==null?void 0:D.call(T))||i.getPropertyMetaTree()},[i,r]),j=(0,import_react2.useMemo)(()=>({renderInputComponent:T=>{var D;const E=(D=T==null?void 0:T.paths)==null?void 0:D[0];return E==="constant"?C:E==="null"?y:null},resolveValueFromPath:T=>{var D;const E=(D=T==null?void 0:T.paths)==null?void 0:D[0];if(E==="constant")return"";if(E==="null")return null},resolvePathFromValue:T=>T===null?["null"]:(0,import_flow_engine.parseValueToPath)(T)||["constant"]}),[y,C]),P=(0,import_react2.useCallback)((T,D)=>{const E=o.path||"",R=T||"",M=R!==E;o.path=R,M&&E&&(o.operator="",o.value="",m.current=!0),!E&&R&&!o.operator&&(m.current=!0),D&&d(D)},[o]),A=(0,import_react2.useCallback)(T=>{o.operator=T;const D=h.find(E=>E.value===T);D!=null&&D.noValue?(o.value=!0,o.noValue=!0):o.noValue=!1},[o,h]);return(0,import_jsx_runtime.jsxs)(import_antd.Space,{wrap:!0,style:{width:"100%"},children:[(0,import_jsx_runtime.jsx)(import_flow_engine.VariableInput,{value:l,onChange:P,metaTree:F,showValueComponent:!0,style:{flex:"1 1 40%",minWidth:160,maxWidth:"100%"},placeholder:n("Select variable"),onlyLeafSelectable:!0}),(0,import_jsx_runtime.jsx)(import_antd.Select,{style:{flex:"0 0 140px",minWidth:120,maxWidth:"100%"},placeholder:n("Comparison"),value:a||void 0,onChange:A,children:g.map(T=>(0,import_jsx_runtime.jsx)(import_antd.Select.Option,{value:T.value,children:T.label},T.value))}),!((t=h.find(T=>T.value===a))!=null&&t.noValue)&&(0,import_jsx_runtime.jsx)(import_flow_engine.VariableInput,{value:c,onChange:T=>o.value=T,metaTree:S,converters:j,showValueComponent:!0,style:{flex:"1 1 40%",minWidth:160,maxWidth:"100%"},placeholder:n("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,k(f({},r),{model:o.model,rightAsVariable:!0}))})}}},defaultParams(e){return{filter:{logic:"$and",items:[]}}},handler(e,t){return N(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)})}});function SkeletonFallback(e){return(0,import_jsx_runtime.jsx)(import_antd.Card,k(f({},e),{children:(0,import_jsx_runtime.jsx)(import_antd.Skeleton,{paragraph:{rows:3}})}))}class RouteModel extends import_flow_engine.FlowModel{}RouteModel.registerFlow({key:"popupSettings",on:"click",steps:{openView:{use:"openView",defaultParams(e){return{mode:"embed",preventClose:!0,pageModelClass:"RootPageModel"}}}}});function resolveViewParamsToViewList(e,t,o){return t.map((r,i)=>{let n,l=r.viewUid;return i===0?(n=o,l=o.uid):n=e.getModel(r.viewUid,!0),{params:r,modelUid:l,model:n,hidden:import_flow_engine.observable.ref(!1),index:i}})}function updateViewListHidden(e){let t=!1;for(let o=e.length-1;o>=0;o--){const r=e[o];getViewType(r)==="embed"&&!t?(t=!0,r.hidden.value=!1):r.hidden.value=t}}function getViewType(e){if(e.model instanceof RouteModel)return"embed";if(!e.model)return"drawer";const t=e.model.getStepParams("popupSettings","openView");return(t==null?void 0:t.mode)||"drawer"}const stableStringify=e=>e==null?"":typeof e=="object"?Array.isArray(e)?"["+e.map(stableStringify).join(",")+"]":"{"+Object.keys(e).sort().map(t=>`${t}:${stableStringify(e[t])}`).join(",")+"}":String(e),getKey=e=>{const{params:t,index:o}=e;return[stableStringify(t.viewUid),stableStringify(t.sourceId),stableStringify(t.filterByTk),String(o)].join("_")};function getViewDiffAndUpdateHidden(e,t){const o=new Map,r=new Map;e.forEach(l=>{const a=getKey(l);o.set(a,l)}),t.forEach(l=>{r.set(getKey(l),l)});const i=[];o.forEach((l,a)=>{r.has(a)?r.get(a).hidden=l.hidden:i.push(l)});const n=[];return r.forEach((l,a)=>{o.has(a)||n.push(l)}),{viewsToClose:i,viewsToOpen:n}}const openViewFlow=(0,import_flow_engine.defineFlow)({key:"popupSettings",title:(0,import_flow_engine.tExpr)("Popup settings"),on:"click",sort:300,steps:{openView:{use:"openView",hideInSettings:e=>N(void 0,null,function*(){var t,o,r,i;const n=(r=(o=(t=e.model).getStepParams)==null?void 0:o.call(t,"displayFieldSettings","clickToOpen"))==null?void 0:r.clickToOpen;return e.collectionField?n===void 0?!((i=e.collectionField)!=null&&i.isAssociationField()):n===!1:!1})}},defaultParams:e=>{var t,o,r,i,n,l,a,c;let u,d,m;const p=e.collectionField,h=e.blockModel,g=(o=(t=e.model)==null?void 0:t.parent)==null?void 0:o.associationPathName,x=e.collection||(h==null?void 0:h.collection),_=C=>{var y;return!!((y=C==null?void 0:C.isAssociationField)!=null&&y.call(C))},v=!_(p)&&g?(r=x==null?void 0:x.getFieldByPath)==null?void 0:r.call(x,g):void 0,b=_(p)?p:v;if(_(b)){const C=b.targetCollection;h==null||h.collection,u=C==null?void 0:C.name,d=C==null?void 0:C.dataSourceKey,m=b==null?void 0:b.resourceName}else p?(u=(i=e.collection)==null?void 0:i.name,d=(n=e.collection)==null?void 0:n.dataSourceKey,m=p==null?void 0:p.target):(u=(l=e.collection)==null?void 0:l.name,d=(a=e.collection)==null?void 0:a.dataSourceKey,m=(c=e.association)==null?void 0:c.resourceName);return{openView:{collectionName:u,associationName:m,dataSourceKey:d}}}}),getOpenViewStepParams=e=>e.getStepParams("popupSettings","openView");function InternalFlowPage(e){var t=e,{uid:o}=t,r=Y(t,["uid"]);const i=(0,import_flow_engine.useFlowModelById)(o);return(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,f({model:i,fallback:(0,import_jsx_runtime.jsx)(SkeletonFallback,{style:{margin:i!=null&&i.context.isMobileLayout?8:i==null?void 0:i.context.themeToken.marginBlock}}),hideRemoveInSettings:!0,showFlowSettings:{showBackground:!1,showBorder:!1}},r))}const FlowRoute=()=>{const e=(0,import_react2.useRef)(null),t=(0,import_flow_engine.useFlowEngine)(),o=useCurrentRoute(),{refresh:r}=useAllAccessDesktopRoutes(),{isMobileLayout:i}=useMobileLayout(),n=(0,import_react2.useRef)(t.context.route.params.name),l=(0,import_react2.useRef)({}),a=(0,import_react2.useRef)([]),c=(0,import_react2.useRef)(!1),{designable:u}=useDesignable(),{active:d}=useKeepAlive(),m=(0,import_react2.useRef)(!1),p=(0,import_react2.useMemo)(()=>t.createModel({uid:n.current,use:"RouteModel"}),[t]);return(0,import_react2.useEffect)(()=>{p.context.defineProperty("pageActive",{value:import_flow_engine.observable.ref(!1)})},[p]),(0,import_react2.useEffect)(()=>{p.context.pageActive.value=d},[d,p]),(0,import_react2.useEffect)(()=>{t.context.defineProperty("isMobileLayout",{get:()=>i}),t.context.defineProperty("deviceType",{get:()=>import_react_device_detect.deviceType==="browser"?"computer":import_react_device_detect.deviceType,cache:!1,meta:{type:"string",title:t.translate("Current device type"),interface:"select",uiSchema:{enum:[{label:t.translate("Computer"),value:"computer"},{label:t.translate("Mobile"),value:"mobile"},{label:t.translate("Tablet"),value:"tablet"},{label:t.translate("SmartTv"),value:"smarttv"},{label:t.translate("Console"),value:"console"},{label:t.translate("Wearable"),value:"wearable"},{label:t.translate("Embedded"),value:"embedded"}],"x-component":"Select"}}})},[i,t]),(0,import_react2.useEffect)(()=>{i?t.flowSettings.disable():u&&t.flowSettings.enable()},[u,t,i]),(0,import_react2.useEffect)(()=>{e.current&&(t.context.defineProperty("layoutContentElement",{get:()=>e.current}),p.context.defineProperty("currentRoute",{get:()=>o}),t.context.defineProperty("currentRoute",{get:()=>o}),p.context.defineProperty("refreshDesktopRoutes",{get:()=>r}))},[p,o,r,t]),(0,import_react2.useEffect)(()=>{const h=(0,import_flow_engine.reaction)(()=>t.context.route,g=>{var x;if(g.params.name!==n.current){m.current=!0;return}try{m.current=!1;const _=(0,import_flow_engine.parsePathnameToViewParams)(g.pathname),v=resolveViewParamsToViewList(t,_,p);if(a.current.length===0&&v.length>1&&!c.current){const y=S=>{v[S]&&(S===0?new import_flow_engine.ViewNavigation(t.context,[]).navigateTo(v[S].params,{replace:!0}):new import_flow_engine.ViewNavigation(t.context,v.slice(0,S).map(F=>F.params)).navigateTo(v[S].params),y(S+1))};y(0),c.current=!0;return}const{viewsToClose:b,viewsToOpen:C}=getViewDiffAndUpdateHidden(a.current,v);if(console.log("[NocoBase] FlowRoute view diff:",{viewsToClose:b,viewsToOpen:C}),b.length&&(b.forEach(y=>{var S,F;(F=(S=l.current[getKey(y)])==null?void 0:S.destroy)==null||F.call(S,!0),delete l.current[getKey(y)]}),updateViewListHidden(v)),C.length&&N(void 0,null,function*(){const y=C.filter(F=>!F.model);if(y.length>0&&(yield Promise.all(y.map(F=>N(void 0,null,function*(){try{F.model=yield t.loadModel({uid:F.modelUid})}catch(j){console.error(`[NocoBase] Failed to load model ${F.modelUid}:`,j)}})))),m.current)return;updateViewListHidden(v);const S=F=>{if(!C[F])return;const j=C[F];if(!j.model)return;const P=import_react2.default.createRef(),A=import_react2.default.createRef(),T=getOpenViewStepParams(j.model),D=v.slice(0,j.index).map(R=>R.params.viewUid),E=new import_flow_engine.ViewNavigation(t.context,v.slice(0,j.index+1).map(R=>R.params));j.model.dispatchEvent("click",k(f({target:e.current,collectionName:T==null?void 0:T.collectionName,associationName:T==null?void 0:T.associationName,dataSourceKey:T==null?void 0:T.dataSourceKey,destroyRef:P,updateRef:A,openerUids:D},j.params),{navigation:E,onOpen(){S(F+1)},hidden:j.hidden,isMobileLayout:i,triggerByRouter:!0})),l.current[getKey(j)]={destroy:R=>{var M;return(M=P.current)==null?void 0:M.call(P)},update:R=>{var M;return(M=A.current)==null?void 0:M.call(A,R)},navigation:E}};S(0)}),b.length===0&&C.length===0){const y=v.at(-1);y&&((x=l.current[getKey(y)])==null||x.navigation.setViewStack(v.map(S=>S.params)))}a.current=[...v]}catch(_){console.error("[NocoBase] Failed to resolve view params to view list:",_)}},{fireImmediately:!0});return()=>{h==null||h(),a.current.forEach(g=>{var x;t.removeModelWithSubModels(g.params.viewUid),(x=l.current[getKey(g)])==null||x.destroy()})}},[t,i,p]),(0,import_jsx_runtime.jsx)("div",{ref:e})},FlowPage=import_react2.default.memo(e=>{const t=e,{pageModelClass:o="ChildPageModel",parentId:r,onModelLoaded:i,defaultTabTitle:n}=t,l=Y(t,["pageModelClass","parentId","onModelLoaded","defaultTabTitle"]),a=(0,import_flow_engine.useFlowEngine)(),c=(0,import_flow_engine.useFlowViewContext)(),{loading:u,data:d}=(0,import_ahooks.useRequest)(()=>N(void 0,null,function*(){var m;const p={async:!0,parentId:r,subKey:"page",subType:"object",use:o};if(o==="ChildPageModel"){const g=n||((m=a.translate)==null?void 0:m.call(a,"Details"));p.subModels={tabs:[{use:"ChildPageTabModel",stepParams:{pageTabSettings:{tab:{title:g}}}}]},p.stepParams={pageSettings:{general:{displayTitle:!1,enableTabs:!0}}}}const h=yield a.loadOrCreateModel(p);return h!=null&&h.uid&&i&&(h.context.addDelegate(c),h.removeParentDelegate(),i(h.uid,h)),h}),{refreshDeps:[r]});return u||!(d!=null&&d.uid)?(0,import_jsx_runtime.jsx)(SkeletonFallback,{style:{margin:c!=null&&c.isMobileLayout?8:c==null?void 0:c.themeToken.marginBlock}}):(0,import_jsx_runtime.jsx)(InternalFlowPage,f({uid:d.uid},l))});FlowPage.displayName="FlowPage";const RemoteFlowModelRenderer=e=>{const t=e,{uid:o,parentId:r,subKey:i}=t,n=Y(t,["uid","parentId","subKey"]),l=(0,import_flow_engine.useFlowEngine)(),{loading:a,data:c}=(0,import_ahooks.useRequest)(()=>N(void 0,null,function*(){return yield l.loadModel({uid:o,parentId:r,subKey:i})}),{refreshDeps:[o,r,i]});return a||!(c!=null&&c.uid)?(0,import_jsx_runtime.jsx)(SkeletonFallback,{style:{margin:16}}):(0,import_jsx_runtime.jsx)(InternalFlowPage,f({uid:c.uid},n))},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}),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),I(this,"defaultProps",{type:"default",title:(0,import_flow_engine.tExpr)("Action")}),I(this,"enableEditTooltip",!0),I(this,"enableEditTitle",!0),I(this,"enableEditIcon",!0),I(this,"enableEditType",!0),I(this,"enableEditDanger",!0),I(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",f({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,k(f({},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,k(f({},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,k(f({},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=Y(o,["title","tooltip"]);e.model.setProps(f({title:r?e.t(r):void 0,tooltip:i?e.t(i):void 0},n))}},aclCheck:{use:"aclCheck"},linkageRules:{use:"actionLinkageRules"}}});ActionModel.registerEvents({click:{title:(0,import_flow_engine.tExpr)("Click"),name:"click",uiSchema:{condition:{type:"object",title:(0,import_flow_engine.tExpr)("Trigger condition"),"x-decorator":"FormItem","x-component":ConditionBuilder}},handler:commonConditionHandler}});class ActionGroupModel extends import_flow_engine.FlowModel{static getAllParentClasses(){const t=[];let o=this;for(;o&&o!==Object;)o=Object.getPrototypeOf(o),o!=null&&o.currentModels&&t.push(o);return t}static get currentModels(){return(!Object.prototype.hasOwnProperty.call(this,"_models")||!this._models)&&(this._models=new Map),this._models}static get models(){const t=new Map,o=this.getAllParentClasses();for(const r of o)for(const[i,n]of r.currentModels)t.set(i,n);for(const[r,i]of this.currentModels)t.set(r,i);return t}static registerActionModels(t){for(const[o,r]of Object.entries(t))Object.defineProperty(r,"name",{value:o}),this.currentModels.set(o,r)}static defineChildren(t){return N(this,null,function*(){const o=this.baseClass?yield(0,import_flow_engine.buildSubModelItems)(this.baseClass)(t):[],r=[],i=o.filter(n=>this.scene?t.engine.getModelClass(n.useModel)._isScene(this.scene):!0);for(const[n,l]of this.models){if(i.find(c=>c.useModel===l.name))continue;const a=yield(0,import_flow_engine.buildSubModelItem)(l,t);a&&r.push(a)}return import_lodash.default.sortBy([...i,...r],"sort")})}}I(ActionGroupModel,"baseClass"),I(ActionGroupModel,"scene"),I(ActionGroupModel,"_models");class CollectionActionGroupModel extends ActionGroupModel{}I(CollectionActionGroupModel,"baseClass",ActionModel),I(CollectionActionGroupModel,"scene",ActionSceneEnum.collection);class RecordActionGroupModel extends ActionGroupModel{}I(RecordActionGroupModel,"baseClass",ActionModel),I(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:"Display collection 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.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)}]}});return r(t.collection)}}I(AssociationFieldGroupModel,"itemModelName","DetailsItemModel");AssociationFieldGroupModel.define({label:'{{t("Display association 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){I(this,"filterConfigs"),I(this,"gridModel"),this.gridModel=t,this.filterConfigs=o||[]}saveFilterConfigs(){return N(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 N(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 N(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]=f({},t):this.filterConfigs.push(f({},t)),yield this.saveFilterConfigs()})}removeFilterConfig(t){return N(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(i=>i.targetId===t);r.length!==0&&r.forEach(i=>{const n=this.gridModel.flowEngine.getModel(i.filterId);if(!n){console.error(`[NocoBase]: Filter model with uid "${i.filterId}" not found`);return}if(!n.getFilterValue){console.error(`[NocoBase]: Filter model with uid "${i.filterId}" does not have getFilterValue method`);return}const l=n.getFilterValue();if(isFilterValueEmpty(l)){try{o.resource.removeFilterGroup(i.filterId)}catch(c){console.error(`[NocoBase]: Failed to remove filter configuration from target model: ${c.message}`);return}return}const a=i.filterPaths.map(c=>({path:c,operator:i.operator||getDefaultOperator(n),value:l}));try{if(a.length===1)o.resource.addFilterGroup(i.filterId,new import_flow_engine.FilterItem({path:a[0].path,operator:a[0].operator,value:a[0].value}));else if(a.length>1){const c={logic:"$or",items:a};o.resource.addFilterGroup(i.filterId,new import_flow_engine.FilterGroup(c))}}catch(c){console.error(`Failed to bind filter configuration to target model: ${c.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(i=>i.targetId===t);r.length!==0&&r.forEach(i=>{try{o.resource.removeFilterGroup(i.filterId)}catch(n){console.error(`Failed to unbind filter configuration from target model: ${n.message}`);return}})}refreshTargetsByFilter(t){return N(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=>N(this,null,function*(){var l,a;try{this.bindToTarget(n);const c=this.gridModel.flowEngine.getModel(n);if(!c){console.error(`Target model with uid "${n}" not found`);return}if(!c.resource||typeof c.resource.refresh!="function"){console.error(`Target model with uid "${n}" does not have a valid resource with refresh method`);return}(a=(l=c.resource).setPage)==null||a.call(l,1),yield c.resource.refresh()}catch(c){console.error(`Failed to refresh target model "${n}": ${c.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 x=u.reduce((b,C)=>b+(C||0),0),_=c-u.filter(Boolean).length,v=_>0?(24-x)/_: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:f(f({},t),o[e.type])})}const InnerJsonEditor=e=>{var t=e,{value:o,onChange:r,rows:i=10}=t,n=Y(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,f({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),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),I(this,"subModelBaseClass","BlockModel"),I(this,"gridContainerRef",import_react2.default.createRef()),I(this,"prevMoveDistance",0),I(this,"itemSettingsMenuLevel",1),I(this,"itemFlowSettings",{}),I(this,"dragOverlayConfig"),I(this,"itemFallback",(0,import_jsx_runtime.jsx)(SkeletonFallback,{})),I(this,"itemExtraToolbarItems",[{key:"drag-handler",component:import_flow_engine.DragHandler,sort:1}]),I(this,"dragState"),I(this,"_memoItemFlowSettings")}getItemFlowSettings(){return this._memoItemFlowSettings||(this._memoItemFlowSettings=f({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],this.setStepParams(GRID_FLOW_KEY,GRID_STEP,{rows:this.props.rows||{},sizes:r}),this.setProps("sizes",r)}}),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],this.setStepParams(GRID_FLOW_KEY,GRID_STEP,{rows:c,sizes:u}),this.setProps("sizes",u)}(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;const l=(r=(o=t==null?void 0:t.rows)!=null?o:this.props.rows)!=null?r:{},a=(n=(i=t==null?void 0:t.sizes)!=null?i:this.props.sizes)!=null?n:{};this.setStepParams(GRID_FLOW_KEY,GRID_STEP,{rows:l,sizes:a}),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||{});this.setStepParams(GRID_FLOW_KEY,GRID_STEP,{rows:r,sizes:o.sizes||{}}),t&&this.setProps("rows",r)}computePointerPosition(t){var o;if(!this.dragState)return null;const r=this.dragState.pointerOrigin;if(r)return{x:r.x+t.delta.x,y:r.y+t.delta.y};const i=getClientPoint(t.activatorEvent);if(i)return this.dragState.pointerOrigin=i,{x:i.x+t.delta.x,y:i.y+t.delta.y};const n=(o=t.over)==null?void 0:o.rect;return n?{x:n.left+n.width/2,y:n.top+n.height/2}:null}updateLayoutSnapshot(){if(!this.dragState)return;const t=(0,import_flow_engine.buildLayoutSnapshot)({container:this.gridContainerRef.current});this.dragState.slots=t.slots,this.dragState.containerRect=t.containerRect}scheduleSnapshotRefresh(){this.dragState&&(this.dragState.refreshTimer&&clearTimeout(this.dragState.refreshTimer),this.dragState.refreshTimer=setTimeout(()=>{this.dragState&&(this.dragState.refreshTimer=null,this.updateLayoutSnapshot())},16))}computeOverlayRect(t){var o,r,i,n,l,a,c,u,d;const m=this.dragOverlayConfig,p=t.rect;switch(t.type){case"column":{const h=(o=m==null?void 0:m.columnInsert)==null?void 0:o[t.position],g=(r=h==null?void 0:h.height)!=null?r:p.height,x=(i=h==null?void 0:h.offsetTop)!=null?i:0;return{top:p.top+x,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,x=(a=h==null?void 0:h.offsetLeft)!=null?a:0;return{top:p.top,left:p.left+x,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,x=(d=h==null?void 0:h.offsetTop)!=null?d:0;return{top:p.top+x,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)};const l=this.gridContainerRef.current,a=(o=l==null?void 0:l.scrollTop)!=null?o:0,c=(r=l==null?void 0:l.scrollLeft)!=null?r:0,u=this.computeOverlayRect(t),d={top:u.top-this.dragState.containerRect.top+a,left:u.left-this.dragState.containerRect.left+c,width:u.width,height:u.height,type:t.type};this.setProps("dragOverlayRect",d),this.dragState.activeSlotKey=i}handleDragStart(t){var o;const r=t.active.id;this.dragState={sourceUid:r,snapshot:{rows:import_lodash.default.cloneDeep(this.props.rows||{}),sizes:import_lodash.default.cloneDeep(this.props.sizes||{})},slots:[],containerRect:{top:0,left:0,width:0,height:0},pointerOrigin:(o=getClientPoint(t.activatorEvent))!=null?o:void 0,activeSlotKey:null,previewLayout:void 0,refreshTimer:null},this.setProps("dragOverlayRect",null),this.updateLayoutSnapshot(),this.scheduleSnapshotRefresh()}handleDragMove(t){if(!this.dragState)return;this.dragState.slots.length||this.updateLayoutSnapshot();const o=this.computePointerPosition(t);if(!o){this.applyPreview(null);return}const r=(0,import_flow_engine.resolveDropIntent)(o,this.dragState.slots);this.applyPreview(r)}finishDrag(){this.dragState&&(this.dragState.refreshTimer&&clearTimeout(this.dragState.refreshTimer),this.dragState=void 0,this.setProps("dragOverlayRect",null))}handleDragEnd(t){if(!this.dragState)return;const o=this.dragState.previewLayout;o&&(this.setProps("rows",import_lodash.default.cloneDeep(o.rows)),this.setProps("sizes",import_lodash.default.cloneDeep(o.sizes)),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;if(this.context.flowSettingsEnabled)return{rows:i,sizes:n};const l=((t=this.subModels)==null?void 0:t.items)||[];if(!l.length)return{rows:i,sizes:n};const a=new Map(l.map(d=>[d.uid,d])),c={},u={};return Object.entries(i).forEach(([d,m])=>{const p=m,h=n[d]||[],g=[],x=[];p.forEach((_,v)=>{_.some(b=>{if(b===import_flow_engine.EMPTY_COLUMN_UID)return!1;const C=a.get(b);return!C||!C.hidden})&&(g.push(_),x.push(h[v]))}),g.length>0&&(c[d]=g,x.length>0&&(u[d]=x))}),{rows:c,sizes:u}}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;const a=this.flowEngine.getModel(i);if(!a)return this.itemFallback;const c=this.context.fieldKey,u=this.context.fieldIndex,d=this.context.record,m=this.context.currentObject,p=u==null?a:(()=>{const h=a.createFork({},`${c}:${i}`);return h.context.defineProperty("fieldIndex",{get:()=>u}),h.context.defineProperty("fieldKey",{get:()=>c}),h.context.defineProperty("record",{get:()=>d,cache:!1}),h.context.defineProperty("currentObject",{get:()=>m,cache:!1}),h})();return(0,import_jsx_runtime.jsx)(import_flow_engine.Droppable,{model:p,children:(0,import_jsx_runtime.jsx)(import_flow_engine.MemoFlowModelRenderer,{model:p,fallback:a.skeleton||this.itemFallback,showFlowSettings:this.context.flowSettingsEnabled?this.getItemFlowSettings():!1,showErrorFallback:!0,settingsMenuLevel:(n=p==null?void 0:p.settingsMenuLevel)!=null?n:this.itemSettingsMenuLevel,showTitle:!0,extraToolbarItems:this.itemExtraToolbarItems},`${p.uid}:${c}:${(p==null?void 0:p.use)||((l=p==null?void 0:p.constructor)==null?void 0:l.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 N(this,null,function*(){const o=e.model.mergeRowsWithItems(t.rows||{});e.model.setProps("rows",o),e.model.setProps("sizes",t.sizes||{})})}}}});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 x=m[e.rowId];let _=g-r;const v=t==="left"&&e.columnIndex>0,b=t==="right"&&e.columnIndex<x.length-1;if(!v&&!b&&_>0){const C=x.reduce((S,F)=>S+F,0),y=c-C;if(y<=0)return{newRows:d,newSizes:m,moveDistance:r};_>y&&(g=r+y,_=y)}if(m[e.rowId][e.columnIndex]+=_,t==="left"&&e.columnIndex>0&&(m[e.rowId][e.columnIndex-1]-=_,m[e.rowId][e.columnIndex-1]===0&&removeEmptyColumnFromRow({rows:d,sizes:m,position:e,direction:"left"})),t==="left"&&e.columnIndex===0){const C=m[e.rowId].slice(1).reduce((y,S)=>y+S,0);m[e.rowId][0]<c-C&&addEmptyColumnToRow({rows:d,sizes:m,position:e,direction:"left"})}if(t==="right"&&e.columnIndex<m[e.rowId].length-1&&(m[e.rowId][e.columnIndex+1]-=_,m[e.rowId][e.columnIndex+1]===0&&removeEmptyColumnFromRow({rows:d,sizes:m,position:e,direction:"right"})),t==="right"&&e.columnIndex===m[e.rowId].length-1){const C=m[e.rowId].slice(0,-1).reduce((y,S)=>y+S,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),I(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,{}),children:this.context.t("Add block")})})}render(){return(0,import_jsx_runtime.jsx)("div",{style:{padding:this.context.isMobileLayout?8:this.context.themeToken.marginBlock},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=>N(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)(f({lineHeight:e.lineHeight,"& > *:last-child":{marginBottom:"0"},".ant-description-textarea, .ant-description-input":{lineHeight:e.lineHeight},".field-interface-datetime":{minWidth:"100px"}},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=f(f({},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},useBlockHeight=({height:e,heightMode:t})=>t!=="specifyValue"?null:e,BlockItemCard=import_react2.default.forwardRef((e,t)=>{const{t:o}=(0,import_react_i18next.useTranslation)(),{token:r}=import_antd.theme.useToken(),i=e,{title:n,description:l,children:a,className:c}=i,u=Y(i,["title","description","children","className"]),d=useBlockHeight(e),m=(n||l)&&(0,import_jsx_runtime.jsxs)("div",{children:[(0,import_jsx_runtime.jsxs)("span",{children:[" ",o(n,{ns:NAMESPACE_UI_SCHEMA})]}),l&&(0,import_jsx_runtime.jsx)(DisplayMarkdown,{value:o(l,{ns:NAMESPACE_UI_SCHEMA}),style:{overflowWrap:"break-word",whiteSpace:"normal",fontWeight:400,color:r.colorTextDescription,borderRadius:"4px"}})]});return(0,import_jsx_runtime.jsxs)(import_antd.Card,k(f({ref:t,title:m,style:{display:"flex",flexDirection:"column",height:d},styles:{body:{flex:1,display:"flex",flexDirection:"column",overflow:"auto"},header:{marginTop:"8px"}},className:c},u),{children:[e.beforeContent,a,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",k(f({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`
|
|
1712
|
+
`,children:"x"})})})]})},confirm$1=(0,import_flow_engine.defineAction)({name:"confirm",title:(0,import_flow_engine.tExpr)("Confirmation"),uiSchema:{enable:{type:"boolean",title:(0,import_flow_engine.tExpr)("Enable secondary confirmation"),"x-decorator":"FormItem","x-component":"Switch"},title:{type:"string",title:(0,import_flow_engine.tExpr)("Title"),"x-decorator":"FormItem","x-component":TextAreaWithContextSelector,"x-component-props":{rows:2}},content:{type:"string",title:(0,import_flow_engine.tExpr)("Content"),"x-decorator":"FormItem","x-component":TextAreaWithContextSelector,"x-component-props":{rows:3}}},defaultParams:{enable:!1,title:(0,import_flow_engine.tExpr)("Please Confirm"),content:(0,import_flow_engine.tExpr)("Are you sure you want to perform the action?")},handler(e,t){return N(this,null,function*(){t.enable&&((yield e.modal.confirm({title:e.t(t.title),content:e.t(t.content),okText:e.t("Confirm"),cancelText:e.t("Cancel")}))||e.exit())})}}),itemKeyMap=new WeakMap;let itemKeyCounter=0;const getFilterItemKey=e=>{let t=itemKeyMap.get(e);return t||(itemKeyCounter+=1,t=`filter-item-${itemKeyCounter}`,itemKeyMap.set(e,t)),t},FilterGroup=(0,import_flow_engine.observer)(e=>{const{token:t}=import_antd.theme.useToken(),{value:o={logic:"$and",items:[]},FilterItem:r,showBorder:i=!1,onRemove:n,onChange:l,closeIcon:a=(0,import_jsx_runtime.jsx)(import_icons.CloseCircleOutlined,{style:{color:t.colorIcon}})}=e,{t:c}=(0,import_react_i18next.useTranslation)();o.logic||(o.logic="$and"),Array.isArray(o.items)||(o.items=[]);const{logic:u,items:d}=o,m=i?{position:"relative",border:`1px dashed ${t.colorBorder}`,padding:t.paddingSM,marginBottom:t.marginXS,borderRadius:t.borderRadius}:{position:"relative",marginBottom:t.marginXS},p=b=>{o.logic=b,l==null||l(o)},h=()=>{d.push({path:"",operator:"",value:""}),l==null||l(o)},g=()=>{d.push({logic:"$and",items:[]}),l==null||l(o)},x=b=>{d.splice(b,1),l==null||l(o)},_=b=>"path"in b||"operator"in b||"value"in b,v=b=>"logic"in b&&"items"in b;return(0,import_jsx_runtime.jsxs)("div",{style:m,children:[i&&n&&(0,import_jsx_runtime.jsx)("button",{type:"button","aria-label":"icon-close",style:{position:"absolute",right:10,top:10,cursor:"pointer",background:"transparent",border:0,padding:0},onClick:n,children:a}),(0,import_jsx_runtime.jsx)("div",{style:{marginBottom:8,color:t.colorText},children:(0,import_jsx_runtime.jsxs)("span",{children:[c("Meet")," ",(0,import_jsx_runtime.jsxs)(import_antd.Select,{"data-testid":"filter-select-all-or-any",style:{width:"auto"},value:u,onChange:p,children:[(0,import_jsx_runtime.jsx)(import_antd.Select.Option,{value:"$and",children:c("All")}),(0,import_jsx_runtime.jsx)(import_antd.Select.Option,{value:"$or",children:c("Any")})]})," ",c("conditions in the group")]})}),(0,import_jsx_runtime.jsx)("div",{children:d.map((b,C)=>v(b)?(0,import_jsx_runtime.jsx)(FilterGroup,{value:b,FilterItem:r,showBorder:!0,onRemove:()=>x(C),onChange:y=>{d[C]=y,l==null||l(o)}},getFilterItemKey(b)):_(b)?r?(0,import_jsx_runtime.jsx)("div",{style:{marginBottom:8,display:"flex",alignItems:"flex-end"},children:(0,import_jsx_runtime.jsxs)(import_antd.Space,{style:{flex:1,minWidth:0},children:[(0,import_jsx_runtime.jsx)(r,{value:b}),(0,import_jsx_runtime.jsx)("button",{type:"button","aria-label":"icon-close",style:{marginLeft:8,marginRight:8,flex:"0 0 auto",cursor:"pointer",background:"transparent",border:0,padding:0},onClick:()=>x(C),children:a})]})},getFilterItemKey(b)):(0,import_jsx_runtime.jsx)("div",{style:{marginBottom:8,display:"flex",alignItems:"flex-end"},children:(0,import_jsx_runtime.jsxs)(import_antd.Space,{style:{flex:1,minWidth:0},children:[(0,import_jsx_runtime.jsxs)("span",{children:[b.path," ",b.operator," ",String(b.value)]}),(0,import_jsx_runtime.jsx)("button",{type:"button","aria-label":"icon-close",style:{marginLeft:8,marginRight:8,flex:"0 0 auto",cursor:"pointer",background:"transparent",border:0,padding:0},onClick:()=>x(C),children:a})]})},getFilterItemKey(b)):(0,import_jsx_runtime.jsx)("div",{style:{marginBottom:8,display:"flex",alignItems:"flex-end"},children:(0,import_jsx_runtime.jsxs)(import_antd.Space,{style:{flex:1,minWidth:0},children:[(0,import_jsx_runtime.jsx)("span",{style:{color:t.colorTextTertiary},children:"Invalid filter item"}),(0,import_jsx_runtime.jsx)("button",{type:"button","aria-label":"icon-close",style:{marginLeft:8,marginRight:8,flex:"0 0 auto",cursor:"pointer",background:"transparent",border:0,padding:0},onClick:()=>x(C),children:a})]})},getFilterItemKey(b)))}),(0,import_jsx_runtime.jsxs)(import_antd.Space,{size:16,style:{marginTop:8,marginBottom:8},children:[(0,import_jsx_runtime.jsx)(import_antd.Button,{style:{padding:0},type:"link",size:"small",icon:(0,import_jsx_runtime.jsx)(import_icons.PlusOutlined,{}),onClick:h,children:c("Add condition")}),(0,import_jsx_runtime.jsx)(import_antd.Button,{style:{padding:0},type:"link",size:"small",icon:(0,import_jsx_runtime.jsx)(import_icons.PlusOutlined,{}),onClick:g,children:c("Add condition group")})]})]})},{displayName:"FilterGroup"}),FilterContainer=(0,import_flow_engine.observer)(e=>{var t;const{value:o,FilterItem:r,ctx:i}=e;o.logic||(o.logic="$and"),Array.isArray(o.items)||(o.items=[]);const n=()=>{var c;(c=i==null?void 0:i.model)!=null&&c.dispatchEvent&&i.model.dispatchEvent("reset")},l=()=>{var c;(c=i==null?void 0:i.model)!=null&&c.dispatchEvent&&i.model.dispatchEvent("submit")},a=((t=i==null?void 0:i.model)==null?void 0:t.translate)||(c=>c);return(0,import_jsx_runtime.jsxs)("form",{onSubmit:c=>{c.preventDefault(),l()},children:[(0,import_jsx_runtime.jsx)(FilterGroup,{value:o,FilterItem:r}),(0,import_jsx_runtime.jsxs)(import_antd.Space,{style:{width:"100%",display:"flex",justifyContent:"flex-end"},children:[(0,import_jsx_runtime.jsx)(import_antd.Button,{htmlType:"button",onClick:n,children:a("Reset")}),(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"primary",htmlType:"submit",children:a("Submit")})]})]})},{displayName:"FilterContent"}),fieldsToOptions=(e,t,o,r)=>e.map(i=>field2option(i,t,o,r)).filter(Boolean),field2option=(e,t,o,r)=>{var i;if(o.length&&t===1&&o.includes(e.name)||!e.interface||e.filterable===!1)return;const n=e.getInterfaceOptions();if(!(n!=null&&n.filterable))return;const{nested:l,children:a,operators:c}=n.filterable,u={name:e.name,type:e.type,target:e.target,title:r(e.title),schema:e==null?void 0:e.uiSchema,operators:(((i=c==null?void 0:c.filter)==null?void 0:i.call(c,d=>!(d!=null&&d.visible)||d.visible(e)))||[]).map(d=>k(f({},d),{label:r(d.label)}))};if(!(e.target&&t>2)){if(t>2)return u;if(a!=null&&a.length&&(u.children=a),l){const d=e.getFields().filter(p=>p.target!=="attachments"&&p.interface!=="formula"),m=fieldsToOptions(d,t+1,o,r).filter(Boolean);u.children=u.children||[],u.children.push(...m)}return u}},FilterItem=(0,import_flow_engine.observer)(e=>{var t;const{path:o,operator:r,value:i}=e.value,n=e.model,l=((t=n.context.blockModel.collection)==null?void 0:t.getFields().filter(g=>g.target!=="attachments"))||[],a=getIgnoreFieldsNames(n.props.filterableFieldNames||[],l.map(g=>g.name)),c=n.translate,u=fieldsToOptions(l.filter(g=>g.target!=="attachments"&&g.interface!=="formula"&&!["belongsTo","belongsToMany","hasOne","hasMany","oho","obo","m2o","o2m","m2m"].includes(g.type)),1,e.noIgnore?[]:a,c).filter(Boolean),d=(0,import_react2.useMemo)(()=>{const g=u.find(x=>x.name===o);return(g==null?void 0:g.operators)||[]},[u,o]),m=g=>{var x;e.value.path=g;const _=u.find(v=>v.name===g);((x=_==null?void 0:_.operators)==null?void 0:x.length)>0?e.value.operator=_.operators[0].value:e.value.operator="",e.value.value=""},p=g=>{e.value.operator=g},h=g=>{e.value.value=g.target.value};return(0,import_jsx_runtime.jsxs)(import_antd.Space,{children:[(0,import_jsx_runtime.jsx)(import_antd.Select,{style:{width:200},placeholder:c("Select field"),value:o||void 0,onChange:m,children:u.map(g=>(0,import_jsx_runtime.jsx)(import_antd.Select.Option,{value:g.name,children:g.title},g.name))}),(0,import_jsx_runtime.jsx)(import_antd.Select,{style:{width:120},placeholder:c("Select operator"),value:r||void 0,onChange:p,disabled:!o||d.length===0,children:d.map(g=>(0,import_jsx_runtime.jsx)(import_antd.Select.Option,{value:g.value,children:g.label},g.value))}),(0,import_jsx_runtime.jsx)(import_antd.Input,{style:{width:200},placeholder:c("Enter value"),value:i,onChange:h})]})},{displayName:"FilterItem"});function getIgnoreFieldsNames(e,t){return t==null?void 0:t.filter(o=>!e.includes(o))}function normalizeUiSchemaEnumToOptions(e=[]){return Array.isArray(e)?e.map(t=>{var o;if(t&&typeof t=="object"&&!Array.isArray(t)){const r=t,i=typeof r.label<"u",n=typeof r.value<"u",l=i?r.label:String((o=r.value)!=null?o:""),a=n?r.value:l,c={label:l,value:a};return r.color&&(c.color=r.color),r.icon&&(c.icon=r.icon),c}return{label:String(t),value:t}}):[]}function translateOptions(e=[],t){return Array.isArray(e)?e.map(o=>typeof(o==null?void 0:o.label)=="string"?k(f({},o),{label:t(o.label)}):o):[]}function enumToOptions(e,t){if(!e||!Array.isArray(e)||e.length===0)return;const o=normalizeUiSchemaEnumToOptions(e);return translateOptions(o,t)}function ensureOptionsFromUiSchemaEnumIfAbsent(e,t){var o,r,i,n;const l=t==null?void 0:t.interface;if(!["radioGroup","checkboxGroup","select","multipleSelect"].includes(l)||Array.isArray((o=e.props)==null?void 0:o.options)&&((i=(r=e.props)==null?void 0:r.options)==null?void 0:i.length)>0)return!1;const a=(n=t.uiSchema)==null?void 0:n.enum;if(!Array.isArray(a)||a.length===0)return!1;const c=normalizeUiSchemaEnumToOptions(a);return c.length?(e.setProps({options:c}),!0):!1}function resolveOperatorComponent(e,t,o){var r;if(!o||!Array.isArray(o))return null;const i=o.find(u=>(u==null?void 0:u.value)===t),n=i==null?void 0:i.schema,l=n==null?void 0:n["x-component"];if(!l)return null;const a=(r=e==null?void 0:e.getComponent)==null?void 0:r.call(e,l);if(!a)return null;const c=(n==null?void 0:n["x-component-props"])||{};return{Comp:a,props:c}}const{DateFilterDynamicComponent:DateFilterDynamicComponentLazy$1}=lazy(()=>Promise.resolve().then(()=>require("./index-C3fHjsMw-CvzEor8U.js")),"DateFilterDynamicComponent");function buildCollectionLeftMetaTreeLocal(e){return N(this,null,function*(){var t,o,r,i;const n=u=>N(this,null,function*(){return Array.isArray(u)?u:typeof u=="function"?yield u():[]});if((o=(t=e.getPropertyOptions)==null?void 0:t.call(e,"collection"))!=null&&o.meta){const u=(r=e.getPropertyMetaTree)==null?void 0:r.call(e,"{{ ctx.collection }}");return yield n(u)}const l=()=>{var u;return(u=e==null?void 0:e.collection)!=null?u:null},a=yield(0,import_flow_engine.createEphemeralContext)(e,{defineProperties:{collection:{get:l,meta:(0,import_flow_engine.createCollectionContextMeta)(l,"Current collection")}}}),c=(i=a.getPropertyMetaTree)==null?void 0:i.call(a,"{{ ctx.collection }}");return yield n(c)})}function createStaticInputRenderer$1(e,t,o,r){var i;const n=e==null?void 0:e["x-component"],l=((i=t==null?void 0:t.uiSchema)==null?void 0:i["x-component-props"])||{},a=(e==null?void 0:e["x-component-props"])||{},c=(0,import_merge.default)({},l,a),u=enumToOptions(e==null?void 0:e.enum,o)||[],d=f({style:f({width:200},(c==null?void 0:c.style)||{}),placeholder:(c==null?void 0:c.placeholder)||o("Enter value")},c),m=p=>{if(typeof p=="number"||(c==null?void 0:c.stringMode)===!0&&typeof p=="string")return p};return p=>{const h=p||{},{value:g,onChange:x}=h,_=Y(h,["value","onChange"]);if(n==="InputNumber")return(0,import_jsx_runtime.jsx)(import_antd.InputNumber,k(f(f({},d),_),{value:m(g),onChange:v=>x==null?void 0:x(v)}));if(n==="NumberPicker")return(0,import_jsx_runtime.jsx)(import_antd_v5.NumberPicker,k(f(f({},d),_),{value:m(g),onChange:v=>x==null?void 0:x(v)}));if(n==="Switch")return(0,import_jsx_runtime.jsx)(import_antd.Switch,k(f(f({},d),_),{checked:!!g,onChange:v=>x==null?void 0:x(v)}));if(n==="Select")return(0,import_jsx_runtime.jsx)(import_antd.Select,k(f(f({options:u},d),_),{value:Array.isArray(g)||typeof g=="string"||typeof g=="number"||typeof g=="boolean"?g:void 0,onChange:v=>x==null?void 0:x(v)}));if(n==="DateFilterDynamicComponent")return(0,import_jsx_runtime.jsx)(DateFilterDynamicComponentLazy$1,k(f(f({},d),_),{value:g,onChange:v=>x==null?void 0:x(v)}));if(n&&r!=null&&r.getComponent){const v=r.getComponent(n);if(v)return(0,import_jsx_runtime.jsx)(v,k(f(f({},d),_),{value:g,onChange:b=>x==null?void 0:x(b),style:f(f({width:200},d.style||{}),_==null?void 0:_.style)}))}return(0,import_jsx_runtime.jsx)(import_antd.Input,k(f(f({},d),_),{value:typeof g=="string"?g:g==null?"":String(g),onChange:v=>x==null?void 0:x(v.target.value)}))}}function normalizeRightValueInput(e){var t;if(e&&typeof e=="object"){const o=e;if(typeof o.preventDefault=="function"||o.nativeEvent||"target"in o){const r=(t=o.target)==null?void 0:t.value;return r!==void 0?r:e}}return e}const VariableFilterItem=(0,import_flow_engine.observer)(({value:e,model:t,rightAsVariable:o,rightMetaTree:r,ignoreFieldNames:i})=>{const n=(0,import_flow_engine.useFlowViewContext)(),l=t.translate,{path:a,operator:c,value:u}=e,[d,m]=(0,import_react2.useState)(null),p=(0,import_react2.useMemo)(()=>{var B,O,V,q;if(!d)return[];const U=(B=t.context.app)==null?void 0:B.dataSourceManager,z=d.interface?(O=U==null?void 0:U.collectionFieldInterfaceManager)==null?void 0:O.getFieldInterface(d.interface):void 0,G=(V=d==null?void 0:d.uiSchema)==null?void 0:V["x-filter-operators"];return((Array.isArray(G)&&G.length?G:(q=z==null?void 0:z.filterable)==null?void 0:q.operators)||[]).filter(H=>!H.visible||H.visible(d))},[d,t]);(0,import_react2.useEffect)(()=>{if(!p.length)return;const B=import_lodash.default.find(p,O=>O.value===e.operator);if(B)e.noValue=!!B.noValue;else{const O=p[0];e.operator=O.value,e.value=O.noValue?!0:void 0,e.noValue=!!O.noValue}},[p,e]);const h=(0,import_react2.useMemo)(()=>p.map(B=>({value:B.value,label:typeof B.label=="string"?l(B.label):B.label})),[p,l]),g=(0,import_react2.useCallback)((B,O)=>{e.path=B||"",O&&m(O)},[e]),x=(0,import_react2.useMemo)(()=>({resolveValueFromPath:B=>(m(B),(B==null?void 0:B.paths.slice(1).join("."))||null),resolvePathFromValue(B){return B&&["collection",...String(B).split(".")]}}),[]),_=(0,import_react2.useCallback)(B=>{e.operator=B;const O=p.find(V=>V.value===B);O!=null&&O.noValue?(e.value=!0,e.noValue=!0):(e.value=void 0,e.noValue=!1)},[p,e]),v=(0,import_react2.useMemo)(()=>p.find(B=>B.value===c),[p,c]),b=(0,import_react2.useMemo)(()=>{const B=(d==null?void 0:d.uiSchema)||{},O=(v==null?void 0:v.schema)||{},V=(0,import_merge.default)({},B,O);if((d==null?void 0:d.interface)==="formula"){const q={"x-read-pretty":!1,"x-component":"Input","x-component-props":f({},V["x-component-props"])};return(0,import_merge.default)({},V,q)}return V},[d,v]),C=import_react2.default.useRef(b==null?void 0:b["x-component"]),y=b==null?void 0:b["x-component"],S=(0,import_react2.useMemo)(()=>{const B=C.current;C.current=y;const O=B!==void 0&&B!==y;if(v!=null&&v.noValue)return u;if(O&&u!=null){e.value=void 0;return}return u},[y,u,e,v]),F=(0,import_react2.useCallback)(B=>{e.value=normalizeRightValueInput(B)},[e]),j=import_react2.default.useRef(l);import_react2.default.useEffect(()=>{j.current=l},[l]);const P=import_react2.default.useCallback(B=>{var O,V;return(V=(O=j.current)==null?void 0:O.call(j,B))!=null?V:B},[]),A=(0,import_react2.useMemo)(()=>enumToOptions(b==null?void 0:b.enum,P)||[],[b,P]),T=(0,import_react2.useMemo)(()=>createStaticInputRenderer$1(b,d,P,t.context.app),[b,d,P,t.context.app]),D=(0,import_react2.useCallback)(B=>B?B==="Input"||B==="InputNumber"||B==="NumberPicker"||B==="Switch"||B==="Select"||B==="DateFilterDynamicComponent":!0,[]),E=(0,import_react2.useMemo)(()=>{function B({dynValue:O}){const V=import_react2.default.useRef(()=>{}),q=(0,import_react2.useCallback)(G=>{F(G)},[F]);(0,import_react2.useEffect)(()=>{V.current=q},[q]);const U=import_react2.default.useRef(null);U.current||(U.current=(0,import_core.createForm)({values:{value:O},effects(){const G=H=>"value"in H;(0,import_core.onFieldValueChange)("value",H=>{G(H)&&V.current(H.value)})}})),(0,import_react2.useEffect)(()=>{var G;(G=U.current)==null||G.setValues({value:O})},[O]);const z=(0,import_react2.useMemo)(()=>(0,import_merge.default)({name:"value","x-component":"Input","x-component-props":{style:{width:200},placeholder:P("Enter value")},"x-read-pretty":!1,"x-validator":void 0,"x-decorator":void 0},b||{}),[b,P]);return(0,import_jsx_runtime.jsx)(FormProvider,{form:U.current,children:(0,import_jsx_runtime.jsx)("div",{style:{flex:"1 1 40%",minWidth:160,maxWidth:"100%"},children:(0,import_jsx_runtime.jsx)(SchemaComponent,{schema:z})})})}return B},[b,P,F]),R=(0,import_react2.useCallback)(()=>{const B=resolveOperatorComponent(t.context.app,c,p);if(B&&(c==="$in"||c==="$notIn")){const{Comp:O,props:V}=B;(!(V!=null&&V.options)||(V==null?void 0:V.options.length)===0)&&A!=null&&A.length&&(V.options=A);const q=f({flex:"1 1 40%",minWidth:160,maxWidth:"100%"},(V==null?void 0:V.style)||{}),U=Array.isArray(S)&&S.every(z=>typeof z=="string"||typeof z=="number")?S:typeof S=="string"?S.split(/\r?\n/).map(z=>z.trim()).filter(Boolean):[];return(0,import_jsx_runtime.jsx)("div",{style:q,children:(0,import_jsx_runtime.jsx)(O,k(f({},V),{style:f({width:"100%"},(V==null?void 0:V.style)||{}),value:U,onChange:z=>F(z)}))})}return D(y)?(0,import_jsx_runtime.jsx)("div",{style:{flex:"1 1 40%",minWidth:160,maxWidth:"100%"},children:(0,import_jsx_runtime.jsx)(T,{value:S,onChange:O=>F(O)})}):(0,import_jsx_runtime.jsx)(E,{dynValue:S})},[E,D,c,p,S,T,t.context.app,F,A]),M=(0,import_react2.useMemo)(()=>function(){return(0,import_jsx_runtime.jsx)(import_antd.Input,{placeholder:`<${l("Null")}>`,readOnly:!0})},[l]),L=(0,import_react2.useMemo)(()=>()=>N(void 0,null,function*(){const B=typeof r=="function"?yield r():r??n.getPropertyMetaTree(),O=Array.isArray(B)?B:yield B();return[{title:l("Constant"),name:"constant",type:"string",paths:["constant"],render:T},{title:l("Null"),name:"null",type:"object",paths:["null"],render:M},...O]}),[r,n,T,M,l]),$=(0,import_react2.useMemo)(()=>({renderInputComponent:B=>{var O;const V=(O=B==null?void 0:B.paths)==null?void 0:O[0];return V==="constant"?T:V==="null"?M:null},resolveValueFromPath:B=>{var O;const V=(O=B==null?void 0:B.paths)==null?void 0:O[0];if(V==="constant")return"";if(V==="null")return null},resolvePathFromValue:B=>B===null?["null"]:(typeof B=="string"?(0,import_flow_engine.parseValueToPath)(B):void 0)||["constant"]}),[M,T]),w=(0,import_react2.useMemo)(()=>()=>N(void 0,null,function*(){var B;const O=(B=t.context.app)==null?void 0:B.dataSourceManager,V=O==null?void 0:O.collectionFieldInterfaceManager,q=yield buildCollectionLeftMetaTreeLocal(t.context),U=G=>N(void 0,null,function*(){var H,W;const J=G.interface?V==null?void 0:V.getFieldInterface(G.interface):void 0,K=[],Q=J==null?void 0:J.filterable,Z=Q==null?void 0:Q.children;if(Array.isArray(Z)&&Z.length)for(const X of Z)K.push({name:X.name,title:X.title||X.name,type:((H=X.schema)==null?void 0:H.type)||"string",interface:((W=X.schema)==null?void 0:W["x-component"])==="Select"?"select":"input",uiSchema:k(f({},X.schema||{}),{"x-filter-operators":X.operators}),paths:[...G.paths||[],X.name],parentTitles:[...G.parentTitles||[],G.title]});if(typeof G.children=="function"){const X=G.children;return k(f({},G),{children:()=>N(void 0,null,function*(){const oe=yield X();return[...Array.isArray(oe)?oe:[],...K]})})}const ee=[...Array.isArray(G.children)?G.children:[],...K];return k(f({},G),{children:ee.length?ee:G.children})}),z=[];for(const G of q)z.push(yield U(G));return z}),[t]);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,metaTree:w,onChange:g,converters:x,showValueComponent:!1,style:{flex:"1 1 40%",minWidth:160,maxWidth:"100%"},onlyLeafSelectable:!0,placeholder:l("Select field"),ignoreFieldNames:i}),(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:_,children:h.map(B=>(0,import_jsx_runtime.jsx)(import_antd.Select.Option,{value:B.value,children:B.label},B.value))}),!(v!=null&&v.noValue)&&(o?(0,import_jsx_runtime.jsx)(import_flow_engine.VariableInput,{value:S,onChange:B=>F(B),metaTree:L,converters:$,showValueComponent:!0,style:{flex:"1 1 40%",minWidth:160,maxWidth:"100%"},placeholder:l("Enter value")}):R())]})}),{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=f({style:f({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:x,onChange:_}=g,v=Y(g,["value","onChange"]);if(l==="InputNumber")return(0,import_jsx_runtime.jsx)(import_antd.InputNumber,k(f(f({},p),v),{value:x,onChange:_}));if(l==="NumberPicker")return(0,import_jsx_runtime.jsx)(import_antd_v5.NumberPicker,k(f(f({},p),v),{value:x,onChange:_}));if(l==="Switch")return(0,import_jsx_runtime.jsx)(import_antd.Switch,k(f(f({},p),v),{checked:!!x,onChange:_}));if(l==="Select"){let b=p;return Array.isArray(b==null?void 0:b.options)&&b.options.length>0?b=k(f({},b),{options:translateOptions(b.options,o)}):m&&(b=k(f({},b),{options:m})),(0,import_jsx_runtime.jsx)(import_antd.Select,k(f(f({},b),v),{value:x,onChange:_}))}return l==="DateFilterDynamicComponent"?(0,import_jsx_runtime.jsx)(DateFilterDynamicComponentLazy,k(f(f({},p),v),{value:x,onChange:_})):(0,import_jsx_runtime.jsx)(import_antd.Input,k(f(f({},p),v),{value:x,onChange:b=>{var C;return _==null?void 0:_((C=b==null?void 0:b.target)==null?void 0:C.value)}}))}}const fallbackStringOperators=[{value:"$includes",label:"contains",selected:!0},{value:"$notIncludes",label:"does not contain"},{value:"$eq",label:"is"},{value:"$ne",label:"is not"},{value:"$empty",label:"is empty",noValue:!0},{value:"$notEmpty",label:"is not empty",noValue:!0}],LinkageFilterItem=(0,import_flow_engine.observer)(e=>{var t;const{value:o,model:r}=e,i=(0,import_flow_engine.useFlowViewContext)(),n=r.translate,{path:l,operator:a,value:c}=o||{},[u,d]=(0,import_react2.useState)(null),m=(0,import_react2.useRef)(!1),p=(0,import_react2.useMemo)(()=>{if(!u)return"";const T=u.interface||"",D=Array.isArray(u.paths)?u.paths.join("."):"";return`${T}|${D}`},[u]),h=(0,import_react2.useMemo)(()=>u!=null&&u.interface?(r.context.app.dataSourceManager.collectionFieldInterfaceManager.getFieldInterface(u.interface).filterable.operators||[]).filter(T=>!T.visible||T.visible(u)).map(T=>({value:T.value,label:typeof T.label=="string"?T.label:String(T.label),noValue:!!T.noValue,schema:T.schema,selected:!!T.selected})):u?fallbackStringOperators:[],[p,r]),g=(0,import_react2.useMemo)(()=>h.map(T=>({value:T.value,label:n(T.label)})),[h,n]);(0,import_react2.useEffect)(()=>{if(h.length!==0){if(!a){if(m.current){const T=h.find(D=>D.selected)||h[0];o.operator=(T==null?void 0:T.value)||"",T!=null&&T.noValue?(o.value=!0,o.noValue=!0):o.noValue=!1,m.current=!1}return}if(!h.some(T=>T.value===a)){const T=h.find(D=>D.selected)||h[0];o.operator=(T==null?void 0:T.value)||"",T!=null&&T.noValue?(o.value=!0,o.noValue=!0):o.noValue=!1}}},[h,a,o]);const x=(0,import_react2.useMemo)(()=>h.find(T=>T.value===a),[h,a]),_=(0,import_react2.useMemo)(()=>{const T=(u==null?void 0:u.uiSchema)||{},D=(x==null?void 0:x.schema)||{};return(0,import_merge.default)({},T,D)},[u,x]),v=(0,import_react2.useRef)(n);(0,import_react2.useEffect)(()=>{v.current=n},[n]);const b=(0,import_react2.useCallback)(T=>{var D,E;return(E=(D=v.current)==null?void 0:D.call(v,T))!=null?E:T},[]),C=(0,import_react2.useMemo)(()=>createStaticInputRenderer(_,u,b),[_,u,b]),y=(0,import_react2.useMemo)(()=>function(){return(0,import_jsx_runtime.jsx)(import_antd.Input,{placeholder:`<${n("Null")}>`,readOnly:!0})},[n]),S=(0,import_react2.useMemo)(()=>()=>N(void 0,null,function*(){const T=(r==null?void 0:r.context.getPropertyMetaTree())||i.getPropertyMetaTree();return[{title:n("Constant"),name:"constant",type:"string",paths:["constant"]},{title:n("Null"),name:"null",type:"object",paths:["null"]},...Array.isArray(T)?T:[]]}),[i,r,n]),F=(0,import_react2.useCallback)(()=>{var T,D;return((D=(T=r==null?void 0:r.context)==null?void 0:T.getPropertyMetaTree)==null?void 0:D.call(T))||i.getPropertyMetaTree()},[i,r]),j=(0,import_react2.useMemo)(()=>({renderInputComponent:T=>{var D;const E=(D=T==null?void 0:T.paths)==null?void 0:D[0];return E==="constant"?C:E==="null"?y:null},resolveValueFromPath:T=>{var D;const E=(D=T==null?void 0:T.paths)==null?void 0:D[0];if(E==="constant")return"";if(E==="null")return null},resolvePathFromValue:T=>T===null?["null"]:(0,import_flow_engine.parseValueToPath)(T)||["constant"]}),[y,C]),P=(0,import_react2.useCallback)((T,D)=>{const E=o.path||"",R=T||"",M=R!==E;o.path=R,M&&E&&(o.operator="",o.value="",m.current=!0),!E&&R&&!o.operator&&(m.current=!0),D&&d(D)},[o]),A=(0,import_react2.useCallback)(T=>{o.operator=T;const D=h.find(E=>E.value===T);D!=null&&D.noValue?(o.value=!0,o.noValue=!0):o.noValue=!1},[o,h]);return(0,import_jsx_runtime.jsxs)(import_antd.Space,{wrap:!0,style:{width:"100%"},children:[(0,import_jsx_runtime.jsx)(import_flow_engine.VariableInput,{value:l,onChange:P,metaTree:F,showValueComponent:!0,style:{flex:"1 1 40%",minWidth:160,maxWidth:"100%"},placeholder:n("Select variable"),onlyLeafSelectable:!0}),(0,import_jsx_runtime.jsx)(import_antd.Select,{style:{flex:"0 0 140px",minWidth:120,maxWidth:"100%"},placeholder:n("Comparison"),value:a||void 0,onChange:A,children:g.map(T=>(0,import_jsx_runtime.jsx)(import_antd.Select.Option,{value:T.value,children:T.label},T.value))}),!((t=h.find(T=>T.value===a))!=null&&t.noValue)&&(0,import_jsx_runtime.jsx)(import_flow_engine.VariableInput,{value:c,onChange:T=>o.value=T,metaTree:S,converters:j,showValueComponent:!0,style:{flex:"1 1 40%",minWidth:160,maxWidth:"100%"},placeholder:n("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,k(f({},r),{model:o.model,rightAsVariable:!0}))})}}},defaultParams(e){return{filter:{logic:"$and",items:[]}}},handler(e,t){return N(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)})}});function SkeletonFallback(e){return(0,import_jsx_runtime.jsx)(import_antd.Card,k(f({},e),{children:(0,import_jsx_runtime.jsx)(import_antd.Skeleton,{paragraph:{rows:3}})}))}class RouteModel extends import_flow_engine.FlowModel{}RouteModel.registerFlow({key:"popupSettings",on:"click",steps:{openView:{use:"openView",defaultParams(e){return{mode:"embed",preventClose:!0,pageModelClass:"RootPageModel"}}}}});function resolveViewParamsToViewList(e,t,o){return t.map((r,i)=>{let n,l=r.viewUid;return i===0?(n=o,l=o.uid):n=e.getModel(r.viewUid,!0),{params:r,modelUid:l,model:n,hidden:import_flow_engine.observable.ref(!1),index:i}})}function updateViewListHidden(e){let t=!1;for(let o=e.length-1;o>=0;o--){const r=e[o];getViewType(r)==="embed"&&!t?(t=!0,r.hidden.value=!1):r.hidden.value=t}}function getViewType(e){if(e.model instanceof RouteModel)return"embed";if(!e.model)return"drawer";const t=e.model.getStepParams("popupSettings","openView");return(t==null?void 0:t.mode)||"drawer"}const stableStringify=e=>e==null?"":typeof e=="object"?Array.isArray(e)?"["+e.map(stableStringify).join(",")+"]":"{"+Object.keys(e).sort().map(t=>`${t}:${stableStringify(e[t])}`).join(",")+"}":String(e),getKey=e=>{const{params:t,index:o}=e;return[stableStringify(t.viewUid),stableStringify(t.sourceId),stableStringify(t.filterByTk),String(o)].join("_")};function getViewDiffAndUpdateHidden(e,t){const o=new Map,r=new Map;e.forEach(l=>{const a=getKey(l);o.set(a,l)}),t.forEach(l=>{r.set(getKey(l),l)});const i=[];o.forEach((l,a)=>{r.has(a)?r.get(a).hidden=l.hidden:i.push(l)});const n=[];return r.forEach((l,a)=>{o.has(a)||n.push(l)}),{viewsToClose:i,viewsToOpen:n}}const openViewFlow=(0,import_flow_engine.defineFlow)({key:"popupSettings",title:(0,import_flow_engine.tExpr)("Popup settings"),on:"click",sort:300,steps:{openView:{use:"openView",hideInSettings:e=>N(void 0,null,function*(){var t,o,r,i;const n=(r=(o=(t=e.model).getStepParams)==null?void 0:o.call(t,"displayFieldSettings","clickToOpen"))==null?void 0:r.clickToOpen;return e.collectionField?n===void 0?!((i=e.collectionField)!=null&&i.isAssociationField()):n===!1:!1})}},defaultParams:e=>{var t,o,r,i,n,l,a,c;let u,d,m;const p=e.collectionField,h=e.blockModel,g=(o=(t=e.model)==null?void 0:t.parent)==null?void 0:o.associationPathName,x=e.collection||(h==null?void 0:h.collection),_=C=>{var y;return!!((y=C==null?void 0:C.isAssociationField)!=null&&y.call(C))},v=!_(p)&&g?(r=x==null?void 0:x.getFieldByPath)==null?void 0:r.call(x,g):void 0,b=_(p)?p:v;if(_(b)){const C=b.targetCollection;h==null||h.collection,u=C==null?void 0:C.name,d=C==null?void 0:C.dataSourceKey,m=b==null?void 0:b.resourceName}else p?(u=(i=e.collection)==null?void 0:i.name,d=(n=e.collection)==null?void 0:n.dataSourceKey,m=p==null?void 0:p.target):(u=(l=e.collection)==null?void 0:l.name,d=(a=e.collection)==null?void 0:a.dataSourceKey,m=(c=e.association)==null?void 0:c.resourceName);return{openView:{collectionName:u,associationName:m,dataSourceKey:d}}}}),getOpenViewStepParams=e=>e.getStepParams("popupSettings","openView");function InternalFlowPage(e){var t=e,{uid:o}=t,r=Y(t,["uid"]);const i=(0,import_flow_engine.useFlowModelById)(o);return(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,f({model:i,fallback:(0,import_jsx_runtime.jsx)(SkeletonFallback,{style:{margin:i!=null&&i.context.isMobileLayout?8:i==null?void 0:i.context.themeToken.marginBlock}}),hideRemoveInSettings:!0,showFlowSettings:{showBackground:!1,showBorder:!1}},r))}const FlowRoute=()=>{const e=(0,import_react2.useRef)(null),t=(0,import_flow_engine.useFlowEngine)(),o=useCurrentRoute(),{refresh:r}=useAllAccessDesktopRoutes(),{isMobileLayout:i}=useMobileLayout(),n=(0,import_react2.useRef)(t.context.route.params.name),l=(0,import_react2.useRef)({}),a=(0,import_react2.useRef)([]),c=(0,import_react2.useRef)(!1),{designable:u}=useDesignable(),{active:d}=useKeepAlive(),m=(0,import_react2.useRef)(!1),p=(0,import_react2.useMemo)(()=>t.createModel({uid:n.current,use:"RouteModel"}),[t]);return(0,import_react2.useEffect)(()=>{p.context.defineProperty("pageActive",{value:import_flow_engine.observable.ref(!1)})},[p]),(0,import_react2.useEffect)(()=>{p.context.pageActive.value=d},[d,p]),(0,import_react2.useEffect)(()=>{t.context.defineProperty("isMobileLayout",{get:()=>i}),t.context.defineProperty("deviceType",{get:()=>import_react_device_detect.deviceType==="browser"?"computer":import_react_device_detect.deviceType,cache:!1,meta:{type:"string",title:t.translate("Current device type"),interface:"select",uiSchema:{enum:[{label:t.translate("Computer"),value:"computer"},{label:t.translate("Mobile"),value:"mobile"},{label:t.translate("Tablet"),value:"tablet"},{label:t.translate("SmartTv"),value:"smarttv"},{label:t.translate("Console"),value:"console"},{label:t.translate("Wearable"),value:"wearable"},{label:t.translate("Embedded"),value:"embedded"}],"x-component":"Select"}}})},[i,t]),(0,import_react2.useEffect)(()=>{i?t.flowSettings.disable():u&&t.flowSettings.enable()},[u,t,i]),(0,import_react2.useEffect)(()=>{e.current&&(t.context.defineProperty("layoutContentElement",{get:()=>e.current}),p.context.defineProperty("currentRoute",{get:()=>o}),t.context.defineProperty("currentRoute",{get:()=>o}),p.context.defineProperty("refreshDesktopRoutes",{get:()=>r}))},[p,o,r,t]),(0,import_react2.useEffect)(()=>{const h=(0,import_flow_engine.reaction)(()=>t.context.route,g=>{var x;if(g.params.name!==n.current){m.current=!0;return}try{m.current=!1;const _=(0,import_flow_engine.parsePathnameToViewParams)(g.pathname),v=resolveViewParamsToViewList(t,_,p);if(a.current.length===0&&v.length>1&&!c.current){const y=S=>{v[S]&&(S===0?new import_flow_engine.ViewNavigation(t.context,[]).navigateTo(v[S].params,{replace:!0}):new import_flow_engine.ViewNavigation(t.context,v.slice(0,S).map(F=>F.params)).navigateTo(v[S].params),y(S+1))};y(0),c.current=!0;return}const{viewsToClose:b,viewsToOpen:C}=getViewDiffAndUpdateHidden(a.current,v);if(console.log("[NocoBase] FlowRoute view diff:",{viewsToClose:b,viewsToOpen:C}),b.length&&(b.forEach(y=>{var S,F;(F=(S=l.current[getKey(y)])==null?void 0:S.destroy)==null||F.call(S,!0),delete l.current[getKey(y)]}),updateViewListHidden(v)),C.length&&N(void 0,null,function*(){const y=C.filter(F=>!F.model);if(y.length>0&&(yield Promise.all(y.map(F=>N(void 0,null,function*(){try{F.model=yield t.loadModel({uid:F.modelUid})}catch(j){console.error(`[NocoBase] Failed to load model ${F.modelUid}:`,j)}})))),m.current)return;updateViewListHidden(v);const S=F=>{if(!C[F])return;const j=C[F];if(!j.model)return;const P=import_react2.default.createRef(),A=import_react2.default.createRef(),T=getOpenViewStepParams(j.model),D=v.slice(0,j.index).map(R=>R.params.viewUid),E=new import_flow_engine.ViewNavigation(t.context,v.slice(0,j.index+1).map(R=>R.params));j.model.dispatchEvent("click",k(f({target:e.current,collectionName:T==null?void 0:T.collectionName,associationName:T==null?void 0:T.associationName,dataSourceKey:T==null?void 0:T.dataSourceKey,destroyRef:P,updateRef:A,openerUids:D},j.params),{navigation:E,onOpen(){S(F+1)},hidden:j.hidden,isMobileLayout:i,triggerByRouter:!0})),l.current[getKey(j)]={destroy:R=>{var M;return(M=P.current)==null?void 0:M.call(P)},update:R=>{var M;return(M=A.current)==null?void 0:M.call(A,R)},navigation:E}};S(0)}),b.length===0&&C.length===0){const y=v.at(-1);y&&((x=l.current[getKey(y)])==null||x.navigation.setViewStack(v.map(S=>S.params)))}a.current=[...v]}catch(_){console.error("[NocoBase] Failed to resolve view params to view list:",_)}},{fireImmediately:!0});return()=>{h==null||h(),a.current.forEach(g=>{var x;t.removeModelWithSubModels(g.params.viewUid),(x=l.current[getKey(g)])==null||x.destroy()})}},[t,i,p]),(0,import_jsx_runtime.jsx)("div",{ref:e})},FlowPage=import_react2.default.memo(e=>{const t=e,{pageModelClass:o="ChildPageModel",parentId:r,onModelLoaded:i,defaultTabTitle:n}=t,l=Y(t,["pageModelClass","parentId","onModelLoaded","defaultTabTitle"]),a=(0,import_flow_engine.useFlowEngine)(),c=(0,import_flow_engine.useFlowViewContext)(),{loading:u,data:d}=(0,import_ahooks.useRequest)(()=>N(void 0,null,function*(){var m;const p={async:!0,parentId:r,subKey:"page",subType:"object",use:o};if(o==="ChildPageModel"){const g=n||((m=a.translate)==null?void 0:m.call(a,"Details"));p.subModels={tabs:[{use:"ChildPageTabModel",stepParams:{pageTabSettings:{tab:{title:g}}}}]},p.stepParams={pageSettings:{general:{displayTitle:!1,enableTabs:!0}}}}const h=yield a.loadOrCreateModel(p);return h!=null&&h.uid&&i&&(h.context.addDelegate(c),h.removeParentDelegate(),i(h.uid,h)),h}),{refreshDeps:[r]});return u||!(d!=null&&d.uid)?(0,import_jsx_runtime.jsx)(SkeletonFallback,{style:{margin:c!=null&&c.isMobileLayout?8:c==null?void 0:c.themeToken.marginBlock}}):(0,import_jsx_runtime.jsx)(InternalFlowPage,f({uid:d.uid},l))});FlowPage.displayName="FlowPage";const RemoteFlowModelRenderer=e=>{const t=e,{uid:o,parentId:r,subKey:i}=t,n=Y(t,["uid","parentId","subKey"]),l=(0,import_flow_engine.useFlowEngine)(),{loading:a,data:c}=(0,import_ahooks.useRequest)(()=>N(void 0,null,function*(){return yield l.loadModel({uid:o,parentId:r,subKey:i})}),{refreshDeps:[o,r,i]});return a||!(c!=null&&c.uid)?(0,import_jsx_runtime.jsx)(SkeletonFallback,{style:{margin:16}}):(0,import_jsx_runtime.jsx)(InternalFlowPage,f({uid:c.uid},n))},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}),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),I(this,"defaultProps",{type:"default",title:(0,import_flow_engine.tExpr)("Action")}),I(this,"enableEditTooltip",!0),I(this,"enableEditTitle",!0),I(this,"enableEditIcon",!0),I(this,"enableEditType",!0),I(this,"enableEditDanger",!0),I(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",f({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,k(f({},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,k(f({},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,k(f({},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=Y(o,["title","tooltip"]);e.model.setProps(f({title:r?e.t(r):void 0,tooltip:i?e.t(i):void 0},n))}},aclCheck:{use:"aclCheck"},linkageRules:{use:"actionLinkageRules"}}});ActionModel.registerEvents({click:{title:(0,import_flow_engine.tExpr)("Click"),name:"click",uiSchema:{condition:{type:"object",title:(0,import_flow_engine.tExpr)("Trigger condition"),"x-decorator":"FormItem","x-component":ConditionBuilder}},handler:commonConditionHandler}});class ActionGroupModel extends import_flow_engine.FlowModel{static getAllParentClasses(){const t=[];let o=this;for(;o&&o!==Object;)o=Object.getPrototypeOf(o),o!=null&&o.currentModels&&t.push(o);return t}static get currentModels(){return(!Object.prototype.hasOwnProperty.call(this,"_models")||!this._models)&&(this._models=new Map),this._models}static get models(){const t=new Map,o=this.getAllParentClasses();for(const r of o)for(const[i,n]of r.currentModels)t.set(i,n);for(const[r,i]of this.currentModels)t.set(r,i);return t}static registerActionModels(t){for(const[o,r]of Object.entries(t))Object.defineProperty(r,"name",{value:o}),this.currentModels.set(o,r)}static defineChildren(t){return N(this,null,function*(){const o=this.baseClass?yield(0,import_flow_engine.buildSubModelItems)(this.baseClass)(t):[],r=[],i=o.filter(n=>this.scene?t.engine.getModelClass(n.useModel)._isScene(this.scene):!0);for(const[n,l]of this.models){if(i.find(c=>c.useModel===l.name))continue;const a=yield(0,import_flow_engine.buildSubModelItem)(l,t);a&&r.push(a)}return import_lodash.default.sortBy([...i,...r],"sort")})}}I(ActionGroupModel,"baseClass"),I(ActionGroupModel,"scene"),I(ActionGroupModel,"_models");class CollectionActionGroupModel extends ActionGroupModel{}I(CollectionActionGroupModel,"baseClass",ActionModel),I(CollectionActionGroupModel,"scene",ActionSceneEnum.collection);class RecordActionGroupModel extends ActionGroupModel{}I(RecordActionGroupModel,"baseClass",ActionModel),I(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:"Display collection 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.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)}]}});return r(t.collection)}}I(AssociationFieldGroupModel,"itemModelName","DetailsItemModel");AssociationFieldGroupModel.define({label:'{{t("Display association 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){I(this,"filterConfigs"),I(this,"gridModel"),this.gridModel=t,this.filterConfigs=o||[]}saveFilterConfigs(){return N(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 N(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 N(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]=f({},t):this.filterConfigs.push(f({},t)),yield this.saveFilterConfigs()})}removeFilterConfig(t){return N(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(i=>i.targetId===t);r.length!==0&&r.forEach(i=>{const n=this.gridModel.flowEngine.getModel(i.filterId);if(!n){console.error(`[NocoBase]: Filter model with uid "${i.filterId}" not found`);return}if(!n.getFilterValue){console.error(`[NocoBase]: Filter model with uid "${i.filterId}" does not have getFilterValue method`);return}const l=n.getFilterValue();if(isFilterValueEmpty(l)){try{o.resource.removeFilterGroup(i.filterId)}catch(c){console.error(`[NocoBase]: Failed to remove filter configuration from target model: ${c.message}`);return}return}const a=i.filterPaths.map(c=>({path:c,operator:i.operator||getDefaultOperator(n),value:l}));try{if(a.length===1)o.resource.addFilterGroup(i.filterId,new import_flow_engine.FilterItem({path:a[0].path,operator:a[0].operator,value:a[0].value}));else if(a.length>1){const c={logic:"$or",items:a};o.resource.addFilterGroup(i.filterId,new import_flow_engine.FilterGroup(c))}}catch(c){console.error(`Failed to bind filter configuration to target model: ${c.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(i=>i.targetId===t);r.length!==0&&r.forEach(i=>{try{o.resource.removeFilterGroup(i.filterId)}catch(n){console.error(`Failed to unbind filter configuration from target model: ${n.message}`);return}})}refreshTargetsByFilter(t){return N(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=>N(this,null,function*(){var l,a;try{this.bindToTarget(n);const c=this.gridModel.flowEngine.getModel(n);if(!c){console.error(`Target model with uid "${n}" not found`);return}if(!c.resource||typeof c.resource.refresh!="function"){console.error(`Target model with uid "${n}" does not have a valid resource with refresh method`);return}(a=(l=c.resource).setPage)==null||a.call(l,1),yield c.resource.refresh()}catch(c){console.error(`Failed to refresh target model "${n}": ${c.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 x=u.reduce((b,C)=>b+(C||0),0),_=c-u.filter(Boolean).length,v=_>0?(24-x)/_: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:f(f({},t),o[e.type])})}const InnerJsonEditor=e=>{var t=e,{value:o,onChange:r,rows:i=10}=t,n=Y(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,f({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),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),I(this,"subModelBaseClass","BlockModel"),I(this,"gridContainerRef",import_react2.default.createRef()),I(this,"prevMoveDistance",0),I(this,"itemSettingsMenuLevel",1),I(this,"itemFlowSettings",{}),I(this,"dragOverlayConfig"),I(this,"itemFallback",(0,import_jsx_runtime.jsx)(SkeletonFallback,{})),I(this,"itemExtraToolbarItems",[{key:"drag-handler",component:import_flow_engine.DragHandler,sort:1}]),I(this,"dragState"),I(this,"_memoItemFlowSettings")}getItemFlowSettings(){return this._memoItemFlowSettings||(this._memoItemFlowSettings=f({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],this.setStepParams(GRID_FLOW_KEY,GRID_STEP,{rows:this.props.rows||{},sizes:r}),this.setProps("sizes",r)}}),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],this.setStepParams(GRID_FLOW_KEY,GRID_STEP,{rows:c,sizes:u}),this.setProps("sizes",u)}(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;const l=(r=(o=t==null?void 0:t.rows)!=null?o:this.props.rows)!=null?r:{},a=(n=(i=t==null?void 0:t.sizes)!=null?i:this.props.sizes)!=null?n:{};this.setStepParams(GRID_FLOW_KEY,GRID_STEP,{rows:l,sizes:a}),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||{});this.setStepParams(GRID_FLOW_KEY,GRID_STEP,{rows:r,sizes:o.sizes||{}}),t&&this.setProps("rows",r)}computePointerPosition(t){var o;if(!this.dragState)return null;const r=this.dragState.pointerOrigin;if(r)return{x:r.x+t.delta.x,y:r.y+t.delta.y};const i=getClientPoint(t.activatorEvent);if(i)return this.dragState.pointerOrigin=i,{x:i.x+t.delta.x,y:i.y+t.delta.y};const n=(o=t.over)==null?void 0:o.rect;return n?{x:n.left+n.width/2,y:n.top+n.height/2}:null}updateLayoutSnapshot(){if(!this.dragState)return;const t=(0,import_flow_engine.buildLayoutSnapshot)({container:this.gridContainerRef.current});this.dragState.slots=t.slots,this.dragState.containerRect=t.containerRect}scheduleSnapshotRefresh(){this.dragState&&(this.dragState.refreshTimer&&clearTimeout(this.dragState.refreshTimer),this.dragState.refreshTimer=setTimeout(()=>{this.dragState&&(this.dragState.refreshTimer=null,this.updateLayoutSnapshot())},16))}computeOverlayRect(t){var o,r,i,n,l,a,c,u,d;const m=this.dragOverlayConfig,p=t.rect;switch(t.type){case"column":{const h=(o=m==null?void 0:m.columnInsert)==null?void 0:o[t.position],g=(r=h==null?void 0:h.height)!=null?r:p.height,x=(i=h==null?void 0:h.offsetTop)!=null?i:0;return{top:p.top+x,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,x=(a=h==null?void 0:h.offsetLeft)!=null?a:0;return{top:p.top,left:p.left+x,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,x=(d=h==null?void 0:h.offsetTop)!=null?d:0;return{top:p.top+x,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)};const l=this.gridContainerRef.current,a=(o=l==null?void 0:l.scrollTop)!=null?o:0,c=(r=l==null?void 0:l.scrollLeft)!=null?r:0,u=this.computeOverlayRect(t),d={top:u.top-this.dragState.containerRect.top+a,left:u.left-this.dragState.containerRect.left+c,width:u.width,height:u.height,type:t.type};this.setProps("dragOverlayRect",d),this.dragState.activeSlotKey=i}handleDragStart(t){var o;const r=t.active.id;this.dragState={sourceUid:r,snapshot:{rows:import_lodash.default.cloneDeep(this.props.rows||{}),sizes:import_lodash.default.cloneDeep(this.props.sizes||{})},slots:[],containerRect:{top:0,left:0,width:0,height:0},pointerOrigin:(o=getClientPoint(t.activatorEvent))!=null?o:void 0,activeSlotKey:null,previewLayout:void 0,refreshTimer:null},this.setProps("dragOverlayRect",null),this.updateLayoutSnapshot(),this.scheduleSnapshotRefresh()}handleDragMove(t){if(!this.dragState)return;this.dragState.slots.length||this.updateLayoutSnapshot();const o=this.computePointerPosition(t);if(!o){this.applyPreview(null);return}const r=(0,import_flow_engine.resolveDropIntent)(o,this.dragState.slots);this.applyPreview(r)}finishDrag(){this.dragState&&(this.dragState.refreshTimer&&clearTimeout(this.dragState.refreshTimer),this.dragState=void 0,this.setProps("dragOverlayRect",null))}handleDragEnd(t){if(!this.dragState)return;const o=this.dragState.previewLayout;o&&(this.setProps("rows",import_lodash.default.cloneDeep(o.rows)),this.setProps("sizes",import_lodash.default.cloneDeep(o.sizes)),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;if(this.context.flowSettingsEnabled)return{rows:i,sizes:n};const l=((t=this.subModels)==null?void 0:t.items)||[];if(!l.length)return{rows:i,sizes:n};const a=new Map(l.map(d=>[d.uid,d])),c={},u={};return Object.entries(i).forEach(([d,m])=>{const p=m,h=n[d]||[],g=[],x=[];p.forEach((_,v)=>{_.some(b=>{if(b===import_flow_engine.EMPTY_COLUMN_UID)return!1;const C=a.get(b);return!C||!C.hidden})&&(g.push(_),x.push(h[v]))}),g.length>0&&(c[d]=g,x.length>0&&(u[d]=x))}),{rows:c,sizes:u}}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;const a=this.flowEngine.getModel(i);if(!a)return this.itemFallback;const c=this.context.fieldKey,u=this.context.fieldIndex,d=this.context.record,m=this.context.currentObject,p=u==null?a:(()=>{const h=a.createFork({},`${c}:${i}`);return h.context.defineProperty("fieldIndex",{get:()=>u}),h.context.defineProperty("fieldKey",{get:()=>c}),h.context.defineProperty("record",{get:()=>d,cache:!1}),h.context.defineProperty("currentObject",{get:()=>m,cache:!1}),h})();return(0,import_jsx_runtime.jsx)(import_flow_engine.Droppable,{model:p,children:(0,import_jsx_runtime.jsx)(import_flow_engine.MemoFlowModelRenderer,{model:p,fallback:a.skeleton||this.itemFallback,showFlowSettings:this.context.flowSettingsEnabled?this.getItemFlowSettings():!1,showErrorFallback:!0,settingsMenuLevel:(n=p==null?void 0:p.settingsMenuLevel)!=null?n:this.itemSettingsMenuLevel,showTitle:!0,extraToolbarItems:this.itemExtraToolbarItems},`${p.uid}:${c}:${(p==null?void 0:p.use)||((l=p==null?void 0:p.constructor)==null?void 0:l.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 N(this,null,function*(){const o=e.model.mergeRowsWithItems(t.rows||{});e.model.setProps("rows",o),e.model.setProps("sizes",t.sizes||{})})}}}});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 x=m[e.rowId];let _=g-r;const v=t==="left"&&e.columnIndex>0,b=t==="right"&&e.columnIndex<x.length-1;if(!v&&!b&&_>0){const C=x.reduce((S,F)=>S+F,0),y=c-C;if(y<=0)return{newRows:d,newSizes:m,moveDistance:r};_>y&&(g=r+y,_=y)}if(m[e.rowId][e.columnIndex]+=_,t==="left"&&e.columnIndex>0&&(m[e.rowId][e.columnIndex-1]-=_,m[e.rowId][e.columnIndex-1]===0&&removeEmptyColumnFromRow({rows:d,sizes:m,position:e,direction:"left"})),t==="left"&&e.columnIndex===0){const C=m[e.rowId].slice(1).reduce((y,S)=>y+S,0);m[e.rowId][0]<c-C&&addEmptyColumnToRow({rows:d,sizes:m,position:e,direction:"left"})}if(t==="right"&&e.columnIndex<m[e.rowId].length-1&&(m[e.rowId][e.columnIndex+1]-=_,m[e.rowId][e.columnIndex+1]===0&&removeEmptyColumnFromRow({rows:d,sizes:m,position:e,direction:"right"})),t==="right"&&e.columnIndex===m[e.rowId].length-1){const C=m[e.rowId].slice(0,-1).reduce((y,S)=>y+S,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),I(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,{}),children:this.context.t("Add block")})})}render(){return(0,import_jsx_runtime.jsx)("div",{style:{padding:this.context.isMobileLayout?8:this.context.themeToken.marginBlock},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=>N(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)(f({lineHeight:e.lineHeight,"& > *:last-child":{marginBottom:"0"},".ant-description-textarea, .ant-description-input":{lineHeight:e.lineHeight},".field-interface-datetime":{minWidth:"100px"}},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=f(f({},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},useBlockHeight=({height:e,heightMode:t})=>t!=="specifyValue"?null:e,BlockItemCard=import_react2.default.forwardRef((e,t)=>{const{t:o}=(0,import_react_i18next.useTranslation)(),{token:r}=import_antd.theme.useToken(),i=e,{title:n,description:l,children:a,className:c}=i,u=Y(i,["title","description","children","className"]),d=useBlockHeight(e),m=(n||l)&&(0,import_jsx_runtime.jsxs)("div",{children:[(0,import_jsx_runtime.jsxs)("span",{children:[" ",o(n,{ns:NAMESPACE_UI_SCHEMA})]}),l&&(0,import_jsx_runtime.jsx)(DisplayMarkdown,{value:o(l,{ns:NAMESPACE_UI_SCHEMA}),style:{overflowWrap:"break-word",whiteSpace:"normal",fontWeight:400,color:r.colorTextDescription,borderRadius:"4px"}})]});return(0,import_jsx_runtime.jsxs)(import_antd.Card,k(f({ref:t,title:m,style:{display:"flex",flexDirection:"column",height:d},styles:{body:{flex:1,display:"flex",flexDirection:"column",overflow:"auto"},header:{marginTop:"8px"}},className:c},u),{children:[e.beforeContent,a,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",k(f({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`
|
|
1713
1713
|
width: 100%;
|
|
1714
1714
|
& > .ant-space-item {
|
|
1715
1715
|
flex: 1;
|