@nocobase/client 1.7.0-beta.21 → 1.7.0-beta.22

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 CHANGED
@@ -9197,7 +9197,7 @@ function addAppVersion(e, t) {
9197
9197
  addAppVersion((n = e.properties) == null ? void 0 : n[o], t);
9198
9198
  }), e;
9199
9199
  }
9200
- const name = "@nocobase/client", version = "1.7.0-beta.21", license = "AGPL-3.0", main = "lib/index.js", module = "es/index.mjs", types = "es/index.d.ts", dependencies = {
9200
+ const name = "@nocobase/client", version = "1.7.0-beta.22", license = "AGPL-3.0", main = "lib/index.js", module = "es/index.mjs", types = "es/index.d.ts", dependencies = {
9201
9201
  "@ahooksjs/use-url-state": "3.5.1",
9202
9202
  "@ant-design/cssinjs": "^1.11.1",
9203
9203
  "@ant-design/icons": "^5.6.1",
@@ -9219,9 +9219,9 @@ const name = "@nocobase/client", version = "1.7.0-beta.21", license = "AGPL-3.0"
9219
9219
  "@formily/reactive-react": "^2.2.27",
9220
9220
  "@formily/shared": "^2.2.27",
9221
9221
  "@formily/validator": "^2.2.27",
9222
- "@nocobase/evaluators": "1.7.0-beta.21",
9223
- "@nocobase/sdk": "1.7.0-beta.21",
9224
- "@nocobase/utils": "1.7.0-beta.21",
9222
+ "@nocobase/evaluators": "1.7.0-beta.22",
9223
+ "@nocobase/sdk": "1.7.0-beta.22",
9224
+ "@nocobase/utils": "1.7.0-beta.22",
9225
9225
  ahooks: "^3.7.2",
9226
9226
  antd: "5.24.2",
9227
9227
  "antd-style": "3.7.1",
@@ -56929,10 +56929,10 @@ const DynamicComponent = (e) => {
56929
56929
  const [n, ...r] = o[1].split("."), a = [`$${n}`, ...r];
56930
56930
  let i = t, l = null;
56931
56931
  for (const c of a) {
56932
- if (l = i.find((u) => u.value === c), !l)
56932
+ if (l = i.find((u) => u.value === c || u.name === c), !l)
56933
56933
  return null;
56934
56934
  if (Array.isArray(l.children) || l.isLeaf === !1)
56935
- i = l.children;
56935
+ i = l.children || l.field.children;
56936
56936
  else
56937
56937
  return l;
56938
56938
  }
package/lib/index.js CHANGED
@@ -62,7 +62,7 @@
62
62
  width: 100%;
63
63
  }
64
64
  }
65
- `,items:l},n))})},SchemaInitializerSubMenu=e=>{var t;const o=e,{children:r,items:i,title:n,name:a,onOpenChange:l,icon:c}=o,u=Y(o,["children","items","title","name","onOpenChange","icon"]),m=useCompile(),d=useSchemaInitializerItem(),p=(0,import_react2.useMemo)(()=>a||(d==null?void 0:d.name)||(0,import_shared.uid)(),[a,d]),h=(t=i||r)==null?void 0:t.filter(f=>f.useVisible?f.useVisible():!0),g=useSchemaInitializerMenuItems(h,a),_=(0,import_react2.useMemo)(()=>[P(x({},u),{key:p,label:m(n),icon:typeof c=="string"?(0,import_jsx_runtime.jsx)(import_icons.default,{type:c}):c,children:g})],[g,m,c,p,u,n]);return(0,import_jsx_runtime.jsx)(SchemaInitializerMenu,{onOpenChange:l,items:_})},SchemaInitializerSubMenuInternal=()=>{const e=useSchemaInitializerItem();return(0,import_jsx_runtime.jsx)(SchemaInitializerSubMenu,x({},e))},useAriaAttributeOfMenuItem=()=>{const{isInMenu:e}=useSchemaInitializerSubMenuContext();return{attribute:(0,import_react2.useMemo)(()=>e?{}:{role:"menuitem"},[e])}},{Paragraph:Paragraph$1,Text:Text$2}=import_antd.Typography,ErrorFallbackModal=e=>{const[t,o]=import_react2.default.useState(!1),r=(0,import_jsx_runtime.jsx)(Paragraph$1,{style:{display:"flex",marginBottom:0},copyable:{text:e.error.message},children:(0,import_jsx_runtime.jsxs)(Text$2,{type:"danger",style:{whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden",display:"inline-block",maxWidth:"200px"},children:["Error: ",e.error.message]})});return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)("div",{onMouseOver:()=>o(!0),children:e.children||r}),(0,import_jsx_runtime.jsx)(import_antd.Modal,{zIndex:1e4,open:t,footer:null,onCancel:()=>o(!1),width:"60%",children:(0,import_jsx_runtime.jsx)(ErrorFallback,x({},e))})]})},{Paragraph,Text:Text$1,Link}=import_antd.Typography,useDownloadLogs=(e,t={})=>{const o=useLocationNoUpdate(),[r,i]=import_react2.default.useState(!1),n=useAPIClient();return{loading:r,download:()=>q(void 0,null,function*(){i(!0);try{const a=yield n.request({url:"logger:collect",method:"post",responseType:"blob",data:x({error:{message:e.message,stack:e.stack},location:o},t)}),l=window.URL.createObjectURL(new Blob([a.data],{type:"application/gzip"})),c=document.createElement("a");c.setAttribute("href",l),c.setAttribute("download","logs.tar.gz"),c.click(),c.remove()}catch(a){console.log(a)}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:!0,children:(0,import_jsx_runtime.jsx)(Text$1,{type:"danger",style:{whiteSpace:"pre-line",textAlign:"center"},children:e.stack})})})})};ErrorFallback.Modal=ErrorFallbackModal;class Plugin{constructor(t,o){this.options=t,this.app=o,this.options=t,this.app=o}get pluginManager(){return this.app.pluginManager}get pm(){return this.app.pm}get router(){return this.app.router}get pluginSettingsManager(){return this.app.pluginSettingsManager}get schemaInitializerManager(){return this.app.schemaInitializerManager}get schemaSettingsManager(){return this.app.schemaSettingsManager}get dataSourceManager(){return this.app.dataSourceManager}afterAdd(){return q(this,null,function*(){})}beforeLoad(){return q(this,null,function*(){})}load(){return q(this,null,function*(){})}t(t,o={}){var r;return this.app.i18n.t(t,x({ns:(r=this.options)==null?void 0:r.packageName},o))}}const titleWrapperStyle={display:"flex",alignItems:"center",gap:4},withTooltipComponent=e=>t=>{const{tooltip:o}=t;return o?(0,import_jsx_runtime.jsxs)("div",{style:titleWrapperStyle,children:[(0,import_jsx_runtime.jsx)(e,x({},t)),(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:o,children:(0,import_jsx_runtime.jsx)(import_icons.QuestionCircleOutlined,{style:{zIndex:1}})})]}):(0,import_jsx_runtime.jsx)(e,x({},t))};class SchemaInitializer{constructor(t){A(this,"options"),A(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=P(x({},o),{name:i}),a=(u,m)=>{const d=this.items.findIndex(p=>p.name===u);d===-1?this.items.push(m):this.items[d]=m};if(r.length===1){a(i,n);return}const l=r.slice(0,-1).join("."),c=this.get(l);if(c){c.children||(c.children=[]);const u=t.replace(`${c.name}.`,""),m=c.children.findIndex(d=>d.name===u);m===-1?c.children.push(n):c.children[m]=n}else a(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 a=r[n],l=(o=i.children)==null?void 0:o.find(c=>c.name===a);if(l&&(i=l),n===r.length-1)return l}}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(a=>a.name===i);n!==-1&&r.children.splice(n,1)}}}var NocoBaseDesktopRouteType=(e=>(e.group="group",e.page="page",e.link="link",e.tabs="tabs",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`}}}),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,a;if(typeof r=="string"&&r.startsWith("{{")&&(n=!0,a=r),r&&typeof r=="object"&&!(0,import_react2.isValidElement)(r)){try{a=JSON.stringify(r)}catch(l){return console.warn("Failed to stringify:",l),r}if(compileCache[a])return compileCache[a];n=hasVariable(a)}if(Array.isArray(r)){try{a=JSON.stringify(r)}catch(l){return console.warn("Failed to stringify:",l),r}if(compileCache[a])return compileCache[a];n=hasVariable(a)}if(n){const l=x(x(x({},t.scope),o),i);if(!a)return import_react.Schema.compile(r,l);try{return e?import_react.Schema.compile(r,l):(compileCache[a]=compileCache[a]||import_react.Schema.compile(r,l),compileCache[a])}catch(c){return console.log("useCompile error",r,c),import_react.Schema.compile(r,l)}}return r}},useComponent=(e,t)=>{const{components:o}=(0,import_react2.useContext)(import_react.SchemaOptionsContext);return e?typeof e!="string"?e:(0,import_lodash.get)(o,e)||t:t},LAZY_COMPONENT_KEY=Symbol("LAZY_COMPONENT_KEY");function lazy(e,...t){if(t.length===0){const o=(0,import_react2.lazy)(()=>e().then(i=>{const n=i.default;return r[LAZY_COMPONENT_KEY]=n,{default:n}})),r=i=>(0,import_jsx_runtime.jsx)(import_react2.default.Suspense,{fallback:(0,import_jsx_runtime.jsx)(import_antd.Spin,{}),children:(0,import_jsx_runtime.jsx)(o,x({},i))});return r}return t.reduce((o,r)=>{const i=(0,import_react2.lazy)(()=>e().then(n=>{const a=(0,import_lodash.get)(n,r);return o[r][LAZY_COMPONENT_KEY]=a,{default:a}}));return o[r]=n=>(0,import_jsx_runtime.jsx)(import_react2.default.Suspense,{fallback:(0,import_jsx_runtime.jsx)(import_antd.Spin,{}),children:(0,import_jsx_runtime.jsx)(i,x({},n))}),o},{})}function useLazy(e,t){const o=typeof t=="function"?t:i=>i[t],r=(0,import_react_imported_component.loadableResource)(e);if(!r.payload)throw new Promise((i,n)=>{r.loadIfNeeded(),r.resolution.then(i).catch(n)});return o(r.payload)}function addAppVersion(e,t){if(e)return e["x-app-version"]||(e["x-app-version"]=t),Object.keys(e.properties||{}).forEach(o=>{var r;addAppVersion((r=e.properties)==null?void 0:r[o],t)}),e}const name="@nocobase/client",version="1.7.0-beta.21",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","@ctrl/tinycolor":"^3.6.0","@dnd-kit/core":"^5.0.1","@dnd-kit/modifiers":"^6.0.0","@dnd-kit/sortable":"^6.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":"1.7.0-beta.21","@nocobase/sdk":"1.7.0-beta.21","@nocobase/utils":"1.7.0-beta.21",ahooks:"^3.7.2",antd:"5.24.2","antd-style":"3.7.1",axios:"^1.7.0","bignumber.js":"^9.1.2",classnames:"^2.3.1",cronstrue:"^2.11.0","file-saver":"^2.0.5",filesize:"9.0.11",flat:"^5.0.2",i18next:"^22.4.9","i18next-http-backend":"^2.1.1",ignore:"^5.2.0",json5:"^2.2.3",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-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.11.2","react-to-print":"^2.14.7","sanitize-html":"2.13.0","use-deep-compare-effect":"^1.8.1"},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.28"},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=P(x({},o),{properties:{}});let i=null;const n=(a,l)=>{Object.keys(a||{}).forEach(c=>{const u=a[c];if(u["x-uid"]===t["x-uid"]){i=a[c];return}else l.properties[c]=P(x({},u),{properties:{}}),n(u==null?void 0:u.properties,l.properties[c])})};return n(o.properties,r),[r,i]},translate=e=>e;class Designable{constructor(t){A(this,"current"),A(this,"options"),A(this,"appVersion"),A(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,a=[];return i.mapProperties(l=>{l["x-component-props"]=l["x-component-props"]||{},l["x-component-props"].width=100/n,l["x-uid"]&&a.push({"x-uid":l["x-uid"],"x-component-props":l["x-component-props"]})}),i["x-uid"]&&a.length?a:[]};this.on("insertAdjacent",i=>q(this,[i],function*({onSuccess:n,current:a,position:l,schema:c,wrap:u,wrapped:m,removed:d}){var p;let h=[];if((m==null?void 0:m["x-component"])==="Grid.Col"&&(h=h.concat(r(m.parent))),(d==null?void 0:d["x-component"])==="Grid.Col"&&(h=h.concat(r(d.parent))),this.refresh(),!a["x-uid"])return;const g=yield t.request({url:`/uiSchemas:insertAdjacent/${a["x-uid"]}?position=${l}`,method:"post",data:{schema:addAppVersion(c,this.appVersion),wrap:u}});h.length&&(yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:h})),d!=null&&d["x-uid"]&&(yield t.request({url:`/uiSchemas:remove/${d["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=>q(this,[i],function*({schema:n}){this.refresh(),n!=null&&n["x-uid"]&&(yield t.request({url:"/uiSchemas:patch",method:"post",data:x({},n)}),import_antd.message.success(o("Saved successfully"),.2))})),this.on("initializeActionContext",i=>q(this,[i],function*({schema:n}){n!=null&&n["x-uid"]&&(yield t.request({url:"/uiSchemas:initializeActionContext",method:"post",data:x({},n)}))})),this.on("batchPatch",i=>q(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=>q(this,[i],function*({removed:n}){let a=[];(n==null?void 0:n["x-component"])==="Grid.Col"&&(a=r(n.parent)),this.refresh(),n!=null&&n["x-uid"]&&(yield t.request({url:`/uiSchemas:remove/${n["x-uid"]}`,method:"post"}),a.length&&(yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:a})),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 q(this,null,function*(){if(!this.events[t])return;const[r,...i]=o;return Promise.all(this.events[t].map(n=>n.bind(this)(x({current:this.current},r),...i)))})}parentsIn(t){if(!t||!import_react.Schema.isSchemaInstance(t))return!1;let o=this.current;for(;o!=null&&o.parent;){if(o.parent===t)return!0;o=o.parent}return!1}refresh(t){const{refresh:o}=this.options;return o==null?void 0:o(t)}deepMerge(t){const o={title:"title",description:"description",default:"initialValue",readOnly:"readOnly",writeOnly:"editable",enum:"dataSource","x-pattern":"pattern","x-display":"display","x-validator":"validator","x-decorator":"decorator","x-component":"component","x-reactions":"reactions","x-content":"content","x-visible":"visible","x-hidden":"hidden","x-disabled":"disabled","x-editable":"editable","x-read-only":"readOnly"},r={"x-decorator-props":"decoratorProps","x-component-props":"componentProps","x-data":"data"};Object.keys(t).forEach(i=>{o[i]?(this.current[i]=t[i],this.updateModel(o[i],t[i])):r[i]?Object.keys(t[i]).forEach(n=>{(0,import_set.default)(this.current,[i,n],t[i][n]),this.updateModel([r[i],n],t[i][n])}):this.current[i]=t[i]}),this.emit("patch",{schema:t})}getSchemaAttribute(t,o){return(0,import_get.default)(this.current,t,o)}shallowMerge(t){const o={title:"title",description:"description",default:"initialValue",readOnly:"readOnly",writeOnly:"editable",enum:"dataSource","x-pattern":"pattern","x-display":"display","x-validator":"validator","x-decorator":"decorator","x-component":"component","x-reactions":"reactions","x-content":"content","x-visible":"visible","x-hidden":"hidden","x-disabled":"disabled","x-editable":"editable","x-read-only":"readOnly","x-decorator-props":"decoratorProps","x-component-props":"componentProps","x-data":"data"};Object.keys(t).forEach(r=>{this.current[r]=t[r],o[r]&&this.updateModel(o[r],t[r])}),this.emit("patch",{schema:t})}updateModel(t,o){const r=i=>{(0,import_set.default)(i,t,o)};this.model&&r(this.model),this.query&&this.query.take(r)}insertAdjacent(t,o,r={}){switch(t){case"beforeBegin":return this.insertBeforeBegin(o,r);case"afterBegin":return this.insertAfterBegin(o,r);case"beforeEnd":return this.insertBeforeEnd(o,r);case"afterEnd":return this.insertAfterEnd(o,r)}}recursiveRemoveIfNoChildren(t,o){if(!t)return;let r=t,i;const n=o==null?void 0:o.breakRemoveOn;for(;r;){if(typeof n=="function"){if(n(r))break}else if(matchSchema(r,n))break;if(Object.keys(r.properties||{}).length>0)break;r.parent&&(i=r.parent.removeProperty(r.name)),r=r.parent}return i}remove(t,o={}){const{breakRemoveOn:r,removeParentsIfNoChildren:i}=o,n=t||this.current;let a=n.parent.removeProperty(n.name);if(i){const l=this.recursiveRemoveIfNoChildren(n.parent,{breakRemoveOn:r});l&&(a=l)}return this.emit("remove",{removed:a})}removeWithoutEmit(t,o={}){const{breakRemoveOn:r,removeParentsIfNoChildren:i}=o,n=t||this.current;let a=n.parent.removeProperty(n.name);if(i){const l=this.recursiveRemoveIfNoChildren(n.parent,{breakRemoveOn:r});l&&(a=l)}return a}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,a,l)=>{this.current.name===a&&(i=l),t.name===a&&(r=l)}),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:a}=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),a&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n}))}else t&&(t=(0,import_cloneDeep.default)(t));const l={};let c=!1,u=0,m=0;this.current.parent.mapProperties((_,f)=>{f===this.current.name&&(m=u,c=!0,++u),_["x-index"]=u,++u,c&&(l[f]=_,this.current.parent.removeProperty(f))}),this.prepareProperty(t);const d=i(t),p=this.current.parent.addProperty(d.name||(0,import_shared.uid)(),d);p["x-index"]=m,p.parent=this.current.parent,this.current.parent.setProperties(l);const[h,g]=splitWrapSchema(p,t);this.emit("insertAdjacent",x({position:"beforeBegin",schema:g,wrapped:d,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:a}=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),a&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n}))}else t&&(t=(0,import_cloneDeep.default)(t));const l={};let c=1;this.current.mapProperties((h,g)=>{h["x-index"]=c,++c,l[g]=h}),this.current.properties={},this.prepareProperty(t);const u=i(t),m=this.current.addProperty(u.name||(0,import_shared.uid)(),u);m["x-index"]=0,m.parent=this.current,this.current.setProperties(l);const[d,p]=splitWrapSchema(m,t);this.emit("insertAdjacent",x({position:"afterBegin",schema:p,wrap:d,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:a}=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),a&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n}))}else t&&(t=(0,import_cloneDeep.default)(t));this.prepareProperty(t);const l=i(t),c=this.current.addProperty(l.name||(0,import_shared.uid)(),l);c.parent=this.current;const[u,m]=splitWrapSchema(c,t);return this.emit("insertAdjacent",x({position:"beforeEnd",schema:m,wrap:u,wrapped:l},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:a}=o;let l=0,c=0,u=!1;const m={};if(this.current.parent.mapProperties((_,f)=>{_["x-index"]=l,f===this.current.name&&(++l,c=l,u=!0),++l,u&&f!==this.current.name&&(m[f]=_,this.current.parent.removeProperty(f))}),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),a&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n})),t.parent=null}else t&&(t=(0,import_cloneDeep.default)(t));this.prepareProperty(t);const d=i(t),p=this.current.parent.addProperty(d.name||(0,import_shared.uid)(),d);p.parent=this.current.parent,p["x-index"]=c,this.current.parent.setProperties(m);const[h,g]=splitWrapSchema(p,t);this.emit("insertAdjacent",x({position:"afterEnd",schema:g,wrap:h,wrapped:d},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]),a=(0,import_react2.useMemo)(()=>()=>(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{}),[]),l=(0,import_ahooks.useUpdate)(),c=useRefreshFieldSchema(),u=useRefreshComponent(),m=(0,import_react2.useCallback)(v=>{o==null||o(),l(),c==null||c(v),u==null||u()},[o,l,c,u]),d=(0,import_react.useField)(),p=(0,import_react.useFieldSchema)(),h=useAPIClient(),{t:g}=(0,import_react_i18next.useTranslation)(),_=(0,import_react2.useMemo)(()=>createDesignable({t:g,api:h,refresh:m,current:p,model:d,appVersion:clientPkg.version}),[g,h,m,p,d]);(0,import_react2.useEffect)(()=>{_.loadAPIClientEvents()},[_]);const{isMobileLayout:f}=useMobileLayout();return{dn:_,designable:f?!1:e,reset:r,refresh:m,setDesignable:t,DesignableBar:a,findComponent:(0,import_react2.useCallback)(v=>{var S;if(!v)return null;if(typeof v!="string")return v;const y=(0,import_get.default)(n,v);return(S=y==null?void 0:y[LAZY_COMPONENT_KEY])!=null?S:y},[import_get.default]),on:_.on.bind(_),patch:(0,import_react2.useCallback)((v,S)=>{const y=C=>{Object.keys(C).forEach(b=>{const F=C[b];b==="title"&&(d.title=F,p.title=F),b==="x-decorator-props"&&(d.decoratorProps||(d.decoratorProps={}),p["x-decorator-props"]||(p["x-decorator-props"]={}),Object.keys(F).forEach(I=>{d.decoratorProps[I]=F[I],p["x-decorator-props"][I]=F[I]})),b==="x-component-props"&&(d.componentProps||(d.componentProps={}),p["x-component-props"]||(p["x-component-props"]={}),Object.keys(F).forEach(I=>{d.componentProps[I]=F[I],p["x-component-props"][I]=F[I]}))})};if(typeof v=="string"){const C={};return(0,import_set.default)(C,v,S),y(C)}y(v),m()},[_]),shallowMerge:(0,import_react2.useCallback)(v=>{_.shallowMerge(v)},[_]),deepMerge:(0,import_react2.useCallback)(v=>{_.deepMerge(v)},[_]),remove:(0,import_react2.useCallback)((v,S)=>{_.remove(v,S)},[_]),insertAdjacent:(0,import_react2.useCallback)((v,S,y)=>{_.insertAdjacent(v,S,y)},[_]),insertBeforeBegin:(0,import_react2.useCallback)(v=>{_.insertBeforeBegin(v)},[_]),insertAfterBegin:(0,import_react2.useCallback)(v=>{_.insertAfterBegin(v)},[_]),insertBeforeEnd:(0,import_react2.useCallback)(v=>{_.insertBeforeEnd(v)},[_]),insertAfterEnd:(0,import_react2.useCallback)(v=>{_.insertAfterEnd(v)},[_])}}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(P(x({},t),{get scope(){return x(x({},t.scope),r.current)}}))};function useSchemaComponentContext(){return(0,import_react2.useContext)(SchemaComponentContext)}const useFieldComponentOptions=()=>{var e;const{getCollectionJoinField:t,getCollection:o}=useCollectionManager_deprecated(),r=(0,import_react.useFieldSchema)(),{getField:i}=useCollection_deprecated(),n=i(r.name)||t(r["x-collection-field"]),{t:a}=(0,import_react_i18next.useTranslation)(),{label:l}=((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:a("Record picker"),value:"CollectionField"},{label:a("Select"),value:"AssociationSelect"}];switch(n.interface){case"o2m":return[{label:a("Record picker"),value:"CollectionField"},{label:a("Subtable"),value:"TableField"},{label:a("Select"),value:"AssociationSelect"}];case"m2o":case"m2m":case"linkTo":return[{label:a("Record picker"),value:"CollectionField"},{label:a("Select"),value:"AssociationSelect"}];default:return[{label:a("Record picker"),value:"CollectionField"},{label:a("Subform"),value:"FormField"},{label:a("Select"),value:"AssociationSelect"}]}},[a,n==null?void 0:n.interface,l])},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"])),a=useCompile();(0,import_react2.useEffect)(()=>{var l;t!=null&&t.title||(t.title=a((l=n==null?void 0:n.uiSchema)==null?void 0:l.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 x(x({},r),n)};function useParsedFilter({filterOption:e}){const{parseFilter:t,findVariable:o}=useParseDataScopeFilter(),[r,i]=(0,import_react2.useState)({}),[n,a]=(0,import_react2.useState)(!!e);return(0,import_react2.useEffect)(()=>{if(!e)return;const l=()=>q(this,null,function*(){a(!0);const u=yield t(e);a(!1),i(u)});l();const c=import_lodash.default.debounce(l,DEBOUNCE_WAIT);(0,import_reactive.reaction)(()=>(0,import_client.flatten)(e,{breakOn({key:u}){return u.startsWith("$")&&u!=="$and"&&u!=="$or"},transformValue(u){if(!isVariable$1(u))return u;const m=getVariableName(u),d=o(m);let p=null;const h=getPath(u).split(".");return h.forEach((g,_)=>{const f=h.slice(0,_+1).join("."),v=(0,import_client.getValuesByPath)({[m]:(d==null?void 0:d.ctx)||{}},f);import_lodash.default.isEmpty(v)||(p=v)}),p}}),c,{equals:import_lodash.default.isEqual})},[JSON.stringify(e),t,o]),{filter:r,parseVariableLoading:n}}const useParentRecordCommon=e=>{const t=useCollectionRecordData();if(e)return t},useTableBlockDecoratorProps=e=>{const{params:t,parseVariableLoading:o}=useTableBlockParams(e),r=useParentRecordCommon(e.association);return{params:t,parentRecord:r,parseVariableLoading:o}};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:a}=(o==null?void 0:o["x-decorator-props"])||{};return e.dragSort&&a&&(n.sort=a),P(x({},n),{filter:r})},[o,r,e.dragSort,e.params]),parseVariableLoading:i}}const key="__isNewRecord__",isNewRecord=e=>(0,import_reactive.untracked)(()=>!!(e!=null&&e[key])),markRecordAsNew=e=>{if(!(0,import_lodash.isObject)(e))throw new Error("markRecordAsNew: record must be an object");return e[key]=!0,e},useDefaultLoading=()=>{var e;return!!((e=useDataBlockRequest())!=null&&e.loading)},withSkeletonComponent=(e,t)=>{const{useLoading:o=useDefaultLoading,displayName:r,SkeletonComponent:i=import_antd.Skeleton}=t||{},n=import_react2.default.memo(a=>{const l=o(),c=(0,import_react2.useRef)(!1);return!c.current&&l?(0,import_jsx_runtime.jsx)(i,{}):(c.current=!0,(0,import_jsx_runtime.jsx)(e,x({},a)))});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)=>q(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield Promise.all(o.filter(a=>!a.disabled).map(a=>q(void 0,null,function*(){return(yield conditionAnalyses({ruleGroup:a.condition,variables:r,localVariables:i,conditionType:a.conditionType},n))?a:null})))).filter(Boolean).map(a=>a.actions).flat()}),getSatisfiedValues=(e,t)=>q(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield getSatisfiedActions({rules:o,variables:r,localVariables:i},n)).map(a=>P(x({},a),{value:getActionValue(a.operator,a.value)}))}),getSatisfiedValueMap=(e,t)=>q(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield getSatisfiedValues({rules:o,variables:r,localVariables:i},n)).reduce((a,l)=>P(x({},a),{[l.operator]:l.value}),{})});function useSatisfiedActionValues({formValues:e,category:t="default",rules:o,schema:r,form:i}){const[n,a]=(0,import_react2.useState)({}),l=(0,import_react.useFieldSchema)(),c=useVariables$1(),u=useLocalVariables$1({currentForm:{values:e}}),m=r??l,d=o??m[LinkageRuleDataKeyMap[t]],p=useApp(),h=(0,import_react2.useCallback)(()=>{d&&e&&getSatisfiedValueMap({rules:d,variables:c,localVariables:u},p.jsonLogic).then(g=>{(0,import_lodash.isEmpty)(g)?a({}):a(g)}).catch(g=>{throw new Error(g.message)})},[c,u,d,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]),{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$4={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,P(x({},import_lodash.default.omit(e,"children")),{style:e.spinning?spinStyle:displayNone$4})),(0,import_jsx_runtime.jsx)("div",{style:e.spinning?opacityStyle:null,children:e.children})]})),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,a)=>a["x-component"]==="AssociationField."+e?a: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,a,l,c,u,m;const{action:d="list",service:p,useOriginalFilter:h}=e,g=(0,import_react.useFieldSchema)(),_=(0,import_react.useField)(),{getField:f}=useCollection_deprecated(),{getCollectionJoinField:v}=useCollectionManager_deprecated(),S=useRecord(),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)?(a=(n=(i=_.componentProps)==null?void 0:i.service)==null?void 0:n.params)==null?void 0:a.filter:(u=(c=(l=g==null?void 0:g["x-component-props"])==null?void 0:l.service)==null?void 0:c.params)==null?void 0:u.filter)||((m=p==null?void 0:p.params)==null?void 0:m.filter),{filter:C}=useParsedFilter({filterOption:y}),b=(0,import_react2.useMemo)(()=>f(g.name)||v(g==null?void 0:g["x-collection-field"]),[g]),F=S==null?void 0:S[b==null?void 0:b.sourceKey],I=(0,import_react2.useMemo)(()=>{const k=["oho","o2m"].includes(b==null?void 0:b.interface);return mergeFilter([mergeFilter([k&&!isInFilterFormBlock(g)&&b!=null&&b.foreignKey&&!h?{[b.foreignKey]:{$is:null}}:null,C]),k&&F!==void 0&&F!==null&&!isInFilterFormBlock(g)&&b!=null&&b.foreignKey&&!h?{[b.foreignKey]:{$eq:F}}:null],"$or")},[b==null?void 0:b.interface,b==null?void 0:b.foreignKey,g,C,F,h]);return(0,import_react2.useMemo)(()=>P(x({resource:b==null?void 0:b.target,action:d},p),{params:P(x({},p==null?void 0:p.params),{filter:I})}),[b==null?void 0:b.target,d,I,p])}const useFieldNames$1=(e={})=>{var t,o,r,i,n;const a=(0,import_react.useFieldSchema)(),l=((i=(r=(o=(t=a["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=a["x-component-props"])==null?void 0:n.fieldNames)||e.fieldNames;return x({label:"label",value:"value"},l)},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:a}=e.value,l=(0,import_react2.useMemo)(()=>import_lodash.default.omitBy({value:o,collection:r,fieldSchema:i,skip:a,parent:n||(t!=null&&t.skip?t.parent:t)},import_lodash.default.isUndefined),[o,r,i,a,n,t]);return(0,import_jsx_runtime.jsx)(SubFormContext.Provider,{value:l,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}},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:l},n))})},SchemaInitializerSubMenu=e=>{var t;const o=e,{children:r,items:i,title:n,name:a,onOpenChange:l,icon:c}=o,u=Y(o,["children","items","title","name","onOpenChange","icon"]),m=useCompile(),d=useSchemaInitializerItem(),p=(0,import_react2.useMemo)(()=>a||(d==null?void 0:d.name)||(0,import_shared.uid)(),[a,d]),h=(t=i||r)==null?void 0:t.filter(f=>f.useVisible?f.useVisible():!0),g=useSchemaInitializerMenuItems(h,a),_=(0,import_react2.useMemo)(()=>[P(x({},u),{key:p,label:m(n),icon:typeof c=="string"?(0,import_jsx_runtime.jsx)(import_icons.default,{type:c}):c,children:g})],[g,m,c,p,u,n]);return(0,import_jsx_runtime.jsx)(SchemaInitializerMenu,{onOpenChange:l,items:_})},SchemaInitializerSubMenuInternal=()=>{const e=useSchemaInitializerItem();return(0,import_jsx_runtime.jsx)(SchemaInitializerSubMenu,x({},e))},useAriaAttributeOfMenuItem=()=>{const{isInMenu:e}=useSchemaInitializerSubMenuContext();return{attribute:(0,import_react2.useMemo)(()=>e?{}:{role:"menuitem"},[e])}},{Paragraph:Paragraph$1,Text:Text$2}=import_antd.Typography,ErrorFallbackModal=e=>{const[t,o]=import_react2.default.useState(!1),r=(0,import_jsx_runtime.jsx)(Paragraph$1,{style:{display:"flex",marginBottom:0},copyable:{text:e.error.message},children:(0,import_jsx_runtime.jsxs)(Text$2,{type:"danger",style:{whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden",display:"inline-block",maxWidth:"200px"},children:["Error: ",e.error.message]})});return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)("div",{onMouseOver:()=>o(!0),children:e.children||r}),(0,import_jsx_runtime.jsx)(import_antd.Modal,{zIndex:1e4,open:t,footer:null,onCancel:()=>o(!1),width:"60%",children:(0,import_jsx_runtime.jsx)(ErrorFallback,x({},e))})]})},{Paragraph,Text:Text$1,Link}=import_antd.Typography,useDownloadLogs=(e,t={})=>{const o=useLocationNoUpdate(),[r,i]=import_react2.default.useState(!1),n=useAPIClient();return{loading:r,download:()=>q(void 0,null,function*(){i(!0);try{const a=yield n.request({url:"logger:collect",method:"post",responseType:"blob",data:x({error:{message:e.message,stack:e.stack},location:o},t)}),l=window.URL.createObjectURL(new Blob([a.data],{type:"application/gzip"})),c=document.createElement("a");c.setAttribute("href",l),c.setAttribute("download","logs.tar.gz"),c.click(),c.remove()}catch(a){console.log(a)}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:!0,children:(0,import_jsx_runtime.jsx)(Text$1,{type:"danger",style:{whiteSpace:"pre-line",textAlign:"center"},children:e.stack})})})})};ErrorFallback.Modal=ErrorFallbackModal;class Plugin{constructor(t,o){this.options=t,this.app=o,this.options=t,this.app=o}get pluginManager(){return this.app.pluginManager}get pm(){return this.app.pm}get router(){return this.app.router}get pluginSettingsManager(){return this.app.pluginSettingsManager}get schemaInitializerManager(){return this.app.schemaInitializerManager}get schemaSettingsManager(){return this.app.schemaSettingsManager}get dataSourceManager(){return this.app.dataSourceManager}afterAdd(){return q(this,null,function*(){})}beforeLoad(){return q(this,null,function*(){})}load(){return q(this,null,function*(){})}t(t,o={}){var r;return this.app.i18n.t(t,x({ns:(r=this.options)==null?void 0:r.packageName},o))}}const titleWrapperStyle={display:"flex",alignItems:"center",gap:4},withTooltipComponent=e=>t=>{const{tooltip:o}=t;return o?(0,import_jsx_runtime.jsxs)("div",{style:titleWrapperStyle,children:[(0,import_jsx_runtime.jsx)(e,x({},t)),(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:o,children:(0,import_jsx_runtime.jsx)(import_icons.QuestionCircleOutlined,{style:{zIndex:1}})})]}):(0,import_jsx_runtime.jsx)(e,x({},t))};class SchemaInitializer{constructor(t){A(this,"options"),A(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=P(x({},o),{name:i}),a=(u,m)=>{const d=this.items.findIndex(p=>p.name===u);d===-1?this.items.push(m):this.items[d]=m};if(r.length===1){a(i,n);return}const l=r.slice(0,-1).join("."),c=this.get(l);if(c){c.children||(c.children=[]);const u=t.replace(`${c.name}.`,""),m=c.children.findIndex(d=>d.name===u);m===-1?c.children.push(n):c.children[m]=n}else a(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 a=r[n],l=(o=i.children)==null?void 0:o.find(c=>c.name===a);if(l&&(i=l),n===r.length-1)return l}}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(a=>a.name===i);n!==-1&&r.children.splice(n,1)}}}var NocoBaseDesktopRouteType=(e=>(e.group="group",e.page="page",e.link="link",e.tabs="tabs",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`}}}),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,a;if(typeof r=="string"&&r.startsWith("{{")&&(n=!0,a=r),r&&typeof r=="object"&&!(0,import_react2.isValidElement)(r)){try{a=JSON.stringify(r)}catch(l){return console.warn("Failed to stringify:",l),r}if(compileCache[a])return compileCache[a];n=hasVariable(a)}if(Array.isArray(r)){try{a=JSON.stringify(r)}catch(l){return console.warn("Failed to stringify:",l),r}if(compileCache[a])return compileCache[a];n=hasVariable(a)}if(n){const l=x(x(x({},t.scope),o),i);if(!a)return import_react.Schema.compile(r,l);try{return e?import_react.Schema.compile(r,l):(compileCache[a]=compileCache[a]||import_react.Schema.compile(r,l),compileCache[a])}catch(c){return console.log("useCompile error",r,c),import_react.Schema.compile(r,l)}}return r}},useComponent=(e,t)=>{const{components:o}=(0,import_react2.useContext)(import_react.SchemaOptionsContext);return e?typeof e!="string"?e:(0,import_lodash.get)(o,e)||t:t},LAZY_COMPONENT_KEY=Symbol("LAZY_COMPONENT_KEY");function lazy(e,...t){if(t.length===0){const o=(0,import_react2.lazy)(()=>e().then(i=>{const n=i.default;return r[LAZY_COMPONENT_KEY]=n,{default:n}})),r=i=>(0,import_jsx_runtime.jsx)(import_react2.default.Suspense,{fallback:(0,import_jsx_runtime.jsx)(import_antd.Spin,{}),children:(0,import_jsx_runtime.jsx)(o,x({},i))});return r}return t.reduce((o,r)=>{const i=(0,import_react2.lazy)(()=>e().then(n=>{const a=(0,import_lodash.get)(n,r);return o[r][LAZY_COMPONENT_KEY]=a,{default:a}}));return o[r]=n=>(0,import_jsx_runtime.jsx)(import_react2.default.Suspense,{fallback:(0,import_jsx_runtime.jsx)(import_antd.Spin,{}),children:(0,import_jsx_runtime.jsx)(i,x({},n))}),o},{})}function useLazy(e,t){const o=typeof t=="function"?t:i=>i[t],r=(0,import_react_imported_component.loadableResource)(e);if(!r.payload)throw new Promise((i,n)=>{r.loadIfNeeded(),r.resolution.then(i).catch(n)});return o(r.payload)}function addAppVersion(e,t){if(e)return e["x-app-version"]||(e["x-app-version"]=t),Object.keys(e.properties||{}).forEach(o=>{var r;addAppVersion((r=e.properties)==null?void 0:r[o],t)}),e}const name="@nocobase/client",version="1.7.0-beta.22",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","@ctrl/tinycolor":"^3.6.0","@dnd-kit/core":"^5.0.1","@dnd-kit/modifiers":"^6.0.0","@dnd-kit/sortable":"^6.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":"1.7.0-beta.22","@nocobase/sdk":"1.7.0-beta.22","@nocobase/utils":"1.7.0-beta.22",ahooks:"^3.7.2",antd:"5.24.2","antd-style":"3.7.1",axios:"^1.7.0","bignumber.js":"^9.1.2",classnames:"^2.3.1",cronstrue:"^2.11.0","file-saver":"^2.0.5",filesize:"9.0.11",flat:"^5.0.2",i18next:"^22.4.9","i18next-http-backend":"^2.1.1",ignore:"^5.2.0",json5:"^2.2.3",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-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.11.2","react-to-print":"^2.14.7","sanitize-html":"2.13.0","use-deep-compare-effect":"^1.8.1"},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.28"},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=P(x({},o),{properties:{}});let i=null;const n=(a,l)=>{Object.keys(a||{}).forEach(c=>{const u=a[c];if(u["x-uid"]===t["x-uid"]){i=a[c];return}else l.properties[c]=P(x({},u),{properties:{}}),n(u==null?void 0:u.properties,l.properties[c])})};return n(o.properties,r),[r,i]},translate=e=>e;class Designable{constructor(t){A(this,"current"),A(this,"options"),A(this,"appVersion"),A(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,a=[];return i.mapProperties(l=>{l["x-component-props"]=l["x-component-props"]||{},l["x-component-props"].width=100/n,l["x-uid"]&&a.push({"x-uid":l["x-uid"],"x-component-props":l["x-component-props"]})}),i["x-uid"]&&a.length?a:[]};this.on("insertAdjacent",i=>q(this,[i],function*({onSuccess:n,current:a,position:l,schema:c,wrap:u,wrapped:m,removed:d}){var p;let h=[];if((m==null?void 0:m["x-component"])==="Grid.Col"&&(h=h.concat(r(m.parent))),(d==null?void 0:d["x-component"])==="Grid.Col"&&(h=h.concat(r(d.parent))),this.refresh(),!a["x-uid"])return;const g=yield t.request({url:`/uiSchemas:insertAdjacent/${a["x-uid"]}?position=${l}`,method:"post",data:{schema:addAppVersion(c,this.appVersion),wrap:u}});h.length&&(yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:h})),d!=null&&d["x-uid"]&&(yield t.request({url:`/uiSchemas:remove/${d["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=>q(this,[i],function*({schema:n}){this.refresh(),n!=null&&n["x-uid"]&&(yield t.request({url:"/uiSchemas:patch",method:"post",data:x({},n)}),import_antd.message.success(o("Saved successfully"),.2))})),this.on("initializeActionContext",i=>q(this,[i],function*({schema:n}){n!=null&&n["x-uid"]&&(yield t.request({url:"/uiSchemas:initializeActionContext",method:"post",data:x({},n)}))})),this.on("batchPatch",i=>q(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=>q(this,[i],function*({removed:n}){let a=[];(n==null?void 0:n["x-component"])==="Grid.Col"&&(a=r(n.parent)),this.refresh(),n!=null&&n["x-uid"]&&(yield t.request({url:`/uiSchemas:remove/${n["x-uid"]}`,method:"post"}),a.length&&(yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:a})),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 q(this,null,function*(){if(!this.events[t])return;const[r,...i]=o;return Promise.all(this.events[t].map(n=>n.bind(this)(x({current:this.current},r),...i)))})}parentsIn(t){if(!t||!import_react.Schema.isSchemaInstance(t))return!1;let o=this.current;for(;o!=null&&o.parent;){if(o.parent===t)return!0;o=o.parent}return!1}refresh(t){const{refresh:o}=this.options;return o==null?void 0:o(t)}deepMerge(t){const o={title:"title",description:"description",default:"initialValue",readOnly:"readOnly",writeOnly:"editable",enum:"dataSource","x-pattern":"pattern","x-display":"display","x-validator":"validator","x-decorator":"decorator","x-component":"component","x-reactions":"reactions","x-content":"content","x-visible":"visible","x-hidden":"hidden","x-disabled":"disabled","x-editable":"editable","x-read-only":"readOnly"},r={"x-decorator-props":"decoratorProps","x-component-props":"componentProps","x-data":"data"};Object.keys(t).forEach(i=>{o[i]?(this.current[i]=t[i],this.updateModel(o[i],t[i])):r[i]?Object.keys(t[i]).forEach(n=>{(0,import_set.default)(this.current,[i,n],t[i][n]),this.updateModel([r[i],n],t[i][n])}):this.current[i]=t[i]}),this.emit("patch",{schema:t})}getSchemaAttribute(t,o){return(0,import_get.default)(this.current,t,o)}shallowMerge(t){const o={title:"title",description:"description",default:"initialValue",readOnly:"readOnly",writeOnly:"editable",enum:"dataSource","x-pattern":"pattern","x-display":"display","x-validator":"validator","x-decorator":"decorator","x-component":"component","x-reactions":"reactions","x-content":"content","x-visible":"visible","x-hidden":"hidden","x-disabled":"disabled","x-editable":"editable","x-read-only":"readOnly","x-decorator-props":"decoratorProps","x-component-props":"componentProps","x-data":"data"};Object.keys(t).forEach(r=>{this.current[r]=t[r],o[r]&&this.updateModel(o[r],t[r])}),this.emit("patch",{schema:t})}updateModel(t,o){const r=i=>{(0,import_set.default)(i,t,o)};this.model&&r(this.model),this.query&&this.query.take(r)}insertAdjacent(t,o,r={}){switch(t){case"beforeBegin":return this.insertBeforeBegin(o,r);case"afterBegin":return this.insertAfterBegin(o,r);case"beforeEnd":return this.insertBeforeEnd(o,r);case"afterEnd":return this.insertAfterEnd(o,r)}}recursiveRemoveIfNoChildren(t,o){if(!t)return;let r=t,i;const n=o==null?void 0:o.breakRemoveOn;for(;r;){if(typeof n=="function"){if(n(r))break}else if(matchSchema(r,n))break;if(Object.keys(r.properties||{}).length>0)break;r.parent&&(i=r.parent.removeProperty(r.name)),r=r.parent}return i}remove(t,o={}){const{breakRemoveOn:r,removeParentsIfNoChildren:i}=o,n=t||this.current;let a=n.parent.removeProperty(n.name);if(i){const l=this.recursiveRemoveIfNoChildren(n.parent,{breakRemoveOn:r});l&&(a=l)}return this.emit("remove",{removed:a})}removeWithoutEmit(t,o={}){const{breakRemoveOn:r,removeParentsIfNoChildren:i}=o,n=t||this.current;let a=n.parent.removeProperty(n.name);if(i){const l=this.recursiveRemoveIfNoChildren(n.parent,{breakRemoveOn:r});l&&(a=l)}return a}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,a,l)=>{this.current.name===a&&(i=l),t.name===a&&(r=l)}),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:a}=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),a&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n}))}else t&&(t=(0,import_cloneDeep.default)(t));const l={};let c=!1,u=0,m=0;this.current.parent.mapProperties((_,f)=>{f===this.current.name&&(m=u,c=!0,++u),_["x-index"]=u,++u,c&&(l[f]=_,this.current.parent.removeProperty(f))}),this.prepareProperty(t);const d=i(t),p=this.current.parent.addProperty(d.name||(0,import_shared.uid)(),d);p["x-index"]=m,p.parent=this.current.parent,this.current.parent.setProperties(l);const[h,g]=splitWrapSchema(p,t);this.emit("insertAdjacent",x({position:"beforeBegin",schema:g,wrapped:d,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:a}=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),a&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n}))}else t&&(t=(0,import_cloneDeep.default)(t));const l={};let c=1;this.current.mapProperties((h,g)=>{h["x-index"]=c,++c,l[g]=h}),this.current.properties={},this.prepareProperty(t);const u=i(t),m=this.current.addProperty(u.name||(0,import_shared.uid)(),u);m["x-index"]=0,m.parent=this.current,this.current.setProperties(l);const[d,p]=splitWrapSchema(m,t);this.emit("insertAdjacent",x({position:"afterBegin",schema:p,wrap:d,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:a}=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),a&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n}))}else t&&(t=(0,import_cloneDeep.default)(t));this.prepareProperty(t);const l=i(t),c=this.current.addProperty(l.name||(0,import_shared.uid)(),l);c.parent=this.current;const[u,m]=splitWrapSchema(c,t);return this.emit("insertAdjacent",x({position:"beforeEnd",schema:m,wrap:u,wrapped:l},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:a}=o;let l=0,c=0,u=!1;const m={};if(this.current.parent.mapProperties((_,f)=>{_["x-index"]=l,f===this.current.name&&(++l,c=l,u=!0),++l,u&&f!==this.current.name&&(m[f]=_,this.current.parent.removeProperty(f))}),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),a&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n})),t.parent=null}else t&&(t=(0,import_cloneDeep.default)(t));this.prepareProperty(t);const d=i(t),p=this.current.parent.addProperty(d.name||(0,import_shared.uid)(),d);p.parent=this.current.parent,p["x-index"]=c,this.current.parent.setProperties(m);const[h,g]=splitWrapSchema(p,t);this.emit("insertAdjacent",x({position:"afterEnd",schema:g,wrap:h,wrapped:d},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]),a=(0,import_react2.useMemo)(()=>()=>(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{}),[]),l=(0,import_ahooks.useUpdate)(),c=useRefreshFieldSchema(),u=useRefreshComponent(),m=(0,import_react2.useCallback)(v=>{o==null||o(),l(),c==null||c(v),u==null||u()},[o,l,c,u]),d=(0,import_react.useField)(),p=(0,import_react.useFieldSchema)(),h=useAPIClient(),{t:g}=(0,import_react_i18next.useTranslation)(),_=(0,import_react2.useMemo)(()=>createDesignable({t:g,api:h,refresh:m,current:p,model:d,appVersion:clientPkg.version}),[g,h,m,p,d]);(0,import_react2.useEffect)(()=>{_.loadAPIClientEvents()},[_]);const{isMobileLayout:f}=useMobileLayout();return{dn:_,designable:f?!1:e,reset:r,refresh:m,setDesignable:t,DesignableBar:a,findComponent:(0,import_react2.useCallback)(v=>{var S;if(!v)return null;if(typeof v!="string")return v;const y=(0,import_get.default)(n,v);return(S=y==null?void 0:y[LAZY_COMPONENT_KEY])!=null?S:y},[import_get.default]),on:_.on.bind(_),patch:(0,import_react2.useCallback)((v,S)=>{const y=C=>{Object.keys(C).forEach(b=>{const F=C[b];b==="title"&&(d.title=F,p.title=F),b==="x-decorator-props"&&(d.decoratorProps||(d.decoratorProps={}),p["x-decorator-props"]||(p["x-decorator-props"]={}),Object.keys(F).forEach(I=>{d.decoratorProps[I]=F[I],p["x-decorator-props"][I]=F[I]})),b==="x-component-props"&&(d.componentProps||(d.componentProps={}),p["x-component-props"]||(p["x-component-props"]={}),Object.keys(F).forEach(I=>{d.componentProps[I]=F[I],p["x-component-props"][I]=F[I]}))})};if(typeof v=="string"){const C={};return(0,import_set.default)(C,v,S),y(C)}y(v),m()},[_]),shallowMerge:(0,import_react2.useCallback)(v=>{_.shallowMerge(v)},[_]),deepMerge:(0,import_react2.useCallback)(v=>{_.deepMerge(v)},[_]),remove:(0,import_react2.useCallback)((v,S)=>{_.remove(v,S)},[_]),insertAdjacent:(0,import_react2.useCallback)((v,S,y)=>{_.insertAdjacent(v,S,y)},[_]),insertBeforeBegin:(0,import_react2.useCallback)(v=>{_.insertBeforeBegin(v)},[_]),insertAfterBegin:(0,import_react2.useCallback)(v=>{_.insertAfterBegin(v)},[_]),insertBeforeEnd:(0,import_react2.useCallback)(v=>{_.insertBeforeEnd(v)},[_]),insertAfterEnd:(0,import_react2.useCallback)(v=>{_.insertAfterEnd(v)},[_])}}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(P(x({},t),{get scope(){return x(x({},t.scope),r.current)}}))};function useSchemaComponentContext(){return(0,import_react2.useContext)(SchemaComponentContext)}const useFieldComponentOptions=()=>{var e;const{getCollectionJoinField:t,getCollection:o}=useCollectionManager_deprecated(),r=(0,import_react.useFieldSchema)(),{getField:i}=useCollection_deprecated(),n=i(r.name)||t(r["x-collection-field"]),{t:a}=(0,import_react_i18next.useTranslation)(),{label:l}=((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:a("Record picker"),value:"CollectionField"},{label:a("Select"),value:"AssociationSelect"}];switch(n.interface){case"o2m":return[{label:a("Record picker"),value:"CollectionField"},{label:a("Subtable"),value:"TableField"},{label:a("Select"),value:"AssociationSelect"}];case"m2o":case"m2m":case"linkTo":return[{label:a("Record picker"),value:"CollectionField"},{label:a("Select"),value:"AssociationSelect"}];default:return[{label:a("Record picker"),value:"CollectionField"},{label:a("Subform"),value:"FormField"},{label:a("Select"),value:"AssociationSelect"}]}},[a,n==null?void 0:n.interface,l])},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"])),a=useCompile();(0,import_react2.useEffect)(()=>{var l;t!=null&&t.title||(t.title=a((l=n==null?void 0:n.uiSchema)==null?void 0:l.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 x(x({},r),n)};function useParsedFilter({filterOption:e}){const{parseFilter:t,findVariable:o}=useParseDataScopeFilter(),[r,i]=(0,import_react2.useState)({}),[n,a]=(0,import_react2.useState)(!!e);return(0,import_react2.useEffect)(()=>{if(!e)return;const l=()=>q(this,null,function*(){a(!0);const u=yield t(e);a(!1),i(u)});l();const c=import_lodash.default.debounce(l,DEBOUNCE_WAIT);(0,import_reactive.reaction)(()=>(0,import_client.flatten)(e,{breakOn({key:u}){return u.startsWith("$")&&u!=="$and"&&u!=="$or"},transformValue(u){if(!isVariable$1(u))return u;const m=getVariableName(u),d=o(m);let p=null;const h=getPath(u).split(".");return h.forEach((g,_)=>{const f=h.slice(0,_+1).join("."),v=(0,import_client.getValuesByPath)({[m]:(d==null?void 0:d.ctx)||{}},f);import_lodash.default.isEmpty(v)||(p=v)}),p}}),c,{equals:import_lodash.default.isEqual})},[JSON.stringify(e),t,o]),{filter:r,parseVariableLoading:n}}const useParentRecordCommon=e=>{const t=useCollectionRecordData();if(e)return t},useTableBlockDecoratorProps=e=>{const{params:t,parseVariableLoading:o}=useTableBlockParams(e),r=useParentRecordCommon(e.association);return{params:t,parentRecord:r,parseVariableLoading:o}};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:a}=(o==null?void 0:o["x-decorator-props"])||{};return e.dragSort&&a&&(n.sort=a),P(x({},n),{filter:r})},[o,r,e.dragSort,e.params]),parseVariableLoading:i}}const key="__isNewRecord__",isNewRecord=e=>(0,import_reactive.untracked)(()=>!!(e!=null&&e[key])),markRecordAsNew=e=>{if(!(0,import_lodash.isObject)(e))throw new Error("markRecordAsNew: record must be an object");return e[key]=!0,e},useDefaultLoading=()=>{var e;return!!((e=useDataBlockRequest())!=null&&e.loading)},withSkeletonComponent=(e,t)=>{const{useLoading:o=useDefaultLoading,displayName:r,SkeletonComponent:i=import_antd.Skeleton}=t||{},n=import_react2.default.memo(a=>{const l=o(),c=(0,import_react2.useRef)(!1);return!c.current&&l?(0,import_jsx_runtime.jsx)(i,{}):(c.current=!0,(0,import_jsx_runtime.jsx)(e,x({},a)))});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)=>q(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield Promise.all(o.filter(a=>!a.disabled).map(a=>q(void 0,null,function*(){return(yield conditionAnalyses({ruleGroup:a.condition,variables:r,localVariables:i,conditionType:a.conditionType},n))?a:null})))).filter(Boolean).map(a=>a.actions).flat()}),getSatisfiedValues=(e,t)=>q(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield getSatisfiedActions({rules:o,variables:r,localVariables:i},n)).map(a=>P(x({},a),{value:getActionValue(a.operator,a.value)}))}),getSatisfiedValueMap=(e,t)=>q(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield getSatisfiedValues({rules:o,variables:r,localVariables:i},n)).reduce((a,l)=>P(x({},a),{[l.operator]:l.value}),{})});function useSatisfiedActionValues({formValues:e,category:t="default",rules:o,schema:r,form:i}){const[n,a]=(0,import_react2.useState)({}),l=(0,import_react.useFieldSchema)(),c=useVariables$1(),u=useLocalVariables$1({currentForm:{values:e}}),m=r??l,d=o??m[LinkageRuleDataKeyMap[t]],p=useApp(),h=(0,import_react2.useCallback)(()=>{d&&e&&getSatisfiedValueMap({rules:d,variables:c,localVariables:u},p.jsonLogic).then(g=>{(0,import_lodash.isEmpty)(g)?a({}):a(g)}).catch(g=>{throw new Error(g.message)})},[c,u,d,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]),{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$4={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,P(x({},import_lodash.default.omit(e,"children")),{style:e.spinning?spinStyle:displayNone$4})),(0,import_jsx_runtime.jsx)("div",{style:e.spinning?opacityStyle:null,children:e.children})]})),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,a)=>a["x-component"]==="AssociationField."+e?a: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,a,l,c,u,m;const{action:d="list",service:p,useOriginalFilter:h}=e,g=(0,import_react.useFieldSchema)(),_=(0,import_react.useField)(),{getField:f}=useCollection_deprecated(),{getCollectionJoinField:v}=useCollectionManager_deprecated(),S=useRecord(),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)?(a=(n=(i=_.componentProps)==null?void 0:i.service)==null?void 0:n.params)==null?void 0:a.filter:(u=(c=(l=g==null?void 0:g["x-component-props"])==null?void 0:l.service)==null?void 0:c.params)==null?void 0:u.filter)||((m=p==null?void 0:p.params)==null?void 0:m.filter),{filter:C}=useParsedFilter({filterOption:y}),b=(0,import_react2.useMemo)(()=>f(g.name)||v(g==null?void 0:g["x-collection-field"]),[g]),F=S==null?void 0:S[b==null?void 0:b.sourceKey],I=(0,import_react2.useMemo)(()=>{const k=["oho","o2m"].includes(b==null?void 0:b.interface);return mergeFilter([mergeFilter([k&&!isInFilterFormBlock(g)&&b!=null&&b.foreignKey&&!h?{[b.foreignKey]:{$is:null}}:null,C]),k&&F!==void 0&&F!==null&&!isInFilterFormBlock(g)&&b!=null&&b.foreignKey&&!h?{[b.foreignKey]:{$eq:F}}:null],"$or")},[b==null?void 0:b.interface,b==null?void 0:b.foreignKey,g,C,F,h]);return(0,import_react2.useMemo)(()=>P(x({resource:b==null?void 0:b.target,action:d},p),{params:P(x({},p==null?void 0:p.params),{filter:I})}),[b==null?void 0:b.target,d,I,p])}const useFieldNames$1=(e={})=>{var t,o,r,i,n;const a=(0,import_react.useFieldSchema)(),l=((i=(r=(o=(t=a["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=a["x-component-props"])==null?void 0:n.fieldNames)||e.fieldNames;return x({label:"label",value:"value"},l)},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:a}=e.value,l=(0,import_react2.useMemo)(()=>import_lodash.default.omitBy({value:o,collection:r,fieldSchema:i,skip:a,parent:n||(t!=null&&t.skip?t.parent:t)},import_lodash.default.isUndefined),[o,r,i,a,n,t]);return(0,import_jsx_runtime.jsx)(SubFormContext.Provider,{value:l,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}},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};
@@ -1572,7 +1572,7 @@ https://requirejs.org/docs/errors.html#`+e);return i.requireType=e,i.requireModu
1572
1572
  }
1573
1573
  }
1574
1574
  }
1575
- `;Tabs.TabPane=withDynamicSchemaProps((0,import_react.observer)(e=>{const t=useDesigner(),o=(0,import_react.useField)(),{t:r}=(0,import_react_i18next.useTranslation)();return e.hidden?null:(0,import_jsx_runtime.jsxs)(SortableItem,{className:(0,import_classnames.default)("nb-action-link",designerCss,e.className),children:[e.icon&&(0,import_jsx_runtime.jsx)(Icon,{style:{marginRight:2},type:e.icon})," ",e.tab||r(o.title,{ns:NAMESPACE_UI_SCHEMA}),(0,import_jsx_runtime.jsx)(t,{})]})},{displayName:"Tabs.TabPane"}));Tabs.TabPane.displayName="Tabs.TabPane";Tabs.Designer=TabsDesigner;const ReadPretty$1=e=>{const{value:t,format:o="HH:mm:ss"}=e,r=(0,import_builtins.usePrefixCls)("description-text",e),i=(0,import_shared.toArr)(t),n=()=>i.map(a=>(0,import_dayjs.default)(a,"HH:mm:ss").format(o)).join("~");return(0,import_jsx_runtime.jsx)("div",{className:(0,import_classnames.default)(r,e.className),style:e.style,children:n()})},mapTimeFormat=function(){return(e,t)=>{const o=e.format||"HH:mm:ss",r=e.onChange;return P(x({},e),{format:o,inputReadOnly:!0,value:(0,import_builtins.dayjsable)(e.value,"HH:mm:ss"),onChange:i=>{r&&r((0,import_builtins.formatDayjsValue)(i,"HH:mm:ss")||null)}})}},TimePicker=(0,import_react.connect)(import_antd.TimePicker,(0,import_react.mapProps)(mapTimeFormat()),(0,import_react.mapReadPretty)(ReadPretty$1));TimePicker.RangePicker=(0,import_react.connect)(import_antd.TimePicker.RangePicker,(0,import_react.mapProps)(mapTimeFormat()),(0,import_react.mapReadPretty)(ReadPretty$1));TimePicker.ReadPretty=ReadPretty$1;const ReadPretty=(0,import_react.observer)(e=>{var t,o;const r=(0,import_react.useField)(),{placeholder:i}=e,n=(0,import_builtins.usePrefixCls)("description-tree-select",e),a=(t=r==null?void 0:r.dataSource)!=null&&t.length?r.dataSource:(o=e==null?void 0:e.treeData)!=null&&o.length?e.treeData:[],l=()=>{const m=e.value;return e.multiple?e.labelInValue?(0,import_shared.isArr)(m)?m:[]:(0,import_shared.isArr)(m)?m.map(d=>({label:d,value:d})):[]:e.labelInValue?m?[m]:[]:m?[{label:m,value:m}]:[]},c=(m,d)=>{for(let p=0;p<(d==null?void 0:d.length);p++){const h=d[p];if((h==null?void 0:h.value)===m)return h==null?void 0:h.label;{const g=c(m,h==null?void 0:h.children);if(g)return g}}},u=()=>{const m=l();return m!=null&&m.length?m.map(({value:d,label:p},h)=>(0,import_jsx_runtime.jsx)(import_antd.Tag,{children:c(d,a)||p||i},h)):(0,import_jsx_runtime.jsx)(import_antd.Tag,{children:i})};return(0,import_jsx_runtime.jsx)("div",{className:(0,import_classnames.default)(n,e.className),style:e.style,children:u()})},{displayName:"ReadPretty"}),TreeSelect=(0,import_react.connect)(import_antd.TreeSelect,(0,import_react.mapProps)({dataSource:"treeData"},(e,t)=>P(x({},e),{suffixIcon:t!=null&&t.loading||t!=null&&t.validating?(0,import_jsx_runtime.jsx)(import_icons.LoadingOutlined,{}):e.suffixIcon})),(0,import_react.mapReadPretty)(ReadPretty)),toValue=(e,t)=>e?convertTimestampToDate(e,t):null;function convertTimestampToDate(e,t="second"){const o=t==="second"?e*1e3:e,r=new Date(o);return isNaN(r.getTime())?"Invalid timestamp":r.toUTCString()}const UnixTimestamp=(0,import_react.connect)(e=>{const{value:t,onChange:o,accuracy:r}=e,i=(0,import_react2.useMemo)(()=>typeof t=="number"?toValue(t,r):t,[t]);return(0,import_jsx_runtime.jsx)(DatePicker,P(x({},e),{value:i,onChange:n=>{o&&o(n)}}))},(0,import_react.mapReadPretty)(e=>{const{value:t}=e;return(0,import_jsx_runtime.jsx)(DatePicker.ReadPretty,P(x({},e),{value:t}))})),useEnvironmentVariableOptions=e=>{const t=useGlobalVariable("$env");return(0,import_react2.useMemo)(()=>t?[t].filter(Boolean):e,[t,e])},isVariable=e=>/{{.*?}}/.test(e),TextAreaWithGlobalScope=(0,import_react.connect)(e=>{const t=e,{supportsLineBreak:o,password:r,number:i,boolean:n,input:a,expression:l=!0}=t,c=Y(t,["supportsLineBreak","password","number","boolean","input","expression"]),u=useEnvironmentVariableOptions(e.scope),m={value:"name",label:"title"};return o?(0,import_jsx_runtime.jsx)(RawTextArea,P(x({},c),{scope:u,fieldNames:m,rows:3})):i?(0,import_jsx_runtime.jsx)(Variable.Input,P(x({},e),{scope:u,fieldNames:m})):r&&e.value&&!isVariable(e.value)?(0,import_jsx_runtime.jsx)(Password,P(x({},c),{autoFocus:!0})):n?(0,import_jsx_runtime.jsx)(Variable.Input,P(x({},e),{scope:u,fieldNames:m})):a?(0,import_jsx_runtime.jsx)(Variable.Input,P(x({},c),{scope:u,fieldNames:m})):l?(0,import_jsx_runtime.jsx)(TextArea,P(x({},c),{scope:u,fieldNames:m})):(0,import_jsx_runtime.jsx)(Variable.Input,P(x({},c),{scope:u,fieldNames:m}))},(0,import_react.mapReadPretty)(Input$2.ReadPretty)),isDrawerTitle=e=>(0,import_shared.isNum)(e)||(0,import_shared.isStr)(e)||(0,import_shared.isBool)(e)||import_react2.default.isValidElement(e),getDrawerProps=e=>isDrawerTitle(e)?{title:e}:e;function FormDrawer(e,t,o,r){((0,import_shared.isFn)(t)||import_react2.default.isValidElement(t))&&(r=o,o=t,t="form-drawer");const i={host:document.createElement("div"),openMiddlewares:[],form:null,promise:null},n=createPortalRoot(i.host,t),a=getDrawerProps(e),l=P(x({width:"40%"},a),{onClose:d=>{var p;((p=a==null?void 0:a.onClose)==null?void 0:p.call(a,d))!==!1&&m.close()},afterVisibleChange:d=>{var p;(p=a==null?void 0:a.afterVisibleChange)==null||p.call(a,d),!d&&n.unmount()}}),c=(0,import_react.observer)(()=>(0,import_jsx_runtime.jsx)(import_react2.Fragment,{children:(0,import_shared.isFn)(o)?o(i.form):o})),u=(d=!0)=>(0,import_jsx_runtime.jsx)(GlobalThemeProvider,{theme:r,children:(0,import_jsx_runtime.jsx)(import_antd.Drawer,P(x({},l),{visible:d,children:(0,import_jsx_runtime.jsx)(import_react.FormProvider,{form:i.form,children:(0,import_jsx_runtime.jsx)(c,{})})}))});document.body.appendChild(i.host);const m={forOpen:d=>((0,import_shared.isFn)(d)&&i.openMiddlewares.push(d),m),open:d=>(i.promise||(i.promise=new Promise((p,h)=>q(this,null,function*(){try{d=yield loading(l.loadingText,()=>(0,import_shared.applyMiddleware)(d,i.openMiddlewares)),i.form=i.form||(0,import_core.createForm)(P(x({},d),{effects(g){var _;(0,import_core.onFormSubmitSuccess)(()=>{p((0,import_reactive.toJS)(g.values)),m.close()}),(_=d==null?void 0:d.effects)==null||_.call(d,g)}}))}catch(g){h(g)}n.render(()=>u(!1)),setTimeout(()=>{n.render(()=>u(!0))},16)}))),i.promise),close:()=>{i.host&&n.render(()=>u(!1))}};return m}const DrawerExtra=e=>{const t=(0,import_react2.useRef)(),[o,r]=(0,import_react2.useState)(),i=(0,import_react2.useRef)(),n=usePrefixCls("drawer");return(0,import_react2.useLayoutEffect)(()=>{var a,l;const c=(l=(a=t.current)==null?void 0:a.closest(`.${n}-content`))==null?void 0:l.querySelector(`.${n}-header`);c&&(i.current||(i.current=c.querySelector(`.${n}-extra`),i.current||(i.current=document.createElement("div"),i.current.classList.add(`${n}-extra`),c.appendChild(i.current))),r(i.current))}),i.current=o,(0,import_jsx_runtime.jsx)("div",{ref:t,style:{display:"none"},children:o&&(0,import_react_dom.createPortal)(e.children,o)})},DrawerFooter=e=>{const t=(0,import_react2.useRef)(),[o,r]=(0,import_react2.useState)(),i=(0,import_react2.useRef)(),n=usePrefixCls("drawer");return(0,import_react2.useLayoutEffect)(()=>{var a;const l=(a=t.current)==null?void 0:a.closest(`.${n}-content`);l&&(i.current||(i.current=l.querySelector(`.${n}-footer`),i.current||(i.current=document.createElement("div"),i.current.classList.add(`${n}-footer`),l.appendChild(i.current))),r(i.current))}),i.current=o,(0,import_jsx_runtime.jsx)("div",{ref:t,style:{display:"none"},children:o&&(0,import_react_dom.createPortal)(e.children,o)})};FormDrawer.Extra=DrawerExtra;FormDrawer.Footer=DrawerFooter;FormDrawer.Portal=createPortalProvider("form-drawer");const RemoveConditionContext=(0,import_react2.createContext)(null);RemoveConditionContext.displayName="RemoveConditionContext";const FilterContext=(0,import_react2.createContext)(null);FilterContext.displayName="FilterContext";const FilterLogicContext=(0,import_react2.createContext)(null);FilterLogicContext.displayName="FilterLogicContext";const DynamicComponent=e=>{const{setScopes:t,nullable:o,constantAbel:r,changeOnSelect:i,readOnly:n=!1}=e,{disabled:a}=(0,import_react2.useContext)(FilterContext)||{},l=useCollectionRecordData(),c=useVariables$1(),u=useLocalVariables$1(),{getAllCollectionsInheritChain:m}=useCollectionManager_deprecated(),{collectionField:d}=e,p=(0,import_react2.useCallback)(_=>(0,import_jsx_runtime.jsx)(VariableInput,P(x({},_),{form:h,record:l,setScopes:t,nullable:o,constantAbel:r,changeOnSelect:i,shouldChange:getShouldChange({collectionField:d,variables:c,localVariables:u,getAllCollectionsInheritChain:m})})),[]),h=(0,import_react2.useMemo)(()=>(0,import_core.createForm)({values:{value:e.value},effects(){(0,import_core.onFieldValueChange)("value",_=>{var f;(f=e==null?void 0:e.onChange)==null||f.call(e,_.value)})},disabled:a}),[JSON.stringify(e.value),e.schema]),g=(0,import_react2.useCallback)(()=>{var _;const f=(0,import_shared.merge)(((_=e==null?void 0:e.schema)==null?void 0:_["x-component-props"])||{},e.componentProps||{});return(0,import_jsx_runtime.jsx)(import_react.FieldContext.Provider,{value:null,children:(0,import_jsx_runtime.jsx)(SchemaComponent,{schema:P(x({"x-component":"Input"},e.schema),{"x-component-props":(0,import_shared.merge)(f,{style:x({minWidth:150},e.style),utc:!1,readOnly:n}),name:"value","x-read-pretty":!1,"x-validator":void 0,"x-decorator":void 0})})})},[e.schema]);return(0,import_jsx_runtime.jsx)(import_react.FormContext.Provider,{value:h,children:(0,import_jsx_runtime.jsx)("div",{"data-testid":e.testid,children:import_react2.default.createElement(p,{value:e.value,collectionField:e.collectionField,onChange:e==null?void 0:e.onChange,renderSchemaComponent:g})})})},findOption=(e,t)=>{if(!e)return null;const o=e.match(/\{\{\$(.*?)\}\}/);if(!o)return null;const[r,...i]=o[1].split("."),n=[`$${r}`,...i];let a=t,l=null;for(const c of n){if(l=a.find(u=>u.value===c),!l)return null;if(Array.isArray(l.children)||l.isLeaf===!1)a=l.children;else return l}return l},operators=[{label:'{{t("is empty")}}',value:"$empty",noValue:!0},{label:'{{t("is not empty")}}',value:"$notEmpty",noValue:!0}],useValues=()=>{const e=(0,import_react.useField)(),{scopes:t}=(0,import_react2.useContext)(FilterContext)||{},{op:o,leftVar:r,rightVar:i}=e.value||{},n=(0,import_react2.useCallback)(()=>{var u,m;e.value=e.data.leftVar?{op:(u=e.data.operator)==null?void 0:u.value,leftVar:e.data.leftVar,rightVar:(m=e.data)==null?void 0:m.rightVar}:{}},[e]);(0,import_react2.useEffect)(()=>{setTimeout(()=>{var u;const m=findOption(r,t);if(e.data=e.data||{},!e.value)return;const d=(0,import_lodash.uniqBy)([...e.data.operators||[],...(m==null?void 0:m.operators)||[]],"value");e.data.operators=d.length?d:operators,e.data.leftVar=r,e.data.rightVar=i;const p=d==null?void 0:d.find(_=>_.value===o);e.data.operator=e.data.operator||p;const h=(0,import_lodash.cloneDeep)(m==null?void 0:m.schema),g=(0,import_lodash.cloneDeep)(p==null?void 0:p.schema);e.data.schema=((u=e.data)==null?void 0:u.schema)||(0,import_shared.merge)(h,g)},100)},[e.value.leftVar,t]);const a=(0,import_react2.useCallback)((u,m)=>{var d;const p=(0,import_lodash.last)(m);e.data=e.data||{},e.data.operators=(p==null?void 0:p.operators)||operators;const h=(d=e.data.operators)==null?void 0:d[0];e.data.operator=h;const g=(0,import_lodash.cloneDeep)(p==null?void 0:p.schema),_=(0,import_lodash.cloneDeep)(h==null?void 0:h.schema);e.data.schema=(0,import_shared.merge)(g,_),e.data.leftVar=u,e.data.rightVar=h!=null&&h.noValue?h.default||!0:void 0,n()},[n,e]),l=(0,import_react2.useCallback)(u=>{var m,d,p;const h=(p=(d=(m=e.data)==null?void 0:m.operators)==null?void 0:d.find)==null?void 0:p.call(d,f=>f.value===u);e.data.operator=h;const g=(0,import_lodash.cloneDeep)(e.data.schema),_=(0,import_lodash.cloneDeep)(h==null?void 0:h.schema);e.data.schema=(0,import_shared.merge)(g,_),e.data.value=h.noValue?h.default||!0:void 0,n()},[n,e.data]),c=(0,import_react2.useCallback)(u=>{e.data.rightVar=u,n()},[n,e.data]);return P(x({},(e==null?void 0:e.data)||{}),{setLeftValue:a,setOperator:l,setRightValue:c})},LinkageFilterItem=(0,import_react.observer)(e=>{const{t}=(0,import_react_i18next.useTranslation)(),o=useCompile(),r=(0,import_react2.useContext)(RemoveConditionContext),{setScopes:i}=(0,import_react2.useContext)(FilterContext)||{},{schema:n,operators:a,operator:l,setOperator:c,rightVar:u,leftVar:m,setLeftValue:d,setRightValue:p}=useValues(),h=(0,import_react2.useMemo)(()=>({marginBottom:8}),[]),g=(0,import_react2.useCallback)(f=>{c(f)},[c]),_=(0,import_react2.useMemo)(()=>({color:"#bfbfbf"}),[]);return(0,import_jsx_runtime.jsx)("div",{style:h,className:"nc-filter-item",children:(0,import_jsx_runtime.jsxs)(import_antd.Space,{wrap:!0,children:[(0,import_jsx_runtime.jsx)(DynamicComponent,{value:m,onChange:d,setScopes:i,testid:"left-filter-field",nullable:!1,constantAbel:!1,changeOnSelect:!1,readOnly:!0}),(0,import_jsx_runtime.jsx)(import_antd.Select,{role:"button","data-testid":"select-filter-operator",className:import_css.css`
1575
+ `;Tabs.TabPane=withDynamicSchemaProps((0,import_react.observer)(e=>{const t=useDesigner(),o=(0,import_react.useField)(),{t:r}=(0,import_react_i18next.useTranslation)();return e.hidden?null:(0,import_jsx_runtime.jsxs)(SortableItem,{className:(0,import_classnames.default)("nb-action-link",designerCss,e.className),children:[e.icon&&(0,import_jsx_runtime.jsx)(Icon,{style:{marginRight:2},type:e.icon})," ",e.tab||r(o.title,{ns:NAMESPACE_UI_SCHEMA}),(0,import_jsx_runtime.jsx)(t,{})]})},{displayName:"Tabs.TabPane"}));Tabs.TabPane.displayName="Tabs.TabPane";Tabs.Designer=TabsDesigner;const ReadPretty$1=e=>{const{value:t,format:o="HH:mm:ss"}=e,r=(0,import_builtins.usePrefixCls)("description-text",e),i=(0,import_shared.toArr)(t),n=()=>i.map(a=>(0,import_dayjs.default)(a,"HH:mm:ss").format(o)).join("~");return(0,import_jsx_runtime.jsx)("div",{className:(0,import_classnames.default)(r,e.className),style:e.style,children:n()})},mapTimeFormat=function(){return(e,t)=>{const o=e.format||"HH:mm:ss",r=e.onChange;return P(x({},e),{format:o,inputReadOnly:!0,value:(0,import_builtins.dayjsable)(e.value,"HH:mm:ss"),onChange:i=>{r&&r((0,import_builtins.formatDayjsValue)(i,"HH:mm:ss")||null)}})}},TimePicker=(0,import_react.connect)(import_antd.TimePicker,(0,import_react.mapProps)(mapTimeFormat()),(0,import_react.mapReadPretty)(ReadPretty$1));TimePicker.RangePicker=(0,import_react.connect)(import_antd.TimePicker.RangePicker,(0,import_react.mapProps)(mapTimeFormat()),(0,import_react.mapReadPretty)(ReadPretty$1));TimePicker.ReadPretty=ReadPretty$1;const ReadPretty=(0,import_react.observer)(e=>{var t,o;const r=(0,import_react.useField)(),{placeholder:i}=e,n=(0,import_builtins.usePrefixCls)("description-tree-select",e),a=(t=r==null?void 0:r.dataSource)!=null&&t.length?r.dataSource:(o=e==null?void 0:e.treeData)!=null&&o.length?e.treeData:[],l=()=>{const m=e.value;return e.multiple?e.labelInValue?(0,import_shared.isArr)(m)?m:[]:(0,import_shared.isArr)(m)?m.map(d=>({label:d,value:d})):[]:e.labelInValue?m?[m]:[]:m?[{label:m,value:m}]:[]},c=(m,d)=>{for(let p=0;p<(d==null?void 0:d.length);p++){const h=d[p];if((h==null?void 0:h.value)===m)return h==null?void 0:h.label;{const g=c(m,h==null?void 0:h.children);if(g)return g}}},u=()=>{const m=l();return m!=null&&m.length?m.map(({value:d,label:p},h)=>(0,import_jsx_runtime.jsx)(import_antd.Tag,{children:c(d,a)||p||i},h)):(0,import_jsx_runtime.jsx)(import_antd.Tag,{children:i})};return(0,import_jsx_runtime.jsx)("div",{className:(0,import_classnames.default)(n,e.className),style:e.style,children:u()})},{displayName:"ReadPretty"}),TreeSelect=(0,import_react.connect)(import_antd.TreeSelect,(0,import_react.mapProps)({dataSource:"treeData"},(e,t)=>P(x({},e),{suffixIcon:t!=null&&t.loading||t!=null&&t.validating?(0,import_jsx_runtime.jsx)(import_icons.LoadingOutlined,{}):e.suffixIcon})),(0,import_react.mapReadPretty)(ReadPretty)),toValue=(e,t)=>e?convertTimestampToDate(e,t):null;function convertTimestampToDate(e,t="second"){const o=t==="second"?e*1e3:e,r=new Date(o);return isNaN(r.getTime())?"Invalid timestamp":r.toUTCString()}const UnixTimestamp=(0,import_react.connect)(e=>{const{value:t,onChange:o,accuracy:r}=e,i=(0,import_react2.useMemo)(()=>typeof t=="number"?toValue(t,r):t,[t]);return(0,import_jsx_runtime.jsx)(DatePicker,P(x({},e),{value:i,onChange:n=>{o&&o(n)}}))},(0,import_react.mapReadPretty)(e=>{const{value:t}=e;return(0,import_jsx_runtime.jsx)(DatePicker.ReadPretty,P(x({},e),{value:t}))})),useEnvironmentVariableOptions=e=>{const t=useGlobalVariable("$env");return(0,import_react2.useMemo)(()=>t?[t].filter(Boolean):e,[t,e])},isVariable=e=>/{{.*?}}/.test(e),TextAreaWithGlobalScope=(0,import_react.connect)(e=>{const t=e,{supportsLineBreak:o,password:r,number:i,boolean:n,input:a,expression:l=!0}=t,c=Y(t,["supportsLineBreak","password","number","boolean","input","expression"]),u=useEnvironmentVariableOptions(e.scope),m={value:"name",label:"title"};return o?(0,import_jsx_runtime.jsx)(RawTextArea,P(x({},c),{scope:u,fieldNames:m,rows:3})):i?(0,import_jsx_runtime.jsx)(Variable.Input,P(x({},e),{scope:u,fieldNames:m})):r&&e.value&&!isVariable(e.value)?(0,import_jsx_runtime.jsx)(Password,P(x({},c),{autoFocus:!0})):n?(0,import_jsx_runtime.jsx)(Variable.Input,P(x({},e),{scope:u,fieldNames:m})):a?(0,import_jsx_runtime.jsx)(Variable.Input,P(x({},c),{scope:u,fieldNames:m})):l?(0,import_jsx_runtime.jsx)(TextArea,P(x({},c),{scope:u,fieldNames:m})):(0,import_jsx_runtime.jsx)(Variable.Input,P(x({},c),{scope:u,fieldNames:m}))},(0,import_react.mapReadPretty)(Input$2.ReadPretty)),isDrawerTitle=e=>(0,import_shared.isNum)(e)||(0,import_shared.isStr)(e)||(0,import_shared.isBool)(e)||import_react2.default.isValidElement(e),getDrawerProps=e=>isDrawerTitle(e)?{title:e}:e;function FormDrawer(e,t,o,r){((0,import_shared.isFn)(t)||import_react2.default.isValidElement(t))&&(r=o,o=t,t="form-drawer");const i={host:document.createElement("div"),openMiddlewares:[],form:null,promise:null},n=createPortalRoot(i.host,t),a=getDrawerProps(e),l=P(x({width:"40%"},a),{onClose:d=>{var p;((p=a==null?void 0:a.onClose)==null?void 0:p.call(a,d))!==!1&&m.close()},afterVisibleChange:d=>{var p;(p=a==null?void 0:a.afterVisibleChange)==null||p.call(a,d),!d&&n.unmount()}}),c=(0,import_react.observer)(()=>(0,import_jsx_runtime.jsx)(import_react2.Fragment,{children:(0,import_shared.isFn)(o)?o(i.form):o})),u=(d=!0)=>(0,import_jsx_runtime.jsx)(GlobalThemeProvider,{theme:r,children:(0,import_jsx_runtime.jsx)(import_antd.Drawer,P(x({},l),{visible:d,children:(0,import_jsx_runtime.jsx)(import_react.FormProvider,{form:i.form,children:(0,import_jsx_runtime.jsx)(c,{})})}))});document.body.appendChild(i.host);const m={forOpen:d=>((0,import_shared.isFn)(d)&&i.openMiddlewares.push(d),m),open:d=>(i.promise||(i.promise=new Promise((p,h)=>q(this,null,function*(){try{d=yield loading(l.loadingText,()=>(0,import_shared.applyMiddleware)(d,i.openMiddlewares)),i.form=i.form||(0,import_core.createForm)(P(x({},d),{effects(g){var _;(0,import_core.onFormSubmitSuccess)(()=>{p((0,import_reactive.toJS)(g.values)),m.close()}),(_=d==null?void 0:d.effects)==null||_.call(d,g)}}))}catch(g){h(g)}n.render(()=>u(!1)),setTimeout(()=>{n.render(()=>u(!0))},16)}))),i.promise),close:()=>{i.host&&n.render(()=>u(!1))}};return m}const DrawerExtra=e=>{const t=(0,import_react2.useRef)(),[o,r]=(0,import_react2.useState)(),i=(0,import_react2.useRef)(),n=usePrefixCls("drawer");return(0,import_react2.useLayoutEffect)(()=>{var a,l;const c=(l=(a=t.current)==null?void 0:a.closest(`.${n}-content`))==null?void 0:l.querySelector(`.${n}-header`);c&&(i.current||(i.current=c.querySelector(`.${n}-extra`),i.current||(i.current=document.createElement("div"),i.current.classList.add(`${n}-extra`),c.appendChild(i.current))),r(i.current))}),i.current=o,(0,import_jsx_runtime.jsx)("div",{ref:t,style:{display:"none"},children:o&&(0,import_react_dom.createPortal)(e.children,o)})},DrawerFooter=e=>{const t=(0,import_react2.useRef)(),[o,r]=(0,import_react2.useState)(),i=(0,import_react2.useRef)(),n=usePrefixCls("drawer");return(0,import_react2.useLayoutEffect)(()=>{var a;const l=(a=t.current)==null?void 0:a.closest(`.${n}-content`);l&&(i.current||(i.current=l.querySelector(`.${n}-footer`),i.current||(i.current=document.createElement("div"),i.current.classList.add(`${n}-footer`),l.appendChild(i.current))),r(i.current))}),i.current=o,(0,import_jsx_runtime.jsx)("div",{ref:t,style:{display:"none"},children:o&&(0,import_react_dom.createPortal)(e.children,o)})};FormDrawer.Extra=DrawerExtra;FormDrawer.Footer=DrawerFooter;FormDrawer.Portal=createPortalProvider("form-drawer");const RemoveConditionContext=(0,import_react2.createContext)(null);RemoveConditionContext.displayName="RemoveConditionContext";const FilterContext=(0,import_react2.createContext)(null);FilterContext.displayName="FilterContext";const FilterLogicContext=(0,import_react2.createContext)(null);FilterLogicContext.displayName="FilterLogicContext";const DynamicComponent=e=>{const{setScopes:t,nullable:o,constantAbel:r,changeOnSelect:i,readOnly:n=!1}=e,{disabled:a}=(0,import_react2.useContext)(FilterContext)||{},l=useCollectionRecordData(),c=useVariables$1(),u=useLocalVariables$1(),{getAllCollectionsInheritChain:m}=useCollectionManager_deprecated(),{collectionField:d}=e,p=(0,import_react2.useCallback)(_=>(0,import_jsx_runtime.jsx)(VariableInput,P(x({},_),{form:h,record:l,setScopes:t,nullable:o,constantAbel:r,changeOnSelect:i,shouldChange:getShouldChange({collectionField:d,variables:c,localVariables:u,getAllCollectionsInheritChain:m})})),[]),h=(0,import_react2.useMemo)(()=>(0,import_core.createForm)({values:{value:e.value},effects(){(0,import_core.onFieldValueChange)("value",_=>{var f;(f=e==null?void 0:e.onChange)==null||f.call(e,_.value)})},disabled:a}),[JSON.stringify(e.value),e.schema]),g=(0,import_react2.useCallback)(()=>{var _;const f=(0,import_shared.merge)(((_=e==null?void 0:e.schema)==null?void 0:_["x-component-props"])||{},e.componentProps||{});return(0,import_jsx_runtime.jsx)(import_react.FieldContext.Provider,{value:null,children:(0,import_jsx_runtime.jsx)(SchemaComponent,{schema:P(x({"x-component":"Input"},e.schema),{"x-component-props":(0,import_shared.merge)(f,{style:x({minWidth:150},e.style),utc:!1,readOnly:n}),name:"value","x-read-pretty":!1,"x-validator":void 0,"x-decorator":void 0})})})},[e.schema]);return(0,import_jsx_runtime.jsx)(import_react.FormContext.Provider,{value:h,children:(0,import_jsx_runtime.jsx)("div",{"data-testid":e.testid,children:import_react2.default.createElement(p,{value:e.value,collectionField:e.collectionField,onChange:e==null?void 0:e.onChange,renderSchemaComponent:g})})})},findOption=(e,t)=>{if(!e)return null;const o=e.match(/\{\{\$(.*?)\}\}/);if(!o)return null;const[r,...i]=o[1].split("."),n=[`$${r}`,...i];let a=t,l=null;for(const c of n){if(l=a.find(u=>u.value===c||u.name===c),!l)return null;if(Array.isArray(l.children)||l.isLeaf===!1)a=l.children||l.field.children;else return l}return l},operators=[{label:'{{t("is empty")}}',value:"$empty",noValue:!0},{label:'{{t("is not empty")}}',value:"$notEmpty",noValue:!0}],useValues=()=>{const e=(0,import_react.useField)(),{scopes:t}=(0,import_react2.useContext)(FilterContext)||{},{op:o,leftVar:r,rightVar:i}=e.value||{},n=(0,import_react2.useCallback)(()=>{var u,m;e.value=e.data.leftVar?{op:(u=e.data.operator)==null?void 0:u.value,leftVar:e.data.leftVar,rightVar:(m=e.data)==null?void 0:m.rightVar}:{}},[e]);(0,import_react2.useEffect)(()=>{setTimeout(()=>{var u;const m=findOption(r,t);if(e.data=e.data||{},!e.value)return;const d=(0,import_lodash.uniqBy)([...e.data.operators||[],...(m==null?void 0:m.operators)||[]],"value");e.data.operators=d.length?d:operators,e.data.leftVar=r,e.data.rightVar=i;const p=d==null?void 0:d.find(_=>_.value===o);e.data.operator=e.data.operator||p;const h=(0,import_lodash.cloneDeep)(m==null?void 0:m.schema),g=(0,import_lodash.cloneDeep)(p==null?void 0:p.schema);e.data.schema=((u=e.data)==null?void 0:u.schema)||(0,import_shared.merge)(h,g)},100)},[e.value.leftVar,t]);const a=(0,import_react2.useCallback)((u,m)=>{var d;const p=(0,import_lodash.last)(m);e.data=e.data||{},e.data.operators=(p==null?void 0:p.operators)||operators;const h=(d=e.data.operators)==null?void 0:d[0];e.data.operator=h;const g=(0,import_lodash.cloneDeep)(p==null?void 0:p.schema),_=(0,import_lodash.cloneDeep)(h==null?void 0:h.schema);e.data.schema=(0,import_shared.merge)(g,_),e.data.leftVar=u,e.data.rightVar=h!=null&&h.noValue?h.default||!0:void 0,n()},[n,e]),l=(0,import_react2.useCallback)(u=>{var m,d,p;const h=(p=(d=(m=e.data)==null?void 0:m.operators)==null?void 0:d.find)==null?void 0:p.call(d,f=>f.value===u);e.data.operator=h;const g=(0,import_lodash.cloneDeep)(e.data.schema),_=(0,import_lodash.cloneDeep)(h==null?void 0:h.schema);e.data.schema=(0,import_shared.merge)(g,_),e.data.value=h.noValue?h.default||!0:void 0,n()},[n,e.data]),c=(0,import_react2.useCallback)(u=>{e.data.rightVar=u,n()},[n,e.data]);return P(x({},(e==null?void 0:e.data)||{}),{setLeftValue:a,setOperator:l,setRightValue:c})},LinkageFilterItem=(0,import_react.observer)(e=>{const{t}=(0,import_react_i18next.useTranslation)(),o=useCompile(),r=(0,import_react2.useContext)(RemoveConditionContext),{setScopes:i}=(0,import_react2.useContext)(FilterContext)||{},{schema:n,operators:a,operator:l,setOperator:c,rightVar:u,leftVar:m,setLeftValue:d,setRightValue:p}=useValues(),h=(0,import_react2.useMemo)(()=>({marginBottom:8}),[]),g=(0,import_react2.useCallback)(f=>{c(f)},[c]),_=(0,import_react2.useMemo)(()=>({color:"#bfbfbf"}),[]);return(0,import_jsx_runtime.jsx)("div",{style:h,className:"nc-filter-item",children:(0,import_jsx_runtime.jsxs)(import_antd.Space,{wrap:!0,children:[(0,import_jsx_runtime.jsx)(DynamicComponent,{value:m,onChange:d,setScopes:i,testid:"left-filter-field",nullable:!1,constantAbel:!1,changeOnSelect:!1,readOnly:!0}),(0,import_jsx_runtime.jsx)(import_antd.Select,{role:"button","data-testid":"select-filter-operator",className:import_css.css`
1576
1576
  min-width: 110px;
1577
1577
  `,popupMatchSelectWidth:!1,value:l==null?void 0:l.value,options:o(a),onChange:g,placeholder:t("Comparision")}),l!=null&&l.noValue?null:(0,import_jsx_runtime.jsx)(DynamicComponent,{value:u,schema:n,onChange:p,testid:"right-filter-field"}),!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:_})})]})})},{displayName:"FilterItem"}),FilterItems=(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.Provider,{value:()=>o.remove(i),children:(0,import_jsx_runtime.jsx)(import_react.ObjectField,{name:i,component:[r.$and||r.$or?FilterGroup:LinkageFilterItem]})},i))})},{displayName:"FilterItems"}),FilterGroup=(0,import_react.connect)(e=>{const{bordered:t=!0,disabled:o}=e,r=(0,import_react.useField)(),i=(0,import_react2.useContext)(RemoveConditionContext),{t:n}=(0,import_react_i18next.useTranslation)(),{token:a}=useToken$1(),l=Object.keys(r.value||{}).includes("$or")?"$or":"$and",c=m=>{const d=r.value||{};r.value={[m]:[...d[l]||[]]}},u=o||r.disabled;return(0,import_jsx_runtime.jsx)(FilterLogicContext.Provider,{value:l,children:(0,import_jsx_runtime.jsxs)("div",{style:t?{position:"relative",border:`1px dashed ${a.colorBorder}`,padding:a.paddingSM,marginBottom:a.marginXS}:{position:"relative",marginBottom:a.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:a.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:l,onChange:m=>{c(m)},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:`${l}`,component:[FilterItems],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 m=(r.value||{})[l]||[];m.push({}),r.value={[l]:m},r.initialValue={[l]:m}},children:n("Add condition")}),(0,import_jsx_runtime.jsx)("a",{onClick:()=>{const m=(r.value||{})[l]||[];m.push({$and:[{}]}),r.value={[l]:m}},children:n("Add condition group")})]})]})})}),useDef=e=>{const t=(0,import_react.useField)();return useRequest(()=>Promise.resolve({data:t.dataSource}),e)},LinkageFilter=withDynamicSchemaProps((0,import_react.observer)(e=>{const{useDataSource:t=useDef}=e,{dynamicComponent:o,className:r,collectionName:i}=useProps(e),[n,a]=(0,import_react2.useState)([]),l=(0,import_react.useField)(),c=(0,import_react.useFieldSchema)();return t({onSuccess(u){l.dataSource=(u==null?void 0:u.data)||[]}}),(0,import_react2.useEffect)(()=>{c.defaultValue&&(l.initialValue=c.defaultValue)},[c.defaultValue]),(0,import_jsx_runtime.jsx)("div",{className:r,children:(0,import_jsx_runtime.jsx)(FilterContext.Provider,{value:{field:l,fieldSchema:c,dynamicComponent:o,disabled:e.disabled,collectionName:i,scopes:n,setScopes:a},children:(0,import_jsx_runtime.jsx)(FilterGroup,P(x({},e),{bordered:!1}))})})}),{displayName:"LinkageFilter"}),{Text}=import_antd.Typography,CollectionDeletedPlaceholder=({type:e,name:t,message:o})=>{const{designable:r,dn:i}=useDesignable(),{modal:n}=import_antd.App.useApp(),{t:a}=(0,import_react_i18next.useTranslation)(),l=useDataSource(),c=useCompile(),u=useCollection(),m=useDataSourceManager(),d=(0,import_react2.useMemo)(()=>{if(e==="Data Source")return t;const g=(m==null?void 0:m.getDataSources().length)>=1&&l&&l.key!==DEFAULT_DATA_SOURCE_KEY?`${c(l.displayName||l.key)} > `:"";if(e==="Collection")return`${g}${t}`;const _=u?`${c(u.title)||u.name||u.tableName} > `:"";return`${g}${_}${t}`},[]),p=(0,import_react2.useMemo)(()=>e==="Field"?"Field":"Block",[e]),h=(0,import_react2.useMemo)(()=>t?o?`${a(e)} "${d}" ${o}`:a('The {{type}} "{{name}}" may have been deleted. Please remove this {{blockType}}.',{type:a(e).toLocaleLowerCase(),name:d,blockType:a(p).toLocaleLowerCase()}).replaceAll("&gt;",">"):`${a(e)} name is required`,[o,d,e,a,p]);return r?e==="Field"?(0,import_jsx_runtime.jsx)(EllipsisWithTooltip,{ellipsis:!0,children:(0,import_jsx_runtime.jsx)(Text,{type:"secondary",children:h})}):(0,import_jsx_runtime.jsx)(BlockItemCard,{children:(0,import_jsx_runtime.jsx)(import_antd.Result,{status:"404",subTitle:h,extra:(0,import_jsx_runtime.jsx)(import_antd.Button,{onClick:()=>n.confirm(P(x({title:a("Delete block"),content:a("Are you sure you want to delete it?")},confirm),{onOk(){i.remove(null,{removeParentsIfNoChildren:!0,breakRemoveOn:{"x-component":"Grid"}}),i.refresh({refreshParentSchema:!0})}})),children:a("Delete")},"Delete")})}):null},CollectionNotAllowView=()=>{const{t:e}=(0,import_react_i18next.useTranslation)(),t=useDataSource(),o=useCompile(),r=useCollection(),i=useDataSourceManager(),n=(0,import_react2.useMemo)(()=>{const l=(i==null?void 0:i.getDataSources().length)>=1&&t&&t.key!==DEFAULT_DATA_SOURCE_KEY?`${o(t.displayName||t.key)} > `:"";if(r)return`${l}${r.name}`;const c=r?`${o(r.title)||r.name||r.tableName} > `:"";return`${l}${c}${r.name}`},[]),a=(0,import_react2.useMemo)(()=>e(`The current user only has the UI configuration permission, but don't have view permission for collection "{{name}}"`,{name:n}).replaceAll("&gt;",">"),[n,e]);return(0,import_jsx_runtime.jsx)(BlockItemCard,{children:(0,import_jsx_runtime.jsx)(import_antd.Result,{status:"404",subTitle:a})})},CollectionNotAllowViewPlaceholder=()=>{const{designable:e}=useDesignable();return e?(0,import_jsx_runtime.jsx)(CollectionNotAllowView,{}):null},CollectionFieldContext=(0,import_react2.createContext)(null);CollectionFieldContext.displayName="CollectionFieldContext";const CollectionFieldProvider=e=>{const{name:t,children:o,allowNull:r}=e,i=(0,import_react.useFieldSchema)(),n=useCollection(),a=useCollectionManager(),l=(0,import_react2.useMemo)(()=>{var c;if(!n)return null;const u=(c=i==null?void 0:i["x-component-props"])==null?void 0:c.field;return a.getCollectionField(i==null?void 0:i["x-collection-field"])||u||n.getField((u==null?void 0:u.name)||t)},[n,i,a,t]);return!l&&r?(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:o}):l?(0,import_jsx_runtime.jsx)(CollectionFieldContext.Provider,{value:l,children:o}):(0,import_jsx_runtime.jsx)(CollectionDeletedPlaceholder,{type:"Field",name:t})},ClearCollectionFieldContext=e=>(0,import_jsx_runtime.jsx)(CollectionFieldContext.Provider,{value:null,children:e.children}),useCollectionField=()=>(0,import_react2.useContext)(CollectionFieldContext),CollectionContext=(0,import_react2.createContext)(null);CollectionContext.displayName="CollectionContext";const CollectionProvider=e=>{const{name:t,children:o,allowNull:r}=e,i=useCollectionManager(),n=(0,import_react2.useMemo)(()=>i==null?void 0:i.getCollection(t),[i,t]);return!n&&r?(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:e.children}):!n&&!r?(0,import_jsx_runtime.jsx)(CollectionDeletedPlaceholder,{type:"Collection",name:t}):(0,import_jsx_runtime.jsx)(CollectionContext.Provider,{value:n,children:o})},SanitizedCollectionProvider=e=>(0,import_jsx_runtime.jsx)(CollectionFieldContext.Provider,{value:null,children:(0,import_jsx_runtime.jsx)(CollectionProvider,x({},e))});function useCollection(){return(0,import_react2.useContext)(CollectionContext)}const useCollectionFields=e=>{const t=useCollection();return(0,import_react2.useMemo)(()=>t.getFields(e),[t,e])},collectionTransform=(e,t)=>{const o=e,{rawTitle:r,title:i,fields:n=[]}=o,a=Y(o,["rawTitle","title","fields"]);return P(x({},a),{title:r?i:t.i18n.t(i,{ns:"lm-collections"}),rawTitle:r||i,fields:n==null?void 0:n.map(l=>{var c=l,{uiSchema:u}=c,m=Y(c,["uiSchema"]);if(u!=null&&u.title){const d=u.title;u.title=u.rawTitle?d:t.i18n.t(d,{ns:"lm-collections"}),u.rawTitle=u.rawTitle||d}return Array.isArray(u==null?void 0:u.enum)&&(u.enum=u.enum.map(d=>P(x({},d),{value:(d==null?void 0:d.value)===void 0?d:d.value,label:d.rawLabel?d.label:t.i18n.t(d.label,{ns:"lm-collections"}),rawLabel:d.rawLabel||d.label}))),x({uiSchema:u},m)})})};function applyMixins(e,t,o,r){const i=new e(o,r);return t.forEach(n=>{const a=new n(o,r);Object.getOwnPropertyNames(a).forEach(l=>{const c=Object.getOwnPropertyDescriptor(a,l);c?Object.defineProperty(i,l,c):i[l]=a[l]}),Object.getOwnPropertyNames(n.prototype).forEach(l=>{l!=="constructor"&&(i.__proto__[l]=n.prototype[l])})}),i}class CollectionManager{constructor(t,o){A(this,"collectionInstancesMap",{}),A(this,"collectionInstancesArr",[]),this.dataSource=o,this.addCollections(t)}get dataSourceManager(){return this.dataSource.dataSourceManager}get app(){return this.dataSourceManager.app}getCollectionInstance(t){const o=this.dataSource.dataSourceManager.collectionTemplateManager.getCollectionTemplate(t.template),r=(o==null?void 0:o.Collection)||Collection,i=o==null?void 0:o.transform,n=i?i(collectionTransform(t,this.app),this.app):collectionTransform(t,this.dataSource.dataSourceManager.app),a=P(x({},n),{dataSource:this.dataSource.key});return applyMixins(r,this.dataSourceManager.collectionMixins,a,this)}getInstancesMap(t=[]){return t.map(o=>this.getCollectionInstance(o)).reduce((o,r)=>(o[r.name]=r,o),{})}addCollections(t=[]){const o=this.getInstancesMap(t);this.collectionInstancesMap=x(x({},this.collectionInstancesMap),o),this.collectionInstancesArr=Object.values(this.collectionInstancesMap)}setCollections(t){this.collectionInstancesMap=this.getInstancesMap(t),this.collectionInstancesArr=Object.values(this.collectionInstancesMap)}reAddCollections(t=this.collectionInstancesArr){const o=t.map(r=>r.getOptions());this.addCollections(o)}getCollection(t){if(t){if(typeof t=="object")return this.getCollectionInstance(t);if(String(t).split(".").length>1){const o=this.getCollectionField(t);return o?this.getCollection(o.target):void 0}return this.collectionInstancesMap[t]}}getCollections(t){return t?this.collectionInstancesArr.filter(t):this.collectionInstancesArr}getCollectionName(t){const o=this.getCollection(t);return o==null?void 0:o.name}getCollectionField(t){if(!t)return;if(typeof t=="object")return t;if(String(t).split(".").length<2){console.error(`[@nocobase/client]: CollectionManager.getField() path "${t}" is invalid`);return}const[o,...r]=String(t).split("."),i=this.getCollection(o);if(i)return i.getField(r.join("."))}getCollectionFields(t,o){var r;return((r=this.getCollection(t))==null?void 0:r.getFields(o))||[]}getCollectionAllFields(t,o){var r;return((r=this.getCollection(t))==null?void 0:r.getAllFields(o))||[]}getFilterByTK(t,o){if(!t||!o){console.error("@nocobase/client]: CollectionManager.getFilterByTK() collectionOrAssociation or collectionRecordOrAssociationRecord is invalid");return}const r=(a,l)=>{if(Array.isArray(a)){const c={};return a.forEach(u=>{c[u]=l[u]}),import_qs.default.stringify(c)}else return l[a]};if(t instanceof Collection){const a=t.getFilterTargetKey();return r(a,o)}if(t.includes(".")){const a=this.getCollectionField(t);if(!a){console.error(`[@nocobase/client]: CollectionManager.getFilterByTK() field "${t}" is invalid`);return}if(a.targetKey)return o[a.targetKey]}const i=this.getCollection(t);if(!i){console.error(`[@nocobase/client]: CollectionManager.getFilterByTK() collection "${t}" is invalid`);return}const n=i.getFilterTargetKey();return r(n,o)}getSourceKeyByAssociation(t){if(!t)return;const o=this.getCollectionField(t);if(!o)return;if(o.sourceKey)return o.sourceKey;const r=this.getCollection(t.split(".")[0]);if(r)return r.filterTargetKey||r.getPrimaryKey()||"id"}clone(t=[]){const o=new CollectionManager([],this.dataSource);return o.collectionInstancesArr=this.collectionInstancesArr,o.collectionInstancesMap=this.collectionInstancesMap,o.addCollections(t),o}}function getInitializerItemsByFields(e,t,o){var r;const{block:i,isReadPretty:n=({form:g})=>g.readPretty,filter:a=()=>!0,getInitializerItem:l=()=>({}),getSchema:c=()=>({})}=e,{collectionManager:u,collection:m,dataSourceManager:d,actionContext:p}=o,h=(r=p.fieldSchema)==null?void 0:r["x-action"];return m?t.map(g=>{const _=u.getCollection(g.target),f=d.collectionFieldInterfaceManager.getFieldInterface(g.interface);return{collectionField:g,context:P(x({},o),{targetCollection:_,collectionFieldInterface:f})}}).filter(({collectionField:g})=>g.interface).filter(({collectionField:g,context:_})=>a(g,_)).map(({collectionField:g,context:_})=>{var f,v;const S={type:"string",title:((f=g==null?void 0:g.uiSchema)==null?void 0:f.title)||g.name,name:g.name,"x-component":"CollectionField","x-collection-field":`${m.name}.${g.name}`,"x-read-pretty":(v=g==null?void 0:g.uiSchema)==null?void 0:v["x-read-pretty"]},y=c(g,P(x({},_),{defaultSchema:S})),C=x(x({},S),y||{});return{collectionField:g,schema:C,context:P(x({},_),{schema:C})}}).map(({collectionField:g,context:_})=>{var f;const v={type:"item",name:g.name,title:((f=g==null?void 0:g.uiSchema)==null?void 0:f.title)||g.name,Component:"CollectionFieldInitializer",schemaInitialize:S=>{var y,C;(C=(y=_.collectionFieldInterface)==null?void 0:y.schemaInitialize)==null||C.call(y,S,{field:g,block:i,readPretty:n==null?void 0:n(_),action:h,targetCollection:_.targetCollection})},schema:_.schema};return{collectionField:g,context:_,defaultInitializerItem:v}}).map(({collectionField:g,defaultInitializerItem:_,context:f})=>{const v=l(g,P(x({},f),{defaultInitializerItem:_}));return x(x({},_),v||{})}):[]}function useCollectionFieldContext(){const{t:e}=(0,import_react_i18next.useTranslation)(),t=useCollection(),o=useDataSourceManager(),r=useActionContext(),i=useDataSource(),n=(0,import_react.useForm)(),a=(0,import_react.useFieldSchema)(),l=useCollectionManager(),c=useCompile();return{t:e,compile:c,actionContext:r,fieldSchema:a,collection:t,dataSource:i,form:n,collectionManager:l,dataSourceManager:o}}const SelfFields=e=>{const t=useCollectionFieldContext(),{t:o,collection:r}=t,i=r.getFields(),n=getInitializerItemsByFields(e,i,t);return(0,import_jsx_runtime.jsx)(SchemaInitializerItemGroup,{title:o("Display fields"),children:n})},ParentCollectionFields=e=>{const t=useCollectionFieldContext(),{collection:o,t:r,collectionManager:i}=t,n=o.getParentCollectionsName();if(!n.length)return null;const a=n.map(l=>{const c=o.getParentCollectionFields(l);return c.length===0?null:{parentCollection:i.getCollection(l),parentCollectionFields:c}}).filter(Boolean).map(l=>{const{parentCollection:c,parentCollectionFields:u}=l,m=P(x({},t),{collection:c});return{type:"itemGroup",divider:!0,title:r("Parent collection fields")+"("+t.compile(c.title)+")",children:getInitializerItemsByFields(e,u,m)}});return(0,import_jsx_runtime.jsx)(SchemaInitializerChildren,{children:a})},AssociationCollectionFields=e=>{const t=e,{filterAssociationField:o,filterSelfField:r=()=>!0,getSchema:i}=t,n=Y(t,["filterAssociationField","filterSelfField","getSchema"]),{collection:a,t:l,collectionManager:c}=e.context,u=a.getFields(),m=["o2o","oho","obo","m2o"],d=u.filter(h=>m.includes(h.interface)).filter(h=>r(h,e.context));if(!d.length)return null;const p=d.map(h=>{const g=c.getCollection(h.target);if(!g)return null;const _=g==null?void 0:g.getAllFields();return _.length?{associationField:h,associationCollection:g,associationCollectionFields:_}:null}).filter(Boolean).map(({associationField:h,associationCollection:g,associationCollectionFields:_})=>{var f,v;const S=P(x({},e.context),{collection:g}),y=(C,b)=>{const F=i(C,b);return P(x({},F||{}),{"x-read-pretty":!0,name:`${h.name}.${C.name}`,"x-collection-field":`${a.name}.${h.name}.${C.name}`})};return{type:"subMenu",name:(f=h.uiSchema)==null?void 0:f.title,title:(v=h.uiSchema)==null?void 0:v.title,children:getInitializerItemsByFields(P(x({},n),{filter:o,getSchema:y}),_,S)}});return p.length?(0,import_jsx_runtime.jsx)(SchemaInitializerItemGroup,{title:l("Display association fields"),children:p}):null},CollectionFieldsToInitializerItems=e=>{const{selfField:t,parentField:o,associationField:r,block:i}=e,n=useCollectionFieldContext();return n.collection?(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(SelfFields,P(x({block:i},t),{context:P(x({},n),{collection:n.collection})})),o&&(0,import_jsx_runtime.jsx)(ParentCollectionFields,P(x({block:i},o),{context:P(x({},n),{collection:n.collection})})),r&&(0,import_jsx_runtime.jsx)(AssociationCollectionFields,P(x({block:i},r),{context:P(x({},n),{collection:n.collection})}))]}):null},findKanbanFormItem=(e,t,o)=>{const r=findSchema(e,"x-component","Kanban");return findSchema(r,t,o)},CollectionFieldsToFormInitializerItems=e=>{const t=(e==null?void 0:e.block)||"Form",o={"x-toolbar":"FormItemSchemaToolbar","x-settings":"fieldSettings:FormItem","x-decorator":"FormItem"},r={remove:removeGridFormItem};return(0,import_jsx_runtime.jsx)(CollectionFieldsToInitializerItems,{block:t,selfField:{filter:i=>!i.treeChildren,getSchema:(i,{targetCollection:n})=>{var a,l;const c=(n==null?void 0:n.template)==="file",u=n,m=(l=(a=i==null?void 0:i.uiSchema)==null?void 0:a["x-component-props"])==null?void 0:l.fieldNames;return P(x({},o),{"x-component-props":c?{fieldNames:{label:"preview",value:"id"}}:u&&m?{fieldNames:P(x({},m),{label:(n==null?void 0:n.titleField)||m.label})}:{}})},getInitializerItem:()=>P(x({},r),{find:(e==null?void 0:e.block)==="Kanban"?findKanbanFormItem:void 0})},parentField:{getSchema:()=>o,getInitializerItem:()=>r},associationField:{filterSelfField:i=>t!=="Form"?!0:(i==null?void 0:i.interface)==="m2o",filterAssociationField(i){return(i==null?void 0:i.interface)&&!["subTable"].includes(i==null?void 0:i.interface)&&!i.treeChildren},getSchema:()=>o,getInitializerItem:()=>r}})},quickEditField=["attachment","textarea","markdown","json","richText","polygon","circle","point","lineString"],CollectionFieldsToTableInitializerItems=e=>{function t({fieldSchema:o,form:r}){return o["x-component"]==="AssociationField.SubTable"?r.readPretty:!0}return(0,import_jsx_runtime.jsx)(CollectionFieldsToInitializerItems,{block:"Table",selfField:{isReadPretty:t,filter:o=>o.interface!=="subTable"&&!o.treeChildren,getSchema:(o,{targetCollection:r,fieldSchema:i,form:n})=>{var a,l;const c=(r==null?void 0:r.template)==="file",u=((a=o.uiSchema)==null?void 0:a["x-component"])==="Preview",m=i["x-component"]==="AssociationField.SubTable",d=t({fieldSchema:i,form:n});return{"x-component-props":c?{fieldNames:{label:"preview",value:"id"}}:u?{size:"small"}:{},"x-read-pretty":d||((l=o.uiSchema)==null?void 0:l["x-read-pretty"]),"x-decorator":m?quickEditField.includes(o.interface)||c?"QuickEdit":"FormItem":null,"x-decorator-props":{labelStyle:{display:"none"}}}},getInitializerItem:()=>({find:findTableColumn,remove:removeTableColumn})},parentField:{isReadPretty:t,getSchema(o,{targetCollection:r,fieldSchema:i,form:n}){var a;const l=(r==null?void 0:r.template)==="file",c=i["x-component"]==="AssociationField.SubTable",u=t({fieldSchema:i,form:n});return{"x-component-props":l?{fieldNames:{label:"preview",value:"id"}}:{},"x-read-pretty":u||((a=o.uiSchema)==null?void 0:a["x-read-pretty"]),"x-decorator":c?quickEditField.includes(o.interface)||l?"QuickEdit":"FormItem":null,"x-decorator-props":{labelStyle:{display:"none"}}}},getInitializerItem(){return{remove:removeGridFormItem}}},associationField:{filterAssociationField(o){return!["subTable"].includes(o.interface)&&!o.treeChildren},getSchema(){return{}},getInitializerItem(){return{find:findTableColumn,remove:removeTableColumn}}}})},RecordContext_deprecated=(0,import_react2.createContext)({});RecordContext_deprecated.displayName="RecordContext_deprecated";const RecordIndexContext=(0,import_react2.createContext)(null);RecordIndexContext.displayName="RecordIndexContext";const RecordProvider=import_react2.default.memo(e=>{const{record:t,children:o,parent:r,isNew:i}=e,n=useCollection(),a=(0,import_react2.useMemo)(()=>{const l=x({},(0,import_reactive.raw)(t));return l.__parent=r,l.__collectionName=n==null?void 0:n.name,l},[t,r,n==null?void 0:n.name]);return(0,import_jsx_runtime.jsx)(RecordContext_deprecated.Provider,{value:a,children:(0,import_jsx_runtime.jsx)(CollectionRecordProvider,{isNew:i,record:t,parentRecord:r,children:o})})});RecordProvider.displayName="RecordProvider";const RecordSimpleProvider=e=>(0,import_jsx_runtime.jsx)(RecordContext_deprecated.Provider,x({},e)),RecordIndexProvider=e=>{const{index:t,children:o}=e;return(0,import_jsx_runtime.jsx)(RecordIndexContext.Provider,{value:t,children:o})};function useRecord(){return(0,import_react2.useContext)(RecordContext_deprecated)}function useRecordIndex(){return(0,import_react2.useContext)(RecordIndexContext)}const useRecordIsOwn=()=>{var e,t;const o=useRecord(),r=useCurrentUserContext();return o!=null&&o.createdById?(o==null?void 0:o.createdById)===((t=(e=r==null?void 0:r.data)==null?void 0:e.data)==null?void 0:t.id):!1},useCancelAction=()=>{const e=(0,import_react.useForm)(),t=useActionContext();return{run(){return q(this,null,function*(){t.setVisible(!1),e.reset()})}}},useValuesFromRecord$1=e=>{const t=useRecord(),o=useRequest(()=>Promise.resolve({data:(0,import_omit.default)((0,import_cloneDeep.default)(t),["__parent","__collectionName"])}),P(x({},e),{manual:!0})),r=useActionContext();return(0,import_react2.useEffect)(()=>{r.visible&&o.run()},[r.visible]),o},useResetFilterAction=()=>{const{run:e}=useResourceActionContext(),t=(0,import_react.useForm)(),o=useActionContext();return{run(){return q(this,null,function*(){t.reset(),e(),o.setVisible(!1)})}}},useKanbanEvents=()=>{const{resource:e}=useCollection_deprecated();return{onCardDragEnd(t,o,r){return q(this,arguments,function*({columns:i,groupField:n},{fromColumnId:a,fromPosition:l},{toColumnId:c,toPosition:u}){var m,d;const p=i.find(v=>v.id===a),h=i.find(v=>v.id===c),g=(m=p==null?void 0:p.cards)==null?void 0:m[l],_=(d=h==null?void 0:h.cards)==null?void 0:d[u],f={sourceId:g.id,sortField:`${n.name}_sort`};_?f.targetId=_.id:f.targetScope={[n.name]:c},yield e.move(f)})}}},useSortFields=e=>{const{getCollectionFields:t,getInterface:o}=useCollectionManager_deprecated();return t(e).filter(r=>{if(!r.interface)return!1;const i=o(r.interface);return!!(i!=null&&i.sortable)}).map(r=>{var i;return{value:r.name,label:((i=r==null?void 0:r.uiSchema)==null?void 0:i.title)||r.name}})},useChildrenCollections=e=>{const{getChildrenCollections:t}=useCollectionManager_deprecated();return t(e).map(o=>({value:o.name,label:(o==null?void 0:o.title)||o.name}))},useSelfAndChildrenCollections=e=>{const{getChildrenCollections:t,getCollection:o}=useCollectionManager_deprecated(),r=t(e),i=o(e);if(!e)return null;const n=r.map(a=>({value:a.name,label:(a==null?void 0:a.title)||a.name}));return n.unshift({value:i.name,label:(i==null?void 0:i.title)||i.name}),n},useCollectionFilterOptions=(e,t)=>{const{getCollectionFields:o,getInterface:r}=useCollectionManager_deprecated();return(0,import_react2.useMemo)(()=>{const i=o(e,t),n=(l,c)=>{var u,m,d;if(!l.interface)return;const p=r(l.interface);if(!(p!=null&&p.filterable))return;const{nested:h,children:g,operators:_}=p.filterable,f={name:l.name,title:((u=l==null?void 0:l.uiSchema)==null?void 0:u.title)||l.name,label:((m=l==null?void 0:l.uiSchema)==null?void 0:m.title)||l.name,value:l.name,schema:l==null?void 0:l.uiSchema,operators:((d=_==null?void 0:_.filter)==null?void 0:d.call(_,v=>!(v!=null&&v.visible)||v.visible(l)))||[],interface:l.interface};if(!(l.target&&c>2)){if(c>2)return f;if(g!=null&&g.length&&(f.children=g),h){const v=o(l.target,t),S=a(v,c+1).filter(Boolean);f.children=f.children||[],f.children.push(...S)}return f}},a=(l,c)=>{const u=[];return l.forEach(m=>{const d=n(m,c);d&&u.push(d)}),u};return a(i,1)},[import_lodash.default.isString(e)?e:e==null?void 0:e.name,t])},useCollectionFilterOptionsV2=e=>{const{getCollectionFields:t,getInterface:o}=useCollectionManager_deprecated();return{getFields:(0,import_react2.useCallback)(()=>{const r=t(e),i=(a,l)=>{var c,u;if(!a.interface)return;const m=o(a.interface);if(!(m!=null&&m.filterable))return;const{nested:d,children:p,operators:h}=m.filterable,g={name:a.name,title:((c=a==null?void 0:a.uiSchema)==null?void 0:c.title)||a.name,schema:a==null?void 0:a.uiSchema,operators:((u=h==null?void 0:h.filter)==null?void 0:u.call(h,_=>!(_!=null&&_.visible)||_.visible(a)))||[],interface:a.interface};if(!(a.target&&l>2)){if(l>2)return g;if(p!=null&&p.length&&(g.children=p),d){const _=t(a.target),f=n(_,l+1).filter(Boolean);g.children=g.children||[],g.children.push(...f)}return g}},n=(a,l)=>{const c=[];return a.forEach(u=>{const m=i(u,l);m&&c.push(m)}),c};return n(r,1)},[import_lodash.default.isString(e)?e:e==null?void 0:e.name])}},useLinkageCollectionFilterOptions=e=>{const{getCollectionFields:t,getInterface:o}=useCollectionManager_deprecated(),r=t(e),i=(a,l)=>{var c,u;if(!a.interface)return;const m=o(a.interface);if(!(m!=null&&m.filterable))return;const{nested:d,children:p,operators:h}=m.filterable,g={name:a.name,title:((c=a==null?void 0:a.uiSchema)==null?void 0:c.title)||a.name,schema:a==null?void 0:a.uiSchema,operators:((u=h==null?void 0:h.filter)==null?void 0:u.call(h,_=>!(_!=null&&_.visible)||_.visible(a)))||[],interface:a.interface};if(!(a.target&&l>2)){if(l>2)return g;if(p!=null&&p.length&&(g.children=p),d){const _=t(a.target).filter(v=>["hasMany","belongsToMany"].includes(a.type)?!["hasOne","hasMany","belongsTo","belongsToMany"].includes(v.type):!["hasMany","belongsToMany"].includes(v.type)),f=n(_,l+1).filter(Boolean);g.children=g.children||[],g.children.push(...f)}return g}},n=(a,l)=>{const c=[];return a.forEach(u=>{const m=i(u,l);m&&c.push(m)}),c};return n(r,1)},useCollectionFieldsOptions=(e,t=2,o=[])=>{const{getCollectionFields:r,getInterface:i}=useCollectionManager_deprecated(),n=r(e).filter(c=>!o.includes(c.interface)),a=(c,u,m)=>{var d;if(!c.interface)return;const p=i(c.interface);if(!(p!=null&&p.filterable))return;const{nested:h,children:g}=p.filterable,_=m?`${m}.${c.name}`:c.name,f=P(x({},c),{name:c.name,title:((d=c==null?void 0:c.uiSchema)==null?void 0:d.title)||c.name,schema:c==null?void 0:c.uiSchema,key:_});if(!(c.target&&u>t)){if(u>t)return f;if(g!=null&&g.length&&(f.children=g.map(v=>P(x({},v),{key:`${c.name}.${v.name}`}))),h){const v=r(c.target).filter(y=>!o.includes(y.interface)),S=l(v,u+1,c.name).filter(Boolean);f.children=f.children||[],f.children.push(...S)}return f}},l=(c,u,m)=>{const d=[];return c.forEach(p=>{const h=a(p,u,m);h&&d.push(h)}),d};return l(n,1)},useFilterDataSource=e=>{const{name:t}=useCollection_deprecated(),o=useCollectionFilterOptions(t);return useRequest(()=>Promise.resolve({data:o}),e)},useFilterAction=()=>{const{run:e,params:t,defaultRequest:o}=useResourceActionContext(),r=(0,import_react.useForm)(),i=useActionContext(),[n,...a]=t;return{run(){return q(this,null,function*(){var l;const c=(l=o==null?void 0:o.params)==null?void 0:l.filter,u=c?{$and:[c,r.values.filter]}:r.values.filter;e(P(x({},n),{filter:u}),...a),i.setVisible(!1)})}}},useCreateAction=e=>{const t=(0,import_react.useForm)(),o=(0,import_react.useField)(),r=useActionContext(),{refresh:i}=useResourceActionContext(),{resource:n}=useResourceContext();return{run(){return q(this,null,function*(){var a;try{yield t.submit(),o.data=o.data||{},o.data.loading=!0;const l=yield n.create({values:t.values});r.setVisible(!1),e==null||e((a=l==null?void 0:l.data)==null?void 0:a.data),yield t.reset(),o.data.loading=!1,i()}catch{o.data&&(o.data.loading=!1)}})}}},useCreateActionWithoutRefresh=e=>{const t=(0,import_react.useForm)(),{resource:o}=useResourceContext();return{run(){return q(this,null,function*(){var r;yield t.submit();const i=yield o.create({values:t.values});e==null||e((r=i==null?void 0:i.data)==null?void 0:r.data),yield t.reset()})}}},useUpdateViewAction=e=>{const t=(0,import_react.useForm)();useActionContext();const{resource:o,targetKey:r}=useResourceContext(),{[r]:i}=useRecord();return{run(){return q(this,null,function*(){var n;yield t.submit();const a=yield o.update({filterByTk:i,values:t.values});e==null||e(i,(n=a==null?void 0:a.data)==null?void 0:n.data),import_antd.message.success("保存成功")})}}},useMoveAction=()=>{const{resource:e}=useResourceContext(),{refresh:t}=useResourceActionContext();return{move(o,r){return q(this,null,function*(){yield e.move({sourceId:o.id,targetId:r.id}),t()})}}},useUpdateAction=e=>{const t=(0,import_react.useField)(),o=(0,import_react.useForm)(),r=useActionContext(),{refresh:i}=useResourceActionContext(),{resource:n,targetKey:a}=useResourceContext(),{[a]:l}=useRecord();return{run(){return q(this,null,function*(){var c;yield o.submit(),t.data=t.data||{},t.data.loading=!0;try{const u=yield n.update({filterByTk:l,values:o.values});r.setVisible(!1),e==null||e(l,(c=u==null?void 0:u.data)==null?void 0:c.data),yield o.reset(),i()}catch(u){console.log(u)}finally{t.data.loading=!1}})}}},useDestroyAction$1=e=>{const{refresh:t}=useResourceActionContext(),{resource:o,targetKey:r}=useResourceContext(),{[r]:i}=useRecord();return{run(){return q(this,null,function*(){yield o.destroy({filterByTk:i}),e==null||e(i),t()})}}},useBulkDestroyAction$1=e=>{const{state:t,setState:o,refresh:r}=useResourceActionContext(),{resource:i}=useResourceContext(),{t:n}=(0,import_react_i18next.useTranslation)();return{run(){return q(this,null,function*(){var a;if(!((a=t==null?void 0:t.selectedRowKeys)!=null&&a.length))return import_antd.message.error(n("Please select the records you want to delete"));yield i.destroy({filterByTk:(t==null?void 0:t.selectedRowKeys)||[]}),e==null||e(t==null?void 0:t.selectedRowKeys),o==null||o({selectedRowKeys:[]}),r()})}}},useValuesFromRA=e=>{const t=useResourceActionContext();return useRequest(()=>Promise.resolve(t.data),P(x({},e),{refreshDeps:[t.data]}))},useCreateActionAndRefreshCM=()=>{const{run:e}=useCreateAction(),{refreshCM:t}=useCollectionManager_deprecated();return{run(){return q(this,null,function*(){yield e(),yield t()})}}},useUpdateActionAndRefreshCM=()=>{const{run:e}=useUpdateAction(),{refreshCM:t}=useCollectionManager_deprecated();return{run(){return q(this,null,function*(){yield e(),yield t()})}}},useDestroyActionAndRefreshCM$1=()=>{const{run:e}=useDestroyAction$1(),{refreshCM:t}=useCollectionManager_deprecated();return{run(){return q(this,null,function*(){yield e(),yield t()})}}},useDeleteButtonDisabled=e=>{const t=useRecord();return isDeleteButtonDisabled(e||t)},isDeleteButtonDisabled=e=>{const{interface:t,deletable:o=!0}=e||{};return!o||t==="id"},useBulkDestroyActionAndRefreshCM$1=()=>{const{run:e}=useBulkDestroyAction$1(),{refreshCM:t}=useCollectionManager_deprecated();return{run(){return q(this,null,function*(){yield e(),yield t()})}}},useFilterActionProps=()=>{var e,t;const{collection:o}=useResourceContext(),r=useFilterFieldOptions(o.fields),i=useResourceActionContext();return useFilterFieldProps({options:r.filter(n=>["title","name"].includes(n.name)),params:((t=(e=i.state)==null?void 0:e.params)==null?void 0:t[0])||i.params,service:i})},useDialect=()=>{const{data:{database:e}}=useCurrentAppInfo()||{data:{database:{}}};return{isDialect:t=>(e==null?void 0:e.dialect)===t,dialect:e==null?void 0:e.dialect}},supportTypes=["string","bigInt","integer","uuid","uid","nanoid"],SourceForeignKey=(0,import_react.observer)(()=>{const e=useRecord(),{getCollection:t}=useCollectionManager_deprecated(),o=e!=null&&e.collectionName?t(e.collectionName):e,r=(0,import_react.useField)();(0,import_react.useForm)();const{getCollectionFields:i}=useCollectionManager_deprecated();return(0,import_jsx_runtime.jsx)("div",{children:(0,import_jsx_runtime.jsx)(import_antd.Select,{allowClear:!0,placeholder:"留空时,自动生成 FK 字段",disabled:r.disabled,value:r.value,options:i(o.name).filter(n=>n.type).map(n=>{var a;return{label:((a=n==null?void 0:n.uiSchema)==null?void 0:a.title)||n.name,value:n.name}})})})},{displayName:"SourceForeignKey"}),ThroughForeignKey=(0,import_react.observer)(()=>{const e=(0,import_react.useField)(),t=(0,import_react.useForm)(),{getCollectionFields:o}=useCollectionManager_deprecated();return(0,import_jsx_runtime.jsx)("div",{children:(0,import_jsx_runtime.jsx)(import_antd.Select,{allowClear:!0,popupMatchSelectWidth:!1,placeholder:"留空时,自动生成 FK 字段",disabled:e.disabled,value:e.value,options:o(t.values.through).filter(r=>r.type).map(r=>{var i;return{label:((i=r==null?void 0:r.uiSchema)==null?void 0:i.title)||r.name,value:r.name}})})})},{displayName:"ThroughForeignKey"}),TargetForeignKey=(0,import_react.observer)(()=>{const e=(0,import_react.useField)(),t=(0,import_react.useForm)(),{getCollectionFields:o}=useCollectionManager_deprecated();return(0,import_jsx_runtime.jsx)("div",{children:(0,import_jsx_runtime.jsx)(import_antd.Select,{allowClear:!0,popupMatchSelectWidth:!1,placeholder:"留空时,自动生成 FK 字段",disabled:e.disabled,value:e.value,options:o(t.values.target).filter(r=>r.type).map(r=>{var i;return{label:((i=r==null?void 0:r.uiSchema)==null?void 0:i.title)||r.name,value:r.name}})})})},{displayName:"TargetForeignKey"}),SourceCollection=(0,import_react.observer)(()=>{const e=useRecord(),{getCollection:t}=useCollectionManager_deprecated(),o=e!=null&&e.collectionName?t(e.collectionName):e,r=useCompile();return(0,import_jsx_runtime.jsx)("div",{children:(0,import_jsx_runtime.jsx)(import_antd.Select,{disabled:!0,popupMatchSelectWidth:!1,value:o.name,options:[{value:o.name,label:r(o.title)}]})})},{displayName:"SourceCollection"}),SourceKey=(0,import_react.observer)(e=>{var t,o;const{sourceKey:r,collectionName:i,name:n}=useRecord(),{getCollection:a}=useCollectionManager_deprecated(),l=(0,import_react.useField)(),c=useCompile(),u=(t=a(i||n).fields)==null?void 0:t.filter(m=>m.primaryKey||m.unique).map(m=>{var d;return{value:m.name,label:c(((d=m.uiSchema)==null?void 0:d.title)||m.name)}});return(0,import_react2.useEffect)(()=>{var m;l.initialValue=((m=u==null?void 0:u[0])==null?void 0:m.value)||r},[]),(0,import_jsx_runtime.jsx)("div",{children:(0,import_jsx_runtime.jsx)(import_antd.Select,{disabled:r,options:u,defaultValue:r||((o=u==null?void 0:u[0])==null?void 0:o.value),onChange:e==null?void 0:e.onChange,showSearch:!0,filterOption:(m,d)=>d==null?void 0:d.label.toLowerCase().includes(m.toLowerCase())})})},{displayName:"SourceKey"}),TargetKey=(0,import_react.observer)(e=>{const{value:t,disabled:o}=e,{targetKey:r,target:i,type:n}=useRecord(),{getCollection:a}=useCollectionManager_deprecated(),[l,c]=(0,import_react2.useState)([]),[u,m]=(0,import_react2.useState)(t||r),d=(0,import_react.useForm)(),p=useCompile(),h=(0,import_react.useField)();return h.required=!0,(0,import_react2.useEffect)(()=>{var g;i&&c((g=a(i).fields)==null?void 0:g.filter(_=>_.primaryKey||_.unique?!0:n==="hasMany"&&supportTypes.includes(_.type)).map(_=>{var f;return{value:_.name,label:p(((f=_==null?void 0:_.uiSchema)==null?void 0:f.title)||_.title||_.name)}}))},[]),(0,import_jsx_runtime.jsx)("div",{children:(0,import_jsx_runtime.jsx)(import_antd.Select,{showSearch:!0,options:l,onDropdownVisibleChange:g=>q(void 0,null,function*(){var _;const{target:f,type:v}=d.values;f&&g&&c((_=a(f).fields)==null?void 0:_.filter(S=>S.primaryKey||S.unique?!0:v==="hasMany"&&supportTypes.includes(S.type)).map(S=>{var y;return{value:S.name,label:p(((y=S==null?void 0:S.uiSchema)==null?void 0:y.title)||S.title||S.name)}}))}),onChange:g=>{var _;(_=e==null?void 0:e.onChange)==null||_.call(e,g),m(g)},value:u,disabled:o,filterOption:(g,_)=>_==null?void 0:_.label.toLowerCase().includes(g.toLowerCase())})})},{displayName:"TargetKey"}),ForeignKey=(0,import_react.observer)(e=>{const{disabled:t}=e,[o,r]=(0,import_react2.useState)([]),{getCollection:i}=useCollectionManager_deprecated(),n=useRecord(),a=(0,import_react.useField)(),{collectionName:l,target:c,type:u,through:m,name:d,template:p}=n,h=n[a.props.name],g=useCompile(),_=(0,import_react.useForm)(),[f,v]=(0,import_react2.useState)(h||(p==="view"?null:a.initialValue)),[S,y]=(0,import_react2.useState)([]);return(0,import_react2.useEffect)(()=>{var C;const b=["belongsTo"].includes(u)?l:["belongsToMany"].includes(u)?m:c,F=(C=i(b))==null?void 0:C.fields;if(F){const I=F==null?void 0:F.filter(k=>supportTypes.includes(k.type)).map(k=>{var T;return{value:k.name,label:g(((T=k.uiSchema)==null?void 0:T.title)||k.name)}});if(r(I),y(I),h){const k=I.find(T=>T.value===h);v((k==null?void 0:k.label)||h)}}},[u]),(0,import_jsx_runtime.jsx)("div",{children:(0,import_jsx_runtime.jsx)(p==="view"?import_antd.Select:import_antd.AutoComplete,{disabled:t,value:f,options:o,showSearch:!0,onDropdownVisibleChange:C=>q(void 0,null,function*(){var b;const{target:F,type:I,through:k}=_.values,T=["belongsTo"].includes(I)?l||d:["belongsToMany"].includes(I)?k:F;if(T&&C){const N=((b=i(T))==null?void 0:b.fields)||[];r(N==null?void 0:N.filter(B=>supportTypes.includes(B.type)).map(B=>{var z;return{value:B.name,label:g(((z=B.uiSchema)==null?void 0:z.title)||B.name)}}))}}),onChange:(C,b)=>{var F;(F=e==null?void 0:e.onChange)==null||F.call(e,C),v(b.label||C)},onSearch:C=>{if(C){const b=C.toLocaleLowerCase(),F=o.filter(I=>I.label.toLocaleLowerCase().includes(b));r(F)}else r(S)}})})},{displayName:"ForeignKey"}),ThroughCollection=(0,import_react.observer)(e=>{const{disabled:t}=e,o=useCompile(),{getCollections:r}=useCollectionManager_deprecated(),[i,n]=(0,import_react2.useState)([]),a=(0,import_react.useField)(),l=useRecord()[a.props.name],[c,u]=(0,import_react2.useState)(l||a.initialValue),m=()=>r().filter(d=>!(d.autoCreate&&d.isThrough)).map(d=>({label:o(d.title),value:d.name}));return(0,import_react2.useEffect)(()=>{const d=m();if(n(d),l){const p=d.find(h=>h.value===l);u((p==null?void 0:p.label)||l)}},[]),(0,import_jsx_runtime.jsx)("div",{children:(0,import_jsx_runtime.jsx)(import_antd.AutoComplete,{disabled:t,showSearch:!0,popupMatchSelectWidth:!1,value:c,options:i,onSearch:d=>{const p=m();if(d){const h=p.filter(g=>g.label.toLowerCase().includes(d.toLowerCase()));n(h)}else n(p)},onChange:(d,p)=>{var h;(h=e==null?void 0:e.onChange)==null||h.call(e,d),u(p.label||d)}})})},{displayName:"ThroughCollection"}),components$1=Object.freeze(Object.defineProperty({__proto__:null,ForeignKey,SourceCollection,SourceForeignKey,SourceKey,TargetForeignKey,TargetKey,ThroughCollection,ThroughForeignKey},Symbol.toStringTag,{value:"Module"})),getOptions=(e,t)=>Object.keys(t).map(o=>{const r=t[o];return P(x({},r),{key:o,children:Object.keys(e[o]||{}).filter(i=>!e[o][i].hidden).map(i=>{const n=e[o][i];return x({value:i,label:n.title,name:i},e[o][i])}).sort((i,n)=>i.order-n.order)})}).sort((o,r)=>o.order-r.order),useFieldInterfaceOptions=()=>{const e=useDataSourceManager();return(0,import_react2.useMemo)(()=>{const t=e.collectionFieldInterfaceManager.getFieldInterfaces(),o=e.collectionFieldInterfaceManager.getFieldInterfaceGroups(),r=t.reduce((i,n)=>{const a=n.group||"basic";return i[a]||(i[a]=[]),i[a].push(n),i},{});return getOptions(r,o)},[e])},getSchema$8=(e,t,o)=>{if(!e)return;const r=e.getConfigureFormProperties(),i=P(x({name:`f_${(0,import_shared.uid)()}`},(0,import_lodash.cloneDeep)(e.default)),{interface:e.name});return i.reverseField&&(i.reverseField.name=`f_${(0,import_shared.uid)()}`),{type:"object",properties:{[(0,import_shared.uid)()]:{type:"void","x-component":"Action.Drawer","x-component-props":{getContainer:"{{ getContainer }}"},"x-decorator":"Form","x-decorator-props":{useValues(n){return useRequest(()=>Promise.resolve({data:i}),n)}},title:`${o(t.title)} - ${o('{{ t("Add field") }}')}`,properties:P(x({summary:{type:"void","x-component":"FieldSummary","x-component-props":{schemaKey:e.name}}},r),{description:{type:"string",title:'{{t("Description")}}',"x-decorator":"FormItem","x-component":"Input.TextArea"},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{action1:{title:'{{ t("Cancel") }}',"x-component":"Action","x-component-props":{useAction:"{{ useCancelAction }}"}},action2:{title:'{{ t("Submit") }}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ useCreateCollectionField }}"}}}}})}}}},useCollectionFieldFormValues=()=>{const e=(0,import_react.useForm)();return{getValues(){const t=(0,import_lodash.cloneDeep)(e.values);return t.autoCreateReverseField||delete t.reverseField,delete t.autoCreateReverseField,t}}},useCreateCollectionField=()=>{const e=(0,import_react.useForm)(),{refreshCM:t}=useCollectionManager_deprecated(),o=useActionContext(),{refresh:r}=useResourceActionContext(),{resource:i}=useResourceContext(),n=(0,import_react.useField)();return{run(){return q(this,null,function*(){yield e.submit(),n.data=n.data||{},n.data.loading=!0;const a=(0,import_lodash.cloneDeep)(e.values);a.autoCreateReverseField||delete a.reverseField,delete a.autoCreateReverseField;try{yield i.create({values:a}),o.setVisible(!1),yield e.reset(),n.data.loading=!1,r(),yield t()}catch{n.data.loading=!1}})}}},AddCollectionField=e=>{const t=useRecord();return(0,import_jsx_runtime.jsx)(AddFieldAction,x({item:t},e))},AddFieldAction=e=>{var t,o;const{scope:r,getContainer:i,item:n,children:a,trigger:l,align:c,database:u}=e,{getInterface:m,getTemplate:d,collections:p,getCollection:h}=useCollectionManager_deprecated(),[g,_]=(0,import_react2.useState)(!1),[f,v]=(0,import_react2.useState)(),[S,y]=(0,import_react2.useState)({}),C=useCompile(),{t:b}=(0,import_react_i18next.useTranslation)(),{isDialect:F}=useDialect(),I=useFieldInterfaceOptions(),k=((o=(t=h(n.name))==null?void 0:t.options)==null?void 0:o.fields)||n.fields||[],T=(0,import_react2.useMemo)(()=>p.map(R=>({label:C(R.title),value:R.name})),[]),N=(0,import_react2.useCallback)(()=>{const{availableFieldInterfaces:R}=d(n.template)||{},{exclude:O,include:M}=R||{},j=[];return I.forEach(w=>{var $;if(w.key==="systemInfo")j.push(P(x({},w),{children:w.children.filter(L=>L.hidden?!1:L.value==="tableoid"?M!=null&&M.length?M.includes(L.value):(u==null?void 0:u.dialect)==="postgres":typeof n[L.value]=="boolean"?n[L.value]:!0)}));else{let L=[];M!=null&&M.length?M.forEach(E=>{var U;const V=(U=w==null?void 0:w.children)==null?void 0:U.find(G=>[E,E.interface].includes(G.name));V&&L.push(P(x({},V),{targetScope:E==null?void 0:E.targetScope}))}):O!=null&&O.length?L=($=w==null?void 0:w.children)==null?void 0:$.filter(E=>!O.includes(E.name)):L=w==null?void 0:w.children,L!=null&&L.length&&j.push(P(x({},w),{children:L}))}}),j},[d,n]),B=(0,import_react2.useMemo)(()=>N().map(R=>{var O;return((O=R==null?void 0:R.children)==null?void 0:O.length)===0?null:n.template==="view"?{type:"group",label:C(R.label),title:C(R.label),key:R.label,children:R.children.filter(M=>["m2o"].includes(M.name)).map(M=>({label:C(M.title),title:C(M.title),key:M.name,dataTargetScope:M.targetScope}))}:{type:"group",label:C(R.label),title:C(R.label),key:R.label,children:R==null?void 0:R.children.filter(M=>!["o2o","subTable","linkTo"].includes(M.name)).map(M=>({label:C(M.title),title:C(M.title),key:M.name,dataTargetScope:M.targetScope}))}}).filter(R=>{var O;return(O=R==null?void 0:R.children)==null?void 0:O.length}),[N]),z=(0,import_react2.useMemo)(()=>({style:{maxHeight:"60vh",overflow:"auto"},onClick:R=>{const O=R.item.props["data-targetScope"];O&&v(O);const M=getSchema$8(m(R.key),n,C);M&&(y(M),_(!0))},items:B}),[m,B,n]),D=(0,import_react2.useMemo)(()=>k.filter(R=>["string","bigInt","integer"].includes(R.type)).map(R=>{var O;return{value:R.name,label:C((O=R.uiSchema)==null?void 0:O.title)}}),[k==null?void 0:k.length]);return n.template!=="sql"&&(0,import_jsx_runtime.jsx)(RecordProvider,{record:n,children:(0,import_jsx_runtime.jsxs)(ActionContextProvider,{value:{visible:g,setVisible:_},children:[(0,import_jsx_runtime.jsx)(import_antd.Dropdown,{getPopupContainer:i,trigger:l,align:c,menu:z,children:a||(0,import_jsx_runtime.jsx)(import_antd.Button,{icon:(0,import_jsx_runtime.jsx)(import_icons.PlusOutlined,{}),type:"primary",children:b("Add field")})}),(0,import_jsx_runtime.jsx)(SchemaComponent,{schema:S,distributed:!1,components:P(x({},components$1),{ArrayTable:import_antd_v5.ArrayTable}),scope:x({getContainer:i,useCancelAction,createOnly:!0,isOverride:!1,override:!1,useCreateCollectionField,record:n,showReverseFieldConfig:!0,targetScope:f,collections:T,isDialect:F,disabledJSONB:!1,scopeKeyOptions:D,createMainOnly:!0,editMainOnly:!0},r)})]})})},getSchema$7=(e,t,o,r,i)=>{var n;if(!e)return;const a=e.getConfigureFormProperties();return a!=null&&a.name&&(a.name["x-disabled"]=!0),{type:"object",properties:{[(0,import_shared.uid)()]:{type:"void","x-component":"Action.Drawer","x-component-props":{getContainer:"{{ getContainer }}"},"x-decorator":"Form","x-decorator-props":{useValues(l){return useRequest(()=>Promise.resolve({data:(0,import_cloneDeep.default)((0,import_omit.default)(t,["uiSchema.rawTitle"]))}),l)}},title:`${r((n=o.__parent)==null?void 0:n.title)} - ${r('{{ t("Edit field") }}')}`,properties:P(x({summary:{type:"void","x-component":"FieldSummary","x-component-props":{schemaKey:e.name}}},a),{description:{type:"string",title:'{{t("Description")}}',"x-decorator":"FormItem","x-component":"Input.TextArea"},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{action1:{title:'{{ t("Cancel") }}',"x-component":"Action","x-component-props":{useAction:"{{ useCancelAction }}"}},action2:{title:'{{ t("Submit") }}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ useUpdateCollectionField }}"}}}}})}}}},useUpdateCollectionField$1=()=>{const e=(0,import_react.useForm)(),{refreshCM:t}=useCollectionManager_deprecated(),o=useActionContext(),{refresh:r}=useResourceActionContext(),{resource:i,targetKey:n}=useResourceContext(),{[n]:a}=useRecord();return{run(){return q(this,null,function*(){yield e.submit();const l=(0,import_cloneDeep.default)(e.values);l.autoCreateReverseField||delete l.reverseField,delete l.autoCreateReverseField,yield i.update({filterByTk:a,values:l}),o.setVisible(!1),yield e.reset(),r(),yield t()})}}},EditCollectionField=e=>{const t=useRecord(),o=useCollectionParentRecordData();return(0,import_jsx_runtime.jsx)(EditFieldAction,x({item:t,parentItem:o},e))},EditFieldAction=e=>{const t=e,{scope:o,getContainer:r,item:i,parentItem:n,children:a}=t,l=Y(t,["scope","getContainer","item","parentItem","children"]),{getInterface:c,collections:u,getCollection:m}=useCollectionManager_deprecated(),[d,p]=(0,import_react2.useState)(!1),[h,g]=(0,import_react2.useState)({}),_=useAPIClient(),{t:f}=(0,import_react_i18next.useTranslation)(),v=useCompile(),[S,y]=(0,import_react2.useState)({}),{isDialect:C}=useDialect(),b=(0,import_react2.useMemo)(()=>{var I;return(i==null?void 0:i.fields)||((I=m(i.collectionName))==null?void 0:I.options.fields.filter(k=>["string","bigInt","integer"].includes(k.type)).map(k=>{var T;return{value:k.name,label:v((T=k.uiSchema)==null?void 0:T.title)}}))},[i.name]),F=(0,import_react2.useMemo)(()=>u.map(I=>({label:v(I.title),value:I.name})),[]);return(0,import_jsx_runtime.jsx)(RecordProvider,{record:i,parent:n,children:(0,import_jsx_runtime.jsxs)(ActionContextProvider,{value:{visible:d,setVisible:p},children:[(0,import_jsx_runtime.jsx)("a",P(x({},l),{onClick:()=>q(void 0,null,function*(){var I,k;const{data:T}=yield _.resource("collections.fields",i.collectionName).get({filterByTk:i.name,appends:["reverseField"]});y(T==null?void 0:T.data);const N=c(i.interface),B=(0,import_cloneDeep.default)(T==null?void 0:T.data)||{};B!=null&&B.reverseField||(B.autoCreateReverseField=!1,B.reverseField=(I=N==null?void 0:N.default)==null?void 0:I.reverseField,(0,import_set.default)(B.reverseField,"name",`f_${(0,import_shared.uid)()}`),(0,import_set.default)(B.reverseField,"uiSchema.title",(k=i.__parent)==null?void 0:k.title));const z=getSchema$7(N,B,i,v);g(z),p(!0)}),children:a||f("Edit")})),(0,import_jsx_runtime.jsx)(SchemaComponent,{schema:h,distributed:!1,components:P(x({},components$1),{ArrayTable:import_antd_v5.ArrayTable}),scope:x({getContainer:r,useUpdateCollectionField:useUpdateCollectionField$1,useCancelAction,showReverseFieldConfig:!(S!=null&&S.reverseField),collections:F,isDialect:C,disabledJSONB:!0,scopeKeyOptions:b,createMainOnly:!1},o)})]})})},getSchema$6=(e,t,o,r)=>{var i;if(!e)return;const n=(0,import_cloneDeep.default)(e.properties);return n.name["x-disabled"]=!0,e.hasDefaultValue===!0&&(n.defaultValue=(0,import_cloneDeep.default)(e.default.uiSchema),n.defaultValue.title=o('{{ t("Default value") }}'),n.defaultValue["x-decorator"]="FormItem"),{type:"object",properties:{[(0,import_shared.uid)()]:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{useValues(a){return useRequest(()=>Promise.resolve({data:(0,import_cloneDeep.default)(e.default)}),a)}},title:`${o((i=t.__parent)==null?void 0:i.title)} - ${o('{{ t("Override field") }}')}`,properties:P(x({summary:{type:"void","x-component":"FieldSummary","x-component-props":{schemaKey:e.name}}},n),{description:{type:"string",title:'{{t("Description")}}',"x-decorator":"FormItem","x-component":"Input.TextArea"},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{action1:{title:'{{ t("Cancel") }}',"x-component":"Action","x-component-props":{useAction:"{{ useCancelAction }}"}},action2:{title:'{{ t("Submit") }}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ useOverridingCollectionField }}"}}}}})}}}},OverridingCollectionField=e=>{const t=useRecord(),o=useCollectionParentRecordData();return(0,import_jsx_runtime.jsx)(OverridingFieldAction,x({item:t,parentItem:o},e))},getIsOverriding=(e,t,o)=>t.find(r=>r.name===o.name).collectionName===e,OverridingFieldAction=e=>{const{scope:t,getContainer:o,item:r,parentItem:i,children:n,currentCollection:a}=e,{target:l,through:c}=r,{getInterface:u,getCollection:m,getCurrentCollectionFields:d,getChildrenCollections:p,collections:h}=useCollectionManager_deprecated(),[g,_]=(0,import_react2.useState)(!1),[f,v]=(0,import_react2.useState)({}),S=useAPIClient(),{t:y}=(0,import_react_i18next.useTranslation)(),C=useCompile(),b=D=>{var R;return D&&((R=p(D))==null?void 0:R.map(O=>O.name).concat([D]))},[F,I]=(0,import_react2.useState)({}),k=d(a),T=getIsOverriding(a,k,r),N=(0,import_react2.useMemo)(()=>h.map(D=>({label:C(D.title),value:D.name})),[]),B=()=>{const D=(0,import_react.useForm)(),{refresh:R}=useResourceActionContext(),{refreshCM:O}=useCollectionManager_deprecated(),M=useActionContext(),{resource:j}=useResourceContext();return{run(){return q(this,null,function*(){yield D.submit();const w=(0,import_cloneDeep.default)(D.values),$=(0,import_lodash.omit)(w,["key","uiSchemaUid","collectionName","autoCreateReverseField","uiSchema.x-uid","reverseField","reverseKey","parentKey"]);yield j.create({values:$}),yield D.reset(),yield O(),yield R(),M.setVisible(!1)})}}},z=(0,import_react2.useMemo)(()=>{var D;return(r==null?void 0:r.fields)||((D=m(r.collectionName))==null?void 0:D.options.fields.filter(R=>["string","bigInt","integer"].includes(R.type)).map(R=>{var O;return{value:R.name,label:C((O=R.uiSchema)==null?void 0:O.title)}}))},[r.name]);return(0,import_jsx_runtime.jsx)(RecordProvider,{record:P(x({},r),{collectionName:i.name}),parent:i,children:(0,import_jsx_runtime.jsxs)(ActionContextProvider,{value:{visible:g,setVisible:_},children:[(0,import_jsx_runtime.jsx)("a",{disabled:T,onClick:()=>q(void 0,null,function*(){var D;if(!T){const{data:R}=yield S.resource("collections.fields",r.collectionName).get({filterByTk:r.name,appends:["reverseField"]});I(R==null?void 0:R.data);const O=u(r.interface),M=(0,import_cloneDeep.default)(R==null?void 0:R.data)||{};M!=null&&M.reverseField||(M.autoCreateReverseField=!1,M.reverseField=(D=O.default)==null?void 0:D.reverseField,(0,import_lodash.set)(M.reverseField,"name",`f_${(0,import_shared.uid)()}`),(0,import_lodash.set)(M.reverseField,"uiSchema.title",r.__parent.title));const j=getSchema$6(P(x({},O),{default:M}),r,C);v(j),_(!0)}}),children:n||y("Override")}),(0,import_jsx_runtime.jsx)(SchemaComponent,{schema:f,components:P(x({},components$1),{ArrayTable:import_antd_v5.ArrayTable}),scope:x({getContainer:o,useOverridingCollectionField:B,useCancelAction,showReverseFieldConfig:!(F!=null&&F.reverseField),createOnly:!0,override:!0,isOverride:!0,targetScope:{target:b(l),through:b(c)},collections:N,scopeKeyOptions:z},t)})]})})},getSchema$5=(e,t,o,r)=>{var i;if(!e)return;const n=(0,import_cloneDeep.default)(e.properties);return n.name["x-disabled"]=!0,e.hasDefaultValue===!0&&(n.defaultValue=(0,import_cloneDeep.default)(e.default.uiSchema),n.defaultValue.title=o('{{ t("Default value") }}'),n.defaultValue["x-decorator"]="FormItem"),{type:"object",properties:{[(0,import_shared.uid)()]:{type:"void","x-component":"Action.Drawer","x-component-props":{getContainer:"{{ getContainer }}"},"x-decorator":"Form","x-decorator-props":{useValues(a){return useRequest(()=>Promise.resolve({data:(0,import_cloneDeep.default)(e.default)}),a)}},title:`${o((i=t.__parent)==null?void 0:i.title)} - ${o('{{ t("View") }}')}`,properties:P(x({summary:{type:"void","x-component":"FieldSummary","x-component-props":{schemaKey:e.name}}},n),{description:{type:"string",title:'{{t("Description")}}',"x-decorator":"FormItem","x-component":"Input.TextArea"}})}}}},ViewCollectionField=e=>{const t=useRecord(),o=useCollectionParentRecordData();return(0,import_jsx_runtime.jsx)(ViewFieldAction,x({item:t,parentItem:o},e))},ViewFieldAction=e=>{const{scope:t,getContainer:o,item:r,parentItem:i,children:n}=e,{getInterface:a,collections:l}=useCollectionManager_deprecated(),[c,u]=(0,import_react2.useState)(!1),[m,d]=(0,import_react2.useState)({}),p=useAPIClient(),{t:h}=(0,import_react_i18next.useTranslation)(),g=useCompile(),[_,f]=(0,import_react2.useState)({}),v=(0,import_react2.useMemo)(()=>l.map(S=>({label:g(S.title),value:S.name})),[]);return(0,import_jsx_runtime.jsx)(RecordProvider,{record:r,parent:i,children:(0,import_jsx_runtime.jsxs)(ActionContextProvider,{value:{visible:c,setVisible:u},children:[(0,import_jsx_runtime.jsx)("a",{onClick:()=>q(void 0,null,function*(){var S;const{data:y}=yield p.resource("collections.fields",r.collectionName).get({filterByTk:r.name,appends:["reverseField"]});f(y==null?void 0:y.data);const C=a(r.interface),b=(0,import_cloneDeep.default)(y==null?void 0:y.data)||{};b!=null&&b.reverseField||(b.autoCreateReverseField=!1,b.reverseField=(S=C.default)==null?void 0:S.reverseField,(0,import_set.default)(b.reverseField,"name",`f_${(0,import_shared.uid)()}`),(0,import_set.default)(b.reverseField,"uiSchema.title",r.__parent.title));const F=getSchema$5(P(x({},C),{default:b}),r,g);d(F),u(!0)}),children:n||h("View")}),(0,import_jsx_runtime.jsx)(SchemaComponent,{schema:m,components:P(x({},components$1),{ArrayTable:import_antd_v5.ArrayTable}),scope:x({getContainer:o,showReverseFieldConfig:!(_!=null&&_.reverseField),createOnly:!1,collections:v},t)})]})})},Summary=(0,import_react.observer)(e=>{const{schema:t,label:o}=e,r=useCompile(),i=(0,import_antd_style.useAntdToken)(),n=(0,import_react2.useMemo)(()=>({container:{backgroundColor:i.colorFillAlter,marginBottom:i.marginLG,padding:i.paddingSM+i.paddingXXS},title:{color:i.colorText},description:{marginTop:i.marginXS,color:i.colorTextDescription},tag:{background:"none"}}),[i.colorFillAlter,i.colorText,i.colorTextDescription,i.marginLG,i.marginXS,i.paddingSM,i.paddingXXS]);return t?(0,import_jsx_runtime.jsxs)("div",{style:n.container,children:[(0,import_jsx_runtime.jsxs)("div",{style:n.title,children:[o,": ",(0,import_jsx_runtime.jsx)(import_antd.Tag,{style:n.tag,children:r(t.title)})]}),t.description?(0,import_jsx_runtime.jsx)("div",{style:n.description,children:r(t.description)}):null]}):null},{displayName:"Summary"}),TemplateSummary=e=>{const{t}=(0,import_react_i18next.useTranslation)(),{getTemplate:o}=useCollectionManager_deprecated(),r=(0,import_react2.useMemo)(()=>o(e.schemaKey),[o,e.schemaKey]);return(0,import_jsx_runtime.jsx)(Summary,{label:t("Collection template"),schema:r})};TemplateSummary.displayName="TemplateSummary";const getSchema$4=(e,t,o)=>{if(!e)return;const r=(0,import_lodash.cloneDeep)(e.configurableProperties);e.hasDefaultValue===!0&&(r.defaultValue=(0,import_lodash.cloneDeep)(e.default.uiSchema),r.defaultValue.title=o('{{ t("Default value") }}'),r.defaultValue["x-decorator"]="FormItem");const i=x({name:`t_${(0,import_shared.uid)()}`,template:e.name,view:e.name==="view",category:t},(0,import_lodash.cloneDeep)(e.default));return i.reverseField&&(i.reverseField.name=`f_${(0,import_shared.uid)()}`),{type:"object",properties:{[(0,import_shared.uid)()]:{type:"void","x-component":"Action.Drawer","x-component-props":{getContainer:"{{ getContainer }}"},"x-decorator":"Form","x-decorator-props":{useValues(n){return useRequest(()=>Promise.resolve({data:i}),n)}},title:'{{ t("Create collection") }}',properties:P(x({summary:{type:"void","x-component":"TemplateSummay","x-component-props":{schemaKey:e.name}}},r),{footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{action1:{title:'{{ t("Cancel") }}',"x-component":"Action","x-component-props":{useAction:"{{ useCancelAction }}"}},action2:{title:'{{ t("Submit") }}',"x-component":"Action","x-component-props":{type:"primary",useAction:()=>useCreateCollection(e)}}}}})}}}},useCreateCollection=e=>{const t=(0,import_react.useForm)(),{refreshCM:o}=useCollectionManager_deprecated(),r=useActionContext(),{refresh:i}=useResourceActionContext(),{resource:n}=useResourceContext(),a=(0,import_react.useField)();return{run(){return q(this,null,function*(){var l;a.data=a.data||{},a.data.loading=!0;try{yield t.submit();const c=(0,import_lodash.cloneDeep)(t.values);(l=e==null?void 0:e.events)!=null&&l.beforeSubmit&&e.events.beforeSubmit(c),c.autoCreateReverseField||delete c.reverseField,delete c.autoCreateReverseField,yield n.create({values:x({logging:!0},c)}),r.setVisible(!1),yield t.reset(),a.data.loading=!1,i(),yield o()}catch{a.data.loading=!1}})}}},AddCollection=e=>{const t=useRecord();return(0,import_jsx_runtime.jsx)(AddCollectionAction,x({item:t},e))},AddCollectionAction=e=>{const{scope:t,getContainer:o,item:r,children:i,trigger:n,align:a}=e,{getTemplate:l,templates:c}=useCollectionManager_deprecated(),[u,m]=(0,import_react2.useState)(!1),[d,p]=(0,import_react2.useState)({}),[h,g]=(0,import_react2.useState)(null),_=useCompile(),{t:f}=(0,import_react_i18next.useTranslation)(),v=(0,import_react2.useMemo)(()=>{const C=[];return c.forEach(b=>{b.divider&&C.push({type:"divider"}),C.push({label:_(b.title),key:b.name})}),C},[c]),{state:{category:S}}=useResourceActionContext(),y=(0,import_react2.useMemo)(()=>({style:{maxHeight:"60vh",overflow:"auto"},onClick:C=>{const b=getSchema$4(l(C.key),S,_);g(l(C.key)),p(b),m(!0)},items:v}),[S,v]);return(0,import_jsx_runtime.jsx)(RecordProvider,{record:r,children:(0,import_jsx_runtime.jsxs)(ActionContextProvider,{value:{visible:u,setVisible:m},children:[(0,import_jsx_runtime.jsx)(import_antd.Dropdown,{getPopupContainer:o,trigger:n,align:a,menu:y,children:i||(0,import_jsx_runtime.jsxs)(import_antd.Button,{icon:(0,import_jsx_runtime.jsx)(import_icons.PlusOutlined,{}),type:"primary",children:[f("Create collection")," ",(0,import_jsx_runtime.jsx)(import_icons.DownOutlined,{})]})}),(0,import_jsx_runtime.jsx)(SchemaComponent,{schema:d,components:P(x({},components$1),{ArrayTable:import_antd_v5.ArrayTable,TemplateSummay:TemplateSummary}),scope:x({getContainer:o,useCancelAction,createOnly:!0,useCreateCollection,record:r,showReverseFieldConfig:!0,presetFieldsDisabled:h==null?void 0:h.presetFieldsDisabled,presetFieldsDisabledIncludes:h==null?void 0:h.presetFieldsDisabledIncludes},t)})]})})},getSchema$3=(e,t,o,r)=>{if(!e)return;const i=(0,import_cloneDeep.default)(e.configurableProperties)||{title:{"x-component":"CollectionField","x-decorator":"FormItem"},name:{"x-component":"CollectionField","x-decorator":"FormItem"}};return e.hasDefaultValue===!0&&(i.defaultValue=(0,import_cloneDeep.default)(e.default.uiSchema),i.defaultValue.title=o('{{ t("Default value") }}'),i.defaultValue["x-decorator"]="FormItem"),{type:"object",properties:{[(0,import_shared.uid)()]:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{useValues:"{{ useValuesFromRecord }}"},title:'{{ t("Edit collection") }}',properties:P(x({},i),{filterTargetKey:{title:'{{ t("Record unique key")}}',type:"single",description:'{{t( "If a collection lacks a primary key, you must configure a unique record key to locate row records within a block, failure to configure this will prevent the creation of data blocks for the collection.")}}',"x-decorator":"FormItem","x-component":"Select","x-component-props":{multiple:!0},"x-reactions":["{{useAsyncDataSource(loadFilterTargetKeys)}}"]},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{action1:{title:'{{ t("Cancel") }}',"x-component":"Action","x-component-props":{useAction:"{{ useCancelAction }}"}},action2:{title:'{{ t("Submit") }}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ useUpdateCollectionActionAndRefreshCM }}"}}}}})}}}},useValuesFromRecord=e=>{const t=useRecord(),o=useRequest(()=>Promise.resolve({data:P(x({},(0,import_omit.default)((0,import_cloneDeep.default)(t),["__parent","__collectionName"])),{category:t==null?void 0:t.category.map(i=>i.id)})}),P(x({},e),{manual:!0})),r=useActionContext();return(0,import_react2.useEffect)(()=>{r.visible&&o.run()},[r.visible]),o},useUpdateCollectionActionAndRefreshCM=e=>{const{refreshCM:t}=useCollectionManager_deprecated(),o=(0,import_react.useForm)(),r=useActionContext(),{refresh:i}=useResourceActionContext(),{resource:n,targetKey:a}=useResourceContext(),{[a]:l,template:c}=useRecord(),u=useAPIClient(),m=c==="sql"?u.resource("sqlCollection"):n;return{run(){return q(this,null,function*(){yield o.submit(),yield m.update({filterByTk:l,values:c==="sql"?o.values:(0,import_omit.default)(o.values,["fields"])}),r.setVisible(!1),yield o.reset(),i(),yield t()})}}},EditCollection=e=>{const t=useRecord();return(0,import_jsx_runtime.jsx)(EditCollectionAction,x({item:t},e))},EditCollectionAction=e=>{const t=e,{scope:o,getContainer:r,item:i,children:n}=t,a=Y(t,["scope","getContainer","item","children"]),{getTemplate:l}=useCollectionManager_deprecated(),[c,u]=(0,import_react2.useState)(!1),[m,d]=(0,import_react2.useState)({}),{t:p}=(0,import_react_i18next.useTranslation)(),h=useCompile();return(0,import_jsx_runtime.jsx)(RecordProvider,{record:i,children:(0,import_jsx_runtime.jsxs)(ActionContextProvider,{value:{visible:c,setVisible:u},children:[(0,import_jsx_runtime.jsx)("a",P(x({},a),{onClick:()=>q(void 0,null,function*(){const g=l(i.template),_=getSchema$3(x({},g),i,h);d(_),u(!0)}),children:n||p("Edit")})),(0,import_jsx_runtime.jsx)(SchemaComponent,{schema:m,components:P(x({},components$1),{ArrayTable:import_antd_v5.ArrayTable}),scope:x({getContainer:r,useValuesFromRecord,useUpdateCollectionActionAndRefreshCM,useCancelAction,createOnly:!1},o)})]})})},UnSupportFields=({dataSource:e})=>{const{t}=(0,import_react_i18next.useTranslation)(),o=[{title:t("Field name"),dataIndex:"name",key:"name"},{title:t("Field database type"),dataIndex:"rawType",key:"rawType"}];return(e==null?void 0:e.length)>0&&(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(import_antd.Divider,{plain:!0,orientation:"left",orientationMargin:"0",children:(0,import_jsx_runtime.jsx)("h3",{children:t("Unknown field type")})}),(0,import_jsx_runtime.jsx)("div",{style:{marginBottom:"15px"},children:t("The following field types are not compatible and do not support output and display")}),(0,import_jsx_runtime.jsx)(import_antd.Table,{columns:o,dataSource:e,pagination:!1})]})},getInterfaceOptions=(e,t)=>{const o=[];return e.forEach(r=>{const i=r.children.filter(n=>{var a;return(a=n==null?void 0:n.availableTypes)==null?void 0:a.includes(t)});o.push({label:r.label,key:r.key,children:i})}),o.filter(r=>r.children.length>0)},PreviewCom=e=>{const{databaseView:t,viewName:o,sources:r,schema:i}=e,{data:n}=(0,import_react2.useContext)(ResourceActionContext),a=useAPIClient(),{t:l}=(0,import_react_i18next.useTranslation)(),[c,u]=(0,import_react2.useState)(!1),[m,d]=(0,import_react2.useState)([]),[p,h]=(0,import_react2.useState)([]),[g,_]=(0,import_react2.useState)(r),[f,v]=(0,import_react2.useState)([]),S=(0,import_react.useField)(),y=(0,import_react.useForm)(),{getCollection:C,getInterface:b,getCollectionFields:F,getInheritCollections:I,getParentCollectionFields:k}=useCollectionManager_deprecated(),T=useCompile(),N=useFieldInterfaceOptions().filter(D=>!["relation","systemInfo"].includes(D.key));(0,import_react2.useEffect)(()=>{const D=[];g.forEach(R=>{var O;const M=C(R),j=I(R).map($=>{const L=k($,R);return{type:"group",key:$,label:l("Parent collection fields")+l(`(${C($).title})`),children:L.filter(E=>!["hasOne","hasMany","belongsToMany"].includes(E==null?void 0:E.type)).map(E=>{var U;return{value:E.name,label:l((U=E.uiSchema)==null?void 0:U.title)}})}}),w=(O=M.fields.filter($=>!["obo","oho","m2m","o2m"].includes($==null?void 0:$.interface)))==null?void 0:O.map($=>{var L;return{value:$.name,key:$.name,label:l(((L=$.uiSchema)==null?void 0:L.title)||$.name)}}).concat(j);D.push({value:R,label:l(M.title||M.name),children:w})}),h(D)},[g,t]),(0,import_react2.useEffect)(()=>{t&&(u(!0),a.resource("dbViews").get({filterByTk:o,schema:i}).then(({data:D})=>{var R,O;if(D){u(!1),d([]);const M=(O=Object.values((R=D==null?void 0:D.data)==null?void 0:R.fields))==null?void 0:O.map(j=>{var w,$;if(j.source){const L=(n==null?void 0:n.data.find(E=>E.name===j.name))||j;return P(x({},j),{uiSchema:P(x({},(0,import_lodash.omit)(L.uiSchema,"rawTitle")),{title:((w=L.uiSchema)==null?void 0:w.title)||L.name})})}else{const L=(n==null?void 0:n.data.find(E=>E.name===j.name))||j;return P(x({},L),{uiSchema:P(x({},(0,import_lodash.omit)(L.uiSchema,"rawTitle")),{title:(($=L.uiSchema)==null?void 0:$.title)||L.name})})}});S.value=M,setTimeout(()=>{var j,w,$;d(M),y.setValuesIn("sources",(j=D.data)==null?void 0:j.sources),_((w=D.data)==null?void 0:w.sources),v(($=D==null?void 0:D.data)==null?void 0:$.unsupportedFields)})}}).catch)},[t]);const B=(D,R)=>{m.splice(R,1,D),d(m),S.value=m.map(O=>{var M,j,w;const $=typeof O.source=="string"?O.source:(w=(j=(M=O.source)==null?void 0:M.filter)==null?void 0:j.call(M,Boolean))==null?void 0:w.join(".");return P(x({},O),{source:$})})},z=[{title:l("Field name"),dataIndex:"name",key:"name",width:130},{title:l("Field source"),dataIndex:"source",key:"source",width:200,render:(D,R,O)=>(0,import_jsx_runtime.jsx)(import_antd.Cascader,{defaultValue:typeof D=="string"?D==null?void 0:D.split("."):D,allowClear:!0,style:{width:"100%"},options:T(p),onChange:(M,j)=>{var w;const $=(w=F(M==null?void 0:M[0]))==null?void 0:w.find(L=>L.name===(0,import_lodash.last)(M));B(P(x({},R),{source:M,uiSchema:$==null?void 0:$.uiSchema}),O)},placeholder:l("Select field source")})},{title:l("Field type"),dataIndex:"type",width:140,key:"type",render:(D,R,O)=>{const M=m[O];return M!=null&&M.source||!(M!=null&&M.possibleTypes)?(0,import_jsx_runtime.jsx)(import_antd.Tag,{children:D}):(0,import_jsx_runtime.jsx)(import_antd.Select,{defaultValue:D,popupMatchSelectWidth:!1,style:{width:"100%"},options:(M==null?void 0:M.possibleTypes.map(j=>({label:j,value:j})))||[],onChange:j=>B(P(x({},M),{type:j}),O)})}},{title:l("Field interface"),dataIndex:"interface",key:"interface",width:150,render:(D,R,O)=>{const M=m[O],j=getInterfaceOptions(N,M.type);return M.source?D:(0,import_jsx_runtime.jsx)(import_antd.Select,{defaultValue:D,style:{width:"100%"},popupMatchSelectWidth:!1,onChange:w=>{var $;const L=b(w);B(P(x({},M),{interface:w,uiSchema:($=L==null?void 0:L.default)==null?void 0:$.uiSchema}),O)},children:j.map(w=>(0,import_jsx_runtime.jsx)(import_antd.Select.OptGroup,{label:T(w.label),children:w.children.map($=>(0,import_jsx_runtime.jsx)(import_antd.Select.Option,{value:$.name,children:T($.label)},$.value))},w.key))})}},{title:l("Field display name"),dataIndex:"title",key:"title",width:180,render:(D,R,O)=>{var M;const j=m[O];return(0,import_jsx_runtime.jsx)(import_antd.Input,{defaultValue:((M=j==null?void 0:j.uiSchema)==null?void 0:M.title)||D,onChange:w=>B(P(x({},j),{uiSchema:P(x({},(0,import_lodash.omit)(j==null?void 0:j.uiSchema,"rawTitle")),{title:w.target.value})}),O)})}}];return(0,import_jsx_runtime.jsxs)(import_antd.Spin,{spinning:c,children:[m.length>0&&(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsxs)("div",{className:"ant-formily-item-label",style:{display:"flex",padding:"0 0 8px"},children:[(0,import_jsx_runtime.jsx)("div",{className:"ant-formily-item-label-content",children:(0,import_jsx_runtime.jsx)("span",{children:(0,import_jsx_runtime.jsx)("label",{children:l("Fields")})})}),(0,import_jsx_runtime.jsx)("span",{className:"ant-formily-item-colon",children:":"})]}),(0,import_jsx_runtime.jsx)(import_antd.Table,{bordered:!0,size:"middle",columns:z,dataSource:m,scroll:{y:300},pagination:!1,rowClassName:"editable-row"},o)]}),(0,import_jsx_runtime.jsx)(UnSupportFields,{dataSource:f})]})};function areEqual(e,t){return t.viewName===e.viewName&&t.schema===e.schema&&t.source===e.source}const PreviewFields=import_react2.default.memo(PreviewCom,areEqual);PreviewFields.displayName="PreviewFields";const mapFields=["lineString","point","circle","polygon"],PreviewTable$1=e=>{const{databaseView:t,schema:o,viewName:r,fields:i}=e,[n,a]=(0,import_react2.useState)([]),[l,c]=(0,import_react2.useState)([]),u=useCompile(),[m,d]=(0,import_react2.useState)(!1),{getInterface:p,getCollectionFields:h}=useCollectionManager_deprecated(),g=useAPIClient(),{t:_}=(0,import_react_i18next.useTranslation)(),f=(0,import_react.useForm)();(0,import_react2.useEffect)(()=>{t&&v()},[r,o]),(0,import_react2.useEffect)(()=>{const y=S(i);a(y)},[f.values.fields]);const v=()=>{const y={};f.values.fields.map(C=>{mapFields.includes(C.type)&&(y[C.name]=C.type)}),d(!0),g.resource("dbViews").query({filterByTk:r,schema:o,fieldTypes:y}).then(({data:C})=>{C&&(d(!1),c((C==null?void 0:C.data)||[]))}).catch},S=y=>{var C;return(C=y.filter(b=>b.source||b.interface))==null?void 0:C.map(b=>{var F,I,k,T,N,B;const z=typeof(b==null?void 0:b.source)=="string"?(F=b==null?void 0:b.source)==null?void 0:F.split("."):b==null?void 0:b.source,D=(k=(I=h(z==null?void 0:z[0]))==null?void 0:I.find(M=>M.name===(z==null?void 0:z[1])))==null?void 0:k.uiSchema,R=((T=b==null?void 0:b.uiSchema)==null?void 0:T.title)||(D==null?void 0:D.title)||b.name,O=b.source?D:(B=(N=p(b.interface))==null?void 0:N.default)==null?void 0:B.uiSchema;return{title:u(R),dataIndex:b.name,key:b.name,width:200,render:(M,j,w)=>{const $=j[b.name],L={type:"object",properties:{[b.name]:{name:`${b.name}`,"x-component":O&&z?"CollectionField":"Input","x-read-pretty":!0,"x-collection-field":z==null?void 0:z.join("."),default:b.interface==="json"?JSON.stringify($):$}}};return(0,import_jsx_runtime.jsx)(EllipsisWithTooltip,{ellipsis:!0,children:(0,import_jsx_runtime.jsx)(import_react.RecursionField,{schema:L,name:w,onlyRenderProperties:!0})})}}})};return(0,import_jsx_runtime.jsx)(import_antd.Spin,{spinning:m,children:(0,import_jsx_runtime.jsxs)("div",{style:{marginBottom:22},children:[(0,import_jsx_runtime.jsxs)("div",{className:"ant-formily-item-label",style:{marginTop:24,display:"flex",padding:"0 0 8px"},children:[(0,import_jsx_runtime.jsx)("div",{className:"ant-formily-item-label-content",children:(0,import_jsx_runtime.jsx)("span",{children:(0,import_jsx_runtime.jsx)("label",{children:_("Preview")})})}),(0,import_jsx_runtime.jsx)("span",{className:"ant-formily-item-colon",children:":"})]},r),(n==null?void 0:n.length)>0&&(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:(0,import_jsx_runtime.jsx)(import_antd.Table,{size:"middle",pagination:!1,bordered:!0,columns:n,dataSource:l,scroll:{x:1e3,y:300}},`${r}-preview`)})]})},"preview")},getSchema$2=(e,t,o)=>{var r;if(!e)return;const i=(0,import_lodash.cloneDeep)(e.properties);e.hasDefaultValue===!0&&(i.defaultValue=(0,import_lodash.cloneDeep)((r=e==null?void 0:e.default)==null?void 0:r.uiSchema),i.defaultValue.title=o('{{ t("Default value") }}'),i.defaultValue["x-decorator"]="FormItem");const n=P(x({name:`f_${(0,import_shared.uid)()}`},(0,import_lodash.cloneDeep)(e.default)),{interface:e.name});return n.reverseField&&(n.reverseField.name=`f_${(0,import_shared.uid)()}`),{type:"object",properties:{[(0,import_shared.uid)()]:{type:"void","x-component":"Action.Drawer","x-component-props":{getContainer:"{{ getContainer }}"},"x-decorator":"Form","x-decorator-props":{useValues(a){return useRequest(()=>Promise.resolve({data:n}),a)}},title:`${o('{{ t("Sync from database") }}')}`,properties:{schema:{type:"string","x-hidden":!0,default:t==null?void 0:t.schema},viewName:{type:"string","x-hidden":!0,default:t==null?void 0:t.viewName},fields:{type:"array","x-component":PreviewFields,"x-component-props":x({},t),default:t.fields},preview:{type:"object","x-component":PreviewTable$1,"x-component-props":x({},t),"x-reactions":{dependencies:["fields"],fulfill:{schema:{"x-component-props":"{{{...record,...$form.values}}}"}}}},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{action1:{title:'{{ t("Cancel") }}',"x-component":"Action","x-component-props":{useAction:"{{ useCancelAction }}"}},action2:{title:'{{ t("Submit") }}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ useSyncFromDatabase }}"}}}}}}}}},useSyncFromDatabase=()=>{const e=(0,import_react.useForm)(),{refreshCM:t}=useCollectionManager_deprecated(),o=useActionContext(),{refresh:r}=useResourceActionContext(),{targetKey:i}=useResourceContext(),{[i]:n}=useRecord(),a=useAPIClient(),l=(0,import_react.useField)();return{run(){return q(this,null,function*(){yield e.submit(),l.data=l.data||{},l.data.loading=!0;try{yield a.resource("collections").setFields({filterByTk:n,values:(0,import_lodash.omit)(e.values,"preview")}),o.setVisible(!1),yield e.reset(),l.data.loading=!1,r(),yield t()}catch{l.data.loading=!1}})}}},SyncFieldsAction=e=>{const t=useRecord();return(0,import_jsx_runtime.jsx)(SyncFieldsActionCom,x({item:t},e))},SyncFieldsActionCom=e=>{const{scope:t,getContainer:o,item:r,children:i}=e,[n,a]=(0,import_react2.useState)(!1),[l,c]=(0,import_react2.useState)({}),u=useCompile(),{t:m}=(0,import_react_i18next.useTranslation)(),{name:d="main"}=(0,import_react_router_dom.useParams)();return r.template==="view"&&d==="main"&&(0,import_jsx_runtime.jsx)(RecordProvider,{record:r,children:(0,import_jsx_runtime.jsxs)(ActionContextProvider,{value:{visible:n,setVisible:a,drawerProps:{width:900}},children:[i||(0,import_jsx_runtime.jsx)(import_antd.Button,{icon:(0,import_jsx_runtime.jsx)(import_icons.PlusOutlined,{}),onClick:p=>{const h=getSchema$2({},r,u);h&&(c(h),a(!0))},children:m("Sync from database")}),(0,import_jsx_runtime.jsx)(SchemaComponent,{schema:l,components:P(x({},components$1),{ArrayTable:import_antd_v5.ArrayTable}),scope:x({getContainer:o,useCancelAction,createOnly:!0,isOverride:!1,useSyncFromDatabase,record:r},t)})]})})},AsyncDataContext=(0,import_react2.createContext)(null);AsyncDataContext.displayName="AsyncDataContext";const AsyncDataProvider=e=>{const t=e,{value:o,request:r,children:i}=t,n=Y(t,["value","request","children"]),a=useRequest(r,x({},n));return o?(0,import_jsx_runtime.jsx)(AsyncDataContext.Provider,{value:o,children:i}):(0,import_jsx_runtime.jsx)(AsyncDataContext.Provider,{value:a,children:i})},useAsyncData=()=>(0,import_react2.useContext)(AsyncDataContext),inferInterface=(e,t)=>e.toLowerCase().includes("id")?"id":typeof t=="number"?Number.isInteger(t)?"integer":"number":typeof t=="boolean"?"checkbox":(0,import_dayjs.default)(t).isValid()?"datetime":"input",useSourceFieldsOptions=()=>{const e=(0,import_react.useForm)(),{sources:t=[]}=e.values,{t:o}=(0,import_react_i18next.useTranslation)(),{getCollection:r,getInheritCollections:i,getParentCollectionFields:n}=useCollectionManager_deprecated(),a=[];return t.forEach(l=>{var c;const u=r(l),m=i(l).map(p=>{const h=n(p,l);return{type:"group",key:p,label:o("Parent collection fields")+o(`(${r(p).title})`),children:h.filter(g=>!["hasOne","hasMany","belongsToMany"].includes(g==null?void 0:g.type)).map(g=>{var _;return{value:g.name,label:o((_=g.uiSchema)==null?void 0:_.title)}})}});if(!u)return;const d=(c=u.fields.filter(p=>!["hasOne","hasMany","belongsToMany","belongsTo"].includes(p==null?void 0:p.type)))==null?void 0:c.map(p=>{var h;return{value:p.name,label:o((h=p.uiSchema)==null?void 0:h.title)}});a.push({value:l,label:o(u.title),children:[...d,...m]})}),a},FieldsConfigure=(0,import_react.observer)(()=>{var e,t,o,r;const{t:i}=(0,import_react_i18next.useTranslation)(),[n,a]=(0,import_react2.useState)([]),{data:l,error:c,loading:u}=useAsyncData(),{data:m,fields:d}=l||{},p=(0,import_react.useField)(),{data:h}=(0,import_react2.useContext)(ResourceActionContext),g=useCompile(),{getInterface:_,getCollectionField:f}=useCollectionManager_deprecated(),v=useFieldInterfaceOptions(),S=(0,import_react2.useMemo)(()=>v.filter(k=>!["relation"].includes(k.key)).map((k,T)=>({key:T,label:g(k.label),options:k.children.map((N,B)=>({value:N.name,key:`${T}-${B}`,label:g(N.label)}))})),[g]),y=useSourceFieldsOptions(),C=(0,import_react2.useRef)(_);if((0,import_react2.useEffect)(()=>{var k;const T=new Map;u||(m&&m.length?Object.entries((m==null?void 0:m[0])||{}).forEach(([B,z])=>{var D;const R=d[B],O=inferInterface(B,z),M=(D=C.current(O))==null?void 0:D.default,j=(R==null?void 0:R.uiSchema)||(M==null?void 0:M.uiSchema)||{};T.set(B,{name:B,interface:(R==null?void 0:R.interface)||O,type:(R==null?void 0:R.type)||(M==null?void 0:M.type),source:R==null?void 0:R.source,uiSchema:x({title:B},j)})}):Object.entries(d||{}).forEach(([B,z])=>T.set(B,P(x({name:B,type:"string"},z),{uiSchema:x({title:B},(z==null?void 0:z.uiSchema)||{})})))),(k=p.value)!=null&&k.length&&p.value.forEach(B=>{T.has(B.name)&&T.set(B.name,B)});const N=Array.from(T.values());N.length&&(a(N),p.setValue(N))},[u,m,p,d,h]),u)return(0,import_jsx_runtime.jsx)(import_antd.Spin,{});if(!m&&!c)return(0,import_jsx_runtime.jsx)(import_antd.Alert,{showIcon:!0,message:i("Please use a valid SELECT or WITH AS statement")});const b=c;if(b){const k=((r=(o=(t=(e=b==null?void 0:b.response)==null?void 0:e.data)==null?void 0:t.errors)==null?void 0:o.map)==null?void 0:r.call(o,T=>T.message).join(`
1578
1578
  `))||b.message;return(0,import_jsx_runtime.jsx)(import_antd.Alert,{showIcon:!0,message:`${i("SQL error: ")}${k}`,type:"error"})}const F=(k,T)=>{const N=[...n];N.splice(T,1,k),a(N),p.setValue(N.map(B=>{var z,D,R;return P(x({},B),{source:typeof B.source=="string"?B.source:((R=(D=(z=B.source)==null?void 0:z.filter)==null?void 0:D.call(z,Boolean))==null?void 0:R.join("."))||null})}))},I=[{title:i("Field name"),dataIndex:"name",key:"name",width:130},{title:i("Field source"),dataIndex:"source",key:"source",width:200,render:(k,T,N)=>{const B=n[N];return(0,import_jsx_runtime.jsx)(import_antd.Cascader,{defaultValue:typeof k=="string"?k==null?void 0:k.split("."):k,allowClear:!0,options:g(y),placeholder:i("Select field source"),onChange:z=>{let D=d[z==null?void 0:z[1]];D!=null&&D.interface||(D=f((z==null?void 0:z.join("."))||"")),F(P(x({},B),{source:z,interface:D==null?void 0:D.interface,type:D==null?void 0:D.type,uiSchema:D==null?void 0:D.uiSchema}),N)}})}},{title:i("Field interface"),dataIndex:"interface",key:"interface",width:150,render:(k,T,N)=>{var B;const z=n[N];return z.source?(0,import_jsx_runtime.jsx)(import_antd.Tag,{children:g((B=_(k))==null?void 0:B.title)||k}):(0,import_jsx_runtime.jsx)(import_antd.Select,{defaultValue:z.interface||"input",style:{width:"100%"},popupMatchSelectWidth:!1,onChange:D=>{var R,O,M,j,w;const $=_(D);F(P(x({},z),{interface:D||null,uiSchema:P(x({},(R=$==null?void 0:$.default)==null?void 0:R.uiSchema),{title:((M=(O=$==null?void 0:$.default)==null?void 0:O.uiSchema)==null?void 0:M.title)||((j=z.uiSchema)==null?void 0:j.title)}),type:(w=$==null?void 0:$.default)==null?void 0:w.type}),N)},allowClear:!0,options:S})}},{title:i("Field display name"),dataIndex:"title",key:"title",width:180,render:(k,T,N)=>{var B,z;const D=n[N];return(0,import_jsx_runtime.jsx)(import_antd.Input,{value:((B=D.uiSchema)==null?void 0:B.title)||k,defaultValue:((z=D.uiSchema)==null?void 0:z.title)!==void 0?D.uiSchema.title:D==null?void 0:D.name,onChange:R=>F(P(x({},D),{uiSchema:P(x({},D==null?void 0:D.uiSchema),{title:R.target.value})}),N)})}}];return(0,import_jsx_runtime.jsx)(import_antd.Table,{bordered:!0,size:"small",columns:I,dataSource:n,scroll:{y:300},pagination:!1,rowClassName:"editable-row",rowKey:"name"})},{displayName:"FieldsConfigure"}),PreviewTable=(0,import_react.observer)(()=>{const{data:e,loading:t,error:o}=useAsyncData(),{data:r}=e||{},{t:i}=(0,import_react_i18next.useTranslation)(),n=((0,import_react.useForm)().values.fields||[]).reduce((c,u)=>{var m;return c[u.name]=(m=u==null?void 0:u.uiSchema)==null?void 0:m.title,c},{}),a=o?[]:Object.keys((r==null?void 0:r[0])||{}).map(c=>{const u=n[c];return{title:import_react.Schema.compile(u||c,{t:i}),dataIndex:c,key:c}}),l=o?[]:r==null?void 0:r.map((c,u)=>{const m=Object.entries(c).reduce((d,[p,h])=>{if(typeof h!="string")return d[p]=h,d;const g=import_react.Schema.compile(h,{t:i});return d[p]=i(g),d},{});return P(x({},m),{key:u})});return(0,import_jsx_runtime.jsx)(import_antd.Table,{bordered:!0,dataSource:l,columns:a,scroll:{x:a.length*150,y:300},loading:t,rowKey:"key"})},{displayName:"PreviewTable"}),SQLRequestProvider=e=>{const t=useAPIClient(),o=(0,import_react.useForm)(),r=useRecord();let{manual:i}=e;i=i===void 0?!0:i;const n=useRequest(u=>t.resource("sqlCollection").execute({values:{sql:u}}).then(m=>{var d;return((d=m==null?void 0:m.data)==null?void 0:d.data)||{data:[],fields:[],sources:[]}}),{manual:!0,onSuccess:u=>{const{sources:m}=u,d=o.values.sources||[];o.setValuesIn("sources",Array.from(new Set([...d,...m])))}}),{run:a}=n,l=o.values.sql||r.sql,c=(0,import_react2.useRef)(!0);return(0,import_react2.useEffect)(()=>{l&&c.current&&a(l),c.current=!1},[i,a,l]),(0,import_jsx_runtime.jsx)(AsyncDataProvider,{value:n,children:e.children})},SQLInput=({disabled:e})=>{const{t}=(0,import_react_i18next.useTranslation)(),{run:o,loading:r,error:i}=useAsyncData(),n=(0,import_react.useField)(),a=()=>{n.value&&o(n.value)},l=()=>{!e&&!n.value||(e||o(n.value),n.setComponentProps({disabled:!e}))};return(0,import_react2.useEffect)(()=>{i&&n.setComponentProps({disabled:!1})},[n,i]),(0,import_jsx_runtime.jsxs)("div",{className:import_css.css`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nocobase/client",
3
- "version": "1.7.0-beta.21",
3
+ "version": "1.7.0-beta.22",
4
4
  "license": "AGPL-3.0",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.mjs",
@@ -27,9 +27,9 @@
27
27
  "@formily/reactive-react": "^2.2.27",
28
28
  "@formily/shared": "^2.2.27",
29
29
  "@formily/validator": "^2.2.27",
30
- "@nocobase/evaluators": "1.7.0-beta.21",
31
- "@nocobase/sdk": "1.7.0-beta.21",
32
- "@nocobase/utils": "1.7.0-beta.21",
30
+ "@nocobase/evaluators": "1.7.0-beta.22",
31
+ "@nocobase/sdk": "1.7.0-beta.22",
32
+ "@nocobase/utils": "1.7.0-beta.22",
33
33
  "ahooks": "^3.7.2",
34
34
  "antd": "5.24.2",
35
35
  "antd-style": "3.7.1",
@@ -82,5 +82,5 @@
82
82
  "dumi": "2.2.14",
83
83
  "dumi-theme-nocobase": "^0.2.28"
84
84
  },
85
- "gitHead": "845f6124b170717387ba9d7ebf3cc2df7a861bc3"
85
+ "gitHead": "22443d65a7ceb31022114a4d0b3ea38b428416b9"
86
86
  }