@nocobase/client 1.7.7 → 1.7.9
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 +12 -15
- package/lib/index.js +2 -2
- package/package.json +5 -5
package/es/index.mjs
CHANGED
|
@@ -8705,7 +8705,7 @@ function addAppVersion(e, t) {
|
|
|
8705
8705
|
addAppVersion((o = e.properties) == null ? void 0 : o[n], t);
|
|
8706
8706
|
}), e;
|
|
8707
8707
|
}
|
|
8708
|
-
const name = "@nocobase/client", version = "1.7.
|
|
8708
|
+
const name = "@nocobase/client", version = "1.7.9", license = "AGPL-3.0", main = "lib/index.js", module = "es/index.mjs", types = "es/index.d.ts", dependencies = {
|
|
8709
8709
|
"@ahooksjs/use-url-state": "3.5.1",
|
|
8710
8710
|
"@ant-design/cssinjs": "^1.11.1",
|
|
8711
8711
|
"@ant-design/icons": "^5.6.1",
|
|
@@ -8726,9 +8726,9 @@ const name = "@nocobase/client", version = "1.7.7", license = "AGPL-3.0", main =
|
|
|
8726
8726
|
"@formily/reactive-react": "^2.2.27",
|
|
8727
8727
|
"@formily/shared": "^2.2.27",
|
|
8728
8728
|
"@formily/validator": "^2.2.27",
|
|
8729
|
-
"@nocobase/evaluators": "1.7.
|
|
8730
|
-
"@nocobase/sdk": "1.7.
|
|
8731
|
-
"@nocobase/utils": "1.7.
|
|
8729
|
+
"@nocobase/evaluators": "1.7.9",
|
|
8730
|
+
"@nocobase/sdk": "1.7.9",
|
|
8731
|
+
"@nocobase/utils": "1.7.9",
|
|
8732
8732
|
ahooks: "^3.7.2",
|
|
8733
8733
|
antd: "5.24.2",
|
|
8734
8734
|
"antd-style": "3.7.1",
|
|
@@ -39408,17 +39408,14 @@ const RenderButtonInner = observer$1(
|
|
|
39408
39408
|
T.cancel();
|
|
39409
39409
|
}, []), !t && ((O = n == null ? void 0 : n.data) != null && O.hidden || !o))
|
|
39410
39410
|
return null;
|
|
39411
|
-
const R = S != null ? S : n == null ? void 0 : n.title, D = typeof R == "string" ? I(R, { ns: NAMESPACE_UI_SCHEMA }) : R, j = l, { opacity: B } = j, N = W(j, ["opacity"]), $ = y && B ? { opacity: B } : void 0, L =
|
|
39412
|
-
() =>
|
|
39413
|
-
|
|
39414
|
-
|
|
39415
|
-
|
|
39416
|
-
|
|
39417
|
-
|
|
39418
|
-
|
|
39419
|
-
}
|
|
39420
|
-
),
|
|
39421
|
-
[v]
|
|
39411
|
+
const R = S != null ? S : n == null ? void 0 : n.title, D = typeof R == "string" ? I(R, { ns: NAMESPACE_UI_SCHEMA }) : R, j = l, { opacity: B } = j, N = W(j, ["opacity"]), $ = y && B ? { opacity: B } : void 0, L = React.forwardRef(
|
|
39412
|
+
(H, U) => {
|
|
39413
|
+
var Y = H, { component: M = p || Button, icon: q, onlyIcon: E, children: V } = Y, G = W(Y, ["component", "icon", "onlyIcon", "children"]);
|
|
39414
|
+
return /* @__PURE__ */ jsxs(M, P(x({ ref: U }, G), { children: [
|
|
39415
|
+
E ? /* @__PURE__ */ jsx(Tooltip, { title: G.title, children: /* @__PURE__ */ jsx("span", { style: { padding: 3 }, children: q && typeof q == "string" ? /* @__PURE__ */ jsx(Icon, { type: q }) : q }) }) : /* @__PURE__ */ jsx("span", { style: { paddingRight: 3 }, children: q && typeof q == "string" ? /* @__PURE__ */ jsx(Icon, { type: q }) : q }),
|
|
39416
|
+
E ? V[1] : V
|
|
39417
|
+
] }));
|
|
39418
|
+
}
|
|
39422
39419
|
);
|
|
39423
39420
|
return /* @__PURE__ */ jsxs(
|
|
39424
39421
|
SortableItem,
|
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=W(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:()=>z(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:{text:e.stack},children:(0,import_jsx_runtime.jsx)(Text$1,{type:"danger",style:{whiteSpace:"pre-line",textAlign:"center"},children:e.stack})})})})};ErrorFallback.Modal=ErrorFallbackModal;const AppNotFound=()=>{const e=(0,import_react_router_dom.useNavigate)(),{t}=(0,import_react_i18next.useTranslation)();return(0,import_jsx_runtime.jsx)(import_antd.Result,{status:"404",title:"404",subTitle:t("Sorry, the page you visited does not exist."),extra:(0,import_jsx_runtime.jsx)(import_antd.Button,{onClick:()=>e("/",{replace:!0}),type:"primary",children:"Back Home"})})};class Plugin{constructor(t,o){this.options=t,this.app=o,this.options=t,this.app=o}get pluginManager(){return this.app.pluginManager}get 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 z(this,null,function*(){})}beforeLoad(){return z(this,null,function*(){})}load(){return z(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.7",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":"^6.0.0","@dnd-kit/sortable":"^7.0.0","@emotion/css":"^11.7.1","@formily/antd-v5":"1.2.3","@formily/core":"^2.2.27","@formily/grid":"^2.2.27","@formily/json-schema":"^2.2.27","@formily/path":"^2.2.27","@formily/react":"^2.2.27","@formily/reactive":"^2.2.27","@formily/reactive-react":"^2.2.27","@formily/shared":"^2.2.27","@formily/validator":"^2.2.27","@nocobase/evaluators":"1.7.7","@nocobase/sdk":"1.7.7","@nocobase/utils":"1.7.7",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=>z(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=>z(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=>z(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=>z(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=>z(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 z(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 b;if(!v)return null;if(typeof v!="string")return v;const S=(0,import_get.default)(n,v);return(b=S==null?void 0:S[LAZY_COMPONENT_KEY])!=null?b:S},[import_get.default]),on:_.on.bind(_),patch:(0,import_react2.useCallback)((v,b)=>{const S=C=>{Object.keys(C).forEach(y=>{const F=C[y];y==="title"&&(d.title=F,p.title=F),y==="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]})),y==="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,b),S(C)}S(v),m()},[_]),shallowMerge:(0,import_react2.useCallback)(v=>{_.shallowMerge(v)},[_]),deepMerge:(0,import_react2.useCallback)(v=>{_.deepMerge(v)},[_]),remove:(0,import_react2.useCallback)((v,b)=>{_.remove(v,b)},[_]),insertAdjacent:(0,import_react2.useCallback)((v,b,S)=>{_.insertAdjacent(v,b,S)},[_]),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=W(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=()=>z(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=>{var t;const{params:o,parseVariableLoading:r}=useTableBlockParams(e),i=useParentRecordCommon(e.association),n=(t=useDataSourceManager().getDataSource(e.dataSource))==null?void 0:t.collectionManager.getCollection(e.collection);return{params:o,parentRecord:i,parseVariableLoading:r,rowKey:(n==null?void 0:n.filterTargetKey)||"id"}};function useTableBlockParams(e){var t;const o=(0,import_react.useFieldSchema)(),{filter:r,parseVariableLoading:i}=useParsedFilter({filterOption:(t=e.params)==null?void 0:t.filter});return{params:(0,import_react2.useMemo)(()=>{const n=e.params||{},{dragSortBy: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),u=(0,import_react2.useDeferredValue)(l);return!c.current&&u?(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)=>z(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield Promise.all(o.filter(a=>!a.disabled).map(a=>z(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)=>z(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)=>z(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$3={display:"none"},HighPerformanceSpin=import_react2.default.memo(e=>(0,import_jsx_runtime.jsxs)("div",{style:containerStyle,children:[(0,import_jsx_runtime.jsx)(import_antd.Spin,P(x({},import_lodash.default.omit(e,"children")),{style:e.spinning?spinStyle:displayNone$3})),(0,import_jsx_runtime.jsx)("div",{style:e.spinning?opacityStyle:null,children:e.children})]}));var FilterBlockType=(e=>(e[e.FORM=0]="FORM",e[e.TABLE=1]="TABLE",e[e.TREE=2]="TREE",e[e.COLLAPSE=3]="COLLAPSE",e))(FilterBlockType||{});const mergeFilter=(e,t="$and")=>{const o=e.filter(r=>{if(r&&typeof r=="object"&&!Array.isArray(r))return Object.values(r).filter(i=>i!==void 0).length});return o.length===0?{}:o.length===1?o[0]:{[t]:o}},getSupportFieldsByAssociation=(e,t)=>{var o;return(o=t.associatedFields)==null?void 0:o.filter(r=>e==null?void 0:e.some(i=>i===r.target))},getSupportFieldsByForeignKey=(e,t)=>{var o;return(o=t.foreignKeyFields)==null?void 0:o.filter(r=>e.fields.some(i=>i.type!=="belongsTo"&&i.foreignKey===r.name&&i.target===r.collectionName))},useSupportedBlocks=e=>{const{getDataBlocks:t}=useFilterBlock(),o=(0,import_react.useFieldSchema)(),r=useCollection(),{getAllCollectionsInheritChain:i}=useAllCollectionsInheritChainGetter();if(e===0||e===3)return t().filter(n=>isSameCollection(n.collection,r));if(e===1||e===2)return t().filter(n=>{var a,l;return o["x-uid"]!==n.uid&&(isSameCollection(n.collection,r)||((a=getSupportFieldsByAssociation(i(r.name,r.dataSource),n))==null?void 0:a.length)||((l=getSupportFieldsByForeignKey(r,n))==null?void 0:l.length))})},transformToFilter=(e,t,o,r)=>(e=(0,import_client.flatten)(e,{breakOn({value:i,path:n}){if(["$match","$notMatch","$anyOf","$noneOf","$childIn","$childNotIn","$dateBetween","$in","$notIn"].includes(t[n])||i!=null&&i.type)return!0;const a=o(`${r}.${n}`);if(a!=null&&a.target){if(Array.isArray(i))return!0;const l=a.targetKey||"id";if(i&&i[l]!=null)return!0}return!1}}),{$and:Object.keys(e).map(i=>{let n=import_lodash.default.get(e,i);const a=o(`${r}.${i}`);return a!=null&&a.target&&["hasOne","hasMany","belongsTo","belongsToMany","belongsToArray"].includes(a.type)&&(n=(0,import_client.getValuesByPath)(n,a.targetKey||"id"),i=`${i}.${a.targetKey||"id"}`,(a==null?void 0:a.interface)==="chinaRegion"&&(n=import_lodash.default.last(n))),!n&&n!==0&&n!==!1?null:{[i]:{[t[i]||"$eq"]:n}}}).filter(Boolean)}),useAssociatedFields=()=>{var e;return((e=useCollection())==null?void 0:e.fields.filter(t=>isAssocField(t)))||[]},isAssocField=e=>["o2o","oho","obo","m2o","createdBy","updatedBy","o2m","m2m","linkTo","chinaRegion","mbm"].includes(e==null?void 0:e.interface),isSameCollection=(e,t)=>e.name===t.name&&e.dataSource===t.dataSource,useFilterAPI=()=>{const e=(0,import_react.useFieldSchema)(),{getDataBlocks:t}=useFilterBlock(),{targets:o,uid:r}=findFilterTargets(e),i=t(),[n,a]=(0,import_react2.useState)(()=>o&&o.some(u=>i.some(m=>m.uid===u.uid))),l=Object.keys(o||{});(0,import_react2.useEffect)(()=>{a(o&&o.some(u=>i.some(m=>m.uid===u.uid)))},[l.length,o,i]);const c=(0,import_react2.useCallback)((u,m="id",d="$eq")=>{const p=i.find(h=>h.uid===e.parent["x-uid"]);i.forEach(h=>{var g,_,f,v;let b=m;const S=o.find(I=>I.uid===h.uid);if(!S)return;import_lodash.default.isFunction(u)&&(u=u(S,h,getSourceKey$1(p,S.field))),import_lodash.default.isFunction(m)&&(b=m(S,h)),import_lodash.default.isFunction(d)&&(d=d(S));const C=((g=h.service.params)==null?void 0:g[0])||{},y=((f=(_=h.service.params)==null?void 0:_[1])==null?void 0:f.filters)||{};if(u!=null)y[r]={$and:[{[b]:{[d]:u}}]};else if((v=h.clearSelection)==null||v.call(h),delete y[r],h.dataLoadingMode==="manual")return h.clearData();const F=mergeFilter([...Object.values(y).map(I=>removeNullCondition(I)),h.defaultFilter]);h.doFilter(P(x({},C),{page:1,filter:F}),{filters:y})})},[i,o,r,e]);return{isConnected:n,doFilter:c}},isInFilterFormBlock=e=>{for(;e;){if(e["x-filter-targets"])return e["x-decorator"]==="FilterFormBlockProvider";e=e.parent}return!1};function getSourceKey$1(e,t){var o,r,i;const n=(o=e==null?void 0:e.associatedFields)==null?void 0:o.find(a=>a.foreignKey===t);return(n==null?void 0:n.sourceKey)||((i=(r=t==null?void 0:t.split)==null?void 0:r.call(t,"."))==null?void 0:i[1])}const AssociationFieldContext=(0,import_react2.createContext)({});AssociationFieldContext.displayName="AssociationFieldContext";const useInsertSchema$1=e=>{const t=(0,import_react.useFieldSchema)(),{insertAfterBegin:o}=useDesignable(),{isMobileLayout:r}=useMobileLayout();return(0,import_react2.useCallback)(i=>{r||t.reduceProperties((n,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(),b=useRecord(),S=((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:S}),y=(0,import_react2.useMemo)(()=>f(g.name)||v(g==null?void 0:g["x-collection-field"]),[g]),F=b==null?void 0:b[y==null?void 0:y.sourceKey],I=(0,import_react2.useMemo)(()=>{const T=["oho","o2m"].includes(y==null?void 0:y.interface);return mergeFilter([mergeFilter([T&&!isInFilterFormBlock(g)&&y!=null&&y.foreignKey&&!h?{[y.foreignKey]:{$is:null}}:null,C]),T&&F!==void 0&&F!==null&&!isInFilterFormBlock(g)&&y!=null&&y.foreignKey&&!h?{[y.foreignKey]:{$eq:F}}:null],"$or")},[y==null?void 0:y.interface,y==null?void 0:y.foreignKey,g,C,F,h]);return(0,import_react2.useMemo)(()=>P(x({resource:y==null?void 0:y.target,action:d},p),{params:P(x({},p==null?void 0:p.params),{filter:I})}),[y==null?void 0:y.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=W(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:()=>z(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:{text:e.stack},children:(0,import_jsx_runtime.jsx)(Text$1,{type:"danger",style:{whiteSpace:"pre-line",textAlign:"center"},children:e.stack})})})})};ErrorFallback.Modal=ErrorFallbackModal;const AppNotFound=()=>{const e=(0,import_react_router_dom.useNavigate)(),{t}=(0,import_react_i18next.useTranslation)();return(0,import_jsx_runtime.jsx)(import_antd.Result,{status:"404",title:"404",subTitle:t("Sorry, the page you visited does not exist."),extra:(0,import_jsx_runtime.jsx)(import_antd.Button,{onClick:()=>e("/",{replace:!0}),type:"primary",children:"Back Home"})})};class Plugin{constructor(t,o){this.options=t,this.app=o,this.options=t,this.app=o}get pluginManager(){return this.app.pluginManager}get 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 z(this,null,function*(){})}beforeLoad(){return z(this,null,function*(){})}load(){return z(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.9",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":"^6.0.0","@dnd-kit/sortable":"^7.0.0","@emotion/css":"^11.7.1","@formily/antd-v5":"1.2.3","@formily/core":"^2.2.27","@formily/grid":"^2.2.27","@formily/json-schema":"^2.2.27","@formily/path":"^2.2.27","@formily/react":"^2.2.27","@formily/reactive":"^2.2.27","@formily/reactive-react":"^2.2.27","@formily/shared":"^2.2.27","@formily/validator":"^2.2.27","@nocobase/evaluators":"1.7.9","@nocobase/sdk":"1.7.9","@nocobase/utils":"1.7.9",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=>z(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=>z(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=>z(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=>z(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=>z(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 z(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 b;if(!v)return null;if(typeof v!="string")return v;const S=(0,import_get.default)(n,v);return(b=S==null?void 0:S[LAZY_COMPONENT_KEY])!=null?b:S},[import_get.default]),on:_.on.bind(_),patch:(0,import_react2.useCallback)((v,b)=>{const S=C=>{Object.keys(C).forEach(y=>{const F=C[y];y==="title"&&(d.title=F,p.title=F),y==="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]})),y==="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,b),S(C)}S(v),m()},[_]),shallowMerge:(0,import_react2.useCallback)(v=>{_.shallowMerge(v)},[_]),deepMerge:(0,import_react2.useCallback)(v=>{_.deepMerge(v)},[_]),remove:(0,import_react2.useCallback)((v,b)=>{_.remove(v,b)},[_]),insertAdjacent:(0,import_react2.useCallback)((v,b,S)=>{_.insertAdjacent(v,b,S)},[_]),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=W(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=()=>z(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=>{var t;const{params:o,parseVariableLoading:r}=useTableBlockParams(e),i=useParentRecordCommon(e.association),n=(t=useDataSourceManager().getDataSource(e.dataSource))==null?void 0:t.collectionManager.getCollection(e.collection);return{params:o,parentRecord:i,parseVariableLoading:r,rowKey:(n==null?void 0:n.filterTargetKey)||"id"}};function useTableBlockParams(e){var t;const o=(0,import_react.useFieldSchema)(),{filter:r,parseVariableLoading:i}=useParsedFilter({filterOption:(t=e.params)==null?void 0:t.filter});return{params:(0,import_react2.useMemo)(()=>{const n=e.params||{},{dragSortBy: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),u=(0,import_react2.useDeferredValue)(l);return!c.current&&u?(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)=>z(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield Promise.all(o.filter(a=>!a.disabled).map(a=>z(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)=>z(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)=>z(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$3={display:"none"},HighPerformanceSpin=import_react2.default.memo(e=>(0,import_jsx_runtime.jsxs)("div",{style:containerStyle,children:[(0,import_jsx_runtime.jsx)(import_antd.Spin,P(x({},import_lodash.default.omit(e,"children")),{style:e.spinning?spinStyle:displayNone$3})),(0,import_jsx_runtime.jsx)("div",{style:e.spinning?opacityStyle:null,children:e.children})]}));var FilterBlockType=(e=>(e[e.FORM=0]="FORM",e[e.TABLE=1]="TABLE",e[e.TREE=2]="TREE",e[e.COLLAPSE=3]="COLLAPSE",e))(FilterBlockType||{});const mergeFilter=(e,t="$and")=>{const o=e.filter(r=>{if(r&&typeof r=="object"&&!Array.isArray(r))return Object.values(r).filter(i=>i!==void 0).length});return o.length===0?{}:o.length===1?o[0]:{[t]:o}},getSupportFieldsByAssociation=(e,t)=>{var o;return(o=t.associatedFields)==null?void 0:o.filter(r=>e==null?void 0:e.some(i=>i===r.target))},getSupportFieldsByForeignKey=(e,t)=>{var o;return(o=t.foreignKeyFields)==null?void 0:o.filter(r=>e.fields.some(i=>i.type!=="belongsTo"&&i.foreignKey===r.name&&i.target===r.collectionName))},useSupportedBlocks=e=>{const{getDataBlocks:t}=useFilterBlock(),o=(0,import_react.useFieldSchema)(),r=useCollection(),{getAllCollectionsInheritChain:i}=useAllCollectionsInheritChainGetter();if(e===0||e===3)return t().filter(n=>isSameCollection(n.collection,r));if(e===1||e===2)return t().filter(n=>{var a,l;return o["x-uid"]!==n.uid&&(isSameCollection(n.collection,r)||((a=getSupportFieldsByAssociation(i(r.name,r.dataSource),n))==null?void 0:a.length)||((l=getSupportFieldsByForeignKey(r,n))==null?void 0:l.length))})},transformToFilter=(e,t,o,r)=>(e=(0,import_client.flatten)(e,{breakOn({value:i,path:n}){if(["$match","$notMatch","$anyOf","$noneOf","$childIn","$childNotIn","$dateBetween","$in","$notIn"].includes(t[n])||i!=null&&i.type)return!0;const a=o(`${r}.${n}`);if(a!=null&&a.target){if(Array.isArray(i))return!0;const l=a.targetKey||"id";if(i&&i[l]!=null)return!0}return!1}}),{$and:Object.keys(e).map(i=>{let n=import_lodash.default.get(e,i);const a=o(`${r}.${i}`);return a!=null&&a.target&&["hasOne","hasMany","belongsTo","belongsToMany","belongsToArray"].includes(a.type)&&(n=(0,import_client.getValuesByPath)(n,a.targetKey||"id"),i=`${i}.${a.targetKey||"id"}`,(a==null?void 0:a.interface)==="chinaRegion"&&(n=import_lodash.default.last(n))),!n&&n!==0&&n!==!1?null:{[i]:{[t[i]||"$eq"]:n}}}).filter(Boolean)}),useAssociatedFields=()=>{var e;return((e=useCollection())==null?void 0:e.fields.filter(t=>isAssocField(t)))||[]},isAssocField=e=>["o2o","oho","obo","m2o","createdBy","updatedBy","o2m","m2m","linkTo","chinaRegion","mbm"].includes(e==null?void 0:e.interface),isSameCollection=(e,t)=>e.name===t.name&&e.dataSource===t.dataSource,useFilterAPI=()=>{const e=(0,import_react.useFieldSchema)(),{getDataBlocks:t}=useFilterBlock(),{targets:o,uid:r}=findFilterTargets(e),i=t(),[n,a]=(0,import_react2.useState)(()=>o&&o.some(u=>i.some(m=>m.uid===u.uid))),l=Object.keys(o||{});(0,import_react2.useEffect)(()=>{a(o&&o.some(u=>i.some(m=>m.uid===u.uid)))},[l.length,o,i]);const c=(0,import_react2.useCallback)((u,m="id",d="$eq")=>{const p=i.find(h=>h.uid===e.parent["x-uid"]);i.forEach(h=>{var g,_,f,v;let b=m;const S=o.find(I=>I.uid===h.uid);if(!S)return;import_lodash.default.isFunction(u)&&(u=u(S,h,getSourceKey$1(p,S.field))),import_lodash.default.isFunction(m)&&(b=m(S,h)),import_lodash.default.isFunction(d)&&(d=d(S));const C=((g=h.service.params)==null?void 0:g[0])||{},y=((f=(_=h.service.params)==null?void 0:_[1])==null?void 0:f.filters)||{};if(u!=null)y[r]={$and:[{[b]:{[d]:u}}]};else if((v=h.clearSelection)==null||v.call(h),delete y[r],h.dataLoadingMode==="manual")return h.clearData();const F=mergeFilter([...Object.values(y).map(I=>removeNullCondition(I)),h.defaultFilter]);h.doFilter(P(x({},C),{page:1,filter:F}),{filters:y})})},[i,o,r,e]);return{isConnected:n,doFilter:c}},isInFilterFormBlock=e=>{for(;e;){if(e["x-filter-targets"])return e["x-decorator"]==="FilterFormBlockProvider";e=e.parent}return!1};function getSourceKey$1(e,t){var o,r,i;const n=(o=e==null?void 0:e.associatedFields)==null?void 0:o.find(a=>a.foreignKey===t);return(n==null?void 0:n.sourceKey)||((i=(r=t==null?void 0:t.split)==null?void 0:r.call(t,"."))==null?void 0:i[1])}const AssociationFieldContext=(0,import_react2.createContext)({});AssociationFieldContext.displayName="AssociationFieldContext";const useInsertSchema$1=e=>{const t=(0,import_react.useFieldSchema)(),{insertAfterBegin:o}=useDesignable(),{isMobileLayout:r}=useMobileLayout();return(0,import_react2.useCallback)(i=>{r||t.reduceProperties((n,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(),b=useRecord(),S=((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:S}),y=(0,import_react2.useMemo)(()=>f(g.name)||v(g==null?void 0:g["x-collection-field"]),[g]),F=b==null?void 0:b[y==null?void 0:y.sourceKey],I=(0,import_react2.useMemo)(()=>{const T=["oho","o2m"].includes(y==null?void 0:y.interface);return mergeFilter([mergeFilter([T&&!isInFilterFormBlock(g)&&y!=null&&y.foreignKey&&!h?{[y.foreignKey]:{$is:null}}:null,C]),T&&F!==void 0&&F!==null&&!isInFilterFormBlock(g)&&y!=null&&y.foreignKey&&!h?{[y.foreignKey]:{$eq:F}}:null],"$or")},[y==null?void 0:y.interface,y==null?void 0:y.foreignKey,g,C,F,h]);return(0,import_react2.useMemo)(()=>P(x({resource:y==null?void 0:y.target,action:d},p),{params:P(x({},p==null?void 0:p.params),{filter:I})}),[y==null?void 0:y.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};
|
|
@@ -723,7 +723,7 @@ https://requirejs.org/docs/errors.html#`+e);return i.requireType=e,i.requireModu
|
|
|
723
723
|
display: flex;
|
|
724
724
|
margin: 5px 0px;
|
|
725
725
|
}
|
|
726
|
-
`,defaultValue:"h:mm a",formats:["hh:mm:ss a","HH:mm:ss"],timeFormat:!0},default:d,enum:[{label:DateFormatCom({format:"hh:mm:ss a"}),value:"hh:mm:ss a"},{label:DateFormatCom({format:"HH:mm:ss"}),value:"HH:mm:ss"},{label:"custom",value:"custom"}]}}},onSubmit:p=>{const h={"x-uid":n["x-uid"]};h["x-component-props"]=a.componentProps||{},n["x-component-props"]=x(x({},a.componentProps||{}),p),h["x-component-props"]=n["x-component-props"],a.componentProps=n["x-component-props"];const g=a.path.entire.split(".");g.pop();const _=g.join(".");a.query(`${_}.*[0:].${n.name}`).forEach(f=>{f.props.name===n.name&&f.setComponentProps(x({},p))}),l.emit("patch",{schema:h}),l.refresh()}})},timePickerComponentFieldSettings=new SchemaSettings({name:"fieldSettings:component:TimePicker",items:[{name:"timeDisplayFormat",Component:SchemaSettingsTimeFormat,useComponentProps(){const e=(0,import_react.useFieldSchema)(),{fieldSchema:t}=useColumnSchema$1();return{fieldSchema:t||e}}}]}),unixTimestampComponentFieldSettings=new SchemaSettings({name:"fieldSettings:component:UnixTimestamp",items:[{name:"dateDisplayFormat",Component:SchemaSettingsDateFormat,useComponentProps(){const e=(0,import_react.useFieldSchema)(),{fieldSchema:t}=useColumnSchema$1();return{fieldSchema:t||e}}},enableLinkSettingsItem,openModeSettingsItem]});class SchemaSettingsPlugin extends Plugin{load(){return z(this,null,function*(){this.schemaSettingsManager.add(tableBlockSettings),this.schemaSettingsManager.add(createFormBlockSettings),this.schemaSettingsManager.add(editFormBlockSettings),this.schemaSettingsManager.add(filterFormBlockSettings),this.schemaSettingsManager.add(filterFormItemFieldSettings),this.schemaSettingsManager.add(multiDataDetailsBlockSettings),this.schemaSettingsManager.add(detailsWithPaginationSettings),this.schemaSettingsManager.add(singleDataDetailsBlockSettings),this.schemaSettingsManager.add(detailsBlockSettings),this.schemaSettingsManager.add(tableSelectorBlockSettings),this.schemaSettingsManager.add(listBlockSettings),this.schemaSettingsManager.add(gridCardBlockSettings),this.schemaSettingsManager.add(filterCollapseBlockSettings),this.schemaSettingsManager.add(markdownBlockSettings),this.schemaSettingsManager.add(addNewActionSettings),this.schemaSettingsManager.add(filterActionSettings),this.schemaSettingsManager.add(refreshActionSettings),this.schemaSettingsManager.add(viewActionSettings),this.schemaSettingsManager.add(editActionSettings),this.schemaSettingsManager.add(deleteActionSettings),this.schemaSettingsManager.add(disassociateActionSettings),this.schemaSettingsManager.add(associateActionSettings),this.schemaSettingsManager.add(bulkDeleteActionSettings),this.schemaSettingsManager.add(customizeAddRecordActionSettings),this.schemaSettingsManager.add(customizePopupActionSettings),this.schemaSettingsManager.add(customizeLinkActionSettings),this.schemaSettingsManager.add(customizeUpdateRecordActionSettings),this.schemaSettingsManager.add(createSubmitActionSettings),this.schemaSettingsManager.add(updateSubmitActionSettings),this.schemaSettingsManager.add(submitActionSettings),this.schemaSettingsManager.add(customizeSaveRecordActionSettings),this.schemaSettingsManager.add(addChildActionSettings),this.schemaSettingsManager.add(expendableActionSettings),this.schemaSettingsManager.add(fieldSettingsFormItem),this.schemaSettingsManager.add(tableColumnSettings),this.schemaSettingsManager.add(filterCollapseItemFieldSettings),this.schemaSettingsManager.add(selectComponentFieldSettings),this.schemaSettingsManager.add(filterSelectComponentFieldSettings),this.schemaSettingsManager.add(recordPickerComponentFieldSettings),this.schemaSettingsManager.add(filterRecordPickerComponentFieldSettings),this.schemaSettingsManager.add(subformComponentFieldSettings),this.schemaSettingsManager.add(subformPopoverComponentFieldSettings),this.schemaSettingsManager.add(subTablePopoverComponentFieldSettings),this.schemaSettingsManager.add(datePickerComponentFieldSettings),this.schemaSettingsManager.add(rangePickerPickerComponentFieldSettings),this.schemaSettingsManager.add(unixTimestampComponentFieldSettings),this.schemaSettingsManager.add(inputNumberComponentFieldSettings),this.schemaSettingsManager.add(inputComponentSettings),this.schemaSettingsManager.add(inputURLSettings),this.schemaSettingsManager.add(inputTextAreaSettings),this.schemaSettingsManager.add(inputJSONSettings),this.schemaSettingsManager.add(markdownSettings),this.schemaSettingsManager.add(markdownVditorSettings),this.schemaSettingsManager.add(richTextSettings),this.schemaSettingsManager.add(fileManagerComponentFieldSettings),this.schemaSettingsManager.add(tagComponentFieldSettings),this.schemaSettingsManager.add(cascadeSelectComponentFieldSettings),this.schemaSettingsManager.add(inputPreviewComponentFieldSettings),this.schemaSettingsManager.add(uploadAttachmentComponentFieldSettings),this.schemaSettingsManager.add(previewComponentFieldSettings),this.schemaSettingsManager.add(dividerSettings),this.schemaSettingsManager.add(timePickerComponentFieldSettings)})}}const useBuiltInVariables=()=>{const{currentUserCtx:e}=useCurrentUserVariable(),{currentRoleCtx:t}=useCurrentRoleVariable(),{apiTokenCtx:o}=useAPITokenVariable(),{datetimeCtx:r}=useDatetimeVariable(),{exactDateTimeCtx:i}=useExactDateVariable(),{urlSearchParamsCtx:n,name:a,defaultValue:l}=useURLSearchParamsVariable(),c=useGlobalVariableCtx("$env");return{builtinVariables:(0,import_react2.useMemo)(()=>[c,{name:"$user",ctx:e,collectionName:"users",dataSource:DEFAULT_DATA_SOURCE_KEY},{name:"$nRole",ctx:t,collectionName:"roles"},{name:"$nToken",ctx:o},{name:"currentUser",ctx:e,collectionName:"users",dataSource:DEFAULT_DATA_SOURCE_KEY},{name:"$nDate",ctx:r},{name:"$date",ctx:r},{name:"$nExactDate",ctx:i},{name:"$system",ctx:{now:()=>(0,import_client.dayjs)().toISOString()}},{name:"currentTime",ctx:()=>(0,import_client.dayjs)().toISOString()},{name:a,ctx:n,defaultValue:l}].filter(Boolean),[t,e,r,l,n,a,c,i])}},filterEmptyValues=e=>Array.isArray(e)?e.filter(t=>t===0||t===!1||t):e,TYPE_TO_ACTION={hasMany:"list?paginate=false",belongsTo:"get",hasOne:"get",belongsToMany:"list?paginate=false",belongsToArray:"list?paginate=false"},getAction=e=>TYPE_TO_ACTION[e],requested={},hasRequested=e=>!!requested[e],getRequested=e=>requested[e],stashRequested=(e,t)=>{requested[e]=t},clearRequested=e=>{delete requested[e]},uniq=e=>!Array.isArray(e)||!import_lodash.default.isObject(e[0])?e:import_lodash.default.uniqBy(e,t=>"id"in t?t.id:JSON.stringify(t)),VariablesContext=(0,import_react2.createContext)(null);VariablesContext.displayName="VariablesContext";const variablesStore={},getFieldPath$1=(e,t)=>{let o,r;return{fieldPath:e.split(".").map(i=>t[i]?(o=t[i].dataSource,r=t[i],t[i].collectionName):i).join("."),dataSource:o,variableOption:r}},VariablesProvider=({children:e,filterVariables:t})=>{const o=(0,import_react2.useRef)({}),r=useAPIClient(),{getCollectionJoinField:i,getCollection:n}=useCollectionManager_deprecated(),a=useCompile(),{builtinVariables:l}=useBuiltInVariables(),c=(0,import_react2.useCallback)(f=>{import_lodash.default.isFunction(f)?o.current=f(o.current):o.current=f},[]),u=(0,import_react2.useCallback)((f,v,b)=>z(void 0,null,function*(){var S,C;const y=f.split("."),F=y[0],I=mergeVariableToCollectionNameWithLocalVariables(variablesStore,v);let T=mergeCtxWithLocalVariables(o.current,v);const{fieldPath:k,dataSource:N,variableOption:M}=getFieldPath$1(F,I);let O=k;const{fieldPath:D}=getFieldPath$1(f,I),R=y.length===1?M==null?void 0:M.collectionName:(S=i(D,N))==null?void 0:S.target;if(!(F in T))throw new Error(`VariablesProvider: ${F} is not found`);for(let w=0;w<y.length;w++){if(T==null)return{value:T===void 0?M==null?void 0:M.defaultValue:T,dataSource:N,collectionName:R};const j=y[w],B=y.slice(0,w+1).join("."),{fieldPath:L}=getFieldPath$1(B,I),E=i(L,N),V=(C=n(O,N))==null?void 0:C.getPrimaryKey();if(Array.isArray(T)){const U=T.map(q=>{if(!(b!=null&&b.doNotRequest)&&shouldToRequest(q==null?void 0:q[j],q,B)&&(q==null?void 0:q[V])!=null&&E!=null&&E.target){const G=`/${O}/${q[E.sourceKey||V]}/${j}:${getAction(E.type)}`;if(hasRequested(G))return getRequested(G);const Y=r.request({headers:getDataSourceHeaders(N),url:G,params:{appends:b==null?void 0:b.appends}}).then(K=>(clearRequested(G),K.data.data));return stashRequested(G,Y),Y}return q==null?void 0:q[j]});T=removeThroughCollectionFields(import_lodash.default.flatten(yield Promise.all(U)),E)}else if(!(b!=null&&b.doNotRequest)&&shouldToRequest(T[j],T,B)&&T[V]!=null&&E!=null&&E.target){const U=`/${O}/${T[E.sourceKey||V]}/${j}:${getAction(E.type)}`;let q=null;if(hasRequested(U))q=yield getRequested(U);else{const Y=r.request({headers:getDataSourceHeaders(N),url:U,params:{appends:b==null?void 0:b.appends}});stashRequested(U,Y),q=yield Y,clearRequested(U)}const G=q.data.data;T=removeThroughCollectionFields(G,E)}else T=removeThroughCollectionFields((0,import_client.getValuesByPath)(T,j),E);E!=null&&E.target&&(O=E.target)}const $=a(import_lodash.default.isFunction(T)?T({fieldOperator:b==null?void 0:b.fieldOperator,isParsingVariable:!0}):T);return{value:$===void 0?M.defaultValue:$,dataSource:N,collectionName:R}}),[i]),m=(0,import_react2.useCallback)(f=>{if(!isVariable$1(`{{${f.name}}}`))throw new Error(`VariablesProvider: ${f.name} is not a valid name`);c(v=>P(x({},v),{[f.name]:f.ctx})),variablesStore[f.name]=P(x({},f),{defaultValue:import_lodash.default.has(f,"defaultValue")?f.defaultValue:null})},[c]),d=(0,import_react2.useCallback)(f=>o.current[f]?x({},variablesStore[f]):null,[]),p=(0,import_react2.useCallback)(f=>{c(v=>{const b=x({},v);return delete b[f],b}),delete variablesStore[f]},[c]),h=(0,import_react2.useCallback)((f,v,b)=>z(void 0,null,function*(){if(!isVariable$1(f))return f;v&&(v=import_lodash.default.isArray(v)?v:[v]);const S=getPath(f),C=yield u(S,v,b);return P(x({},C),{value:uniq(filterEmptyValues(C.value))})}),[u]),g=(0,import_react2.useCallback)((f,v)=>z(void 0,null,function*(){var b;if(!isVariable$1(f))throw new Error(`VariablesProvider: ${f} is not a variable string`);v&&(v=import_lodash.default.isArray(v)?v:[v]);const S=mergeVariableToCollectionNameWithLocalVariables(variablesStore,v),C=getPath(f),{fieldPath:y,dataSource:F}=getFieldPath$1(C,S);let I=i(y,F);return!I&&!C.includes(".")&&(I={target:(b=S[C])==null?void 0:b.collectionName}),I}),[i]);(0,import_react2.useEffect)(()=>{l.forEach(f=>{m(P(x({},f),{defaultValue:import_lodash.default.has(f,"defaultValue")?f.defaultValue:null}))})},[l,m]);const _=(0,import_react2.useMemo)(()=>({ctxRef:o,setCtx:c,parseVariable:h,registerVariable:m,getVariable:d,getCollectionField:g,removeVariable:p,filterVariables:t}),[g,d,h,m,p,c]);return(0,import_jsx_runtime.jsx)(VariablesContext.Provider,{value:_,children:e})};VariablesProvider.displayName="VariablesProvider";const VariablesProvider$1=VariablesProvider;function shouldToRequest(e,t,o){if(o.split(".").length===2&&(o.startsWith("$nForm.")||o.startsWith("$iteration.")))return!1;let r=!1;return(0,import_reactive.untracked)(()=>{if(JSON.stringify(e)==="[{}]"||JSON.stringify(e)==="{}"){r=!0;return}r=import_lodash.default.isEmpty(e)}),r}function mergeCtxWithLocalVariables(e,t){return e=x({},e),t==null||t.forEach(o=>{e[o.name]=o.ctx}),e}function mergeVariableToCollectionNameWithLocalVariables(e,t){return e=x({},e),t==null||t.forEach(o=>{e[o.name]=P(x({},o),{defaultValue:import_lodash.default.has(o,"defaultValue")?o.defaultValue:null})}),e}function removeThroughCollectionFields(e,t){return!(t!=null&&t.through)||!e?e:Array.isArray(e)?e.map(o=>import_lodash.default.omit(o,t.through)):import_lodash.default.omit(e,t.through)}const mergeChildren=(e,t)=>{if(!(!e&&!t)&&!(0,import_shared.isFn)(e))return(0,import_jsx_runtime.jsxs)(import_react2.Fragment,{children:[e,t]})},isValidComponent=e=>e&&(typeof e=="object"||typeof e=="function"),renderChildren=(e,t,o)=>(0,import_shared.isFn)(e)?e(t,o):e,NocoBaseReactiveInternal=e=>{var t;const o=(0,import_react2.useContext)(import_react.SchemaComponentsContext),r=e.field,i=mergeChildren(renderChildren(e.children,r,r.form),(t=r.content)!=null?t:r.componentProps.children);if(r.display!=="visible")return null;const n=a=>{var l;return isValidComponent(a)?a:(l=import_shared.FormPath.getIn(o,a))!=null?l:a};return(a=>r.decoratorType?import_react2.default.createElement(n(r.decoratorType),r.decoratorProps,a):(0,import_jsx_runtime.jsx)(import_react2.Fragment,{children:a}))(r.componentType?import_react2.default.createElement(n(r.componentType),P(x({},r.componentProps),{value:r.value}),i):i)};NocoBaseReactiveInternal.displayName="NocoBaseReactiveInternal";const NocoBaseReactiveField=NocoBaseReactiveInternal;NocoBaseReactiveField.displayName="NocoBaseReactiveField";function createNocoBaseField(e){return new NocoBaseField$1(e)}let NocoBaseField$1=class{constructor(e){A(this,"props"),A(this,"initialized"),A(this,"loading"),A(this,"validating"),A(this,"submitting"),A(this,"selfModified"),A(this,"active"),A(this,"visited"),A(this,"mounted"),A(this,"unmounted"),A(this,"inputValues"),A(this,"inputValue"),A(this,"feedbacks"),A(this,"title"),A(this,"description"),A(this,"display"),A(this,"pattern"),A(this,"editable"),A(this,"disabled"),A(this,"readOnly"),A(this,"readPretty"),A(this,"visible"),A(this,"hidden"),A(this,"dataSource"),A(this,"validator"),A(this,"required"),A(this,"content"),A(this,"initialValue"),A(this,"value"),A(this,"data"),A(this,"decorator"),A(this,"component"),A(this,"decoratorProps"),A(this,"componentProps"),A(this,"decoratorType"),A(this,"componentType"),A(this,"path"),A(this,"form"),A(this,"address"),this.props=e,this.initialize()}initialize(){var e,t,o,r,i,n,a,l,c,u,m,d,p,h,g,_,f,v,b,S;const C=this.props.compile;this.pattern="readPretty",this.readPretty=!0,this.initialized=!0,this.loading=!1,this.validating=!1,this.submitting=!1,this.selfModified=!1,this.active=!1,this.visited=!0,this.mounted=!0,this.unmounted=!1,this.inputValues=[],this.inputValue=null,this.feedbacks=[],this.title=C(this.props.title||((e=this.props.schema)==null?void 0:e.title)),this.description=C(this.props.description||((t=this.props.schema)==null?void 0:t.description)),this.display="visible",this.editable=this.props.editable||((o=this.props.schema)==null?void 0:o["x-editable"]),this.disabled=this.props.disabled||((r=this.props.schema)==null?void 0:r["x-disabled"]),this.readOnly=this.props.readOnly||((i=this.props.schema)==null?void 0:i["x-read-only"]),this.visible=this.props.visible||((n=this.props.schema)==null?void 0:n["x-visible"]),this.hidden=this.props.hidden||((a=this.props.schema)==null?void 0:a["x-hidden"]),this.dataSource=C(this.props.dataSource||((l=this.props.schema)==null?void 0:l.enum)),this.validator=this.props.validator,this.required=this.props.required||!!((c=this.props.schema)!=null&&c.required),this.content=C(this.props.content||((u=this.props.schema)==null?void 0:u["x-content"])),this.initialValue=C(this.props.initialValue||((m=this.props.schema)==null?void 0:m.default)),this.value=C(this.props.value),this.data=this.props.data||((d=this.props.schema)==null?void 0:d["x-data"]),this.decorator=this.props.decorator?(0,import_shared.toArr)(this.props.decorator):[(p=this.props.schema)==null?void 0:p["x-decorator"],(h=this.props.schema)==null?void 0:h["x-decorator-props"]],this.component=this.props.component?(0,import_shared.toArr)(this.props.component):[(g=this.props.schema)==null?void 0:g["x-component"],(_=this.props.schema)==null?void 0:_["x-component-props"]],this.decoratorProps=((f=this.props.schema)==null?void 0:f["x-decorator-props"])||{},this.componentProps=((v=this.props.schema)==null?void 0:v["x-component-props"])||{},this.decoratorType=(b=this.props.schema)==null?void 0:b["x-decorator"],this.componentType=(S=this.props.schema)==null?void 0:S["x-component"],this.path={},this.form={},this.address={concat:import_lodash.default.noop}}};const NocoBaseField=e=>{const t=useCompile(),o=(0,import_react.useFieldSchema)(),r=(0,import_react2.useMemo)(()=>createNocoBaseField(P(x({},e),{compile:t})),[]);return Object.assign(r.componentProps,o["x-component-props"]),r.value=e.value,(0,import_jsx_runtime.jsx)(import_react.FieldContext.Provider,{value:r,children:(0,import_jsx_runtime.jsx)(NocoBaseReactiveField,{field:r,children:e.children})})},CollectionFieldUISchemaContext=import_react2.default.createContext({}),RefreshFieldSchemaContext=import_react2.default.createContext(import_lodash.default.noop),RefreshFieldSchemaProvider=({children:e,refresh:t})=>{const o=useRefreshFieldSchema(),r=(0,import_react2.useCallback)(i=>{t(),i!=null&&i.refreshParentSchema&&(o==null||o())},[o,t]);return(0,import_jsx_runtime.jsx)(RefreshFieldSchemaContext.Provider,{value:r,children:e})},RefreshComponentContext=import_react2.default.createContext(import_lodash.default.noop),RefreshComponentProvider=({children:e,refresh:t})=>(0,import_jsx_runtime.jsx)(RefreshComponentContext.Provider,{value:t,children:e}),useRefreshComponent=()=>import_react2.default.useContext(RefreshComponentContext),useRefreshFieldSchema=()=>import_react2.default.useContext(RefreshFieldSchemaContext),useCollectionFieldUISchema=()=>import_react2.default.useContext(CollectionFieldUISchemaContext)||{},CollectionFieldUISchemaProvider=e=>{const{children:t,fieldSchema:o}=e,r=useCollection(),i=useCollectionManager(),n=o==null?void 0:o.name,a=(0,import_react2.useMemo)(()=>{var l;if(!r)return null;const c=(l=o==null?void 0:o["x-component-props"])==null?void 0:l.field;return i.getCollectionField(o==null?void 0:o["x-collection-field"])||c||r.getField((c==null?void 0:c.name)||n)},[r,i,o,n]);return(0,import_jsx_runtime.jsx)(CollectionFieldUISchemaContext.Provider,{value:a,children:t})},toFieldProps=import_lodash.default.memoize((e,t)=>e.toFieldProps({scope:t})),useFieldProps=e=>{const t=(0,import_react.useExpressionScope)();return toFieldProps(e,t)},useBasePath=e=>{var t;const o=(0,import_react.useField)();return e.onlyRenderProperties?e.basePath||((t=o==null?void 0:o.address)==null?void 0:t.concat(e.name)):e.basePath||(o==null?void 0:o.address)},createMergedSchemaInstance=(e,t,o)=>{const r=e.toJSON();if(o){if(!r.properties)return e;const i=Object.keys(r.properties)[0],n=Object.values(r.properties)[0];return r.properties[i]=(0,import_shared.merge)(import_lodash.default.omit(t,"type","x-read-pretty"),n),new import_react.Schema(r)}return new import_react.Schema((0,import_shared.merge)(import_lodash.default.omit(t,"type","x-read-pretty"),r))},propertiesToReactElement=({schema:e,field:t,basePath:o,mapProperties:r,filterProperties:i,propsRecursion:n,values:a,isUseFormilyField:l})=>{const c=import_react.Schema.getOrderProperties(e);return c.length?(0,import_jsx_runtime.jsx)(import_react2.Fragment,{children:c.map(({schema:u,key:m},d)=>{const p=(t==null?void 0:t.address)||o;let h=u;if((0,import_shared.isFn)(r)){const _=r(u,m);_&&(h=_)}if((0,import_shared.isFn)(i)&&i(h,m)===!1)return null;const g=(0,import_shared.isBool)(n)&&n?(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{propsRecursion:!0,filterProperties:i,mapProperties:r,schema:h,name:m,basePath:p,values:import_lodash.default.get(a,m),isUseFormilyField:l}):(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{schema:h,name:m,basePath:p,values:import_lodash.default.get(a,m),isUseFormilyField:l});return h["x-component"]==="CollectionField"?(0,import_jsx_runtime.jsx)(IsInNocoBaseRecursionFieldContext.Provider,{value:!0,children:(0,import_jsx_runtime.jsx)(CollectionFieldUISchemaProvider,{fieldSchema:h,children:g})},`${d}-${m}`):(0,import_jsx_runtime.jsx)(IsInNocoBaseRecursionFieldContext.Provider,{value:!1,children:(0,import_jsx_runtime.jsx)(CollectionFieldUISchemaContext.Provider,{value:EMPTY_OBJECT,children:g})},`${d}-${m}`)})}):null},IsInNocoBaseRecursionFieldContext=import_react2.default.createContext(!1),useIsInNocoBaseRecursionFieldContext=()=>import_react2.default.useContext(IsInNocoBaseRecursionFieldContext),NocoBaseRecursionField=import_react2.default.memo(e=>{var t,o;const{schema:r,name:i,onlyRenderProperties:n,onlyRenderSelf:a,mapProperties:l,filterProperties:c,propsRecursion:u,values:m,isUseFormilyField:d=!0,uiSchema:p,parentSchema:h}=e,g=useBasePath(e),_=(0,import_react2.useRef)(null),f=(0,import_react2.useMemo)(()=>(_.current=null,new import_react.Schema(r)),[r]),{uiSchema:v,defaultValue:b}=useCollectionFieldUISchema(),S=(0,import_ahooks.useUpdate)(),{onChange:C}=(0,import_react2.useContext)(SchemaComponentOnChangeContext),y=_.current||f;!y.parent&&h&&(y.parent=h,!((o=(t=y.parent)==null?void 0:t.properties)!=null&&o[y.name])&&y.name&&import_lodash.default.set(y.parent,`properties.${y.name}`,y));const F=(0,import_react2.useCallback)(()=>{const M=y.parent;_.current=new import_react.Schema(y.toJSON(),M),M!=null&&M.properties&&Object.keys(M.properties).forEach(O=>{O===y.name&&(M.properties[O]=_.current)}),S(),C==null||C()},[y,C,S]),I=(0,import_react2.useMemo)(()=>p?createMergedSchemaInstance(y,p,n):v?(v.default=b,createMergedSchemaInstance(y,v,n)):y,[v,b,y,n,p]),T=useFieldProps(I),k=M=>{if(!a)return propertiesToReactElement({schema:y,field:M,basePath:g,mapProperties:l,filterProperties:c,propsRecursion:u,values:m,isUseFormilyField:d})},N=()=>(0,import_shared.isValid)(i)?I.type==="object"?n?k():(0,import_jsx_runtime.jsx)(import_react.ObjectField,P(x({},T),{name:i,basePath:g,children:k})):I.type==="array"?(0,import_jsx_runtime.jsx)(import_react.ArrayField,P(x({},T),{name:i,basePath:g})):I.type==="void"?n?k():(0,import_jsx_runtime.jsx)(import_react.VoidField,P(x({},T),{name:i,basePath:g,children:k})):d?(0,import_jsx_runtime.jsx)(import_react.Field,P(x({},T),{name:i,basePath:g})):(0,import_jsx_runtime.jsx)(NocoBaseField,{name:i,value:m,initialValue:m,basePath:g,schema:I}):k();return y?(0,import_jsx_runtime.jsx)(import_react.SchemaContext.Provider,{value:y,children:(0,import_jsx_runtime.jsx)(RefreshFieldSchemaProvider,{refresh:F,children:N()})}):(0,import_jsx_runtime.jsx)(import_react2.Fragment,{})});NocoBaseRecursionField.displayName="NocoBaseRecursionField";const PopupLevelContext=import_react2.default.createContext(0),ActionContainer=(0,import_react.observer)(e=>{const{getComponentByOpenMode:t,defaultOpenMode:o}=useOpenModeContext()||{},{openMode:r=e.openMode||o}=useActionContext(),i=import_react2.default.useContext(PopupLevelContext)+1,n=t(r)||ActionDrawer;return(0,import_jsx_runtime.jsx)(PopupLevelContext.Provider,{value:i,children:(0,import_jsx_runtime.jsx)(n,x({footerNodeName:"Action.Container.Footer",level:i||1},e))})},{displayName:"ActionContainer"});ActionContainer.Footer=(0,import_react.observer)(()=>{const e=(0,import_react.useField)(),t=(0,import_react.useFieldSchema)();return(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{basePath:e.address,schema:t,onlyRenderProperties:!0})},{displayName:"ActionContainer.Footer"});const ActionLink=withDynamicSchemaProps((0,import_react.observer)(e=>(0,import_jsx_runtime.jsx)(Action$1,P(x({},e),{component:e.component||"a",className:(0,import_classnames.default)("nb-action-link",e.className),isLink:!0}))),{displayName:"ActionLink"}),useStyles$8=genStyleHook("nb-action",e=>{const{componentCls:t}=e;return{[t]:{position:"relative","&:hover":{"> .general-schema-designer":{display:"block"}},"&.nb-action-link":{margin:"-12px",padding:"12px",".nb-action-title":{marginInlineStart:"0px"}},"> .general-schema-designer":{position:"absolute",zIndex:999,top:"0",bottom:"0",left:"0",right:"0",display:"none",background:"var(--colorBgSettingsHover)",border:"0",pointerEvents:"none","&.nb-in-template":{background:"var(--colorTemplateBgSettingsHover)"},"> .general-schema-designer-icons":{position:"absolute",right:"2px",top:"2px",lineHeight:"16px",pointerEvents:"all",".ant-space-item":{backgroundColor:e.colorSettings,color:"#fff",lineHeight:"16px",width:"16px",paddingLeft:"1px",alignSelf:"stretch"}}},".ant-btn-icon":{marginInlineEnd:"0px !important"},".nb-action-title":{marginInlineStart:`${e.controlPaddingHorizontalSM}px`}}}}),useGetAriaLabelOfAction=e=>{const t=useRecord(),o=useRecordIndex(),r=(0,import_react.useFieldSchema)(),i=useCompile(),n=r["x-component"],a=typeof n=="string"?n:(n==null?void 0:n.displayName)||(n==null?void 0:n.name);let l=(t==null?void 0:t.name)||(t==null?void 0:t.title)||(o!=null?String(o):""),c=r["x-action"],{name:u}=useCollection_deprecated(),{name:m}=useBlockContext()||{};const d=e||i(r.title);return u=u?`-${u}`:"",m=m&&m!=="action"?`-${m}`:"",c=c?`-${c}`:"",l=l?`-${l}`:"",{getAriaLabel:(0,import_react2.useCallback)(p=>(p=p?`-${p}`:"",`action-${a}-${d}${c}${u}${m}${l}${p}`),[c,d,m,u,a,l])}},useA=()=>({run(){return z(this,null,function*(){})}}),handleError=console.log,Action=withDynamicSchemaProps(import_react2.default.memo(e=>{var t;const o=useProps(e),{popover:r,containerRefKey:i,component:n,useAction:a=useA,className:l,icon:c,title:u,onClick:m,style:d,loading:p,openSize:h,disabled:g,actionCallback:_,confirm:f,addChild:v,onMouseEnter:b,refreshDataBlockRequest:S,confirmTitle:C}=o,y=W(o,["popover","containerRefKey","component","useAction","className","icon","title","onClick","style","loading","openSize","disabled","actionCallback","confirm","addChild","onMouseEnter","refreshDataBlockRequest","confirmTitle"]),F=useDesigner(),I=(0,import_react.useField)(),T=(0,import_react.useFieldSchema)(),k=useCompile(),N=useCollectionRecordData(),M=k((t=T["x-component-props"])==null?void 0:t.confirm)||f,O=(0,import_react2.useMemo)(()=>{var H;return((H=T==null?void 0:T["x-linkage-rules"])==null?void 0:H.filter(J=>!J.disabled))||[]},[T==null?void 0:T["x-linkage-rules"]]),{designable:D}=useDesignable(),R=useComponent(n)||n,$=useVariables$1(),w=useLocalVariables$1(),{visibleWithURL:j,setVisibleWithURL:B}=usePopupUtils(),{setSubmitted:L}=useActionContext(),{getAriaLabel:E}=useGetAriaLabelOfAction(u),V=useCollectionParentRecordData(),U=useApp(),{getAllDataBlocks:q}=useAllDataBlocks(),G=(0,import_react.useForm)();(0,import_react2.useEffect)(()=>{I.stateOfLinkageRules&&setInitialActionState(I);const H=(0,import_shared.uid)(),J=[];return setTimeout(()=>{G.addEffects(H,()=>{forEachLinkageRule(O,(X,Q)=>{J.push((0,import_reactive.reaction)(()=>[getVariableValuesInCondition({linkageRules:O,localVariables:w})].map(oe=>JSON.stringify(oe)).join(","),()=>{I.stateOfLinkageRules={},linkageAction({operator:X.operator,field:I,condition:Q.condition,variables:$,localVariables:w,conditionType:Q.conditionType,variableNameOfLeftCondition:"$nRecord"},U.jsonLogic)},{fireImmediately:!0,equals:import_lodash.isEqual}))})})}),()=>{G.removeEffects(H),J.forEach(X=>{X()})}},[O,N]);const Y=(0,import_react2.useCallback)(H=>{b==null||b(H)},[b]),K=(0,import_react2.useMemo)(()=>m&&((H,J)=>z(void 0,null,function*(){var X,Q;yield m==null?void 0:m(H,J);const oe=((Q=(X=T["x-action-settings"])==null?void 0:X.onSuccess)==null?void 0:Q.blocksToRefresh)||[];oe.length>0&&q().forEach(ee=>{var ie;if(oe.includes(ee.uid))try{(ie=ee.service)==null||ie.refresh()}catch(ae){console.error("Failed to refresh block:",ee.uid,ae)}})})),[m,T,q]);return(0,import_jsx_runtime.jsx)(InternalAction,x({containerRefKey:i,fieldSchema:T,designable:D,field:I,icon:c,loading:p,handleMouseEnter:Y,tarComponent:R,className:l,type:e.type,Designer:F,onClick:K,confirm:M,confirmTitle:C,popover:r,addChild:v,recordData:N,title:u,style:d,propsDisabled:g,useAction:a,visibleWithURL:j,setVisibleWithURL:B,setSubmitted:L,getAriaLabel:E,parentRecordData:V,actionCallback:_},y))}),{displayName:"Action"}),InternalAction=(0,import_react.observer)(function e(t){var o,r,i,n,a;const l=t,{containerRefKey:c,fieldSchema:u,designable:m,field:d,icon:p,loading:h,handleMouseEnter:g,tarComponent:_,className:f,type:v,Designer:b,onClick:S,confirm:C,confirmTitle:y,popover:F,addChild:I,recordData:T,title:k,style:N,propsDisabled:M,useAction:O,actionCallback:D,visibleWithURL:R,setVisibleWithURL:$,setSubmitted:w,getAriaLabel:j,parentRecordData:B}=l,L=W(l,["containerRefKey","fieldSchema","designable","field","icon","loading","handleMouseEnter","tarComponent","className","type","Designer","onClick","confirm","confirmTitle","popover","addChild","recordData","title","style","propsDisabled","useAction","actionCallback","visibleWithURL","setVisibleWithURL","setSubmitted","getAriaLabel","parentRecordData"]),[E,V]=(0,import_react2.useState)(!1),{wrapSSR:U,componentCls:q,hashId:G}=useStyles$8(),[Y,K]=(0,import_react2.useState)(!1),H=u["x-toolbar-props"]||u["x-designer-props"],J=(o=u==null?void 0:u["x-component-props"])==null?void 0:o.openMode,X=(r=u==null?void 0:u["x-component-props"])==null?void 0:r.openSize,Q=(i=u==null?void 0:u["x-component-props"])==null?void 0:i.refreshDataBlockRequest,{modal:oe}=import_antd.App.useApp(),ee=(0,import_react.useForm)(),ie=useACLActionParamsContext(),{run:ae,element:ue,disabled:me}=(O==null?void 0:O(D))||{},he=ee.disabled||d.disabled||((n=d.data)==null?void 0:n.disabled)||M||me,xe=(0,import_react2.useMemo)(()=>{var se;return P(x({},N),{opacity:m&&(((se=d==null?void 0:d.data)==null?void 0:se.hidden)||!ie)&&.1,color:he?"rgba(0, 0, 0, 0.25)":N==null?void 0:N.color})},[ie,m,(a=d==null?void 0:d.data)==null?void 0:a.hidden,N,he]),de={designable:m,field:d,aclCtx:ie,icon:p,loading:h,disabled:he,buttonStyle:xe,handleMouseEnter:g,tarComponent:_,designerProps:H,componentCls:q,hashId:G,className:f,others:L,getAriaLabel:j,type:v,Designer:b,onClick:S,refreshDataBlockRequest:Q,fieldSchema:u,setVisible:V,run:ae,confirm:C,modal:oe,setSubmitted:w,confirmTitle:y,title:k},ge=(0,import_react2.useCallback)(se=>{V==null||V(se),$==null||$(se)},[$]);let pe=(0,import_jsx_runtime.jsx)(PopupVisibleProvider,{visible:!1,children:(0,import_jsx_runtime.jsxs)(ActionContextProvider,{button:RenderButton(de),visible:E||R,setVisible:ge,formValueChanged:Y,setFormValueChanged:K,openMode:J,openSize:X,containerRefKey:c,fieldSchema:u,setSubmitted:w,children:[F&&(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{basePath:d.address,onlyRenderProperties:!0,schema:u}),!F&&(0,import_jsx_runtime.jsx)(RenderButton,x({},de)),(0,import_jsx_runtime.jsx)(VariablePopupRecordProvider,{children:!F&&t.children}),ue]})});return isBulkEditAction(u)&&(pe=(0,import_jsx_runtime.jsx)(TabsContextProvider,{children:pe})),U(I?(0,import_jsx_runtime.jsx)(TreeRecordProvider,{parent:T,children:pe}):pe)});InternalAction.displayName="InternalAction";Action.Popover=function e(t){const{button:o,visible:r,setVisible:i}=useActionContext(),n=(0,import_jsx_runtime.jsx)(import_react_error_boundary.ErrorBoundary,{FallbackComponent:ErrorFallback,onError:handleError,children:t.children});return(0,import_jsx_runtime.jsx)(StablePopover,P(x({},t),{destroyTooltipOnHide:!0,open:r,onOpenChange:a=>{i(a)},content:n,children:o}))};Action.Popover.displayName="Action.Popover";Action.Popover.Footer=e=>(0,import_jsx_runtime.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",width:"100%"},children:e.children});Action.Popover.Footer.displayName="Action.Popover.Footer";Action.Link=ActionLink;Action.Designer=ActionDesigner;Action.Drawer=ActionDrawer;Action.Modal=ActionModal;Action.Container=ActionContainer;Action.Page=ActionPage;const Action$1=Action;function isBulkEditAction(e){return e["x-action"]==="customize:bulkEdit"}const RenderButton=({designable:e,field:t,aclCtx:o,icon:r,loading:i,disabled:n,buttonStyle:a,handleMouseEnter:l,tarComponent:c,designerProps:u,componentCls:m,hashId:d,className:p,others:h,getAriaLabel:g,type:_,Designer:f,onClick:v,refreshDataBlockRequest:b,fieldSchema:S,setVisible:C,run:y,confirm:F,modal:I,setSubmitted:T,confirmTitle:k,title:N})=>{const{getDataBlockRequest:M}=useDataBlockRequestGetter(),{t:O}=(0,import_react_i18next.useTranslation)(),{isPopupVisibleControlledByURL:D}=usePopupSettings(),{openPopup:R}=usePopupUtils(),$=useVariables$1(),w=useLocalVariables$1(),j=(0,import_react2.useRef)(null),B=useCompile(),L=(0,import_react.useForm)();j.current=R;const E={variables:$,localVariables:w},V=(0,import_react2.useCallback)((U,q=!0)=>z(void 0,null,function*(){var G;if(q&&(0,import_client.isPortalInBody)(U.target))return;U.preventDefault(),U.stopPropagation();const Y=yield getVariableValue(O(F==null?void 0:F.title,{title:B(S.title)}),E),K=yield getVariableValue(O(F==null?void 0:F.content,{title:B(S.title)}),E);if(!n&&o){const H=()=>{v?v(U,()=>{var J,X;b!==!1&&(T==null||T(!0),(X=(J=M())==null?void 0:J.refresh)==null||X.call(J))}):isBulkEditAction(S)||!D()?(C(!0),y==null||y()):["view","update","create","customize:popup"].includes(S["x-action"])&&S["x-uid"]?j.current():(C(!0),y==null||y())};(F==null?void 0:F.enable)!==!1&&F!=null&&F.content?(yield(G=L==null?void 0:L.submit)==null?void 0:G.call(L),I.confirm({title:O(Y,{title:k||N||(t==null?void 0:t.title)}),content:O(K,{title:k||N||(t==null?void 0:t.title)}),onOk:H})):H()}}),[o,F==null?void 0:F.content,F==null?void 0:F.enable,F==null?void 0:F.title,k,n,t,S,D,I,v,b,y,T,C,O,N,M]);return(0,import_jsx_runtime.jsx)(RenderButtonInner,x({designable:e,field:t,aclCtx:o,icon:r,loading:i,disabled:n,buttonStyle:a,handleMouseEnter:l,getAriaLabel:g,handleButtonClick:V,tarComponent:c,componentCls:m,hashId:d,className:p,type:_,Designer:f,designerProps:u,title:N},h))};RenderButton.displayName="RenderButton";const RenderButtonInner=(0,import_react.observer)(e=>{var t,o;const r=e,{designable:i,field:n,aclCtx:a,icon:l,loading:c,disabled:u,buttonStyle:m,handleMouseEnter:d,getAriaLabel:p,handleButtonClick:h,tarComponent:g,componentCls:_,hashId:f,className:v,type:b,Designer:S,designerProps:C,title:y,isLink:F,onlyIcon:I}=r,T=W(r,["designable","field","aclCtx","icon","loading","disabled","buttonStyle","handleMouseEnter","getAriaLabel","handleButtonClick","tarComponent","componentCls","hashId","className","type","Designer","designerProps","title","isLink","onlyIcon"]),{t:k}=(0,import_react_i18next.useTranslation)(),N=(0,import_react2.useCallback)((0,import_debounce.default)((B,L=!0)=>{h(B,L)},300,{leading:!0,trailing:!1}),[h]);if((0,import_react2.useEffect)(()=>()=>{N.cancel()},[]),!i&&((t=n==null?void 0:n.data)!=null&&t.hidden||!a))return null;const M=y??(n==null?void 0:n.title),O=typeof M=="string"?k(M,{ns:NAMESPACE_UI_SCHEMA}):M,D=m,{opacity:R}=D,$=W(D,["opacity"]),w=F&&R?{opacity:R}:void 0,j=(0,import_react2.useMemo)(()=>import_react2.default.forwardRef((B,L)=>{var E=B,{component:V=g||import_antd.Button,icon:U,onlyIcon:q,children:G}=E,Y=W(E,["component","icon","onlyIcon","children"]);return(0,import_jsx_runtime.jsxs)(V,P(x({ref:L},Y),{children:[q?(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:Y.title,children:(0,import_jsx_runtime.jsx)("span",{style:{padding:3},children:U&&typeof U=="string"?(0,import_jsx_runtime.jsx)(Icon,{type:U}):U})}):(0,import_jsx_runtime.jsx)("span",{style:{paddingRight:3},children:U&&typeof U=="string"?(0,import_jsx_runtime.jsx)(Icon,{type:U}):U}),q?G[1]:G]}))}),[I]);return(0,import_jsx_runtime.jsxs)(SortableItem,P(x({role:"button","aria-label":p()},T),{onMouseEnter:d,loading:((o=n==null?void 0:n.data)==null?void 0:o.loading)||c,icon:typeof l=="string"?(0,import_jsx_runtime.jsx)(Icon,{type:l,style:w}):l,disabled:u,style:F?$:m,onClick:N,component:I||g?j:g||import_antd.Button,className:(0,import_classnames.default)(_,f,v,"nb-action"),type:b==="danger"?void 0:b,title:O,onlyIcon:I,children:[!I&&O&&(0,import_jsx_runtime.jsx)("span",{className:l?"nb-action-title":null,style:w,children:O}),(0,import_jsx_runtime.jsx)(S,x({},C))]}))});RenderButtonInner.displayName="RenderButtonInner";const ActionBarContext=import_react2.default.createContext({container:null}),ActionBarProvider=e=>{var t=e,{children:o}=t,r=W(t,["children"]);return(0,import_jsx_runtime.jsx)(ActionBarContext.Provider,{value:r,children:o})},useActionBarContext=()=>(0,import_react2.useContext)(ActionBarContext),Portal=e=>{const t=(0,import_react.useFieldSchema)(),{container:o,parentComponents:r=["BlockItem","CardItem"]}=useActionBarContext();return(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:o&&r.includes(t.parent["x-component"])?(0,import_react_dom.createPortal)(e.children,o):e.children})},InternalActionBar=e=>{var t;const{forceProps:o={}}=useActionBarContext(),r=x(x({},useProps(e)),o),{layout:i="two-columns",style:n,spaceProps:a}=r,l=W(r,["layout","style","spaceProps"]),c=(0,import_react.useFieldSchema)(),{render:u}=useSchemaInitializerRender(c["x-initializer"],c["x-initializer-props"]),{designable:m}=useDesignable();if(i==="one-column")return(0,import_jsx_runtime.jsx)(Portal,{children:(0,import_jsx_runtime.jsx)(DndContext,{children:(0,import_jsx_runtime.jsxs)("div",P(x({style:x({display:"flex",alignItems:"center",gap:8,marginTop:0},n)},l),{className:(0,import_css.cx)(l.className,"nb-action-bar"),children:[e.children&&(0,import_jsx_runtime.jsx)("div",{children:(0,import_jsx_runtime.jsx)(import_antd.Space,P(x({},a),{style:x({flexWrap:"wrap"},(a==null?void 0:a.style)||{}),children:c.mapProperties((p,h)=>(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{name:h,schema:p},h))}))}),u({style:{margin:"0 !important"}})]}))})});const d=Object.keys((t=c.properties)!=null?t:{}).length>0;return(0,import_jsx_runtime.jsxs)("div",P(x({style:!m&&!d?void 0:x({display:"flex",justifyContent:"space-between",alignItems:"center",overflowX:"auto",flexShrink:0,gap:"8px"},n)},l),{className:(0,import_css.cx)(l.className,"nb-action-bar"),children:[(0,import_jsx_runtime.jsx)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",width:"100%",overflow:"hidden",flexWrap:"wrap",gap:"8px"},children:(0,import_jsx_runtime.jsxs)(DndContext,{children:[(0,import_jsx_runtime.jsx)(import_antd.Space,P(x({},a),{style:{flexWrap:"wrap"},children:c.mapProperties((p,h)=>p["x-align"]!=="left"?null:(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{name:h,schema:p},h))})),(0,import_jsx_runtime.jsx)(import_antd.Space,P(x({},a),{style:x({flexWrap:"wrap"},(a==null?void 0:a.style)||{}),children:c.mapProperties((p,h)=>p["x-align"]==="left"?null:(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{name:h,schema:p},h))}))]})}),u()]}))},ActionBar=withDynamicSchemaProps(e=>(0,import_jsx_runtime.jsx)(InternalActionBar,x({},e)),{displayName:"ActionBar"}),useGetAriaLabelOfPopover=()=>{const e=(0,import_react.useFieldSchema)(),t=e["x-component"],o=typeof t=="string"?t:(t==null?void 0:t.displayName)||(t==null?void 0:t.name),r=useCompile();let{name:i}=useCollection_deprecated(),n=r(e.title);return i=i?`-${i}`:"",n=n?`-${n}`:"",{getAriaLabel:(0,import_react2.useCallback)(a=>(a=a?`-${a}`:"",`popover-${o}${i}${n}${a}`),[i,o,n])}},requestChartData=e=>function(){return z(this,null,function*(){var t;try{const o=yield this.api.request(e);return(t=o==null?void 0:o.data)==null?void 0:t.data}catch{return[]}})},FormComponent$1=e=>{const t=e,{form:o,children:r}=t,i=W(t,["form","children"]),n=(0,import_react.useField)(),a=(0,import_react.useFieldSchema)(),l=useAttach(o.createVoidField(P(x({},n.props),{basePath:""})));return(0,import_jsx_runtime.jsx)(import_react.FieldContext.Provider,{value:void 0,children:(0,import_jsx_runtime.jsx)(import_react.FormContext.Provider,{value:o,children:(0,import_jsx_runtime.jsx)(import_antd_v5.FormLayout,P(x({layout:"vertical"},i),{children:(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{basePath:l.address,schema:a,onlyRenderProperties:!0})}))})})},Def$1=e=>e.children,FormDecorator$1=e=>{const t=e,{form:o,children:r,disabled:i}=t,n=W(t,["form","children","disabled"]),a=(0,import_react.useField)(),l=(0,import_react.useFieldSchema)(),c=useAttach(o.createVoidField(P(x({},a.props),{basePath:""}))),u=useComponent(l["x-component"],Def$1);return(0,import_react2.useEffect)(()=>{o.disabled=i||a.disabled},[i,a.disabled]),(0,import_jsx_runtime.jsx)(import_antd.ConfigProvider,{componentDisabled:i,children:(0,import_jsx_runtime.jsx)(import_react.FieldContext.Provider,{value:void 0,children:(0,import_jsx_runtime.jsx)(import_react.FormContext.Provider,{value:o,children:(0,import_jsx_runtime.jsx)(import_antd_v5.FormLayout,P(x({layout:"vertical"},n),{children:(0,import_jsx_runtime.jsx)(import_react.FieldContext.Provider,{value:c,children:(0,import_jsx_runtime.jsx)(u,P(x({},a.componentProps),{children:(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{basePath:c.address,schema:l,onlyRenderProperties:!0})}))})}))})})})},getRequestParams=e=>{const{request:t,initialValue:o}=e;return t||(()=>Promise.resolve({data:o}))},useDefaultValues=(e={},t={})=>useRequest(getRequestParams(t),e),FormBlockContext=(0,import_react2.createContext)(null);FormBlockContext.displayName="FormBlockContext";const Form$1=(0,import_react.observer)(e=>{const t=e,{request:o,effects:r,initialValue:i,useValues:n=useDefaultValues}=t,a=W(t,["request","effects","initialValue","useValues"]),l=(0,import_react.useFieldSchema)(),c=(0,import_react.useField)(),u=(0,import_react2.useMemo)(()=>(0,import_core.createForm)({effects:r}),[]),m=n({uid:l["x-uid"],onSuccess(p){return z(this,null,function*(){yield u.reset(),u.setValues(p==null?void 0:p.data),u.setInitialValues(p==null?void 0:p.data)})}},e),d=(0,import_react2.useContext)(FormBlockContext);return(0,import_jsx_runtime.jsx)(FormBlockContext.Provider,{value:{parent:d,form:u,result:m,field:c,fieldSchema:l},children:(0,import_jsx_runtime.jsx)(import_antd.Spin,{spinning:(m==null?void 0:m.loading)||!1,children:l["x-decorator"]==="Form"?(0,import_jsx_runtime.jsx)(FormDecorator$1,x({form:u},a)):(0,import_jsx_runtime.jsx)(FormComponent$1,x({form:u},a))})})},{displayName:"Form"});Form$1.Designer=function e(){const{name:t,title:o}=useCollection_deprecated(),r=useSchemaTemplate(),{componentNamePrefix:i}=useBlockTemplateContext();return(0,import_jsx_runtime.jsxs)(GeneralSchemaDesigner,{template:r,title:o||t,children:[(0,import_jsx_runtime.jsx)(SchemaSettingsTemplate,{componentName:`${i}Form`,collectionName:t}),(0,import_jsx_runtime.jsx)(SchemaSettingsDivider,{}),(0,import_jsx_runtime.jsx)(SchemaSettingsRemove,{removeParentsIfNoChildren:!0,breakRemoveOn:{"x-component":"Grid"}})]})};const formV1Settings=new SchemaSettings({name:"FormV1Settings",items:[{name:"template",Component:SchemaSettingsTemplate,useComponentProps(){const{name:e}=useCollection_deprecated(),{componentNamePrefix:t}=useBlockTemplateContext();return{componentName:`${t}Form`,collectionName:e}}},{name:"divider",type:"divider"},{name:"remove",type:"remove",componentProps:{removeParentsIfNoChildren:!0,breakRemoveOn:{"x-component":"Grid"}}}]}),FormDesigner=()=>{const{name:e,title:t}=useCollection_deprecated(),o=useSchemaTemplate();return(0,import_jsx_runtime.jsx)(GeneralSchemaDesigner,{schemaSettings:"FormSettings",template:o,title:t||e})},ReadPrettyFormDesigner=()=>{const{name:e,title:t}=useCollection_deprecated(),o=useSchemaTemplate();return(0,import_jsx_runtime.jsx)(GeneralSchemaDesigner,{schemaSettings:"ReadPrettyFormSettings",template:o,title:t||e})},DetailsDesigner=()=>{const{name:e,title:t}=useCollection_deprecated(),o=useSchemaTemplate();return(0,import_jsx_runtime.jsx)(GeneralSchemaDesigner,{schemaSettings:"FormDetailsSettings",template:o,title:t||e})},FilterDesigner=()=>{const{name:e,title:t}=useCollection_deprecated(),o=useSchemaTemplate();return(0,import_jsx_runtime.jsx)(GeneralSchemaDesigner,{schemaSettings:"blockSettings:filterForm",template:o,title:t||e})},defaultFieldNames$1={label:"label",value:"value",color:"color",options:"children"};function flatData$1(e,t){const o=[];if(!Array.isArray(e))return o;for(let r=0;r<e.length;r++){const i=e[r][t.options];Array.isArray(i)&&o.push(...flatData$1(i,t)),o.push(x({},e[r]))}return o}function findOptions(e,t,o){if(!e)return[];const r=[];for(const i of o){const n=e.find(a=>a[t.value]==i)||{value:i,label:i&&i.toString()};r.push(n)}return r}function getCurrentOptions(e,t,o){const r=flatData$1(t,o),i=(0,import_lodash.castArray)(e).map(n=>(0,import_client.isPlainObject)(n)?n[o.value]:n);return findOptions(r,o,i)}const ReadPrettyInternal=(0,import_react.observer)(e=>{const[t,o]=(0,import_react2.useState)(!0),[r,i]=(0,import_react2.useState)([]),n=(0,import_react.useField)(),a=useCollectionField();return(0,import_react2.useEffect)(()=>{var l;const c=x(x({},defaultFieldNames$1),e.fieldNames),u=n.dataSource||e.options||(a==null?void 0:a.uiSchema.enum)||[],m=getCurrentOptions(n.value,u,c);if(!(0,import_shared.isValid)(e.value)&&!m.length||(0,import_core.isArrayField)(n)&&((l=n==null?void 0:n.value)==null?void 0:l.length)===0)return;const d=n.value!==null&&m.map((p,h)=>(0,import_jsx_runtime.jsx)(import_antd.Tag,{color:p[c.color],icon:p.icon,children:p[c.label]},h));i(d),o(!1)},[a==null?void 0:a.uiSchema.enum,n,n.dataSource,n.value,e.fieldNames,e.options,e.value]),t?null:(0,import_jsx_runtime.jsx)(EllipsisWithTooltip,{ellipsis:e.ellipsis,children:r})},{displayName:"SelectReadPretty"}),ReadPretty$b=withPopupWrapper(ReadPrettyInternal),isEmptyObject=e=>!(0,import_shared.isValid)(e)||typeof e=="object"&&Object.keys(e).length===0,ObjectSelect=e=>{const t=e,{value:o,options:r,onChange:i,fieldNames:n,mode:a,loading:l,rawOptions:c,defaultValue:u}=t,m=W(t,["value","options","onChange","fieldNames","mode","loading","rawOptions","defaultValue"]),d=p=>{var h;if(isEmptyObject(p))return;const g=(0,import_shared.toArr)(p).filter(f=>f).map(f=>(0,import_client.isPlainObject)(f)?f[n.value]:f),_=(h=getCurrentOptions(g,r,n))==null?void 0:h.map(f=>({label:f[n.label],value:f[n.value]}));return["tags","multiple"].includes(a)||e.multiple?_:_.shift()};return(0,import_jsx_runtime.jsx)(import_antd.Select,x({role:"button","data-testid":`select-object-${a||"single"}`,value:d(o),defaultValue:d(u),allowClear:{clearIcon:(0,import_jsx_runtime.jsx)(import_icons.CloseCircleFilled,{role:"button","aria-label":"icon-close-select"})},labelInValue:!0,notFoundContent:l?(0,import_jsx_runtime.jsx)(import_antd.Spin,{}):(0,import_jsx_runtime.jsx)(import_antd.Empty,{image:import_antd.Empty.PRESENTED_IMAGE_SIMPLE}),options:r,fieldNames:n,showSearch:!0,popupMatchSelectWidth:!1,filterOption:(p,h)=>{var g;return((g=h==null?void 0:h[n.label||"label"])!=null?g:"").includes(p)},filterSort:(p,h)=>{var g,_;return((g=p==null?void 0:p[n.label||"label"])!=null?g:"").toLowerCase().localeCompare(((_=h==null?void 0:h[n.label||"label"])!=null?_:"").toLowerCase())},onChange:p=>{const h=getCurrentOptions((0,import_shared.toArr)(p).map(g=>g.value),c||r,n);["tags","multiple"].includes(a)||e.multiple?i==null||i(h):i==null||i(h.shift()||null)},mode:a,tagRender:p=>(0,import_jsx_runtime.jsx)(import_antd.Tag,P(x({role:"button","aria-label":p.label,closeIcon:(0,import_jsx_runtime.jsx)(import_icons.CloseOutlined,{role:"button","aria-label":"icon-close-tag"})},p),{children:p.label})),maxTagCount:"responsive"},m))},filterOption=(e,t)=>{var o;return((o=t==null?void 0:t.label)!=null?o:"").toLowerCase().includes((e||"").toLowerCase())},InternalSelect=(0,import_react.connect)(e=>{const t=e,{objectValue:o,loading:r,value:i,rawOptions:n,defaultValue:a}=t,l=W(t,["objectValue","loading","value","rawOptions","defaultValue"]),c=useCompile();let u=e.multiple?"multiple":e.mode;if(u&&!["multiple","tags"].includes(u)&&(u=void 0),o)return(0,import_jsx_runtime.jsx)(ObjectSelect,P(x({rawOptions:n},l),{defaultValue:a,value:i,mode:u,loading:r}));const m=d=>["tags","multiple"].includes(e.mode)||e.multiple?d?(0,import_shared.toArr)(d):void 0:d;return(0,import_jsx_runtime.jsx)(import_antd.Select,P(x({role:"button","data-testid":`select-${u||"single"}`,showSearch:!0,filterOption,allowClear:{clearIcon:(0,import_jsx_runtime.jsx)(import_icons.CloseCircleFilled,{role:"button","aria-label":"icon-close-select"})},popupMatchSelectWidth:!1,notFoundContent:r?(0,import_jsx_runtime.jsx)(import_antd.Spin,{}):(0,import_jsx_runtime.jsx)(import_antd.Empty,{image:import_antd.Empty.PRESENTED_IMAGE_SIMPLE}),value:m(i),defaultValue:m(a),tagRender:d=>(0,import_jsx_runtime.jsx)(import_antd.Tag,P(x({role:"button","aria-label":d.label,closeIcon:(0,import_jsx_runtime.jsx)(import_icons.CloseOutlined,{role:"button","aria-label":"icon-close-tag"})},d),{children:d.label}))},c(l)),{onChange:d=>{var p;(p=e.onChange)==null||p.call(e,d===void 0?null:d)},mode:u,maxTagCount:"responsive"}))},(0,import_react.mapProps)({dataSource:"options"},(e,t)=>{var o,r,i,n;const{value:a,options:l}=e,c=(0,import_lodash.every)(l,u=>u.value!==a)&&((n=(i=(r=(o=t==null?void 0:t.data)==null?void 0:o.dataSource)==null?void 0:r.find)==null?void 0:i.call(r,u=>u.value===a))==null?void 0:n.label)||a;return P(x({},e),{value:c,fieldNames:x(x({},defaultFieldNames$1),e.fieldNames),suffixIcon:t!=null&&t.loading||t!=null&&t.validating?(0,import_jsx_runtime.jsx)(import_icons.LoadingOutlined,{}):e.suffixIcon})}),(0,import_react.mapReadPretty)(ReadPretty$b)),Select=InternalSelect;Select.ReadPretty=ReadPretty$b;const getValues=(e,t)=>(0,import_lodash.castArray)(e).filter(o=>o!=null).map(o=>typeof o=="object"?o[t.value]:o),ReadPretty$a=(0,import_react.observer)(e=>{const t=x(x({},defaultFieldNames$1),e.fieldNames),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),i=useRecord(),{snapshot:n}=useActionContext(),{data:a}=useRequest(n?()=>z(void 0,null,function*(){return{data:i[r.name]}}):P(x({action:"list"},e.service),{params:{paginate:!1,filter:{[t.value]:{$in:getValues(o.value,t)}}}}),{refreshDeps:[e.service,o.value]});return(0,import_jsx_runtime.jsx)(Select.ReadPretty,P(x({},e),{options:a==null?void 0:a.data}))},{displayName:"ReadPretty"}),EMPTY$1="N/A",InternalRemoteSelect=withDynamicSchemaProps((0,import_react.connect)(e=>{var t,o;const r=e,{fieldNames:i={},service:n={},wait:a=300,value:l,defaultValue:c,objectValue:u,manual:m=!0,mapOptions:d,targetField:p,CustomDropdownRender:h,optionFilter:g,dataSource:_,toOptionsItem:f=K=>K,popupMatchSelectWidth:v=!1,onSuccess:b}=r,S=W(r,["fieldNames","service","wait","value","defaultValue","objectValue","manual","mapOptions","targetField","CustomDropdownRender","optionFilter","dataSource","toOptionsItem","popupMatchSelectWidth","onSuccess"]),C=useDataSourceKey(),y=useDataSourceHeaders(_||C),F=(0,import_react2.useRef)(!1),I=(0,import_react.useFieldSchema)(),T=((t=I["x-component-props"])==null?void 0:t.addMode)==="quickAdd",{getField:k}=useCollection_deprecated(),N=(0,import_react2.useRef)(null),{getCollectionJoinField:M,getInterface:O}=useCollectionManager_deprecated(),D=I["x-collection-field"]||I.name,R=k(D)||M(D),$=p||(R==null?void 0:R.target)&&(i==null?void 0:i.label)&&M(`${R.target}.${i.label}`),w=(0,import_react2.useMemo)(()=>{var K;if($!=null&&$.interface){const H=O($.interface),J=((K=H==null?void 0:H.filterable)==null?void 0:K.operators[0].value)||"$includes";return $.type==="string"?"$includes":J}return"$includes"},[$]),j=useCompile(),B=(0,import_react2.useCallback)(K=>{try{return K.filter(H=>["number","string"].includes(typeof H[i.value])||!H[i.value]).map(H=>{var J;let X=j(H[i.label]);if((J=$==null?void 0:$.uiSchema)!=null&&J.enum)if(Array.isArray(X))X=X.map((Q,oe)=>{const ee=$.uiSchema.enum.find(ie=>ie.value===Q);return ee?(0,import_jsx_runtime.jsx)(import_antd.Tag,{role:"button",color:ee.color,style:{marginRight:3},children:(ee==null?void 0:ee.label)||Q},oe):(0,import_jsx_runtime.jsx)(import_antd.Tag,{role:"button",children:Q},Q)}).reverse();else{const Q=$.uiSchema.enum.find(oe=>oe.value===X);Q&&(X=(0,import_jsx_runtime.jsx)(import_antd.Tag,{role:"button",color:Q.color,children:Q.label}))}return($==null?void 0:$.type)==="date"&&(X=(0,import_dayjs.default)(X).format("YYYY-MM-DD")),d?d({[i.label]:X||EMPTY$1,[i.value]:H[i.value]}):P(x({},(0,import_lodash.omit)(H,"style")),{[i.label]:X||EMPTY$1,[i.value]:H[i.value]})}).filter(Boolean)}catch(H){return console.error(H),K}},[$==null?void 0:$.uiSchema,i]),{data:L,run:E,loading:V}=useRequest(P(x({action:"list"},n),{headers:y,params:P(x({pageSize:200},n==null?void 0:n.params),{filter:(o=n==null?void 0:n.params)==null?void 0:o.filter})}),x({manual:m,debounceWait:a,onSuccess:b},n.defaultParams?{defaultParams:[n.defaultParams]}:{})),U=(0,import_react2.useMemo)(()=>JSON.stringify({service:n,fieldNames:i}),[n,i]),q=(0,import_react2.useCallback)(()=>N.current&&h?(0,import_jsx_runtime.jsx)(h,{search:N.current,callBack:()=>{N.current=null}}):null,[N.current]);(0,import_react2.useEffect)(()=>{F.current&&E()},[U]);const G=K=>z(void 0,null,function*(){var H;E({filter:mergeFilter([K?{[i.label]:{[w]:K}}:{},(H=n==null?void 0:n.params)==null?void 0:H.filter])}),N.current=K}),Y=(0,import_react2.useMemo)(()=>{var K;const H=l||c;if(!((K=L==null?void 0:L.data)!=null&&K.length))return H!=null?Array.isArray(H)?H:[H]:[];const J=H!=null&&(Array.isArray(H)?H.map(Q=>P(x({},Q),{[i.value]:Q[i.value]||Q})):[P(x({},H),{[i.value]:H[i.value]||H})])||[],X=typeof g=="function"?L.data.filter(g):L.data;return(0,import_lodash.uniqBy)(X.concat(J??[]),i.value)},[l,c,L==null?void 0:L.data,i.value,g]);return(0,import_jsx_runtime.jsx)(Select,P(x({popupMatchSelectWidth:v,autoClearSearchValue:!0,filterOption:!1,filterSort:null,fieldNames:i,onSearch:G,onDropdownVisibleChange:K=>{N.current=null,K&&E(),F.current=!0},objectValue:u,value:l,defaultValue:c},S),{loading:L?V:!0,options:f(B(Y)),rawOptions:Y,dropdownRender:K=>{const H=Y.some(J=>J[i.label]===N.current);return(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:T?(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[!((L==null?void 0:L.data.length)===0&&N!=null&&N.current)&&K,(L==null?void 0:L.data.length)>0&&(N==null?void 0:N.current)&&!H&&(0,import_jsx_runtime.jsx)(import_antd.Divider,{style:{margin:0}}),!H&&(0,import_jsx_runtime.jsx)(q,{})]}):K})}}))},(0,import_react.mapProps)({dataSource:"options"},(e,t)=>{var o;const r=(0,import_react.useFieldSchema)();return P(x({},e),{fieldNames:x(x(x(x({},defaultFieldNames$1),e.fieldNames),t.componentProps.fieldNames),(o=r["x-component-props"])==null?void 0:o.fieldNames),suffixIcon:t!=null&&t.loading||t!=null&&t.validating?(0,import_jsx_runtime.jsx)(import_icons.LoadingOutlined,{}):e.suffixIcon})}),(0,import_react.mapReadPretty)(ReadPretty$a))),RemoteSelect=InternalRemoteSelect;RemoteSelect.ReadPretty=ReadPretty$a;const useFormDataTemplates=()=>{const e=(0,import_react.useFieldSchema)(),{t}=(0,import_react_i18next.useTranslation)(),{duplicateData:o}=useFormBlockContext(),{getCollectionJoinField:r}=useCollectionManager_deprecated();if(o)return o;const{items:i=[],display:n=!0}=findDataTemplates(e);i.forEach(c=>{var u;try{c.fields=(u=c.fields)==null?void 0:u.map(m=>r(`${c.collection}.${m}`)?m:"").filter(Boolean)}catch(m){(0,import_client.error)(m),c.fields=[]}});const a=[{key:"none",title:t("None")}].concat(i.map((c,u)=>P(x({key:u},c),{isLeaf:c.dataId!==null&&c.dataId!==void 0,titleCollectionField:(c==null?void 0:c.titleField)&&r(`${c.collection}.${c.titleField}`)}))),l=i.find(c=>c.default);return{templates:a,display:n,defaultTemplate:l,enabled:i.length>0&&i.every(c=>c.dataId||c.dataScope)}},Templates=import_react2.default.memo(({style:e={},form:t})=>{const{token:o}=useToken$1(),{templates:r,display:i,enabled:n,defaultTemplate:a}=useFormDataTemplates(),{getCollectionJoinField:l}=useCollectionManager_deprecated(),c=compatibleDataId(r),[u,m]=(0,import_react2.useState)((a==null?void 0:a.key)||"none"),[d,p]=(0,import_react2.useState)(null),h=useAPIClient(),{t:g}=(0,import_react_i18next.useTranslation)(),_=useDataSourceKey(),f=useDataSourceHeaders(_);(0,import_react2.useEffect)(()=>{n&&a&&t&&(t.__template=!0,a.key==="duplicate"&&C(a.dataId,a,f))},[]),(0,import_react2.useEffect)(()=>{c!=null&&c.some(F=>F.key===u)||S("none")},[c]);const v=(0,import_react2.useMemo)(()=>x({display:"flex",alignItems:"center",backgroundColor:o.colorFillAlter,padding:o.padding},e),[e,o.colorFillAlter]),b=(0,import_react2.useMemo)(()=>({fontSize:o.fontSize,fontWeight:"bold",whiteSpace:"nowrap",marginRight:o.marginXS}),[o.fontSize,o.marginXS]),S=(0,import_react2.useCallback)(F=>z(void 0,null,function*(){m(F),p(null),t==null||t.reset()}),[]),C=(0,import_react2.useCallback)((F,I,T)=>z(void 0,null,function*(){const k=P(x({},I),{dataId:F});p(I),fetchTemplateData(h,k,T).then(N=>(t&&N&&(t.reset(),t.__template=!0,(0,import_client.forEach)(N,(M,O)=>{var D;M&&(t.values[O]=M,(D=t==null?void 0:t.setInitialValuesIn)==null||D.call(t,O,M))})),N)).catch(N=>{console.error(N)})}),[]);if(!n||!i)return null;const y=c==null?void 0:c.find(F=>F.key===u);return(0,import_jsx_runtime.jsx)("div",{style:v,children:(0,import_jsx_runtime.jsxs)(import_antd.Space,{wrap:!0,children:[(0,import_jsx_runtime.jsxs)("label",{style:b,children:[g("Data template"),": "]}),(0,import_jsx_runtime.jsx)(import_antd.Select,{role:"button","data-testid":"select-form-data-template",popupMatchSelectWidth:!1,options:c,fieldNames:{label:"title",value:"key"},value:u,onChange:S}),u!=="none"&&y&&(0,import_jsx_runtime.jsx)(RemoteSelect,{style:{width:220},fieldNames:{label:y==null?void 0:y.titleField,value:"id"},target:y==null?void 0:y.collection,value:d,objectValue:!0,service:{resource:y==null?void 0:y.collection,params:{filter:y==null?void 0:y.dataScope}},onChange:F=>C(F==null?void 0:F.id,x(x({},F),y),f),targetField:l(`${y==null?void 0:y.collection}.${y.titleField}`)})]})})});Templates.displayName="NocoBaseFormDataTemplates";function findDataTemplates(e){const t=findFormBlock(e);return t?import_lodash.default.cloneDeep(t["x-data-templates"])||{}:{}}function fetchTemplateData(e,t,o){return z(this,null,function*(){if(!(t.fields.length===0||!t.dataId))return e.resource(t.collection,void 0,o).get({filterByTk:t.dataId,fields:t.fields,isTemplate:!0}).then(r=>{var i;return(i=r.data)==null?void 0:i.data})})}const useFormBlockHeight=()=>{var e,t,o;const r=useDataBlockHeight(),i=(0,import_react.useFieldSchema)(),{token:n}=import_antd.theme.useToken(),{designable:a}=useDesignable(),{heightProps:l}=useBlockHeightProps()||{},{title:c,titleHeight:u}=l||{},{display:m,enabled:d}=useFormDataTemplates(),p=i.reduceProperties((F,I)=>I["x-component"]==="ActionBar"?I:F),h=Object.keys((p==null?void 0:p.properties)||{}).length>0,g=(o=(t=(e=i==null?void 0:i.parent)==null?void 0:e["x-decorator"])==null?void 0:t.includes)==null?void 0:o.call(t,"FormBlockProvider"),_=h||a?n.controlHeight+(g?1*n.marginLG:24+n.paddingLG):n.marginLG,f=c?u:0,v=useDataBlockRequestData(),{count:b,pageSize:S}=(v==null?void 0:v.meta)||{},C=b>S?n.controlHeightSM+24:0,y=m&&d?n.controlHeight+2*n.padding+n.margin:0;return r-_-n.paddingLG-f-C-y},FormComponent=e=>{const t=e,{form:o,children:r}=t,i=W(t,["form","children"]),n=(0,import_react.useField)(),a=(0,import_react.useFieldSchema)(),l=getCardItemSchema==null?void 0:getCardItemSchema(a),c=useAttach(o.createVoidField(P(x({},n.props),{basePath:""}))),u=useFormBlockHeight(),{token:m}=import_antd.theme.useToken(),{layout:d="vertical",labelAlign:p="left",labelWidth:h=120,labelWrap:g=!0,colon:_=!0}=(l==null?void 0:l["x-component-props"])||{},{isInFilterFormBlock:f}=useFlag();return(0,import_react2.useEffect)(()=>{f&&o.query("*").forEach(v=>{v.validator&&(v.validator=null)})},[o,f]),(0,import_jsx_runtime.jsx)(import_react.FieldContext.Provider,{value:void 0,children:(0,import_jsx_runtime.jsx)(import_react.FormContext.Provider,{value:o,children:(0,import_jsx_runtime.jsx)(import_antd_v5.FormLayout,P(x({layout:d},i),{labelAlign:p,labelWidth:d==="horizontal"?h:null,labelWrap:g,colon:_,children:(0,import_jsx_runtime.jsx)("div",{className:import_css.css`
|
|
726
|
+
`,defaultValue:"h:mm a",formats:["hh:mm:ss a","HH:mm:ss"],timeFormat:!0},default:d,enum:[{label:DateFormatCom({format:"hh:mm:ss a"}),value:"hh:mm:ss a"},{label:DateFormatCom({format:"HH:mm:ss"}),value:"HH:mm:ss"},{label:"custom",value:"custom"}]}}},onSubmit:p=>{const h={"x-uid":n["x-uid"]};h["x-component-props"]=a.componentProps||{},n["x-component-props"]=x(x({},a.componentProps||{}),p),h["x-component-props"]=n["x-component-props"],a.componentProps=n["x-component-props"];const g=a.path.entire.split(".");g.pop();const _=g.join(".");a.query(`${_}.*[0:].${n.name}`).forEach(f=>{f.props.name===n.name&&f.setComponentProps(x({},p))}),l.emit("patch",{schema:h}),l.refresh()}})},timePickerComponentFieldSettings=new SchemaSettings({name:"fieldSettings:component:TimePicker",items:[{name:"timeDisplayFormat",Component:SchemaSettingsTimeFormat,useComponentProps(){const e=(0,import_react.useFieldSchema)(),{fieldSchema:t}=useColumnSchema$1();return{fieldSchema:t||e}}}]}),unixTimestampComponentFieldSettings=new SchemaSettings({name:"fieldSettings:component:UnixTimestamp",items:[{name:"dateDisplayFormat",Component:SchemaSettingsDateFormat,useComponentProps(){const e=(0,import_react.useFieldSchema)(),{fieldSchema:t}=useColumnSchema$1();return{fieldSchema:t||e}}},enableLinkSettingsItem,openModeSettingsItem]});class SchemaSettingsPlugin extends Plugin{load(){return z(this,null,function*(){this.schemaSettingsManager.add(tableBlockSettings),this.schemaSettingsManager.add(createFormBlockSettings),this.schemaSettingsManager.add(editFormBlockSettings),this.schemaSettingsManager.add(filterFormBlockSettings),this.schemaSettingsManager.add(filterFormItemFieldSettings),this.schemaSettingsManager.add(multiDataDetailsBlockSettings),this.schemaSettingsManager.add(detailsWithPaginationSettings),this.schemaSettingsManager.add(singleDataDetailsBlockSettings),this.schemaSettingsManager.add(detailsBlockSettings),this.schemaSettingsManager.add(tableSelectorBlockSettings),this.schemaSettingsManager.add(listBlockSettings),this.schemaSettingsManager.add(gridCardBlockSettings),this.schemaSettingsManager.add(filterCollapseBlockSettings),this.schemaSettingsManager.add(markdownBlockSettings),this.schemaSettingsManager.add(addNewActionSettings),this.schemaSettingsManager.add(filterActionSettings),this.schemaSettingsManager.add(refreshActionSettings),this.schemaSettingsManager.add(viewActionSettings),this.schemaSettingsManager.add(editActionSettings),this.schemaSettingsManager.add(deleteActionSettings),this.schemaSettingsManager.add(disassociateActionSettings),this.schemaSettingsManager.add(associateActionSettings),this.schemaSettingsManager.add(bulkDeleteActionSettings),this.schemaSettingsManager.add(customizeAddRecordActionSettings),this.schemaSettingsManager.add(customizePopupActionSettings),this.schemaSettingsManager.add(customizeLinkActionSettings),this.schemaSettingsManager.add(customizeUpdateRecordActionSettings),this.schemaSettingsManager.add(createSubmitActionSettings),this.schemaSettingsManager.add(updateSubmitActionSettings),this.schemaSettingsManager.add(submitActionSettings),this.schemaSettingsManager.add(customizeSaveRecordActionSettings),this.schemaSettingsManager.add(addChildActionSettings),this.schemaSettingsManager.add(expendableActionSettings),this.schemaSettingsManager.add(fieldSettingsFormItem),this.schemaSettingsManager.add(tableColumnSettings),this.schemaSettingsManager.add(filterCollapseItemFieldSettings),this.schemaSettingsManager.add(selectComponentFieldSettings),this.schemaSettingsManager.add(filterSelectComponentFieldSettings),this.schemaSettingsManager.add(recordPickerComponentFieldSettings),this.schemaSettingsManager.add(filterRecordPickerComponentFieldSettings),this.schemaSettingsManager.add(subformComponentFieldSettings),this.schemaSettingsManager.add(subformPopoverComponentFieldSettings),this.schemaSettingsManager.add(subTablePopoverComponentFieldSettings),this.schemaSettingsManager.add(datePickerComponentFieldSettings),this.schemaSettingsManager.add(rangePickerPickerComponentFieldSettings),this.schemaSettingsManager.add(unixTimestampComponentFieldSettings),this.schemaSettingsManager.add(inputNumberComponentFieldSettings),this.schemaSettingsManager.add(inputComponentSettings),this.schemaSettingsManager.add(inputURLSettings),this.schemaSettingsManager.add(inputTextAreaSettings),this.schemaSettingsManager.add(inputJSONSettings),this.schemaSettingsManager.add(markdownSettings),this.schemaSettingsManager.add(markdownVditorSettings),this.schemaSettingsManager.add(richTextSettings),this.schemaSettingsManager.add(fileManagerComponentFieldSettings),this.schemaSettingsManager.add(tagComponentFieldSettings),this.schemaSettingsManager.add(cascadeSelectComponentFieldSettings),this.schemaSettingsManager.add(inputPreviewComponentFieldSettings),this.schemaSettingsManager.add(uploadAttachmentComponentFieldSettings),this.schemaSettingsManager.add(previewComponentFieldSettings),this.schemaSettingsManager.add(dividerSettings),this.schemaSettingsManager.add(timePickerComponentFieldSettings)})}}const useBuiltInVariables=()=>{const{currentUserCtx:e}=useCurrentUserVariable(),{currentRoleCtx:t}=useCurrentRoleVariable(),{apiTokenCtx:o}=useAPITokenVariable(),{datetimeCtx:r}=useDatetimeVariable(),{exactDateTimeCtx:i}=useExactDateVariable(),{urlSearchParamsCtx:n,name:a,defaultValue:l}=useURLSearchParamsVariable(),c=useGlobalVariableCtx("$env");return{builtinVariables:(0,import_react2.useMemo)(()=>[c,{name:"$user",ctx:e,collectionName:"users",dataSource:DEFAULT_DATA_SOURCE_KEY},{name:"$nRole",ctx:t,collectionName:"roles"},{name:"$nToken",ctx:o},{name:"currentUser",ctx:e,collectionName:"users",dataSource:DEFAULT_DATA_SOURCE_KEY},{name:"$nDate",ctx:r},{name:"$date",ctx:r},{name:"$nExactDate",ctx:i},{name:"$system",ctx:{now:()=>(0,import_client.dayjs)().toISOString()}},{name:"currentTime",ctx:()=>(0,import_client.dayjs)().toISOString()},{name:a,ctx:n,defaultValue:l}].filter(Boolean),[t,e,r,l,n,a,c,i])}},filterEmptyValues=e=>Array.isArray(e)?e.filter(t=>t===0||t===!1||t):e,TYPE_TO_ACTION={hasMany:"list?paginate=false",belongsTo:"get",hasOne:"get",belongsToMany:"list?paginate=false",belongsToArray:"list?paginate=false"},getAction=e=>TYPE_TO_ACTION[e],requested={},hasRequested=e=>!!requested[e],getRequested=e=>requested[e],stashRequested=(e,t)=>{requested[e]=t},clearRequested=e=>{delete requested[e]},uniq=e=>!Array.isArray(e)||!import_lodash.default.isObject(e[0])?e:import_lodash.default.uniqBy(e,t=>"id"in t?t.id:JSON.stringify(t)),VariablesContext=(0,import_react2.createContext)(null);VariablesContext.displayName="VariablesContext";const variablesStore={},getFieldPath$1=(e,t)=>{let o,r;return{fieldPath:e.split(".").map(i=>t[i]?(o=t[i].dataSource,r=t[i],t[i].collectionName):i).join("."),dataSource:o,variableOption:r}},VariablesProvider=({children:e,filterVariables:t})=>{const o=(0,import_react2.useRef)({}),r=useAPIClient(),{getCollectionJoinField:i,getCollection:n}=useCollectionManager_deprecated(),a=useCompile(),{builtinVariables:l}=useBuiltInVariables(),c=(0,import_react2.useCallback)(f=>{import_lodash.default.isFunction(f)?o.current=f(o.current):o.current=f},[]),u=(0,import_react2.useCallback)((f,v,b)=>z(void 0,null,function*(){var S,C;const y=f.split("."),F=y[0],I=mergeVariableToCollectionNameWithLocalVariables(variablesStore,v);let T=mergeCtxWithLocalVariables(o.current,v);const{fieldPath:k,dataSource:N,variableOption:M}=getFieldPath$1(F,I);let O=k;const{fieldPath:D}=getFieldPath$1(f,I),R=y.length===1?M==null?void 0:M.collectionName:(S=i(D,N))==null?void 0:S.target;if(!(F in T))throw new Error(`VariablesProvider: ${F} is not found`);for(let w=0;w<y.length;w++){if(T==null)return{value:T===void 0?M==null?void 0:M.defaultValue:T,dataSource:N,collectionName:R};const j=y[w],B=y.slice(0,w+1).join("."),{fieldPath:L}=getFieldPath$1(B,I),E=i(L,N),V=(C=n(O,N))==null?void 0:C.getPrimaryKey();if(Array.isArray(T)){const U=T.map(q=>{if(!(b!=null&&b.doNotRequest)&&shouldToRequest(q==null?void 0:q[j],q,B)&&(q==null?void 0:q[V])!=null&&E!=null&&E.target){const G=`/${O}/${q[E.sourceKey||V]}/${j}:${getAction(E.type)}`;if(hasRequested(G))return getRequested(G);const Y=r.request({headers:getDataSourceHeaders(N),url:G,params:{appends:b==null?void 0:b.appends}}).then(K=>(clearRequested(G),K.data.data));return stashRequested(G,Y),Y}return q==null?void 0:q[j]});T=removeThroughCollectionFields(import_lodash.default.flatten(yield Promise.all(U)),E)}else if(!(b!=null&&b.doNotRequest)&&shouldToRequest(T[j],T,B)&&T[V]!=null&&E!=null&&E.target){const U=`/${O}/${T[E.sourceKey||V]}/${j}:${getAction(E.type)}`;let q=null;if(hasRequested(U))q=yield getRequested(U);else{const Y=r.request({headers:getDataSourceHeaders(N),url:U,params:{appends:b==null?void 0:b.appends}});stashRequested(U,Y),q=yield Y,clearRequested(U)}const G=q.data.data;T=removeThroughCollectionFields(G,E)}else T=removeThroughCollectionFields((0,import_client.getValuesByPath)(T,j),E);E!=null&&E.target&&(O=E.target)}const $=a(import_lodash.default.isFunction(T)?T({fieldOperator:b==null?void 0:b.fieldOperator,isParsingVariable:!0}):T);return{value:$===void 0?M.defaultValue:$,dataSource:N,collectionName:R}}),[i]),m=(0,import_react2.useCallback)(f=>{if(!isVariable$1(`{{${f.name}}}`))throw new Error(`VariablesProvider: ${f.name} is not a valid name`);c(v=>P(x({},v),{[f.name]:f.ctx})),variablesStore[f.name]=P(x({},f),{defaultValue:import_lodash.default.has(f,"defaultValue")?f.defaultValue:null})},[c]),d=(0,import_react2.useCallback)(f=>o.current[f]?x({},variablesStore[f]):null,[]),p=(0,import_react2.useCallback)(f=>{c(v=>{const b=x({},v);return delete b[f],b}),delete variablesStore[f]},[c]),h=(0,import_react2.useCallback)((f,v,b)=>z(void 0,null,function*(){if(!isVariable$1(f))return f;v&&(v=import_lodash.default.isArray(v)?v:[v]);const S=getPath(f),C=yield u(S,v,b);return P(x({},C),{value:uniq(filterEmptyValues(C.value))})}),[u]),g=(0,import_react2.useCallback)((f,v)=>z(void 0,null,function*(){var b;if(!isVariable$1(f))throw new Error(`VariablesProvider: ${f} is not a variable string`);v&&(v=import_lodash.default.isArray(v)?v:[v]);const S=mergeVariableToCollectionNameWithLocalVariables(variablesStore,v),C=getPath(f),{fieldPath:y,dataSource:F}=getFieldPath$1(C,S);let I=i(y,F);return!I&&!C.includes(".")&&(I={target:(b=S[C])==null?void 0:b.collectionName}),I}),[i]);(0,import_react2.useEffect)(()=>{l.forEach(f=>{m(P(x({},f),{defaultValue:import_lodash.default.has(f,"defaultValue")?f.defaultValue:null}))})},[l,m]);const _=(0,import_react2.useMemo)(()=>({ctxRef:o,setCtx:c,parseVariable:h,registerVariable:m,getVariable:d,getCollectionField:g,removeVariable:p,filterVariables:t}),[g,d,h,m,p,c]);return(0,import_jsx_runtime.jsx)(VariablesContext.Provider,{value:_,children:e})};VariablesProvider.displayName="VariablesProvider";const VariablesProvider$1=VariablesProvider;function shouldToRequest(e,t,o){if(o.split(".").length===2&&(o.startsWith("$nForm.")||o.startsWith("$iteration.")))return!1;let r=!1;return(0,import_reactive.untracked)(()=>{if(JSON.stringify(e)==="[{}]"||JSON.stringify(e)==="{}"){r=!0;return}r=import_lodash.default.isEmpty(e)}),r}function mergeCtxWithLocalVariables(e,t){return e=x({},e),t==null||t.forEach(o=>{e[o.name]=o.ctx}),e}function mergeVariableToCollectionNameWithLocalVariables(e,t){return e=x({},e),t==null||t.forEach(o=>{e[o.name]=P(x({},o),{defaultValue:import_lodash.default.has(o,"defaultValue")?o.defaultValue:null})}),e}function removeThroughCollectionFields(e,t){return!(t!=null&&t.through)||!e?e:Array.isArray(e)?e.map(o=>import_lodash.default.omit(o,t.through)):import_lodash.default.omit(e,t.through)}const mergeChildren=(e,t)=>{if(!(!e&&!t)&&!(0,import_shared.isFn)(e))return(0,import_jsx_runtime.jsxs)(import_react2.Fragment,{children:[e,t]})},isValidComponent=e=>e&&(typeof e=="object"||typeof e=="function"),renderChildren=(e,t,o)=>(0,import_shared.isFn)(e)?e(t,o):e,NocoBaseReactiveInternal=e=>{var t;const o=(0,import_react2.useContext)(import_react.SchemaComponentsContext),r=e.field,i=mergeChildren(renderChildren(e.children,r,r.form),(t=r.content)!=null?t:r.componentProps.children);if(r.display!=="visible")return null;const n=a=>{var l;return isValidComponent(a)?a:(l=import_shared.FormPath.getIn(o,a))!=null?l:a};return(a=>r.decoratorType?import_react2.default.createElement(n(r.decoratorType),r.decoratorProps,a):(0,import_jsx_runtime.jsx)(import_react2.Fragment,{children:a}))(r.componentType?import_react2.default.createElement(n(r.componentType),P(x({},r.componentProps),{value:r.value}),i):i)};NocoBaseReactiveInternal.displayName="NocoBaseReactiveInternal";const NocoBaseReactiveField=NocoBaseReactiveInternal;NocoBaseReactiveField.displayName="NocoBaseReactiveField";function createNocoBaseField(e){return new NocoBaseField$1(e)}let NocoBaseField$1=class{constructor(e){A(this,"props"),A(this,"initialized"),A(this,"loading"),A(this,"validating"),A(this,"submitting"),A(this,"selfModified"),A(this,"active"),A(this,"visited"),A(this,"mounted"),A(this,"unmounted"),A(this,"inputValues"),A(this,"inputValue"),A(this,"feedbacks"),A(this,"title"),A(this,"description"),A(this,"display"),A(this,"pattern"),A(this,"editable"),A(this,"disabled"),A(this,"readOnly"),A(this,"readPretty"),A(this,"visible"),A(this,"hidden"),A(this,"dataSource"),A(this,"validator"),A(this,"required"),A(this,"content"),A(this,"initialValue"),A(this,"value"),A(this,"data"),A(this,"decorator"),A(this,"component"),A(this,"decoratorProps"),A(this,"componentProps"),A(this,"decoratorType"),A(this,"componentType"),A(this,"path"),A(this,"form"),A(this,"address"),this.props=e,this.initialize()}initialize(){var e,t,o,r,i,n,a,l,c,u,m,d,p,h,g,_,f,v,b,S;const C=this.props.compile;this.pattern="readPretty",this.readPretty=!0,this.initialized=!0,this.loading=!1,this.validating=!1,this.submitting=!1,this.selfModified=!1,this.active=!1,this.visited=!0,this.mounted=!0,this.unmounted=!1,this.inputValues=[],this.inputValue=null,this.feedbacks=[],this.title=C(this.props.title||((e=this.props.schema)==null?void 0:e.title)),this.description=C(this.props.description||((t=this.props.schema)==null?void 0:t.description)),this.display="visible",this.editable=this.props.editable||((o=this.props.schema)==null?void 0:o["x-editable"]),this.disabled=this.props.disabled||((r=this.props.schema)==null?void 0:r["x-disabled"]),this.readOnly=this.props.readOnly||((i=this.props.schema)==null?void 0:i["x-read-only"]),this.visible=this.props.visible||((n=this.props.schema)==null?void 0:n["x-visible"]),this.hidden=this.props.hidden||((a=this.props.schema)==null?void 0:a["x-hidden"]),this.dataSource=C(this.props.dataSource||((l=this.props.schema)==null?void 0:l.enum)),this.validator=this.props.validator,this.required=this.props.required||!!((c=this.props.schema)!=null&&c.required),this.content=C(this.props.content||((u=this.props.schema)==null?void 0:u["x-content"])),this.initialValue=C(this.props.initialValue||((m=this.props.schema)==null?void 0:m.default)),this.value=C(this.props.value),this.data=this.props.data||((d=this.props.schema)==null?void 0:d["x-data"]),this.decorator=this.props.decorator?(0,import_shared.toArr)(this.props.decorator):[(p=this.props.schema)==null?void 0:p["x-decorator"],(h=this.props.schema)==null?void 0:h["x-decorator-props"]],this.component=this.props.component?(0,import_shared.toArr)(this.props.component):[(g=this.props.schema)==null?void 0:g["x-component"],(_=this.props.schema)==null?void 0:_["x-component-props"]],this.decoratorProps=((f=this.props.schema)==null?void 0:f["x-decorator-props"])||{},this.componentProps=((v=this.props.schema)==null?void 0:v["x-component-props"])||{},this.decoratorType=(b=this.props.schema)==null?void 0:b["x-decorator"],this.componentType=(S=this.props.schema)==null?void 0:S["x-component"],this.path={},this.form={},this.address={concat:import_lodash.default.noop}}};const NocoBaseField=e=>{const t=useCompile(),o=(0,import_react.useFieldSchema)(),r=(0,import_react2.useMemo)(()=>createNocoBaseField(P(x({},e),{compile:t})),[]);return Object.assign(r.componentProps,o["x-component-props"]),r.value=e.value,(0,import_jsx_runtime.jsx)(import_react.FieldContext.Provider,{value:r,children:(0,import_jsx_runtime.jsx)(NocoBaseReactiveField,{field:r,children:e.children})})},CollectionFieldUISchemaContext=import_react2.default.createContext({}),RefreshFieldSchemaContext=import_react2.default.createContext(import_lodash.default.noop),RefreshFieldSchemaProvider=({children:e,refresh:t})=>{const o=useRefreshFieldSchema(),r=(0,import_react2.useCallback)(i=>{t(),i!=null&&i.refreshParentSchema&&(o==null||o())},[o,t]);return(0,import_jsx_runtime.jsx)(RefreshFieldSchemaContext.Provider,{value:r,children:e})},RefreshComponentContext=import_react2.default.createContext(import_lodash.default.noop),RefreshComponentProvider=({children:e,refresh:t})=>(0,import_jsx_runtime.jsx)(RefreshComponentContext.Provider,{value:t,children:e}),useRefreshComponent=()=>import_react2.default.useContext(RefreshComponentContext),useRefreshFieldSchema=()=>import_react2.default.useContext(RefreshFieldSchemaContext),useCollectionFieldUISchema=()=>import_react2.default.useContext(CollectionFieldUISchemaContext)||{},CollectionFieldUISchemaProvider=e=>{const{children:t,fieldSchema:o}=e,r=useCollection(),i=useCollectionManager(),n=o==null?void 0:o.name,a=(0,import_react2.useMemo)(()=>{var l;if(!r)return null;const c=(l=o==null?void 0:o["x-component-props"])==null?void 0:l.field;return i.getCollectionField(o==null?void 0:o["x-collection-field"])||c||r.getField((c==null?void 0:c.name)||n)},[r,i,o,n]);return(0,import_jsx_runtime.jsx)(CollectionFieldUISchemaContext.Provider,{value:a,children:t})},toFieldProps=import_lodash.default.memoize((e,t)=>e.toFieldProps({scope:t})),useFieldProps=e=>{const t=(0,import_react.useExpressionScope)();return toFieldProps(e,t)},useBasePath=e=>{var t;const o=(0,import_react.useField)();return e.onlyRenderProperties?e.basePath||((t=o==null?void 0:o.address)==null?void 0:t.concat(e.name)):e.basePath||(o==null?void 0:o.address)},createMergedSchemaInstance=(e,t,o)=>{const r=e.toJSON();if(o){if(!r.properties)return e;const i=Object.keys(r.properties)[0],n=Object.values(r.properties)[0];return r.properties[i]=(0,import_shared.merge)(import_lodash.default.omit(t,"type","x-read-pretty"),n),new import_react.Schema(r)}return new import_react.Schema((0,import_shared.merge)(import_lodash.default.omit(t,"type","x-read-pretty"),r))},propertiesToReactElement=({schema:e,field:t,basePath:o,mapProperties:r,filterProperties:i,propsRecursion:n,values:a,isUseFormilyField:l})=>{const c=import_react.Schema.getOrderProperties(e);return c.length?(0,import_jsx_runtime.jsx)(import_react2.Fragment,{children:c.map(({schema:u,key:m},d)=>{const p=(t==null?void 0:t.address)||o;let h=u;if((0,import_shared.isFn)(r)){const _=r(u,m);_&&(h=_)}if((0,import_shared.isFn)(i)&&i(h,m)===!1)return null;const g=(0,import_shared.isBool)(n)&&n?(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{propsRecursion:!0,filterProperties:i,mapProperties:r,schema:h,name:m,basePath:p,values:import_lodash.default.get(a,m),isUseFormilyField:l}):(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{schema:h,name:m,basePath:p,values:import_lodash.default.get(a,m),isUseFormilyField:l});return h["x-component"]==="CollectionField"?(0,import_jsx_runtime.jsx)(IsInNocoBaseRecursionFieldContext.Provider,{value:!0,children:(0,import_jsx_runtime.jsx)(CollectionFieldUISchemaProvider,{fieldSchema:h,children:g})},`${d}-${m}`):(0,import_jsx_runtime.jsx)(IsInNocoBaseRecursionFieldContext.Provider,{value:!1,children:(0,import_jsx_runtime.jsx)(CollectionFieldUISchemaContext.Provider,{value:EMPTY_OBJECT,children:g})},`${d}-${m}`)})}):null},IsInNocoBaseRecursionFieldContext=import_react2.default.createContext(!1),useIsInNocoBaseRecursionFieldContext=()=>import_react2.default.useContext(IsInNocoBaseRecursionFieldContext),NocoBaseRecursionField=import_react2.default.memo(e=>{var t,o;const{schema:r,name:i,onlyRenderProperties:n,onlyRenderSelf:a,mapProperties:l,filterProperties:c,propsRecursion:u,values:m,isUseFormilyField:d=!0,uiSchema:p,parentSchema:h}=e,g=useBasePath(e),_=(0,import_react2.useRef)(null),f=(0,import_react2.useMemo)(()=>(_.current=null,new import_react.Schema(r)),[r]),{uiSchema:v,defaultValue:b}=useCollectionFieldUISchema(),S=(0,import_ahooks.useUpdate)(),{onChange:C}=(0,import_react2.useContext)(SchemaComponentOnChangeContext),y=_.current||f;!y.parent&&h&&(y.parent=h,!((o=(t=y.parent)==null?void 0:t.properties)!=null&&o[y.name])&&y.name&&import_lodash.default.set(y.parent,`properties.${y.name}`,y));const F=(0,import_react2.useCallback)(()=>{const M=y.parent;_.current=new import_react.Schema(y.toJSON(),M),M!=null&&M.properties&&Object.keys(M.properties).forEach(O=>{O===y.name&&(M.properties[O]=_.current)}),S(),C==null||C()},[y,C,S]),I=(0,import_react2.useMemo)(()=>p?createMergedSchemaInstance(y,p,n):v?(v.default=b,createMergedSchemaInstance(y,v,n)):y,[v,b,y,n,p]),T=useFieldProps(I),k=M=>{if(!a)return propertiesToReactElement({schema:y,field:M,basePath:g,mapProperties:l,filterProperties:c,propsRecursion:u,values:m,isUseFormilyField:d})},N=()=>(0,import_shared.isValid)(i)?I.type==="object"?n?k():(0,import_jsx_runtime.jsx)(import_react.ObjectField,P(x({},T),{name:i,basePath:g,children:k})):I.type==="array"?(0,import_jsx_runtime.jsx)(import_react.ArrayField,P(x({},T),{name:i,basePath:g})):I.type==="void"?n?k():(0,import_jsx_runtime.jsx)(import_react.VoidField,P(x({},T),{name:i,basePath:g,children:k})):d?(0,import_jsx_runtime.jsx)(import_react.Field,P(x({},T),{name:i,basePath:g})):(0,import_jsx_runtime.jsx)(NocoBaseField,{name:i,value:m,initialValue:m,basePath:g,schema:I}):k();return y?(0,import_jsx_runtime.jsx)(import_react.SchemaContext.Provider,{value:y,children:(0,import_jsx_runtime.jsx)(RefreshFieldSchemaProvider,{refresh:F,children:N()})}):(0,import_jsx_runtime.jsx)(import_react2.Fragment,{})});NocoBaseRecursionField.displayName="NocoBaseRecursionField";const PopupLevelContext=import_react2.default.createContext(0),ActionContainer=(0,import_react.observer)(e=>{const{getComponentByOpenMode:t,defaultOpenMode:o}=useOpenModeContext()||{},{openMode:r=e.openMode||o}=useActionContext(),i=import_react2.default.useContext(PopupLevelContext)+1,n=t(r)||ActionDrawer;return(0,import_jsx_runtime.jsx)(PopupLevelContext.Provider,{value:i,children:(0,import_jsx_runtime.jsx)(n,x({footerNodeName:"Action.Container.Footer",level:i||1},e))})},{displayName:"ActionContainer"});ActionContainer.Footer=(0,import_react.observer)(()=>{const e=(0,import_react.useField)(),t=(0,import_react.useFieldSchema)();return(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{basePath:e.address,schema:t,onlyRenderProperties:!0})},{displayName:"ActionContainer.Footer"});const ActionLink=withDynamicSchemaProps((0,import_react.observer)(e=>(0,import_jsx_runtime.jsx)(Action$1,P(x({},e),{component:e.component||"a",className:(0,import_classnames.default)("nb-action-link",e.className),isLink:!0}))),{displayName:"ActionLink"}),useStyles$8=genStyleHook("nb-action",e=>{const{componentCls:t}=e;return{[t]:{position:"relative","&:hover":{"> .general-schema-designer":{display:"block"}},"&.nb-action-link":{margin:"-12px",padding:"12px",".nb-action-title":{marginInlineStart:"0px"}},"> .general-schema-designer":{position:"absolute",zIndex:999,top:"0",bottom:"0",left:"0",right:"0",display:"none",background:"var(--colorBgSettingsHover)",border:"0",pointerEvents:"none","&.nb-in-template":{background:"var(--colorTemplateBgSettingsHover)"},"> .general-schema-designer-icons":{position:"absolute",right:"2px",top:"2px",lineHeight:"16px",pointerEvents:"all",".ant-space-item":{backgroundColor:e.colorSettings,color:"#fff",lineHeight:"16px",width:"16px",paddingLeft:"1px",alignSelf:"stretch"}}},".ant-btn-icon":{marginInlineEnd:"0px !important"},".nb-action-title":{marginInlineStart:`${e.controlPaddingHorizontalSM}px`}}}}),useGetAriaLabelOfAction=e=>{const t=useRecord(),o=useRecordIndex(),r=(0,import_react.useFieldSchema)(),i=useCompile(),n=r["x-component"],a=typeof n=="string"?n:(n==null?void 0:n.displayName)||(n==null?void 0:n.name);let l=(t==null?void 0:t.name)||(t==null?void 0:t.title)||(o!=null?String(o):""),c=r["x-action"],{name:u}=useCollection_deprecated(),{name:m}=useBlockContext()||{};const d=e||i(r.title);return u=u?`-${u}`:"",m=m&&m!=="action"?`-${m}`:"",c=c?`-${c}`:"",l=l?`-${l}`:"",{getAriaLabel:(0,import_react2.useCallback)(p=>(p=p?`-${p}`:"",`action-${a}-${d}${c}${u}${m}${l}${p}`),[c,d,m,u,a,l])}},useA=()=>({run(){return z(this,null,function*(){})}}),handleError=console.log,Action=withDynamicSchemaProps(import_react2.default.memo(e=>{var t;const o=useProps(e),{popover:r,containerRefKey:i,component:n,useAction:a=useA,className:l,icon:c,title:u,onClick:m,style:d,loading:p,openSize:h,disabled:g,actionCallback:_,confirm:f,addChild:v,onMouseEnter:b,refreshDataBlockRequest:S,confirmTitle:C}=o,y=W(o,["popover","containerRefKey","component","useAction","className","icon","title","onClick","style","loading","openSize","disabled","actionCallback","confirm","addChild","onMouseEnter","refreshDataBlockRequest","confirmTitle"]),F=useDesigner(),I=(0,import_react.useField)(),T=(0,import_react.useFieldSchema)(),k=useCompile(),N=useCollectionRecordData(),M=k((t=T["x-component-props"])==null?void 0:t.confirm)||f,O=(0,import_react2.useMemo)(()=>{var H;return((H=T==null?void 0:T["x-linkage-rules"])==null?void 0:H.filter(J=>!J.disabled))||[]},[T==null?void 0:T["x-linkage-rules"]]),{designable:D}=useDesignable(),R=useComponent(n)||n,$=useVariables$1(),w=useLocalVariables$1(),{visibleWithURL:j,setVisibleWithURL:B}=usePopupUtils(),{setSubmitted:L}=useActionContext(),{getAriaLabel:E}=useGetAriaLabelOfAction(u),V=useCollectionParentRecordData(),U=useApp(),{getAllDataBlocks:q}=useAllDataBlocks(),G=(0,import_react.useForm)();(0,import_react2.useEffect)(()=>{I.stateOfLinkageRules&&setInitialActionState(I);const H=(0,import_shared.uid)(),J=[];return setTimeout(()=>{G.addEffects(H,()=>{forEachLinkageRule(O,(X,Q)=>{J.push((0,import_reactive.reaction)(()=>[getVariableValuesInCondition({linkageRules:O,localVariables:w})].map(oe=>JSON.stringify(oe)).join(","),()=>{I.stateOfLinkageRules={},linkageAction({operator:X.operator,field:I,condition:Q.condition,variables:$,localVariables:w,conditionType:Q.conditionType,variableNameOfLeftCondition:"$nRecord"},U.jsonLogic)},{fireImmediately:!0,equals:import_lodash.isEqual}))})})}),()=>{G.removeEffects(H),J.forEach(X=>{X()})}},[O,N]);const Y=(0,import_react2.useCallback)(H=>{b==null||b(H)},[b]),K=(0,import_react2.useMemo)(()=>m&&((H,J)=>z(void 0,null,function*(){var X,Q;yield m==null?void 0:m(H,J);const oe=((Q=(X=T["x-action-settings"])==null?void 0:X.onSuccess)==null?void 0:Q.blocksToRefresh)||[];oe.length>0&&q().forEach(ee=>{var ie;if(oe.includes(ee.uid))try{(ie=ee.service)==null||ie.refresh()}catch(ae){console.error("Failed to refresh block:",ee.uid,ae)}})})),[m,T,q]);return(0,import_jsx_runtime.jsx)(InternalAction,x({containerRefKey:i,fieldSchema:T,designable:D,field:I,icon:c,loading:p,handleMouseEnter:Y,tarComponent:R,className:l,type:e.type,Designer:F,onClick:K,confirm:M,confirmTitle:C,popover:r,addChild:v,recordData:N,title:u,style:d,propsDisabled:g,useAction:a,visibleWithURL:j,setVisibleWithURL:B,setSubmitted:L,getAriaLabel:E,parentRecordData:V,actionCallback:_},y))}),{displayName:"Action"}),InternalAction=(0,import_react.observer)(function e(t){var o,r,i,n,a;const l=t,{containerRefKey:c,fieldSchema:u,designable:m,field:d,icon:p,loading:h,handleMouseEnter:g,tarComponent:_,className:f,type:v,Designer:b,onClick:S,confirm:C,confirmTitle:y,popover:F,addChild:I,recordData:T,title:k,style:N,propsDisabled:M,useAction:O,actionCallback:D,visibleWithURL:R,setVisibleWithURL:$,setSubmitted:w,getAriaLabel:j,parentRecordData:B}=l,L=W(l,["containerRefKey","fieldSchema","designable","field","icon","loading","handleMouseEnter","tarComponent","className","type","Designer","onClick","confirm","confirmTitle","popover","addChild","recordData","title","style","propsDisabled","useAction","actionCallback","visibleWithURL","setVisibleWithURL","setSubmitted","getAriaLabel","parentRecordData"]),[E,V]=(0,import_react2.useState)(!1),{wrapSSR:U,componentCls:q,hashId:G}=useStyles$8(),[Y,K]=(0,import_react2.useState)(!1),H=u["x-toolbar-props"]||u["x-designer-props"],J=(o=u==null?void 0:u["x-component-props"])==null?void 0:o.openMode,X=(r=u==null?void 0:u["x-component-props"])==null?void 0:r.openSize,Q=(i=u==null?void 0:u["x-component-props"])==null?void 0:i.refreshDataBlockRequest,{modal:oe}=import_antd.App.useApp(),ee=(0,import_react.useForm)(),ie=useACLActionParamsContext(),{run:ae,element:ue,disabled:me}=(O==null?void 0:O(D))||{},he=ee.disabled||d.disabled||((n=d.data)==null?void 0:n.disabled)||M||me,xe=(0,import_react2.useMemo)(()=>{var se;return P(x({},N),{opacity:m&&(((se=d==null?void 0:d.data)==null?void 0:se.hidden)||!ie)&&.1,color:he?"rgba(0, 0, 0, 0.25)":N==null?void 0:N.color})},[ie,m,(a=d==null?void 0:d.data)==null?void 0:a.hidden,N,he]),de={designable:m,field:d,aclCtx:ie,icon:p,loading:h,disabled:he,buttonStyle:xe,handleMouseEnter:g,tarComponent:_,designerProps:H,componentCls:q,hashId:G,className:f,others:L,getAriaLabel:j,type:v,Designer:b,onClick:S,refreshDataBlockRequest:Q,fieldSchema:u,setVisible:V,run:ae,confirm:C,modal:oe,setSubmitted:w,confirmTitle:y,title:k},ge=(0,import_react2.useCallback)(se=>{V==null||V(se),$==null||$(se)},[$]);let pe=(0,import_jsx_runtime.jsx)(PopupVisibleProvider,{visible:!1,children:(0,import_jsx_runtime.jsxs)(ActionContextProvider,{button:RenderButton(de),visible:E||R,setVisible:ge,formValueChanged:Y,setFormValueChanged:K,openMode:J,openSize:X,containerRefKey:c,fieldSchema:u,setSubmitted:w,children:[F&&(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{basePath:d.address,onlyRenderProperties:!0,schema:u}),!F&&(0,import_jsx_runtime.jsx)(RenderButton,x({},de)),(0,import_jsx_runtime.jsx)(VariablePopupRecordProvider,{children:!F&&t.children}),ue]})});return isBulkEditAction(u)&&(pe=(0,import_jsx_runtime.jsx)(TabsContextProvider,{children:pe})),U(I?(0,import_jsx_runtime.jsx)(TreeRecordProvider,{parent:T,children:pe}):pe)});InternalAction.displayName="InternalAction";Action.Popover=function e(t){const{button:o,visible:r,setVisible:i}=useActionContext(),n=(0,import_jsx_runtime.jsx)(import_react_error_boundary.ErrorBoundary,{FallbackComponent:ErrorFallback,onError:handleError,children:t.children});return(0,import_jsx_runtime.jsx)(StablePopover,P(x({},t),{destroyTooltipOnHide:!0,open:r,onOpenChange:a=>{i(a)},content:n,children:o}))};Action.Popover.displayName="Action.Popover";Action.Popover.Footer=e=>(0,import_jsx_runtime.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",width:"100%"},children:e.children});Action.Popover.Footer.displayName="Action.Popover.Footer";Action.Link=ActionLink;Action.Designer=ActionDesigner;Action.Drawer=ActionDrawer;Action.Modal=ActionModal;Action.Container=ActionContainer;Action.Page=ActionPage;const Action$1=Action;function isBulkEditAction(e){return e["x-action"]==="customize:bulkEdit"}const RenderButton=({designable:e,field:t,aclCtx:o,icon:r,loading:i,disabled:n,buttonStyle:a,handleMouseEnter:l,tarComponent:c,designerProps:u,componentCls:m,hashId:d,className:p,others:h,getAriaLabel:g,type:_,Designer:f,onClick:v,refreshDataBlockRequest:b,fieldSchema:S,setVisible:C,run:y,confirm:F,modal:I,setSubmitted:T,confirmTitle:k,title:N})=>{const{getDataBlockRequest:M}=useDataBlockRequestGetter(),{t:O}=(0,import_react_i18next.useTranslation)(),{isPopupVisibleControlledByURL:D}=usePopupSettings(),{openPopup:R}=usePopupUtils(),$=useVariables$1(),w=useLocalVariables$1(),j=(0,import_react2.useRef)(null),B=useCompile(),L=(0,import_react.useForm)();j.current=R;const E={variables:$,localVariables:w},V=(0,import_react2.useCallback)((U,q=!0)=>z(void 0,null,function*(){var G;if(q&&(0,import_client.isPortalInBody)(U.target))return;U.preventDefault(),U.stopPropagation();const Y=yield getVariableValue(O(F==null?void 0:F.title,{title:B(S.title)}),E),K=yield getVariableValue(O(F==null?void 0:F.content,{title:B(S.title)}),E);if(!n&&o){const H=()=>{v?v(U,()=>{var J,X;b!==!1&&(T==null||T(!0),(X=(J=M())==null?void 0:J.refresh)==null||X.call(J))}):isBulkEditAction(S)||!D()?(C(!0),y==null||y()):["view","update","create","customize:popup"].includes(S["x-action"])&&S["x-uid"]?j.current():(C(!0),y==null||y())};(F==null?void 0:F.enable)!==!1&&F!=null&&F.content?(yield(G=L==null?void 0:L.submit)==null?void 0:G.call(L),I.confirm({title:O(Y,{title:k||N||(t==null?void 0:t.title)}),content:O(K,{title:k||N||(t==null?void 0:t.title)}),onOk:H})):H()}}),[o,F==null?void 0:F.content,F==null?void 0:F.enable,F==null?void 0:F.title,k,n,t,S,D,I,v,b,y,T,C,O,N,M]);return(0,import_jsx_runtime.jsx)(RenderButtonInner,x({designable:e,field:t,aclCtx:o,icon:r,loading:i,disabled:n,buttonStyle:a,handleMouseEnter:l,getAriaLabel:g,handleButtonClick:V,tarComponent:c,componentCls:m,hashId:d,className:p,type:_,Designer:f,designerProps:u,title:N},h))};RenderButton.displayName="RenderButton";const RenderButtonInner=(0,import_react.observer)(e=>{var t,o;const r=e,{designable:i,field:n,aclCtx:a,icon:l,loading:c,disabled:u,buttonStyle:m,handleMouseEnter:d,getAriaLabel:p,handleButtonClick:h,tarComponent:g,componentCls:_,hashId:f,className:v,type:b,Designer:S,designerProps:C,title:y,isLink:F,onlyIcon:I}=r,T=W(r,["designable","field","aclCtx","icon","loading","disabled","buttonStyle","handleMouseEnter","getAriaLabel","handleButtonClick","tarComponent","componentCls","hashId","className","type","Designer","designerProps","title","isLink","onlyIcon"]),{t:k}=(0,import_react_i18next.useTranslation)(),N=(0,import_react2.useCallback)((0,import_debounce.default)((B,L=!0)=>{h(B,L)},300,{leading:!0,trailing:!1}),[h]);if((0,import_react2.useEffect)(()=>()=>{N.cancel()},[]),!i&&((t=n==null?void 0:n.data)!=null&&t.hidden||!a))return null;const M=y??(n==null?void 0:n.title),O=typeof M=="string"?k(M,{ns:NAMESPACE_UI_SCHEMA}):M,D=m,{opacity:R}=D,$=W(D,["opacity"]),w=F&&R?{opacity:R}:void 0,j=import_react2.default.forwardRef((B,L)=>{var E=B,{component:V=g||import_antd.Button,icon:U,onlyIcon:q,children:G}=E,Y=W(E,["component","icon","onlyIcon","children"]);return(0,import_jsx_runtime.jsxs)(V,P(x({ref:L},Y),{children:[q?(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:Y.title,children:(0,import_jsx_runtime.jsx)("span",{style:{padding:3},children:U&&typeof U=="string"?(0,import_jsx_runtime.jsx)(Icon,{type:U}):U})}):(0,import_jsx_runtime.jsx)("span",{style:{paddingRight:3},children:U&&typeof U=="string"?(0,import_jsx_runtime.jsx)(Icon,{type:U}):U}),q?G[1]:G]}))});return(0,import_jsx_runtime.jsxs)(SortableItem,P(x({role:"button","aria-label":p()},T),{onMouseEnter:d,loading:((o=n==null?void 0:n.data)==null?void 0:o.loading)||c,icon:typeof l=="string"?(0,import_jsx_runtime.jsx)(Icon,{type:l,style:w}):l,disabled:u,style:F?$:m,onClick:N,component:I||g?j:g||import_antd.Button,className:(0,import_classnames.default)(_,f,v,"nb-action"),type:b==="danger"?void 0:b,title:O,onlyIcon:I,children:[!I&&O&&(0,import_jsx_runtime.jsx)("span",{className:l?"nb-action-title":null,style:w,children:O}),(0,import_jsx_runtime.jsx)(S,x({},C))]}))});RenderButtonInner.displayName="RenderButtonInner";const ActionBarContext=import_react2.default.createContext({container:null}),ActionBarProvider=e=>{var t=e,{children:o}=t,r=W(t,["children"]);return(0,import_jsx_runtime.jsx)(ActionBarContext.Provider,{value:r,children:o})},useActionBarContext=()=>(0,import_react2.useContext)(ActionBarContext),Portal=e=>{const t=(0,import_react.useFieldSchema)(),{container:o,parentComponents:r=["BlockItem","CardItem"]}=useActionBarContext();return(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:o&&r.includes(t.parent["x-component"])?(0,import_react_dom.createPortal)(e.children,o):e.children})},InternalActionBar=e=>{var t;const{forceProps:o={}}=useActionBarContext(),r=x(x({},useProps(e)),o),{layout:i="two-columns",style:n,spaceProps:a}=r,l=W(r,["layout","style","spaceProps"]),c=(0,import_react.useFieldSchema)(),{render:u}=useSchemaInitializerRender(c["x-initializer"],c["x-initializer-props"]),{designable:m}=useDesignable();if(i==="one-column")return(0,import_jsx_runtime.jsx)(Portal,{children:(0,import_jsx_runtime.jsx)(DndContext,{children:(0,import_jsx_runtime.jsxs)("div",P(x({style:x({display:"flex",alignItems:"center",gap:8,marginTop:0},n)},l),{className:(0,import_css.cx)(l.className,"nb-action-bar"),children:[e.children&&(0,import_jsx_runtime.jsx)("div",{children:(0,import_jsx_runtime.jsx)(import_antd.Space,P(x({},a),{style:x({flexWrap:"wrap"},(a==null?void 0:a.style)||{}),children:c.mapProperties((p,h)=>(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{name:h,schema:p},h))}))}),u({style:{margin:"0 !important"}})]}))})});const d=Object.keys((t=c.properties)!=null?t:{}).length>0;return(0,import_jsx_runtime.jsxs)("div",P(x({style:!m&&!d?void 0:x({display:"flex",justifyContent:"space-between",alignItems:"center",overflowX:"auto",flexShrink:0,gap:"8px"},n)},l),{className:(0,import_css.cx)(l.className,"nb-action-bar"),children:[(0,import_jsx_runtime.jsx)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",width:"100%",overflow:"hidden",flexWrap:"wrap",gap:"8px"},children:(0,import_jsx_runtime.jsxs)(DndContext,{children:[(0,import_jsx_runtime.jsx)(import_antd.Space,P(x({},a),{style:{flexWrap:"wrap"},children:c.mapProperties((p,h)=>p["x-align"]!=="left"?null:(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{name:h,schema:p},h))})),(0,import_jsx_runtime.jsx)(import_antd.Space,P(x({},a),{style:x({flexWrap:"wrap"},(a==null?void 0:a.style)||{}),children:c.mapProperties((p,h)=>p["x-align"]==="left"?null:(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{name:h,schema:p},h))}))]})}),u()]}))},ActionBar=withDynamicSchemaProps(e=>(0,import_jsx_runtime.jsx)(InternalActionBar,x({},e)),{displayName:"ActionBar"}),useGetAriaLabelOfPopover=()=>{const e=(0,import_react.useFieldSchema)(),t=e["x-component"],o=typeof t=="string"?t:(t==null?void 0:t.displayName)||(t==null?void 0:t.name),r=useCompile();let{name:i}=useCollection_deprecated(),n=r(e.title);return i=i?`-${i}`:"",n=n?`-${n}`:"",{getAriaLabel:(0,import_react2.useCallback)(a=>(a=a?`-${a}`:"",`popover-${o}${i}${n}${a}`),[i,o,n])}},requestChartData=e=>function(){return z(this,null,function*(){var t;try{const o=yield this.api.request(e);return(t=o==null?void 0:o.data)==null?void 0:t.data}catch{return[]}})},FormComponent$1=e=>{const t=e,{form:o,children:r}=t,i=W(t,["form","children"]),n=(0,import_react.useField)(),a=(0,import_react.useFieldSchema)(),l=useAttach(o.createVoidField(P(x({},n.props),{basePath:""})));return(0,import_jsx_runtime.jsx)(import_react.FieldContext.Provider,{value:void 0,children:(0,import_jsx_runtime.jsx)(import_react.FormContext.Provider,{value:o,children:(0,import_jsx_runtime.jsx)(import_antd_v5.FormLayout,P(x({layout:"vertical"},i),{children:(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{basePath:l.address,schema:a,onlyRenderProperties:!0})}))})})},Def$1=e=>e.children,FormDecorator$1=e=>{const t=e,{form:o,children:r,disabled:i}=t,n=W(t,["form","children","disabled"]),a=(0,import_react.useField)(),l=(0,import_react.useFieldSchema)(),c=useAttach(o.createVoidField(P(x({},a.props),{basePath:""}))),u=useComponent(l["x-component"],Def$1);return(0,import_react2.useEffect)(()=>{o.disabled=i||a.disabled},[i,a.disabled]),(0,import_jsx_runtime.jsx)(import_antd.ConfigProvider,{componentDisabled:i,children:(0,import_jsx_runtime.jsx)(import_react.FieldContext.Provider,{value:void 0,children:(0,import_jsx_runtime.jsx)(import_react.FormContext.Provider,{value:o,children:(0,import_jsx_runtime.jsx)(import_antd_v5.FormLayout,P(x({layout:"vertical"},n),{children:(0,import_jsx_runtime.jsx)(import_react.FieldContext.Provider,{value:c,children:(0,import_jsx_runtime.jsx)(u,P(x({},a.componentProps),{children:(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{basePath:c.address,schema:l,onlyRenderProperties:!0})}))})}))})})})},getRequestParams=e=>{const{request:t,initialValue:o}=e;return t||(()=>Promise.resolve({data:o}))},useDefaultValues=(e={},t={})=>useRequest(getRequestParams(t),e),FormBlockContext=(0,import_react2.createContext)(null);FormBlockContext.displayName="FormBlockContext";const Form$1=(0,import_react.observer)(e=>{const t=e,{request:o,effects:r,initialValue:i,useValues:n=useDefaultValues}=t,a=W(t,["request","effects","initialValue","useValues"]),l=(0,import_react.useFieldSchema)(),c=(0,import_react.useField)(),u=(0,import_react2.useMemo)(()=>(0,import_core.createForm)({effects:r}),[]),m=n({uid:l["x-uid"],onSuccess(p){return z(this,null,function*(){yield u.reset(),u.setValues(p==null?void 0:p.data),u.setInitialValues(p==null?void 0:p.data)})}},e),d=(0,import_react2.useContext)(FormBlockContext);return(0,import_jsx_runtime.jsx)(FormBlockContext.Provider,{value:{parent:d,form:u,result:m,field:c,fieldSchema:l},children:(0,import_jsx_runtime.jsx)(import_antd.Spin,{spinning:(m==null?void 0:m.loading)||!1,children:l["x-decorator"]==="Form"?(0,import_jsx_runtime.jsx)(FormDecorator$1,x({form:u},a)):(0,import_jsx_runtime.jsx)(FormComponent$1,x({form:u},a))})})},{displayName:"Form"});Form$1.Designer=function e(){const{name:t,title:o}=useCollection_deprecated(),r=useSchemaTemplate(),{componentNamePrefix:i}=useBlockTemplateContext();return(0,import_jsx_runtime.jsxs)(GeneralSchemaDesigner,{template:r,title:o||t,children:[(0,import_jsx_runtime.jsx)(SchemaSettingsTemplate,{componentName:`${i}Form`,collectionName:t}),(0,import_jsx_runtime.jsx)(SchemaSettingsDivider,{}),(0,import_jsx_runtime.jsx)(SchemaSettingsRemove,{removeParentsIfNoChildren:!0,breakRemoveOn:{"x-component":"Grid"}})]})};const formV1Settings=new SchemaSettings({name:"FormV1Settings",items:[{name:"template",Component:SchemaSettingsTemplate,useComponentProps(){const{name:e}=useCollection_deprecated(),{componentNamePrefix:t}=useBlockTemplateContext();return{componentName:`${t}Form`,collectionName:e}}},{name:"divider",type:"divider"},{name:"remove",type:"remove",componentProps:{removeParentsIfNoChildren:!0,breakRemoveOn:{"x-component":"Grid"}}}]}),FormDesigner=()=>{const{name:e,title:t}=useCollection_deprecated(),o=useSchemaTemplate();return(0,import_jsx_runtime.jsx)(GeneralSchemaDesigner,{schemaSettings:"FormSettings",template:o,title:t||e})},ReadPrettyFormDesigner=()=>{const{name:e,title:t}=useCollection_deprecated(),o=useSchemaTemplate();return(0,import_jsx_runtime.jsx)(GeneralSchemaDesigner,{schemaSettings:"ReadPrettyFormSettings",template:o,title:t||e})},DetailsDesigner=()=>{const{name:e,title:t}=useCollection_deprecated(),o=useSchemaTemplate();return(0,import_jsx_runtime.jsx)(GeneralSchemaDesigner,{schemaSettings:"FormDetailsSettings",template:o,title:t||e})},FilterDesigner=()=>{const{name:e,title:t}=useCollection_deprecated(),o=useSchemaTemplate();return(0,import_jsx_runtime.jsx)(GeneralSchemaDesigner,{schemaSettings:"blockSettings:filterForm",template:o,title:t||e})},defaultFieldNames$1={label:"label",value:"value",color:"color",options:"children"};function flatData$1(e,t){const o=[];if(!Array.isArray(e))return o;for(let r=0;r<e.length;r++){const i=e[r][t.options];Array.isArray(i)&&o.push(...flatData$1(i,t)),o.push(x({},e[r]))}return o}function findOptions(e,t,o){if(!e)return[];const r=[];for(const i of o){const n=e.find(a=>a[t.value]==i)||{value:i,label:i&&i.toString()};r.push(n)}return r}function getCurrentOptions(e,t,o){const r=flatData$1(t,o),i=(0,import_lodash.castArray)(e).map(n=>(0,import_client.isPlainObject)(n)?n[o.value]:n);return findOptions(r,o,i)}const ReadPrettyInternal=(0,import_react.observer)(e=>{const[t,o]=(0,import_react2.useState)(!0),[r,i]=(0,import_react2.useState)([]),n=(0,import_react.useField)(),a=useCollectionField();return(0,import_react2.useEffect)(()=>{var l;const c=x(x({},defaultFieldNames$1),e.fieldNames),u=n.dataSource||e.options||(a==null?void 0:a.uiSchema.enum)||[],m=getCurrentOptions(n.value,u,c);if(!(0,import_shared.isValid)(e.value)&&!m.length||(0,import_core.isArrayField)(n)&&((l=n==null?void 0:n.value)==null?void 0:l.length)===0)return;const d=n.value!==null&&m.map((p,h)=>(0,import_jsx_runtime.jsx)(import_antd.Tag,{color:p[c.color],icon:p.icon,children:p[c.label]},h));i(d),o(!1)},[a==null?void 0:a.uiSchema.enum,n,n.dataSource,n.value,e.fieldNames,e.options,e.value]),t?null:(0,import_jsx_runtime.jsx)(EllipsisWithTooltip,{ellipsis:e.ellipsis,children:r})},{displayName:"SelectReadPretty"}),ReadPretty$b=withPopupWrapper(ReadPrettyInternal),isEmptyObject=e=>!(0,import_shared.isValid)(e)||typeof e=="object"&&Object.keys(e).length===0,ObjectSelect=e=>{const t=e,{value:o,options:r,onChange:i,fieldNames:n,mode:a,loading:l,rawOptions:c,defaultValue:u}=t,m=W(t,["value","options","onChange","fieldNames","mode","loading","rawOptions","defaultValue"]),d=p=>{var h;if(isEmptyObject(p))return;const g=(0,import_shared.toArr)(p).filter(f=>f).map(f=>(0,import_client.isPlainObject)(f)?f[n.value]:f),_=(h=getCurrentOptions(g,r,n))==null?void 0:h.map(f=>({label:f[n.label],value:f[n.value]}));return["tags","multiple"].includes(a)||e.multiple?_:_.shift()};return(0,import_jsx_runtime.jsx)(import_antd.Select,x({role:"button","data-testid":`select-object-${a||"single"}`,value:d(o),defaultValue:d(u),allowClear:{clearIcon:(0,import_jsx_runtime.jsx)(import_icons.CloseCircleFilled,{role:"button","aria-label":"icon-close-select"})},labelInValue:!0,notFoundContent:l?(0,import_jsx_runtime.jsx)(import_antd.Spin,{}):(0,import_jsx_runtime.jsx)(import_antd.Empty,{image:import_antd.Empty.PRESENTED_IMAGE_SIMPLE}),options:r,fieldNames:n,showSearch:!0,popupMatchSelectWidth:!1,filterOption:(p,h)=>{var g;return((g=h==null?void 0:h[n.label||"label"])!=null?g:"").includes(p)},filterSort:(p,h)=>{var g,_;return((g=p==null?void 0:p[n.label||"label"])!=null?g:"").toLowerCase().localeCompare(((_=h==null?void 0:h[n.label||"label"])!=null?_:"").toLowerCase())},onChange:p=>{const h=getCurrentOptions((0,import_shared.toArr)(p).map(g=>g.value),c||r,n);["tags","multiple"].includes(a)||e.multiple?i==null||i(h):i==null||i(h.shift()||null)},mode:a,tagRender:p=>(0,import_jsx_runtime.jsx)(import_antd.Tag,P(x({role:"button","aria-label":p.label,closeIcon:(0,import_jsx_runtime.jsx)(import_icons.CloseOutlined,{role:"button","aria-label":"icon-close-tag"})},p),{children:p.label})),maxTagCount:"responsive"},m))},filterOption=(e,t)=>{var o;return((o=t==null?void 0:t.label)!=null?o:"").toLowerCase().includes((e||"").toLowerCase())},InternalSelect=(0,import_react.connect)(e=>{const t=e,{objectValue:o,loading:r,value:i,rawOptions:n,defaultValue:a}=t,l=W(t,["objectValue","loading","value","rawOptions","defaultValue"]),c=useCompile();let u=e.multiple?"multiple":e.mode;if(u&&!["multiple","tags"].includes(u)&&(u=void 0),o)return(0,import_jsx_runtime.jsx)(ObjectSelect,P(x({rawOptions:n},l),{defaultValue:a,value:i,mode:u,loading:r}));const m=d=>["tags","multiple"].includes(e.mode)||e.multiple?d?(0,import_shared.toArr)(d):void 0:d;return(0,import_jsx_runtime.jsx)(import_antd.Select,P(x({role:"button","data-testid":`select-${u||"single"}`,showSearch:!0,filterOption,allowClear:{clearIcon:(0,import_jsx_runtime.jsx)(import_icons.CloseCircleFilled,{role:"button","aria-label":"icon-close-select"})},popupMatchSelectWidth:!1,notFoundContent:r?(0,import_jsx_runtime.jsx)(import_antd.Spin,{}):(0,import_jsx_runtime.jsx)(import_antd.Empty,{image:import_antd.Empty.PRESENTED_IMAGE_SIMPLE}),value:m(i),defaultValue:m(a),tagRender:d=>(0,import_jsx_runtime.jsx)(import_antd.Tag,P(x({role:"button","aria-label":d.label,closeIcon:(0,import_jsx_runtime.jsx)(import_icons.CloseOutlined,{role:"button","aria-label":"icon-close-tag"})},d),{children:d.label}))},c(l)),{onChange:d=>{var p;(p=e.onChange)==null||p.call(e,d===void 0?null:d)},mode:u,maxTagCount:"responsive"}))},(0,import_react.mapProps)({dataSource:"options"},(e,t)=>{var o,r,i,n;const{value:a,options:l}=e,c=(0,import_lodash.every)(l,u=>u.value!==a)&&((n=(i=(r=(o=t==null?void 0:t.data)==null?void 0:o.dataSource)==null?void 0:r.find)==null?void 0:i.call(r,u=>u.value===a))==null?void 0:n.label)||a;return P(x({},e),{value:c,fieldNames:x(x({},defaultFieldNames$1),e.fieldNames),suffixIcon:t!=null&&t.loading||t!=null&&t.validating?(0,import_jsx_runtime.jsx)(import_icons.LoadingOutlined,{}):e.suffixIcon})}),(0,import_react.mapReadPretty)(ReadPretty$b)),Select=InternalSelect;Select.ReadPretty=ReadPretty$b;const getValues=(e,t)=>(0,import_lodash.castArray)(e).filter(o=>o!=null).map(o=>typeof o=="object"?o[t.value]:o),ReadPretty$a=(0,import_react.observer)(e=>{const t=x(x({},defaultFieldNames$1),e.fieldNames),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),i=useRecord(),{snapshot:n}=useActionContext(),{data:a}=useRequest(n?()=>z(void 0,null,function*(){return{data:i[r.name]}}):P(x({action:"list"},e.service),{params:{paginate:!1,filter:{[t.value]:{$in:getValues(o.value,t)}}}}),{refreshDeps:[e.service,o.value]});return(0,import_jsx_runtime.jsx)(Select.ReadPretty,P(x({},e),{options:a==null?void 0:a.data}))},{displayName:"ReadPretty"}),EMPTY$1="N/A",InternalRemoteSelect=withDynamicSchemaProps((0,import_react.connect)(e=>{var t,o;const r=e,{fieldNames:i={},service:n={},wait:a=300,value:l,defaultValue:c,objectValue:u,manual:m=!0,mapOptions:d,targetField:p,CustomDropdownRender:h,optionFilter:g,dataSource:_,toOptionsItem:f=K=>K,popupMatchSelectWidth:v=!1,onSuccess:b}=r,S=W(r,["fieldNames","service","wait","value","defaultValue","objectValue","manual","mapOptions","targetField","CustomDropdownRender","optionFilter","dataSource","toOptionsItem","popupMatchSelectWidth","onSuccess"]),C=useDataSourceKey(),y=useDataSourceHeaders(_||C),F=(0,import_react2.useRef)(!1),I=(0,import_react.useFieldSchema)(),T=((t=I["x-component-props"])==null?void 0:t.addMode)==="quickAdd",{getField:k}=useCollection_deprecated(),N=(0,import_react2.useRef)(null),{getCollectionJoinField:M,getInterface:O}=useCollectionManager_deprecated(),D=I["x-collection-field"]||I.name,R=k(D)||M(D),$=p||(R==null?void 0:R.target)&&(i==null?void 0:i.label)&&M(`${R.target}.${i.label}`),w=(0,import_react2.useMemo)(()=>{var K;if($!=null&&$.interface){const H=O($.interface),J=((K=H==null?void 0:H.filterable)==null?void 0:K.operators[0].value)||"$includes";return $.type==="string"?"$includes":J}return"$includes"},[$]),j=useCompile(),B=(0,import_react2.useCallback)(K=>{try{return K.filter(H=>["number","string"].includes(typeof H[i.value])||!H[i.value]).map(H=>{var J;let X=j(H[i.label]);if((J=$==null?void 0:$.uiSchema)!=null&&J.enum)if(Array.isArray(X))X=X.map((Q,oe)=>{const ee=$.uiSchema.enum.find(ie=>ie.value===Q);return ee?(0,import_jsx_runtime.jsx)(import_antd.Tag,{role:"button",color:ee.color,style:{marginRight:3},children:(ee==null?void 0:ee.label)||Q},oe):(0,import_jsx_runtime.jsx)(import_antd.Tag,{role:"button",children:Q},Q)}).reverse();else{const Q=$.uiSchema.enum.find(oe=>oe.value===X);Q&&(X=(0,import_jsx_runtime.jsx)(import_antd.Tag,{role:"button",color:Q.color,children:Q.label}))}return($==null?void 0:$.type)==="date"&&(X=(0,import_dayjs.default)(X).format("YYYY-MM-DD")),d?d({[i.label]:X||EMPTY$1,[i.value]:H[i.value]}):P(x({},(0,import_lodash.omit)(H,"style")),{[i.label]:X||EMPTY$1,[i.value]:H[i.value]})}).filter(Boolean)}catch(H){return console.error(H),K}},[$==null?void 0:$.uiSchema,i]),{data:L,run:E,loading:V}=useRequest(P(x({action:"list"},n),{headers:y,params:P(x({pageSize:200},n==null?void 0:n.params),{filter:(o=n==null?void 0:n.params)==null?void 0:o.filter})}),x({manual:m,debounceWait:a,onSuccess:b},n.defaultParams?{defaultParams:[n.defaultParams]}:{})),U=(0,import_react2.useMemo)(()=>JSON.stringify({service:n,fieldNames:i}),[n,i]),q=(0,import_react2.useCallback)(()=>N.current&&h?(0,import_jsx_runtime.jsx)(h,{search:N.current,callBack:()=>{N.current=null}}):null,[N.current]);(0,import_react2.useEffect)(()=>{F.current&&E()},[U]);const G=K=>z(void 0,null,function*(){var H;E({filter:mergeFilter([K?{[i.label]:{[w]:K}}:{},(H=n==null?void 0:n.params)==null?void 0:H.filter])}),N.current=K}),Y=(0,import_react2.useMemo)(()=>{var K;const H=l||c;if(!((K=L==null?void 0:L.data)!=null&&K.length))return H!=null?Array.isArray(H)?H:[H]:[];const J=H!=null&&(Array.isArray(H)?H.map(Q=>P(x({},Q),{[i.value]:Q[i.value]||Q})):[P(x({},H),{[i.value]:H[i.value]||H})])||[],X=typeof g=="function"?L.data.filter(g):L.data;return(0,import_lodash.uniqBy)(X.concat(J??[]),i.value)},[l,c,L==null?void 0:L.data,i.value,g]);return(0,import_jsx_runtime.jsx)(Select,P(x({popupMatchSelectWidth:v,autoClearSearchValue:!0,filterOption:!1,filterSort:null,fieldNames:i,onSearch:G,onDropdownVisibleChange:K=>{N.current=null,K&&E(),F.current=!0},objectValue:u,value:l,defaultValue:c},S),{loading:L?V:!0,options:f(B(Y)),rawOptions:Y,dropdownRender:K=>{const H=Y.some(J=>J[i.label]===N.current);return(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:T?(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[!((L==null?void 0:L.data.length)===0&&N!=null&&N.current)&&K,(L==null?void 0:L.data.length)>0&&(N==null?void 0:N.current)&&!H&&(0,import_jsx_runtime.jsx)(import_antd.Divider,{style:{margin:0}}),!H&&(0,import_jsx_runtime.jsx)(q,{})]}):K})}}))},(0,import_react.mapProps)({dataSource:"options"},(e,t)=>{var o;const r=(0,import_react.useFieldSchema)();return P(x({},e),{fieldNames:x(x(x(x({},defaultFieldNames$1),e.fieldNames),t.componentProps.fieldNames),(o=r["x-component-props"])==null?void 0:o.fieldNames),suffixIcon:t!=null&&t.loading||t!=null&&t.validating?(0,import_jsx_runtime.jsx)(import_icons.LoadingOutlined,{}):e.suffixIcon})}),(0,import_react.mapReadPretty)(ReadPretty$a))),RemoteSelect=InternalRemoteSelect;RemoteSelect.ReadPretty=ReadPretty$a;const useFormDataTemplates=()=>{const e=(0,import_react.useFieldSchema)(),{t}=(0,import_react_i18next.useTranslation)(),{duplicateData:o}=useFormBlockContext(),{getCollectionJoinField:r}=useCollectionManager_deprecated();if(o)return o;const{items:i=[],display:n=!0}=findDataTemplates(e);i.forEach(c=>{var u;try{c.fields=(u=c.fields)==null?void 0:u.map(m=>r(`${c.collection}.${m}`)?m:"").filter(Boolean)}catch(m){(0,import_client.error)(m),c.fields=[]}});const a=[{key:"none",title:t("None")}].concat(i.map((c,u)=>P(x({key:u},c),{isLeaf:c.dataId!==null&&c.dataId!==void 0,titleCollectionField:(c==null?void 0:c.titleField)&&r(`${c.collection}.${c.titleField}`)}))),l=i.find(c=>c.default);return{templates:a,display:n,defaultTemplate:l,enabled:i.length>0&&i.every(c=>c.dataId||c.dataScope)}},Templates=import_react2.default.memo(({style:e={},form:t})=>{const{token:o}=useToken$1(),{templates:r,display:i,enabled:n,defaultTemplate:a}=useFormDataTemplates(),{getCollectionJoinField:l}=useCollectionManager_deprecated(),c=compatibleDataId(r),[u,m]=(0,import_react2.useState)((a==null?void 0:a.key)||"none"),[d,p]=(0,import_react2.useState)(null),h=useAPIClient(),{t:g}=(0,import_react_i18next.useTranslation)(),_=useDataSourceKey(),f=useDataSourceHeaders(_);(0,import_react2.useEffect)(()=>{n&&a&&t&&(t.__template=!0,a.key==="duplicate"&&C(a.dataId,a,f))},[]),(0,import_react2.useEffect)(()=>{c!=null&&c.some(F=>F.key===u)||S("none")},[c]);const v=(0,import_react2.useMemo)(()=>x({display:"flex",alignItems:"center",backgroundColor:o.colorFillAlter,padding:o.padding},e),[e,o.colorFillAlter]),b=(0,import_react2.useMemo)(()=>({fontSize:o.fontSize,fontWeight:"bold",whiteSpace:"nowrap",marginRight:o.marginXS}),[o.fontSize,o.marginXS]),S=(0,import_react2.useCallback)(F=>z(void 0,null,function*(){m(F),p(null),t==null||t.reset()}),[]),C=(0,import_react2.useCallback)((F,I,T)=>z(void 0,null,function*(){const k=P(x({},I),{dataId:F});p(I),fetchTemplateData(h,k,T).then(N=>(t&&N&&(t.reset(),t.__template=!0,(0,import_client.forEach)(N,(M,O)=>{var D;M&&(t.values[O]=M,(D=t==null?void 0:t.setInitialValuesIn)==null||D.call(t,O,M))})),N)).catch(N=>{console.error(N)})}),[]);if(!n||!i)return null;const y=c==null?void 0:c.find(F=>F.key===u);return(0,import_jsx_runtime.jsx)("div",{style:v,children:(0,import_jsx_runtime.jsxs)(import_antd.Space,{wrap:!0,children:[(0,import_jsx_runtime.jsxs)("label",{style:b,children:[g("Data template"),": "]}),(0,import_jsx_runtime.jsx)(import_antd.Select,{role:"button","data-testid":"select-form-data-template",popupMatchSelectWidth:!1,options:c,fieldNames:{label:"title",value:"key"},value:u,onChange:S}),u!=="none"&&y&&(0,import_jsx_runtime.jsx)(RemoteSelect,{style:{width:220},fieldNames:{label:y==null?void 0:y.titleField,value:"id"},target:y==null?void 0:y.collection,value:d,objectValue:!0,service:{resource:y==null?void 0:y.collection,params:{filter:y==null?void 0:y.dataScope}},onChange:F=>C(F==null?void 0:F.id,x(x({},F),y),f),targetField:l(`${y==null?void 0:y.collection}.${y.titleField}`)})]})})});Templates.displayName="NocoBaseFormDataTemplates";function findDataTemplates(e){const t=findFormBlock(e);return t?import_lodash.default.cloneDeep(t["x-data-templates"])||{}:{}}function fetchTemplateData(e,t,o){return z(this,null,function*(){if(!(t.fields.length===0||!t.dataId))return e.resource(t.collection,void 0,o).get({filterByTk:t.dataId,fields:t.fields,isTemplate:!0}).then(r=>{var i;return(i=r.data)==null?void 0:i.data})})}const useFormBlockHeight=()=>{var e,t,o;const r=useDataBlockHeight(),i=(0,import_react.useFieldSchema)(),{token:n}=import_antd.theme.useToken(),{designable:a}=useDesignable(),{heightProps:l}=useBlockHeightProps()||{},{title:c,titleHeight:u}=l||{},{display:m,enabled:d}=useFormDataTemplates(),p=i.reduceProperties((F,I)=>I["x-component"]==="ActionBar"?I:F),h=Object.keys((p==null?void 0:p.properties)||{}).length>0,g=(o=(t=(e=i==null?void 0:i.parent)==null?void 0:e["x-decorator"])==null?void 0:t.includes)==null?void 0:o.call(t,"FormBlockProvider"),_=h||a?n.controlHeight+(g?1*n.marginLG:24+n.paddingLG):n.marginLG,f=c?u:0,v=useDataBlockRequestData(),{count:b,pageSize:S}=(v==null?void 0:v.meta)||{},C=b>S?n.controlHeightSM+24:0,y=m&&d?n.controlHeight+2*n.padding+n.margin:0;return r-_-n.paddingLG-f-C-y},FormComponent=e=>{const t=e,{form:o,children:r}=t,i=W(t,["form","children"]),n=(0,import_react.useField)(),a=(0,import_react.useFieldSchema)(),l=getCardItemSchema==null?void 0:getCardItemSchema(a),c=useAttach(o.createVoidField(P(x({},n.props),{basePath:""}))),u=useFormBlockHeight(),{token:m}=import_antd.theme.useToken(),{layout:d="vertical",labelAlign:p="left",labelWidth:h=120,labelWrap:g=!0,colon:_=!0}=(l==null?void 0:l["x-component-props"])||{},{isInFilterFormBlock:f}=useFlag();return(0,import_react2.useEffect)(()=>{f&&o.query("*").forEach(v=>{v.validator&&(v.validator=null)})},[o,f]),(0,import_jsx_runtime.jsx)(import_react.FieldContext.Provider,{value:void 0,children:(0,import_jsx_runtime.jsx)(import_react.FormContext.Provider,{value:o,children:(0,import_jsx_runtime.jsx)(import_antd_v5.FormLayout,P(x({layout:d},i),{labelAlign:p,labelWidth:d==="horizontal"?h:null,labelWrap:g,colon:_,children:(0,import_jsx_runtime.jsx)("div",{className:import_css.css`
|
|
727
727
|
.nb-grid-container {
|
|
728
728
|
height: ${u?u+"px":"100%"};
|
|
729
729
|
overflow-y: auto;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nocobase/client",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.9",
|
|
4
4
|
"license": "AGPL-3.0",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "es/index.mjs",
|
|
@@ -26,9 +26,9 @@
|
|
|
26
26
|
"@formily/reactive-react": "^2.2.27",
|
|
27
27
|
"@formily/shared": "^2.2.27",
|
|
28
28
|
"@formily/validator": "^2.2.27",
|
|
29
|
-
"@nocobase/evaluators": "1.7.
|
|
30
|
-
"@nocobase/sdk": "1.7.
|
|
31
|
-
"@nocobase/utils": "1.7.
|
|
29
|
+
"@nocobase/evaluators": "1.7.9",
|
|
30
|
+
"@nocobase/sdk": "1.7.9",
|
|
31
|
+
"@nocobase/utils": "1.7.9",
|
|
32
32
|
"ahooks": "^3.7.2",
|
|
33
33
|
"antd": "5.24.2",
|
|
34
34
|
"antd-style": "3.7.1",
|
|
@@ -81,5 +81,5 @@
|
|
|
81
81
|
"dumi": "2.2.14",
|
|
82
82
|
"dumi-theme-nocobase": "^0.2.28"
|
|
83
83
|
},
|
|
84
|
-
"gitHead": "
|
|
84
|
+
"gitHead": "fd09c189ee5afaab5b96594b7116097f2d8f4f55"
|
|
85
85
|
}
|