@nocobase/client 1.9.40 → 1.9.41
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 +23 -32
- package/lib/index.js +2 -2
- package/package.json +5 -5
package/es/index.mjs
CHANGED
|
@@ -8858,7 +8858,7 @@ function addAppVersion(e, t) {
|
|
|
8858
8858
|
addAppVersion((o = e.properties) == null ? void 0 : o[n], t);
|
|
8859
8859
|
}), e;
|
|
8860
8860
|
}
|
|
8861
|
-
const name = "@nocobase/client", version = "1.9.
|
|
8861
|
+
const name = "@nocobase/client", version = "1.9.41", license = "AGPL-3.0", main = "lib/index.js", module = "es/index.mjs", types = "es/index.d.ts", dependencies = {
|
|
8862
8862
|
"@ahooksjs/use-url-state": "3.5.1",
|
|
8863
8863
|
"@ant-design/cssinjs": "^1.11.1",
|
|
8864
8864
|
"@ant-design/icons": "^5.6.1",
|
|
@@ -8879,9 +8879,9 @@ const name = "@nocobase/client", version = "1.9.40", license = "AGPL-3.0", main
|
|
|
8879
8879
|
"@formily/reactive-react": "^2.2.27",
|
|
8880
8880
|
"@formily/shared": "^2.2.27",
|
|
8881
8881
|
"@formily/validator": "^2.2.27",
|
|
8882
|
-
"@nocobase/evaluators": "1.9.
|
|
8883
|
-
"@nocobase/sdk": "1.9.
|
|
8884
|
-
"@nocobase/utils": "1.9.
|
|
8882
|
+
"@nocobase/evaluators": "1.9.41",
|
|
8883
|
+
"@nocobase/sdk": "1.9.41",
|
|
8884
|
+
"@nocobase/utils": "1.9.41",
|
|
8885
8885
|
ahooks: "^3.7.2",
|
|
8886
8886
|
antd: "5.24.2",
|
|
8887
8887
|
"antd-mobile": "^5.41.1",
|
|
@@ -11658,47 +11658,38 @@ ResourceActionContext.displayName = "ResourceActionContext";
|
|
|
11658
11658
|
const ResourceContext = createContext(null);
|
|
11659
11659
|
ResourceContext.displayName = "ResourceContext";
|
|
11660
11660
|
const CollectionResourceActionProvider = (e) => {
|
|
11661
|
-
var
|
|
11661
|
+
var v, I, F;
|
|
11662
11662
|
const { collection: t, request: n, uid: o, dragSort: r } = e, a = useAPIClient(), i = useRecord(), l = n == null ? void 0 : n.action, c = {};
|
|
11663
11663
|
l === "get" && (c.filterByTk = i[t.targetKey || t.filterTargetKey || "id"]);
|
|
11664
|
-
const u = ((
|
|
11664
|
+
const y = (n == null ? void 0 : n.params) || {}, { appends: u, disableDefaultAppends: d } = y, p = W(y, ["appends", "disableDefaultAppends"]), m = ((I = (v = t == null ? void 0 : t.fields) == null ? void 0 : v.filter) == null ? void 0 : I.call(v, (w) => w.target).map((w) => w.name)) || [], h = d ? u || [] : [...m, ...u || []], g = h.length > 0, f = useRequest(
|
|
11665
11665
|
P(x({}, n), {
|
|
11666
|
-
params: P(x(x({}, c),
|
|
11667
|
-
|
|
11668
|
-
...((C = (f = t == null ? void 0 : t.fields) == null ? void 0 : f.filter) == null ? void 0 : C.call(f, (S) => S.target).map((S) => S.name)) || [],
|
|
11669
|
-
...u
|
|
11670
|
-
],
|
|
11671
|
-
sort: r ? [t.sortable === !0 ? "sort" : t.sortable] : (b = n == null ? void 0 : n.params) == null ? void 0 : b.sort
|
|
11666
|
+
params: P(x(x(x({}, c), p), g ? { appends: h } : {}), {
|
|
11667
|
+
sort: r ? [t.sortable === !0 ? "sort" : t.sortable] : (F = n == null ? void 0 : n.params) == null ? void 0 : F.sort
|
|
11672
11668
|
})
|
|
11673
11669
|
}),
|
|
11674
11670
|
{ uid: o }
|
|
11675
|
-
),
|
|
11676
|
-
() => P(x({},
|
|
11677
|
-
[r, n,
|
|
11678
|
-
),
|
|
11679
|
-
return /* @__PURE__ */ jsx(ResourceContext.Provider, { value:
|
|
11671
|
+
), C = a.resource(n.resource), b = useMemo(
|
|
11672
|
+
() => P(x({}, f), { defaultRequest: n, dragSort: r }),
|
|
11673
|
+
[r, n, f]
|
|
11674
|
+
), S = useMemo(() => ({ type: "collection", resource: C, collection: t }), [t, C]);
|
|
11675
|
+
return /* @__PURE__ */ jsx(ResourceContext.Provider, { value: S, children: /* @__PURE__ */ jsx(ResourceActionContext.Provider, { value: b, children: /* @__PURE__ */ jsx(CollectionProvider_deprecated, { collection: t, children: e.children }) }) });
|
|
11680
11676
|
}, AssociationResourceActionProvider = (e) => {
|
|
11681
|
-
var
|
|
11682
|
-
const { collection: t, association: n, request: o, uid: r, dragSort: a } = e, i = useAPIClient(), c = useRecord()[n.sourceKey], u = ((
|
|
11677
|
+
var v, I;
|
|
11678
|
+
const { collection: t, association: n, request: o, uid: r, dragSort: a } = e, i = useAPIClient(), c = useRecord()[n.sourceKey], y = (o == null ? void 0 : o.params) || {}, { appends: u, disableDefaultAppends: d } = y, p = W(y, ["appends", "disableDefaultAppends"]), m = ((I = (v = t == null ? void 0 : t.fields) == null ? void 0 : v.filter) == null ? void 0 : I.call(v, (F) => F.target).map((F) => F.name)) || [], h = d ? u || [] : [...m, ...u || []], g = h.length > 0, f = useRequest(
|
|
11683
11679
|
P(x({
|
|
11684
11680
|
resourceOf: c
|
|
11685
11681
|
}, o), {
|
|
11686
|
-
params:
|
|
11687
|
-
appends: [
|
|
11688
|
-
...((C = (f = t == null ? void 0 : t.fields) == null ? void 0 : f.filter) == null ? void 0 : C.call(f, (b) => b.target).map((b) => b.name)) || [],
|
|
11689
|
-
...u
|
|
11690
|
-
]
|
|
11691
|
-
})
|
|
11682
|
+
params: x(x({}, p), g ? { appends: h } : {})
|
|
11692
11683
|
}),
|
|
11693
11684
|
{ uid: r }
|
|
11694
|
-
),
|
|
11695
|
-
() => ({ type: "association", resource:
|
|
11696
|
-
[n, t,
|
|
11697
|
-
),
|
|
11698
|
-
() => P(x({},
|
|
11699
|
-
[a, o,
|
|
11685
|
+
), C = i.resource(o.resource, c), b = useMemo(
|
|
11686
|
+
() => ({ type: "association", resource: C, association: n, collection: t }),
|
|
11687
|
+
[n, t, C]
|
|
11688
|
+
), S = useMemo(
|
|
11689
|
+
() => P(x({}, f), { defaultRequest: o, dragSort: a }),
|
|
11690
|
+
[a, o, f]
|
|
11700
11691
|
);
|
|
11701
|
-
return /* @__PURE__ */ jsx(ResourceContext.Provider, { value:
|
|
11692
|
+
return /* @__PURE__ */ jsx(ResourceContext.Provider, { value: b, children: /* @__PURE__ */ jsx(ResourceActionContext.Provider, { value: S, children: /* @__PURE__ */ jsx(CollectionProvider_deprecated, { collection: t, children: e.children }) }) });
|
|
11702
11693
|
}, ResourceActionProvider = (e) => {
|
|
11703
11694
|
var r;
|
|
11704
11695
|
let { collection: t, request: n } = e;
|
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"]),d=useCompile(),m=useSchemaInitializerItem(),p=(0,import_react2.useMemo)(()=>a||(m==null?void 0:m.name)||(0,import_shared.uid)(),[a,m]),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:d(n),icon:typeof c=="string"?(0,import_jsx_runtime.jsx)(import_icons.default,{type:c}):c,children:g})],[g,d,c,p,u,n]);return(0,import_jsx_runtime.jsx)(SchemaInitializerMenu,{onOpenChange:l,items:_})},SchemaInitializerSubMenuInternal=()=>{const e=useSchemaInitializerItem();return(0,import_jsx_runtime.jsx)(SchemaInitializerSubMenu,x({},e))},useAriaAttributeOfMenuItem=()=>{const{isInMenu:e}=useSchemaInitializerSubMenuContext();return{attribute:(0,import_react2.useMemo)(()=>e?{}:{role:"menuitem"},[e])}},{Paragraph:Paragraph$1,Text:Text$2}=import_antd.Typography,ErrorFallbackModal=e=>{const[t,o]=import_react2.default.useState(!1),r=(0,import_jsx_runtime.jsx)(Paragraph$1,{style:{display:"flex",marginBottom:0},copyable:{text:e.error.message},children:(0,import_jsx_runtime.jsxs)(Text$2,{type:"danger",style:{whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden",display:"inline-block",maxWidth:"200px"},children:["Error: ",e.error.message]})});return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)("div",{onMouseOver:()=>o(!0),children:e.children||r}),(0,import_jsx_runtime.jsx)(import_antd.Modal,{zIndex:1e4,open:t,footer:null,onCancel:()=>o(!1),width:"60%",children:(0,import_jsx_runtime.jsx)(ErrorFallback,x({},e))})]})},{Paragraph,Text:Text$1,Link}=import_antd.Typography,useDownloadLogs=(e,t={})=>{const o=useLocationNoUpdate(),[r,i]=import_react2.default.useState(!1),n=useAPIClient();return{loading:r,download:()=>q(void 0,null,function*(){i(!0);try{const a=yield n.request({url:"logger:collect",method:"post",responseType:"blob",data:x({error:{message:e.message,stack:e.stack},location:o},t)}),l=window.URL.createObjectURL(new Blob([a.data],{type:"application/gzip"})),c=document.createElement("a");c.setAttribute("href",l),c.setAttribute("download","logs.tar.gz"),c.click(),c.remove()}catch(a){console.log(a)}i(!1)})}},ErrorFallback=({error:e})=>{const t=(0,import_react.useFieldSchema)(),{t:o}=(0,import_react_i18next.useTranslation)(),{loading:r,download:i}=useDownloadLogs(e,{schema:t}),n=(0,import_jsx_runtime.jsxs)(import_react_i18next.Trans,{children:["This is likely a NocoBase internals bug. Please open an issue at ",(0,import_jsx_runtime.jsx)(Link,{href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:"here"})]});return(0,import_jsx_runtime.jsx)("div",{style:{backgroundColor:"white"},children:(0,import_jsx_runtime.jsx)(import_antd.Result,{style:{maxWidth:"60vw",margin:"auto"},status:"error",title:o("Render Failed"),subTitle:n,extra:[(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"primary",href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:o("Feedback")},"feedback"),(0,import_jsx_runtime.jsx)(import_antd.Button,{loading:r,onClick:i,children:o("Download logs")},"log")],children:(0,import_jsx_runtime.jsx)(Paragraph,{copyable:{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 q(this,null,function*(){})}beforeLoad(){return q(this,null,function*(){})}load(){return q(this,null,function*(){})}t(t,o={}){var r;return this.app.i18n.t(t,x({ns:(r=this.options)==null?void 0:r.packageName},o))}}const titleWrapperStyle={display:"flex",alignItems:"center",gap:4},withTooltipComponent=e=>t=>{const{tooltip:o}=t;return o?(0,import_jsx_runtime.jsxs)("div",{style:titleWrapperStyle,children:[(0,import_jsx_runtime.jsx)(e,x({},t)),(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:o,children:(0,import_jsx_runtime.jsx)(import_icons.QuestionCircleOutlined,{style:{zIndex:1}})})]}):(0,import_jsx_runtime.jsx)(e,x({},t))},{evaluate}=import_client3.evaluators.get("formula.js"),useEvaluatedExpression=e=>{const t=useVariables$1(),o=useLocalVariables$1(),[r,i]=(0,import_react2.useState)();return(0,import_react2.useEffect)(()=>{q(void 0,null,function*(){if(e==null||e===""){i(void 0);return}const{exp:n,scope:a}=yield replaceVariables(e,{variables:t,localVariables:o});try{const l=evaluate(n,x({now:()=>new Date().toString()},a));i(l)}catch(l){console.error(l)}})},[t.parseVariable,e,o]),r};class SchemaInitializer{constructor(t){k(this,"options"),k(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,d)=>{const m=this.items.findIndex(p=>p.name===u);m===-1?this.items.push(d):this.items[m]=d};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}.`,""),d=c.children.findIndex(m=>m.name===u);d===-1?c.children.push(n):c.children[d]=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.9.40",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.9.40","@nocobase/sdk":"1.9.40","@nocobase/utils":"1.9.40",ahooks:"^3.7.2",antd:"5.24.2","antd-mobile":"^5.41.1","antd-mobile-icons":"^0.3.0","antd-style":"3.7.1",axios:"^1.7.0","bignumber.js":"^9.1.2",classnames:"^2.3.1",cronstrue:"^2.11.0","file-saver":"^2.0.5",filesize:"9.0.11",flat:"^5.0.2","html5-qrcode":"^2.3.8",i18next:"^22.4.9","i18next-http-backend":"^2.1.1",ignore:"^5.2.0",json5:"^2.2.3",lodash:"4.17.21","lru-cache":"6.0.0","markdown-it":"14.1.0","markdown-it-highlightjs":"3.3.1",mathjs:"^15.1.0",mermaid:"9.4.3",mime:"^4.0.4","mime-match":"^1.0.2","react-beautiful-dnd":"^13.1.0","react-device-detect":"2.2.3","react-drag-listview":"^0.1.9","react-error-boundary":"^4.0.10","react-helmet":"^6.1.0","react-hotkeys-hook":"^3.4.7","react-i18next":"^11.15.1","react-iframe":"~1.8.5","react-image-lightbox":"^5.1.4","react-intersection-observer":"9.14.0","react-js-cron":"^3.1.0","react-quill":"^2.0.0","react-router-dom":"^6.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){k(this,"current"),k(this,"options"),k(this,"appVersion"),k(this,"events",{}),this.options=t,this.current=t.current,this.appVersion=t.appVersion}get model(){return this.options.model}get query(){return this.options.query}loadAPIClientEvents(){const{api:t,t:o=translate}=this.options;if(!t)return;const r=i=>{if(!i)return[];const n=Object.values(i.properties).length,a=[];return i.mapProperties(l=>{l["x-component-props"]=l["x-component-props"]||{},l["x-component-props"].width=100/n,l["x-uid"]&&a.push({"x-uid":l["x-uid"],"x-component-props":l["x-component-props"]})}),i["x-uid"]&&a.length?a:[]};this.on("insertAdjacent",i=>q(this,[i],function*({onSuccess:n,current:a,position:l,schema:c,wrap:u,wrapped:d,removed:m}){var p;let h=[];if((d==null?void 0:d["x-component"])==="Grid.Col"&&(h=h.concat(r(d.parent))),(m==null?void 0:m["x-component"])==="Grid.Col"&&(h=h.concat(r(m.parent))),this.refresh(),!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})),m!=null&&m["x-uid"]&&(yield t.request({url:`/uiSchemas:remove/${m["x-uid"]}`,method:"post"})),n==null||n((p=g==null?void 0:g.data)==null?void 0:p.data),import_antd.message.success(o("Saved successfully"),.2)})),this.on("patch",i=>q(this,[i],function*({schema:n}){this.refresh(),n!=null&&n["x-uid"]&&(yield t.request({url:"/uiSchemas:patch",method:"post",data:x({},n)}),import_antd.message.success(o("Saved successfully"),.2))})),this.on("initializeActionContext",i=>q(this,[i],function*({schema:n}){n!=null&&n["x-uid"]&&(yield t.request({url:"/uiSchemas:initializeActionContext",method:"post",data:x({},n)}))})),this.on("batchPatch",i=>q(this,[i],function*({schemas:n}){this.refresh(),yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:n}),import_antd.message.success(o("Saved successfully"),.2)})),this.on("remove",i=>q(this,[i],function*({removed:n}){let a=[];(n==null?void 0:n["x-component"])==="Grid.Col"&&(a=r(n.parent)),this.refresh(),n!=null&&n["x-uid"]&&(yield t.request({url:`/uiSchemas:remove/${n["x-uid"]}`,method:"post"}),a.length&&(yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:a})),import_antd.message.success(o("Saved successfully"),.2))}))}prepareProperty(t){t.type||(t.type="void"),t.name||(t.name=(0,import_shared.uid)()),this.current["x-uid"]&&generateUid(t)}on(t,o){this.events[t]||(this.events[t]=[]),this.events[t].push(o)}emit(t,...o){return q(this,null,function*(){if(!this.events[t])return;const[r,...i]=o;return Promise.all(this.events[t].map(n=>n.bind(this)(x({current:this.current},r),...i)))})}parentsIn(t){if(!t||!import_react.Schema.isSchemaInstance(t))return!1;let o=this.current;for(;o!=null&&o.parent;){if(o.parent===t)return!0;o=o.parent}return!1}refresh(t){const{refresh:o}=this.options;return o==null?void 0:o(t)}deepMerge(t){const o={title:"title",description:"description",default:"initialValue",readOnly:"readOnly",writeOnly:"editable",enum:"dataSource","x-pattern":"pattern","x-display":"display","x-validator":"validator","x-decorator":"decorator","x-component":"component","x-reactions":"reactions","x-content":"content","x-visible":"visible","x-hidden":"hidden","x-disabled":"disabled","x-editable":"editable","x-read-only":"readOnly"},r={"x-decorator-props":"decoratorProps","x-component-props":"componentProps","x-data":"data"};Object.keys(t).forEach(i=>{o[i]?(this.current[i]=t[i],this.updateModel(o[i],t[i])):r[i]?Object.keys(t[i]).forEach(n=>{(0,import_set.default)(this.current,[i,n],t[i][n]),this.updateModel([r[i],n],t[i][n])}):this.current[i]=t[i]}),this.emit("patch",{schema:t})}getSchemaAttribute(t,o){return(0,import_get.default)(this.current,t,o)}shallowMerge(t){const o={title:"title",description:"description",default:"initialValue",readOnly:"readOnly",writeOnly:"editable",enum:"dataSource","x-pattern":"pattern","x-display":"display","x-validator":"validator","x-decorator":"decorator","x-component":"component","x-reactions":"reactions","x-content":"content","x-visible":"visible","x-hidden":"hidden","x-disabled":"disabled","x-editable":"editable","x-read-only":"readOnly","x-decorator-props":"decoratorProps","x-component-props":"componentProps","x-data":"data"};Object.keys(t).forEach(r=>{this.current[r]=t[r],o[r]&&this.updateModel(o[r],t[r])}),this.emit("patch",{schema:t})}updateModel(t,o){const r=i=>{(0,import_set.default)(i,t,o)};this.model&&r(this.model),this.query&&this.query.take(r)}insertAdjacent(t,o,r={}){switch(t){case"beforeBegin":return this.insertBeforeBegin(o,r);case"afterBegin":return this.insertAfterBegin(o,r);case"beforeEnd":return this.insertBeforeEnd(o,r);case"afterEnd":return this.insertAfterEnd(o,r)}}recursiveRemoveIfNoChildren(t,o){if(!t)return;let r=t,i;const n=o==null?void 0:o.breakRemoveOn;for(;r;){if(typeof n=="function"){if(n(r))break}else if(matchSchema(r,n))break;if(Object.keys(r.properties||{}).length>0)break;r.parent&&(i=r.parent.removeProperty(r.name)),r=r.parent}return i}remove(t,o={}){const{breakRemoveOn:r,removeParentsIfNoChildren:i}=o,n=t||this.current;let a=n.parent.removeProperty(n.name);if(i){const l=this.recursiveRemoveIfNoChildren(n.parent,{breakRemoveOn:r});l&&(a=l)}return this.emit("remove",{removed:a})}removeWithoutEmit(t,o={}){const{breakRemoveOn:r,removeParentsIfNoChildren:i}=o,n=t||this.current;let a=n.parent.removeProperty(n.name);if(i){const l=this.recursiveRemoveIfNoChildren(n.parent,{breakRemoveOn:r});l&&(a=l)}return a}insertBeforeBeginOrAfterEnd(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current)||!import_react.Schema.isSchemaInstance(t)||this.current.parent!==t.parent)return;let r=0,i=0;return this.current.parent.mapProperties((n,a,l)=>{this.current.name===a&&(i=l),t.name===a&&(r=l)}),r>i?this.insertBeforeBegin(t,o):this.insertAfterEnd(t,o)}insertBeforeBegin(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;const r={onSuccess:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren:a}=o;if(import_react.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),a&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n}))}else t&&(t=(0,import_cloneDeep.default)(t));const l={};let c=!1,u=0,d=0;this.current.parent.mapProperties((_,f)=>{f===this.current.name&&(d=u,c=!0,++u),_["x-index"]=u,++u,c&&(l[f]=_,this.current.parent.removeProperty(f))}),this.prepareProperty(t);const m=i(t),p=this.current.parent.addProperty(m.name||(0,import_shared.uid)(),m);p["x-index"]=d,p.parent=this.current.parent,this.current.parent.setProperties(l);const[h,g]=splitWrapSchema(p,t);this.emit("insertAdjacent",x({position:"beforeBegin",schema:g,wrapped:m,wrap:h},r))}insertAfterBegin(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;const r={onSuccess:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren: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),d=this.current.addProperty(u.name||(0,import_shared.uid)(),u);d["x-index"]=0,d.parent=this.current,this.current.setProperties(l);const[m,p]=splitWrapSchema(d,t);this.emit("insertAdjacent",x({position:"afterBegin",schema:p,wrap:m,wrapped:u},r))}insertBeforeEnd(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;delete t["x-index"];const r={onSuccess:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren: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,d]=splitWrapSchema(c,t);return this.emit("insertAdjacent",x({position:"beforeEnd",schema:d,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 d={};if(this.current.parent.mapProperties((_,f)=>{_["x-index"]=l,f===this.current.name&&(++l,c=l,u=!0),++l,u&&f!==this.current.name&&(d[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 m=i(t),p=this.current.parent.addProperty(m.name||(0,import_shared.uid)(),m);p.parent=this.current.parent,p["x-index"]=c,this.current.parent.setProperties(d);const[h,g]=splitWrapSchema(p,t);this.emit("insertAdjacent",x({position:"afterEnd",schema:g,wrap:h,wrapped:m},r))}}function useFindComponent(){const e=(0,import_react2.useContext)(import_react.SchemaOptionsContext),t=(0,import_react2.useMemo)(()=>(e==null?void 0:e.components)||{},[e]);return o=>{if(!o)return null;if(typeof o!="string")return o;const r=(0,import_get.default)(t,o);return r||console.error(`[nocobase]: Component "${o}" not found`),r}}function useDesignable(){const{designable:e,setDesignable:t,refresh:o,reset:r}=(0,import_react2.useContext)(SchemaComponentContext),i=(0,import_react2.useContext)(import_react.SchemaOptionsContext),n=(0,import_react2.useMemo)(()=>(i==null?void 0:i.components)||{},[i]),a=(0,import_react2.useMemo)(()=>()=>(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{}),[]),l=(0,import_ahooks.useUpdate)(),c=useRefreshFieldSchema(),u=useRefreshComponent(),d=(0,import_react2.useCallback)(v=>{o==null||o(),l(),c==null||c(v),u==null||u()},[o,l,c,u]),m=(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:d,current:p,model:m,appVersion:clientPkg.version}),[g,h,d,p,m]);(0,import_react2.useEffect)(()=>{_.loadAPIClientEvents()},[_]);const{isMobileLayout:f}=useMobileLayout();return{dn:_,designable:f?!1:e,reset:r,refresh:d,setDesignable:t,DesignableBar:a,findComponent:(0,import_react2.useCallback)(v=>{var C;if(!v)return null;if(typeof v!="string")return v;const b=(0,import_get.default)(n,v);return(C=b==null?void 0:b[LAZY_COMPONENT_KEY])!=null?C:b},[import_get.default]),on:_.on.bind(_),patch:(0,import_react2.useCallback)((v,C)=>{const b=S=>{Object.keys(S).forEach(y=>{const F=S[y];y==="title"&&(m.title=F,p.title=F),y==="x-decorator-props"&&(m.decoratorProps||(m.decoratorProps={}),p["x-decorator-props"]||(p["x-decorator-props"]={}),Object.keys(F).forEach(j=>{m.decoratorProps[j]=F[j],p["x-decorator-props"][j]=F[j]})),y==="x-component-props"&&(m.componentProps||(m.componentProps={}),p["x-component-props"]||(p["x-component-props"]={}),Object.keys(F).forEach(j=>{m.componentProps[j]=F[j],p["x-component-props"][j]=F[j]}))})};if(typeof v=="string"){const S={};return(0,import_set.default)(S,v,C),b(S)}b(v),d()},[_]),shallowMerge:(0,import_react2.useCallback)(v=>{_.shallowMerge(v)},[_]),deepMerge:(0,import_react2.useCallback)(v=>{_.deepMerge(v)},[_]),remove:(0,import_react2.useCallback)((v,C)=>{_.remove(v,C)},[_]),insertAdjacent:(0,import_react2.useCallback)((v,C,b)=>{_.insertAdjacent(v,C,b)},[_]),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,onFilterChange:t}){const{parseFilter:o,findVariable:r}=useParseDataScopeFilter(),[i,n]=(0,import_react2.useState)({}),[a,l]=(0,import_react2.useState)(!!e);return(0,import_react2.useEffect)(()=>{if(!e)return;const c=()=>q(this,null,function*(){l(!0);const d=yield o(e);l(!1),n(d),t==null||t(d)});c();const u=import_lodash.default.debounce(c,DEBOUNCE_WAIT);(0,import_reactive.reaction)(()=>(0,import_client.flatten)(e,{breakOn({key:d}){return d.startsWith("$")&&d!=="$and"&&d!=="$or"},transformValue(d){if(!isVariable$1(d))return d;const m=getVariableName(d),p=r(m);let h=null;const g=getPath(d).split(".");return g.forEach((_,f)=>{const v=g.slice(0,f+1).join("."),C=(0,import_client.getValuesByPath)({[m]:(p==null?void 0:p.ctx)||{}},v);import_lodash.default.isEmpty(C)||(h=C)}),h}}),u,{equals:import_lodash.default.isEqual})},[JSON.stringify(e),o,r]),{filter:i,parseVariableLoading:a}}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)=>q(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield Promise.all(o.filter(a=>!a.disabled).map(a=>q(void 0,null,function*(){return(yield conditionAnalyses({ruleGroup:a.condition,variables:r,localVariables:i,conditionType:a.conditionType},n))?a:null})))).filter(Boolean).map(a=>a.actions).flat()}),getSatisfiedValues=(e,t)=>q(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield getSatisfiedActions({rules:o,variables:r,localVariables:i},n)).map(a=>P(x({},a),{value:getActionValue(a.operator,a.value)}))}),getSatisfiedValueMap=(e,t)=>q(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield getSatisfiedValues({rules:o,variables:r,localVariables:i},n)).reduce((a,l)=>P(x({},a),{[l.operator]:l.value}),{})});function useSatisfiedActionValues({formValues:e,category:t="default",rules:o,schema:r,form:i}){const[n,a]=(0,import_react2.useState)({}),l=(0,import_react.useFieldSchema)(),c=useVariables$1(),u=useLocalVariables$1({currentForm:{values:e}}),d=r??l,m=o??(d[LinkageRuleDataKeyMap[t]]||(d==null?void 0:d.parent[LinkageRuleDataKeyMap[t]])),p=useApp(),h=(0,import_react2.useCallback)(()=>{m&&e&&getSatisfiedValueMap({rules:m,variables:c,localVariables:u},p.jsonLogic).then(g=>{(0,import_lodash.isEmpty)(g)?a({}):a(g)}).catch(g=>{throw new Error(g.message)})},[c,u,m,e]);return(0,import_react2.useEffect)(()=>{if(h(),i){const g=(0,import_shared.uid)();return i.addEffects(g,()=>{(0,import_core.onFormValuesChange)(()=>{h()})}),()=>{i.removeEffects(g)}}},[i,h,e]),{valueMap:n}}const GetStyleRules=import_react2.default.memo(({record:e,schema:t,onStyleChange:o})=>{const{valueMap:r}=useSatisfiedActionValues({formValues:e,category:"style",schema:t});return(0,import_react2.useEffect)(()=>{o(r)},[o,r]),null});GetStyleRules.displayName="GetStyleRules";const opacityStyle={opacity:.5},containerStyle={position:"relative"},spinStyle={display:"flex",alignItems:"center",justifyContent:"center",position:"absolute",left:0,right:0,height:"100%",maxHeight:400,zIndex:1e3},displayNone$3={display:"none"},HighPerformanceSpin=import_react2.default.memo(e=>(0,import_jsx_runtime.jsxs)("div",{style:containerStyle,children:[(0,import_jsx_runtime.jsx)(import_antd.Spin,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]))return!0;const a=o(`${r}.${n}`);if(["datetime","datetimeNoTz","date","unixTimestamp","createdAt","updatedAt"].includes(a==null?void 0:a.interface))return!0;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(d=>d.uid===u.uid))),l=Object.keys(o||{});(0,import_react2.useEffect)(()=>{a(o&&o.some(u=>i.some(d=>d.uid===u.uid)))},[l.length,o,i]);const c=(0,import_react2.useCallback)((u,d="id",m="$eq")=>{const p=i.find(h=>h.uid===e.parent["x-uid"]);i.forEach(h=>{var g,_,f,v;let C=d;const b=o.find(j=>j.uid===h.uid);if(!b)return;import_lodash.default.isFunction(u)&&(u=u(b,h,getSourceKey$1(p,b.field))),import_lodash.default.isFunction(d)&&(C=d(b,h)),import_lodash.default.isFunction(m)&&(m=m(b));const S=((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:[{[C]:{[m]: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(j=>removeNullCondition(j)),h.defaultFilter]);h.doFilter(P(x({},S),{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,d;const{action:m="list",service:p,useOriginalFilter:h}=e,g=(0,import_react.useFieldSchema)(),_=(0,import_react.useField)(),{getField:f}=useCollection_deprecated(),{getCollectionJoinField:v}=useCollectionManager_deprecated(),C=useRecord(),{isNew:b}=useCollectionRecord()||{},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)||((d=p==null?void 0:p.params)==null?void 0:d.filter),{filter:y}=useParsedFilter({filterOption:S,onFilterChange:()=>{b&&_.reset()}}),F=(0,import_react2.useMemo)(()=>f(g.name)||v(g==null?void 0:g["x-collection-field"]),[g]),j=C==null?void 0:C[F==null?void 0:F.sourceKey],A=(0,import_react2.useMemo)(()=>{const D=["oho","o2m"].includes(F==null?void 0:F.interface);return mergeFilter([mergeFilter([D&&!isInFilterFormBlock(g)&&F!=null&&F.foreignKey&&!h?{[F.foreignKey]:{$is:null}}:null,y]),D&&j!==void 0&&j!==null&&!isInFilterFormBlock(g)&&F!=null&&F.foreignKey&&!h?{[F.foreignKey]:{$eq:j}}:null],"$or")},[F==null?void 0:F.interface,F==null?void 0:F.foreignKey,g,y,j,h]);return(0,import_react2.useMemo)(()=>P(x({resource:F==null?void 0:F.target,action:m},p),{params:P(x({},p==null?void 0:p.params),{filter:A})}),[F==null?void 0:F.target,m,A,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}},TableUidContext=(0,import_react2.createContext)(null),useColumnSettings=e=>{const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react2.useContext)(TableUidContext),r=`nocobase_table_column_settings_${o}`,i=(0,import_react2.useCallback)(()=>{try{const l=localStorage.getItem(r);return l?JSON.parse(l):null}catch(l){return console.warn("Failed to parse table column settings from localStorage:",l),null}},[r]),n=(0,import_react2.useCallback)(l=>{try{const c=JSON.stringify(l);localStorage.setItem(r,c);const u=new CustomEvent("nocobase-table-settings-changed",{detail:{key:r,tableId:o,settings:l}});window.dispatchEvent(u)}catch(c){console.warn("Failed to save table column settings to localStorage:",c),import_antd.message.error(t("Failed to save table settings"))}},[r,o,t]),a=(0,import_react2.useCallback)(()=>{try{localStorage.removeItem(r);const l=new CustomEvent("nocobase-table-settings-changed",{detail:{key:r,tableId:o,settings:null}});window.dispatchEvent(l)}catch(l){console.warn("Failed to clear table column settings from localStorage:",l),import_antd.message.error(t("Failed to clear table settings"))}},[r,o,t]);return{getSettings:i,saveSettings:n,clearSettings:a}},useTableColumnIntegration=(e,t=!0)=>{const o=(0,import_react2.useContext)(TableUidContext),{getSettings:r}=useColumnSettings(),[i,n]=(0,import_react2.useState)(0);(0,import_react2.useEffect)(()=>{const l=c=>{const{key:u,tableId:d}=c.detail;(u.includes(o)||d===o)&&n(m=>m+1)};return window.addEventListener("nocobase-table-settings-changed",l),()=>{window.removeEventListener("nocobase-table-settings-changed",l)}},[o]);const a=(0,import_react2.useMemo)(()=>r(),[r,i]);return{columns:(0,import_react2.useMemo)(()=>{if(!t||!a||a.length===0)return e;const l=new Map;a.forEach(p=>{l.set(p.key,p)});const c=e.map(p=>{const h=l.get(p.key);if(h){const g=p.columnHidden||!h.visible,_=h.width||p.width,f=h.fixed||p.fixed;return P(x({},p),{columnHidden:g,fixed:f,width:_,_orderIndex:h.order})}return p}),u=[],d=[];c.forEach(p=>{p._orderIndex!==void 0?u.push(p):d.push(p)}),u.sort((p,h)=>(p._orderIndex||0)-(h._orderIndex||0));const m=[...u,...d];return m.forEach(p=>{delete p._orderIndex}),m},[e,a])}},TableSkeleton=({rows:e=5,columns:t=6})=>{const{token:o}=useToken$1(),r=o.controlHeight*2.06,i=o.controlHeight*1.75,n=(0,import_react2.useMemo)(()=>import_css.css`
|
|
65
|
+
`,items: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"]),d=useCompile(),m=useSchemaInitializerItem(),p=(0,import_react2.useMemo)(()=>a||(m==null?void 0:m.name)||(0,import_shared.uid)(),[a,m]),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:d(n),icon:typeof c=="string"?(0,import_jsx_runtime.jsx)(import_icons.default,{type:c}):c,children:g})],[g,d,c,p,u,n]);return(0,import_jsx_runtime.jsx)(SchemaInitializerMenu,{onOpenChange:l,items:_})},SchemaInitializerSubMenuInternal=()=>{const e=useSchemaInitializerItem();return(0,import_jsx_runtime.jsx)(SchemaInitializerSubMenu,x({},e))},useAriaAttributeOfMenuItem=()=>{const{isInMenu:e}=useSchemaInitializerSubMenuContext();return{attribute:(0,import_react2.useMemo)(()=>e?{}:{role:"menuitem"},[e])}},{Paragraph:Paragraph$1,Text:Text$2}=import_antd.Typography,ErrorFallbackModal=e=>{const[t,o]=import_react2.default.useState(!1),r=(0,import_jsx_runtime.jsx)(Paragraph$1,{style:{display:"flex",marginBottom:0},copyable:{text:e.error.message},children:(0,import_jsx_runtime.jsxs)(Text$2,{type:"danger",style:{whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden",display:"inline-block",maxWidth:"200px"},children:["Error: ",e.error.message]})});return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)("div",{onMouseOver:()=>o(!0),children:e.children||r}),(0,import_jsx_runtime.jsx)(import_antd.Modal,{zIndex:1e4,open:t,footer:null,onCancel:()=>o(!1),width:"60%",children:(0,import_jsx_runtime.jsx)(ErrorFallback,x({},e))})]})},{Paragraph,Text:Text$1,Link}=import_antd.Typography,useDownloadLogs=(e,t={})=>{const o=useLocationNoUpdate(),[r,i]=import_react2.default.useState(!1),n=useAPIClient();return{loading:r,download:()=>q(void 0,null,function*(){i(!0);try{const a=yield n.request({url:"logger:collect",method:"post",responseType:"blob",data:x({error:{message:e.message,stack:e.stack},location:o},t)}),l=window.URL.createObjectURL(new Blob([a.data],{type:"application/gzip"})),c=document.createElement("a");c.setAttribute("href",l),c.setAttribute("download","logs.tar.gz"),c.click(),c.remove()}catch(a){console.log(a)}i(!1)})}},ErrorFallback=({error:e})=>{const t=(0,import_react.useFieldSchema)(),{t:o}=(0,import_react_i18next.useTranslation)(),{loading:r,download:i}=useDownloadLogs(e,{schema:t}),n=(0,import_jsx_runtime.jsxs)(import_react_i18next.Trans,{children:["This is likely a NocoBase internals bug. Please open an issue at ",(0,import_jsx_runtime.jsx)(Link,{href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:"here"})]});return(0,import_jsx_runtime.jsx)("div",{style:{backgroundColor:"white"},children:(0,import_jsx_runtime.jsx)(import_antd.Result,{style:{maxWidth:"60vw",margin:"auto"},status:"error",title:o("Render Failed"),subTitle:n,extra:[(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"primary",href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:o("Feedback")},"feedback"),(0,import_jsx_runtime.jsx)(import_antd.Button,{loading:r,onClick:i,children:o("Download logs")},"log")],children:(0,import_jsx_runtime.jsx)(Paragraph,{copyable:{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 q(this,null,function*(){})}beforeLoad(){return q(this,null,function*(){})}load(){return q(this,null,function*(){})}t(t,o={}){var r;return this.app.i18n.t(t,x({ns:(r=this.options)==null?void 0:r.packageName},o))}}const titleWrapperStyle={display:"flex",alignItems:"center",gap:4},withTooltipComponent=e=>t=>{const{tooltip:o}=t;return o?(0,import_jsx_runtime.jsxs)("div",{style:titleWrapperStyle,children:[(0,import_jsx_runtime.jsx)(e,x({},t)),(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:o,children:(0,import_jsx_runtime.jsx)(import_icons.QuestionCircleOutlined,{style:{zIndex:1}})})]}):(0,import_jsx_runtime.jsx)(e,x({},t))},{evaluate}=import_client3.evaluators.get("formula.js"),useEvaluatedExpression=e=>{const t=useVariables$1(),o=useLocalVariables$1(),[r,i]=(0,import_react2.useState)();return(0,import_react2.useEffect)(()=>{q(void 0,null,function*(){if(e==null||e===""){i(void 0);return}const{exp:n,scope:a}=yield replaceVariables(e,{variables:t,localVariables:o});try{const l=evaluate(n,x({now:()=>new Date().toString()},a));i(l)}catch(l){console.error(l)}})},[t.parseVariable,e,o]),r};class SchemaInitializer{constructor(t){k(this,"options"),k(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,d)=>{const m=this.items.findIndex(p=>p.name===u);m===-1?this.items.push(d):this.items[m]=d};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}.`,""),d=c.children.findIndex(m=>m.name===u);d===-1?c.children.push(n):c.children[d]=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.9.41",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.9.41","@nocobase/sdk":"1.9.41","@nocobase/utils":"1.9.41",ahooks:"^3.7.2",antd:"5.24.2","antd-mobile":"^5.41.1","antd-mobile-icons":"^0.3.0","antd-style":"3.7.1",axios:"^1.7.0","bignumber.js":"^9.1.2",classnames:"^2.3.1",cronstrue:"^2.11.0","file-saver":"^2.0.5",filesize:"9.0.11",flat:"^5.0.2","html5-qrcode":"^2.3.8",i18next:"^22.4.9","i18next-http-backend":"^2.1.1",ignore:"^5.2.0",json5:"^2.2.3",lodash:"4.17.21","lru-cache":"6.0.0","markdown-it":"14.1.0","markdown-it-highlightjs":"3.3.1",mathjs:"^15.1.0",mermaid:"9.4.3",mime:"^4.0.4","mime-match":"^1.0.2","react-beautiful-dnd":"^13.1.0","react-device-detect":"2.2.3","react-drag-listview":"^0.1.9","react-error-boundary":"^4.0.10","react-helmet":"^6.1.0","react-hotkeys-hook":"^3.4.7","react-i18next":"^11.15.1","react-iframe":"~1.8.5","react-image-lightbox":"^5.1.4","react-intersection-observer":"9.14.0","react-js-cron":"^3.1.0","react-quill":"^2.0.0","react-router-dom":"^6.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){k(this,"current"),k(this,"options"),k(this,"appVersion"),k(this,"events",{}),this.options=t,this.current=t.current,this.appVersion=t.appVersion}get model(){return this.options.model}get query(){return this.options.query}loadAPIClientEvents(){const{api:t,t:o=translate}=this.options;if(!t)return;const r=i=>{if(!i)return[];const n=Object.values(i.properties).length,a=[];return i.mapProperties(l=>{l["x-component-props"]=l["x-component-props"]||{},l["x-component-props"].width=100/n,l["x-uid"]&&a.push({"x-uid":l["x-uid"],"x-component-props":l["x-component-props"]})}),i["x-uid"]&&a.length?a:[]};this.on("insertAdjacent",i=>q(this,[i],function*({onSuccess:n,current:a,position:l,schema:c,wrap:u,wrapped:d,removed:m}){var p;let h=[];if((d==null?void 0:d["x-component"])==="Grid.Col"&&(h=h.concat(r(d.parent))),(m==null?void 0:m["x-component"])==="Grid.Col"&&(h=h.concat(r(m.parent))),this.refresh(),!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})),m!=null&&m["x-uid"]&&(yield t.request({url:`/uiSchemas:remove/${m["x-uid"]}`,method:"post"})),n==null||n((p=g==null?void 0:g.data)==null?void 0:p.data),import_antd.message.success(o("Saved successfully"),.2)})),this.on("patch",i=>q(this,[i],function*({schema:n}){this.refresh(),n!=null&&n["x-uid"]&&(yield t.request({url:"/uiSchemas:patch",method:"post",data:x({},n)}),import_antd.message.success(o("Saved successfully"),.2))})),this.on("initializeActionContext",i=>q(this,[i],function*({schema:n}){n!=null&&n["x-uid"]&&(yield t.request({url:"/uiSchemas:initializeActionContext",method:"post",data:x({},n)}))})),this.on("batchPatch",i=>q(this,[i],function*({schemas:n}){this.refresh(),yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:n}),import_antd.message.success(o("Saved successfully"),.2)})),this.on("remove",i=>q(this,[i],function*({removed:n}){let a=[];(n==null?void 0:n["x-component"])==="Grid.Col"&&(a=r(n.parent)),this.refresh(),n!=null&&n["x-uid"]&&(yield t.request({url:`/uiSchemas:remove/${n["x-uid"]}`,method:"post"}),a.length&&(yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:a})),import_antd.message.success(o("Saved successfully"),.2))}))}prepareProperty(t){t.type||(t.type="void"),t.name||(t.name=(0,import_shared.uid)()),this.current["x-uid"]&&generateUid(t)}on(t,o){this.events[t]||(this.events[t]=[]),this.events[t].push(o)}emit(t,...o){return q(this,null,function*(){if(!this.events[t])return;const[r,...i]=o;return Promise.all(this.events[t].map(n=>n.bind(this)(x({current:this.current},r),...i)))})}parentsIn(t){if(!t||!import_react.Schema.isSchemaInstance(t))return!1;let o=this.current;for(;o!=null&&o.parent;){if(o.parent===t)return!0;o=o.parent}return!1}refresh(t){const{refresh:o}=this.options;return o==null?void 0:o(t)}deepMerge(t){const o={title:"title",description:"description",default:"initialValue",readOnly:"readOnly",writeOnly:"editable",enum:"dataSource","x-pattern":"pattern","x-display":"display","x-validator":"validator","x-decorator":"decorator","x-component":"component","x-reactions":"reactions","x-content":"content","x-visible":"visible","x-hidden":"hidden","x-disabled":"disabled","x-editable":"editable","x-read-only":"readOnly"},r={"x-decorator-props":"decoratorProps","x-component-props":"componentProps","x-data":"data"};Object.keys(t).forEach(i=>{o[i]?(this.current[i]=t[i],this.updateModel(o[i],t[i])):r[i]?Object.keys(t[i]).forEach(n=>{(0,import_set.default)(this.current,[i,n],t[i][n]),this.updateModel([r[i],n],t[i][n])}):this.current[i]=t[i]}),this.emit("patch",{schema:t})}getSchemaAttribute(t,o){return(0,import_get.default)(this.current,t,o)}shallowMerge(t){const o={title:"title",description:"description",default:"initialValue",readOnly:"readOnly",writeOnly:"editable",enum:"dataSource","x-pattern":"pattern","x-display":"display","x-validator":"validator","x-decorator":"decorator","x-component":"component","x-reactions":"reactions","x-content":"content","x-visible":"visible","x-hidden":"hidden","x-disabled":"disabled","x-editable":"editable","x-read-only":"readOnly","x-decorator-props":"decoratorProps","x-component-props":"componentProps","x-data":"data"};Object.keys(t).forEach(r=>{this.current[r]=t[r],o[r]&&this.updateModel(o[r],t[r])}),this.emit("patch",{schema:t})}updateModel(t,o){const r=i=>{(0,import_set.default)(i,t,o)};this.model&&r(this.model),this.query&&this.query.take(r)}insertAdjacent(t,o,r={}){switch(t){case"beforeBegin":return this.insertBeforeBegin(o,r);case"afterBegin":return this.insertAfterBegin(o,r);case"beforeEnd":return this.insertBeforeEnd(o,r);case"afterEnd":return this.insertAfterEnd(o,r)}}recursiveRemoveIfNoChildren(t,o){if(!t)return;let r=t,i;const n=o==null?void 0:o.breakRemoveOn;for(;r;){if(typeof n=="function"){if(n(r))break}else if(matchSchema(r,n))break;if(Object.keys(r.properties||{}).length>0)break;r.parent&&(i=r.parent.removeProperty(r.name)),r=r.parent}return i}remove(t,o={}){const{breakRemoveOn:r,removeParentsIfNoChildren:i}=o,n=t||this.current;let a=n.parent.removeProperty(n.name);if(i){const l=this.recursiveRemoveIfNoChildren(n.parent,{breakRemoveOn:r});l&&(a=l)}return this.emit("remove",{removed:a})}removeWithoutEmit(t,o={}){const{breakRemoveOn:r,removeParentsIfNoChildren:i}=o,n=t||this.current;let a=n.parent.removeProperty(n.name);if(i){const l=this.recursiveRemoveIfNoChildren(n.parent,{breakRemoveOn:r});l&&(a=l)}return a}insertBeforeBeginOrAfterEnd(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current)||!import_react.Schema.isSchemaInstance(t)||this.current.parent!==t.parent)return;let r=0,i=0;return this.current.parent.mapProperties((n,a,l)=>{this.current.name===a&&(i=l),t.name===a&&(r=l)}),r>i?this.insertBeforeBegin(t,o):this.insertAfterEnd(t,o)}insertBeforeBegin(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;const r={onSuccess:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren:a}=o;if(import_react.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),a&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n}))}else t&&(t=(0,import_cloneDeep.default)(t));const l={};let c=!1,u=0,d=0;this.current.parent.mapProperties((_,f)=>{f===this.current.name&&(d=u,c=!0,++u),_["x-index"]=u,++u,c&&(l[f]=_,this.current.parent.removeProperty(f))}),this.prepareProperty(t);const m=i(t),p=this.current.parent.addProperty(m.name||(0,import_shared.uid)(),m);p["x-index"]=d,p.parent=this.current.parent,this.current.parent.setProperties(l);const[h,g]=splitWrapSchema(p,t);this.emit("insertAdjacent",x({position:"beforeBegin",schema:g,wrapped:m,wrap:h},r))}insertAfterBegin(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;const r={onSuccess:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren: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),d=this.current.addProperty(u.name||(0,import_shared.uid)(),u);d["x-index"]=0,d.parent=this.current,this.current.setProperties(l);const[m,p]=splitWrapSchema(d,t);this.emit("insertAdjacent",x({position:"afterBegin",schema:p,wrap:m,wrapped:u},r))}insertBeforeEnd(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;delete t["x-index"];const r={onSuccess:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren: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,d]=splitWrapSchema(c,t);return this.emit("insertAdjacent",x({position:"beforeEnd",schema:d,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 d={};if(this.current.parent.mapProperties((_,f)=>{_["x-index"]=l,f===this.current.name&&(++l,c=l,u=!0),++l,u&&f!==this.current.name&&(d[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 m=i(t),p=this.current.parent.addProperty(m.name||(0,import_shared.uid)(),m);p.parent=this.current.parent,p["x-index"]=c,this.current.parent.setProperties(d);const[h,g]=splitWrapSchema(p,t);this.emit("insertAdjacent",x({position:"afterEnd",schema:g,wrap:h,wrapped:m},r))}}function useFindComponent(){const e=(0,import_react2.useContext)(import_react.SchemaOptionsContext),t=(0,import_react2.useMemo)(()=>(e==null?void 0:e.components)||{},[e]);return o=>{if(!o)return null;if(typeof o!="string")return o;const r=(0,import_get.default)(t,o);return r||console.error(`[nocobase]: Component "${o}" not found`),r}}function useDesignable(){const{designable:e,setDesignable:t,refresh:o,reset:r}=(0,import_react2.useContext)(SchemaComponentContext),i=(0,import_react2.useContext)(import_react.SchemaOptionsContext),n=(0,import_react2.useMemo)(()=>(i==null?void 0:i.components)||{},[i]),a=(0,import_react2.useMemo)(()=>()=>(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{}),[]),l=(0,import_ahooks.useUpdate)(),c=useRefreshFieldSchema(),u=useRefreshComponent(),d=(0,import_react2.useCallback)(v=>{o==null||o(),l(),c==null||c(v),u==null||u()},[o,l,c,u]),m=(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:d,current:p,model:m,appVersion:clientPkg.version}),[g,h,d,p,m]);(0,import_react2.useEffect)(()=>{_.loadAPIClientEvents()},[_]);const{isMobileLayout:f}=useMobileLayout();return{dn:_,designable:f?!1:e,reset:r,refresh:d,setDesignable:t,DesignableBar:a,findComponent:(0,import_react2.useCallback)(v=>{var C;if(!v)return null;if(typeof v!="string")return v;const b=(0,import_get.default)(n,v);return(C=b==null?void 0:b[LAZY_COMPONENT_KEY])!=null?C:b},[import_get.default]),on:_.on.bind(_),patch:(0,import_react2.useCallback)((v,C)=>{const b=S=>{Object.keys(S).forEach(y=>{const F=S[y];y==="title"&&(m.title=F,p.title=F),y==="x-decorator-props"&&(m.decoratorProps||(m.decoratorProps={}),p["x-decorator-props"]||(p["x-decorator-props"]={}),Object.keys(F).forEach(j=>{m.decoratorProps[j]=F[j],p["x-decorator-props"][j]=F[j]})),y==="x-component-props"&&(m.componentProps||(m.componentProps={}),p["x-component-props"]||(p["x-component-props"]={}),Object.keys(F).forEach(j=>{m.componentProps[j]=F[j],p["x-component-props"][j]=F[j]}))})};if(typeof v=="string"){const S={};return(0,import_set.default)(S,v,C),b(S)}b(v),d()},[_]),shallowMerge:(0,import_react2.useCallback)(v=>{_.shallowMerge(v)},[_]),deepMerge:(0,import_react2.useCallback)(v=>{_.deepMerge(v)},[_]),remove:(0,import_react2.useCallback)((v,C)=>{_.remove(v,C)},[_]),insertAdjacent:(0,import_react2.useCallback)((v,C,b)=>{_.insertAdjacent(v,C,b)},[_]),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,onFilterChange:t}){const{parseFilter:o,findVariable:r}=useParseDataScopeFilter(),[i,n]=(0,import_react2.useState)({}),[a,l]=(0,import_react2.useState)(!!e);return(0,import_react2.useEffect)(()=>{if(!e)return;const c=()=>q(this,null,function*(){l(!0);const d=yield o(e);l(!1),n(d),t==null||t(d)});c();const u=import_lodash.default.debounce(c,DEBOUNCE_WAIT);(0,import_reactive.reaction)(()=>(0,import_client.flatten)(e,{breakOn({key:d}){return d.startsWith("$")&&d!=="$and"&&d!=="$or"},transformValue(d){if(!isVariable$1(d))return d;const m=getVariableName(d),p=r(m);let h=null;const g=getPath(d).split(".");return g.forEach((_,f)=>{const v=g.slice(0,f+1).join("."),C=(0,import_client.getValuesByPath)({[m]:(p==null?void 0:p.ctx)||{}},v);import_lodash.default.isEmpty(C)||(h=C)}),h}}),u,{equals:import_lodash.default.isEqual})},[JSON.stringify(e),o,r]),{filter:i,parseVariableLoading:a}}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)=>q(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield Promise.all(o.filter(a=>!a.disabled).map(a=>q(void 0,null,function*(){return(yield conditionAnalyses({ruleGroup:a.condition,variables:r,localVariables:i,conditionType:a.conditionType},n))?a:null})))).filter(Boolean).map(a=>a.actions).flat()}),getSatisfiedValues=(e,t)=>q(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield getSatisfiedActions({rules:o,variables:r,localVariables:i},n)).map(a=>P(x({},a),{value:getActionValue(a.operator,a.value)}))}),getSatisfiedValueMap=(e,t)=>q(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield getSatisfiedValues({rules:o,variables:r,localVariables:i},n)).reduce((a,l)=>P(x({},a),{[l.operator]:l.value}),{})});function useSatisfiedActionValues({formValues:e,category:t="default",rules:o,schema:r,form:i}){const[n,a]=(0,import_react2.useState)({}),l=(0,import_react.useFieldSchema)(),c=useVariables$1(),u=useLocalVariables$1({currentForm:{values:e}}),d=r??l,m=o??(d[LinkageRuleDataKeyMap[t]]||(d==null?void 0:d.parent[LinkageRuleDataKeyMap[t]])),p=useApp(),h=(0,import_react2.useCallback)(()=>{m&&e&&getSatisfiedValueMap({rules:m,variables:c,localVariables:u},p.jsonLogic).then(g=>{(0,import_lodash.isEmpty)(g)?a({}):a(g)}).catch(g=>{throw new Error(g.message)})},[c,u,m,e]);return(0,import_react2.useEffect)(()=>{if(h(),i){const g=(0,import_shared.uid)();return i.addEffects(g,()=>{(0,import_core.onFormValuesChange)(()=>{h()})}),()=>{i.removeEffects(g)}}},[i,h,e]),{valueMap:n}}const GetStyleRules=import_react2.default.memo(({record:e,schema:t,onStyleChange:o})=>{const{valueMap:r}=useSatisfiedActionValues({formValues:e,category:"style",schema:t});return(0,import_react2.useEffect)(()=>{o(r)},[o,r]),null});GetStyleRules.displayName="GetStyleRules";const opacityStyle={opacity:.5},containerStyle={position:"relative"},spinStyle={display:"flex",alignItems:"center",justifyContent:"center",position:"absolute",left:0,right:0,height:"100%",maxHeight:400,zIndex:1e3},displayNone$3={display:"none"},HighPerformanceSpin=import_react2.default.memo(e=>(0,import_jsx_runtime.jsxs)("div",{style:containerStyle,children:[(0,import_jsx_runtime.jsx)(import_antd.Spin,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]))return!0;const a=o(`${r}.${n}`);if(["datetime","datetimeNoTz","date","unixTimestamp","createdAt","updatedAt"].includes(a==null?void 0:a.interface))return!0;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(d=>d.uid===u.uid))),l=Object.keys(o||{});(0,import_react2.useEffect)(()=>{a(o&&o.some(u=>i.some(d=>d.uid===u.uid)))},[l.length,o,i]);const c=(0,import_react2.useCallback)((u,d="id",m="$eq")=>{const p=i.find(h=>h.uid===e.parent["x-uid"]);i.forEach(h=>{var g,_,f,v;let C=d;const b=o.find(j=>j.uid===h.uid);if(!b)return;import_lodash.default.isFunction(u)&&(u=u(b,h,getSourceKey$1(p,b.field))),import_lodash.default.isFunction(d)&&(C=d(b,h)),import_lodash.default.isFunction(m)&&(m=m(b));const S=((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:[{[C]:{[m]: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(j=>removeNullCondition(j)),h.defaultFilter]);h.doFilter(P(x({},S),{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,d;const{action:m="list",service:p,useOriginalFilter:h}=e,g=(0,import_react.useFieldSchema)(),_=(0,import_react.useField)(),{getField:f}=useCollection_deprecated(),{getCollectionJoinField:v}=useCollectionManager_deprecated(),C=useRecord(),{isNew:b}=useCollectionRecord()||{},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)||((d=p==null?void 0:p.params)==null?void 0:d.filter),{filter:y}=useParsedFilter({filterOption:S,onFilterChange:()=>{b&&_.reset()}}),F=(0,import_react2.useMemo)(()=>f(g.name)||v(g==null?void 0:g["x-collection-field"]),[g]),j=C==null?void 0:C[F==null?void 0:F.sourceKey],A=(0,import_react2.useMemo)(()=>{const D=["oho","o2m"].includes(F==null?void 0:F.interface);return mergeFilter([mergeFilter([D&&!isInFilterFormBlock(g)&&F!=null&&F.foreignKey&&!h?{[F.foreignKey]:{$is:null}}:null,y]),D&&j!==void 0&&j!==null&&!isInFilterFormBlock(g)&&F!=null&&F.foreignKey&&!h?{[F.foreignKey]:{$eq:j}}:null],"$or")},[F==null?void 0:F.interface,F==null?void 0:F.foreignKey,g,y,j,h]);return(0,import_react2.useMemo)(()=>P(x({resource:F==null?void 0:F.target,action:m},p),{params:P(x({},p==null?void 0:p.params),{filter:A})}),[F==null?void 0:F.target,m,A,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}},TableUidContext=(0,import_react2.createContext)(null),useColumnSettings=e=>{const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react2.useContext)(TableUidContext),r=`nocobase_table_column_settings_${o}`,i=(0,import_react2.useCallback)(()=>{try{const l=localStorage.getItem(r);return l?JSON.parse(l):null}catch(l){return console.warn("Failed to parse table column settings from localStorage:",l),null}},[r]),n=(0,import_react2.useCallback)(l=>{try{const c=JSON.stringify(l);localStorage.setItem(r,c);const u=new CustomEvent("nocobase-table-settings-changed",{detail:{key:r,tableId:o,settings:l}});window.dispatchEvent(u)}catch(c){console.warn("Failed to save table column settings to localStorage:",c),import_antd.message.error(t("Failed to save table settings"))}},[r,o,t]),a=(0,import_react2.useCallback)(()=>{try{localStorage.removeItem(r);const l=new CustomEvent("nocobase-table-settings-changed",{detail:{key:r,tableId:o,settings:null}});window.dispatchEvent(l)}catch(l){console.warn("Failed to clear table column settings from localStorage:",l),import_antd.message.error(t("Failed to clear table settings"))}},[r,o,t]);return{getSettings:i,saveSettings:n,clearSettings:a}},useTableColumnIntegration=(e,t=!0)=>{const o=(0,import_react2.useContext)(TableUidContext),{getSettings:r}=useColumnSettings(),[i,n]=(0,import_react2.useState)(0);(0,import_react2.useEffect)(()=>{const l=c=>{const{key:u,tableId:d}=c.detail;(u.includes(o)||d===o)&&n(m=>m+1)};return window.addEventListener("nocobase-table-settings-changed",l),()=>{window.removeEventListener("nocobase-table-settings-changed",l)}},[o]);const a=(0,import_react2.useMemo)(()=>r(),[r,i]);return{columns:(0,import_react2.useMemo)(()=>{if(!t||!a||a.length===0)return e;const l=new Map;a.forEach(p=>{l.set(p.key,p)});const c=e.map(p=>{const h=l.get(p.key);if(h){const g=p.columnHidden||!h.visible,_=h.width||p.width,f=h.fixed||p.fixed;return P(x({},p),{columnHidden:g,fixed:f,width:_,_orderIndex:h.order})}return p}),u=[],d=[];c.forEach(p=>{p._orderIndex!==void 0?u.push(p):d.push(p)}),u.sort((p,h)=>(p._orderIndex||0)-(h._orderIndex||0));const m=[...u,...d];return m.forEach(p=>{delete p._orderIndex}),m},[e,a])}},TableSkeleton=({rows:e=5,columns:t=6})=>{const{token:o}=useToken$1(),r=o.controlHeight*2.06,i=o.controlHeight*1.75,n=(0,import_react2.useMemo)(()=>import_css.css`
|
|
66
66
|
&.skeleton-wrapper {
|
|
67
67
|
width: 100%;
|
|
68
68
|
background: ${o.colorBgContainer};
|
|
@@ -234,7 +234,7 @@
|
|
|
234
234
|
background-color: ${r.controlItemBgActiveHover} !important;
|
|
235
235
|
}
|
|
236
236
|
`,[r.controlItemBgActive,r.controlItemBgActiveHover]),Y=useTableBlockContextBasicValue(),J=(0,import_react2.useRef)(F);J.current=F,(0,import_react2.useEffect)(()=>{var Z;Y!=null&&Y.field&&(Y.field.data=((Z=Y.field)==null?void 0:Z.data)||{},Y.field.data.clearSelectedRowKeys=()=>{Y.field.data.selectedRowKeys=[],U([])},Y.field.data.setSelectedRowKeys=U)},[Y==null?void 0:Y.field]);const ee=(0,import_react2.useMemo)(()=>y?X:"",[X,y]),te=(0,import_react2.useMemo)(()=>y?(Z,re)=>({onClick:ae=>{(0,import_client.isPortalInBody)(ae.target)||y(Z,G,z)},rowIndex:re,record:Z}):(Z,re)=>({rowIndex:re,record:Z}),[y,z]);(0,import_ahooks.useDeepCompareEffect)(()=>{const Z=R?T:[];import_lodash.default.isEqual(Z,V)||O(Z)},[R,T]);const Q=(0,import_react2.useCallback)(Z=>{if(v)return ie(Z);if(Z.key)return Z.key;if(K.current.has(Z))return K.current.get(Z);const re=(0,import_shared.uid)();return K.current.set(Z,re),re},[]),ie=(0,import_react2.useCallback)(Z=>{var re;return Array.isArray(v)?v.map(ae=>{var me;return((me=Z[ae])==null?void 0:me.toString())||""}).join("-"):typeof v=="string"?Z[v]:(re=(v??Q)(Z))==null?void 0:re.toString()},[JSON.stringify(v),Q]),ce=(0,import_react2.useMemo)(()=>(Array.isArray(F)?F:[]).filter(Boolean),[F,F==null?void 0:F.length]),oe=(0,import_react2.useMemo)(()=>Z=>{const re=(0,import_react2.useCallback)(ae=>{var me,he,_e,ve,Ce,be,Se,Pe;if(!ae.active||!ae.over){console.warn("move cancel");return}const Fe=(_e=(he=(me=ae.active)==null?void 0:me.data.current)==null?void 0:he.sortable)==null?void 0:_e.index,ke=(be=(Ce=(ve=ae.over)==null?void 0:ve.data.current)==null?void 0:Ce.sortable)==null?void 0:be.index,Ie=((Se=J.current)==null?void 0:Se[Fe])||ae.active,Ae=((Pe=J.current)==null?void 0:Pe[ke])||ae.over;A.move(Fe,ke),B({from:Ie,to:Ae})},[]);return(0,import_jsx_runtime.jsx)(DndContext,{onDragEnd:re,children:(0,import_jsx_runtime.jsx)("tbody",x({},Z))})},[A,B]);oe.displayName="BodyWrapperComponent";const le=(0,import_react2.useMemo)(()=>({header:{wrapper:HeaderWrapperComponent$1,cell:HeaderCellComponent$1},body:{wrapper:oe,row:BodyRowComponent$1,cell:BodyCellComponent$1}}),[oe]),se=(0,import_react2.useMemo)(()=>f,[JSON.stringify(f)]),ue=(0,import_react2.useMemo)(()=>({rowSelection:$!==!1&&se?x({type:"checkbox",selectedRowKeys:L,onChange(Z,re){A.data=A.data||{},A.data.selectedRowKeys=Z,A.data.selectedRowData=re,U(Z),g==null||g(Z,re,U)},onSelect:(Z,re,ae,me)=>{var he;Y&&(Y.field.data=((he=Y.field)==null?void 0:he.data)||{},Y.field.data.selectedRecord=Z,Y.field.data.selected=re)},getCheckboxProps(Z){return{"aria-label":"checkbox"}},renderCell:(Z,re,ae,me)=>{if(!p&&!h)return me;const he=I==null?void 0:I.current,_e=(I==null?void 0:I.pageSize)||20;return he?ae=ae+(he-1)*_e+1:ae=ae+1,re.__index&&(ae=extractIndex(re.__index)),(0,import_jsx_runtime.jsxs)("div",{role:"button","aria-label":`table-index-${ae}`,className:(0,import_classnames.default)(Z?"checked":null,rowSelectCheckboxWrapperClass$1,{[rowSelectCheckboxWrapperClassHover$1]:H}),children:[(0,import_jsx_runtime.jsxs)("div",{className:(0,import_classnames.default)(Z?"checked":null,rowSelectCheckboxContentClass$1),children:[p&&(0,import_jsx_runtime.jsx)(SortHandle$2,{id:ie(re)}),h&&(0,import_jsx_runtime.jsx)(TableIndex$3,{index:ae})]}),H&&(0,import_jsx_runtime.jsx)("div",{className:(0,import_classnames.default)("nb-origin-node",Z?"checked":null,rowSelectCheckboxCheckedClassHover$1),children:me})]})}},se):void 0}),[se,L,g,h,p,A,ie,H,se,I,Y,$]),de=(0,import_react2.useCallback)(({children:Z})=>{var re,ae;return p?import_react2.default.createElement(import_sortable.SortableContext,{items:((ae=(re=J.current)==null?void 0:re.map)==null?void 0:ae.call(re,ie))||[]},Z):import_react2.default.createElement(import_react2.default.Fragment,{},Z)},[p,ie]),{height:pe,tableSizeRefCallback:fe}=useTableSize(),ge=(0,import_react2.useMemo)(()=>({x:"max-content",y:pe}),[pe,ce]),xe=(0,import_react2.useCallback)(Z=>z.includes(Z[v])?ee:"",[z,ee,JSON.stringify(v)]),ye=(0,import_react2.useCallback)((Z,re)=>{const ae=Z?[...V,re[M.getPrimaryKey()]]:V.filter(me=>re[M.getPrimaryKey()]!==me);O(ae),b==null||b(Z,re)},[V,b,M]),ne=(0,import_react2.useMemo)(()=>({onExpand:ye,expandedRowKeys:V}),[V,ye]);return(0,import_jsx_runtime.jsx)(HighPerformanceSpin,{spinning:!!S,children:(0,import_jsx_runtime.jsx)(BlockRequestLoadingContext.Provider,{value:!1,children:(0,import_jsx_runtime.jsx)(InternalNocoBaseTable$1,P(x(x({tableHeight:pe,SortableWrapper:de,tableSizeRefCallback:fe,defaultRowKey:Q,dataSource:ce},j),ue),{paginationProps:I,components:le,onTableChange:_,onRow:te,rowClassName:xe,scroll:ge,columns:E,expandable:ne,field:A,size:N}))})})}),{useLoading(){const e=useDataBlockRequest(),{isInSubTable:t}=useFlag();return t?!1:!!(e!=null&&e.loading)},SkeletonComponent:TableSkeleton}),{displayName:"NocoBaseTable"}),TableBlockContext=(0,import_react2.createContext)({});TableBlockContext.displayName="TableBlockContext";const TableBlockContextBasicValue=(0,import_react2.createContext)(null);TableBlockContextBasicValue.displayName="TableBlockContextBasicValue";function getIdsWithChildren(e){const t=[];if(e)for(const o of e)o!=null&&o.children&&o.children.length>0&&(t.push(o.id),t.push(...getIdsWithChildren(o==null?void 0:o.children)));return t}const InternalTableBlockProvider=e=>{const{params:t,showIndex:o,dragSort:r,rowKey:i,childrenColumnName:n,expandFlag:a=!1,fieldNames:l,collection:c,association:u,enableIndexColumn:d}=e,m=(0,import_react.useField)(),{resource:p,service:h}=useBlockRequestContext(),g=(0,import_react.useFieldSchema)(),[_,f]=(0,import_react2.useState)(!!(l||a)),{heightProps:v}=useBlockHeightProps(),C=(0,import_react2.useRef)(null);(0,import_react2.useEffect)(()=>{f(l||a)},[l||a]);const b=(0,import_react2.useMemo)(()=>{var j;const{treeTable:A}=(g==null?void 0:g["x-decorator-props"])||{},D=(j=h==null?void 0:h.data)==null?void 0:j.data;if(A)return getIdsWithChildren(D)},[h==null?void 0:h.loading,g]),S=(0,import_react2.useCallback)(j=>{f(j||!_)},[_]),y=(0,import_react2.useMemo)(()=>({field:m,rowKey:i,childrenColumnName:n,showIndex:o,dragSort:r,dragSortBy:e.dragSortBy}),[m,i,n,o,r,e.dragSortBy]),F=(0,import_react2.useMemo)(()=>({collection:c,field:m,service:h,resource:p,params:t,showIndex:o,dragSort:r,rowKey:i,expandFlag:_,childrenColumnName:n,allIncludesChildren:b,setExpandFlag:S,heightProps:v,association:u,enableIndexColumn:d}),[b,n,c,r,_,m,v,t,p,i,h,S,o,u,d]);return(0,import_jsx_runtime.jsx)(TableElementRefContext.Provider,{value:C,children:(0,import_jsx_runtime.jsx)(TableBlockContext.Provider,{value:F,children:(0,import_jsx_runtime.jsx)(TableBlockContextBasicValue.Provider,{value:y,children:e.children})})})},useTableBlockParamsCompat=e=>{const t=(0,import_react.useFieldSchema)();let o,r=!1;if(t["x-use-decorator-props"])o=e.params,r=e.parseVariableLoading;else{const i=useTableBlockParams(e);o=i.params,r=i.parseVariableLoading}return{params:o,parseVariableLoading:r}},TableBlockProvider=withDynamicSchemaProps(e=>{const t=e.resource||e.association,o=(0,import_react.useFieldSchema)(),{getCollection:r,getCollectionField:i}=useCollectionManager_deprecated(e.dataSource),n=r(e.collection,e.dataSource),{treeTable:a}=(o==null?void 0:o["x-decorator-props"])||{},{params:l,parseVariableLoading:c}=useTableBlockParamsCompat(e);let u="__nochildren__";if(a)if(u="children",t!=null&&t.includes(".")){const m=i(t);m!=null&&m.treeChildren&&(u=m.name),l.tree=!0}else{const m=n==null?void 0:n.fields.find(p=>p.treeChildren);m&&(u=m.name),l.tree=!0}else u="__nochildren__";const d=(0,import_react2.useMemo)(()=>(0,import_core.createForm)(),[a]);return c?null:(0,import_jsx_runtime.jsx)(TableUidContext.Provider,{value:o["x-uid"],children:(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{scope:{treeTable:a},children:(0,import_jsx_runtime.jsx)(import_react.FormContext.Provider,{value:d,children:(0,import_jsx_runtime.jsx)(BlockProvider,P(x({name:e.name||"table"},e),{params:l,runWhenParamsChanged:!0,children:(0,import_jsx_runtime.jsx)(InternalTableBlockProvider,P(x({},e),{childrenColumnName:u,params:l}))}))})})})}),useTableBlockContext=()=>(0,import_react2.useContext)(TableBlockContext),useTableBlockContextBasicValue=()=>(0,import_react2.useContext)(TableBlockContextBasicValue),NOOP=()=>{},CollectOperatorsContext=(0,import_react2.createContext)(null),CollectOperators=e=>{const t=(0,import_react2.useRef)(e.defaultOperators||{}),o=(0,import_react2.useCallback)((a,l)=>{t.current[a]=l},[]),r=(0,import_react2.useCallback)(()=>x({},t.current),[]),i=(0,import_react2.useCallback)(a=>t.current[a],[]),n=(0,import_react2.useCallback)(a=>{delete t.current[a]},[]);return(0,import_jsx_runtime.jsx)(CollectOperatorsContext.Provider,{value:{collectOperator:o,getOperators:r,getOperator:i,removeOperator:n},children:e.children})},useOperators=()=>{const{getOperator:e=NOOP,getOperators:t=NOOP,collectOperator:o=NOOP,removeOperator:r=NOOP}=import_react2.default.useContext(CollectOperatorsContext)||{};return{getOperator:e,getOperators:t,collectOperator:o,removeOperator:r}},useCollectionManager_deprecated=e=>{const t=useDataSourceManager(),o=useDataSource(),r=useCollectionManager(),i=e||(o==null?void 0:o.key)||void 0,[n,a]=(0,import_react2.useState)((0,import_shared.uid)()),{refresh:l}=useSchemaComponentContext(),c=(0,import_react2.useMemo)(()=>{var T;return(T=t==null?void 0:t.collectionFieldInterfaceManager)==null?void 0:T.getFieldInterfaces().reduce(($,B)=>($[B.name]=B,$),{})},[t,n]),u=(0,import_react2.useMemo)(()=>t==null?void 0:t.collectionTemplateManager.getCollectionTemplates(),[t,n]),d=(0,import_react2.useCallback)(()=>{var T,$;return($=(T=t==null?void 0:t.getDataSource(i))==null?void 0:T.collectionManager)==null?void 0:$.getCollections().map(B=>B.getOptions())},[t,o]),m=(0,import_react2.useCallback)(T=>{var $;return r&&!T?r:($=t==null?void 0:t.getDataSource(T||i))==null?void 0:$.collectionManager},[r,t,i]),p=(0,import_react2.useMemo)(()=>{var T,$;return($=(T=t==null?void 0:t.getDataSource(DEFAULT_DATA_SOURCE_KEY))==null?void 0:T.collectionManager)==null?void 0:$.getCollections()},[t,n]),h=(0,import_react2.useCallback)(()=>t==null?void 0:t.getDataSource(DEFAULT_DATA_SOURCE_KEY).reload().then(()=>{l(),a((0,import_shared.uid)())}),[t]),g=(0,import_react2.useCallback)(()=>t==null?void 0:t.getDataSource(DEFAULT_DATA_SOURCE_KEY).reload().then(()=>{l(),a((0,import_shared.uid)())}),[t]),_=useCompile(),f=(0,import_react2.useCallback)((T,$)=>{var B,I;return((I=(B=m($))==null?void 0:B.getCollection(T))==null?void 0:I.getInheritedFields())||[]},[t,m]),v=(0,import_react2.useCallback)((T,$)=>{var B,I;if(!T)return[];const E=(B=m($))==null?void 0:B.getCollection(T);return((I=E==null?void 0:E.getAllFields)==null?void 0:I.call(E))||(E==null?void 0:E.getFields())||[]},[t,m]),C=(0,import_react2.useCallback)((T,$)=>{var B;if(!(!T||T.split(".").length<2))return(B=m($))==null?void 0:B.getCollectionField(T)},[t,m]),b=(0,import_react2.useCallback)((T,$)=>{var B,I;return T?((I=(B=m($))==null?void 0:B.getCollection(T))==null?void 0:I.getParentCollectionsName())||[]:[]},[t,m]),S=(0,import_react2.useCallback)((T,$=!1,B)=>{var I;if(!T)return[];const E=(I=m(B))==null?void 0:I.getCollection(T);return(E==null?void 0:E.getChildrenCollections($))||[]},[t,m]),y=(0,import_react2.useCallback)((T,$)=>{var B,I;return T?((I=(B=m($))==null?void 0:B.getCollection(T))==null?void 0:I.getCurrentFields())||[]:[]},[t,m]),F=(0,import_react2.useCallback)((T,$,B,I)=>{var E;const{association:V=!1,cached:O={},collectionNames:L=[T],maxDepth:U=1,allowAllTypes:z=!1,exceptInterfaces:G=[],prefixFieldValue:H="",usePrefix:K=!1,dataSource:X}=I||{};if(L.length-1>U)return;if(O[T])return import_lodash.default.cloneDeep(O[T]);$&&typeof $=="string"&&($=[$]),B&&typeof B=="string"&&(B=[B]);const Y=v(T,X),J=(E=Y==null?void 0:Y.filter(ee=>ee.interface&&!G.includes(ee.interface)&&(z||$&&$.includes(ee.type)||B&&B.includes(ee.interface)||(V&&ee.target&&ee.target!==T&&Array.isArray(V)?V.includes(ee.interface):!1))))==null?void 0:E.map(ee=>{var te,Q;const ie=x({value:K&&H?`${H}.${ee.name}`:ee.name,label:_((te=ee==null?void 0:ee.uiSchema)==null?void 0:te.title)||ee.name},ee);return V&&ee.target&&(ie.children=L.includes(ee.target)?[]:F(ee.target,$,B,P(x({},I),{cached:O,dataSource:X,collectionNames:[...L,ee.target],prefixFieldValue:K?H?`${H}.${ee.name}`:ee.name:"",usePrefix:K})),!((Q=ie.children)!=null&&Q.length))?null:ie}).filter(Boolean);return O[T]=J,J},[v]),j=(0,import_react2.useCallback)((T,$)=>{var B;return(B=m($))==null?void 0:B.getCollection(T)},[t,m]),A=(0,import_react2.useCallback)((T,$)=>{var B,I;return(I=(B=m($))==null?void 0:B.getCollection(T))==null?void 0:I.getAllCollectionsInheritChain()},[t,m]),D=(0,import_react2.useCallback)((T,$)=>()=>{var B,I;return(I=(B=m($))==null?void 0:B.getCollection(T))==null?void 0:I.getInheritCollectionsChain()},[t,m]),N=(0,import_react2.useCallback)(T=>t==null?void 0:t.collectionFieldInterfaceManager.getFieldInterface(T),[t]),M=(0,import_react2.useCallback)(T=>{var $;return($=N(T.interface))==null?void 0:$.titleUsable},[N]),w=(0,import_react2.useCallback)((T,$,B)=>{var I,E;return(E=(I=m(B))==null?void 0:I.getCollection($))==null?void 0:E.getParentCollectionFields(T)},[t,m]),R=(0,import_react2.useCallback)((T="general")=>t==null?void 0:t.collectionTemplateManager.getCollectionTemplate(T),[t]);return{service:h,interfaces:c,collections:p,templates:u,getTemplate:R,getInterface:N,getCollections:d,getParentCollectionFields:w,getInheritCollections:b,getChildrenCollections:S,refreshCM:g,get:j,getInheritedFields:f,getCollectionField:C,getCollectionFields:v,getCollectionFieldsOptions:F,getCurrentCollectionFields:y,getCollection:j,getCollectionJoinField:C,getAllCollectionsInheritChain:A,getInheritCollectionsChain:D,isTitleField:M}};function SelectWithTitle(e){var t=e,{title:o,defaultValue:r,onChange:i,options:n,fieldNames:a}=t,l=W(t,["title","defaultValue","onChange","options","fieldNames"]);const[c,u]=(0,import_react2.useState)(!1),d=(0,import_react2.useRef)(null);return(0,import_jsx_runtime.jsxs)("div",{style:{alignItems:"center",display:"flex",justifyContent:"space-between"},onClick:m=>{m.stopPropagation(),u(p=>!p)},onMouseLeave:()=>{d.current=setTimeout(()=>{u(!1)},200)},children:[o,(0,import_jsx_runtime.jsx)(import_antd.Select,P(x({},l),{open:c,"data-testid":`select-${o}`,popupMatchSelectWidth:!1,bordered:!1,defaultValue:r,onChange:i,popupClassName:`select-popup-${o.replaceAll(" ","-")}`,fieldNames:a,options:n,style:{textAlign:"right",minWidth:100},onMouseEnter:()=>{clearTimeout(d.current)}}))]})}const DataSourceApplicationProvider=e=>{var t=e,{children:o,dataSourceManager:r}=t,i=W(t,["children","dataSourceManager"]);return(0,import_jsx_runtime.jsx)(DataSourceManagerProvider,{dataSourceManager:r,children:(0,import_jsx_runtime.jsx)(CollectionManagerProvider,P(x({},i),{children:o}))})},GetMenuItemContext=(0,import_react2.createContext)(null);GetMenuItemContext.displayName="GetMenuItemContext";const GetMenuItemsContext=(0,import_react2.createContext)(null);GetMenuItemsContext.displayName="GetMenuItemsContext";const useCollectMenuItem=()=>(0,import_react2.useContext)(GetMenuItemContext)||{},useCollectMenuItems=()=>(0,import_react2.useContext)(GetMenuItemsContext)||{},useMenuItem=()=>{const e=(0,import_react2.useRef)([]),t=(0,import_react2.useRef)(null),o=(0,import_react2.useRef)(!1),r=(0,import_react2.useCallback)(({limitCount:l})=>o.current?(o.current=!1,t.current?t.current():l&&e.current.length>l?(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:e.current.slice(0,l).map((c,u)=>(0,import_jsx_runtime.jsx)(c,{},u))}):(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:e.current.map((c,u)=>(0,import_jsx_runtime.jsx)(c,{},u))})):null,[]),i=(0,import_react2.useCallback)(l=>{const c=[],u=d=>{c.push(d),c.sort((m,p)=>(m.order||0)-(p.order||0))};return o.current=!0,t.current=()=>{const d=c.filter(m=>m.notdelete).map(m=>import_lodash.default.omit(m,"notdelete"));return c.length=0,c.push(...d),(0,import_jsx_runtime.jsx)(GetMenuItemsContext.Provider,{value:{pushMenuItem:u},children:l()})},c},[]),n=(0,import_react2.useCallback)(l=>{const c={},u=d=>{Object.assign(c,d)};return o.current=!0,e.current.push(()=>(0,import_jsx_runtime.jsx)(GetMenuItemContext.Provider,{value:{collectMenuItem:u},children:l()})),c},[]),a=(0,import_react2.useCallback)(()=>{e.current=[]},[]);return{Component:r,getMenuItems:i,getMenuItem:n,clean:a}},CurrentPopupRecordContext=import_react2.default.createContext(null),CurrentParentPopupRecordContext=import_react2.default.createContext(null),VariablePopupRecordProvider=import_react2.default.memo(e=>{var t,o;const{t:r}=(0,import_react_i18next.useTranslation)(),i=useCollectionRecordData(),n=useCollection(),a=useCurrentPopupRecord();return(0,import_jsx_runtime.jsx)(CurrentParentPopupRecordContext.Provider,{value:{name:"$nParentPopupRecord",title:r("Parent popup record"),value:((t=e.parent)==null?void 0:t.recordData)||(a==null?void 0:a.value),collection:((o=e.parent)==null?void 0:o.collection)||(a==null?void 0:a.collection)},children:(0,import_jsx_runtime.jsx)(CurrentPopupRecordContext.Provider,{value:{name:"$nPopupRecord",title:r("Current popup record"),value:e.recordData||i,collection:e.collection||n},children:e.children})})});VariablePopupRecordProvider.displayName="VariablePopupRecordProvider";const useCurrentPopupRecord=()=>import_react2.default.useContext(CurrentPopupRecordContext),useParentPopupRecord=()=>import_react2.default.useContext(CurrentParentPopupRecordContext),PopupSettingsContext=import_react2.default.createContext({enableURL:!0}),PopupSettingsProvider=e=>{const{enableURL:t=!0}=e,o=(0,import_react2.useMemo)(()=>({enableURL:t}),[t]);return(0,import_jsx_runtime.jsx)(PopupSettingsContext.Provider,{value:o,children:e.children})},usePopupSettings=()=>{const{enableURL:e}=import_react2.default.useContext(PopupSettingsContext),t=useIsInSettingsPage();return{isPopupVisibleControlledByURL:(0,import_react2.useCallback)(()=>{const o=window.location.pathname,r=window.location.hash,i=(o==null?void 0:o.includes("/mobile/"))||(r==null?void 0:r.includes("/mobile/")),n=o==null?void 0:o.includes("/m/"),a=o==null?void 0:o.includes("/admin/"),l=o==null?void 0:o.includes("/m/block-templates/inherited");return(a||n)&&!i&&e&&!t&&!l},[e,t])}},popupLayerStates={},setPopupLayerState=(e,t)=>{popupLayerStates[e]=t},getPopupLayerState=e=>{var t;return(t=popupLayerStates[e])!=null?t:!1},removePopupLayerState=e=>{delete popupLayerStates[e]},CONTEXT_SCHEMA_KEY="x-action-context",usePopupContextInActionOrAssociationField=()=>{const e=(0,import_react.useFieldSchema)(),{dn:t}=useDesignable();return{updatePopupContext:(0,import_react2.useCallback)((o,r)=>{const i=r||e,n=getPopupContextFromActionOrAssociationFieldSchema(i);if(o=import_lodash.default.omitBy(o,import_lodash.default.isNil),!(import_lodash.default.isEqual(o,n)||n!=null&&n.doNotUpdateContext))return i[CONTEXT_SCHEMA_KEY]=o,t.emit("initializeActionContext",{schema:{"x-uid":i["x-uid"],[CONTEXT_SCHEMA_KEY]:o}})},[e,t])}};function getPopupContextFromActionOrAssociationFieldSchema(e){return e[CONTEXT_SCHEMA_KEY]}const popupsContextStorage={},defaultPopupsContextStorage={},getStoredPopupContext=e=>popupsContextStorage[e]||defaultPopupsContextStorage[e],storePopupContext=(e,t,o=!1)=>{if(o){defaultPopupsContextStorage[e]=t;return}popupsContextStorage[e]=t},deletePopupContext=e=>{delete popupsContextStorage[e]},blockServicesStorage={},getBlockService=e=>blockServicesStorage[e],storeBlockService=(e,t)=>{blockServicesStorage[e]=t},getPopupParamsFromPath=import_lodash.default.memoize(e=>e.split("/popups/").filter(Boolean).map(t=>{const[o,...r]=t.split("/").filter(Boolean),i={};for(let n=0;n<r.length;n+=2)i[r[n]]=decodePathValue(r[n+1]);return x({popupuid:o},i)})),getPopupPathFromParams=e=>{const{popupuid:t,tab:o,filterbytk:r,sourceid:i,collection:n,puid:a}=e;return`/popups/${[t,a&&"puid",a,n&&"collection",n,r&&"filterbytk",r,i&&"sourceid",i,o&&"tab",o].filter(Boolean).map(l=>encodePathValue(l)).join("/")}`},usePopupUtils=(e={})=>{const t=useNavigateNoUpdate(),o=useLocationNoUpdate(),r=(0,import_react.useFieldSchema)(),i=useDataSourceKey(),n=useCollectionRecord(),a=useCollectionParentRecord(),l=useCollection(),c=useCollectionManager(),u=useAssociationName(),{visible:d,setVisible:m}=(0,import_react2.useContext)(PopupVisibleProviderContext)||{visible:!1,setVisible:import_lodash.default.noop},{params:p,currentLevel:h=0}=useCurrentPopupContext(),{getDataBlockRequest:g}=useDataBlockRequestGetter(),{isPopupVisibleControlledByURL:_}=usePopupSettings(),{setVisible:f}=(0,import_react2.useContext)(ActionContext),{updatePopupContext:v}=usePopupContextInActionOrAssociationField(),C=useCurrentPopupContext(),b=(0,import_react2.useCallback)(T=>{var $;return($=T||(a==null?void 0:a.data))==null?void 0:$[c.getSourceKeyByAssociation(u)]},[a,u]),S=useDataBlockRequestData(),y=useTableBlockContextBasicValue()||{},F=e.setVisible||f,j=(0,import_react2.useCallback)(({tabKey:T,popupUid:$,recordData:B,sourceId:I,collection:E,puid:V})=>{const O=c.getFilterByTK(u||l,B);return getPopupPathFromParams({popupuid:$,puid:V,collection:E,filterbytk:O,sourceid:I,tab:T})},[u,c,l,i,a==null?void 0:a.data,u]),A=(0,import_react2.useCallback)(()=>{const T={dataSource:i,collection:u||l==null?void 0:l.name,association:u};return import_lodash.default.omitBy(T,import_lodash.default.isNil)},[i,l,u]),D=(0,import_react2.useCallback)(({recordData:T,parentRecordData:$,collectionNameUsedInURL:B,popupUidUsedInURL:I,customActionSchema:E}={})=>{if(!_())return F==null?void 0:F(!0);const V=E||r,O=V==null?void 0:V["x-uid"],L=b($);T=T||(n==null?void 0:n.data);const U=j({popupUid:O,recordData:T,sourceId:L,collection:B,puid:I});let z=o.pathname;if(import_lodash.default.last(z)==="/"&&(z=z.slice(0,-1)),storePopupContext(O,{schema:V,record:new CollectionRecord({isNew:!1,data:T}),parentRecord:$?new CollectionRecord({isNew:!1,data:$}):a,service:g(),dataSource:i,collection:l==null?void 0:l.name,association:u,sourceId:L,tableBlockContext:P(x({},y),{collection:l==null?void 0:l.name,blockData:S})}),v(A(),E),V.properties){const G=h+1;if(getPopupLayerState(G))return;t(withSearchParams(`${z}${U}`)),setPopupLayerState(G,!0)}else console.error(`[NocoBase] The popup schema is invalid, please check the schema:
|
|
237
|
-
${JSON.stringify(V,null,2)}`)},[u,c,l,i,r,j,t,a,n,g,o,_,b,A,S,y,h]),N=(0,import_react2.useCallback)(()=>{if(!_())return F==null?void 0:F(!1);t(withSearchParams(removeLastPopupPath(o.pathname)),{replace:!0}),removePopupLayerState(h),p!=null&&p.popupuid&&deletePopupContext(p.popupuid)},[_,F,t,o==null?void 0:o.pathname,h,p==null?void 0:p.popupuid]),M=(0,import_react2.useCallback)(T=>{const $=b(),B=j({tabKey:T,popupUid:p==null?void 0:p.popupuid,recordData:n==null?void 0:n.data,sourceId:$});let I=removeLastPopupPath(o.pathname);import_lodash.default.last(I)==="/"&&(I=I.slice(0,-1)),t(`${I}${B}`,{replace:!0})},[j,t,p==null?void 0:p.popupuid,n==null?void 0:n.data,o]),w=(0,import_react2.useCallback)((T,$)=>{$.__popup=T},[]),R=(0,import_react2.useCallback)(T=>T.__popup,[]);return{openPopup:D,closePopup:N,savePopupSchemaToSchema:w,getPopupSchemaFromSchema:R,context:C,visibleWithURL:d,setVisibleWithURL:m,popupParams:p,changeTab:M,getPopupContext:A}};function removeLastPopupPath(e){if(!e.includes("popups"))return e;const t=e.split("popups").slice(0,-1).join("popups");return t.endsWith("/")?t.slice(0,-1):t}function withSearchParams(e){return`${e}${window.location.search}`}function encodePathValue(e){const t=encodeURIComponent(e);return t==="popups"?window.btoa(e):t}function decodePathValue(e){return e===window.btoa("popups")?"popups":decodeURIComponent(e)}const ActionContext=(0,import_react2.createContext)({});ActionContext.displayName="ActionContext";const ActionContextProvider=import_react2.default.memo(e=>{const[t,o]=(0,import_react2.useState)(!1),{visible:r}=x(x({},e),e.value),{setSubmitted:i}=x(x({},e),e.value),n=useBlockServiceInActionButton(),{isSubPageClosedByPageMenu:a,reset:l}=useIsSubPageClosedByPageMenu((0,import_react.useFieldSchema)());(0,import_react2.useEffect)(()=>{q(void 0,null,function*(){r===!1&&n&&!n.loading&&(t||a())&&(l(),n.loading=!0,yield n.refreshAsync(),n.loading=!1,o(!1),i==null||i(!0))})},[r,n,i,a,t,l]);const c=(0,import_react2.useMemo)(()=>P(x(x({},e),e==null?void 0:e.value),{submitted:t,setSubmitted:o}),[e,t]);return(0,import_jsx_runtime.jsx)(ActionContext.Provider,{value:c,children:e.children})});ActionContextProvider.displayName="ActionContextProvider";const useBlockServiceInActionButton=()=>{var e,t;const{params:o}=useCurrentPopupContext(),r=(e=(0,import_react.useFieldSchema)())==null?void 0:e["x-uid"],i=useDataBlockRequest(),n=o==null?void 0:o.popupuid;return(0,import_react2.useEffect)(()=>{r&&n!==r&&storeBlockService(r,{service:i})},[n,r,i]),n===r&&((t=getBlockService(n))==null?void 0:t.service)||i},ActionContextNoRerender=import_react2.default.memo(e=>{const t=(0,import_react2.useContext)(ActionContext),o=(0,import_react2.useRef)({});return Object.assign(o.current,t),(0,import_jsx_runtime.jsx)(ActionContext.Provider,{value:o.current,children:e.children})});ActionContextNoRerender.displayName="ActionContextNoRerender";const isModalTitle=e=>(0,import_shared.isNum)(e)||(0,import_shared.isStr)(e)||(0,import_shared.isBool)(e)||import_react2.default.isValidElement(e),getModelProps=e=>isModalTitle(e)?{title:e}:e;function FormDialog(e,t,o,r){((0,import_shared.isFn)(t)||import_react2.default.isValidElement(t))&&(r=o,o=t,t="form-dialog");const i={host:document.createElement("div"),form:null,promise:null,openMiddlewares:[],confirmMiddlewares:[],cancelMiddlewares:[]},n=createPortalRoot(i.host,t),a=getModelProps(e),l=P(x({},a),{afterClose:()=>{var m;(m=a==null?void 0:a.afterClose)==null||m.call(a),n.unmount()}}),c=(0,import_react.observer)(()=>(0,import_jsx_runtime.jsx)(import_react2.Fragment,{children:(0,import_shared.isFn)(o)?o(i.form):o}),{displayName:"DialogContent"}),u=(m=!0,p,h)=>{const{form:g}=i;return g?(0,import_jsx_runtime.jsx)(GlobalThemeProvider,{theme:r,children:(0,import_jsx_runtime.jsx)(import_react.Observer,{children:()=>{const{token:_}=useToken$1();return(0,import_jsx_runtime.jsx)(import_antd.Modal,P(x({zIndex:_.zIndexPopupBase+1e3},l),{open:m,confirmLoading:g.submitting,onCancel:f=>{var v;((v=l==null?void 0:l.onCancel)==null?void 0:v.call(l,f))!==!1&&(h==null||h())},onOk:f=>q(this,null,function*(){var v;((v=l==null?void 0:l.onOk)==null?void 0:v.call(l,f))!==!1&&(p==null||p())}),children:(0,import_jsx_runtime.jsx)(import_react.FormProvider,{form:g,children:(0,import_jsx_runtime.jsx)(c,{})})}))}})}):null};document.body.appendChild(i.host);const d={forOpen:m=>((0,import_shared.isFn)(m)&&i.openMiddlewares.push(m),d),forConfirm:m=>((0,import_shared.isFn)(m)&&i.confirmMiddlewares.push(m),d),forCancel:m=>((0,import_shared.isFn)(m)&&i.cancelMiddlewares.push(m),d),open:m=>q(this,null,function*(){return i.promise||(i.promise=new Promise((p,h)=>q(this,null,function*(){try{m=yield loading(l.loadingText,()=>(0,import_shared.applyMiddleware)(m,i.openMiddlewares)),i.form=i.form||(0,import_core.createForm)(m)}catch(g){h(g)}n.render(()=>u(!0,()=>{var g;(g=i.form)==null||g.submit(()=>q(this,null,function*(){yield(0,import_shared.applyMiddleware)(i.form,i.confirmMiddlewares),(0,import_reactive.untracked)(()=>{var _;p(x({},(_=i.form)==null?void 0:_.values))}),d.close()})).catch(()=>{})},()=>q(this,null,function*(){yield loading(l.loadingText,()=>(0,import_shared.applyMiddleware)(i.form,i.cancelMiddlewares)),d.close()})))}))),i.promise}),close:()=>{i.host&&n.render(()=>u(!1))}};return d}const DialogFooter=e=>{const t=(0,import_react2.useRef)(null),[o,r]=(0,import_react2.useState)(),i=(0,import_react2.useRef)(),n=usePrefixCls("modal");return(0,import_react2.useLayoutEffect)(()=>{var a;const l=(a=t.current)==null?void 0:a.closest(`.${n}-content`);l&&(i.current||(i.current=l.querySelector(`.${n}-footer`),i.current||(i.current=document.createElement("div"),i.current.classList.add(`${n}-footer`),l.appendChild(i.current))),r(i.current))},[n]),i.current=o,(0,import_jsx_runtime.jsx)("div",{ref:t,style:{display:"none"},children:o&&(0,import_react_dom.createPortal)(e.children,o)})};FormDialog.Footer=DialogFooter;FormDialog.Portal=createPortalProvider("form-dialog");const AllDataBlocksContext=import_react2.default.createContext({getAllDataBlocks:()=>[],setAllDataBlocks:()=>{}}),AllDataBlocksProvider=e=>{const t=import_react2.default.useRef([]),o=import_react2.default.useCallback(n=>{typeof n=="function"?t.current=n(t.current):t.current=n},[]),r=import_react2.default.useCallback(()=>t.current,[]),i=import_react2.default.useMemo(()=>({getAllDataBlocks:r,setAllDataBlocks:o}),[r,o]);return(0,import_jsx_runtime.jsx)(AllDataBlocksContext.Provider,{value:i,children:e.children})},useAllDataBlocks=()=>{const e=import_react2.default.useContext(AllDataBlocksContext),t=(0,import_react2.useCallback)(()=>(e==null?void 0:e.getAllDataBlocks())||[],[e]),o=(0,import_react2.useCallback)(i=>{const n=e==null?void 0:e.getAllDataBlocks().find(a=>a.uid===i.uid);if(n){Object.assign(n,i);return}e==null||e.setAllDataBlocks(a=>[...a,i])},[e]),r=(0,import_react2.useCallback)(i=>{e!=null&&e.getAllDataBlocks().every(n=>n.uid!==i)||e==null||e.setAllDataBlocks(n=>n.filter(a=>a.uid!==i))},[e]);return e?{recordDataBlocks:o,removeDataBlock:r,getAllDataBlocks:t}:{recordDataBlocks:import_lodash.default.noop,removeDataBlock:import_lodash.default.noop,getAllDataBlocks:t}},WithForm$1=e=>{const t=e,{children:o,form:r}=t,i=W(t,["children","form"]),n=(0,import_react2.useContext)(import_react.SchemaOptionsContext),a=(0,import_react2.useContext)(import_react.SchemaExpressionScopeContext),l=x(x({},n==null?void 0:n.scope),a),c=x({},n==null?void 0:n.components);return(0,import_jsx_runtime.jsx)(import_react.FormProvider,P(x({},i),{form:r,children:(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{components:c,scope:l,children:o})}))},WithoutForm$1=e=>{const t=e,{children:o}=t,r=W(t,["children"]),i=(0,import_react2.useContext)(import_react.SchemaOptionsContext),n=(0,import_react2.useContext)(import_react.SchemaExpressionScopeContext),a=x(x({},i==null?void 0:i.scope),n),l=x({},i==null?void 0:i.components),c=(0,import_react2.useMemo)(()=>(0,import_core.createForm)(),[]);return(0,import_jsx_runtime.jsx)(import_react.FormProvider,P(x({},r),{form:c,children:(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{components:l,scope:a,children:o})}))},FormProvider=e=>e.form?(0,import_jsx_runtime.jsx)(WithForm$1,x({},e)):(0,import_jsx_runtime.jsx)(WithoutForm$1,x({},e)),CollectionHistoryContext=(0,import_react2.createContext)({historyCollections:[],refreshCH:()=>{}});CollectionHistoryContext.displayName="CollectionHistoryContext";const options$2={resource:"collectionsHistory",action:"list",params:{paginate:!1,appends:["fields"],filter:{},sort:["sort"]}},CollectionHistoryProvider=e=>{var t;const o=useAPIClient(),r=useIsAdminPage(),i=o.auth.getToken()||"",n=useRequest(options$2,{refreshDeps:[r,i],ready:!!(r&&i)}),a=(0,import_react2.useCallback)(()=>q(void 0,null,function*(){const{data:c}=yield o.request(options$2);return n.mutate(c),(c==null?void 0:c.data)||[]}),[n]),l=(0,import_react2.useMemo)(()=>{var c;return{historyCollections:(c=n.data)==null?void 0:c.data,refreshCH:a}},[a,(t=n.data)==null?void 0:t.data]);return(0,import_jsx_runtime.jsx)(CollectionHistoryContext.Provider,{value:l,children:e.children})},useHistoryCollectionsByNames=e=>{const{historyCollections:t}=(0,import_react2.useContext)(CollectionHistoryContext);return(t==null?void 0:t.filter(o=>e.includes(o.name)))||[]},useCollectionHistory=()=>(0,import_react2.useContext)(CollectionHistoryContext),CollectionProvider_deprecated=({children:e,allowNull:t,name:o,dataSource:r,collection:i})=>r?(0,import_jsx_runtime.jsx)(CollectionManagerProvider,{dataSource:r,children:(0,import_jsx_runtime.jsx)(CollectionProvider,{allowNull:t,name:o||i,children:e})}):(0,import_jsx_runtime.jsx)(CollectionProvider,{allowNull:t,name:o||i,children:e}),ResourceActionContext=(0,import_react2.createContext)(null);ResourceActionContext.displayName="ResourceActionContext";const ResourceContext=(0,import_react2.createContext)(null);ResourceContext.displayName="ResourceContext";const CollectionResourceActionProvider=e=>{var t,o,r,i;const{collection:n,request:a,uid:l,dragSort:c}=e,u=useAPIClient(),d=useRecord(),m=a==null?void 0:a.action,p={};m==="get"&&(p.filterByTk=d[n.targetKey||n.filterTargetKey||"id"]);const h=((t=a==null?void 0:a.params)==null?void 0:t.appends)||[],g=useRequest(P(x({},a),{params:P(x(x({},p),a==null?void 0:a.params),{appends:[...((r=(o=n==null?void 0:n.fields)==null?void 0:o.filter)==null?void 0:r.call(o,C=>C.target).map(C=>C.name))||[],...h],sort:c?[n.sortable===!0?"sort":n.sortable]:(i=a==null?void 0:a.params)==null?void 0:i.sort})}),{uid:l}),_=u.resource(a.resource),f=(0,import_react2.useMemo)(()=>P(x({},g),{defaultRequest:a,dragSort:c}),[c,a,g]),v=(0,import_react2.useMemo)(()=>({type:"collection",resource:_,collection:n}),[n,_]);return(0,import_jsx_runtime.jsx)(ResourceContext.Provider,{value:v,children:(0,import_jsx_runtime.jsx)(ResourceActionContext.Provider,{value:f,children:(0,import_jsx_runtime.jsx)(CollectionProvider_deprecated,{collection:n,children:e.children})})})},AssociationResourceActionProvider=e=>{var t,o,r;const{collection:i,association:n,request:a,uid:l,dragSort:c}=e,u=useAPIClient(),d=useRecord()[n.sourceKey],m=((t=a==null?void 0:a.params)==null?void 0:t.appends)||[],p=useRequest(P(x({resourceOf:d},a),{params:P(x({},a==null?void 0:a.params),{appends:[...((r=(o=i==null?void 0:i.fields)==null?void 0:o.filter)==null?void 0:r.call(o,f=>f.target).map(f=>f.name))||[],...m]})}),{uid:l}),h=u.resource(a.resource,d),g=(0,import_react2.useMemo)(()=>({type:"association",resource:h,association:n,collection:i}),[n,i,h]),_=(0,import_react2.useMemo)(()=>P(x({},p),{defaultRequest:a,dragSort:c}),[c,a,p]);return(0,import_jsx_runtime.jsx)(ResourceContext.Provider,{value:g,children:(0,import_jsx_runtime.jsx)(ResourceActionContext.Provider,{value:_,children:(0,import_jsx_runtime.jsx)(CollectionProvider_deprecated,{collection:i,children:e.children})})})},ResourceActionProvider=e=>{var t;let{collection:o,request:r}=e;const{getCollection:i}=useCollectionManager_deprecated();return typeof o=="string"&&(o=i(o)),o?(t=r==null?void 0:r.resource)!=null&&t.includes(".")?(0,import_jsx_runtime.jsx)(AssociationResourceActionProvider,P(x({},e),{collection:o})):(0,import_jsx_runtime.jsx)(CollectionResourceActionProvider,P(x({},e),{collection:o})):null},useResourceActionContext=()=>(0,import_react2.useContext)(ResourceActionContext)||{},useDataSourceFromRAC=e=>{const t=(0,import_react2.useContext)(ResourceActionContext),o=(0,import_react.useField)();return(0,import_react2.useEffect)(()=>{t.loading||(e==null||e.onSuccess(t.data),o.componentProps.dragSort=!!t.dragSort)},[t.loading]),t},useResourceContext=()=>{const{type:e,resource:t,collection:o,association:r}=(0,import_react2.useContext)(ResourceContext)||{};return{type:e,resource:t,collection:o,association:r,targetKey:(r==null?void 0:r.targetKey)||(o==null?void 0:o.filterTargetKey)||(o==null?void 0:o.targetKey)||"id"}},collection$1={name:"fields",targetKey:"name",fields:[{type:"string",name:"type",interface:"input",uiSchema:{title:'{{ t("Storage type") }}',type:"string","x-component":"Select",enum:[{label:"String",value:"string"}],required:!0}},{type:"string",name:"interface",interface:"input",uiSchema:{title:'{{ t("Field interface") }}',type:"string","x-component":"Select",enum:"{{interfaces}}"}},{type:"string",name:"title",interface:"input",uiSchema:{title:'{{ t("Field display name") }}',type:"string","x-component":"Input",required:!0}},{type:"string",name:"name",interface:"input",uiSchema:{title:'{{ t("Field name") }}',type:"string","x-component":"Input"}}]},DataSourceContext_deprecated=(0,import_react2.createContext)(null);DataSourceContext_deprecated.displayName="DataSourceContext_deprecated";const useSelectedRowKeys=()=>{const e=(0,import_react2.useContext)(DataSourceContext_deprecated);return[e.selectedRowKeys,e.setSelectedRowKeys]},useDataSource_deprecated=e=>{const t=(0,import_react2.useContext)(DataSourceContext_deprecated);return useRequest(()=>Promise.resolve({data:t.dataSource}),P(x({},e),{refreshDeps:[JSON.stringify(t.dataSource)]}))},useCreateAction$1=()=>{const e=(0,import_react2.useContext)(DataSourceContext_deprecated),t=(0,import_react.useForm)(),{setVisible:o}=useActionContext();return{run(){return q(this,null,function*(){console.log("form.values",t.values);const r=e.dataSource||[];r.push((0,import_lodash.cloneDeep)(t.values)),e.setDataSource([...r]),o(!1),yield t.reset()})}}},useBulkDestroyAction$2=()=>{const e=(0,import_react2.useContext)(DataSourceContext_deprecated),{selectedRowKeys:t,setSelectedRowKeys:o}=e;return{run(){return q(this,null,function*(){const r=e.dataSource||[];e.setDataSource(r.filter((i,n)=>!t.includes(n))),o([])})}}},useUpdateAction$1=()=>{const e=useRecordIndex(),t=(0,import_react.useForm)(),{setVisible:o}=useActionContext(),r=(0,import_react2.useContext)(DataSourceContext_deprecated);return{run(){return q(this,null,function*(){const i=((r==null?void 0:r.dataSource)||[]).map((n,a)=>a===e?x({},t.values):n);r.setDataSource([...i]),o(!1)})}}},useDestroyAction$2=()=>{const e=useRecordIndex(),t=(0,import_react2.useContext)(DataSourceContext_deprecated);return{run(){return q(this,null,function*(){const o=t.dataSource||[];t.setDataSource(o.filter((r,i)=>e!==i))})}}},ds={useSelectedRowKeys,useDataSource_deprecated,useCreateAction:useCreateAction$1,useBulkDestroyAction:useBulkDestroyAction$2,useUpdateAction:useUpdateAction$1,useDestroyAction:useDestroyAction$2},SubFieldDataSourceProvider_deprecated=(0,import_react.observer)(e=>{const[t,o]=(0,import_react2.useState)([]),[r,i]=(0,import_react2.useState)([]),n=useRecord(),a=useAPIClient(),l=useRequest(()=>{var c;return n.interface==="subTable"?(c=n==null?void 0:n.children)!=null&&c.length?Promise.resolve({data:(n==null?void 0:n.children)||[]}):a.resource("fields").list({paginate:!1,sort:"sort",filter:{parentKey:n.key}}).then(u=>u==null?void 0:u.data):Promise.resolve({data:[]})},{onSuccess(c){console.log("dataSource1",c==null?void 0:c.data),i(c==null?void 0:c.data)}});return(0,import_jsx_runtime.jsx)(CollectionProvider_deprecated,{collection:collection$1,children:(0,import_jsx_runtime.jsx)(DataSourceContext_deprecated.Provider,{value:{rowKey:"name",service:l,dataSource:r,setDataSource:i,selectedRowKeys:t,setSelectedRowKeys:o},children:e.children})})},{displayName:"SubFieldDataSourceProvider_deprecated"}),DataSourceProvider_deprecated=(0,import_react.observer)(e=>{const{rowKey:t,collection:o,association:r}=e,[i,n]=(0,import_react2.useState)([]),[a,l]=(0,import_react2.useState)([]),c=useRecord(),u=useAPIClient(),{getCollection:d}=useCollectionManager_deprecated(),m=d(o),p=c==null?void 0:c[r.targetKey||"id"],h=useRequest(()=>{var g,_;return p?u.request({resource:`${r.collectionName}.${r.name}`,resourceOf:p,action:"list",params:{appends:(_=(g=m==null?void 0:m.fields)==null?void 0:g.filter(f=>f.target))==null?void 0:_.map(f=>f.name)}}).then(f=>f.data):Promise.resolve({data:(c==null?void 0:c[r.name])||[]})},{onSuccess(g){l(g==null?void 0:g.data)}});return(0,import_jsx_runtime.jsx)(CollectionProvider_deprecated,{collection:m,children:(0,import_jsx_runtime.jsx)(DataSourceContext_deprecated.Provider,{value:{rowKey:t,service:h,dataSource:a,setDataSource:l,selectedRowKeys:i,setSelectedRowKeys:n},children:e.children})})},{displayName:"DataSourceProvider_deprecated"}),components$6={SubFieldDataSourceProvider_deprecated,DataSourceProvider_deprecated,CollectionProvider_deprecated,ResourceActionProvider},CollectionManagerSchemaComponentProvider=e=>{const t=(0,import_react2.useMemo)(()=>({cm:P(x({},hooks),{useDataSourceFromRAC}),ds}),[]);return(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{scope:t,components:components$6,children:e.children})},CollectionCategoriesContext=(0,import_react2.createContext)({data:[],refresh:()=>{}});CollectionCategoriesContext.displayName="CollectionCategoriesContext";const CollectionManagerProvider_deprecated=e=>(0,import_jsx_runtime.jsx)(CollectionManagerProvider,{children:(0,import_jsx_runtime.jsx)(CollectionManagerSchemaComponentProvider,{children:e.children})}),RemoteCollectionManagerLoadingContext=(0,import_react2.createContext)(!1),useRemoteCollectionManagerLoading=()=>(0,import_react2.useContext)(RemoteCollectionManagerLoadingContext),RemoteCollectionManagerProvider=e=>{const t=useDataSourceManager(),{refreshCH:o}=useCollectionHistory(),r=useRequest(()=>t.reload().then(o));return(0,import_jsx_runtime.jsx)(RemoteCollectionManagerLoadingContext.Provider,{value:r.loading,children:(0,import_jsx_runtime.jsx)(CollectionManagerProvider_deprecated,x({},e))})},CollectionCategoriesProvider=e=>{var t;const{service:o,refreshCategory:r}=e,i=(0,import_react2.useMemo)(()=>{var n;return x({data:(n=o==null?void 0:o.data)==null?void 0:n.data,refresh:r},e)},[(t=o==null?void 0:o.data)==null?void 0:t.data,r,e]);return(0,import_jsx_runtime.jsx)(CollectionCategoriesContext.Provider,{value:i,children:e.children})},useRequestSchema$1=({uid:e,type:t="getJsonSchema",onSuccess:o})=>{const r={url:`/uiSchemas:${t}/${e}`},{data:i,loading:n}=useRequest(r,{refreshDeps:[e],onSuccess(a){o&&o(a)}});return{schema:i==null?void 0:i.data,loading:n}},defaultTransform=e=>e,RequestSchemaComponent=e=>{const{noForm:t,onlyRenderProperties:o,hidden:r,scope:i,uid:n,components:a,onSuccess:l,NotFoundPage:c,schemaTransform:u=defaultTransform,onPageNotFind:d}=e,m=o?"getProperties":"getJsonSchema",p=(0,import_react2.useMemo)(()=>(0,import_core.createForm)(),[n]),{schema:h,loading:g}=useRequestSchema$1({uid:n,type:m,onSuccess:b=>{l&&l(b)}}),_=useComponent(c),f=useRemoteCollectionManagerLoading(),v=(0,import_react.useFieldSchema)(),C=(0,import_react2.useMemo)(()=>u(h||{}),[h,u]);return f||g||r?(0,import_jsx_runtime.jsx)(import_antd.Spin,{style:{width:"100%",marginTop:20},delay:LOADING_DELAY}):!h||Object.keys(h).length===0?(d&&d(),_?(0,import_jsx_runtime.jsx)(_,{}):null):t?(0,import_jsx_runtime.jsx)(SchemaComponent,{components:a,scope:i,schema:C,parentSchema:v}):(0,import_jsx_runtime.jsx)(FormProvider,{form:p,children:(0,import_jsx_runtime.jsx)(SchemaComponent,{components:a,scope:i,schema:C,parentSchema:v})})},RemoteSchemaComponent=(0,import_react2.memo)(e=>e.uid?(0,import_jsx_runtime.jsx)(RequestSchemaComponent,x({},e)):null);RemoteSchemaComponent.displayName="RemoteSchemaComponent";const EditableTitle=e=>{const[t,o]=(0,import_react2.useState)(e.title),[r,i]=(0,import_react2.useState)(!1),{refresh:n}=useSchemaTemplateManager();useAPIClient();const{run:a}=useRequest({resource:"uiSchemaTemplates",action:"update",params:{filterByTk:e.filterByTk}},{manual:!0,debounceWait:500,onSuccess(){n()}});return(0,import_jsx_runtime.jsx)("div",{children:r?(0,import_jsx_runtime.jsx)(import_antd.Input,{defaultValue:t,size:"large",onBlur:()=>{i(!1)},onChange:l=>{o(l.target.value),a({filterByTk:e.filterByTk,values:{name:l.target.value}})}}):(0,import_jsx_runtime.jsx)("div",{onClick:()=>{i(!0)},children:t||(0,import_jsx_runtime.jsx)("span",{style:{color:"#bbb"},children:"未命名"})})})},BlockTemplateDetails=()=>{var e,t;const o=useNavigateNoUpdate(),r=(0,import_react_router_dom.useParams)(),i=r==null?void 0:r.key,n=(0,import_react2.useContext)(SchemaComponentContext),a=(0,import_react2.useMemo)(()=>P(x({},n),{designable:!0}),[n]),{data:l,loading:c}=useRequest({resource:"uiSchemaTemplates",action:"get",params:{filterByTk:i}});return c?(0,import_jsx_runtime.jsx)(import_antd.Spin,{}):(0,import_jsx_runtime.jsxs)("div",{children:[(0,import_jsx_runtime.jsx)(import_pro_layout.PageHeader,{style:{backgroundColor:"white"},onBack:()=>{o("/admin/plugins/block-templates")},ghost:!1,title:(0,import_jsx_runtime.jsx)(EditableTitle,{filterByTk:i,title:(e=l==null?void 0:l.data)==null?void 0:e.name})}),(0,import_jsx_runtime.jsx)("div",{style:{margin:"var(--nb-spacing)"},children:(0,import_jsx_runtime.jsx)(SchemaComponentContext.Provider,{value:a,children:(0,import_jsx_runtime.jsx)(RemoteSchemaComponent,{uid:(t=l==null?void 0:l.data)==null?void 0:t.uid})})})]})};class SchemaSettings{constructor(t){k(this,"options"),k(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=P(x({},o),{name:r[r.length-1]});if(r.length===1){const l=this.items.findIndex(c=>c.name===t);l===-1?this.items.push(i):this.items[l]=i;return}const n=r.slice(0,-1).join("."),a=this.get(n);if(a){a.children||(a.children=[]);const l=t.replace(`${a.name}.`,""),c=a.children.findIndex(u=>u.name===l);c===-1?a.children.push(i):a.children[c]=i}}get(t){if(!t)return;const o=t.split(".");let r=this.items;for(let i=0;i<o.length;i++){const n=o[i];if(r=r.find(a=>a.name===n),!r||i===o.length-1)return r;if(r.children)r=r.children;else return}}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)}}}class SchemaSettingsManager{constructor(t=[],o){k(this,"schemaSettings",{}),k(this,"actionList",{}),this._schemaSettings=t,this.app=o,this.app=o,this.add(...t)}add(...t){t.forEach(o=>{this.schemaSettings[o.name]=o,Array.isArray(this.actionList[o.name])&&(this.actionList[o.name].forEach(r=>{o[r.type](r.itemName,r.data)}),this.actionList[o.name]=void 0)})}addItem(t,o,r){const i=this.get(t);i?i.add(o,r):(this.actionList[t]||(this.actionList[t]=[]),this.actionList[t].push({type:"add",itemName:o,data:r}))}get(t){return this.schemaSettings[t]}getAll(){return this.schemaSettings}has(t){return!!this.get(t)}remove(t){delete this.schemaSettings[t]}removeItem(t,o){const r=this.get(t);r?r.remove(o):(this.actionList[t]||(this.actionList[t]=[]),this.actionList[t].push({type:"remove",itemName:o}))}}const SchemaSettingItemContext=(0,import_react2.createContext)({});SchemaSettingItemContext.displayName="SchemaSettingItemContext";function useSchemaSettingsItem(){return(0,import_react2.useContext)(SchemaSettingItemContext)}const designerCss$4=({margin:e="-18px -16px",padding:t="18px 16px"}={})=>import_css.css`
|
|
237
|
+
${JSON.stringify(V,null,2)}`)},[u,c,l,i,r,j,t,a,n,g,o,_,b,A,S,y,h]),N=(0,import_react2.useCallback)(()=>{if(!_())return F==null?void 0:F(!1);t(withSearchParams(removeLastPopupPath(o.pathname)),{replace:!0}),removePopupLayerState(h),p!=null&&p.popupuid&&deletePopupContext(p.popupuid)},[_,F,t,o==null?void 0:o.pathname,h,p==null?void 0:p.popupuid]),M=(0,import_react2.useCallback)(T=>{const $=b(),B=j({tabKey:T,popupUid:p==null?void 0:p.popupuid,recordData:n==null?void 0:n.data,sourceId:$});let I=removeLastPopupPath(o.pathname);import_lodash.default.last(I)==="/"&&(I=I.slice(0,-1)),t(`${I}${B}`,{replace:!0})},[j,t,p==null?void 0:p.popupuid,n==null?void 0:n.data,o]),w=(0,import_react2.useCallback)((T,$)=>{$.__popup=T},[]),R=(0,import_react2.useCallback)(T=>T.__popup,[]);return{openPopup:D,closePopup:N,savePopupSchemaToSchema:w,getPopupSchemaFromSchema:R,context:C,visibleWithURL:d,setVisibleWithURL:m,popupParams:p,changeTab:M,getPopupContext:A}};function removeLastPopupPath(e){if(!e.includes("popups"))return e;const t=e.split("popups").slice(0,-1).join("popups");return t.endsWith("/")?t.slice(0,-1):t}function withSearchParams(e){return`${e}${window.location.search}`}function encodePathValue(e){const t=encodeURIComponent(e);return t==="popups"?window.btoa(e):t}function decodePathValue(e){return e===window.btoa("popups")?"popups":decodeURIComponent(e)}const ActionContext=(0,import_react2.createContext)({});ActionContext.displayName="ActionContext";const ActionContextProvider=import_react2.default.memo(e=>{const[t,o]=(0,import_react2.useState)(!1),{visible:r}=x(x({},e),e.value),{setSubmitted:i}=x(x({},e),e.value),n=useBlockServiceInActionButton(),{isSubPageClosedByPageMenu:a,reset:l}=useIsSubPageClosedByPageMenu((0,import_react.useFieldSchema)());(0,import_react2.useEffect)(()=>{q(void 0,null,function*(){r===!1&&n&&!n.loading&&(t||a())&&(l(),n.loading=!0,yield n.refreshAsync(),n.loading=!1,o(!1),i==null||i(!0))})},[r,n,i,a,t,l]);const c=(0,import_react2.useMemo)(()=>P(x(x({},e),e==null?void 0:e.value),{submitted:t,setSubmitted:o}),[e,t]);return(0,import_jsx_runtime.jsx)(ActionContext.Provider,{value:c,children:e.children})});ActionContextProvider.displayName="ActionContextProvider";const useBlockServiceInActionButton=()=>{var e,t;const{params:o}=useCurrentPopupContext(),r=(e=(0,import_react.useFieldSchema)())==null?void 0:e["x-uid"],i=useDataBlockRequest(),n=o==null?void 0:o.popupuid;return(0,import_react2.useEffect)(()=>{r&&n!==r&&storeBlockService(r,{service:i})},[n,r,i]),n===r&&((t=getBlockService(n))==null?void 0:t.service)||i},ActionContextNoRerender=import_react2.default.memo(e=>{const t=(0,import_react2.useContext)(ActionContext),o=(0,import_react2.useRef)({});return Object.assign(o.current,t),(0,import_jsx_runtime.jsx)(ActionContext.Provider,{value:o.current,children:e.children})});ActionContextNoRerender.displayName="ActionContextNoRerender";const isModalTitle=e=>(0,import_shared.isNum)(e)||(0,import_shared.isStr)(e)||(0,import_shared.isBool)(e)||import_react2.default.isValidElement(e),getModelProps=e=>isModalTitle(e)?{title:e}:e;function FormDialog(e,t,o,r){((0,import_shared.isFn)(t)||import_react2.default.isValidElement(t))&&(r=o,o=t,t="form-dialog");const i={host:document.createElement("div"),form:null,promise:null,openMiddlewares:[],confirmMiddlewares:[],cancelMiddlewares:[]},n=createPortalRoot(i.host,t),a=getModelProps(e),l=P(x({},a),{afterClose:()=>{var m;(m=a==null?void 0:a.afterClose)==null||m.call(a),n.unmount()}}),c=(0,import_react.observer)(()=>(0,import_jsx_runtime.jsx)(import_react2.Fragment,{children:(0,import_shared.isFn)(o)?o(i.form):o}),{displayName:"DialogContent"}),u=(m=!0,p,h)=>{const{form:g}=i;return g?(0,import_jsx_runtime.jsx)(GlobalThemeProvider,{theme:r,children:(0,import_jsx_runtime.jsx)(import_react.Observer,{children:()=>{const{token:_}=useToken$1();return(0,import_jsx_runtime.jsx)(import_antd.Modal,P(x({zIndex:_.zIndexPopupBase+1e3},l),{open:m,confirmLoading:g.submitting,onCancel:f=>{var v;((v=l==null?void 0:l.onCancel)==null?void 0:v.call(l,f))!==!1&&(h==null||h())},onOk:f=>q(this,null,function*(){var v;((v=l==null?void 0:l.onOk)==null?void 0:v.call(l,f))!==!1&&(p==null||p())}),children:(0,import_jsx_runtime.jsx)(import_react.FormProvider,{form:g,children:(0,import_jsx_runtime.jsx)(c,{})})}))}})}):null};document.body.appendChild(i.host);const d={forOpen:m=>((0,import_shared.isFn)(m)&&i.openMiddlewares.push(m),d),forConfirm:m=>((0,import_shared.isFn)(m)&&i.confirmMiddlewares.push(m),d),forCancel:m=>((0,import_shared.isFn)(m)&&i.cancelMiddlewares.push(m),d),open:m=>q(this,null,function*(){return i.promise||(i.promise=new Promise((p,h)=>q(this,null,function*(){try{m=yield loading(l.loadingText,()=>(0,import_shared.applyMiddleware)(m,i.openMiddlewares)),i.form=i.form||(0,import_core.createForm)(m)}catch(g){h(g)}n.render(()=>u(!0,()=>{var g;(g=i.form)==null||g.submit(()=>q(this,null,function*(){yield(0,import_shared.applyMiddleware)(i.form,i.confirmMiddlewares),(0,import_reactive.untracked)(()=>{var _;p(x({},(_=i.form)==null?void 0:_.values))}),d.close()})).catch(()=>{})},()=>q(this,null,function*(){yield loading(l.loadingText,()=>(0,import_shared.applyMiddleware)(i.form,i.cancelMiddlewares)),d.close()})))}))),i.promise}),close:()=>{i.host&&n.render(()=>u(!1))}};return d}const DialogFooter=e=>{const t=(0,import_react2.useRef)(null),[o,r]=(0,import_react2.useState)(),i=(0,import_react2.useRef)(),n=usePrefixCls("modal");return(0,import_react2.useLayoutEffect)(()=>{var a;const l=(a=t.current)==null?void 0:a.closest(`.${n}-content`);l&&(i.current||(i.current=l.querySelector(`.${n}-footer`),i.current||(i.current=document.createElement("div"),i.current.classList.add(`${n}-footer`),l.appendChild(i.current))),r(i.current))},[n]),i.current=o,(0,import_jsx_runtime.jsx)("div",{ref:t,style:{display:"none"},children:o&&(0,import_react_dom.createPortal)(e.children,o)})};FormDialog.Footer=DialogFooter;FormDialog.Portal=createPortalProvider("form-dialog");const AllDataBlocksContext=import_react2.default.createContext({getAllDataBlocks:()=>[],setAllDataBlocks:()=>{}}),AllDataBlocksProvider=e=>{const t=import_react2.default.useRef([]),o=import_react2.default.useCallback(n=>{typeof n=="function"?t.current=n(t.current):t.current=n},[]),r=import_react2.default.useCallback(()=>t.current,[]),i=import_react2.default.useMemo(()=>({getAllDataBlocks:r,setAllDataBlocks:o}),[r,o]);return(0,import_jsx_runtime.jsx)(AllDataBlocksContext.Provider,{value:i,children:e.children})},useAllDataBlocks=()=>{const e=import_react2.default.useContext(AllDataBlocksContext),t=(0,import_react2.useCallback)(()=>(e==null?void 0:e.getAllDataBlocks())||[],[e]),o=(0,import_react2.useCallback)(i=>{const n=e==null?void 0:e.getAllDataBlocks().find(a=>a.uid===i.uid);if(n){Object.assign(n,i);return}e==null||e.setAllDataBlocks(a=>[...a,i])},[e]),r=(0,import_react2.useCallback)(i=>{e!=null&&e.getAllDataBlocks().every(n=>n.uid!==i)||e==null||e.setAllDataBlocks(n=>n.filter(a=>a.uid!==i))},[e]);return e?{recordDataBlocks:o,removeDataBlock:r,getAllDataBlocks:t}:{recordDataBlocks:import_lodash.default.noop,removeDataBlock:import_lodash.default.noop,getAllDataBlocks:t}},WithForm$1=e=>{const t=e,{children:o,form:r}=t,i=W(t,["children","form"]),n=(0,import_react2.useContext)(import_react.SchemaOptionsContext),a=(0,import_react2.useContext)(import_react.SchemaExpressionScopeContext),l=x(x({},n==null?void 0:n.scope),a),c=x({},n==null?void 0:n.components);return(0,import_jsx_runtime.jsx)(import_react.FormProvider,P(x({},i),{form:r,children:(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{components:c,scope:l,children:o})}))},WithoutForm$1=e=>{const t=e,{children:o}=t,r=W(t,["children"]),i=(0,import_react2.useContext)(import_react.SchemaOptionsContext),n=(0,import_react2.useContext)(import_react.SchemaExpressionScopeContext),a=x(x({},i==null?void 0:i.scope),n),l=x({},i==null?void 0:i.components),c=(0,import_react2.useMemo)(()=>(0,import_core.createForm)(),[]);return(0,import_jsx_runtime.jsx)(import_react.FormProvider,P(x({},r),{form:c,children:(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{components:l,scope:a,children:o})}))},FormProvider=e=>e.form?(0,import_jsx_runtime.jsx)(WithForm$1,x({},e)):(0,import_jsx_runtime.jsx)(WithoutForm$1,x({},e)),CollectionHistoryContext=(0,import_react2.createContext)({historyCollections:[],refreshCH:()=>{}});CollectionHistoryContext.displayName="CollectionHistoryContext";const options$2={resource:"collectionsHistory",action:"list",params:{paginate:!1,appends:["fields"],filter:{},sort:["sort"]}},CollectionHistoryProvider=e=>{var t;const o=useAPIClient(),r=useIsAdminPage(),i=o.auth.getToken()||"",n=useRequest(options$2,{refreshDeps:[r,i],ready:!!(r&&i)}),a=(0,import_react2.useCallback)(()=>q(void 0,null,function*(){const{data:c}=yield o.request(options$2);return n.mutate(c),(c==null?void 0:c.data)||[]}),[n]),l=(0,import_react2.useMemo)(()=>{var c;return{historyCollections:(c=n.data)==null?void 0:c.data,refreshCH:a}},[a,(t=n.data)==null?void 0:t.data]);return(0,import_jsx_runtime.jsx)(CollectionHistoryContext.Provider,{value:l,children:e.children})},useHistoryCollectionsByNames=e=>{const{historyCollections:t}=(0,import_react2.useContext)(CollectionHistoryContext);return(t==null?void 0:t.filter(o=>e.includes(o.name)))||[]},useCollectionHistory=()=>(0,import_react2.useContext)(CollectionHistoryContext),CollectionProvider_deprecated=({children:e,allowNull:t,name:o,dataSource:r,collection:i})=>r?(0,import_jsx_runtime.jsx)(CollectionManagerProvider,{dataSource:r,children:(0,import_jsx_runtime.jsx)(CollectionProvider,{allowNull:t,name:o||i,children:e})}):(0,import_jsx_runtime.jsx)(CollectionProvider,{allowNull:t,name:o||i,children:e}),ResourceActionContext=(0,import_react2.createContext)(null);ResourceActionContext.displayName="ResourceActionContext";const ResourceContext=(0,import_react2.createContext)(null);ResourceContext.displayName="ResourceContext";const CollectionResourceActionProvider=e=>{var t,o,r;const{collection:i,request:n,uid:a,dragSort:l}=e,c=useAPIClient(),u=useRecord(),d=n==null?void 0:n.action,m={};d==="get"&&(m.filterByTk=u[i.targetKey||i.filterTargetKey||"id"]);const p=(n==null?void 0:n.params)||{},{appends:h,disableDefaultAppends:g}=p,_=W(p,["appends","disableDefaultAppends"]),f=((o=(t=i==null?void 0:i.fields)==null?void 0:t.filter)==null?void 0:o.call(t,j=>j.target).map(j=>j.name))||[],v=g?h||[]:[...f,...h||[]],C=v.length>0,b=useRequest(P(x({},n),{params:P(x(x(x({},m),_),C?{appends:v}:{}),{sort:l?[i.sortable===!0?"sort":i.sortable]:(r=n==null?void 0:n.params)==null?void 0:r.sort})}),{uid:a}),S=c.resource(n.resource),y=(0,import_react2.useMemo)(()=>P(x({},b),{defaultRequest:n,dragSort:l}),[l,n,b]),F=(0,import_react2.useMemo)(()=>({type:"collection",resource:S,collection:i}),[i,S]);return(0,import_jsx_runtime.jsx)(ResourceContext.Provider,{value:F,children:(0,import_jsx_runtime.jsx)(ResourceActionContext.Provider,{value:y,children:(0,import_jsx_runtime.jsx)(CollectionProvider_deprecated,{collection:i,children:e.children})})})},AssociationResourceActionProvider=e=>{var t,o;const{collection:r,association:i,request:n,uid:a,dragSort:l}=e,c=useAPIClient(),u=useRecord()[i.sourceKey],d=(n==null?void 0:n.params)||{},{appends:m,disableDefaultAppends:p}=d,h=W(d,["appends","disableDefaultAppends"]),g=((o=(t=r==null?void 0:r.fields)==null?void 0:t.filter)==null?void 0:o.call(t,y=>y.target).map(y=>y.name))||[],_=p?m||[]:[...g,...m||[]],f=_.length>0,v=useRequest(P(x({resourceOf:u},n),{params:x(x({},h),f?{appends:_}:{})}),{uid:a}),C=c.resource(n.resource,u),b=(0,import_react2.useMemo)(()=>({type:"association",resource:C,association:i,collection:r}),[i,r,C]),S=(0,import_react2.useMemo)(()=>P(x({},v),{defaultRequest:n,dragSort:l}),[l,n,v]);return(0,import_jsx_runtime.jsx)(ResourceContext.Provider,{value:b,children:(0,import_jsx_runtime.jsx)(ResourceActionContext.Provider,{value:S,children:(0,import_jsx_runtime.jsx)(CollectionProvider_deprecated,{collection:r,children:e.children})})})},ResourceActionProvider=e=>{var t;let{collection:o,request:r}=e;const{getCollection:i}=useCollectionManager_deprecated();return typeof o=="string"&&(o=i(o)),o?(t=r==null?void 0:r.resource)!=null&&t.includes(".")?(0,import_jsx_runtime.jsx)(AssociationResourceActionProvider,P(x({},e),{collection:o})):(0,import_jsx_runtime.jsx)(CollectionResourceActionProvider,P(x({},e),{collection:o})):null},useResourceActionContext=()=>(0,import_react2.useContext)(ResourceActionContext)||{},useDataSourceFromRAC=e=>{const t=(0,import_react2.useContext)(ResourceActionContext),o=(0,import_react.useField)();return(0,import_react2.useEffect)(()=>{t.loading||(e==null||e.onSuccess(t.data),o.componentProps.dragSort=!!t.dragSort)},[t.loading]),t},useResourceContext=()=>{const{type:e,resource:t,collection:o,association:r}=(0,import_react2.useContext)(ResourceContext)||{};return{type:e,resource:t,collection:o,association:r,targetKey:(r==null?void 0:r.targetKey)||(o==null?void 0:o.filterTargetKey)||(o==null?void 0:o.targetKey)||"id"}},collection$1={name:"fields",targetKey:"name",fields:[{type:"string",name:"type",interface:"input",uiSchema:{title:'{{ t("Storage type") }}',type:"string","x-component":"Select",enum:[{label:"String",value:"string"}],required:!0}},{type:"string",name:"interface",interface:"input",uiSchema:{title:'{{ t("Field interface") }}',type:"string","x-component":"Select",enum:"{{interfaces}}"}},{type:"string",name:"title",interface:"input",uiSchema:{title:'{{ t("Field display name") }}',type:"string","x-component":"Input",required:!0}},{type:"string",name:"name",interface:"input",uiSchema:{title:'{{ t("Field name") }}',type:"string","x-component":"Input"}}]},DataSourceContext_deprecated=(0,import_react2.createContext)(null);DataSourceContext_deprecated.displayName="DataSourceContext_deprecated";const useSelectedRowKeys=()=>{const e=(0,import_react2.useContext)(DataSourceContext_deprecated);return[e.selectedRowKeys,e.setSelectedRowKeys]},useDataSource_deprecated=e=>{const t=(0,import_react2.useContext)(DataSourceContext_deprecated);return useRequest(()=>Promise.resolve({data:t.dataSource}),P(x({},e),{refreshDeps:[JSON.stringify(t.dataSource)]}))},useCreateAction$1=()=>{const e=(0,import_react2.useContext)(DataSourceContext_deprecated),t=(0,import_react.useForm)(),{setVisible:o}=useActionContext();return{run(){return q(this,null,function*(){console.log("form.values",t.values);const r=e.dataSource||[];r.push((0,import_lodash.cloneDeep)(t.values)),e.setDataSource([...r]),o(!1),yield t.reset()})}}},useBulkDestroyAction$2=()=>{const e=(0,import_react2.useContext)(DataSourceContext_deprecated),{selectedRowKeys:t,setSelectedRowKeys:o}=e;return{run(){return q(this,null,function*(){const r=e.dataSource||[];e.setDataSource(r.filter((i,n)=>!t.includes(n))),o([])})}}},useUpdateAction$1=()=>{const e=useRecordIndex(),t=(0,import_react.useForm)(),{setVisible:o}=useActionContext(),r=(0,import_react2.useContext)(DataSourceContext_deprecated);return{run(){return q(this,null,function*(){const i=((r==null?void 0:r.dataSource)||[]).map((n,a)=>a===e?x({},t.values):n);r.setDataSource([...i]),o(!1)})}}},useDestroyAction$2=()=>{const e=useRecordIndex(),t=(0,import_react2.useContext)(DataSourceContext_deprecated);return{run(){return q(this,null,function*(){const o=t.dataSource||[];t.setDataSource(o.filter((r,i)=>e!==i))})}}},ds={useSelectedRowKeys,useDataSource_deprecated,useCreateAction:useCreateAction$1,useBulkDestroyAction:useBulkDestroyAction$2,useUpdateAction:useUpdateAction$1,useDestroyAction:useDestroyAction$2},SubFieldDataSourceProvider_deprecated=(0,import_react.observer)(e=>{const[t,o]=(0,import_react2.useState)([]),[r,i]=(0,import_react2.useState)([]),n=useRecord(),a=useAPIClient(),l=useRequest(()=>{var c;return n.interface==="subTable"?(c=n==null?void 0:n.children)!=null&&c.length?Promise.resolve({data:(n==null?void 0:n.children)||[]}):a.resource("fields").list({paginate:!1,sort:"sort",filter:{parentKey:n.key}}).then(u=>u==null?void 0:u.data):Promise.resolve({data:[]})},{onSuccess(c){console.log("dataSource1",c==null?void 0:c.data),i(c==null?void 0:c.data)}});return(0,import_jsx_runtime.jsx)(CollectionProvider_deprecated,{collection:collection$1,children:(0,import_jsx_runtime.jsx)(DataSourceContext_deprecated.Provider,{value:{rowKey:"name",service:l,dataSource:r,setDataSource:i,selectedRowKeys:t,setSelectedRowKeys:o},children:e.children})})},{displayName:"SubFieldDataSourceProvider_deprecated"}),DataSourceProvider_deprecated=(0,import_react.observer)(e=>{const{rowKey:t,collection:o,association:r}=e,[i,n]=(0,import_react2.useState)([]),[a,l]=(0,import_react2.useState)([]),c=useRecord(),u=useAPIClient(),{getCollection:d}=useCollectionManager_deprecated(),m=d(o),p=c==null?void 0:c[r.targetKey||"id"],h=useRequest(()=>{var g,_;return p?u.request({resource:`${r.collectionName}.${r.name}`,resourceOf:p,action:"list",params:{appends:(_=(g=m==null?void 0:m.fields)==null?void 0:g.filter(f=>f.target))==null?void 0:_.map(f=>f.name)}}).then(f=>f.data):Promise.resolve({data:(c==null?void 0:c[r.name])||[]})},{onSuccess(g){l(g==null?void 0:g.data)}});return(0,import_jsx_runtime.jsx)(CollectionProvider_deprecated,{collection:m,children:(0,import_jsx_runtime.jsx)(DataSourceContext_deprecated.Provider,{value:{rowKey:t,service:h,dataSource:a,setDataSource:l,selectedRowKeys:i,setSelectedRowKeys:n},children:e.children})})},{displayName:"DataSourceProvider_deprecated"}),components$6={SubFieldDataSourceProvider_deprecated,DataSourceProvider_deprecated,CollectionProvider_deprecated,ResourceActionProvider},CollectionManagerSchemaComponentProvider=e=>{const t=(0,import_react2.useMemo)(()=>({cm:P(x({},hooks),{useDataSourceFromRAC}),ds}),[]);return(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{scope:t,components:components$6,children:e.children})},CollectionCategoriesContext=(0,import_react2.createContext)({data:[],refresh:()=>{}});CollectionCategoriesContext.displayName="CollectionCategoriesContext";const CollectionManagerProvider_deprecated=e=>(0,import_jsx_runtime.jsx)(CollectionManagerProvider,{children:(0,import_jsx_runtime.jsx)(CollectionManagerSchemaComponentProvider,{children:e.children})}),RemoteCollectionManagerLoadingContext=(0,import_react2.createContext)(!1),useRemoteCollectionManagerLoading=()=>(0,import_react2.useContext)(RemoteCollectionManagerLoadingContext),RemoteCollectionManagerProvider=e=>{const t=useDataSourceManager(),{refreshCH:o}=useCollectionHistory(),r=useRequest(()=>t.reload().then(o));return(0,import_jsx_runtime.jsx)(RemoteCollectionManagerLoadingContext.Provider,{value:r.loading,children:(0,import_jsx_runtime.jsx)(CollectionManagerProvider_deprecated,x({},e))})},CollectionCategoriesProvider=e=>{var t;const{service:o,refreshCategory:r}=e,i=(0,import_react2.useMemo)(()=>{var n;return x({data:(n=o==null?void 0:o.data)==null?void 0:n.data,refresh:r},e)},[(t=o==null?void 0:o.data)==null?void 0:t.data,r,e]);return(0,import_jsx_runtime.jsx)(CollectionCategoriesContext.Provider,{value:i,children:e.children})},useRequestSchema$1=({uid:e,type:t="getJsonSchema",onSuccess:o})=>{const r={url:`/uiSchemas:${t}/${e}`},{data:i,loading:n}=useRequest(r,{refreshDeps:[e],onSuccess(a){o&&o(a)}});return{schema:i==null?void 0:i.data,loading:n}},defaultTransform=e=>e,RequestSchemaComponent=e=>{const{noForm:t,onlyRenderProperties:o,hidden:r,scope:i,uid:n,components:a,onSuccess:l,NotFoundPage:c,schemaTransform:u=defaultTransform,onPageNotFind:d}=e,m=o?"getProperties":"getJsonSchema",p=(0,import_react2.useMemo)(()=>(0,import_core.createForm)(),[n]),{schema:h,loading:g}=useRequestSchema$1({uid:n,type:m,onSuccess:b=>{l&&l(b)}}),_=useComponent(c),f=useRemoteCollectionManagerLoading(),v=(0,import_react.useFieldSchema)(),C=(0,import_react2.useMemo)(()=>u(h||{}),[h,u]);return f||g||r?(0,import_jsx_runtime.jsx)(import_antd.Spin,{style:{width:"100%",marginTop:20},delay:LOADING_DELAY}):!h||Object.keys(h).length===0?(d&&d(),_?(0,import_jsx_runtime.jsx)(_,{}):null):t?(0,import_jsx_runtime.jsx)(SchemaComponent,{components:a,scope:i,schema:C,parentSchema:v}):(0,import_jsx_runtime.jsx)(FormProvider,{form:p,children:(0,import_jsx_runtime.jsx)(SchemaComponent,{components:a,scope:i,schema:C,parentSchema:v})})},RemoteSchemaComponent=(0,import_react2.memo)(e=>e.uid?(0,import_jsx_runtime.jsx)(RequestSchemaComponent,x({},e)):null);RemoteSchemaComponent.displayName="RemoteSchemaComponent";const EditableTitle=e=>{const[t,o]=(0,import_react2.useState)(e.title),[r,i]=(0,import_react2.useState)(!1),{refresh:n}=useSchemaTemplateManager();useAPIClient();const{run:a}=useRequest({resource:"uiSchemaTemplates",action:"update",params:{filterByTk:e.filterByTk}},{manual:!0,debounceWait:500,onSuccess(){n()}});return(0,import_jsx_runtime.jsx)("div",{children:r?(0,import_jsx_runtime.jsx)(import_antd.Input,{defaultValue:t,size:"large",onBlur:()=>{i(!1)},onChange:l=>{o(l.target.value),a({filterByTk:e.filterByTk,values:{name:l.target.value}})}}):(0,import_jsx_runtime.jsx)("div",{onClick:()=>{i(!0)},children:t||(0,import_jsx_runtime.jsx)("span",{style:{color:"#bbb"},children:"未命名"})})})},BlockTemplateDetails=()=>{var e,t;const o=useNavigateNoUpdate(),r=(0,import_react_router_dom.useParams)(),i=r==null?void 0:r.key,n=(0,import_react2.useContext)(SchemaComponentContext),a=(0,import_react2.useMemo)(()=>P(x({},n),{designable:!0}),[n]),{data:l,loading:c}=useRequest({resource:"uiSchemaTemplates",action:"get",params:{filterByTk:i}});return c?(0,import_jsx_runtime.jsx)(import_antd.Spin,{}):(0,import_jsx_runtime.jsxs)("div",{children:[(0,import_jsx_runtime.jsx)(import_pro_layout.PageHeader,{style:{backgroundColor:"white"},onBack:()=>{o("/admin/plugins/block-templates")},ghost:!1,title:(0,import_jsx_runtime.jsx)(EditableTitle,{filterByTk:i,title:(e=l==null?void 0:l.data)==null?void 0:e.name})}),(0,import_jsx_runtime.jsx)("div",{style:{margin:"var(--nb-spacing)"},children:(0,import_jsx_runtime.jsx)(SchemaComponentContext.Provider,{value:a,children:(0,import_jsx_runtime.jsx)(RemoteSchemaComponent,{uid:(t=l==null?void 0:l.data)==null?void 0:t.uid})})})]})};class SchemaSettings{constructor(t){k(this,"options"),k(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=P(x({},o),{name:r[r.length-1]});if(r.length===1){const l=this.items.findIndex(c=>c.name===t);l===-1?this.items.push(i):this.items[l]=i;return}const n=r.slice(0,-1).join("."),a=this.get(n);if(a){a.children||(a.children=[]);const l=t.replace(`${a.name}.`,""),c=a.children.findIndex(u=>u.name===l);c===-1?a.children.push(i):a.children[c]=i}}get(t){if(!t)return;const o=t.split(".");let r=this.items;for(let i=0;i<o.length;i++){const n=o[i];if(r=r.find(a=>a.name===n),!r||i===o.length-1)return r;if(r.children)r=r.children;else return}}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)}}}class SchemaSettingsManager{constructor(t=[],o){k(this,"schemaSettings",{}),k(this,"actionList",{}),this._schemaSettings=t,this.app=o,this.app=o,this.add(...t)}add(...t){t.forEach(o=>{this.schemaSettings[o.name]=o,Array.isArray(this.actionList[o.name])&&(this.actionList[o.name].forEach(r=>{o[r.type](r.itemName,r.data)}),this.actionList[o.name]=void 0)})}addItem(t,o,r){const i=this.get(t);i?i.add(o,r):(this.actionList[t]||(this.actionList[t]=[]),this.actionList[t].push({type:"add",itemName:o,data:r}))}get(t){return this.schemaSettings[t]}getAll(){return this.schemaSettings}has(t){return!!this.get(t)}remove(t){delete this.schemaSettings[t]}removeItem(t,o){const r=this.get(t);r?r.remove(o):(this.actionList[t]||(this.actionList[t]=[]),this.actionList[t].push({type:"remove",itemName:o}))}}const SchemaSettingItemContext=(0,import_react2.createContext)({});SchemaSettingItemContext.displayName="SchemaSettingItemContext";function useSchemaSettingsItem(){return(0,import_react2.useContext)(SchemaSettingItemContext)}const designerCss$4=({margin:e="-18px -16px",padding:t="18px 16px"}={})=>import_css.css`
|
|
238
238
|
position: relative;
|
|
239
239
|
margin: ${e};
|
|
240
240
|
padding: ${t};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nocobase/client",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.41",
|
|
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.9.
|
|
30
|
-
"@nocobase/sdk": "1.9.
|
|
31
|
-
"@nocobase/utils": "1.9.
|
|
29
|
+
"@nocobase/evaluators": "1.9.41",
|
|
30
|
+
"@nocobase/sdk": "1.9.41",
|
|
31
|
+
"@nocobase/utils": "1.9.41",
|
|
32
32
|
"ahooks": "^3.7.2",
|
|
33
33
|
"antd": "5.24.2",
|
|
34
34
|
"antd-mobile": "^5.41.1",
|
|
@@ -85,5 +85,5 @@
|
|
|
85
85
|
"dumi": "2.2.14",
|
|
86
86
|
"dumi-theme-nocobase": "^0.2.28"
|
|
87
87
|
},
|
|
88
|
-
"gitHead": "
|
|
88
|
+
"gitHead": "a3af43f5c686e9114653393c2941dd1616bdc2b5"
|
|
89
89
|
}
|