@nocobase/client 1.9.0-alpha.1 → 1.9.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/es/index.mjs CHANGED
@@ -8739,7 +8739,7 @@ function addAppVersion(e, t) {
8739
8739
  addAppVersion((o = e.properties) == null ? void 0 : o[n], t);
8740
8740
  }), e;
8741
8741
  }
8742
- const name = "@nocobase/client", version = "1.9.0-alpha.1", license = "AGPL-3.0", main = "lib/index.js", module = "es/index.mjs", types = "es/index.d.ts", dependencies = {
8742
+ const name = "@nocobase/client", version = "1.9.0-beta.2", license = "AGPL-3.0", main = "lib/index.js", module = "es/index.mjs", types = "es/index.d.ts", dependencies = {
8743
8743
  "@ahooksjs/use-url-state": "3.5.1",
8744
8744
  "@ant-design/cssinjs": "^1.11.1",
8745
8745
  "@ant-design/icons": "^5.6.1",
@@ -8760,9 +8760,9 @@ const name = "@nocobase/client", version = "1.9.0-alpha.1", license = "AGPL-3.0"
8760
8760
  "@formily/reactive-react": "^2.2.27",
8761
8761
  "@formily/shared": "^2.2.27",
8762
8762
  "@formily/validator": "^2.2.27",
8763
- "@nocobase/evaluators": "1.9.0-alpha.1",
8764
- "@nocobase/sdk": "1.9.0-alpha.1",
8765
- "@nocobase/utils": "1.9.0-alpha.1",
8763
+ "@nocobase/evaluators": "1.9.0-beta.2",
8764
+ "@nocobase/sdk": "1.9.0-beta.2",
8765
+ "@nocobase/utils": "1.9.0-beta.2",
8766
8766
  ahooks: "^3.7.2",
8767
8767
  antd: "5.24.2",
8768
8768
  "antd-style": "3.7.1",
@@ -25026,14 +25026,14 @@ const LayoutContent = () => {
25026
25026
  Badge,
25027
25027
  P(x({}, t._route.options.badge), {
25028
25028
  count: o,
25029
- style: { marginLeft: 4, color: (c = (l = t._route.options) == null ? void 0 : l.badge) == null ? void 0 : c.textColor, maxWidth: "10em" },
25029
+ style: { marginLeft: 4, color: (c = (l = t._route.options) == null ? void 0 : l.badge) == null ? void 0 : c.textColor },
25030
25030
  dot: !1
25031
25031
  })
25032
25032
  )
25033
25033
  ] }) }) });
25034
25034
  }, WithTooltip = (e) => {
25035
25035
  const { inHeader: t } = useContext(HeaderContext);
25036
- return /* @__PURE__ */ jsx(RouteContext.Consumer, { children: (n) => n.collapsed && !e.hidden && !t ? /* @__PURE__ */ jsx(Tooltip, { title: e.title, placement: "right", children: /* @__PURE__ */ jsx(Badge, P(x({}, e.badgeProps), { style: { transform: "none", maxWidth: "10em" }, dot: !1, children: e.children })) }) : e.children });
25036
+ return /* @__PURE__ */ jsx(RouteContext.Consumer, { children: (n) => n.collapsed && !e.hidden && !t ? /* @__PURE__ */ jsx(Tooltip, { title: e.title, placement: "right", children: /* @__PURE__ */ jsx(Badge, P(x({}, e.badgeProps), { style: { transform: "none" }, dot: !1, children: e.children })) }) : e.children });
25037
25037
  }, MenuItem = (e) => {
25038
25038
  var m, h, g, f, C, b, S, y, v;
25039
25039
  const { item: t } = e, { parseURLAndParams: n } = useParseURLAndParams(), o = useRef(null), r = useLocation(), a = useEvaluatedExpression((h = (m = t._route.options) == null ? void 0 : m.badge) == null ? void 0 : h.count), i = useNavigateNoUpdate(), l = useRouterBasename();
@@ -25067,7 +25067,7 @@ const LayoutContent = () => {
25067
25067
  Badge,
25068
25068
  P(x({}, (f = t._route.options) == null ? void 0 : f.badge), {
25069
25069
  count: a,
25070
- style: { marginLeft: 4, color: (b = (C = t._route.options) == null ? void 0 : C.badge) == null ? void 0 : b.textColor, maxWidth: "10em" },
25070
+ style: { marginLeft: 4, color: (b = (C = t._route.options) == null ? void 0 : C.badge) == null ? void 0 : b.textColor },
25071
25071
  dot: !1
25072
25072
  })
25073
25073
  )
@@ -25087,7 +25087,7 @@ const LayoutContent = () => {
25087
25087
  a != null && /* @__PURE__ */ jsx(
25088
25088
  Badge,
25089
25089
  P(x({}, p), {
25090
- style: { marginLeft: 4, color: (v = (y = t._route.options) == null ? void 0 : y.badge) == null ? void 0 : v.textColor, maxWidth: "10em" },
25090
+ style: { marginLeft: 4, color: (v = (y = t._route.options) == null ? void 0 : y.badge) == null ? void 0 : v.textColor },
25091
25091
  dot: !1
25092
25092
  })
25093
25093
  )
@@ -25518,7 +25518,9 @@ const VisibleProvider = React.memo(({ children: e, popupuid: t }) => {
25518
25518
  return r() ? /* @__PURE__ */ jsx(TabsContextProvider, { activeKey: t == null ? void 0 : t.tab, onChange: o, children: e }) : /* @__PURE__ */ jsx(Fragment$1, { children: e });
25519
25519
  }, displayNone$1 = { display: "none" }, PagePopupsItemProvider = ({ params: e, context: t, currentLevel: n, children: o }) => {
25520
25520
  const r = x({}, getStoredPopupContext(e.popupuid));
25521
- return t || (t = _.omitBy(
25521
+ return useEffect(() => () => {
25522
+ removePopupLayerState(n);
25523
+ }, [n]), t || (t = _.omitBy(
25522
25524
  {
25523
25525
  dataSource: r.dataSource,
25524
25526
  collection: r.collection,
@@ -31292,7 +31294,7 @@ const DragHandler = (e) => {
31292
31294
  a.parseVariable(y, S, { appends: v }).then(({ value: R }) => {
31293
31295
  nextTick(() => {
31294
31296
  const T = transformVariableValue(R, { targetCollectionField: m.current });
31295
- _.isEmpty(T) && !_.isNumber(T) ? i.value = null : (i.value = T, i.componentProps = P(x({}, i.componentProps), {
31297
+ T == null ? i.value = null : (i.value = T, i.componentProps = P(x({}, i.componentProps), {
31296
31298
  readOnlySubmit: !0,
31297
31299
  filterTargetKey: (I == null ? void 0 : I.filterTargetKey) || "id"
31298
31300
  }));
@@ -42744,7 +42746,7 @@ const className1 = css`
42744
42746
  }, PageContent = memo((e) => /* @__PURE__ */ jsx(PopupRouteContextResetter, { children: /* @__PURE__ */ jsx(InternalPageContent, x({}, e)) })), TabBadge = (e) => {
42745
42747
  var n, o, r;
42746
42748
  const t = useEvaluatedExpression((o = (n = e.tabRoute.options) == null ? void 0 : n.badge) == null ? void 0 : o.count);
42747
- return t == null ? null : /* @__PURE__ */ jsx(Badge, P(x({}, (r = e.tabRoute.options) == null ? void 0 : r.badge), { count: t, style: x({ maxWidth: "10em" }, e.style), dot: !1, children: e.children }));
42749
+ return t == null ? null : /* @__PURE__ */ jsx(Badge, P(x({}, (r = e.tabRoute.options) == null ? void 0 : r.badge), { count: t, style: e.style, dot: !1, children: e.children }));
42748
42750
  }, NocoBasePageHeaderTabs = ({ className: e, activeKey: t }) => {
42749
42751
  const n = useFieldSchema(), { t: o } = useTranslation(), { t: r } = useRouteTranslation(), { token: a } = useToken$1(), i = useRouterBasename(), l = useNavigateNoUpdate(), c = useCallback(
42750
42752
  (I) => {
package/lib/index.js CHANGED
@@ -62,7 +62,7 @@
62
62
  width: 100%;
63
63
  }
64
64
  }
65
- `,items:l},n))})},SchemaInitializerSubMenu=e=>{var t;const o=e,{children:r,items:i,title:n,name:a,onOpenChange:l,icon:c}=o,u=W(o,["children","items","title","name","onOpenChange","icon"]),m=useCompile(),d=useSchemaInitializerItem(),p=(0,import_react2.useMemo)(()=>a||(d==null?void 0:d.name)||(0,import_shared.uid)(),[a,d]),h=(t=i||r)==null?void 0:t.filter(f=>f.useVisible?f.useVisible():!0),g=useSchemaInitializerMenuItems(h,a),_=(0,import_react2.useMemo)(()=>[P(x({},u),{key:p,label:m(n),icon:typeof c=="string"?(0,import_jsx_runtime.jsx)(import_icons.default,{type:c}):c,children:g})],[g,m,c,p,u,n]);return(0,import_jsx_runtime.jsx)(SchemaInitializerMenu,{onOpenChange:l,items:_})},SchemaInitializerSubMenuInternal=()=>{const e=useSchemaInitializerItem();return(0,import_jsx_runtime.jsx)(SchemaInitializerSubMenu,x({},e))},useAriaAttributeOfMenuItem=()=>{const{isInMenu:e}=useSchemaInitializerSubMenuContext();return{attribute:(0,import_react2.useMemo)(()=>e?{}:{role:"menuitem"},[e])}},{Paragraph:Paragraph$1,Text:Text$2}=import_antd.Typography,ErrorFallbackModal=e=>{const[t,o]=import_react2.default.useState(!1),r=(0,import_jsx_runtime.jsx)(Paragraph$1,{style:{display:"flex",marginBottom:0},copyable:{text:e.error.message},children:(0,import_jsx_runtime.jsxs)(Text$2,{type:"danger",style:{whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden",display:"inline-block",maxWidth:"200px"},children:["Error: ",e.error.message]})});return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)("div",{onMouseOver:()=>o(!0),children:e.children||r}),(0,import_jsx_runtime.jsx)(import_antd.Modal,{zIndex:1e4,open:t,footer:null,onCancel:()=>o(!1),width:"60%",children:(0,import_jsx_runtime.jsx)(ErrorFallback,x({},e))})]})},{Paragraph,Text:Text$1,Link}=import_antd.Typography,useDownloadLogs=(e,t={})=>{const o=useLocationNoUpdate(),[r,i]=import_react2.default.useState(!1),n=useAPIClient();return{loading:r,download:()=>z(void 0,null,function*(){i(!0);try{const a=yield n.request({url:"logger:collect",method:"post",responseType:"blob",data:x({error:{message:e.message,stack:e.stack},location:o},t)}),l=window.URL.createObjectURL(new Blob([a.data],{type:"application/gzip"})),c=document.createElement("a");c.setAttribute("href",l),c.setAttribute("download","logs.tar.gz"),c.click(),c.remove()}catch(a){console.log(a)}i(!1)})}},ErrorFallback=({error:e})=>{const t=(0,import_react.useFieldSchema)(),{t:o}=(0,import_react_i18next.useTranslation)(),{loading:r,download:i}=useDownloadLogs(e,{schema:t}),n=(0,import_jsx_runtime.jsxs)(import_react_i18next.Trans,{children:["This is likely a NocoBase internals bug. Please open an issue at ",(0,import_jsx_runtime.jsx)(Link,{href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:"here"})]});return(0,import_jsx_runtime.jsx)("div",{style:{backgroundColor:"white"},children:(0,import_jsx_runtime.jsx)(import_antd.Result,{style:{maxWidth:"60vw",margin:"auto"},status:"error",title:o("Render Failed"),subTitle:n,extra:[(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"primary",href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:o("Feedback")},"feedback"),(0,import_jsx_runtime.jsx)(import_antd.Button,{loading:r,onClick:i,children:o("Download logs")},"log")],children:(0,import_jsx_runtime.jsx)(Paragraph,{copyable:{text:e.stack},children:(0,import_jsx_runtime.jsx)(Text$1,{type:"danger",style:{whiteSpace:"pre-line",textAlign:"center"},children:e.stack})})})})};ErrorFallback.Modal=ErrorFallbackModal;const AppNotFound=()=>{const e=(0,import_react_router_dom.useNavigate)(),{t}=(0,import_react_i18next.useTranslation)();return(0,import_jsx_runtime.jsx)(import_antd.Result,{status:"404",title:"404",subTitle:t("Sorry, the page you visited does not exist."),extra:(0,import_jsx_runtime.jsx)(import_antd.Button,{onClick:()=>e("/",{replace:!0}),type:"primary",children:"Back Home"})})};class Plugin{constructor(t,o){this.options=t,this.app=o,this.options=t,this.app=o}get pluginManager(){return this.app.pluginManager}get pm(){return this.app.pm}get router(){return this.app.router}get pluginSettingsManager(){return this.app.pluginSettingsManager}get schemaInitializerManager(){return this.app.schemaInitializerManager}get schemaSettingsManager(){return this.app.schemaSettingsManager}get dataSourceManager(){return this.app.dataSourceManager}afterAdd(){return z(this,null,function*(){})}beforeLoad(){return z(this,null,function*(){})}load(){return z(this,null,function*(){})}t(t,o={}){var r;return this.app.i18n.t(t,x({ns:(r=this.options)==null?void 0:r.packageName},o))}}const titleWrapperStyle={display:"flex",alignItems:"center",gap:4},withTooltipComponent=e=>t=>{const{tooltip:o}=t;return o?(0,import_jsx_runtime.jsxs)("div",{style:titleWrapperStyle,children:[(0,import_jsx_runtime.jsx)(e,x({},t)),(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:o,children:(0,import_jsx_runtime.jsx)(import_icons.QuestionCircleOutlined,{style:{zIndex:1}})})]}):(0,import_jsx_runtime.jsx)(e,x({},t))};class SchemaInitializer{constructor(t){A(this,"options"),A(this,"name"),this.options=Object.assign({items:[]},t),this.name=t.name}get items(){return this.options.items}add(t,o){const r=t.split("."),i=r[r.length-1],n=P(x({},o),{name:i}),a=(u,m)=>{const d=this.items.findIndex(p=>p.name===u);d===-1?this.items.push(m):this.items[d]=m};if(r.length===1){a(i,n);return}const l=r.slice(0,-1).join("."),c=this.get(l);if(c){c.children||(c.children=[]);const u=t.replace(`${c.name}.`,""),m=c.children.findIndex(d=>d.name===u);m===-1?c.children.push(n):c.children[m]=n}else a(i,n)}get(t){var o;if(!t)return;const r=t.split(".");let i={children:this.items};for(let n=0;n<r.length;n++){const a=r[n],l=(o=i.children)==null?void 0:o.find(c=>c.name===a);if(l&&(i=l),n===r.length-1)return l}}remove(t){const o=t.split(".");if(o.length===1){const i=this.items.findIndex(n=>n.name===o[0]);i!==-1&&this.items.splice(i,1);return}const r=this.get(o.slice(0,-1).join("."));if(r&&r.children){const i=o[o.length-1],n=r.children.findIndex(a=>a.name===i);n!==-1&&r.children.splice(n,1)}}}var NocoBaseDesktopRouteType=(e=>(e.group="group",e.page="page",e.link="link",e.tabs="tabs",e))(NocoBaseDesktopRouteType||{});const useStyles$h=genStyleHook("nb-menu-item",e=>{const{componentCls:t}=e;return{[t]:{paddingLeft:`${e.padding}px !important`,paddingRight:`${e.padding}px !important`}}}),useAttach=e=>{const t=(0,import_react2.useRef)(null);return(0,import_react2.useEffect)(()=>(t.current&&e!==t.current&&t.current.onUnmount(),t.current=e,e.onMount(),()=>{e.onUnmount()}),[e]),e},compileCache={},hasVariable=e=>/{{.*?}}/g.test(e),useCompile=({noCache:e}={noCache:!1})=>{const t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),o=(0,import_react2.useContext)(import_react.SchemaExpressionScopeContext);return(r,i)=>{let n=!1,a;if(typeof r=="string"&&r.startsWith("{{")&&(n=!0,a=r),r&&typeof r=="object"&&!(0,import_react2.isValidElement)(r)){try{a=JSON.stringify(r)}catch(l){return console.warn("Failed to stringify:",l),r}if(compileCache[a])return compileCache[a];n=hasVariable(a)}if(Array.isArray(r)){try{a=JSON.stringify(r)}catch(l){return console.warn("Failed to stringify:",l),r}if(compileCache[a])return compileCache[a];n=hasVariable(a)}if(n){const l=x(x(x({},t.scope),o),i);if(!a)return import_react.Schema.compile(r,l);try{return e?import_react.Schema.compile(r,l):(compileCache[a]=compileCache[a]||import_react.Schema.compile(r,l),compileCache[a])}catch(c){return console.log("useCompile error",r,c),import_react.Schema.compile(r,l)}}return r}},useComponent=(e,t)=>{const{components:o}=(0,import_react2.useContext)(import_react.SchemaOptionsContext);return e?typeof e!="string"?e:(0,import_lodash.get)(o,e)||t:t},LAZY_COMPONENT_KEY=Symbol("LAZY_COMPONENT_KEY");function lazy(e,...t){if(t.length===0){const o=(0,import_react2.lazy)(()=>e().then(i=>{const n=i.default;return r[LAZY_COMPONENT_KEY]=n,{default:n}})),r=i=>(0,import_jsx_runtime.jsx)(import_react2.default.Suspense,{fallback:(0,import_jsx_runtime.jsx)(import_antd.Spin,{}),children:(0,import_jsx_runtime.jsx)(o,x({},i))});return r}return t.reduce((o,r)=>{const i=(0,import_react2.lazy)(()=>e().then(n=>{const a=(0,import_lodash.get)(n,r);return o[r][LAZY_COMPONENT_KEY]=a,{default:a}}));return o[r]=n=>(0,import_jsx_runtime.jsx)(import_react2.default.Suspense,{fallback:(0,import_jsx_runtime.jsx)(import_antd.Spin,{}),children:(0,import_jsx_runtime.jsx)(i,x({},n))}),o},{})}function useLazy(e,t){const o=typeof t=="function"?t:i=>i[t],r=(0,import_react_imported_component.loadableResource)(e);if(!r.payload)throw new Promise((i,n)=>{r.loadIfNeeded(),r.resolution.then(i).catch(n)});return o(r.payload)}function addAppVersion(e,t){if(e)return e["x-app-version"]||(e["x-app-version"]=t),Object.keys(e.properties||{}).forEach(o=>{var r;addAppVersion((r=e.properties)==null?void 0:r[o],t)}),e}const name="@nocobase/client",version="1.9.0-alpha.1",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.0-alpha.1","@nocobase/sdk":"1.9.0-alpha.1","@nocobase/utils":"1.9.0-alpha.1",ahooks:"^3.7.2",antd:"5.24.2","antd-style":"3.7.1",axios:"^1.7.0","bignumber.js":"^9.1.2",classnames:"^2.3.1",cronstrue:"^2.11.0","file-saver":"^2.0.5",filesize:"9.0.11",flat:"^5.0.2",i18next:"^22.4.9","i18next-http-backend":"^2.1.1",ignore:"^5.2.0",json5:"^2.2.3",lodash:"4.17.21","lru-cache":"6.0.0","markdown-it":"14.1.0","markdown-it-highlightjs":"3.3.1",mathjs:"^10.6.0",mermaid:"9.4.3",mime:"^4.0.4","mime-match":"^1.0.2","react-beautiful-dnd":"^13.1.0","react-drag-listview":"^0.1.9","react-error-boundary":"^4.0.10","react-helmet":"^6.1.0","react-hotkeys-hook":"^3.4.7","react-i18next":"^11.15.1","react-iframe":"~1.8.5","react-image-lightbox":"^5.1.4","react-intersection-observer":"9.14.0","react-js-cron":"^3.1.0","react-quill":"^2.0.0","react-router-dom":"^6.11.2","react-to-print":"^2.14.7","sanitize-html":"2.13.0","use-deep-compare-effect":"^1.8.1"},peerDependencies={react:">=18.0.0","react-dom":">=18.0.0","react-is":">=18.0.0"},devDependencies={"@testing-library/react":"^14.0.0","@types/markdown-it":"14.1.1","@types/markdown-it-highlightjs":"3.3.1","@types/react-big-calendar":"^1.6.4","axios-mock-adapter":"^1.20.0",dumi:"2.2.14","dumi-theme-nocobase":"^0.2.28","html5-qrcode":"^2.3.8"},clientPkg={name,version,license,main,module:module$1,types,dependencies,peerDependencies,devDependencies};function createDesignable(e){return new Designable(e)}const generateUid=e=>{e&&(e["x-uid"]||(e["x-uid"]=(0,import_shared.uid)()),Object.keys(e.properties||{}).forEach(t=>{generateUid(e.properties[t])}))},defaultWrap=e=>e,matchSchema=(e,t)=>{if(!(!e||!t)){for(const o in t)if(Object.prototype.hasOwnProperty.call(t,o)&&t[o]!==(e==null?void 0:e[o]))return!1;return!0}},splitWrapSchema=(e,t)=>{if(e["x-uid"]&&e["x-uid"]===t["x-uid"])return[null,e.toJSON()];const o=e.toJSON(),r=P(x({},o),{properties:{}});let i=null;const n=(a,l)=>{Object.keys(a||{}).forEach(c=>{const u=a[c];if(u["x-uid"]===t["x-uid"]){i=a[c];return}else l.properties[c]=P(x({},u),{properties:{}}),n(u==null?void 0:u.properties,l.properties[c])})};return n(o.properties,r),[r,i]},translate=e=>e;class Designable{constructor(t){A(this,"current"),A(this,"options"),A(this,"appVersion"),A(this,"events",{}),this.options=t,this.current=t.current,this.appVersion=t.appVersion}get model(){return this.options.model}get query(){return this.options.query}loadAPIClientEvents(){const{api:t,t:o=translate}=this.options;if(!t)return;const r=i=>{if(!i)return[];const n=Object.values(i.properties).length,a=[];return i.mapProperties(l=>{l["x-component-props"]=l["x-component-props"]||{},l["x-component-props"].width=100/n,l["x-uid"]&&a.push({"x-uid":l["x-uid"],"x-component-props":l["x-component-props"]})}),i["x-uid"]&&a.length?a:[]};this.on("insertAdjacent",i=>z(this,[i],function*({onSuccess:n,current:a,position:l,schema:c,wrap:u,wrapped:m,removed:d}){var p;let h=[];if((m==null?void 0:m["x-component"])==="Grid.Col"&&(h=h.concat(r(m.parent))),(d==null?void 0:d["x-component"])==="Grid.Col"&&(h=h.concat(r(d.parent))),this.refresh(),!a["x-uid"])return;const g=yield t.request({url:`/uiSchemas:insertAdjacent/${a["x-uid"]}?position=${l}`,method:"post",data:{schema:addAppVersion(c,this.appVersion),wrap:u}});h.length&&(yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:h})),d!=null&&d["x-uid"]&&(yield t.request({url:`/uiSchemas:remove/${d["x-uid"]}`,method:"post"})),n==null||n((p=g==null?void 0:g.data)==null?void 0:p.data),import_antd.message.success(o("Saved successfully"),.2)})),this.on("patch",i=>z(this,[i],function*({schema:n}){this.refresh(),n!=null&&n["x-uid"]&&(yield t.request({url:"/uiSchemas:patch",method:"post",data:x({},n)}),import_antd.message.success(o("Saved successfully"),.2))})),this.on("initializeActionContext",i=>z(this,[i],function*({schema:n}){n!=null&&n["x-uid"]&&(yield t.request({url:"/uiSchemas:initializeActionContext",method:"post",data:x({},n)}))})),this.on("batchPatch",i=>z(this,[i],function*({schemas:n}){this.refresh(),yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:n}),import_antd.message.success(o("Saved successfully"),.2)})),this.on("remove",i=>z(this,[i],function*({removed:n}){let a=[];(n==null?void 0:n["x-component"])==="Grid.Col"&&(a=r(n.parent)),this.refresh(),n!=null&&n["x-uid"]&&(yield t.request({url:`/uiSchemas:remove/${n["x-uid"]}`,method:"post"}),a.length&&(yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:a})),import_antd.message.success(o("Saved successfully"),.2))}))}prepareProperty(t){t.type||(t.type="void"),t.name||(t.name=(0,import_shared.uid)()),this.current["x-uid"]&&generateUid(t)}on(t,o){this.events[t]||(this.events[t]=[]),this.events[t].push(o)}emit(t,...o){return z(this,null,function*(){if(!this.events[t])return;const[r,...i]=o;return Promise.all(this.events[t].map(n=>n.bind(this)(x({current:this.current},r),...i)))})}parentsIn(t){if(!t||!import_react.Schema.isSchemaInstance(t))return!1;let o=this.current;for(;o!=null&&o.parent;){if(o.parent===t)return!0;o=o.parent}return!1}refresh(t){const{refresh:o}=this.options;return o==null?void 0:o(t)}deepMerge(t){const o={title:"title",description:"description",default:"initialValue",readOnly:"readOnly",writeOnly:"editable",enum:"dataSource","x-pattern":"pattern","x-display":"display","x-validator":"validator","x-decorator":"decorator","x-component":"component","x-reactions":"reactions","x-content":"content","x-visible":"visible","x-hidden":"hidden","x-disabled":"disabled","x-editable":"editable","x-read-only":"readOnly"},r={"x-decorator-props":"decoratorProps","x-component-props":"componentProps","x-data":"data"};Object.keys(t).forEach(i=>{o[i]?(this.current[i]=t[i],this.updateModel(o[i],t[i])):r[i]?Object.keys(t[i]).forEach(n=>{(0,import_set.default)(this.current,[i,n],t[i][n]),this.updateModel([r[i],n],t[i][n])}):this.current[i]=t[i]}),this.emit("patch",{schema:t})}getSchemaAttribute(t,o){return(0,import_get.default)(this.current,t,o)}shallowMerge(t){const o={title:"title",description:"description",default:"initialValue",readOnly:"readOnly",writeOnly:"editable",enum:"dataSource","x-pattern":"pattern","x-display":"display","x-validator":"validator","x-decorator":"decorator","x-component":"component","x-reactions":"reactions","x-content":"content","x-visible":"visible","x-hidden":"hidden","x-disabled":"disabled","x-editable":"editable","x-read-only":"readOnly","x-decorator-props":"decoratorProps","x-component-props":"componentProps","x-data":"data"};Object.keys(t).forEach(r=>{this.current[r]=t[r],o[r]&&this.updateModel(o[r],t[r])}),this.emit("patch",{schema:t})}updateModel(t,o){const r=i=>{(0,import_set.default)(i,t,o)};this.model&&r(this.model),this.query&&this.query.take(r)}insertAdjacent(t,o,r={}){switch(t){case"beforeBegin":return this.insertBeforeBegin(o,r);case"afterBegin":return this.insertAfterBegin(o,r);case"beforeEnd":return this.insertBeforeEnd(o,r);case"afterEnd":return this.insertAfterEnd(o,r)}}recursiveRemoveIfNoChildren(t,o){if(!t)return;let r=t,i;const n=o==null?void 0:o.breakRemoveOn;for(;r;){if(typeof n=="function"){if(n(r))break}else if(matchSchema(r,n))break;if(Object.keys(r.properties||{}).length>0)break;r.parent&&(i=r.parent.removeProperty(r.name)),r=r.parent}return i}remove(t,o={}){const{breakRemoveOn:r,removeParentsIfNoChildren:i}=o,n=t||this.current;let a=n.parent.removeProperty(n.name);if(i){const l=this.recursiveRemoveIfNoChildren(n.parent,{breakRemoveOn:r});l&&(a=l)}return this.emit("remove",{removed:a})}removeWithoutEmit(t,o={}){const{breakRemoveOn:r,removeParentsIfNoChildren:i}=o,n=t||this.current;let a=n.parent.removeProperty(n.name);if(i){const l=this.recursiveRemoveIfNoChildren(n.parent,{breakRemoveOn:r});l&&(a=l)}return a}insertBeforeBeginOrAfterEnd(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current)||!import_react.Schema.isSchemaInstance(t)||this.current.parent!==t.parent)return;let r=0,i=0;return this.current.parent.mapProperties((n,a,l)=>{this.current.name===a&&(i=l),t.name===a&&(r=l)}),r>i?this.insertBeforeBegin(t,o):this.insertAfterEnd(t,o)}insertBeforeBegin(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;const r={onSuccess:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren:a}=o;if(import_react.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),a&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n}))}else t&&(t=(0,import_cloneDeep.default)(t));const l={};let c=!1,u=0,m=0;this.current.parent.mapProperties((_,f)=>{f===this.current.name&&(m=u,c=!0,++u),_["x-index"]=u,++u,c&&(l[f]=_,this.current.parent.removeProperty(f))}),this.prepareProperty(t);const d=i(t),p=this.current.parent.addProperty(d.name||(0,import_shared.uid)(),d);p["x-index"]=m,p.parent=this.current.parent,this.current.parent.setProperties(l);const[h,g]=splitWrapSchema(p,t);this.emit("insertAdjacent",x({position:"beforeBegin",schema:g,wrapped:d,wrap:h},r))}insertAfterBegin(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;const r={onSuccess:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren:a}=o;if(import_react.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),a&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n}))}else t&&(t=(0,import_cloneDeep.default)(t));const l={};let c=1;this.current.mapProperties((h,g)=>{h["x-index"]=c,++c,l[g]=h}),this.current.properties={},this.prepareProperty(t);const u=i(t),m=this.current.addProperty(u.name||(0,import_shared.uid)(),u);m["x-index"]=0,m.parent=this.current,this.current.setProperties(l);const[d,p]=splitWrapSchema(m,t);this.emit("insertAdjacent",x({position:"afterBegin",schema:p,wrap:d,wrapped:u},r))}insertBeforeEnd(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;delete t["x-index"];const r={onSuccess:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren:a}=o;if(import_react.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),a&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n}))}else t&&(t=(0,import_cloneDeep.default)(t));this.prepareProperty(t);const l=i(t),c=this.current.addProperty(l.name||(0,import_shared.uid)(),l);c.parent=this.current;const[u,m]=splitWrapSchema(c,t);return this.emit("insertAdjacent",x({position:"beforeEnd",schema:m,wrap:u,wrapped:l},r))}insertAfterEnd(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;const r={onSuccess:o==null?void 0:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren:a}=o;let l=0,c=0,u=!1;const m={};if(this.current.parent.mapProperties((_,f)=>{_["x-index"]=l,f===this.current.name&&(++l,c=l,u=!0),++l,u&&f!==this.current.name&&(m[f]=_,this.current.parent.removeProperty(f))}),import_react.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),a&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n})),t.parent=null}else t&&(t=(0,import_cloneDeep.default)(t));this.prepareProperty(t);const d=i(t),p=this.current.parent.addProperty(d.name||(0,import_shared.uid)(),d);p.parent=this.current.parent,p["x-index"]=c,this.current.parent.setProperties(m);const[h,g]=splitWrapSchema(p,t);this.emit("insertAdjacent",x({position:"afterEnd",schema:g,wrap:h,wrapped:d},r))}}function useFindComponent(){const e=(0,import_react2.useContext)(import_react.SchemaOptionsContext),t=(0,import_react2.useMemo)(()=>(e==null?void 0:e.components)||{},[e]);return o=>{if(!o)return null;if(typeof o!="string")return o;const r=(0,import_get.default)(t,o);return r||console.error(`[nocobase]: Component "${o}" not found`),r}}function useDesignable(){const{designable:e,setDesignable:t,refresh:o,reset:r}=(0,import_react2.useContext)(SchemaComponentContext),i=(0,import_react2.useContext)(import_react.SchemaOptionsContext),n=(0,import_react2.useMemo)(()=>(i==null?void 0:i.components)||{},[i]),a=(0,import_react2.useMemo)(()=>()=>(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{}),[]),l=(0,import_ahooks.useUpdate)(),c=useRefreshFieldSchema(),u=useRefreshComponent(),m=(0,import_react2.useCallback)(v=>{o==null||o(),l(),c==null||c(v),u==null||u()},[o,l,c,u]),d=(0,import_react.useField)(),p=(0,import_react.useFieldSchema)(),h=useAPIClient(),{t:g}=(0,import_react_i18next.useTranslation)(),_=(0,import_react2.useMemo)(()=>createDesignable({t:g,api:h,refresh:m,current:p,model:d,appVersion:clientPkg.version}),[g,h,m,p,d]);(0,import_react2.useEffect)(()=>{_.loadAPIClientEvents()},[_]);const{isMobileLayout:f}=useMobileLayout();return{dn:_,designable:f?!1:e,reset:r,refresh:m,setDesignable:t,DesignableBar:a,findComponent:(0,import_react2.useCallback)(v=>{var b;if(!v)return null;if(typeof v!="string")return v;const S=(0,import_get.default)(n,v);return(b=S==null?void 0:S[LAZY_COMPONENT_KEY])!=null?b:S},[import_get.default]),on:_.on.bind(_),patch:(0,import_react2.useCallback)((v,b)=>{const S=C=>{Object.keys(C).forEach(y=>{const F=C[y];y==="title"&&(d.title=F,p.title=F),y==="x-decorator-props"&&(d.decoratorProps||(d.decoratorProps={}),p["x-decorator-props"]||(p["x-decorator-props"]={}),Object.keys(F).forEach(j=>{d.decoratorProps[j]=F[j],p["x-decorator-props"][j]=F[j]})),y==="x-component-props"&&(d.componentProps||(d.componentProps={}),p["x-component-props"]||(p["x-component-props"]={}),Object.keys(F).forEach(j=>{d.componentProps[j]=F[j],p["x-component-props"][j]=F[j]}))})};if(typeof v=="string"){const C={};return(0,import_set.default)(C,v,b),S(C)}S(v),m()},[_]),shallowMerge:(0,import_react2.useCallback)(v=>{_.shallowMerge(v)},[_]),deepMerge:(0,import_react2.useCallback)(v=>{_.deepMerge(v)},[_]),remove:(0,import_react2.useCallback)((v,b)=>{_.remove(v,b)},[_]),insertAdjacent:(0,import_react2.useCallback)((v,b,S)=>{_.insertAdjacent(v,b,S)},[_]),insertBeforeBegin:(0,import_react2.useCallback)(v=>{_.insertBeforeBegin(v)},[_]),insertAfterBegin:(0,import_react2.useCallback)(v=>{_.insertAfterBegin(v)},[_]),insertBeforeEnd:(0,import_react2.useCallback)(v=>{_.insertBeforeEnd(v)},[_]),insertAfterEnd:(0,import_react2.useCallback)(v=>{_.insertAfterEnd(v)},[_])}}const DefaultSchemaToolbar=()=>null;DefaultSchemaToolbar.isNullComponent=!0;const useDesigner=()=>{const{designable:e}=useDesignable(),t=(0,import_react.useFieldSchema)(),o=(0,import_react2.useMemo)(()=>t["x-designer"]||t["x-toolbar"]?t["x-designer"]||t["x-toolbar"]:t["x-settings"]?SchemaToolbar:DefaultSchemaToolbar,[t]),r=useComponent(o);return e&&r||DefaultSchemaToolbar},useFieldProps$1=e=>{const t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),o=(0,import_react2.useContext)(import_react.SchemaExpressionScopeContext),r=(0,import_react2.useRef)();return r.current=o,e.toFieldProps(P(x({},t),{get scope(){return x(x({},t.scope),r.current)}}))};function useSchemaComponentContext(){return(0,import_react2.useContext)(SchemaComponentContext)}const useFieldComponentOptions=()=>{var e;const{getCollectionJoinField:t,getCollection:o}=useCollectionManager_deprecated(),r=(0,import_react.useFieldSchema)(),{getField:i}=useCollection_deprecated(),n=i(r.name)||t(r["x-collection-field"]),{t:a}=(0,import_react_i18next.useTranslation)(),{label:l}=((e=r["x-component-props"])==null?void 0:e.fieldNames)||{};return(0,import_react2.useMemo)(()=>{if(!n||!(n!=null&&n.interface)||!["o2o","oho","obo","o2m","linkTo","m2o","m2m"].includes(n.interface))return;const c=o(n.target);if((c==null?void 0:c.template)==="file")return[{label:a("Record picker"),value:"CollectionField"},{label:a("Select"),value:"AssociationSelect"}];switch(n.interface){case"o2m":return[{label:a("Record picker"),value:"CollectionField"},{label:a("Subtable"),value:"TableField"},{label:a("Select"),value:"AssociationSelect"}];case"m2o":case"m2m":case"linkTo":return[{label:a("Record picker"),value:"CollectionField"},{label:a("Select"),value:"AssociationSelect"}];default:return[{label:a("Record picker"),value:"CollectionField"},{label:a("Subform"),value:"FormField"},{label:a("Select"),value:"AssociationSelect"}]}},[a,n==null?void 0:n.interface,l])},useFieldTitle=()=>{var e;const t=(0,import_react.useField)(),o=(0,import_react.useFieldSchema)(),r=useCollection(),i=useCollectionManager(),n=(r==null?void 0:r.getField(o.name))||(i==null?void 0:i.getCollectionField(o["x-collection-field"])),a=useCompile();(0,import_react2.useEffect)(()=>{var l;t!=null&&t.title||(t.title=a((l=n==null?void 0:n.uiSchema)==null?void 0:l.title))},[(e=n==null?void 0:n.uiSchema)==null?void 0:e.title])},useDef$4=()=>({}),useProps=(e={})=>{const t=e,{useProps:o=useDef$4}=t,r=W(t,["useProps"]);let i=o;typeof o!="function"&&(i=useDef$4);const n=i();return x(x({},r),n)};function useParsedFilter({filterOption:e,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=()=>z(this,null,function*(){l(!0);const m=yield o(e);l(!1),n(m),t==null||t(m)});c();const u=import_lodash.default.debounce(c,DEBOUNCE_WAIT);(0,import_reactive.reaction)(()=>(0,import_client.flatten)(e,{breakOn({key:m}){return m.startsWith("$")&&m!=="$and"&&m!=="$or"},transformValue(m){if(!isVariable$1(m))return m;const d=getVariableName(m),p=r(d);let h=null;const g=getPath(m).split(".");return g.forEach((_,f)=>{const v=g.slice(0,f+1).join("."),b=(0,import_client.getValuesByPath)({[d]:(p==null?void 0:p.ctx)||{}},v);import_lodash.default.isEmpty(b)||(h=b)}),h}}),u,{equals:import_lodash.default.isEqual})},[JSON.stringify(e),o,r]),{filter:i,parseVariableLoading: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)=>z(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield Promise.all(o.filter(a=>!a.disabled).map(a=>z(void 0,null,function*(){return(yield conditionAnalyses({ruleGroup:a.condition,variables:r,localVariables:i,conditionType:a.conditionType},n))?a:null})))).filter(Boolean).map(a=>a.actions).flat()}),getSatisfiedValues=(e,t)=>z(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield getSatisfiedActions({rules:o,variables:r,localVariables:i},n)).map(a=>P(x({},a),{value:getActionValue(a.operator,a.value)}))}),getSatisfiedValueMap=(e,t)=>z(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield getSatisfiedValues({rules:o,variables:r,localVariables:i},n)).reduce((a,l)=>P(x({},a),{[l.operator]:l.value}),{})});function useSatisfiedActionValues({formValues:e,category:t="default",rules:o,schema:r,form:i}){const[n,a]=(0,import_react2.useState)({}),l=(0,import_react.useFieldSchema)(),c=useVariables$1(),u=useLocalVariables$1({currentForm:{values:e}}),m=r??l,d=o??(m[LinkageRuleDataKeyMap[t]]||(m==null?void 0:m.parent[LinkageRuleDataKeyMap[t]])),p=useApp(),h=(0,import_react2.useCallback)(()=>{d&&e&&getSatisfiedValueMap({rules:d,variables:c,localVariables:u},p.jsonLogic).then(g=>{(0,import_lodash.isEmpty)(g)?a({}):a(g)}).catch(g=>{throw new Error(g.message)})},[c,u,d,e]);return(0,import_react2.useEffect)(()=>{if(h(),i){const g=(0,import_shared.uid)();return i.addEffects(g,()=>{(0,import_core.onFormValuesChange)(()=>{h()})}),()=>{i.removeEffects(g)}}},[i,h,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(m=>m.uid===u.uid))),l=Object.keys(o||{});(0,import_react2.useEffect)(()=>{a(o&&o.some(u=>i.some(m=>m.uid===u.uid)))},[l.length,o,i]);const c=(0,import_react2.useCallback)((u,m="id",d="$eq")=>{const p=i.find(h=>h.uid===e.parent["x-uid"]);i.forEach(h=>{var g,_,f,v;let b=m;const S=o.find(j=>j.uid===h.uid);if(!S)return;import_lodash.default.isFunction(u)&&(u=u(S,h,getSourceKey$1(p,S.field))),import_lodash.default.isFunction(m)&&(b=m(S,h)),import_lodash.default.isFunction(d)&&(d=d(S));const C=((g=h.service.params)==null?void 0:g[0])||{},y=((f=(_=h.service.params)==null?void 0:_[1])==null?void 0:f.filters)||{};if(u!=null)y[r]={$and:[{[b]:{[d]:u}}]};else if((v=h.clearSelection)==null||v.call(h),delete y[r],h.dataLoadingMode==="manual")return h.clearData();const F=mergeFilter([...Object.values(y).map(j=>removeNullCondition(j)),h.defaultFilter]);h.doFilter(P(x({},C),{page:1,filter:F}),{filters:y})})},[i,o,r,e]);return{isConnected:n,doFilter:c}},isInFilterFormBlock=e=>{for(;e;){if(e["x-filter-targets"])return e["x-decorator"]==="FilterFormBlockProvider";e=e.parent}return!1};function getSourceKey$1(e,t){var o,r,i;const n=(o=e==null?void 0:e.associatedFields)==null?void 0:o.find(a=>a.foreignKey===t);return(n==null?void 0:n.sourceKey)||((i=(r=t==null?void 0:t.split)==null?void 0:r.call(t,"."))==null?void 0:i[1])}const AssociationFieldContext=(0,import_react2.createContext)({});AssociationFieldContext.displayName="AssociationFieldContext";const useInsertSchema$1=e=>{const t=(0,import_react.useFieldSchema)(),{insertAfterBegin:o}=useDesignable(),{isMobileLayout:r}=useMobileLayout();return(0,import_react2.useCallback)(i=>{r||t.reduceProperties((n,a)=>a["x-component"]==="AssociationField."+e?a:n,null)||o((0,import_cloneDeep.default)(i))},[e,t,o,r])};function useAssociationFieldContext(){return(0,import_react2.useContext)(AssociationFieldContext)}function useServiceOptions$1(e){var t,o,r,i,n,a,l,c,u,m;const{action:d="list",service:p,useOriginalFilter:h}=e,g=(0,import_react.useFieldSchema)(),_=(0,import_react.useField)(),{getField:f}=useCollection_deprecated(),{getCollectionJoinField:v}=useCollectionManager_deprecated(),b=useRecord(),S=((0,import_lodash.isString)((r=(o=(t=g==null?void 0:g["x-component-props"])==null?void 0:t.service)==null?void 0:o.params)==null?void 0:r.filter)?(a=(n=(i=_.componentProps)==null?void 0:i.service)==null?void 0:n.params)==null?void 0:a.filter:(u=(c=(l=g==null?void 0:g["x-component-props"])==null?void 0:l.service)==null?void 0:c.params)==null?void 0:u.filter)||((m=p==null?void 0:p.params)==null?void 0:m.filter),{filter:C}=useParsedFilter({filterOption:S,onFilterChange:()=>{_.reset()}}),y=(0,import_react2.useMemo)(()=>f(g.name)||v(g==null?void 0:g["x-collection-field"]),[g]),F=b==null?void 0:b[y==null?void 0:y.sourceKey],j=(0,import_react2.useMemo)(()=>{const k=["oho","o2m"].includes(y==null?void 0:y.interface);return mergeFilter([mergeFilter([k&&!isInFilterFormBlock(g)&&y!=null&&y.foreignKey&&!h?{[y.foreignKey]:{$is:null}}:null,C]),k&&F!==void 0&&F!==null&&!isInFilterFormBlock(g)&&y!=null&&y.foreignKey&&!h?{[y.foreignKey]:{$eq:F}}:null],"$or")},[y==null?void 0:y.interface,y==null?void 0:y.foreignKey,g,C,F,h]);return(0,import_react2.useMemo)(()=>P(x({resource:y==null?void 0:y.target,action:d},p),{params:P(x({},p==null?void 0:p.params),{filter:j})}),[y==null?void 0:y.target,d,j,p])}const useFieldNames$1=(e={})=>{var t,o,r,i,n;const a=(0,import_react.useFieldSchema)(),l=((i=(r=(o=(t=a["x-component-props"])==null?void 0:t.field)==null?void 0:o.uiSchema)==null?void 0:r["x-component-props"])==null?void 0:i.fieldNames)||((n=a["x-component-props"])==null?void 0:n.fieldNames)||e.fieldNames;return x({label:"label",value:"value"},l)},SubFormContext=(0,import_react2.createContext)(null);SubFormContext.displayName="SubFormContext";const SubFormProvider=e=>{const t=(0,import_react2.useContext)(SubFormContext),{value:o,collection:r,fieldSchema:i,parent:n,skip:a}=e.value,l=(0,import_react2.useMemo)(()=>import_lodash.default.omitBy({value:o,collection:r,fieldSchema:i,skip:a,parent:n||(t!=null&&t.skip?t.parent:t)},import_lodash.default.isUndefined),[o,r,i,a,n,t]);return(0,import_jsx_runtime.jsx)(SubFormContext.Provider,{value:l,children:e.children})},useSubFormValue=()=>{const{value:e,collection:t,fieldSchema:o,parent:r}=(0,import_react2.useContext)(SubFormContext)||{};return{formValue:e,collection:t,fieldSchema:o,parent:r}},TableSkeleton=({rows:e=5,columns:t=6})=>{const{token:o}=useToken$1(),r=o.controlHeight*2.06,i=o.controlHeight*1.75,n=(0,import_react2.useMemo)(()=>import_css.css`
65
+ `,items:l},n))})},SchemaInitializerSubMenu=e=>{var t;const o=e,{children:r,items:i,title:n,name:a,onOpenChange:l,icon:c}=o,u=W(o,["children","items","title","name","onOpenChange","icon"]),m=useCompile(),d=useSchemaInitializerItem(),p=(0,import_react2.useMemo)(()=>a||(d==null?void 0:d.name)||(0,import_shared.uid)(),[a,d]),h=(t=i||r)==null?void 0:t.filter(f=>f.useVisible?f.useVisible():!0),g=useSchemaInitializerMenuItems(h,a),_=(0,import_react2.useMemo)(()=>[P(x({},u),{key:p,label:m(n),icon:typeof c=="string"?(0,import_jsx_runtime.jsx)(import_icons.default,{type:c}):c,children:g})],[g,m,c,p,u,n]);return(0,import_jsx_runtime.jsx)(SchemaInitializerMenu,{onOpenChange:l,items:_})},SchemaInitializerSubMenuInternal=()=>{const e=useSchemaInitializerItem();return(0,import_jsx_runtime.jsx)(SchemaInitializerSubMenu,x({},e))},useAriaAttributeOfMenuItem=()=>{const{isInMenu:e}=useSchemaInitializerSubMenuContext();return{attribute:(0,import_react2.useMemo)(()=>e?{}:{role:"menuitem"},[e])}},{Paragraph:Paragraph$1,Text:Text$2}=import_antd.Typography,ErrorFallbackModal=e=>{const[t,o]=import_react2.default.useState(!1),r=(0,import_jsx_runtime.jsx)(Paragraph$1,{style:{display:"flex",marginBottom:0},copyable:{text:e.error.message},children:(0,import_jsx_runtime.jsxs)(Text$2,{type:"danger",style:{whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden",display:"inline-block",maxWidth:"200px"},children:["Error: ",e.error.message]})});return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)("div",{onMouseOver:()=>o(!0),children:e.children||r}),(0,import_jsx_runtime.jsx)(import_antd.Modal,{zIndex:1e4,open:t,footer:null,onCancel:()=>o(!1),width:"60%",children:(0,import_jsx_runtime.jsx)(ErrorFallback,x({},e))})]})},{Paragraph,Text:Text$1,Link}=import_antd.Typography,useDownloadLogs=(e,t={})=>{const o=useLocationNoUpdate(),[r,i]=import_react2.default.useState(!1),n=useAPIClient();return{loading:r,download:()=>z(void 0,null,function*(){i(!0);try{const a=yield n.request({url:"logger:collect",method:"post",responseType:"blob",data:x({error:{message:e.message,stack:e.stack},location:o},t)}),l=window.URL.createObjectURL(new Blob([a.data],{type:"application/gzip"})),c=document.createElement("a");c.setAttribute("href",l),c.setAttribute("download","logs.tar.gz"),c.click(),c.remove()}catch(a){console.log(a)}i(!1)})}},ErrorFallback=({error:e})=>{const t=(0,import_react.useFieldSchema)(),{t:o}=(0,import_react_i18next.useTranslation)(),{loading:r,download:i}=useDownloadLogs(e,{schema:t}),n=(0,import_jsx_runtime.jsxs)(import_react_i18next.Trans,{children:["This is likely a NocoBase internals bug. Please open an issue at ",(0,import_jsx_runtime.jsx)(Link,{href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:"here"})]});return(0,import_jsx_runtime.jsx)("div",{style:{backgroundColor:"white"},children:(0,import_jsx_runtime.jsx)(import_antd.Result,{style:{maxWidth:"60vw",margin:"auto"},status:"error",title:o("Render Failed"),subTitle:n,extra:[(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"primary",href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:o("Feedback")},"feedback"),(0,import_jsx_runtime.jsx)(import_antd.Button,{loading:r,onClick:i,children:o("Download logs")},"log")],children:(0,import_jsx_runtime.jsx)(Paragraph,{copyable:{text:e.stack},children:(0,import_jsx_runtime.jsx)(Text$1,{type:"danger",style:{whiteSpace:"pre-line",textAlign:"center"},children:e.stack})})})})};ErrorFallback.Modal=ErrorFallbackModal;const AppNotFound=()=>{const e=(0,import_react_router_dom.useNavigate)(),{t}=(0,import_react_i18next.useTranslation)();return(0,import_jsx_runtime.jsx)(import_antd.Result,{status:"404",title:"404",subTitle:t("Sorry, the page you visited does not exist."),extra:(0,import_jsx_runtime.jsx)(import_antd.Button,{onClick:()=>e("/",{replace:!0}),type:"primary",children:"Back Home"})})};class Plugin{constructor(t,o){this.options=t,this.app=o,this.options=t,this.app=o}get pluginManager(){return this.app.pluginManager}get pm(){return this.app.pm}get router(){return this.app.router}get pluginSettingsManager(){return this.app.pluginSettingsManager}get schemaInitializerManager(){return this.app.schemaInitializerManager}get schemaSettingsManager(){return this.app.schemaSettingsManager}get dataSourceManager(){return this.app.dataSourceManager}afterAdd(){return z(this,null,function*(){})}beforeLoad(){return z(this,null,function*(){})}load(){return z(this,null,function*(){})}t(t,o={}){var r;return this.app.i18n.t(t,x({ns:(r=this.options)==null?void 0:r.packageName},o))}}const titleWrapperStyle={display:"flex",alignItems:"center",gap:4},withTooltipComponent=e=>t=>{const{tooltip:o}=t;return o?(0,import_jsx_runtime.jsxs)("div",{style:titleWrapperStyle,children:[(0,import_jsx_runtime.jsx)(e,x({},t)),(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:o,children:(0,import_jsx_runtime.jsx)(import_icons.QuestionCircleOutlined,{style:{zIndex:1}})})]}):(0,import_jsx_runtime.jsx)(e,x({},t))};class SchemaInitializer{constructor(t){A(this,"options"),A(this,"name"),this.options=Object.assign({items:[]},t),this.name=t.name}get items(){return this.options.items}add(t,o){const r=t.split("."),i=r[r.length-1],n=P(x({},o),{name:i}),a=(u,m)=>{const d=this.items.findIndex(p=>p.name===u);d===-1?this.items.push(m):this.items[d]=m};if(r.length===1){a(i,n);return}const l=r.slice(0,-1).join("."),c=this.get(l);if(c){c.children||(c.children=[]);const u=t.replace(`${c.name}.`,""),m=c.children.findIndex(d=>d.name===u);m===-1?c.children.push(n):c.children[m]=n}else a(i,n)}get(t){var o;if(!t)return;const r=t.split(".");let i={children:this.items};for(let n=0;n<r.length;n++){const a=r[n],l=(o=i.children)==null?void 0:o.find(c=>c.name===a);if(l&&(i=l),n===r.length-1)return l}}remove(t){const o=t.split(".");if(o.length===1){const i=this.items.findIndex(n=>n.name===o[0]);i!==-1&&this.items.splice(i,1);return}const r=this.get(o.slice(0,-1).join("."));if(r&&r.children){const i=o[o.length-1],n=r.children.findIndex(a=>a.name===i);n!==-1&&r.children.splice(n,1)}}}var NocoBaseDesktopRouteType=(e=>(e.group="group",e.page="page",e.link="link",e.tabs="tabs",e))(NocoBaseDesktopRouteType||{});const useStyles$h=genStyleHook("nb-menu-item",e=>{const{componentCls:t}=e;return{[t]:{paddingLeft:`${e.padding}px !important`,paddingRight:`${e.padding}px !important`}}}),useAttach=e=>{const t=(0,import_react2.useRef)(null);return(0,import_react2.useEffect)(()=>(t.current&&e!==t.current&&t.current.onUnmount(),t.current=e,e.onMount(),()=>{e.onUnmount()}),[e]),e},compileCache={},hasVariable=e=>/{{.*?}}/g.test(e),useCompile=({noCache:e}={noCache:!1})=>{const t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),o=(0,import_react2.useContext)(import_react.SchemaExpressionScopeContext);return(r,i)=>{let n=!1,a;if(typeof r=="string"&&r.startsWith("{{")&&(n=!0,a=r),r&&typeof r=="object"&&!(0,import_react2.isValidElement)(r)){try{a=JSON.stringify(r)}catch(l){return console.warn("Failed to stringify:",l),r}if(compileCache[a])return compileCache[a];n=hasVariable(a)}if(Array.isArray(r)){try{a=JSON.stringify(r)}catch(l){return console.warn("Failed to stringify:",l),r}if(compileCache[a])return compileCache[a];n=hasVariable(a)}if(n){const l=x(x(x({},t.scope),o),i);if(!a)return import_react.Schema.compile(r,l);try{return e?import_react.Schema.compile(r,l):(compileCache[a]=compileCache[a]||import_react.Schema.compile(r,l),compileCache[a])}catch(c){return console.log("useCompile error",r,c),import_react.Schema.compile(r,l)}}return r}},useComponent=(e,t)=>{const{components:o}=(0,import_react2.useContext)(import_react.SchemaOptionsContext);return e?typeof e!="string"?e:(0,import_lodash.get)(o,e)||t:t},LAZY_COMPONENT_KEY=Symbol("LAZY_COMPONENT_KEY");function lazy(e,...t){if(t.length===0){const o=(0,import_react2.lazy)(()=>e().then(i=>{const n=i.default;return r[LAZY_COMPONENT_KEY]=n,{default:n}})),r=i=>(0,import_jsx_runtime.jsx)(import_react2.default.Suspense,{fallback:(0,import_jsx_runtime.jsx)(import_antd.Spin,{}),children:(0,import_jsx_runtime.jsx)(o,x({},i))});return r}return t.reduce((o,r)=>{const i=(0,import_react2.lazy)(()=>e().then(n=>{const a=(0,import_lodash.get)(n,r);return o[r][LAZY_COMPONENT_KEY]=a,{default:a}}));return o[r]=n=>(0,import_jsx_runtime.jsx)(import_react2.default.Suspense,{fallback:(0,import_jsx_runtime.jsx)(import_antd.Spin,{}),children:(0,import_jsx_runtime.jsx)(i,x({},n))}),o},{})}function useLazy(e,t){const o=typeof t=="function"?t:i=>i[t],r=(0,import_react_imported_component.loadableResource)(e);if(!r.payload)throw new Promise((i,n)=>{r.loadIfNeeded(),r.resolution.then(i).catch(n)});return o(r.payload)}function addAppVersion(e,t){if(e)return e["x-app-version"]||(e["x-app-version"]=t),Object.keys(e.properties||{}).forEach(o=>{var r;addAppVersion((r=e.properties)==null?void 0:r[o],t)}),e}const name="@nocobase/client",version="1.9.0-beta.2",license="AGPL-3.0",main="lib/index.js",module$1="es/index.mjs",types="es/index.d.ts",dependencies={"@ahooksjs/use-url-state":"3.5.1","@ant-design/cssinjs":"^1.11.1","@ant-design/icons":"^5.6.1","@ant-design/pro-layout":"^7.22.1","@antv/g2plot":"^2.4.18","@budibase/handlebars-helpers":"0.14.0","@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.0-beta.2","@nocobase/sdk":"1.9.0-beta.2","@nocobase/utils":"1.9.0-beta.2",ahooks:"^3.7.2",antd:"5.24.2","antd-style":"3.7.1",axios:"^1.7.0","bignumber.js":"^9.1.2",classnames:"^2.3.1",cronstrue:"^2.11.0","file-saver":"^2.0.5",filesize:"9.0.11",flat:"^5.0.2",i18next:"^22.4.9","i18next-http-backend":"^2.1.1",ignore:"^5.2.0",json5:"^2.2.3",lodash:"4.17.21","lru-cache":"6.0.0","markdown-it":"14.1.0","markdown-it-highlightjs":"3.3.1",mathjs:"^10.6.0",mermaid:"9.4.3",mime:"^4.0.4","mime-match":"^1.0.2","react-beautiful-dnd":"^13.1.0","react-drag-listview":"^0.1.9","react-error-boundary":"^4.0.10","react-helmet":"^6.1.0","react-hotkeys-hook":"^3.4.7","react-i18next":"^11.15.1","react-iframe":"~1.8.5","react-image-lightbox":"^5.1.4","react-intersection-observer":"9.14.0","react-js-cron":"^3.1.0","react-quill":"^2.0.0","react-router-dom":"^6.11.2","react-to-print":"^2.14.7","sanitize-html":"2.13.0","use-deep-compare-effect":"^1.8.1"},peerDependencies={react:">=18.0.0","react-dom":">=18.0.0","react-is":">=18.0.0"},devDependencies={"@testing-library/react":"^14.0.0","@types/markdown-it":"14.1.1","@types/markdown-it-highlightjs":"3.3.1","@types/react-big-calendar":"^1.6.4","axios-mock-adapter":"^1.20.0",dumi:"2.2.14","dumi-theme-nocobase":"^0.2.28","html5-qrcode":"^2.3.8"},clientPkg={name,version,license,main,module:module$1,types,dependencies,peerDependencies,devDependencies};function createDesignable(e){return new Designable(e)}const generateUid=e=>{e&&(e["x-uid"]||(e["x-uid"]=(0,import_shared.uid)()),Object.keys(e.properties||{}).forEach(t=>{generateUid(e.properties[t])}))},defaultWrap=e=>e,matchSchema=(e,t)=>{if(!(!e||!t)){for(const o in t)if(Object.prototype.hasOwnProperty.call(t,o)&&t[o]!==(e==null?void 0:e[o]))return!1;return!0}},splitWrapSchema=(e,t)=>{if(e["x-uid"]&&e["x-uid"]===t["x-uid"])return[null,e.toJSON()];const o=e.toJSON(),r=P(x({},o),{properties:{}});let i=null;const n=(a,l)=>{Object.keys(a||{}).forEach(c=>{const u=a[c];if(u["x-uid"]===t["x-uid"]){i=a[c];return}else l.properties[c]=P(x({},u),{properties:{}}),n(u==null?void 0:u.properties,l.properties[c])})};return n(o.properties,r),[r,i]},translate=e=>e;class Designable{constructor(t){A(this,"current"),A(this,"options"),A(this,"appVersion"),A(this,"events",{}),this.options=t,this.current=t.current,this.appVersion=t.appVersion}get model(){return this.options.model}get query(){return this.options.query}loadAPIClientEvents(){const{api:t,t:o=translate}=this.options;if(!t)return;const r=i=>{if(!i)return[];const n=Object.values(i.properties).length,a=[];return i.mapProperties(l=>{l["x-component-props"]=l["x-component-props"]||{},l["x-component-props"].width=100/n,l["x-uid"]&&a.push({"x-uid":l["x-uid"],"x-component-props":l["x-component-props"]})}),i["x-uid"]&&a.length?a:[]};this.on("insertAdjacent",i=>z(this,[i],function*({onSuccess:n,current:a,position:l,schema:c,wrap:u,wrapped:m,removed:d}){var p;let h=[];if((m==null?void 0:m["x-component"])==="Grid.Col"&&(h=h.concat(r(m.parent))),(d==null?void 0:d["x-component"])==="Grid.Col"&&(h=h.concat(r(d.parent))),this.refresh(),!a["x-uid"])return;const g=yield t.request({url:`/uiSchemas:insertAdjacent/${a["x-uid"]}?position=${l}`,method:"post",data:{schema:addAppVersion(c,this.appVersion),wrap:u}});h.length&&(yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:h})),d!=null&&d["x-uid"]&&(yield t.request({url:`/uiSchemas:remove/${d["x-uid"]}`,method:"post"})),n==null||n((p=g==null?void 0:g.data)==null?void 0:p.data),import_antd.message.success(o("Saved successfully"),.2)})),this.on("patch",i=>z(this,[i],function*({schema:n}){this.refresh(),n!=null&&n["x-uid"]&&(yield t.request({url:"/uiSchemas:patch",method:"post",data:x({},n)}),import_antd.message.success(o("Saved successfully"),.2))})),this.on("initializeActionContext",i=>z(this,[i],function*({schema:n}){n!=null&&n["x-uid"]&&(yield t.request({url:"/uiSchemas:initializeActionContext",method:"post",data:x({},n)}))})),this.on("batchPatch",i=>z(this,[i],function*({schemas:n}){this.refresh(),yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:n}),import_antd.message.success(o("Saved successfully"),.2)})),this.on("remove",i=>z(this,[i],function*({removed:n}){let a=[];(n==null?void 0:n["x-component"])==="Grid.Col"&&(a=r(n.parent)),this.refresh(),n!=null&&n["x-uid"]&&(yield t.request({url:`/uiSchemas:remove/${n["x-uid"]}`,method:"post"}),a.length&&(yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:a})),import_antd.message.success(o("Saved successfully"),.2))}))}prepareProperty(t){t.type||(t.type="void"),t.name||(t.name=(0,import_shared.uid)()),this.current["x-uid"]&&generateUid(t)}on(t,o){this.events[t]||(this.events[t]=[]),this.events[t].push(o)}emit(t,...o){return z(this,null,function*(){if(!this.events[t])return;const[r,...i]=o;return Promise.all(this.events[t].map(n=>n.bind(this)(x({current:this.current},r),...i)))})}parentsIn(t){if(!t||!import_react.Schema.isSchemaInstance(t))return!1;let o=this.current;for(;o!=null&&o.parent;){if(o.parent===t)return!0;o=o.parent}return!1}refresh(t){const{refresh:o}=this.options;return o==null?void 0:o(t)}deepMerge(t){const o={title:"title",description:"description",default:"initialValue",readOnly:"readOnly",writeOnly:"editable",enum:"dataSource","x-pattern":"pattern","x-display":"display","x-validator":"validator","x-decorator":"decorator","x-component":"component","x-reactions":"reactions","x-content":"content","x-visible":"visible","x-hidden":"hidden","x-disabled":"disabled","x-editable":"editable","x-read-only":"readOnly"},r={"x-decorator-props":"decoratorProps","x-component-props":"componentProps","x-data":"data"};Object.keys(t).forEach(i=>{o[i]?(this.current[i]=t[i],this.updateModel(o[i],t[i])):r[i]?Object.keys(t[i]).forEach(n=>{(0,import_set.default)(this.current,[i,n],t[i][n]),this.updateModel([r[i],n],t[i][n])}):this.current[i]=t[i]}),this.emit("patch",{schema:t})}getSchemaAttribute(t,o){return(0,import_get.default)(this.current,t,o)}shallowMerge(t){const o={title:"title",description:"description",default:"initialValue",readOnly:"readOnly",writeOnly:"editable",enum:"dataSource","x-pattern":"pattern","x-display":"display","x-validator":"validator","x-decorator":"decorator","x-component":"component","x-reactions":"reactions","x-content":"content","x-visible":"visible","x-hidden":"hidden","x-disabled":"disabled","x-editable":"editable","x-read-only":"readOnly","x-decorator-props":"decoratorProps","x-component-props":"componentProps","x-data":"data"};Object.keys(t).forEach(r=>{this.current[r]=t[r],o[r]&&this.updateModel(o[r],t[r])}),this.emit("patch",{schema:t})}updateModel(t,o){const r=i=>{(0,import_set.default)(i,t,o)};this.model&&r(this.model),this.query&&this.query.take(r)}insertAdjacent(t,o,r={}){switch(t){case"beforeBegin":return this.insertBeforeBegin(o,r);case"afterBegin":return this.insertAfterBegin(o,r);case"beforeEnd":return this.insertBeforeEnd(o,r);case"afterEnd":return this.insertAfterEnd(o,r)}}recursiveRemoveIfNoChildren(t,o){if(!t)return;let r=t,i;const n=o==null?void 0:o.breakRemoveOn;for(;r;){if(typeof n=="function"){if(n(r))break}else if(matchSchema(r,n))break;if(Object.keys(r.properties||{}).length>0)break;r.parent&&(i=r.parent.removeProperty(r.name)),r=r.parent}return i}remove(t,o={}){const{breakRemoveOn:r,removeParentsIfNoChildren:i}=o,n=t||this.current;let a=n.parent.removeProperty(n.name);if(i){const l=this.recursiveRemoveIfNoChildren(n.parent,{breakRemoveOn:r});l&&(a=l)}return this.emit("remove",{removed:a})}removeWithoutEmit(t,o={}){const{breakRemoveOn:r,removeParentsIfNoChildren:i}=o,n=t||this.current;let a=n.parent.removeProperty(n.name);if(i){const l=this.recursiveRemoveIfNoChildren(n.parent,{breakRemoveOn:r});l&&(a=l)}return a}insertBeforeBeginOrAfterEnd(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current)||!import_react.Schema.isSchemaInstance(t)||this.current.parent!==t.parent)return;let r=0,i=0;return this.current.parent.mapProperties((n,a,l)=>{this.current.name===a&&(i=l),t.name===a&&(r=l)}),r>i?this.insertBeforeBegin(t,o):this.insertAfterEnd(t,o)}insertBeforeBegin(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;const r={onSuccess:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren:a}=o;if(import_react.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),a&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n}))}else t&&(t=(0,import_cloneDeep.default)(t));const l={};let c=!1,u=0,m=0;this.current.parent.mapProperties((_,f)=>{f===this.current.name&&(m=u,c=!0,++u),_["x-index"]=u,++u,c&&(l[f]=_,this.current.parent.removeProperty(f))}),this.prepareProperty(t);const d=i(t),p=this.current.parent.addProperty(d.name||(0,import_shared.uid)(),d);p["x-index"]=m,p.parent=this.current.parent,this.current.parent.setProperties(l);const[h,g]=splitWrapSchema(p,t);this.emit("insertAdjacent",x({position:"beforeBegin",schema:g,wrapped:d,wrap:h},r))}insertAfterBegin(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;const r={onSuccess:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren:a}=o;if(import_react.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),a&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n}))}else t&&(t=(0,import_cloneDeep.default)(t));const l={};let c=1;this.current.mapProperties((h,g)=>{h["x-index"]=c,++c,l[g]=h}),this.current.properties={},this.prepareProperty(t);const u=i(t),m=this.current.addProperty(u.name||(0,import_shared.uid)(),u);m["x-index"]=0,m.parent=this.current,this.current.setProperties(l);const[d,p]=splitWrapSchema(m,t);this.emit("insertAdjacent",x({position:"afterBegin",schema:p,wrap:d,wrapped:u},r))}insertBeforeEnd(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;delete t["x-index"];const r={onSuccess:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren:a}=o;if(import_react.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),a&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n}))}else t&&(t=(0,import_cloneDeep.default)(t));this.prepareProperty(t);const l=i(t),c=this.current.addProperty(l.name||(0,import_shared.uid)(),l);c.parent=this.current;const[u,m]=splitWrapSchema(c,t);return this.emit("insertAdjacent",x({position:"beforeEnd",schema:m,wrap:u,wrapped:l},r))}insertAfterEnd(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;const r={onSuccess:o==null?void 0:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren:a}=o;let l=0,c=0,u=!1;const m={};if(this.current.parent.mapProperties((_,f)=>{_["x-index"]=l,f===this.current.name&&(++l,c=l,u=!0),++l,u&&f!==this.current.name&&(m[f]=_,this.current.parent.removeProperty(f))}),import_react.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),a&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n})),t.parent=null}else t&&(t=(0,import_cloneDeep.default)(t));this.prepareProperty(t);const d=i(t),p=this.current.parent.addProperty(d.name||(0,import_shared.uid)(),d);p.parent=this.current.parent,p["x-index"]=c,this.current.parent.setProperties(m);const[h,g]=splitWrapSchema(p,t);this.emit("insertAdjacent",x({position:"afterEnd",schema:g,wrap:h,wrapped:d},r))}}function useFindComponent(){const e=(0,import_react2.useContext)(import_react.SchemaOptionsContext),t=(0,import_react2.useMemo)(()=>(e==null?void 0:e.components)||{},[e]);return o=>{if(!o)return null;if(typeof o!="string")return o;const r=(0,import_get.default)(t,o);return r||console.error(`[nocobase]: Component "${o}" not found`),r}}function useDesignable(){const{designable:e,setDesignable:t,refresh:o,reset:r}=(0,import_react2.useContext)(SchemaComponentContext),i=(0,import_react2.useContext)(import_react.SchemaOptionsContext),n=(0,import_react2.useMemo)(()=>(i==null?void 0:i.components)||{},[i]),a=(0,import_react2.useMemo)(()=>()=>(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{}),[]),l=(0,import_ahooks.useUpdate)(),c=useRefreshFieldSchema(),u=useRefreshComponent(),m=(0,import_react2.useCallback)(v=>{o==null||o(),l(),c==null||c(v),u==null||u()},[o,l,c,u]),d=(0,import_react.useField)(),p=(0,import_react.useFieldSchema)(),h=useAPIClient(),{t:g}=(0,import_react_i18next.useTranslation)(),_=(0,import_react2.useMemo)(()=>createDesignable({t:g,api:h,refresh:m,current:p,model:d,appVersion:clientPkg.version}),[g,h,m,p,d]);(0,import_react2.useEffect)(()=>{_.loadAPIClientEvents()},[_]);const{isMobileLayout:f}=useMobileLayout();return{dn:_,designable:f?!1:e,reset:r,refresh:m,setDesignable:t,DesignableBar:a,findComponent:(0,import_react2.useCallback)(v=>{var b;if(!v)return null;if(typeof v!="string")return v;const S=(0,import_get.default)(n,v);return(b=S==null?void 0:S[LAZY_COMPONENT_KEY])!=null?b:S},[import_get.default]),on:_.on.bind(_),patch:(0,import_react2.useCallback)((v,b)=>{const S=C=>{Object.keys(C).forEach(y=>{const F=C[y];y==="title"&&(d.title=F,p.title=F),y==="x-decorator-props"&&(d.decoratorProps||(d.decoratorProps={}),p["x-decorator-props"]||(p["x-decorator-props"]={}),Object.keys(F).forEach(j=>{d.decoratorProps[j]=F[j],p["x-decorator-props"][j]=F[j]})),y==="x-component-props"&&(d.componentProps||(d.componentProps={}),p["x-component-props"]||(p["x-component-props"]={}),Object.keys(F).forEach(j=>{d.componentProps[j]=F[j],p["x-component-props"][j]=F[j]}))})};if(typeof v=="string"){const C={};return(0,import_set.default)(C,v,b),S(C)}S(v),m()},[_]),shallowMerge:(0,import_react2.useCallback)(v=>{_.shallowMerge(v)},[_]),deepMerge:(0,import_react2.useCallback)(v=>{_.deepMerge(v)},[_]),remove:(0,import_react2.useCallback)((v,b)=>{_.remove(v,b)},[_]),insertAdjacent:(0,import_react2.useCallback)((v,b,S)=>{_.insertAdjacent(v,b,S)},[_]),insertBeforeBegin:(0,import_react2.useCallback)(v=>{_.insertBeforeBegin(v)},[_]),insertAfterBegin:(0,import_react2.useCallback)(v=>{_.insertAfterBegin(v)},[_]),insertBeforeEnd:(0,import_react2.useCallback)(v=>{_.insertBeforeEnd(v)},[_]),insertAfterEnd:(0,import_react2.useCallback)(v=>{_.insertAfterEnd(v)},[_])}}const DefaultSchemaToolbar=()=>null;DefaultSchemaToolbar.isNullComponent=!0;const useDesigner=()=>{const{designable:e}=useDesignable(),t=(0,import_react.useFieldSchema)(),o=(0,import_react2.useMemo)(()=>t["x-designer"]||t["x-toolbar"]?t["x-designer"]||t["x-toolbar"]:t["x-settings"]?SchemaToolbar:DefaultSchemaToolbar,[t]),r=useComponent(o);return e&&r||DefaultSchemaToolbar},useFieldProps$1=e=>{const t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),o=(0,import_react2.useContext)(import_react.SchemaExpressionScopeContext),r=(0,import_react2.useRef)();return r.current=o,e.toFieldProps(P(x({},t),{get scope(){return x(x({},t.scope),r.current)}}))};function useSchemaComponentContext(){return(0,import_react2.useContext)(SchemaComponentContext)}const useFieldComponentOptions=()=>{var e;const{getCollectionJoinField:t,getCollection:o}=useCollectionManager_deprecated(),r=(0,import_react.useFieldSchema)(),{getField:i}=useCollection_deprecated(),n=i(r.name)||t(r["x-collection-field"]),{t:a}=(0,import_react_i18next.useTranslation)(),{label:l}=((e=r["x-component-props"])==null?void 0:e.fieldNames)||{};return(0,import_react2.useMemo)(()=>{if(!n||!(n!=null&&n.interface)||!["o2o","oho","obo","o2m","linkTo","m2o","m2m"].includes(n.interface))return;const c=o(n.target);if((c==null?void 0:c.template)==="file")return[{label:a("Record picker"),value:"CollectionField"},{label:a("Select"),value:"AssociationSelect"}];switch(n.interface){case"o2m":return[{label:a("Record picker"),value:"CollectionField"},{label:a("Subtable"),value:"TableField"},{label:a("Select"),value:"AssociationSelect"}];case"m2o":case"m2m":case"linkTo":return[{label:a("Record picker"),value:"CollectionField"},{label:a("Select"),value:"AssociationSelect"}];default:return[{label:a("Record picker"),value:"CollectionField"},{label:a("Subform"),value:"FormField"},{label:a("Select"),value:"AssociationSelect"}]}},[a,n==null?void 0:n.interface,l])},useFieldTitle=()=>{var e;const t=(0,import_react.useField)(),o=(0,import_react.useFieldSchema)(),r=useCollection(),i=useCollectionManager(),n=(r==null?void 0:r.getField(o.name))||(i==null?void 0:i.getCollectionField(o["x-collection-field"])),a=useCompile();(0,import_react2.useEffect)(()=>{var l;t!=null&&t.title||(t.title=a((l=n==null?void 0:n.uiSchema)==null?void 0:l.title))},[(e=n==null?void 0:n.uiSchema)==null?void 0:e.title])},useDef$4=()=>({}),useProps=(e={})=>{const t=e,{useProps:o=useDef$4}=t,r=W(t,["useProps"]);let i=o;typeof o!="function"&&(i=useDef$4);const n=i();return x(x({},r),n)};function useParsedFilter({filterOption:e,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=()=>z(this,null,function*(){l(!0);const m=yield o(e);l(!1),n(m),t==null||t(m)});c();const u=import_lodash.default.debounce(c,DEBOUNCE_WAIT);(0,import_reactive.reaction)(()=>(0,import_client.flatten)(e,{breakOn({key:m}){return m.startsWith("$")&&m!=="$and"&&m!=="$or"},transformValue(m){if(!isVariable$1(m))return m;const d=getVariableName(m),p=r(d);let h=null;const g=getPath(m).split(".");return g.forEach((_,f)=>{const v=g.slice(0,f+1).join("."),b=(0,import_client.getValuesByPath)({[d]:(p==null?void 0:p.ctx)||{}},v);import_lodash.default.isEmpty(b)||(h=b)}),h}}),u,{equals:import_lodash.default.isEqual})},[JSON.stringify(e),o,r]),{filter:i,parseVariableLoading: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)=>z(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield Promise.all(o.filter(a=>!a.disabled).map(a=>z(void 0,null,function*(){return(yield conditionAnalyses({ruleGroup:a.condition,variables:r,localVariables:i,conditionType:a.conditionType},n))?a:null})))).filter(Boolean).map(a=>a.actions).flat()}),getSatisfiedValues=(e,t)=>z(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield getSatisfiedActions({rules:o,variables:r,localVariables:i},n)).map(a=>P(x({},a),{value:getActionValue(a.operator,a.value)}))}),getSatisfiedValueMap=(e,t)=>z(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield getSatisfiedValues({rules:o,variables:r,localVariables:i},n)).reduce((a,l)=>P(x({},a),{[l.operator]:l.value}),{})});function useSatisfiedActionValues({formValues:e,category:t="default",rules:o,schema:r,form:i}){const[n,a]=(0,import_react2.useState)({}),l=(0,import_react.useFieldSchema)(),c=useVariables$1(),u=useLocalVariables$1({currentForm:{values:e}}),m=r??l,d=o??(m[LinkageRuleDataKeyMap[t]]||(m==null?void 0:m.parent[LinkageRuleDataKeyMap[t]])),p=useApp(),h=(0,import_react2.useCallback)(()=>{d&&e&&getSatisfiedValueMap({rules:d,variables:c,localVariables:u},p.jsonLogic).then(g=>{(0,import_lodash.isEmpty)(g)?a({}):a(g)}).catch(g=>{throw new Error(g.message)})},[c,u,d,e]);return(0,import_react2.useEffect)(()=>{if(h(),i){const g=(0,import_shared.uid)();return i.addEffects(g,()=>{(0,import_core.onFormValuesChange)(()=>{h()})}),()=>{i.removeEffects(g)}}},[i,h,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(m=>m.uid===u.uid))),l=Object.keys(o||{});(0,import_react2.useEffect)(()=>{a(o&&o.some(u=>i.some(m=>m.uid===u.uid)))},[l.length,o,i]);const c=(0,import_react2.useCallback)((u,m="id",d="$eq")=>{const p=i.find(h=>h.uid===e.parent["x-uid"]);i.forEach(h=>{var g,_,f,v;let b=m;const S=o.find(j=>j.uid===h.uid);if(!S)return;import_lodash.default.isFunction(u)&&(u=u(S,h,getSourceKey$1(p,S.field))),import_lodash.default.isFunction(m)&&(b=m(S,h)),import_lodash.default.isFunction(d)&&(d=d(S));const C=((g=h.service.params)==null?void 0:g[0])||{},y=((f=(_=h.service.params)==null?void 0:_[1])==null?void 0:f.filters)||{};if(u!=null)y[r]={$and:[{[b]:{[d]:u}}]};else if((v=h.clearSelection)==null||v.call(h),delete y[r],h.dataLoadingMode==="manual")return h.clearData();const F=mergeFilter([...Object.values(y).map(j=>removeNullCondition(j)),h.defaultFilter]);h.doFilter(P(x({},C),{page:1,filter:F}),{filters:y})})},[i,o,r,e]);return{isConnected:n,doFilter:c}},isInFilterFormBlock=e=>{for(;e;){if(e["x-filter-targets"])return e["x-decorator"]==="FilterFormBlockProvider";e=e.parent}return!1};function getSourceKey$1(e,t){var o,r,i;const n=(o=e==null?void 0:e.associatedFields)==null?void 0:o.find(a=>a.foreignKey===t);return(n==null?void 0:n.sourceKey)||((i=(r=t==null?void 0:t.split)==null?void 0:r.call(t,"."))==null?void 0:i[1])}const AssociationFieldContext=(0,import_react2.createContext)({});AssociationFieldContext.displayName="AssociationFieldContext";const useInsertSchema$1=e=>{const t=(0,import_react.useFieldSchema)(),{insertAfterBegin:o}=useDesignable(),{isMobileLayout:r}=useMobileLayout();return(0,import_react2.useCallback)(i=>{r||t.reduceProperties((n,a)=>a["x-component"]==="AssociationField."+e?a:n,null)||o((0,import_cloneDeep.default)(i))},[e,t,o,r])};function useAssociationFieldContext(){return(0,import_react2.useContext)(AssociationFieldContext)}function useServiceOptions$1(e){var t,o,r,i,n,a,l,c,u,m;const{action:d="list",service:p,useOriginalFilter:h}=e,g=(0,import_react.useFieldSchema)(),_=(0,import_react.useField)(),{getField:f}=useCollection_deprecated(),{getCollectionJoinField:v}=useCollectionManager_deprecated(),b=useRecord(),S=((0,import_lodash.isString)((r=(o=(t=g==null?void 0:g["x-component-props"])==null?void 0:t.service)==null?void 0:o.params)==null?void 0:r.filter)?(a=(n=(i=_.componentProps)==null?void 0:i.service)==null?void 0:n.params)==null?void 0:a.filter:(u=(c=(l=g==null?void 0:g["x-component-props"])==null?void 0:l.service)==null?void 0:c.params)==null?void 0:u.filter)||((m=p==null?void 0:p.params)==null?void 0:m.filter),{filter:C}=useParsedFilter({filterOption:S,onFilterChange:()=>{_.reset()}}),y=(0,import_react2.useMemo)(()=>f(g.name)||v(g==null?void 0:g["x-collection-field"]),[g]),F=b==null?void 0:b[y==null?void 0:y.sourceKey],j=(0,import_react2.useMemo)(()=>{const k=["oho","o2m"].includes(y==null?void 0:y.interface);return mergeFilter([mergeFilter([k&&!isInFilterFormBlock(g)&&y!=null&&y.foreignKey&&!h?{[y.foreignKey]:{$is:null}}:null,C]),k&&F!==void 0&&F!==null&&!isInFilterFormBlock(g)&&y!=null&&y.foreignKey&&!h?{[y.foreignKey]:{$eq:F}}:null],"$or")},[y==null?void 0:y.interface,y==null?void 0:y.foreignKey,g,C,F,h]);return(0,import_react2.useMemo)(()=>P(x({resource:y==null?void 0:y.target,action:d},p),{params:P(x({},p==null?void 0:p.params),{filter:j})}),[y==null?void 0:y.target,d,j,p])}const useFieldNames$1=(e={})=>{var t,o,r,i,n;const a=(0,import_react.useFieldSchema)(),l=((i=(r=(o=(t=a["x-component-props"])==null?void 0:t.field)==null?void 0:o.uiSchema)==null?void 0:r["x-component-props"])==null?void 0:i.fieldNames)||((n=a["x-component-props"])==null?void 0:n.fieldNames)||e.fieldNames;return x({label:"label",value:"value"},l)},SubFormContext=(0,import_react2.createContext)(null);SubFormContext.displayName="SubFormContext";const SubFormProvider=e=>{const t=(0,import_react2.useContext)(SubFormContext),{value:o,collection:r,fieldSchema:i,parent:n,skip:a}=e.value,l=(0,import_react2.useMemo)(()=>import_lodash.default.omitBy({value:o,collection:r,fieldSchema:i,skip:a,parent:n||(t!=null&&t.skip?t.parent:t)},import_lodash.default.isUndefined),[o,r,i,a,n,t]);return(0,import_jsx_runtime.jsx)(SubFormContext.Provider,{value:l,children:e.children})},useSubFormValue=()=>{const{value:e,collection:t,fieldSchema:o,parent:r}=(0,import_react2.useContext)(SubFormContext)||{};return{formValue:e,collection:t,fieldSchema:o,parent:r}},TableSkeleton=({rows:e=5,columns:t=6})=>{const{token:o}=useToken$1(),r=o.controlHeight*2.06,i=o.controlHeight*1.75,n=(0,import_react2.useMemo)(()=>import_css.css`
66
66
  &.skeleton-wrapper {
67
67
  width: 100%;
68
68
  background: ${o.colorBgContainer};
@@ -571,7 +571,7 @@ ${JSON.stringify(E,null,2)}`)},[u,c,l,i,r,j,t,a,n,g,o,_,S,k,C,y,h]),B=(0,import_
571
571
  overflow: hidden;
572
572
  text-overflow: ellipsis;
573
573
  white-space: nowrap;
574
- `,pageContentStyle={flex:1,overflowY:"auto"},ShowTipWhenNoPages=()=>{const{allAccessRoutes:e}=useAllAccessDesktopRoutes(),{designable:t}=useDesignable(),{token:o}=useToken(),{t:r}=(0,import_react_i18next.useTranslation)(),i=(0,import_react_router_dom.useLocation)();return e.length===0&&!t&&["/admin","/admin/"].includes(i.pathname)?(0,import_jsx_runtime.jsx)(import_antd.Result,{icon:(0,import_jsx_runtime.jsx)(import_icons.HighlightOutlined,{style:{fontSize:"8em",color:o.colorText}}),title:r("No pages yet, please configure first"),subTitle:r('Click the "UI Editor" icon in the upper right corner to enter the UI Editor mode')}):null},mobileHeight={height:"calc(100dvh - var(--nb-header-height))"};function isDvhSupported(){const e=document.createElement("div");return e.style.height="1dvh",e.style.height==="1dvh"}const LayoutContent=()=>{const e=(0,import_react2.useMemo)(()=>isDvhSupported()?mobileHeight:void 0,[]);return(0,import_jsx_runtime.jsx)("div",{className:`${layoutContentClass} nb-subpages-slot-without-header-and-side`,style:e,children:(0,import_jsx_runtime.jsxs)("div",{style:pageContentStyle,children:[(0,import_jsx_runtime.jsx)(import_react_router_dom.Outlet,{}),(0,import_jsx_runtime.jsx)(ShowTipWhenNoPages,{})]})})},NocoBaseLogo=()=>{var e,t,o,r,i,n,a,l;const c=useSystemSettings(),{token:u}=useToken(),m=(0,import_react2.useMemo)(()=>({fontSize:u.fontSizeHeading3}),[u.fontSizeHeading3]),d=(o=(t=(e=c==null?void 0:c.data)==null?void 0:e.data)==null?void 0:t.logo)==null?void 0:o.url,p=d?(0,import_jsx_runtime.jsx)("img",{className:className2,src:(n=(i=(r=c==null?void 0:c.data)==null?void 0:r.data)==null?void 0:i.logo)==null?void 0:n.url}):(0,import_jsx_runtime.jsx)("span",{style:m,className:className3,children:(l=(a=c==null?void 0:c.data)==null?void 0:a.data)==null?void 0:l.title});return(0,import_jsx_runtime.jsx)("div",{className:d?className1WithFixedWidth:className1WithAutoWidth,children:c!=null&&c.loading?null:p})},MenuSchemaToolbarWithContainer=()=>{const e=(0,import_react2.useRef)(null),[t,o]=import_react2.default.useState(null);return(0,import_react2.useEffect)(()=>{o(e.current.parentElement.parentElement.parentElement)},[]),(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(MenuSchemaToolbar,{container:t}),(0,import_jsx_runtime.jsx)("div",{ref:e})]})},menuItemStyle={display:"flex",alignItems:"center",justifyContent:"space-between"},GroupItem=e=>{var t,o,r,i;const{item:n}=e,{designable:a}=useDesignable(),l=useEvaluatedExpression((o=(t=n._route.options)==null?void 0:t.badge)==null?void 0:o.count),c={__route__:n._route};return(0,import_jsx_runtime.jsx)(ParentRouteContext.Provider,{value:n._parentRoute,children:(0,import_jsx_runtime.jsx)(NocoBaseRouteContext.Provider,{value:n._route,children:(0,import_jsx_runtime.jsxs)(SortableItem,{id:n._route.id,schema:c,"aria-label":n.name,style:menuItemStyle,children:[e.children,a&&(0,import_jsx_runtime.jsx)(MenuSchemaToolbarWithContainer,{}),l!=null&&(0,import_jsx_runtime.jsx)(import_antd.Badge,P(x({},n._route.options.badge),{count:l,style:{marginLeft:4,color:(i=(r=n._route.options)==null?void 0:r.badge)==null?void 0:i.textColor,maxWidth:"10em"},dot:!1}))]})})})},WithTooltip=e=>{const{inHeader:t}=(0,import_react2.useContext)(HeaderContext);return(0,import_jsx_runtime.jsx)(import_pro_layout.RouteContext.Consumer,{children:o=>o.collapsed&&!e.hidden&&!t?(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:e.title,placement:"right",children:(0,import_jsx_runtime.jsx)(import_antd.Badge,P(x({},e.badgeProps),{style:{transform:"none",maxWidth:"10em"},dot:!1,children:e.children}))}):e.children})},MenuItem=e=>{var t,o,r,i,n,a,l,c,u;const{item:m}=e,{parseURLAndParams:d}=useParseURLAndParams(),p=(0,import_react2.useRef)(null),h=(0,import_react_router_dom.useLocation)(),g=useEvaluatedExpression((o=(t=m._route.options)==null?void 0:t.badge)==null?void 0:o.count),_=useNavigateNoUpdate(),f=useRouterBasename();(0,import_react2.useEffect)(()=>{p.current&&(p.current.parentElement.parentElement.style.order=999,p.current.parentElement.parentElement.style.paddingLeft=0,p.current.parentElement.parentElement.style.padding=0)},[]);const v=(0,import_react2.useCallback)(y=>z(void 0,null,function*(){var F,j,k;const T=(F=m._route.options)==null?void 0:F.href,B=(j=m._route.options)==null?void 0:j.params,w=(k=m._route.options)==null?void 0:k.openInNewWindow;y.preventDefault(),y.stopPropagation();try{const L=yield d(T,B||[]);w!==!1?window.open(L,"_blank"):navigateWithinSelf(T,_,window.location.origin+f)}catch(L){console.error(L),window.open(T,"_blank")}}),[d,m]);if(m._hidden)return null;const b={__route__:m._route};if(m.key==="x-designer-button")return(0,import_jsx_runtime.jsx)("div",{ref:p,children:(0,import_jsx_runtime.jsx)(ResetThemeTokenAndKeepAlgorithm,{children:(0,import_jsx_runtime.jsx)(ParentRouteContext.Provider,{value:m._parentRoute,children:(0,import_jsx_runtime.jsx)(NocoBaseRouteContext.Provider,{value:m._route,children:e.children})})})});if(((r=m._route)==null?void 0:r.type)===NocoBaseDesktopRouteType.link)return(0,import_jsx_runtime.jsx)(ParentRouteContext.Provider,{value:m._parentRoute,children:(0,import_jsx_runtime.jsx)(NocoBaseRouteContext.Provider,{value:m._route,children:(0,import_jsx_runtime.jsxs)(SortableItem,{id:m._route.id,schema:b,style:menuItemStyle,children:[(0,import_jsx_runtime.jsx)("div",{onClick:v,children:(0,import_jsx_runtime.jsx)(import_react_router_dom.Link,{to:h.pathname,"aria-label":m.name,children:e.children})}),(0,import_jsx_runtime.jsx)(MenuSchemaToolbar,{}),g!=null&&(0,import_jsx_runtime.jsx)(import_antd.Badge,P(x({},(i=m._route.options)==null?void 0:i.badge),{count:g,style:{marginLeft:4,color:(a=(n=m._route.options)==null?void 0:n.badge)==null?void 0:a.textColor,maxWidth:"10em"},dot:!1}))]})})});const S=m.redirect||m.path,C=P(x({},(l=m._route.options)==null?void 0:l.badge),{count:g});return(0,import_jsx_runtime.jsx)(ParentRouteContext.Provider,{value:m._parentRoute,children:(0,import_jsx_runtime.jsx)(NocoBaseRouteContext.Provider,{value:m._route,children:(0,import_jsx_runtime.jsxs)(SortableItem,{id:m._route.id,schema:b,style:menuItemStyle,children:[(0,import_jsx_runtime.jsx)(WithTooltip,{title:m.name,hidden:m._route.type===NocoBaseDesktopRouteType.group||m._depth>0,badgeProps:C,children:(0,import_jsx_runtime.jsx)(import_react_router_dom.Link,{to:S,"aria-label":m.name,children:e.children})}),(0,import_jsx_runtime.jsx)(MenuSchemaToolbar,{}),g!=null&&(0,import_jsx_runtime.jsx)(import_antd.Badge,P(x({},C),{style:{marginLeft:4,color:(u=(c=m._route.options)==null?void 0:c.badge)==null?void 0:u.textColor,maxWidth:"10em"},dot:!1}))]})})})},resetStyle=import_css.css`
574
+ `,pageContentStyle={flex:1,overflowY:"auto"},ShowTipWhenNoPages=()=>{const{allAccessRoutes:e}=useAllAccessDesktopRoutes(),{designable:t}=useDesignable(),{token:o}=useToken(),{t:r}=(0,import_react_i18next.useTranslation)(),i=(0,import_react_router_dom.useLocation)();return e.length===0&&!t&&["/admin","/admin/"].includes(i.pathname)?(0,import_jsx_runtime.jsx)(import_antd.Result,{icon:(0,import_jsx_runtime.jsx)(import_icons.HighlightOutlined,{style:{fontSize:"8em",color:o.colorText}}),title:r("No pages yet, please configure first"),subTitle:r('Click the "UI Editor" icon in the upper right corner to enter the UI Editor mode')}):null},mobileHeight={height:"calc(100dvh - var(--nb-header-height))"};function isDvhSupported(){const e=document.createElement("div");return e.style.height="1dvh",e.style.height==="1dvh"}const LayoutContent=()=>{const e=(0,import_react2.useMemo)(()=>isDvhSupported()?mobileHeight:void 0,[]);return(0,import_jsx_runtime.jsx)("div",{className:`${layoutContentClass} nb-subpages-slot-without-header-and-side`,style:e,children:(0,import_jsx_runtime.jsxs)("div",{style:pageContentStyle,children:[(0,import_jsx_runtime.jsx)(import_react_router_dom.Outlet,{}),(0,import_jsx_runtime.jsx)(ShowTipWhenNoPages,{})]})})},NocoBaseLogo=()=>{var e,t,o,r,i,n,a,l;const c=useSystemSettings(),{token:u}=useToken(),m=(0,import_react2.useMemo)(()=>({fontSize:u.fontSizeHeading3}),[u.fontSizeHeading3]),d=(o=(t=(e=c==null?void 0:c.data)==null?void 0:e.data)==null?void 0:t.logo)==null?void 0:o.url,p=d?(0,import_jsx_runtime.jsx)("img",{className:className2,src:(n=(i=(r=c==null?void 0:c.data)==null?void 0:r.data)==null?void 0:i.logo)==null?void 0:n.url}):(0,import_jsx_runtime.jsx)("span",{style:m,className:className3,children:(l=(a=c==null?void 0:c.data)==null?void 0:a.data)==null?void 0:l.title});return(0,import_jsx_runtime.jsx)("div",{className:d?className1WithFixedWidth:className1WithAutoWidth,children:c!=null&&c.loading?null:p})},MenuSchemaToolbarWithContainer=()=>{const e=(0,import_react2.useRef)(null),[t,o]=import_react2.default.useState(null);return(0,import_react2.useEffect)(()=>{o(e.current.parentElement.parentElement.parentElement)},[]),(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(MenuSchemaToolbar,{container:t}),(0,import_jsx_runtime.jsx)("div",{ref:e})]})},menuItemStyle={display:"flex",alignItems:"center",justifyContent:"space-between"},GroupItem=e=>{var t,o,r,i;const{item:n}=e,{designable:a}=useDesignable(),l=useEvaluatedExpression((o=(t=n._route.options)==null?void 0:t.badge)==null?void 0:o.count),c={__route__:n._route};return(0,import_jsx_runtime.jsx)(ParentRouteContext.Provider,{value:n._parentRoute,children:(0,import_jsx_runtime.jsx)(NocoBaseRouteContext.Provider,{value:n._route,children:(0,import_jsx_runtime.jsxs)(SortableItem,{id:n._route.id,schema:c,"aria-label":n.name,style:menuItemStyle,children:[e.children,a&&(0,import_jsx_runtime.jsx)(MenuSchemaToolbarWithContainer,{}),l!=null&&(0,import_jsx_runtime.jsx)(import_antd.Badge,P(x({},n._route.options.badge),{count:l,style:{marginLeft:4,color:(i=(r=n._route.options)==null?void 0:r.badge)==null?void 0:i.textColor},dot:!1}))]})})})},WithTooltip=e=>{const{inHeader:t}=(0,import_react2.useContext)(HeaderContext);return(0,import_jsx_runtime.jsx)(import_pro_layout.RouteContext.Consumer,{children:o=>o.collapsed&&!e.hidden&&!t?(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:e.title,placement:"right",children:(0,import_jsx_runtime.jsx)(import_antd.Badge,P(x({},e.badgeProps),{style:{transform:"none"},dot:!1,children:e.children}))}):e.children})},MenuItem=e=>{var t,o,r,i,n,a,l,c,u;const{item:m}=e,{parseURLAndParams:d}=useParseURLAndParams(),p=(0,import_react2.useRef)(null),h=(0,import_react_router_dom.useLocation)(),g=useEvaluatedExpression((o=(t=m._route.options)==null?void 0:t.badge)==null?void 0:o.count),_=useNavigateNoUpdate(),f=useRouterBasename();(0,import_react2.useEffect)(()=>{p.current&&(p.current.parentElement.parentElement.style.order=999,p.current.parentElement.parentElement.style.paddingLeft=0,p.current.parentElement.parentElement.style.padding=0)},[]);const v=(0,import_react2.useCallback)(y=>z(void 0,null,function*(){var F,j,k;const T=(F=m._route.options)==null?void 0:F.href,B=(j=m._route.options)==null?void 0:j.params,w=(k=m._route.options)==null?void 0:k.openInNewWindow;y.preventDefault(),y.stopPropagation();try{const L=yield d(T,B||[]);w!==!1?window.open(L,"_blank"):navigateWithinSelf(T,_,window.location.origin+f)}catch(L){console.error(L),window.open(T,"_blank")}}),[d,m]);if(m._hidden)return null;const b={__route__:m._route};if(m.key==="x-designer-button")return(0,import_jsx_runtime.jsx)("div",{ref:p,children:(0,import_jsx_runtime.jsx)(ResetThemeTokenAndKeepAlgorithm,{children:(0,import_jsx_runtime.jsx)(ParentRouteContext.Provider,{value:m._parentRoute,children:(0,import_jsx_runtime.jsx)(NocoBaseRouteContext.Provider,{value:m._route,children:e.children})})})});if(((r=m._route)==null?void 0:r.type)===NocoBaseDesktopRouteType.link)return(0,import_jsx_runtime.jsx)(ParentRouteContext.Provider,{value:m._parentRoute,children:(0,import_jsx_runtime.jsx)(NocoBaseRouteContext.Provider,{value:m._route,children:(0,import_jsx_runtime.jsxs)(SortableItem,{id:m._route.id,schema:b,style:menuItemStyle,children:[(0,import_jsx_runtime.jsx)("div",{onClick:v,children:(0,import_jsx_runtime.jsx)(import_react_router_dom.Link,{to:h.pathname,"aria-label":m.name,children:e.children})}),(0,import_jsx_runtime.jsx)(MenuSchemaToolbar,{}),g!=null&&(0,import_jsx_runtime.jsx)(import_antd.Badge,P(x({},(i=m._route.options)==null?void 0:i.badge),{count:g,style:{marginLeft:4,color:(a=(n=m._route.options)==null?void 0:n.badge)==null?void 0:a.textColor},dot:!1}))]})})});const S=m.redirect||m.path,C=P(x({},(l=m._route.options)==null?void 0:l.badge),{count:g});return(0,import_jsx_runtime.jsx)(ParentRouteContext.Provider,{value:m._parentRoute,children:(0,import_jsx_runtime.jsx)(NocoBaseRouteContext.Provider,{value:m._route,children:(0,import_jsx_runtime.jsxs)(SortableItem,{id:m._route.id,schema:b,style:menuItemStyle,children:[(0,import_jsx_runtime.jsx)(WithTooltip,{title:m.name,hidden:m._route.type===NocoBaseDesktopRouteType.group||m._depth>0,badgeProps:C,children:(0,import_jsx_runtime.jsx)(import_react_router_dom.Link,{to:S,"aria-label":m.name,children:e.children})}),(0,import_jsx_runtime.jsx)(MenuSchemaToolbar,{}),g!=null&&(0,import_jsx_runtime.jsx)(import_antd.Badge,P(x({},C),{style:{marginLeft:4,color:(u=(c=m._route.options)==null?void 0:c.badge)==null?void 0:u.textColor},dot:!1}))]})})})},resetStyle=import_css.css`
575
575
  .ant-layout-sider-children {
576
576
  margin-inline-end: 0 !important;
577
577
  }
@@ -603,7 +603,7 @@ ${JSON.stringify(E,null,2)}`)},[u,c,l,i,r,j,t,a,n,g,o,_,S,k,C,y,h]),B=(0,import_
603
603
  z-index: 200;
604
604
  transition: left 0.2s;
605
605
  }
606
- `,children:e.children}),document.body)})},collapsedButtonRender=(e,t)=>(0,import_jsx_runtime.jsx)(CollapsedButton,{collapsed:e,children:t}),useHeaderStyle=(0,import_antd_style.createStyles)(({token:e})=>({headerPopup:{"&.ant-menu-submenu-popup>.ant-menu":{backgroundColor:`${e.colorBgHeader}`}},headerMenuActive:{"& .ant-menu-submenu-selected>.ant-menu-submenu-title":{color:e.colorTextHeaderMenuActive}}})),headerContextValue={inHeader:!0},HeaderWrapper=e=>{const{styles:t}=useHeaderStyle();return(0,import_jsx_runtime.jsx)("span",{className:t.headerMenuActive,children:(0,import_jsx_runtime.jsx)(HeaderContext.Provider,{value:headerContextValue,children:e.children})})},headerRender=(e,t)=>(0,import_jsx_runtime.jsx)(HeaderWrapper,{children:t}),IsMobileLayoutContext=import_react2.default.createContext({isMobileLayout:!1,setIsMobileLayout:()=>{}}),MobileLayoutProvider=e=>{const[t,o]=(0,import_react2.useState)(!1),r=(0,import_react2.useMemo)(()=>({isMobileLayout:t,setIsMobileLayout:o}),[t]);return(0,import_jsx_runtime.jsx)(IsMobileLayoutContext.Provider,{value:r,children:e.children})},useMobileLayout=()=>{const{isMobileLayout:e,setIsMobileLayout:t}=(0,import_react2.useContext)(IsMobileLayoutContext);return{isMobileLayout:e,setIsMobileLayout:t}},InternalAdminLayout=()=>{const{allAccessRoutes:e}=useAllAccessDesktopRoutes(),{designable:t}=useDesignable(),o=(0,import_react_router_dom.useLocation)(),{onDragEnd:r}=useMenuDragEnd(),{token:i}=useToken(),{isMobileLayout:n,setIsMobileLayout:a}=useMobileLayout(),[l,c]=(0,import_react2.useState)(n),u=(0,import_react2.useRef)(!1),{t:m}=useMenuTranslation(),d=n?!1:t,{styles:p}=useHeaderStyle(),h=(0,import_react2.useMemo)(()=>({path:"/",children:convertRoutesToLayout(e,{designable:d,isMobile:n,t:m})}),[e,d,n,m]),g=(0,import_react2.useMemo)(()=>({header:{colorBgHeader:i.colorBgHeader,colorTextMenu:i.colorTextHeaderMenu,colorTextMenuSelected:i.colorTextHeaderMenuActive,colorTextMenuActive:i.colorTextHeaderMenuHover,colorBgMenuItemHover:i.colorBgHeaderMenuHover,colorBgMenuItemSelected:i.colorBgHeaderMenuActive,heightLayoutHeader:46,colorHeaderTitle:i.colorTextHeaderMenu},sider:{colorMenuBackground:i.colorBgContainer,colorTextMenu:i.colorText,colorTextMenuSelected:i.colorPrimary,colorBgMenuItemSelected:i.colorPrimaryBg,colorBgMenuItemActive:i.colorPrimaryBg,colorBgMenuItemHover:i.colorBgTextHover},bgLayout:i.colorBgLayout}),[i]),{theme:_,isDarkTheme:f}=useGlobalTheme(),v=(0,import_react2.useMemo)(()=>P(x({},_),{token:P(x({},_.token),{paddingPageHorizontal:8,paddingPageVertical:8,marginBlock:12,borderRadiusBlock:8,fontSize:16}),algorithm:f?[import_antd.theme.compactAlgorithm,import_antd.theme.darkAlgorithm]:import_antd.theme.compactAlgorithm}),[_,f]),b=(0,import_react2.useCallback)(y=>{u.current||c(y)},[]),S=(0,import_react2.useCallback)(()=>{u.current=!0,setTimeout(()=>{u.current=!1})},[]),C=(0,import_react2.useMemo)(()=>({overflowedIndicatorPopupClassName:p.headerPopup}),[p.headerPopup]);return(0,import_jsx_runtime.jsx)(DndContext,{onDragEnd:r,children:(0,import_jsx_runtime.jsx)(import_pro_layout.default,{contentStyle,siderWidth:i.siderWidth||200,className:resetStyle,location:o,route:h,actionsRender,logo:(0,import_jsx_runtime.jsx)(NocoBaseLogo,{}),title:"",layout:"mix",splitMenus:!0,token:g,headerRender,menuItemRender,subMenuItemRender,collapsedButtonRender,onCollapse:b,collapsed:l,onPageChange:S,menuProps:C,children:(0,import_jsx_runtime.jsx)(import_pro_layout.RouteContext.Consumer,{children:y=>{const{isMobile:F}=y;return F!==n&&a(F),(0,import_jsx_runtime.jsx)(import_antd.ConfigProvider,{theme:F?v:_,children:(0,import_jsx_runtime.jsx)(LayoutContent,{})})}})})})},NavigateToDefaultPage=e=>{var t;const{allAccessRoutes:o}=useAllAccessDesktopRoutes(),r=useLocationNoUpdate(),i=(t=findFirstPageRoute(o))==null?void 0:t.schemaUid;return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[e.children,i&&(r.pathname==="/admin"||r.pathname==="/admin/")&&(0,import_jsx_runtime.jsx)(import_react_router_dom.Navigate,{replace:!0,to:`/admin/${i}`})]})},findRouteByMenuSchemaUid=(e,t)=>{var o;if(t)for(const r of t){if(r.menuSchemaUid===e)return r;if((o=r.children)!=null&&o.length){const i=findRouteByMenuSchemaUid(e,r.children);if(i)return i}}},LegacyRouteCompat=e=>{const t=useCurrentPageUid(),{allAccessRoutes:o}=useAllAccessDesktopRoutes(),r=(0,import_react_router_dom.useLocation)(),i=(0,import_react_router_dom.useNavigate)();return(0,import_react2.useEffect)(()=>{const n=findRouteByMenuSchemaUid(t,o);n&&i(r.pathname.replace(t,n.schemaUid)+r.search)},[o,t,r.pathname,r.search,i]),(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:e.children})},AdminProvider=e=>(0,import_jsx_runtime.jsx)(CurrentPageUidProvider,{children:(0,import_jsx_runtime.jsx)(CurrentTabUidProvider,{children:(0,import_jsx_runtime.jsx)(IsSubPageClosedByPageMenuProvider,{children:(0,import_jsx_runtime.jsx)(ACLRolesCheckProvider,{children:(0,import_jsx_runtime.jsx)(RoutesRequestProvider,{children:(0,import_jsx_runtime.jsx)(NavigateToDefaultPage,{children:(0,import_jsx_runtime.jsx)(LegacyRouteCompat,{children:(0,import_jsx_runtime.jsx)(RemoteCollectionManagerProvider,{children:(0,import_jsx_runtime.jsx)(CurrentAppInfoProvider,{children:(0,import_jsx_runtime.jsx)(RemoteSchemaTemplateManagerProvider,{children:e.children})})})})})})})})})}),AdminLayout=e=>(0,import_jsx_runtime.jsx)(AdminProvider,{children:(0,import_jsx_runtime.jsx)(InternalAdminLayout,x({},e))});class AdminLayoutPlugin extends Plugin{afterAdd(){return z(this,null,function*(){yield this.app.pm.add(RemoteSchemaTemplateManagerPlugin)})}load(){return z(this,null,function*(){this.app.schemaSettingsManager.add(userCenterSettings),this.app.addComponents({AdminLayout,AdminDynamicPage}),this.app.use(MobileLayoutProvider)})}}function findRouteBySchemaUid(e,t){var o;if(t){for(const r of t){if(e===r.schemaUid||e===r.menuSchemaUid)return r;if((o=r.children)!=null&&o.length){const i=findRouteBySchemaUid(e,r.children);if(i)return i}}return null}}const MenuDesignerButton=e=>{const{render:t}=useSchemaInitializerRender(menuItemInitializer);return t({style:{background:"none"},"data-testid":e.testId})},MenuTitleWithIcon=e=>e.icon?(0,import_jsx_runtime.jsxs)("div",{style:{display:"flex",alignItems:"center"},children:[(0,import_jsx_runtime.jsx)(Icon,{type:e.icon}),(0,import_jsx_runtime.jsx)("span",{children:e.title})]}):(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:e.title});function convertRoutesToLayout(e,{designable:t,parentRoute:o,isMobile:r,t:i,depth:n=0}){if(!e)return;const a=c=>({key:"x-designer-button",name:(0,import_jsx_runtime.jsx)(MenuDesignerButton,{testId:c}),path:"/",disabled:!0,_route:{},_parentRoute:{},icon:(0,import_jsx_runtime.jsx)(Icon,{type:"setting"})}),l=e.map(c=>{var u,m;const d=n>1?(0,import_jsx_runtime.jsx)(MenuTitleWithIcon,{icon:c.icon,title:i(c.title)}):i(c.title);if(c.type===NocoBaseDesktopRouteType.link)return{name:d,icon:c.icon?(0,import_jsx_runtime.jsx)(Icon,{type:c.icon}):null,path:"/",hideInMenu:c.hideInMenu,_route:c,_parentRoute:o};if(c.type===NocoBaseDesktopRouteType.page)return{name:d,icon:c.icon?(0,import_jsx_runtime.jsx)(Icon,{type:c.icon}):null,path:`/admin/${c.schemaUid}`,redirect:`/admin/${c.schemaUid}`,hideInMenu:c.hideInMenu,_route:c,_parentRoute:o};if(c.type===NocoBaseDesktopRouteType.group){const p=convertRoutesToLayout(c.children,{designable:t,parentRoute:c,depth:n+1,t:i})||[];return t&&n===0&&p.push(P(x({},a("schema-initializer-Menu-side")),{_parentRoute:c})),{name:d,icon:c.icon?(0,import_jsx_runtime.jsx)(Icon,{type:c.icon}):null,path:`/admin/${c.id}`,redirect:((u=p[0])==null?void 0:u.key)==="x-designer-button"?void 0:`/admin/${((m=findFirstPageRoute(c.children))==null?void 0:m.schemaUid)||c.id}`,routes:p.length===0?[{path:"/",name:" ",disabled:!0,_hidden:!0}]:p,hideInMenu:c.hideInMenu,_route:c,_depth:n}}});return t&&n===0&&(r?l.push(x({},a("schema-initializer-Menu-header"))):l.unshift(x({},a("schema-initializer-Menu-header")))),l}function isGroup(e,t){const o=findRouteById(e,t);return(o==null?void 0:o.type)===NocoBaseDesktopRouteType.group}function findRouteById(e,t){var o;for(const r of t){if(Number(e)===Number(r.id))return r;if((o=r.children)!=null&&o.length){const i=findRouteById(e,r.children);if(i)return i}}return null}function findFirstPageRoute(e){var t;if(e)for(const o of e.filter(r=>!r.hideInMenu)){if(o.type===NocoBaseDesktopRouteType.page)return o;if(o.type===NocoBaseDesktopRouteType.group&&(t=o.children)!=null&&t.length){const r=findFirstPageRoute(o.children);if(r)return r}}}const designableStyle={backgroundColor:"var(--colorSettings) !important"},unDesignableStyle={backgroundColor:"transparent"},DesignableSwitch=e=>{const{designable:t,setDesignable:o}=useDesignable(),{t:r}=(0,import_react_i18next.useTranslation)(),{token:i}=useToken(),n=t?designableStyle:unDesignableStyle,{isMobileLayout:a}=useMobileLayout();return(0,import_react_hotkeys_hook.useHotkeys)("Ctrl+Shift+U",()=>o(!t),[t]),a?null:(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:r("UI Editor"),children:(0,import_jsx_runtime.jsx)(import_antd.Button,{"data-testid":"ui-editor-button",icon:(0,import_jsx_runtime.jsx)(import_icons.HighlightOutlined,{style:{color:i.colorTextHeaderMenu}}),title:r("UI Editor"),style:x(x({},n),e.style),onClick:()=>{o(!t)}})})},randomString=(e="")=>`${e}${(0,import_shared.uid)()}`;import_react.Schema.silent(!0);const results={},Registry={silent:!0,compile(e,t={}){const o=()=>{try{return new Function("$root",`with($root) { return (${e}); }`)(t)}catch{return`{{${e}}}`}};return results[e]?results[e]:e.trim().startsWith("t(")?(results[e]=o(),results[e]):o()}};import_react.Schema.registerCompiler(Registry.compile);const SchemaComponentProvider=e=>{const{designable:t,onDesignableChange:o,components:r,children:i}=e,n=(0,import_react2.useContext)(SchemaComponentContext),a=useSchemaOptionsContext(),[l,c]=(0,import_react2.useState)(()=>(0,import_shared.uid)()),u=(0,import_react2.useMemo)(()=>e.form||(0,import_core.createForm)(),[l]),{t:m}=(0,import_react_i18next.useTranslation)(),d=(0,import_react2.useMemo)(()=>P(x({},e.scope),{t:m,randomString}),[e.scope,m,a==null?void 0:a.scope]),[p,h]=(0,import_react2.useState)(t),g=(0,import_react2.useMemo)(()=>typeof t=="boolean"?t:p,[t,p,n.designable]),_=(0,import_react2.useMemo)(()=>b=>{typeof g!="boolean"&&h(b),o==null||o(b)},[g,o]),f=(0,import_react2.useCallback)(()=>{c((0,import_shared.uid)())},[]),v=(0,import_react2.useMemo)(()=>({scope:d,components:r,reset:f,refresh:import_lodash.default.noop,designable:g,setDesignable:_}),[r,g,f,d,_]);return(0,import_jsx_runtime.jsx)(SchemaComponentContext.Provider,{value:v,children:(0,import_jsx_runtime.jsx)(import_react.FormProvider,{form:u,children:(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{inherit:!0,scope:d,components:r,children:i})})})};SchemaComponentProvider.displayName="SchemaComponentProvider";class SchemaComponentPlugin extends Plugin{load(){return z(this,null,function*(){this.addComponents()})}addComponents(){this.app.addComponents({DesignableSwitch})}}const TabsContext=import_react2.default.createContext({}),TabsContextProvider=e=>{var t=e,{children:o}=t,r=W(t,["children"]);return(0,import_jsx_runtime.jsx)(TabsContext.Provider,{value:r,children:o})},useTabsContext=()=>import_react2.default.useContext(TabsContext),randomNestedSchemaKeyStorage={},getRandomNestedSchemaKey=e=>randomNestedSchemaKeyStorage[e]||(randomNestedSchemaKeyStorage[e]=(0,import_shared.uid)()),deleteRandomNestedSchemaKey=e=>delete randomNestedSchemaKeyStorage[e],PopupVisibleProviderContext=import_react2.default.createContext(null),PopupParamsProviderContext=import_react2.default.createContext(null),AllPopupsPropsProviderContext=import_react2.default.createContext(null);PopupVisibleProviderContext.displayName="PopupVisibleProviderContext";PopupParamsProviderContext.displayName="PopupParamsProviderContext";AllPopupsPropsProviderContext.displayName="AllPopupsPropsProviderContext";const PopupVisibleProvider=import_react2.default.memo(({children:e,visible:t,setVisible:o})=>{const r=(0,import_react2.useMemo)(()=>({visible:t,setVisible:o}),[t,o]);return(0,import_jsx_runtime.jsx)(PopupVisibleProviderContext.Provider,{value:r,children:e})});PopupVisibleProvider.displayName="PopupVisibleProvider";const VisibleProvider=import_react2.default.memo(({children:e,popupuid:t})=>{const{closePopup:o}=usePopupUtils(),[r,i]=(0,import_react2.useState)(!0),n=(0,import_react2.useCallback)(a=>{a||(i(!1),setTimeout(()=>{o(),deleteRandomNestedSchemaKey(t)},300))},[o,t]);return(0,import_jsx_runtime.jsx)(PopupVisibleProvider,{visible:r,setVisible:n,children:e})}),PopupParamsProvider=e=>{const t=(0,import_react2.useMemo)(()=>({params:e.params,context:e.context,currentLevel:e.currentLevel}),[e.params,e.context,e.currentLevel]);return(0,import_jsx_runtime.jsx)(PopupParamsProviderContext.Provider,{value:t,children:e.children})},PopupTabsPropsProvider=({children:e})=>{const{params:t}=useCurrentPopupContext(),{changeTab:o}=usePopupUtils(),r=(0,import_react2.useCallback)(n=>{o(n)},[o]),{isPopupVisibleControlledByURL:i}=usePopupSettings();return i()?(0,import_jsx_runtime.jsx)(TabsContextProvider,{activeKey:t==null?void 0:t.tab,onChange:r,children:e}):(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:e})},displayNone$1={display:"none"},PagePopupsItemProvider=({params:e,context:t,currentLevel:o,children:r})=>{const i=x({},getStoredPopupContext(e.popupuid));return t||(t=import_lodash.default.omitBy({dataSource:i.dataSource,collection:i.collection,association:i.association},import_lodash.default.isNil)),import_lodash.default.isEmpty(t)?(0,import_jsx_runtime.jsx)(PopupParamsProvider,{params:e,context:t,currentLevel:o,children:(0,import_jsx_runtime.jsx)(VisibleProvider,{popupuid:e.popupuid,children:(0,import_jsx_runtime.jsx)("div",{style:displayNone$1,children:r})})}):(0,import_jsx_runtime.jsx)(PopupParamsProvider,{params:e,context:t,currentLevel:o,children:(0,import_jsx_runtime.jsx)(DataBlockProvider,{dataSource:t.dataSource,collection:e.collection||t.collection,association:t.association,sourceId:e.sourceid,filterByTk:parseQueryString(e.filterbytk),record:i.record,parentRecord:i.parentRecord,action:"get",children:(0,import_jsx_runtime.jsx)(BlockRequestContextProvider,{recordRequest:i.service,children:(0,import_jsx_runtime.jsx)(PopupTabsPropsProvider,{children:(0,import_jsx_runtime.jsx)(VisibleProvider,{popupuid:e.popupuid,children:(0,import_jsx_runtime.jsx)("div",{style:displayNone$1,children:r})})})})})})},insertChildToParentSchema=({childSchema:e,props:t,parentSchema:o,getPopupSchema:r=i=>import_lodash.default.get(i.properties,Object.keys(i.properties)[0])})=>{const{params:i,context:n,currentLevel:a}=t,l={type:"void","x-component":"PagePopupsItemProvider","x-component-props":{params:i,context:n,currentLevel:a},properties:{popupAction:e}},c=getRandomNestedSchemaKey(i.popupuid);if(o.properties){const u=r(o);import_lodash.default.isEmpty(import_lodash.default.get(u,`properties.${c}`))&&import_lodash.default.set(u,`properties.${c}`,l)}},InternalPagePopups=e=>{const t=(0,import_react.useFieldSchema)(),o=(0,import_react_router_dom.useLocation)(),r=e.paramsList||getPopupParamsFromPath(getPopupPath(o)),{requestSchema:i}=useRequestSchema(),[n,a]=(0,import_react2.useState)(null),l=(0,import_react2.useRef)([]),{savePopupSchemaToSchema:c,getPopupSchemaFromSchema:u}=usePopupUtils();(0,import_react2.useEffect)(()=>{z(void 0,null,function*(){const d=r.map(_=>{var f;return((f=getStoredPopupContext(_.popupuid))==null?void 0:f.schema)||findSchemaByUid(_.popupuid,t==null?void 0:t.root)||i(_.popupuid)}),p=yield Promise.all(d),h=yield Promise.all(p.map((_,f)=>z(void 0,null,function*(){if(import_lodash.default.isEmpty(_))return get404Schema();const v=r[f];if(v.puid){const S=findSchemaByUid(v.puid,t==null?void 0:t.root);if(S)c(import_lodash.default.omit(S,"parent"),_);else try{const C=yield i(v.puid);C&&c(C,_)}catch(C){console.error("Failed to fetch schema for puid:",v.puid,C)}}const b=import_lodash.default.cloneDeepWith(import_lodash.default.omit(_,"parent"),S=>{if((S==null?void 0:S["x-component"])==="Tabs")return S});return b["x-read-pretty"]=!0,b})));l.current=h.map((_,f,v)=>{const b=getPopupContextFromActionOrAssociationFieldSchema(_);let S=!1;for(let C=f+1;C<v.length;C++)if(isSubPageSchema(v[C])){S=!0;break}return{params:r[f],context:b,hidden:S,currentLevel:f+1,isSubPage:isSubPageSchema(_)}});const g=h[0];for(let _=1;_<h.length;_++)insertChildToParentSchema({childSchema:h[_],props:l.current[_],parentSchema:h[_-1],getPopupSchema:f=>u(f)||import_lodash.default.get(f.properties,Object.keys(f.properties)[0])});a(g)})},[t,u,r,i,c]);const m=(0,import_react2.useMemo)(()=>({PagePopupsItemProvider}),[]);return n?(0,import_jsx_runtime.jsx)(AllPopupsPropsProviderContext.Provider,{value:l.current,children:(0,import_jsx_runtime.jsx)(PagePopupsItemProvider,{params:l.current[0].params,context:l.current[0].context,currentLevel:1,children:(0,import_jsx_runtime.jsx)(SchemaComponent,{components:m,schema:n,onlyRenderProperties:!0})})}):null},PagePopups=e=>{const{active:t}=useKeepAlive();return t?(0,import_jsx_runtime.jsx)(InternalPagePopups,x({},e)):null},useRequestSchema=()=>{const e=useAPIClient();return{requestSchema:(0,import_react2.useCallback)(t=>z(void 0,null,function*(){var o;try{return(o=(yield e.request({url:`/uiSchemas:getJsonSchema/${t}`})).data)==null?void 0:o.data}catch(r){return console.error(r),null}}),[])}},getPopupPath=e=>{const[,...t]=e.pathname.split("/popups/");return t.join("/popups/")};function isSubPageSchema(e){return import_lodash.default.get(e,"x-component-props.openMode")==="page"}const useCurrentPopupContext=()=>{const{currentLevel:e}=import_react2.default.useContext(PopupParamsProviderContext)||{},t=import_react2.default.useContext(AllPopupsPropsProviderContext),o=(t==null?void 0:t[e-1])||{};return o.context?Object.setPrototypeOf(o.context,{get blockService(){var r,i;return(r=o==null?void 0:o.params)!=null&&r.popupuid?(i=getBlockService(o.params.popupuid))==null?void 0:i.service:null}}):o.context={get blockService(){var r,i;return(r=o==null?void 0:o.params)!=null&&r.popupuid?(i=getBlockService(o.params.popupuid))==null?void 0:i.service:null}},o};function get404Schema(){return{_isJSONSchemaObject:!0,version:"2.0",type:"void",title:'{{ t("Error message") }}',"x-action":"view","x-toolbar":"ActionSchemaToolbar","x-settings":"actionSettings:view","x-component":"Action.Link","x-component-props":{openMode:"drawer"},"x-action-context":{},"x-decorator":"ACLActionProvider","x-designer-props":{linkageAction:!0},properties:{drawer:{_isJSONSchemaObject:!0,version:"2.0",type:"void",title:"Error message","x-component":"Action.Container","x-component-props":{className:"nb-action-popup",level:99},properties:{tabs:{_isJSONSchemaObject:!0,version:"2.0",type:"void","x-component":"Tabs","x-component-props":{},"x-initializer":"popup:addTab",properties:{tab1:{_isJSONSchemaObject:!0,version:"2.0",type:"void",title:"404","x-component":"Tabs.TabPane","x-designer":"Tabs.Designer","x-component-props":{},properties:{grid:{_isJSONSchemaObject:!0,version:"2.0",type:"void","x-component":function(){return(0,import_jsx_runtime.jsx)(AppNotFound,{})},"x-uid":(0,import_shared.uid)(),"x-async":!1,"x-index":1}},"x-uid":(0,import_shared.uid)(),"x-async":!1,"x-index":1}},"x-uid":(0,import_shared.uid)(),"x-async":!1,"x-index":1}},"x-uid":(0,import_shared.uid)(),"x-async":!1,"x-index":1}},name:(0,import_shared.uid)(),"x-uid":(0,import_shared.uid)(),"x-async":!1,"x-index":2,"x-read-pretty":!0}}function findSchemaByUid(e,t,o={value:null}){var r;return o=o||{value:null},(r=t==null?void 0:t.mapProperties)==null||r.call(t,i=>{i["x-uid"]===e?o.value=i:findSchemaByUid(e,i,o)}),o.value}function parseQueryString(e){var t;return(t=e==null?void 0:e.includes)!=null&&t.call(e,"=")?decodeURIComponent(e).split("&").reduce((o,r)=>{const[i,n]=r.split("=");return o[i]=n,o},{}):e}const useStyles$b=genStyleHook("nb-action-drawer",e=>{const{componentCls:t}=e;return{[t]:{overflow:"hidden","&.reset":{"&.nb-action-popup":{".ant-drawer-header":{display:"none"},".ant-drawer-body":{paddingTop:e.paddingContentVerticalLG,backgroundColor:e.colorBgLayout,paddingBottom:0}},"&.nb-record-picker-selector":{".ant-drawer-content":{backgroundColor:e.colorBgLayout},".nb-block-item":{marginBottom:e.marginBlock,".general-schema-designer":{top:-e.sizeXS,bottom:-e.sizeXS,left:-e.sizeXS,right:-e.sizeXS}}}},".footer":{display:"flex",justifyContent:"flex-end",width:"100%",".ant-btn":{marginRight:e.marginXS}},".ant-drawer-content-wrapper":{borderLeft:"1px solid rgba(255, 255, 255, 0.1)"},".ant-tabs-nav":{paddingLeft:e.paddingLG-e.paddingPageHorizontal,paddingRight:e.paddingLG-e.paddingPageHorizontal,marginLeft:e.paddingPageHorizontal-e.paddingLG,marginRight:e.paddingPageHorizontal-e.paddingLG}}}}),useActionContext=()=>{const e=(0,import_react2.useContext)(ActionContext),{t}=(0,import_react_i18next.useTranslation)(),{modal:o}=import_antd.App.useApp();return P(x({},e),{setVisible:(0,import_react2.useCallback)((r,i=!1)=>{var n,a;r?(a=e.setVisible)==null||a.call(e,r):i&&e.formValueChanged?o.confirm({title:t("Unsaved changes"),content:t("Are you sure you don't want to save?"),onOk(){return z(this,null,function*(){var l;e.setFormValueChanged(!1),(l=e.setVisible)==null||l.call(e,!1)})}}):(n=e.setVisible)==null||n.call(e,!1)},[o,t,e.formValueChanged,e.setVisible,e.setFormValueChanged])})},useCloseAction$1=()=>{const{setVisible:e}=(0,import_react2.useContext)(ActionContext),t=(0,import_react.useForm)();return{run(){return z(this,null,function*(){e(!1),t.submit(o=>{console.log(o)})})}}},useLinkageAction=()=>{const e=(0,import_react.useFieldSchema)(),t=useIsDetailBlock();return["Action.Link","Action"].includes(e["x-component"])&&t&&e["x-action"]},useGetAriaLabelOfDrawer=()=>{const e=(0,import_react.useFieldSchema)(),t=e["x-component"],o=typeof t=="string"?t:(t==null?void 0:t.displayName)||(t==null?void 0:t.name),r=useCompile();let{name:i}=useCollection_deprecated(),n=r(e.title);return i=i?`-${i}`:"",n=n?`-${n}`:"",{getAriaLabel:(0,import_react2.useCallback)(a=>(a=a?`-${a}`:"",`drawer-${o}${i}${n}${a}`),[i,o,n])}},zIndexContext=import_react2.default.createContext(100),useZIndexContext=()=>import_react2.default.useContext(zIndexContext),getZIndex=(e,t,o)=>{let r=t;return e==="page"&&!window.location.pathname.includes("/embed/")?(r=t+o,r>200?r-200:r):(r=t+o,r<200?r+200:r)},MemoizeRecursionField$1=import_react2.default.memo(import_react.RecursionField);MemoizeRecursionField$1.displayName="MemoizeRecursionField";const DrawerErrorFallback=e=>{const{visible:t,setVisible:o}=useActionContext();return(0,import_jsx_runtime.jsx)(import_antd.Drawer,{open:t,onClose:()=>o(!1,!0),width:"50%",children:(0,import_jsx_runtime.jsx)(ErrorFallback,x({},e))})},openSizeWidthMap$1=new Map([["small","30%"],["middle","50%"],["large","70%"]]),ActionDrawerContent=import_react2.default.memo(({footerNodeName:e,field:t,schema:o})=>{const[r,i]=(0,import_react2.useState)(!1),n=(0,import_react2.useCallback)(a=>a["x-component"]!==e,[e]);return(0,import_react2.useEffect)(()=>{(0,import_react2.startTransition)(()=>{i(!0)})},[]),r?(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{basePath:t.address,schema:o,onlyRenderProperties:!0,filterProperties:n}):null});ActionDrawerContent.displayName="ActionDrawerContent";const InternalActionDrawer=(0,import_react.observer)(e=>{const t=e,{footerNodeName:o="Action.Drawer.Footer",zIndex:r,onClose:i}=t,n=W(t,["footerNodeName","zIndex","onClose"]),{visible:a,setVisible:l,openSize:c="middle",drawerProps:u}=useActionContext(),m=(0,import_react.useFieldSchema)(),d=(0,import_react.useField)(),{t:p}=(0,import_react_i18next.useTranslation)(),{componentCls:h,hashId:g}=useStyles$b(),_=useTabsContext(),f=useZIndexContext(),v=m.reduceProperties((j,k)=>k["x-component"]===o?k:j),{hidden:b}=useCurrentPopupContext(),S=(0,import_react2.useMemo)(()=>P(x(x({},u==null?void 0:u.style),n==null?void 0:n.style),{display:b?"none":"block"}),[b,u==null?void 0:u.style,n==null?void 0:n.style]),C=getZIndex("drawer",r||f,e.level||0),y=(0,import_react2.useCallback)(j=>{l(!1,!0),i==null||i(j)},[l,i]),F=(0,import_react2.useCallback)(j=>j["x-component"]===o,[o]);return(0,import_jsx_runtime.jsx)(ActionContextNoRerender,{children:(0,import_jsx_runtime.jsx)(zIndexContext.Provider,{value:C,children:(0,import_jsx_runtime.jsx)(TabsContextProvider,P(x({},_),{tabBarExtraContent:null,children:(0,import_jsx_runtime.jsx)(import_antd.Drawer,P(x(x({zIndex:C,width:openSizeWidthMap$1.get(c),title:typeof d.title=="string"?p(d.title,{ns:NAMESPACE_UI_SCHEMA}):d.title},n),u),{rootStyle:S,destroyOnClose:!0,open:a,onClose:y,rootClassName:(0,import_classnames.default)(h,g,u==null?void 0:u.className,n.className,"reset"),footer:v&&(0,import_jsx_runtime.jsx)("div",{className:"footer",children:(0,import_jsx_runtime.jsx)(MemoizeRecursionField$1,{basePath:d.address,schema:m,onlyRenderProperties:!0,filterProperties:F})}),children:(0,import_jsx_runtime.jsx)(ActionDrawerContent,{footerNodeName:o,field:d,schema:m})}))}))})})},{displayName:"InternalActionDrawer"}),ActionDrawer=import_react2.default.memo(e=>(0,import_jsx_runtime.jsx)(import_react_error_boundary.ErrorBoundary,{FallbackComponent:DrawerErrorFallback,onError:console.log,children:(0,import_jsx_runtime.jsx)(InternalActionDrawer,x({},e))}));ActionDrawer.displayName="ActionDrawer";ActionDrawer.Footer=(0,import_react.observer)(()=>{const e=(0,import_react.useField)(),t=(0,import_react.useFieldSchema)();return(0,import_jsx_runtime.jsx)(MemoizeRecursionField$1,{basePath:e.address,schema:t,onlyRenderProperties:!0})},{displayName:"ActionDrawer.Footer"});ActionDrawer.FootBar=(0,import_react.observer)(()=>{const e=(0,import_react.useField)(),t=(0,import_react.useFieldSchema)();return(0,import_jsx_runtime.jsx)("div",{className:"ant-drawer-footer",style:{position:"absolute",bottom:0,right:0,left:0},children:(0,import_jsx_runtime.jsx)("div",{className:"footer",children:(0,import_jsx_runtime.jsx)(MemoizeRecursionField$1,{basePath:e.address,schema:t,onlyRenderProperties:!0})})})},{displayName:"ActionDrawer.FootBar"});const useGetAriaLabelOfModal=()=>{const e=(0,import_react.useFieldSchema)(),t=e["x-component"],o=typeof t=="string"?t:(t==null?void 0:t.displayName)||(t==null?void 0:t.name),r=useCompile();let{name:i}=useCollection_deprecated(),n=r(e.title);return i=i?`-${i}`:"",n=n?`-${n}`:"",{getAriaLabel:(0,import_react2.useCallback)(a=>(a=a?`-${a}`:"",`modal-${o}${i}${n}${a}`),[i,o,n])}},ModalErrorFallback=e=>{const{visible:t,setVisible:o}=useActionContext();return(0,import_jsx_runtime.jsx)(import_antd.Modal,{open:t,onCancel:()=>o(!1,!0),width:"60%",children:(0,import_jsx_runtime.jsx)(ErrorFallback,x({},e))})},openSizeWidthMap=new Map([["small","40%"],["middle","60%"],["large","80%"]]),ActionModalContent=import_react2.default.memo(({footerNodeName:e,field:t,schema:o})=>{const[r,i]=(0,import_react2.useState)(!1);return(0,import_react2.useEffect)(()=>{(0,import_react2.startTransition)(()=>{i(!0)})},[]),r?(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{basePath:t.address,schema:o,onlyRenderProperties:!0,filterProperties:n=>n["x-component"]!==e}):null});function useDelayedVisible(e,t=200){const[o,r]=(0,import_react2.useState)(t===0);return(0,import_react2.useEffect)(()=>{if(!o)if(e){const i=setTimeout(()=>r(!0),t);return()=>clearTimeout(i)}else r(!1)},[t,o,e]),o}const InternalActionModal=(0,import_react.observer)(e=>{const t=e,{footerNodeName:o="Action.Modal.Footer",width:r,zIndex:i,delay:n=200}=t,a=W(t,["footerNodeName","width","zIndex","delay"]),{visible:l,setVisible:c,openSize:u="middle",modalProps:m}=useActionContext(),d=r??openSizeWidthMap.get(u),p=(0,import_react.useFieldSchema)(),h=(0,import_react.useField)(),{token:g}=useToken(),_=useTabsContext(),f=useZIndexContext(),v=p.reduceProperties((F,j)=>j["x-component"]===o?j:F),{hidden:b}=useCurrentPopupContext(),S=!!v,C=getZIndex("modal",i||f,e.level||0),y=useDelayedVisible(l,n);return(0,import_jsx_runtime.jsx)(ActionContextNoRerender,{children:(0,import_jsx_runtime.jsx)(zIndexContext.Provider,{value:C,children:(0,import_jsx_runtime.jsx)(TabsContextProvider,P(x({},_),{tabBarExtraContent:null,children:(0,import_jsx_runtime.jsx)(import_antd.Modal,P(x(x({zIndex:b?-1:C,width:d,title:h.title},a),m),{style:x(x({},m==null?void 0:m.style),a==null?void 0:a.style),destroyOnClose:!0,open:l,onCancel:()=>{c(!1,!0)},className:(0,import_classnames.default)(a.className,m==null?void 0:m.className,import_css.css`
606
+ `,children:e.children}),document.body)})},collapsedButtonRender=(e,t)=>(0,import_jsx_runtime.jsx)(CollapsedButton,{collapsed:e,children:t}),useHeaderStyle=(0,import_antd_style.createStyles)(({token:e})=>({headerPopup:{"&.ant-menu-submenu-popup>.ant-menu":{backgroundColor:`${e.colorBgHeader}`}},headerMenuActive:{"& .ant-menu-submenu-selected>.ant-menu-submenu-title":{color:e.colorTextHeaderMenuActive}}})),headerContextValue={inHeader:!0},HeaderWrapper=e=>{const{styles:t}=useHeaderStyle();return(0,import_jsx_runtime.jsx)("span",{className:t.headerMenuActive,children:(0,import_jsx_runtime.jsx)(HeaderContext.Provider,{value:headerContextValue,children:e.children})})},headerRender=(e,t)=>(0,import_jsx_runtime.jsx)(HeaderWrapper,{children:t}),IsMobileLayoutContext=import_react2.default.createContext({isMobileLayout:!1,setIsMobileLayout:()=>{}}),MobileLayoutProvider=e=>{const[t,o]=(0,import_react2.useState)(!1),r=(0,import_react2.useMemo)(()=>({isMobileLayout:t,setIsMobileLayout:o}),[t]);return(0,import_jsx_runtime.jsx)(IsMobileLayoutContext.Provider,{value:r,children:e.children})},useMobileLayout=()=>{const{isMobileLayout:e,setIsMobileLayout:t}=(0,import_react2.useContext)(IsMobileLayoutContext);return{isMobileLayout:e,setIsMobileLayout:t}},InternalAdminLayout=()=>{const{allAccessRoutes:e}=useAllAccessDesktopRoutes(),{designable:t}=useDesignable(),o=(0,import_react_router_dom.useLocation)(),{onDragEnd:r}=useMenuDragEnd(),{token:i}=useToken(),{isMobileLayout:n,setIsMobileLayout:a}=useMobileLayout(),[l,c]=(0,import_react2.useState)(n),u=(0,import_react2.useRef)(!1),{t:m}=useMenuTranslation(),d=n?!1:t,{styles:p}=useHeaderStyle(),h=(0,import_react2.useMemo)(()=>({path:"/",children:convertRoutesToLayout(e,{designable:d,isMobile:n,t:m})}),[e,d,n,m]),g=(0,import_react2.useMemo)(()=>({header:{colorBgHeader:i.colorBgHeader,colorTextMenu:i.colorTextHeaderMenu,colorTextMenuSelected:i.colorTextHeaderMenuActive,colorTextMenuActive:i.colorTextHeaderMenuHover,colorBgMenuItemHover:i.colorBgHeaderMenuHover,colorBgMenuItemSelected:i.colorBgHeaderMenuActive,heightLayoutHeader:46,colorHeaderTitle:i.colorTextHeaderMenu},sider:{colorMenuBackground:i.colorBgContainer,colorTextMenu:i.colorText,colorTextMenuSelected:i.colorPrimary,colorBgMenuItemSelected:i.colorPrimaryBg,colorBgMenuItemActive:i.colorPrimaryBg,colorBgMenuItemHover:i.colorBgTextHover},bgLayout:i.colorBgLayout}),[i]),{theme:_,isDarkTheme:f}=useGlobalTheme(),v=(0,import_react2.useMemo)(()=>P(x({},_),{token:P(x({},_.token),{paddingPageHorizontal:8,paddingPageVertical:8,marginBlock:12,borderRadiusBlock:8,fontSize:16}),algorithm:f?[import_antd.theme.compactAlgorithm,import_antd.theme.darkAlgorithm]:import_antd.theme.compactAlgorithm}),[_,f]),b=(0,import_react2.useCallback)(y=>{u.current||c(y)},[]),S=(0,import_react2.useCallback)(()=>{u.current=!0,setTimeout(()=>{u.current=!1})},[]),C=(0,import_react2.useMemo)(()=>({overflowedIndicatorPopupClassName:p.headerPopup}),[p.headerPopup]);return(0,import_jsx_runtime.jsx)(DndContext,{onDragEnd:r,children:(0,import_jsx_runtime.jsx)(import_pro_layout.default,{contentStyle,siderWidth:i.siderWidth||200,className:resetStyle,location:o,route:h,actionsRender,logo:(0,import_jsx_runtime.jsx)(NocoBaseLogo,{}),title:"",layout:"mix",splitMenus:!0,token:g,headerRender,menuItemRender,subMenuItemRender,collapsedButtonRender,onCollapse:b,collapsed:l,onPageChange:S,menuProps:C,children:(0,import_jsx_runtime.jsx)(import_pro_layout.RouteContext.Consumer,{children:y=>{const{isMobile:F}=y;return F!==n&&a(F),(0,import_jsx_runtime.jsx)(import_antd.ConfigProvider,{theme:F?v:_,children:(0,import_jsx_runtime.jsx)(LayoutContent,{})})}})})})},NavigateToDefaultPage=e=>{var t;const{allAccessRoutes:o}=useAllAccessDesktopRoutes(),r=useLocationNoUpdate(),i=(t=findFirstPageRoute(o))==null?void 0:t.schemaUid;return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[e.children,i&&(r.pathname==="/admin"||r.pathname==="/admin/")&&(0,import_jsx_runtime.jsx)(import_react_router_dom.Navigate,{replace:!0,to:`/admin/${i}`})]})},findRouteByMenuSchemaUid=(e,t)=>{var o;if(t)for(const r of t){if(r.menuSchemaUid===e)return r;if((o=r.children)!=null&&o.length){const i=findRouteByMenuSchemaUid(e,r.children);if(i)return i}}},LegacyRouteCompat=e=>{const t=useCurrentPageUid(),{allAccessRoutes:o}=useAllAccessDesktopRoutes(),r=(0,import_react_router_dom.useLocation)(),i=(0,import_react_router_dom.useNavigate)();return(0,import_react2.useEffect)(()=>{const n=findRouteByMenuSchemaUid(t,o);n&&i(r.pathname.replace(t,n.schemaUid)+r.search)},[o,t,r.pathname,r.search,i]),(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:e.children})},AdminProvider=e=>(0,import_jsx_runtime.jsx)(CurrentPageUidProvider,{children:(0,import_jsx_runtime.jsx)(CurrentTabUidProvider,{children:(0,import_jsx_runtime.jsx)(IsSubPageClosedByPageMenuProvider,{children:(0,import_jsx_runtime.jsx)(ACLRolesCheckProvider,{children:(0,import_jsx_runtime.jsx)(RoutesRequestProvider,{children:(0,import_jsx_runtime.jsx)(NavigateToDefaultPage,{children:(0,import_jsx_runtime.jsx)(LegacyRouteCompat,{children:(0,import_jsx_runtime.jsx)(RemoteCollectionManagerProvider,{children:(0,import_jsx_runtime.jsx)(CurrentAppInfoProvider,{children:(0,import_jsx_runtime.jsx)(RemoteSchemaTemplateManagerProvider,{children:e.children})})})})})})})})})}),AdminLayout=e=>(0,import_jsx_runtime.jsx)(AdminProvider,{children:(0,import_jsx_runtime.jsx)(InternalAdminLayout,x({},e))});class AdminLayoutPlugin extends Plugin{afterAdd(){return z(this,null,function*(){yield this.app.pm.add(RemoteSchemaTemplateManagerPlugin)})}load(){return z(this,null,function*(){this.app.schemaSettingsManager.add(userCenterSettings),this.app.addComponents({AdminLayout,AdminDynamicPage}),this.app.use(MobileLayoutProvider)})}}function findRouteBySchemaUid(e,t){var o;if(t){for(const r of t){if(e===r.schemaUid||e===r.menuSchemaUid)return r;if((o=r.children)!=null&&o.length){const i=findRouteBySchemaUid(e,r.children);if(i)return i}}return null}}const MenuDesignerButton=e=>{const{render:t}=useSchemaInitializerRender(menuItemInitializer);return t({style:{background:"none"},"data-testid":e.testId})},MenuTitleWithIcon=e=>e.icon?(0,import_jsx_runtime.jsxs)("div",{style:{display:"flex",alignItems:"center"},children:[(0,import_jsx_runtime.jsx)(Icon,{type:e.icon}),(0,import_jsx_runtime.jsx)("span",{children:e.title})]}):(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:e.title});function convertRoutesToLayout(e,{designable:t,parentRoute:o,isMobile:r,t:i,depth:n=0}){if(!e)return;const a=c=>({key:"x-designer-button",name:(0,import_jsx_runtime.jsx)(MenuDesignerButton,{testId:c}),path:"/",disabled:!0,_route:{},_parentRoute:{},icon:(0,import_jsx_runtime.jsx)(Icon,{type:"setting"})}),l=e.map(c=>{var u,m;const d=n>1?(0,import_jsx_runtime.jsx)(MenuTitleWithIcon,{icon:c.icon,title:i(c.title)}):i(c.title);if(c.type===NocoBaseDesktopRouteType.link)return{name:d,icon:c.icon?(0,import_jsx_runtime.jsx)(Icon,{type:c.icon}):null,path:"/",hideInMenu:c.hideInMenu,_route:c,_parentRoute:o};if(c.type===NocoBaseDesktopRouteType.page)return{name:d,icon:c.icon?(0,import_jsx_runtime.jsx)(Icon,{type:c.icon}):null,path:`/admin/${c.schemaUid}`,redirect:`/admin/${c.schemaUid}`,hideInMenu:c.hideInMenu,_route:c,_parentRoute:o};if(c.type===NocoBaseDesktopRouteType.group){const p=convertRoutesToLayout(c.children,{designable:t,parentRoute:c,depth:n+1,t:i})||[];return t&&n===0&&p.push(P(x({},a("schema-initializer-Menu-side")),{_parentRoute:c})),{name:d,icon:c.icon?(0,import_jsx_runtime.jsx)(Icon,{type:c.icon}):null,path:`/admin/${c.id}`,redirect:((u=p[0])==null?void 0:u.key)==="x-designer-button"?void 0:`/admin/${((m=findFirstPageRoute(c.children))==null?void 0:m.schemaUid)||c.id}`,routes:p.length===0?[{path:"/",name:" ",disabled:!0,_hidden:!0}]:p,hideInMenu:c.hideInMenu,_route:c,_depth:n}}});return t&&n===0&&(r?l.push(x({},a("schema-initializer-Menu-header"))):l.unshift(x({},a("schema-initializer-Menu-header")))),l}function isGroup(e,t){const o=findRouteById(e,t);return(o==null?void 0:o.type)===NocoBaseDesktopRouteType.group}function findRouteById(e,t){var o;for(const r of t){if(Number(e)===Number(r.id))return r;if((o=r.children)!=null&&o.length){const i=findRouteById(e,r.children);if(i)return i}}return null}function findFirstPageRoute(e){var t;if(e)for(const o of e.filter(r=>!r.hideInMenu)){if(o.type===NocoBaseDesktopRouteType.page)return o;if(o.type===NocoBaseDesktopRouteType.group&&(t=o.children)!=null&&t.length){const r=findFirstPageRoute(o.children);if(r)return r}}}const designableStyle={backgroundColor:"var(--colorSettings) !important"},unDesignableStyle={backgroundColor:"transparent"},DesignableSwitch=e=>{const{designable:t,setDesignable:o}=useDesignable(),{t:r}=(0,import_react_i18next.useTranslation)(),{token:i}=useToken(),n=t?designableStyle:unDesignableStyle,{isMobileLayout:a}=useMobileLayout();return(0,import_react_hotkeys_hook.useHotkeys)("Ctrl+Shift+U",()=>o(!t),[t]),a?null:(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:r("UI Editor"),children:(0,import_jsx_runtime.jsx)(import_antd.Button,{"data-testid":"ui-editor-button",icon:(0,import_jsx_runtime.jsx)(import_icons.HighlightOutlined,{style:{color:i.colorTextHeaderMenu}}),title:r("UI Editor"),style:x(x({},n),e.style),onClick:()=>{o(!t)}})})},randomString=(e="")=>`${e}${(0,import_shared.uid)()}`;import_react.Schema.silent(!0);const results={},Registry={silent:!0,compile(e,t={}){const o=()=>{try{return new Function("$root",`with($root) { return (${e}); }`)(t)}catch{return`{{${e}}}`}};return results[e]?results[e]:e.trim().startsWith("t(")?(results[e]=o(),results[e]):o()}};import_react.Schema.registerCompiler(Registry.compile);const SchemaComponentProvider=e=>{const{designable:t,onDesignableChange:o,components:r,children:i}=e,n=(0,import_react2.useContext)(SchemaComponentContext),a=useSchemaOptionsContext(),[l,c]=(0,import_react2.useState)(()=>(0,import_shared.uid)()),u=(0,import_react2.useMemo)(()=>e.form||(0,import_core.createForm)(),[l]),{t:m}=(0,import_react_i18next.useTranslation)(),d=(0,import_react2.useMemo)(()=>P(x({},e.scope),{t:m,randomString}),[e.scope,m,a==null?void 0:a.scope]),[p,h]=(0,import_react2.useState)(t),g=(0,import_react2.useMemo)(()=>typeof t=="boolean"?t:p,[t,p,n.designable]),_=(0,import_react2.useMemo)(()=>b=>{typeof g!="boolean"&&h(b),o==null||o(b)},[g,o]),f=(0,import_react2.useCallback)(()=>{c((0,import_shared.uid)())},[]),v=(0,import_react2.useMemo)(()=>({scope:d,components:r,reset:f,refresh:import_lodash.default.noop,designable:g,setDesignable:_}),[r,g,f,d,_]);return(0,import_jsx_runtime.jsx)(SchemaComponentContext.Provider,{value:v,children:(0,import_jsx_runtime.jsx)(import_react.FormProvider,{form:u,children:(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{inherit:!0,scope:d,components:r,children:i})})})};SchemaComponentProvider.displayName="SchemaComponentProvider";class SchemaComponentPlugin extends Plugin{load(){return z(this,null,function*(){this.addComponents()})}addComponents(){this.app.addComponents({DesignableSwitch})}}const TabsContext=import_react2.default.createContext({}),TabsContextProvider=e=>{var t=e,{children:o}=t,r=W(t,["children"]);return(0,import_jsx_runtime.jsx)(TabsContext.Provider,{value:r,children:o})},useTabsContext=()=>import_react2.default.useContext(TabsContext),randomNestedSchemaKeyStorage={},getRandomNestedSchemaKey=e=>randomNestedSchemaKeyStorage[e]||(randomNestedSchemaKeyStorage[e]=(0,import_shared.uid)()),deleteRandomNestedSchemaKey=e=>delete randomNestedSchemaKeyStorage[e],PopupVisibleProviderContext=import_react2.default.createContext(null),PopupParamsProviderContext=import_react2.default.createContext(null),AllPopupsPropsProviderContext=import_react2.default.createContext(null);PopupVisibleProviderContext.displayName="PopupVisibleProviderContext";PopupParamsProviderContext.displayName="PopupParamsProviderContext";AllPopupsPropsProviderContext.displayName="AllPopupsPropsProviderContext";const PopupVisibleProvider=import_react2.default.memo(({children:e,visible:t,setVisible:o})=>{const r=(0,import_react2.useMemo)(()=>({visible:t,setVisible:o}),[t,o]);return(0,import_jsx_runtime.jsx)(PopupVisibleProviderContext.Provider,{value:r,children:e})});PopupVisibleProvider.displayName="PopupVisibleProvider";const VisibleProvider=import_react2.default.memo(({children:e,popupuid:t})=>{const{closePopup:o}=usePopupUtils(),[r,i]=(0,import_react2.useState)(!0),n=(0,import_react2.useCallback)(a=>{a||(i(!1),setTimeout(()=>{o(),deleteRandomNestedSchemaKey(t)},300))},[o,t]);return(0,import_jsx_runtime.jsx)(PopupVisibleProvider,{visible:r,setVisible:n,children:e})}),PopupParamsProvider=e=>{const t=(0,import_react2.useMemo)(()=>({params:e.params,context:e.context,currentLevel:e.currentLevel}),[e.params,e.context,e.currentLevel]);return(0,import_jsx_runtime.jsx)(PopupParamsProviderContext.Provider,{value:t,children:e.children})},PopupTabsPropsProvider=({children:e})=>{const{params:t}=useCurrentPopupContext(),{changeTab:o}=usePopupUtils(),r=(0,import_react2.useCallback)(n=>{o(n)},[o]),{isPopupVisibleControlledByURL:i}=usePopupSettings();return i()?(0,import_jsx_runtime.jsx)(TabsContextProvider,{activeKey:t==null?void 0:t.tab,onChange:r,children:e}):(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:e})},displayNone$1={display:"none"},PagePopupsItemProvider=({params:e,context:t,currentLevel:o,children:r})=>{const i=x({},getStoredPopupContext(e.popupuid));return(0,import_react2.useEffect)(()=>()=>{removePopupLayerState(o)},[o]),t||(t=import_lodash.default.omitBy({dataSource:i.dataSource,collection:i.collection,association:i.association},import_lodash.default.isNil)),import_lodash.default.isEmpty(t)?(0,import_jsx_runtime.jsx)(PopupParamsProvider,{params:e,context:t,currentLevel:o,children:(0,import_jsx_runtime.jsx)(VisibleProvider,{popupuid:e.popupuid,children:(0,import_jsx_runtime.jsx)("div",{style:displayNone$1,children:r})})}):(0,import_jsx_runtime.jsx)(PopupParamsProvider,{params:e,context:t,currentLevel:o,children:(0,import_jsx_runtime.jsx)(DataBlockProvider,{dataSource:t.dataSource,collection:e.collection||t.collection,association:t.association,sourceId:e.sourceid,filterByTk:parseQueryString(e.filterbytk),record:i.record,parentRecord:i.parentRecord,action:"get",children:(0,import_jsx_runtime.jsx)(BlockRequestContextProvider,{recordRequest:i.service,children:(0,import_jsx_runtime.jsx)(PopupTabsPropsProvider,{children:(0,import_jsx_runtime.jsx)(VisibleProvider,{popupuid:e.popupuid,children:(0,import_jsx_runtime.jsx)("div",{style:displayNone$1,children:r})})})})})})},insertChildToParentSchema=({childSchema:e,props:t,parentSchema:o,getPopupSchema:r=i=>import_lodash.default.get(i.properties,Object.keys(i.properties)[0])})=>{const{params:i,context:n,currentLevel:a}=t,l={type:"void","x-component":"PagePopupsItemProvider","x-component-props":{params:i,context:n,currentLevel:a},properties:{popupAction:e}},c=getRandomNestedSchemaKey(i.popupuid);if(o.properties){const u=r(o);import_lodash.default.isEmpty(import_lodash.default.get(u,`properties.${c}`))&&import_lodash.default.set(u,`properties.${c}`,l)}},InternalPagePopups=e=>{const t=(0,import_react.useFieldSchema)(),o=(0,import_react_router_dom.useLocation)(),r=e.paramsList||getPopupParamsFromPath(getPopupPath(o)),{requestSchema:i}=useRequestSchema(),[n,a]=(0,import_react2.useState)(null),l=(0,import_react2.useRef)([]),{savePopupSchemaToSchema:c,getPopupSchemaFromSchema:u}=usePopupUtils();(0,import_react2.useEffect)(()=>{z(void 0,null,function*(){const d=r.map(_=>{var f;return((f=getStoredPopupContext(_.popupuid))==null?void 0:f.schema)||findSchemaByUid(_.popupuid,t==null?void 0:t.root)||i(_.popupuid)}),p=yield Promise.all(d),h=yield Promise.all(p.map((_,f)=>z(void 0,null,function*(){if(import_lodash.default.isEmpty(_))return get404Schema();const v=r[f];if(v.puid){const S=findSchemaByUid(v.puid,t==null?void 0:t.root);if(S)c(import_lodash.default.omit(S,"parent"),_);else try{const C=yield i(v.puid);C&&c(C,_)}catch(C){console.error("Failed to fetch schema for puid:",v.puid,C)}}const b=import_lodash.default.cloneDeepWith(import_lodash.default.omit(_,"parent"),S=>{if((S==null?void 0:S["x-component"])==="Tabs")return S});return b["x-read-pretty"]=!0,b})));l.current=h.map((_,f,v)=>{const b=getPopupContextFromActionOrAssociationFieldSchema(_);let S=!1;for(let C=f+1;C<v.length;C++)if(isSubPageSchema(v[C])){S=!0;break}return{params:r[f],context:b,hidden:S,currentLevel:f+1,isSubPage:isSubPageSchema(_)}});const g=h[0];for(let _=1;_<h.length;_++)insertChildToParentSchema({childSchema:h[_],props:l.current[_],parentSchema:h[_-1],getPopupSchema:f=>u(f)||import_lodash.default.get(f.properties,Object.keys(f.properties)[0])});a(g)})},[t,u,r,i,c]);const m=(0,import_react2.useMemo)(()=>({PagePopupsItemProvider}),[]);return n?(0,import_jsx_runtime.jsx)(AllPopupsPropsProviderContext.Provider,{value:l.current,children:(0,import_jsx_runtime.jsx)(PagePopupsItemProvider,{params:l.current[0].params,context:l.current[0].context,currentLevel:1,children:(0,import_jsx_runtime.jsx)(SchemaComponent,{components:m,schema:n,onlyRenderProperties:!0})})}):null},PagePopups=e=>{const{active:t}=useKeepAlive();return t?(0,import_jsx_runtime.jsx)(InternalPagePopups,x({},e)):null},useRequestSchema=()=>{const e=useAPIClient();return{requestSchema:(0,import_react2.useCallback)(t=>z(void 0,null,function*(){var o;try{return(o=(yield e.request({url:`/uiSchemas:getJsonSchema/${t}`})).data)==null?void 0:o.data}catch(r){return console.error(r),null}}),[])}},getPopupPath=e=>{const[,...t]=e.pathname.split("/popups/");return t.join("/popups/")};function isSubPageSchema(e){return import_lodash.default.get(e,"x-component-props.openMode")==="page"}const useCurrentPopupContext=()=>{const{currentLevel:e}=import_react2.default.useContext(PopupParamsProviderContext)||{},t=import_react2.default.useContext(AllPopupsPropsProviderContext),o=(t==null?void 0:t[e-1])||{};return o.context?Object.setPrototypeOf(o.context,{get blockService(){var r,i;return(r=o==null?void 0:o.params)!=null&&r.popupuid?(i=getBlockService(o.params.popupuid))==null?void 0:i.service:null}}):o.context={get blockService(){var r,i;return(r=o==null?void 0:o.params)!=null&&r.popupuid?(i=getBlockService(o.params.popupuid))==null?void 0:i.service:null}},o};function get404Schema(){return{_isJSONSchemaObject:!0,version:"2.0",type:"void",title:'{{ t("Error message") }}',"x-action":"view","x-toolbar":"ActionSchemaToolbar","x-settings":"actionSettings:view","x-component":"Action.Link","x-component-props":{openMode:"drawer"},"x-action-context":{},"x-decorator":"ACLActionProvider","x-designer-props":{linkageAction:!0},properties:{drawer:{_isJSONSchemaObject:!0,version:"2.0",type:"void",title:"Error message","x-component":"Action.Container","x-component-props":{className:"nb-action-popup",level:99},properties:{tabs:{_isJSONSchemaObject:!0,version:"2.0",type:"void","x-component":"Tabs","x-component-props":{},"x-initializer":"popup:addTab",properties:{tab1:{_isJSONSchemaObject:!0,version:"2.0",type:"void",title:"404","x-component":"Tabs.TabPane","x-designer":"Tabs.Designer","x-component-props":{},properties:{grid:{_isJSONSchemaObject:!0,version:"2.0",type:"void","x-component":function(){return(0,import_jsx_runtime.jsx)(AppNotFound,{})},"x-uid":(0,import_shared.uid)(),"x-async":!1,"x-index":1}},"x-uid":(0,import_shared.uid)(),"x-async":!1,"x-index":1}},"x-uid":(0,import_shared.uid)(),"x-async":!1,"x-index":1}},"x-uid":(0,import_shared.uid)(),"x-async":!1,"x-index":1}},name:(0,import_shared.uid)(),"x-uid":(0,import_shared.uid)(),"x-async":!1,"x-index":2,"x-read-pretty":!0}}function findSchemaByUid(e,t,o={value:null}){var r;return o=o||{value:null},(r=t==null?void 0:t.mapProperties)==null||r.call(t,i=>{i["x-uid"]===e?o.value=i:findSchemaByUid(e,i,o)}),o.value}function parseQueryString(e){var t;return(t=e==null?void 0:e.includes)!=null&&t.call(e,"=")?decodeURIComponent(e).split("&").reduce((o,r)=>{const[i,n]=r.split("=");return o[i]=n,o},{}):e}const useStyles$b=genStyleHook("nb-action-drawer",e=>{const{componentCls:t}=e;return{[t]:{overflow:"hidden","&.reset":{"&.nb-action-popup":{".ant-drawer-header":{display:"none"},".ant-drawer-body":{paddingTop:e.paddingContentVerticalLG,backgroundColor:e.colorBgLayout,paddingBottom:0}},"&.nb-record-picker-selector":{".ant-drawer-content":{backgroundColor:e.colorBgLayout},".nb-block-item":{marginBottom:e.marginBlock,".general-schema-designer":{top:-e.sizeXS,bottom:-e.sizeXS,left:-e.sizeXS,right:-e.sizeXS}}}},".footer":{display:"flex",justifyContent:"flex-end",width:"100%",".ant-btn":{marginRight:e.marginXS}},".ant-drawer-content-wrapper":{borderLeft:"1px solid rgba(255, 255, 255, 0.1)"},".ant-tabs-nav":{paddingLeft:e.paddingLG-e.paddingPageHorizontal,paddingRight:e.paddingLG-e.paddingPageHorizontal,marginLeft:e.paddingPageHorizontal-e.paddingLG,marginRight:e.paddingPageHorizontal-e.paddingLG}}}}),useActionContext=()=>{const e=(0,import_react2.useContext)(ActionContext),{t}=(0,import_react_i18next.useTranslation)(),{modal:o}=import_antd.App.useApp();return P(x({},e),{setVisible:(0,import_react2.useCallback)((r,i=!1)=>{var n,a;r?(a=e.setVisible)==null||a.call(e,r):i&&e.formValueChanged?o.confirm({title:t("Unsaved changes"),content:t("Are you sure you don't want to save?"),onOk(){return z(this,null,function*(){var l;e.setFormValueChanged(!1),(l=e.setVisible)==null||l.call(e,!1)})}}):(n=e.setVisible)==null||n.call(e,!1)},[o,t,e.formValueChanged,e.setVisible,e.setFormValueChanged])})},useCloseAction$1=()=>{const{setVisible:e}=(0,import_react2.useContext)(ActionContext),t=(0,import_react.useForm)();return{run(){return z(this,null,function*(){e(!1),t.submit(o=>{console.log(o)})})}}},useLinkageAction=()=>{const e=(0,import_react.useFieldSchema)(),t=useIsDetailBlock();return["Action.Link","Action"].includes(e["x-component"])&&t&&e["x-action"]},useGetAriaLabelOfDrawer=()=>{const e=(0,import_react.useFieldSchema)(),t=e["x-component"],o=typeof t=="string"?t:(t==null?void 0:t.displayName)||(t==null?void 0:t.name),r=useCompile();let{name:i}=useCollection_deprecated(),n=r(e.title);return i=i?`-${i}`:"",n=n?`-${n}`:"",{getAriaLabel:(0,import_react2.useCallback)(a=>(a=a?`-${a}`:"",`drawer-${o}${i}${n}${a}`),[i,o,n])}},zIndexContext=import_react2.default.createContext(100),useZIndexContext=()=>import_react2.default.useContext(zIndexContext),getZIndex=(e,t,o)=>{let r=t;return e==="page"&&!window.location.pathname.includes("/embed/")?(r=t+o,r>200?r-200:r):(r=t+o,r<200?r+200:r)},MemoizeRecursionField$1=import_react2.default.memo(import_react.RecursionField);MemoizeRecursionField$1.displayName="MemoizeRecursionField";const DrawerErrorFallback=e=>{const{visible:t,setVisible:o}=useActionContext();return(0,import_jsx_runtime.jsx)(import_antd.Drawer,{open:t,onClose:()=>o(!1,!0),width:"50%",children:(0,import_jsx_runtime.jsx)(ErrorFallback,x({},e))})},openSizeWidthMap$1=new Map([["small","30%"],["middle","50%"],["large","70%"]]),ActionDrawerContent=import_react2.default.memo(({footerNodeName:e,field:t,schema:o})=>{const[r,i]=(0,import_react2.useState)(!1),n=(0,import_react2.useCallback)(a=>a["x-component"]!==e,[e]);return(0,import_react2.useEffect)(()=>{(0,import_react2.startTransition)(()=>{i(!0)})},[]),r?(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{basePath:t.address,schema:o,onlyRenderProperties:!0,filterProperties:n}):null});ActionDrawerContent.displayName="ActionDrawerContent";const InternalActionDrawer=(0,import_react.observer)(e=>{const t=e,{footerNodeName:o="Action.Drawer.Footer",zIndex:r,onClose:i}=t,n=W(t,["footerNodeName","zIndex","onClose"]),{visible:a,setVisible:l,openSize:c="middle",drawerProps:u}=useActionContext(),m=(0,import_react.useFieldSchema)(),d=(0,import_react.useField)(),{t:p}=(0,import_react_i18next.useTranslation)(),{componentCls:h,hashId:g}=useStyles$b(),_=useTabsContext(),f=useZIndexContext(),v=m.reduceProperties((j,k)=>k["x-component"]===o?k:j),{hidden:b}=useCurrentPopupContext(),S=(0,import_react2.useMemo)(()=>P(x(x({},u==null?void 0:u.style),n==null?void 0:n.style),{display:b?"none":"block"}),[b,u==null?void 0:u.style,n==null?void 0:n.style]),C=getZIndex("drawer",r||f,e.level||0),y=(0,import_react2.useCallback)(j=>{l(!1,!0),i==null||i(j)},[l,i]),F=(0,import_react2.useCallback)(j=>j["x-component"]===o,[o]);return(0,import_jsx_runtime.jsx)(ActionContextNoRerender,{children:(0,import_jsx_runtime.jsx)(zIndexContext.Provider,{value:C,children:(0,import_jsx_runtime.jsx)(TabsContextProvider,P(x({},_),{tabBarExtraContent:null,children:(0,import_jsx_runtime.jsx)(import_antd.Drawer,P(x(x({zIndex:C,width:openSizeWidthMap$1.get(c),title:typeof d.title=="string"?p(d.title,{ns:NAMESPACE_UI_SCHEMA}):d.title},n),u),{rootStyle:S,destroyOnClose:!0,open:a,onClose:y,rootClassName:(0,import_classnames.default)(h,g,u==null?void 0:u.className,n.className,"reset"),footer:v&&(0,import_jsx_runtime.jsx)("div",{className:"footer",children:(0,import_jsx_runtime.jsx)(MemoizeRecursionField$1,{basePath:d.address,schema:m,onlyRenderProperties:!0,filterProperties:F})}),children:(0,import_jsx_runtime.jsx)(ActionDrawerContent,{footerNodeName:o,field:d,schema:m})}))}))})})},{displayName:"InternalActionDrawer"}),ActionDrawer=import_react2.default.memo(e=>(0,import_jsx_runtime.jsx)(import_react_error_boundary.ErrorBoundary,{FallbackComponent:DrawerErrorFallback,onError:console.log,children:(0,import_jsx_runtime.jsx)(InternalActionDrawer,x({},e))}));ActionDrawer.displayName="ActionDrawer";ActionDrawer.Footer=(0,import_react.observer)(()=>{const e=(0,import_react.useField)(),t=(0,import_react.useFieldSchema)();return(0,import_jsx_runtime.jsx)(MemoizeRecursionField$1,{basePath:e.address,schema:t,onlyRenderProperties:!0})},{displayName:"ActionDrawer.Footer"});ActionDrawer.FootBar=(0,import_react.observer)(()=>{const e=(0,import_react.useField)(),t=(0,import_react.useFieldSchema)();return(0,import_jsx_runtime.jsx)("div",{className:"ant-drawer-footer",style:{position:"absolute",bottom:0,right:0,left:0},children:(0,import_jsx_runtime.jsx)("div",{className:"footer",children:(0,import_jsx_runtime.jsx)(MemoizeRecursionField$1,{basePath:e.address,schema:t,onlyRenderProperties:!0})})})},{displayName:"ActionDrawer.FootBar"});const useGetAriaLabelOfModal=()=>{const e=(0,import_react.useFieldSchema)(),t=e["x-component"],o=typeof t=="string"?t:(t==null?void 0:t.displayName)||(t==null?void 0:t.name),r=useCompile();let{name:i}=useCollection_deprecated(),n=r(e.title);return i=i?`-${i}`:"",n=n?`-${n}`:"",{getAriaLabel:(0,import_react2.useCallback)(a=>(a=a?`-${a}`:"",`modal-${o}${i}${n}${a}`),[i,o,n])}},ModalErrorFallback=e=>{const{visible:t,setVisible:o}=useActionContext();return(0,import_jsx_runtime.jsx)(import_antd.Modal,{open:t,onCancel:()=>o(!1,!0),width:"60%",children:(0,import_jsx_runtime.jsx)(ErrorFallback,x({},e))})},openSizeWidthMap=new Map([["small","40%"],["middle","60%"],["large","80%"]]),ActionModalContent=import_react2.default.memo(({footerNodeName:e,field:t,schema:o})=>{const[r,i]=(0,import_react2.useState)(!1);return(0,import_react2.useEffect)(()=>{(0,import_react2.startTransition)(()=>{i(!0)})},[]),r?(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{basePath:t.address,schema:o,onlyRenderProperties:!0,filterProperties:n=>n["x-component"]!==e}):null});function useDelayedVisible(e,t=200){const[o,r]=(0,import_react2.useState)(t===0);return(0,import_react2.useEffect)(()=>{if(!o)if(e){const i=setTimeout(()=>r(!0),t);return()=>clearTimeout(i)}else r(!1)},[t,o,e]),o}const InternalActionModal=(0,import_react.observer)(e=>{const t=e,{footerNodeName:o="Action.Modal.Footer",width:r,zIndex:i,delay:n=200}=t,a=W(t,["footerNodeName","width","zIndex","delay"]),{visible:l,setVisible:c,openSize:u="middle",modalProps:m}=useActionContext(),d=r??openSizeWidthMap.get(u),p=(0,import_react.useFieldSchema)(),h=(0,import_react.useField)(),{token:g}=useToken(),_=useTabsContext(),f=useZIndexContext(),v=p.reduceProperties((F,j)=>j["x-component"]===o?j:F),{hidden:b}=useCurrentPopupContext(),S=!!v,C=getZIndex("modal",i||f,e.level||0),y=useDelayedVisible(l,n);return(0,import_jsx_runtime.jsx)(ActionContextNoRerender,{children:(0,import_jsx_runtime.jsx)(zIndexContext.Provider,{value:C,children:(0,import_jsx_runtime.jsx)(TabsContextProvider,P(x({},_),{tabBarExtraContent:null,children:(0,import_jsx_runtime.jsx)(import_antd.Modal,P(x(x({zIndex:b?-1:C,width:d,title:h.title},a),m),{style:x(x({},m==null?void 0:m.style),a==null?void 0:a.style),destroyOnClose:!0,open:l,onCancel:()=>{c(!1,!0)},className:(0,import_classnames.default)(a.className,m==null?void 0:m.className,import_css.css`
607
607
  &.nb-action-popup {
608
608
  .ant-modal-header {
609
609
  display: none;
@@ -641,7 +641,7 @@ https://requirejs.org/docs/errors.html#`+e);return i.requireType=e,i.requireModu
641
641
  &:hover {
642
642
  background-color: ${n.colorFillSecondary};
643
643
  }
644
- `;return(0,import_jsx_runtime.jsxs)("div",{style:{maxHeight:300,overflowY:"auto"},children:[m.map(h=>(0,import_jsx_runtime.jsx)("div",{role:"option",onClick:()=>c(h.value),className:p,children:r(h.label)},h.value)),(0,import_jsx_runtime.jsx)(import_antd.Divider,{style:{margin:"4px 0"}}),d.map(h=>(0,import_jsx_runtime.jsx)("div",{role:"option",className:p,onClick:()=>c(h.value),title:r(h.label),children:r(h.label)},h.value))]})};return(0,import_jsx_runtime.jsxs)(import_antd.Space.Compact,{style:P(x({},e.style),{width:"100%"}),children:[(0,import_jsx_runtime.jsx)(import_antd.Select,P(x({options:r(options),open:a,onDropdownVisibleChange:l},e),{allowClear:!0,style:{width:"100%",minWidth:100,maxWidth:["past","next","exact",void 0].includes(t==null?void 0:t.type)?100:null},value:(t==null?void 0:t.type)||"exact",onChange:c,dropdownRender:u})),["past","next"].includes(t==null?void 0:t.type)&&[(0,import_jsx_runtime.jsx)(import_antd.InputNumber,{value:t==null?void 0:t.number,onChange:m=>{const d=P(x({},t),{number:m});o(d)}},"number"),(0,import_jsx_runtime.jsx)(import_antd.Select,{value:t==null?void 0:t.unit,style:{minWidth:130,maxWidth:140},onChange:m=>{const d=P(x({},t),{unit:m});o(d)},options:[{value:"day",label:i("Day")},{value:"week",label:i("Calendar week")},{value:"month",label:i("Calendar Month")},{value:"year",label:i("Calendar Year")}],popupMatchSelectWidth:!0},"unit")],((t==null?void 0:t.type)==="exact"||!(t!=null&&t.type))&&(0,import_jsx_runtime.jsx)(SmartDatePicker,x({},e))]})},common=Object.freeze(Object.defineProperty({__proto__:null,DateFilterDynamicComponent,DndContext,DragHandler,DraggableContext,ShowFormData,Sortable,SortableContext,SortableItem,SortableProvider,getRenderContent},Symbol.toStringTag,{value:"Module"})),useStyles$9=genStyleHook("nb-block-item",e=>{const{componentCls:t}=e;return{[t]:{position:"relative","&:hover":{"> .general-schema-designer":{display:"block"}},"&.nb-form-item:hover":{"> .general-schema-designer":{background:"var(--colorBgSettingsHover) !important",border:"0 !important",top:"-5px !important",bottom:"-5px !important",left:"-5px !important",right:"-5px !important"}},"> .general-schema-designer":{position:"absolute",zIndex:999,top:0,bottom:0,left:0,right:0,display:"none",border:"2px solid var(--colorBorderSettingsHover)",pointerEvents:"none","> .general-schema-designer-icons":{position:"absolute",right:"2px",top:"2px",lineHeight:"16px",pointerEvents:"all",".ant-space-item":{backgroundColor:"var(--colorSettings)",color:"#fff",lineHeight:"16px",width:"16px",paddingLeft:"1px",alignSelf:"stretch"}}},".ant-card":{borderRadius:e.borderRadiusBlock}}}}),useGetAriaLabelOfBlockItem=e=>{var t,o;const r=(0,import_react.useFieldSchema)(),i=useCompile(),n=r["x-component"],a=typeof n=="string"?n:n==null?void 0:n.displayName,l=i(r["x-collection-field"]);let{name:c}=useBlockContext()||{},{name:u,getField:m}=useCollection_deprecated();c=e||(c!=="action"?c:"");const d=i(r.title)||i((o=(t=m(r.name))==null?void 0:t.uiSchema)==null?void 0:o.title);return{getAriaLabel:(0,import_react2.useCallback)(p=>(p=p?`-${p}`:"",["block-item",a,u,c,l,d,p].filter(Boolean).join("-")),[a,u,c,l,d])}},BlockItem=withDynamicSchemaProps(e=>{const{className:t,children:o,style:r}=useProps(e),{componentCls:i,hashId:n}=useStyles$9(),a=(0,import_react.useFieldSchema)(),{render:l}=useSchemaToolbarRender(a),{getAriaLabel:c}=useGetAriaLabelOfBlockItem(e.name),u=(0,import_react2.useMemo)(()=>c(),[c]),m=useCollection(),d=a["x-decorator"]==="FormItem"&&a["x-block-linkage-rules"],p=(0,import_jsx_runtime.jsxs)(SortableItem,{role:"button","aria-label":u,className:(0,import_classnames.default)("nb-block-item",t,i,n),style:r,children:[l(),(0,import_jsx_runtime.jsx)(import_react_error_boundary.ErrorBoundary,{FallbackComponent:ErrorFallback,onError:console.log,children:o})]});return m&&!d?p:(0,import_jsx_runtime.jsx)(BlockLinkageRuleProvider,{children:p})},{displayName:"BlockItem"}),TestDesigner=()=>{const{remove:e}=useDesignable();return(0,import_jsx_runtime.jsxs)("div",{children:[(0,import_jsx_runtime.jsx)("a",{onClick:()=>{e()},children:"删除"}),(0,import_jsx_runtime.jsx)(DragHandler,{})]})},FilterFormDesigner=()=>(0,import_jsx_runtime.jsx)(GeneralSchemaDesigner,{schemaSettings:"FilterFormItemSettings"}),useOperatorList=()=>{const e=(0,import_react.useFieldSchema)(),{name:t}=useCollection_deprecated(),{getCollectionFields:o,getInterface:r}=useCollectionManager_deprecated();return(0,import_react2.useMemo)(()=>{var i,n,a,l,c;const u=(i=e["x-designer-props"])==null?void 0:i.interface,m=o(t);if(u)return((a=(n=r(u))==null?void 0:n.filterable)==null?void 0:a.operators)||[];const d=m.find(p=>p.name===e.name);return(((c=(l=r(d==null?void 0:d.interface))==null?void 0:l.filterable)==null?void 0:c.operators)||[]).filter(p=>typeof p.visible!="function"||p.visible(d))},[e.name])},EditTitle=()=>{var e;const{getCollectionJoinField:t}=useCollectionManager_deprecated(),{getField:o}=useCollection_deprecated(),r=(0,import_react.useField)(),i=(0,import_react.useFieldSchema)(),{t:n}=(0,import_react_i18next.useTranslation)(),{dn:a}=useDesignable(),l=useCompile(),c=o(i.name)||t(i["x-collection-field"]);return c?(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:n("Edit field title"),schema:{type:"object",title:n("Edit field title"),properties:{title:{title:n("Field title"),default:r==null?void 0:r.title,description:`${n("Original field title: ")}${(e=c==null?void 0:c.uiSchema)==null?void 0:e.title}`,"x-decorator":"FormItem","x-component":"Input","x-component-props":{}}}},onSubmit:({title:u})=>{var m;const d=u.trim()===""?(m=c==null?void 0:c.uiSchema)==null?void 0:m.title:u;r.title=l(d),i.title=u,a.emit("patch",{schema:{"x-uid":i["x-uid"],title:i.title}}),a.refresh()}},"edit-field-title"):null},EditDescription=()=>{const e=(0,import_react.useField)(),t=(0,import_react.useFieldSchema)(),{t:o}=(0,import_react_i18next.useTranslation)(),{dn:r}=useDesignable();return e.readPretty?null:(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:o("Edit description"),schema:{type:"object",title:o("Edit description"),properties:{description:{default:e==null?void 0:e.description,"x-decorator":"FormItem","x-component":"Input.TextArea","x-component-props":{}}}},onSubmit:({description:i})=>{e.description=i,t.description=i,r.emit("patch",{schema:{"x-uid":t["x-uid"],description:t.description}}),r.refresh()}},"edit-description")},EditTooltip=()=>{var e;const t=(0,import_react.useField)(),o=(0,import_react.useFieldSchema)(),{t:r}=(0,import_react_i18next.useTranslation)(),{dn:i}=useDesignable();return t.readPretty?(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:r("Edit tooltip"),schema:{type:"object",title:r("Edit description"),properties:{tooltip:{default:(e=o==null?void 0:o["x-decorator-props"])==null?void 0:e.tooltip,"x-decorator":"FormItem","x-component":"Input.TextArea","x-component-props":{}}}},onSubmit:({tooltip:n})=>{t.decoratorProps.tooltip=n,o["x-decorator-props"]=o["x-decorator-props"]||{},o["x-decorator-props"].tooltip=n,i.emit("patch",{schema:{"x-uid":o["x-uid"],"x-decorator-props":o["x-decorator-props"]}}),i.refresh()}},"edit-tooltip"):null},EditRequired=()=>{const e=(0,import_react.useField)(),t=(0,import_react.useFieldSchema)(),{t:o}=(0,import_react_i18next.useTranslation)(),{dn:r,refresh:i}=useDesignable();return!e.readPretty&&t["x-component"]!=="FormField"?(0,import_jsx_runtime.jsx)(SchemaSettingsSwitchItem,{title:o("Required"),checked:t.required,onChange:n=>{const a={"x-uid":t["x-uid"]};e.required=n,t.required=n,a.required=n,r.emit("patch",{schema:a}),i()}},"required"):null},EditValidationRules=()=>{var e;const{getInterface:t,getCollectionJoinField:o}=useCollectionManager_deprecated(),{getField:r}=useCollection_deprecated(),{form:i}=useFormBlockContext(),n=(0,import_react.useField)(),a=(0,import_react.useFieldSchema)(),{t:l}=(0,import_react_i18next.useTranslation)(),{dn:c,refresh:u}=useDesignable(),m=r(a.name)||o(a["x-collection-field"]),d=t(m==null?void 0:m.interface),p=(e=d==null?void 0:d.validateSchema)==null?void 0:e.call(d,a),h=g=>g!=null&&!Number.isNaN(g);return i&&!(i!=null&&i.readPretty)&&p?(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:l("Set validation rules"),components:{ArrayCollapse:import_antd_v5.ArrayCollapse,FormLayout:import_antd_v5.FormLayout},schema:{type:"object",title:l("Set validation rules"),properties:{rules:{type:"array",default:a==null?void 0:a["x-validator"],"x-component":"ArrayCollapse","x-decorator":"FormItem","x-component-props":{accordion:!0},maxItems:3,items:{type:"object","x-component":"ArrayCollapse.CollapsePanel","x-component-props":{header:'{{ t("Validation rule") }}'},properties:{index:{type:"void","x-component":"ArrayCollapse.Index"},layout:{type:"void","x-component":"FormLayout","x-component-props":{labelStyle:{marginTop:"6px"},labelCol:8,wrapperCol:16},properties:P(x({},p),{message:{type:"string",title:'{{ t("Error message") }}',"x-decorator":"FormItem","x-component":"Input.TextArea","x-component-props":{autoSize:{minRows:2,maxRows:2}}}})},remove:{type:"void","x-component":"ArrayCollapse.Remove"},moveUp:{type:"void","x-component":"ArrayCollapse.MoveUp"},moveDown:{type:"void","x-component":"ArrayCollapse.MoveDown"}}},properties:{add:{type:"void",title:'{{ t("Add validation rule") }}',"x-component":"ArrayCollapse.Addition","x-reactions":{dependencies:["rules"],fulfill:{state:{disabled:"{{$deps[0].length >= 3}}"}}}}}}}},onSubmit:g=>{var _;const f=[];for(const S of g.rules)f.push(import_lodash.default.pickBy(S,h));const v={"x-uid":a["x-uid"]};if(["percent"].includes(m==null?void 0:m.interface))for(const S of f)(S.maxValue||S.minValue)&&(S.percentMode=!0),S.percentFormat&&(S.percentFormats=!0);const b=import_lodash.default.concat([],((_=m==null?void 0:m.uiSchema)==null?void 0:_["x-validator"])||[],f);n.validator=b,n.required=a.required,a["x-validator"]=f,v["x-validator"]=f,c.emit("patch",{schema:v}),u()}}):null},EditDefaultValue=()=>{var e;const{getCollectionJoinField:t}=useCollectionManager_deprecated(),{getField:o}=useCollection_deprecated(),{form:r}=useFormBlockContext(),i=(0,import_react.useField)(),n=(0,import_react.useFieldSchema)(),{t:a}=(0,import_react_i18next.useTranslation)(),{dn:l,refresh:c}=useDesignable(),u=o(n.name)||t(n["x-collection-field"]);return r&&!(r!=null&&r.readPretty)&&(e=u==null?void 0:u.uiSchema)!=null&&e.type?(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:a("Set default value"),components:{ArrayCollapse:import_antd_v5.ArrayCollapse,FormLayout:import_antd_v5.FormLayout},schema:{type:"object",title:a("Set default value"),properties:{default:P(x({},u==null?void 0:u.uiSchema),{name:"default",title:a("Default value"),"x-decorator":"FormItem",default:n.default||(u==null?void 0:u.defaultValue)})}},onSubmit:m=>{const d={"x-uid":n["x-uid"]};i.value!==m.default&&(i.value=m.default),n.default=m.default,d.default=m.default,l.emit("patch",{schema:d}),c()}}):null},EditComponent=()=>{var e;const{getCollectionJoinField:t,getCollection:o}=useCollectionManager_deprecated(),{getField:r}=useCollection_deprecated(),i=(0,import_react.useField)(),n=(0,import_react.useFieldSchema)(),{t:a}=(0,import_react_i18next.useTranslation)(),{dn:l}=useDesignable(),c=r(n.name)||t(n["x-collection-field"]),u=useFieldModeOptions(),m=["belongsTo","hasOne","hasMany","belongsToMany"].includes(c==null?void 0:c.type),d=o(c==null?void 0:c.target),p=isFileCollection(d);return m&&u?(0,import_jsx_runtime.jsx)(SchemaSettingsSelectItem,{title:a("Field component"),options:u,value:((e=i==null?void 0:i.componentProps)==null?void 0:e.mode)||(p?"FileManager":"Select"),onChange:h=>{const g={"x-uid":n["x-uid"]};n["x-component-props"]=n["x-component-props"]||{},n["x-component-props"].mode=h,g["x-component-props"]=n["x-component-props"],i.componentProps=i.componentProps||{},i.componentProps.mode=h,l.emit("patch",{schema:g}),l.refresh()}},"field-mode"):null},EditPattern=()=>{const{getCollectionJoinField:e}=useCollectionManager_deprecated(),{getField:t}=useCollection_deprecated(),{form:o}=useFormBlockContext(),r=(0,import_react.useField)(),i=(0,import_react.useFieldSchema)(),{t:n}=(0,import_react_i18next.useTranslation)(),{dn:a}=useDesignable(),l=t(i.name)||e(i["x-collection-field"]);let c="editable";return i["x-disabled"]===!0&&(c="readonly"),i["x-read-pretty"]===!0&&(c="read-pretty"),o&&!(o!=null&&o.readPretty)&&(l==null?void 0:l.interface)!=="o2m"&&!isPatternDisabled(i)?(0,import_jsx_runtime.jsx)(SchemaSettingsSelectItem,{title:n("Pattern"),options:[{label:n("Editable"),value:"editable"},{label:n("Readonly"),value:"readonly"},{label:n("Easy-reading"),value:"read-pretty"}],value:c,onChange:u=>{const m={"x-uid":i["x-uid"]};switch(u){case"readonly":{i["x-read-pretty"]=!1,i["x-disabled"]=!0,m["x-read-pretty"]=!1,m["x-disabled"]=!0,r.readPretty=!1,r.disabled=!0;break}case"read-pretty":{i["x-read-pretty"]=!0,i["x-disabled"]=!1,m["x-read-pretty"]=!0,m["x-disabled"]=!1,r.readPretty=!0;break}default:{i["x-read-pretty"]=!1,i["x-disabled"]=!1,m["x-read-pretty"]=!1,m["x-disabled"]=!1,r.readPretty=!1,r.disabled=!1;break}}a.emit("patch",{schema:m}),a.refresh()}},"pattern"):null},useEnsureOperatorsValid=()=>{useCollectOperator();const e=(0,import_react.useFieldSchema)(),t=useOperatorList(),{getOperators:o,collectOperator:r}=useOperators(),i=o();i&&t.length&&!i[e.name]&&r(e.name,t[0].value)},EditOperator=()=>{const e=useCompile(),t=(0,import_react.useFieldSchema)(),o=(0,import_react.useField)(),{t:r}=(0,import_react_i18next.useTranslation)(),{dn:i}=useDesignable(),n=useOperatorList(),{getOperator:a,collectOperator:l}=useOperators();return n.length&&!a(t.name)&&l(t.name,n[0].value),n.length?(0,import_jsx_runtime.jsx)(SchemaSettingsSelectItem,{title:r("Operator"),value:a(t.name),options:e(n),onChange:c=>{var u,m,d,p,h,g;l(t.name,c),import_lodash.default.set(t,"x-filter-operator",c);const _=n.find(v=>v.value===c);let f=x({},t["x-component-props"]);o.value=void 0,(u=_==null?void 0:_.schema)!=null&&u["x-component"]&&!(_!=null&&_.onlyFilterAction)?(import_lodash.default.set(t,"x-component-props.component",(m=_.schema)==null?void 0:m["x-component"]),import_lodash.default.set(o,"componentProps.component",(d=_.schema)==null?void 0:d["x-component"]),f=x(x(P(x({},t["x-component-props"]),{component:_.schema["x-component"]}),o.componentProps),(p=_.schema)==null?void 0:p["x-component-props"])):(h=t["x-component-props"])!=null&&h.component&&(import_lodash.default.set(t,"x-component-props.component",null),import_lodash.default.set(o,"componentProps.component",null),f=x(P(x({},t["x-component-props"]),{component:null}),(g=_.schema)==null?void 0:g["x-component-props"])),o.componentProps=f,t["x-component-props"]=f,t.default=null,o.value=null,o.initialValue=null,i.emit("patch",{schema:{"x-uid":t["x-uid"],"x-component-props":f,"x-filter-operator":c,default:null}}),i.refresh()}},"operator"):null},EditTitleField=()=>{var e,t,o;const{getCollectionFields:r,getCollectionJoinField:i}=useCollectionManager_deprecated(),{getField:n}=useCollection_deprecated(),a=(0,import_react.useField)(),l=(0,import_react.useFieldSchema)(),{t:c}=(0,import_react_i18next.useTranslation)(),{dn:u}=useDesignable(),m=useCompile(),d=n(l.name)||i(l["x-collection-field"]),p=(d!=null&&d.target?r(d==null?void 0:d.target):(e=r(d==null?void 0:d.targetCollection))!=null?e:[]).filter(h=>!(h!=null&&h.target)&&h.type!=="boolean").map(h=>{var g;return{value:h==null?void 0:h.name,label:m((g=h==null?void 0:h.uiSchema)==null?void 0:g.title)||(h==null?void 0:h.name)}});return p.length>0&&l["x-component"]==="CollectionField"?(0,import_jsx_runtime.jsx)(SchemaSettingsSelectItem,{title:c("Title field"),options:p,value:(o=(t=a==null?void 0:a.componentProps)==null?void 0:t.fieldNames)==null?void 0:o.label,onChange:h=>{var g,_;const f={"x-uid":l["x-uid"]},v=P(x(x({},(_=(g=d==null?void 0:d.uiSchema)==null?void 0:g["x-component-props"])==null?void 0:_.fieldNames),a.componentProps.fieldNames),{label:h});l["x-component-props"]=l["x-component-props"]||{},l["x-component-props"].fieldNames=v,f["x-component-props"]=l["x-component-props"],a.componentProps.fieldNames=l["x-component-props"].fieldNames,u.emit("patch",{schema:f}),u.refresh()}},"title-field"):null},isDisplayField=e=>e.includes("."),useLazyLoadDisplayAssociationFieldsOfForm=()=>{var e;const{name:t}=useCollection_deprecated(),{getCollectionJoinField:o,getCollection:r}=useCollectionManager_deprecated(),i=(0,import_react.useForm)(),n=(0,import_react.useFieldSchema)(),a=useVariables$1(),l=(0,import_react.useField)(),{formValue:c}=useSubFormValue(),{isInSubForm:u,isInSubTable:m}=useFlag()||{},{getAssociationAppends:d}=useAssociationNames(),p=n.name.toString(),h=(0,import_react2.useRef)(null),g=(0,import_react2.useRef)(null);h.current==null&&isDisplayField(p)&&(h.current=o(`${t}.${p}`)),g.current==null&&isDisplayField(p)&&(g.current=o(`${t}.${p.split(".")[0]}`));const _=(0,import_react2.useMemo)(()=>!isDisplayField(p)||!a||t==="fields"||!h.current,[p,a,t,h.current]),f=_?{}:(0,import_reactive.untracked)(()=>import_lodash.default.cloneDeep(u||m?c:i.values)),v=isDisplayField(p)&&g.current?import_lodash.default.get(f,`${p.split(".")[0]}.${((e=g.current)==null?void 0:e.targetKey)||"id"}`):void 0;(0,import_react2.useEffect)(()=>{var b;if(_||import_lodash.default.isEmpty(f))return;const S={name:"$nForm",ctx:f,collectionName:t},C=`{{ $nForm.${p} }}`;if(v==null)return;const{appends:y}=d(),F=r((b=h.current)==null?void 0:b.collectionName);a.parseVariable(C,S,{appends:y}).then(({value:j})=>{(0,import_client.nextTick)(()=>{const k=transformVariableValue(j,{targetCollectionField:h.current});import_lodash.default.isEmpty(k)&&!import_lodash.default.isNumber(k)?l.value=null:(l.value=k,l.componentProps=P(x({},l.componentProps),{readOnlySubmit:!0,filterTargetKey:(F==null?void 0:F.filterTargetKey)||"id"}))})}).catch(j=>{console.error(j)})},[v,_])},useContextVariable=()=>{var e,t;let o;const{isPopupVisibleControlledByURL:r}=usePopupSettings(),{params:i}=useCurrentPopupContext(),n=useCollection(),a=useDataBlockRequestData(),l=useTableBlockContextBasicValue()||{};r()?o=(e=getStoredPopupContext(i==null?void 0:i.popupuid))==null?void 0:e.tableBlockContext:o=P(x({},l),{collection:n,blockData:a});const{field:c,blockData:u,rowKey:m,collection:d}=o||{},p=(0,import_react2.useMemo)(()=>{var h,g;return(g=(h=u==null?void 0:u.data)==null?void 0:h.filter)==null?void 0:g.call(h,_=>{var f,v;return(v=((f=c==null?void 0:c.data)==null?void 0:f.selectedRowKeys)||[])==null?void 0:v.includes(_[m])})},[(t=c==null?void 0:c.data)==null?void 0:t.selectedRowKeys,m,u]);return(0,import_react2.useMemo)(()=>({name:"$context",ctx:p||[],collectionName:d}),[d,p])},useLocalVariables=e=>{var t;const{parentObjectCtx:o,shouldDisplayParentObject:r,collectionName:i}=useParentObjectContext(),{currentObjectCtx:n,shouldDisplayCurrentObject:a}=useCurrentObjectContext(),{currentRecordCtx:l,collectionName:c}=useCurrentRecordContext(),{currentParentRecordCtx:u,collectionName:m,dataSource:d}=useCurrentParentRecordContext(),{popupRecordCtx:p,collectionName:h,dataSource:g,defaultValue:_}=usePopupVariableContext(),{parentPopupRecordCtx:f,collectionName:v,dataSource:b,defaultValue:S}=useParentPopupVariableContext(),{urlSearchParamsCtx:C,shouldDisplay:y,defaultValue:F}=useURLSearchParamsVariable(),{datetimeCtx:j}=useDatetimeVariableContext(),{currentFormCtx:k}=useCurrentFormContext({form:e==null?void 0:e.currentForm}),{name:T}=useCollection_deprecated(),B=useContextVariable();let{name:w}=useBlockCollection();e!=null&&e.collectionName&&(w=e.collectionName);const L=useApp(),D=((t=L.getVariables)==null?void 0:t.call(L).map(R=>({name:R.name,ctx:R.useCtx()})))||[];return(0,import_react2.useMemo)(()=>[{name:"currentRecord",ctx:l,collectionName:c},{name:w,ctx:k||l,collectionName:w},{name:"$form",ctx:k,collectionName:w},{name:"$nRecord",ctx:l,collectionName:c,dataSource:d},{name:"$nParentRecord",ctx:u,collectionName:m,dataSource:d},{name:"$nPopupRecord",ctx:p,collectionName:h,dataSource:g,defaultValue:_},{name:"$nParentPopupRecord",ctx:f,collectionName:v,dataSource:b,defaultValue:S},{name:"$nForm",ctx:k,collectionName:w},{name:"$nDate",ctx:j},{name:"$date",ctx:j},B,a&&{name:"$iteration",ctx:n,collectionName:T},r&&{name:"$nParentIteration",ctx:o,collectionName:i},y&&{name:"$nURLSearchParams",ctx:C,defaultValue:F},...D].filter(Boolean),[l,c,w,k,u,m,d,p,f,h,g,j,a,n,T,_,S,r,o,i,B,C,...D.map(R=>R.ctx)])},useLocalVariables$1=useLocalVariables,useVariables=()=>(0,import_react2.useContext)(VariablesContext),useVariables$1=useVariables,isSubFormOrSubTableField=e=>{for(;e;){if(isSubMode(e))return!0;if(e["x-component"]==="FormV2")return!1;e=e.parent}return!1},useLinkageRulesForSubTableOrSubForm=()=>{const e=(0,import_react.useFieldSchema)(),t=(0,import_react.useField)(),{fieldSchema:o,formValue:r}=useSubFormValue(),i=useLocalVariables$1(),n=useVariables$1(),a=getLinkageRules$1(o),l=useApp();(0,import_react2.useEffect)(()=>{if(!isSubFormOrSubTableField(e))return;if(!t.onUnmount.__rested){const u=t.onUnmount;t.onUnmount=()=>{var m;(m=t.__disposes)==null||m.forEach(d=>{d()}),u()},t.onUnmount.__rested=!0}if(!a)return;t.__disposes&&t.__disposes.forEach(u=>{u()});const c=t.__disposes=[];forEachLinkageRule(a,(u,m)=>{var d;(d=u.targetFields)!=null&&d.includes(e.name)&&c.push(bindLinkageRulesToFiled({field:t,linkageRules:a,formValues:r,localVariables:i,action:u,rule:m,variables:n,variableNameOfLeftCondition:"$iteration"},l.jsonLogic))}),t.__linkageRules=a},[t,e==null?void 0:e.name,r,JSON.stringify(a),i,n])};function getLinkageRules$1(e){var t;if(!e)return;const o=e["x-linkage-rules"]||((t=e==null?void 0:e.parent)==null?void 0:t["x-linkage-rules"])||[];return o==null?void 0:o.filter(r=>!r.disabled)}const useParseDefaultValue=()=>{const e=(0,import_react.useField)(),t=(0,import_react.useFieldSchema)(),o=useVariables$1(),r=useLocalVariables$1(),i=useCollectionRecord(),{isInAssignFieldValues:n,isInSetDefaultValueDialog:a,isInFormDataTemplate:l,isInSubTable:c,isInSubForm:u}=useFlag()||{},m=useCollection(),{isSpecialCase:d,setDefaultValue:p}=useSpecialCase(),h=useRecordIndex(),{type:g,form:_}=useFormBlockContext(),{getOperator:f}=useOperators(),v=useDataSourceManager(),b=(0,import_react2.useCallback)(S=>{let C=o==null?void 0:o.getVariable(S);return C||(C=r.find(y=>y.name===S)),C},[r,o]);(0,import_react2.useEffect)(()=>{var S,C;if(g==="update"&&t.default&&e.form===_&&((C=e.setValue)==null||C.call(e,(S=i==null?void 0:i.data)==null?void 0:S[t.name])),t.default==null||a||l||isSubMode(t)||!(i!=null&&i.isNew)&&!n)return;const y=(...j)=>z(void 0,[...j],function*({forceUpdate:k=!1}={}){if(o&&e&&(isVariable$1(t.default)&&e.value==null||e.value===t.default||k)){e.loading=!0;const T=!t.name.toString().includes(".")&&(m==null?void 0:m.getField(t.name)),{value:B,collectionName:w,dataSource:L="main"}=yield o.parseVariable(t.default,r,{fieldOperator:f(t.name)});if(T!=null&&T.target&&w&&T.target!==w&&!isInherit({collectionName:T.target,targetCollectionName:w,dm:v,dataSource:L})){e.loading=!1;return}const D=transformVariableValue(B,{targetCollectionField:T});D==null||D===""?e.mounted&&(e.setInitialValue(null),yield e.reset({forceClear:!0})):d()?h===0&&p(D):e.setInitialValue(D),e.loading=!1}else!/\{\{.+\}\}/g.test(t.default)&&e.setInitialValue&&e.setInitialValue(t.default)}),F=import_lodash.default.debounce(y,DEBOUNCE_WAIT);if(isVariable$1(t.default)){const j=getVariableName(t.default),k=b(j);return k?(y({forceUpdate:!0}),(0,import_reactive.reaction)(()=>{const T={[j]:(k==null?void 0:k.ctx)||{}},B=getPath(t.default),w=(0,import_client.getValuesByPath)(T,B);return w===void 0?Math.random():w},()=>F({forceUpdate:!0}),{equals:import_lodash.default.isEqual})):console.error(`useParseDefaultValue: can not find variable ${j}`)}else e.value==null&&(c||u)&&e.setValue(t.default)},[t.default,r,g,f,v,m])},isInherit=({collectionName:e,targetCollectionName:t,dm:o,dataSource:r})=>{var i,n,a;const l=(i=o==null?void 0:o.getDataSource(r))==null?void 0:i.collectionManager;return(a=(n=l==null?void 0:l.getCollection(e))==null?void 0:n.getAllCollectionsInheritChain())==null?void 0:a.includes(t)};import_antd_v5.FormItem.displayName="FormilyFormItem";const formItemWrapCss=import_css.css`
644
+ `;return(0,import_jsx_runtime.jsxs)("div",{style:{maxHeight:300,overflowY:"auto"},children:[m.map(h=>(0,import_jsx_runtime.jsx)("div",{role:"option",onClick:()=>c(h.value),className:p,children:r(h.label)},h.value)),(0,import_jsx_runtime.jsx)(import_antd.Divider,{style:{margin:"4px 0"}}),d.map(h=>(0,import_jsx_runtime.jsx)("div",{role:"option",className:p,onClick:()=>c(h.value),title:r(h.label),children:r(h.label)},h.value))]})};return(0,import_jsx_runtime.jsxs)(import_antd.Space.Compact,{style:P(x({},e.style),{width:"100%"}),children:[(0,import_jsx_runtime.jsx)(import_antd.Select,P(x({options:r(options),open:a,onDropdownVisibleChange:l},e),{allowClear:!0,style:{width:"100%",minWidth:100,maxWidth:["past","next","exact",void 0].includes(t==null?void 0:t.type)?100:null},value:(t==null?void 0:t.type)||"exact",onChange:c,dropdownRender:u})),["past","next"].includes(t==null?void 0:t.type)&&[(0,import_jsx_runtime.jsx)(import_antd.InputNumber,{value:t==null?void 0:t.number,onChange:m=>{const d=P(x({},t),{number:m});o(d)}},"number"),(0,import_jsx_runtime.jsx)(import_antd.Select,{value:t==null?void 0:t.unit,style:{minWidth:130,maxWidth:140},onChange:m=>{const d=P(x({},t),{unit:m});o(d)},options:[{value:"day",label:i("Day")},{value:"week",label:i("Calendar week")},{value:"month",label:i("Calendar Month")},{value:"year",label:i("Calendar Year")}],popupMatchSelectWidth:!0},"unit")],((t==null?void 0:t.type)==="exact"||!(t!=null&&t.type))&&(0,import_jsx_runtime.jsx)(SmartDatePicker,x({},e))]})},common=Object.freeze(Object.defineProperty({__proto__:null,DateFilterDynamicComponent,DndContext,DragHandler,DraggableContext,ShowFormData,Sortable,SortableContext,SortableItem,SortableProvider,getRenderContent},Symbol.toStringTag,{value:"Module"})),useStyles$9=genStyleHook("nb-block-item",e=>{const{componentCls:t}=e;return{[t]:{position:"relative","&:hover":{"> .general-schema-designer":{display:"block"}},"&.nb-form-item:hover":{"> .general-schema-designer":{background:"var(--colorBgSettingsHover) !important",border:"0 !important",top:"-5px !important",bottom:"-5px !important",left:"-5px !important",right:"-5px !important"}},"> .general-schema-designer":{position:"absolute",zIndex:999,top:0,bottom:0,left:0,right:0,display:"none",border:"2px solid var(--colorBorderSettingsHover)",pointerEvents:"none","> .general-schema-designer-icons":{position:"absolute",right:"2px",top:"2px",lineHeight:"16px",pointerEvents:"all",".ant-space-item":{backgroundColor:"var(--colorSettings)",color:"#fff",lineHeight:"16px",width:"16px",paddingLeft:"1px",alignSelf:"stretch"}}},".ant-card":{borderRadius:e.borderRadiusBlock}}}}),useGetAriaLabelOfBlockItem=e=>{var t,o;const r=(0,import_react.useFieldSchema)(),i=useCompile(),n=r["x-component"],a=typeof n=="string"?n:n==null?void 0:n.displayName,l=i(r["x-collection-field"]);let{name:c}=useBlockContext()||{},{name:u,getField:m}=useCollection_deprecated();c=e||(c!=="action"?c:"");const d=i(r.title)||i((o=(t=m(r.name))==null?void 0:t.uiSchema)==null?void 0:o.title);return{getAriaLabel:(0,import_react2.useCallback)(p=>(p=p?`-${p}`:"",["block-item",a,u,c,l,d,p].filter(Boolean).join("-")),[a,u,c,l,d])}},BlockItem=withDynamicSchemaProps(e=>{const{className:t,children:o,style:r}=useProps(e),{componentCls:i,hashId:n}=useStyles$9(),a=(0,import_react.useFieldSchema)(),{render:l}=useSchemaToolbarRender(a),{getAriaLabel:c}=useGetAriaLabelOfBlockItem(e.name),u=(0,import_react2.useMemo)(()=>c(),[c]),m=useCollection(),d=a["x-decorator"]==="FormItem"&&a["x-block-linkage-rules"],p=(0,import_jsx_runtime.jsxs)(SortableItem,{role:"button","aria-label":u,className:(0,import_classnames.default)("nb-block-item",t,i,n),style:r,children:[l(),(0,import_jsx_runtime.jsx)(import_react_error_boundary.ErrorBoundary,{FallbackComponent:ErrorFallback,onError:console.log,children:o})]});return m&&!d?p:(0,import_jsx_runtime.jsx)(BlockLinkageRuleProvider,{children:p})},{displayName:"BlockItem"}),TestDesigner=()=>{const{remove:e}=useDesignable();return(0,import_jsx_runtime.jsxs)("div",{children:[(0,import_jsx_runtime.jsx)("a",{onClick:()=>{e()},children:"删除"}),(0,import_jsx_runtime.jsx)(DragHandler,{})]})},FilterFormDesigner=()=>(0,import_jsx_runtime.jsx)(GeneralSchemaDesigner,{schemaSettings:"FilterFormItemSettings"}),useOperatorList=()=>{const e=(0,import_react.useFieldSchema)(),{name:t}=useCollection_deprecated(),{getCollectionFields:o,getInterface:r}=useCollectionManager_deprecated();return(0,import_react2.useMemo)(()=>{var i,n,a,l,c;const u=(i=e["x-designer-props"])==null?void 0:i.interface,m=o(t);if(u)return((a=(n=r(u))==null?void 0:n.filterable)==null?void 0:a.operators)||[];const d=m.find(p=>p.name===e.name);return(((c=(l=r(d==null?void 0:d.interface))==null?void 0:l.filterable)==null?void 0:c.operators)||[]).filter(p=>typeof p.visible!="function"||p.visible(d))},[e.name])},EditTitle=()=>{var e;const{getCollectionJoinField:t}=useCollectionManager_deprecated(),{getField:o}=useCollection_deprecated(),r=(0,import_react.useField)(),i=(0,import_react.useFieldSchema)(),{t:n}=(0,import_react_i18next.useTranslation)(),{dn:a}=useDesignable(),l=useCompile(),c=o(i.name)||t(i["x-collection-field"]);return c?(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:n("Edit field title"),schema:{type:"object",title:n("Edit field title"),properties:{title:{title:n("Field title"),default:r==null?void 0:r.title,description:`${n("Original field title: ")}${(e=c==null?void 0:c.uiSchema)==null?void 0:e.title}`,"x-decorator":"FormItem","x-component":"Input","x-component-props":{}}}},onSubmit:({title:u})=>{var m;const d=u.trim()===""?(m=c==null?void 0:c.uiSchema)==null?void 0:m.title:u;r.title=l(d),i.title=u,a.emit("patch",{schema:{"x-uid":i["x-uid"],title:i.title}}),a.refresh()}},"edit-field-title"):null},EditDescription=()=>{const e=(0,import_react.useField)(),t=(0,import_react.useFieldSchema)(),{t:o}=(0,import_react_i18next.useTranslation)(),{dn:r}=useDesignable();return e.readPretty?null:(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:o("Edit description"),schema:{type:"object",title:o("Edit description"),properties:{description:{default:e==null?void 0:e.description,"x-decorator":"FormItem","x-component":"Input.TextArea","x-component-props":{}}}},onSubmit:({description:i})=>{e.description=i,t.description=i,r.emit("patch",{schema:{"x-uid":t["x-uid"],description:t.description}}),r.refresh()}},"edit-description")},EditTooltip=()=>{var e;const t=(0,import_react.useField)(),o=(0,import_react.useFieldSchema)(),{t:r}=(0,import_react_i18next.useTranslation)(),{dn:i}=useDesignable();return t.readPretty?(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:r("Edit tooltip"),schema:{type:"object",title:r("Edit description"),properties:{tooltip:{default:(e=o==null?void 0:o["x-decorator-props"])==null?void 0:e.tooltip,"x-decorator":"FormItem","x-component":"Input.TextArea","x-component-props":{}}}},onSubmit:({tooltip:n})=>{t.decoratorProps.tooltip=n,o["x-decorator-props"]=o["x-decorator-props"]||{},o["x-decorator-props"].tooltip=n,i.emit("patch",{schema:{"x-uid":o["x-uid"],"x-decorator-props":o["x-decorator-props"]}}),i.refresh()}},"edit-tooltip"):null},EditRequired=()=>{const e=(0,import_react.useField)(),t=(0,import_react.useFieldSchema)(),{t:o}=(0,import_react_i18next.useTranslation)(),{dn:r,refresh:i}=useDesignable();return!e.readPretty&&t["x-component"]!=="FormField"?(0,import_jsx_runtime.jsx)(SchemaSettingsSwitchItem,{title:o("Required"),checked:t.required,onChange:n=>{const a={"x-uid":t["x-uid"]};e.required=n,t.required=n,a.required=n,r.emit("patch",{schema:a}),i()}},"required"):null},EditValidationRules=()=>{var e;const{getInterface:t,getCollectionJoinField:o}=useCollectionManager_deprecated(),{getField:r}=useCollection_deprecated(),{form:i}=useFormBlockContext(),n=(0,import_react.useField)(),a=(0,import_react.useFieldSchema)(),{t:l}=(0,import_react_i18next.useTranslation)(),{dn:c,refresh:u}=useDesignable(),m=r(a.name)||o(a["x-collection-field"]),d=t(m==null?void 0:m.interface),p=(e=d==null?void 0:d.validateSchema)==null?void 0:e.call(d,a),h=g=>g!=null&&!Number.isNaN(g);return i&&!(i!=null&&i.readPretty)&&p?(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:l("Set validation rules"),components:{ArrayCollapse:import_antd_v5.ArrayCollapse,FormLayout:import_antd_v5.FormLayout},schema:{type:"object",title:l("Set validation rules"),properties:{rules:{type:"array",default:a==null?void 0:a["x-validator"],"x-component":"ArrayCollapse","x-decorator":"FormItem","x-component-props":{accordion:!0},maxItems:3,items:{type:"object","x-component":"ArrayCollapse.CollapsePanel","x-component-props":{header:'{{ t("Validation rule") }}'},properties:{index:{type:"void","x-component":"ArrayCollapse.Index"},layout:{type:"void","x-component":"FormLayout","x-component-props":{labelStyle:{marginTop:"6px"},labelCol:8,wrapperCol:16},properties:P(x({},p),{message:{type:"string",title:'{{ t("Error message") }}',"x-decorator":"FormItem","x-component":"Input.TextArea","x-component-props":{autoSize:{minRows:2,maxRows:2}}}})},remove:{type:"void","x-component":"ArrayCollapse.Remove"},moveUp:{type:"void","x-component":"ArrayCollapse.MoveUp"},moveDown:{type:"void","x-component":"ArrayCollapse.MoveDown"}}},properties:{add:{type:"void",title:'{{ t("Add validation rule") }}',"x-component":"ArrayCollapse.Addition","x-reactions":{dependencies:["rules"],fulfill:{state:{disabled:"{{$deps[0].length >= 3}}"}}}}}}}},onSubmit:g=>{var _;const f=[];for(const S of g.rules)f.push(import_lodash.default.pickBy(S,h));const v={"x-uid":a["x-uid"]};if(["percent"].includes(m==null?void 0:m.interface))for(const S of f)(S.maxValue||S.minValue)&&(S.percentMode=!0),S.percentFormat&&(S.percentFormats=!0);const b=import_lodash.default.concat([],((_=m==null?void 0:m.uiSchema)==null?void 0:_["x-validator"])||[],f);n.validator=b,n.required=a.required,a["x-validator"]=f,v["x-validator"]=f,c.emit("patch",{schema:v}),u()}}):null},EditDefaultValue=()=>{var e;const{getCollectionJoinField:t}=useCollectionManager_deprecated(),{getField:o}=useCollection_deprecated(),{form:r}=useFormBlockContext(),i=(0,import_react.useField)(),n=(0,import_react.useFieldSchema)(),{t:a}=(0,import_react_i18next.useTranslation)(),{dn:l,refresh:c}=useDesignable(),u=o(n.name)||t(n["x-collection-field"]);return r&&!(r!=null&&r.readPretty)&&(e=u==null?void 0:u.uiSchema)!=null&&e.type?(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:a("Set default value"),components:{ArrayCollapse:import_antd_v5.ArrayCollapse,FormLayout:import_antd_v5.FormLayout},schema:{type:"object",title:a("Set default value"),properties:{default:P(x({},u==null?void 0:u.uiSchema),{name:"default",title:a("Default value"),"x-decorator":"FormItem",default:n.default||(u==null?void 0:u.defaultValue)})}},onSubmit:m=>{const d={"x-uid":n["x-uid"]};i.value!==m.default&&(i.value=m.default),n.default=m.default,d.default=m.default,l.emit("patch",{schema:d}),c()}}):null},EditComponent=()=>{var e;const{getCollectionJoinField:t,getCollection:o}=useCollectionManager_deprecated(),{getField:r}=useCollection_deprecated(),i=(0,import_react.useField)(),n=(0,import_react.useFieldSchema)(),{t:a}=(0,import_react_i18next.useTranslation)(),{dn:l}=useDesignable(),c=r(n.name)||t(n["x-collection-field"]),u=useFieldModeOptions(),m=["belongsTo","hasOne","hasMany","belongsToMany"].includes(c==null?void 0:c.type),d=o(c==null?void 0:c.target),p=isFileCollection(d);return m&&u?(0,import_jsx_runtime.jsx)(SchemaSettingsSelectItem,{title:a("Field component"),options:u,value:((e=i==null?void 0:i.componentProps)==null?void 0:e.mode)||(p?"FileManager":"Select"),onChange:h=>{const g={"x-uid":n["x-uid"]};n["x-component-props"]=n["x-component-props"]||{},n["x-component-props"].mode=h,g["x-component-props"]=n["x-component-props"],i.componentProps=i.componentProps||{},i.componentProps.mode=h,l.emit("patch",{schema:g}),l.refresh()}},"field-mode"):null},EditPattern=()=>{const{getCollectionJoinField:e}=useCollectionManager_deprecated(),{getField:t}=useCollection_deprecated(),{form:o}=useFormBlockContext(),r=(0,import_react.useField)(),i=(0,import_react.useFieldSchema)(),{t:n}=(0,import_react_i18next.useTranslation)(),{dn:a}=useDesignable(),l=t(i.name)||e(i["x-collection-field"]);let c="editable";return i["x-disabled"]===!0&&(c="readonly"),i["x-read-pretty"]===!0&&(c="read-pretty"),o&&!(o!=null&&o.readPretty)&&(l==null?void 0:l.interface)!=="o2m"&&!isPatternDisabled(i)?(0,import_jsx_runtime.jsx)(SchemaSettingsSelectItem,{title:n("Pattern"),options:[{label:n("Editable"),value:"editable"},{label:n("Readonly"),value:"readonly"},{label:n("Easy-reading"),value:"read-pretty"}],value:c,onChange:u=>{const m={"x-uid":i["x-uid"]};switch(u){case"readonly":{i["x-read-pretty"]=!1,i["x-disabled"]=!0,m["x-read-pretty"]=!1,m["x-disabled"]=!0,r.readPretty=!1,r.disabled=!0;break}case"read-pretty":{i["x-read-pretty"]=!0,i["x-disabled"]=!1,m["x-read-pretty"]=!0,m["x-disabled"]=!1,r.readPretty=!0;break}default:{i["x-read-pretty"]=!1,i["x-disabled"]=!1,m["x-read-pretty"]=!1,m["x-disabled"]=!1,r.readPretty=!1,r.disabled=!1;break}}a.emit("patch",{schema:m}),a.refresh()}},"pattern"):null},useEnsureOperatorsValid=()=>{useCollectOperator();const e=(0,import_react.useFieldSchema)(),t=useOperatorList(),{getOperators:o,collectOperator:r}=useOperators(),i=o();i&&t.length&&!i[e.name]&&r(e.name,t[0].value)},EditOperator=()=>{const e=useCompile(),t=(0,import_react.useFieldSchema)(),o=(0,import_react.useField)(),{t:r}=(0,import_react_i18next.useTranslation)(),{dn:i}=useDesignable(),n=useOperatorList(),{getOperator:a,collectOperator:l}=useOperators();return n.length&&!a(t.name)&&l(t.name,n[0].value),n.length?(0,import_jsx_runtime.jsx)(SchemaSettingsSelectItem,{title:r("Operator"),value:a(t.name),options:e(n),onChange:c=>{var u,m,d,p,h,g;l(t.name,c),import_lodash.default.set(t,"x-filter-operator",c);const _=n.find(v=>v.value===c);let f=x({},t["x-component-props"]);o.value=void 0,(u=_==null?void 0:_.schema)!=null&&u["x-component"]&&!(_!=null&&_.onlyFilterAction)?(import_lodash.default.set(t,"x-component-props.component",(m=_.schema)==null?void 0:m["x-component"]),import_lodash.default.set(o,"componentProps.component",(d=_.schema)==null?void 0:d["x-component"]),f=x(x(P(x({},t["x-component-props"]),{component:_.schema["x-component"]}),o.componentProps),(p=_.schema)==null?void 0:p["x-component-props"])):(h=t["x-component-props"])!=null&&h.component&&(import_lodash.default.set(t,"x-component-props.component",null),import_lodash.default.set(o,"componentProps.component",null),f=x(P(x({},t["x-component-props"]),{component:null}),(g=_.schema)==null?void 0:g["x-component-props"])),o.componentProps=f,t["x-component-props"]=f,t.default=null,o.value=null,o.initialValue=null,i.emit("patch",{schema:{"x-uid":t["x-uid"],"x-component-props":f,"x-filter-operator":c,default:null}}),i.refresh()}},"operator"):null},EditTitleField=()=>{var e,t,o;const{getCollectionFields:r,getCollectionJoinField:i}=useCollectionManager_deprecated(),{getField:n}=useCollection_deprecated(),a=(0,import_react.useField)(),l=(0,import_react.useFieldSchema)(),{t:c}=(0,import_react_i18next.useTranslation)(),{dn:u}=useDesignable(),m=useCompile(),d=n(l.name)||i(l["x-collection-field"]),p=(d!=null&&d.target?r(d==null?void 0:d.target):(e=r(d==null?void 0:d.targetCollection))!=null?e:[]).filter(h=>!(h!=null&&h.target)&&h.type!=="boolean").map(h=>{var g;return{value:h==null?void 0:h.name,label:m((g=h==null?void 0:h.uiSchema)==null?void 0:g.title)||(h==null?void 0:h.name)}});return p.length>0&&l["x-component"]==="CollectionField"?(0,import_jsx_runtime.jsx)(SchemaSettingsSelectItem,{title:c("Title field"),options:p,value:(o=(t=a==null?void 0:a.componentProps)==null?void 0:t.fieldNames)==null?void 0:o.label,onChange:h=>{var g,_;const f={"x-uid":l["x-uid"]},v=P(x(x({},(_=(g=d==null?void 0:d.uiSchema)==null?void 0:g["x-component-props"])==null?void 0:_.fieldNames),a.componentProps.fieldNames),{label:h});l["x-component-props"]=l["x-component-props"]||{},l["x-component-props"].fieldNames=v,f["x-component-props"]=l["x-component-props"],a.componentProps.fieldNames=l["x-component-props"].fieldNames,u.emit("patch",{schema:f}),u.refresh()}},"title-field"):null},isDisplayField=e=>e.includes("."),useLazyLoadDisplayAssociationFieldsOfForm=()=>{var e;const{name:t}=useCollection_deprecated(),{getCollectionJoinField:o,getCollection:r}=useCollectionManager_deprecated(),i=(0,import_react.useForm)(),n=(0,import_react.useFieldSchema)(),a=useVariables$1(),l=(0,import_react.useField)(),{formValue:c}=useSubFormValue(),{isInSubForm:u,isInSubTable:m}=useFlag()||{},{getAssociationAppends:d}=useAssociationNames(),p=n.name.toString(),h=(0,import_react2.useRef)(null),g=(0,import_react2.useRef)(null);h.current==null&&isDisplayField(p)&&(h.current=o(`${t}.${p}`)),g.current==null&&isDisplayField(p)&&(g.current=o(`${t}.${p.split(".")[0]}`));const _=(0,import_react2.useMemo)(()=>!isDisplayField(p)||!a||t==="fields"||!h.current,[p,a,t,h.current]),f=_?{}:(0,import_reactive.untracked)(()=>import_lodash.default.cloneDeep(u||m?c:i.values)),v=isDisplayField(p)&&g.current?import_lodash.default.get(f,`${p.split(".")[0]}.${((e=g.current)==null?void 0:e.targetKey)||"id"}`):void 0;(0,import_react2.useEffect)(()=>{var b;if(_||import_lodash.default.isEmpty(f))return;const S={name:"$nForm",ctx:f,collectionName:t},C=`{{ $nForm.${p} }}`;if(v==null)return;const{appends:y}=d(),F=r((b=h.current)==null?void 0:b.collectionName);a.parseVariable(C,S,{appends:y}).then(({value:j})=>{(0,import_client.nextTick)(()=>{const k=transformVariableValue(j,{targetCollectionField:h.current});k==null?l.value=null:(l.value=k,l.componentProps=P(x({},l.componentProps),{readOnlySubmit:!0,filterTargetKey:(F==null?void 0:F.filterTargetKey)||"id"}))})}).catch(j=>{console.error(j)})},[v,_])},useContextVariable=()=>{var e,t;let o;const{isPopupVisibleControlledByURL:r}=usePopupSettings(),{params:i}=useCurrentPopupContext(),n=useCollection(),a=useDataBlockRequestData(),l=useTableBlockContextBasicValue()||{};r()?o=(e=getStoredPopupContext(i==null?void 0:i.popupuid))==null?void 0:e.tableBlockContext:o=P(x({},l),{collection:n,blockData:a});const{field:c,blockData:u,rowKey:m,collection:d}=o||{},p=(0,import_react2.useMemo)(()=>{var h,g;return(g=(h=u==null?void 0:u.data)==null?void 0:h.filter)==null?void 0:g.call(h,_=>{var f,v;return(v=((f=c==null?void 0:c.data)==null?void 0:f.selectedRowKeys)||[])==null?void 0:v.includes(_[m])})},[(t=c==null?void 0:c.data)==null?void 0:t.selectedRowKeys,m,u]);return(0,import_react2.useMemo)(()=>({name:"$context",ctx:p||[],collectionName:d}),[d,p])},useLocalVariables=e=>{var t;const{parentObjectCtx:o,shouldDisplayParentObject:r,collectionName:i}=useParentObjectContext(),{currentObjectCtx:n,shouldDisplayCurrentObject:a}=useCurrentObjectContext(),{currentRecordCtx:l,collectionName:c}=useCurrentRecordContext(),{currentParentRecordCtx:u,collectionName:m,dataSource:d}=useCurrentParentRecordContext(),{popupRecordCtx:p,collectionName:h,dataSource:g,defaultValue:_}=usePopupVariableContext(),{parentPopupRecordCtx:f,collectionName:v,dataSource:b,defaultValue:S}=useParentPopupVariableContext(),{urlSearchParamsCtx:C,shouldDisplay:y,defaultValue:F}=useURLSearchParamsVariable(),{datetimeCtx:j}=useDatetimeVariableContext(),{currentFormCtx:k}=useCurrentFormContext({form:e==null?void 0:e.currentForm}),{name:T}=useCollection_deprecated(),B=useContextVariable();let{name:w}=useBlockCollection();e!=null&&e.collectionName&&(w=e.collectionName);const L=useApp(),D=((t=L.getVariables)==null?void 0:t.call(L).map(R=>({name:R.name,ctx:R.useCtx()})))||[];return(0,import_react2.useMemo)(()=>[{name:"currentRecord",ctx:l,collectionName:c},{name:w,ctx:k||l,collectionName:w},{name:"$form",ctx:k,collectionName:w},{name:"$nRecord",ctx:l,collectionName:c,dataSource:d},{name:"$nParentRecord",ctx:u,collectionName:m,dataSource:d},{name:"$nPopupRecord",ctx:p,collectionName:h,dataSource:g,defaultValue:_},{name:"$nParentPopupRecord",ctx:f,collectionName:v,dataSource:b,defaultValue:S},{name:"$nForm",ctx:k,collectionName:w},{name:"$nDate",ctx:j},{name:"$date",ctx:j},B,a&&{name:"$iteration",ctx:n,collectionName:T},r&&{name:"$nParentIteration",ctx:o,collectionName:i},y&&{name:"$nURLSearchParams",ctx:C,defaultValue:F},...D].filter(Boolean),[l,c,w,k,u,m,d,p,f,h,g,j,a,n,T,_,S,r,o,i,B,C,...D.map(R=>R.ctx)])},useLocalVariables$1=useLocalVariables,useVariables=()=>(0,import_react2.useContext)(VariablesContext),useVariables$1=useVariables,isSubFormOrSubTableField=e=>{for(;e;){if(isSubMode(e))return!0;if(e["x-component"]==="FormV2")return!1;e=e.parent}return!1},useLinkageRulesForSubTableOrSubForm=()=>{const e=(0,import_react.useFieldSchema)(),t=(0,import_react.useField)(),{fieldSchema:o,formValue:r}=useSubFormValue(),i=useLocalVariables$1(),n=useVariables$1(),a=getLinkageRules$1(o),l=useApp();(0,import_react2.useEffect)(()=>{if(!isSubFormOrSubTableField(e))return;if(!t.onUnmount.__rested){const u=t.onUnmount;t.onUnmount=()=>{var m;(m=t.__disposes)==null||m.forEach(d=>{d()}),u()},t.onUnmount.__rested=!0}if(!a)return;t.__disposes&&t.__disposes.forEach(u=>{u()});const c=t.__disposes=[];forEachLinkageRule(a,(u,m)=>{var d;(d=u.targetFields)!=null&&d.includes(e.name)&&c.push(bindLinkageRulesToFiled({field:t,linkageRules:a,formValues:r,localVariables:i,action:u,rule:m,variables:n,variableNameOfLeftCondition:"$iteration"},l.jsonLogic))}),t.__linkageRules=a},[t,e==null?void 0:e.name,r,JSON.stringify(a),i,n])};function getLinkageRules$1(e){var t;if(!e)return;const o=e["x-linkage-rules"]||((t=e==null?void 0:e.parent)==null?void 0:t["x-linkage-rules"])||[];return o==null?void 0:o.filter(r=>!r.disabled)}const useParseDefaultValue=()=>{const e=(0,import_react.useField)(),t=(0,import_react.useFieldSchema)(),o=useVariables$1(),r=useLocalVariables$1(),i=useCollectionRecord(),{isInAssignFieldValues:n,isInSetDefaultValueDialog:a,isInFormDataTemplate:l,isInSubTable:c,isInSubForm:u}=useFlag()||{},m=useCollection(),{isSpecialCase:d,setDefaultValue:p}=useSpecialCase(),h=useRecordIndex(),{type:g,form:_}=useFormBlockContext(),{getOperator:f}=useOperators(),v=useDataSourceManager(),b=(0,import_react2.useCallback)(S=>{let C=o==null?void 0:o.getVariable(S);return C||(C=r.find(y=>y.name===S)),C},[r,o]);(0,import_react2.useEffect)(()=>{var S,C;if(g==="update"&&t.default&&e.form===_&&((C=e.setValue)==null||C.call(e,(S=i==null?void 0:i.data)==null?void 0:S[t.name])),t.default==null||a||l||isSubMode(t)||!(i!=null&&i.isNew)&&!n)return;const y=(...j)=>z(void 0,[...j],function*({forceUpdate:k=!1}={}){if(o&&e&&(isVariable$1(t.default)&&e.value==null||e.value===t.default||k)){e.loading=!0;const T=!t.name.toString().includes(".")&&(m==null?void 0:m.getField(t.name)),{value:B,collectionName:w,dataSource:L="main"}=yield o.parseVariable(t.default,r,{fieldOperator:f(t.name)});if(T!=null&&T.target&&w&&T.target!==w&&!isInherit({collectionName:T.target,targetCollectionName:w,dm:v,dataSource:L})){e.loading=!1;return}const D=transformVariableValue(B,{targetCollectionField:T});D==null||D===""?e.mounted&&(e.setInitialValue(null),yield e.reset({forceClear:!0})):d()?h===0&&p(D):e.setInitialValue(D),e.loading=!1}else!/\{\{.+\}\}/g.test(t.default)&&e.setInitialValue&&e.setInitialValue(t.default)}),F=import_lodash.default.debounce(y,DEBOUNCE_WAIT);if(isVariable$1(t.default)){const j=getVariableName(t.default),k=b(j);return k?(y({forceUpdate:!0}),(0,import_reactive.reaction)(()=>{const T={[j]:(k==null?void 0:k.ctx)||{}},B=getPath(t.default),w=(0,import_client.getValuesByPath)(T,B);return w===void 0?Math.random():w},()=>F({forceUpdate:!0}),{equals:import_lodash.default.isEqual})):console.error(`useParseDefaultValue: can not find variable ${j}`)}else e.value==null&&(c||u)&&e.setValue(t.default)},[t.default,r,g,f,v,m])},isInherit=({collectionName:e,targetCollectionName:t,dm:o,dataSource:r})=>{var i,n,a;const l=(i=o==null?void 0:o.getDataSource(r))==null?void 0:i.collectionManager;return(a=(n=l==null?void 0:l.getCollection(e))==null?void 0:n.getAllCollectionsInheritChain())==null?void 0:a.includes(t)};import_antd_v5.FormItem.displayName="FormilyFormItem";const formItemWrapCss=import_css.css`
645
645
  & .ant-space {
646
646
  flex-wrap: wrap;
647
647
  }
@@ -906,7 +906,7 @@ https://requirejs.org/docs/errors.html#`+e);return i.requireType=e,i.requireModu
906
906
  display: none;
907
907
  }
908
908
  }
909
- `,InternalPageContent=e=>{var t,o,r;const{loading:i,disablePageHeader:n,enablePageTabs:a,activeKey:l}=e,c=useCurrentRoute(),u=useNavigateNoUpdate(),m=useLocationNoUpdate(),{isMobileLayout:d}=useMobileLayout(),p=((c==null?void 0:c.children)||[]).every(g=>g.schemaUid!==l&&g.tabSchemaName!==l);if(l&&p)return(0,import_jsx_runtime.jsx)(AppNotFound,{});const h=(t=c==null?void 0:c.children)==null?void 0:t.find(g=>g.tabSchemaName===l);if(h){const g=new URLSearchParams(m.search);g.has("tab")&&g.get("tab")===l&&g.delete("tab");const _=g.toString()?`?${g.toString()}`:"",f=m.pathname+(m.pathname.endsWith("/")?`tabs/${h.schemaUid}`:`/tabs/${h.schemaUid}`);return u(f+_),null}return!n&&a?(0,import_jsx_runtime.jsx)(KeepAlive,{uid:l,children:g=>{var _;return(0,import_jsx_runtime.jsx)(NocoBaseRouteContext.Provider,{value:(_=c.children)==null?void 0:_.find(f=>f.schemaUid===g),children:(0,import_jsx_runtime.jsx)(RemoteSchemaComponent,{uid:g,schemaTransform:d?import_client.transformMultiColumnToSingleColumn:void 0})})}}):(0,import_jsx_runtime.jsx)("div",{className:className1,children:(0,import_jsx_runtime.jsx)(NocoBaseRouteContext.Provider,{value:(o=c==null?void 0:c.children)==null?void 0:o[0],children:(0,import_jsx_runtime.jsx)(RemoteSchemaComponent,{uid:(r=c==null?void 0:c.children)==null?void 0:r[0].schemaUid,schemaTransform:d?import_client.transformMultiColumnToSingleColumn:void 0})})})},PageContent=(0,import_react2.memo)(e=>(0,import_jsx_runtime.jsx)(PopupRouteContextResetter,{children:(0,import_jsx_runtime.jsx)(InternalPageContent,x({},e))})),TabBadge=e=>{var t,o,r;const i=useEvaluatedExpression((o=(t=e.tabRoute.options)==null?void 0:t.badge)==null?void 0:o.count);return i==null?null:(0,import_jsx_runtime.jsx)(import_antd.Badge,P(x({},(r=e.tabRoute.options)==null?void 0:r.badge),{count:i,style:x({maxWidth:"10em"},e.style),dot:!1,children:e.children}))},NocoBasePageHeaderTabs=({className:e,activeKey:t})=>{const o=(0,import_react.useFieldSchema)(),{t:r}=(0,import_react_i18next.useTranslation)(),{t:i}=useRouteTranslation(),{token:n}=useToken$1(),a=useRouterBasename(),l=useNavigateNoUpdate(),c=(0,import_react2.useCallback)(y=>{navigateToTab({activeKey:y,navigate:l,basename:a})},[a,l]),u=useDesignable(),{getAriaLabel:m}=useGetAriaLabelOfSchemaInitializer(),d=(0,import_react2.useContext)(import_react.SchemaOptionsContext),{theme:p}=useGlobalTheme(),h=useCurrentRoute(),{createRoute:g}=useNocoBaseRoutes(),_=useCompile(),f=(0,import_react2.useMemo)(()=>u.designable&&(0,import_jsx_runtime.jsx)(import_antd.Button,{"aria-label":m("tabs"),icon:(0,import_jsx_runtime.jsx)(import_icons.PlusOutlined,{}),className:"addTabBtn",type:"dashed",onClick:()=>z(void 0,null,function*(){const y=yield FormDialog(r("Add tab"),()=>(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{scope:d.scope,components:x({},d.components),children:(0,import_jsx_runtime.jsx)(import_antd_v5.FormLayout,{layout:"vertical",children:(0,import_jsx_runtime.jsx)(SchemaComponent,{schema:{properties:{title:{title:r("Tab name"),"x-component":"Input","x-decorator":"FormItem",required:!0},icon:{title:r("Icon"),"x-component":"IconPicker","x-decorator":"FormItem"}}}})})}),p).open({initialValues:{}}),{title:F,icon:j}=y,k=(0,import_shared.uid)(),T=(0,import_shared.uid)();yield g({type:NocoBaseDesktopRouteType.tabs,schemaUid:k,title:F||'{{t("Unnamed")}}',icon:j,parentId:h.id,tabSchemaName:T}),u.insertBeforeEnd(getTabSchema({title:F,icon:j,schemaUid:k,tabSchemaName:T}))}),children:r("Add tab")}),[u,m,d==null?void 0:d.components,d==null?void 0:d.scope,r,p]),v=h.enableTabs,b=(0,import_react2.useMemo)(()=>({paddingLeft:n.paddingLG-n.paddingPageHorizontal,paddingRight:n.paddingLG-n.paddingPageHorizontal,marginLeft:n.paddingPageHorizontal-n.paddingLG,marginRight:n.paddingPageHorizontal-n.paddingLG}),[n.paddingLG,n.paddingPageHorizontal]),S=(0,import_react2.useMemo)(()=>{var y;return(y=h==null?void 0:h.children)==null?void 0:y.map(F=>{var j,k;if(!F||F.hideInMenu)return null;const T={__route__:F};return{label:(0,import_jsx_runtime.jsx)(NocoBaseRouteContext.Provider,{value:F,children:(0,import_jsx_runtime.jsx)(VariableScope,{scopeId:F.schemaUid,type:"pageTab",children:(0,import_jsx_runtime.jsxs)(SortableItem,{id:String(F.id),className:(0,import_classnames.default)("nb-action-link","designerCss",e),schema:T,style:{display:"flex",alignItems:"center"},children:[F.icon&&(0,import_jsx_runtime.jsx)(Icon,{style:{marginRight:8},type:F.icon}),(0,import_jsx_runtime.jsx)("span",{children:F.title&&i(_(F.title))||r("Unnamed")}),(0,import_jsx_runtime.jsx)(PageTabDesigner,{}),(0,import_jsx_runtime.jsx)(TabBadge,{style:{marginLeft:4,color:(k=(j=F.options)==null?void 0:j.badge)==null?void 0:k.textColor},tabRoute:F})]})})}),key:F.schemaUid}}).filter(Boolean)},[o,e,r,o.mapProperties(y=>y.title||r("Unnamed")).join(),h]),{onDragEnd:C}=useMenuDragEnd();return v?(0,import_jsx_runtime.jsx)(DndContext,{onDragEnd:C,children:(0,import_jsx_runtime.jsx)(import_antd.Tabs,{size:"small",activeKey:t,tabBarStyle:b,onChange:c,tabBarExtraContent:f,items:S})}):null},NocoBasePageHeader=import_react2.default.memo(({activeKey:e,className:t})=>{var o,r;const i=(0,import_react.useFieldSchema)(),{setTitle:n}=useDocumentTitle(),{t:a}=(0,import_react_i18next.useTranslation)(),{t:l}=useRouteTranslation(),[c,u]=(0,import_react2.useState)(()=>a(i.title)),m=(o=i["x-component-props"])==null?void 0:o.disablePageHeader,d=useCurrentRoute(),p=d.enableTabs,h=(r=i["x-component-props"])==null?void 0:r.hidePageTitle,{token:g}=useToken$1();return(0,import_react2.useEffect)(()=>{const _=a(i.title,{ns:NAMESPACE_UI_SCHEMA})||a(d==null?void 0:d.title,{ns:NAMESPACE_UI_SCHEMA});_&&(n(_),u(_))},[i.title,c,n,a,d==null?void 0:d.title]),(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(PageDesigner,{title:c}),!m&&(0,import_jsx_runtime.jsx)(import_pro_layout.PageHeader,{className:(0,import_classnames.default)("pageHeaderCss",c||p?"":"height0"),style:{paddingBottom:d.enableTabs||h?0:g.paddingSM},ghost:!1,title:h?" ":(!i.title&&c?l(c):c)||" ",footer:(0,import_jsx_runtime.jsx)(NocoBasePageHeaderTabs,{className:t,activeKey:e})})]})});NocoBasePageHeader.displayName="NocoBasePageHeader";function navigateToTab({activeKey:e,navigate:t,basename:o,pathname:r=window.location.pathname}){r=r.replace(o,""),r.endsWith("/")&&(r=r.slice(0,-1)),r.startsWith("/")||(r=`/${r}`),isTabPage(r)?t(withSearchParams(`${r.replace(/\/tabs\/[^/]+$/,`/tabs/${e}`)}`),{replace:!0}):t(withSearchParams(`${r}/tabs/${e}`),{replace:!0})}function isTabPage(e){e.endsWith("/")&&(e=e.slice(0,-1));const t=e.split("/");return t[t.length-2]==="tabs"}function getTabSchema({title:e,icon:t,schemaUid:o,tabSchemaName:r}){return{type:"void",name:r,title:e,"x-icon":t,"x-component":"Grid","x-initializer":"page:addBlock",properties:{},"x-uid":o,"x-async":!0}}function RouteSchemaComponent(){const e=useCurrentPageUid();return(0,import_jsx_runtime.jsx)(RemoteSchemaComponent,{onlyRenderProperties:!0,uid:e})}function useNotDisableHeader(){var e;return!((e=(0,import_react.useFieldSchema)()["x-component-props"])!=null&&e.disablePageHeader)}const pageSettings=new SchemaSettings({name:"PageSettings",items:[{name:"enablePageHeader",type:"switch",useComponentProps(){var e;const{dn:t}=useDesignable(),{t:o}=(0,import_react_i18next.useTranslation)(),r=(0,import_react.useFieldSchema)();return{title:o("Enable page header"),checked:!((e=r["x-component-props"])!=null&&e.disablePageHeader),onChange(i){r["x-component-props"]=r["x-component-props"]||{},r["x-component-props"].disablePageHeader=!i,t.emit("patch",{schema:{"x-uid":r["x-uid"],"x-component-props":r["x-component-props"]}}),t.refresh()}}}},{name:"divider",type:"divider",useVisible:useNotDisableHeader},{name:"displayPageTitle",type:"switch",useVisible:useNotDisableHeader,useComponentProps(){var e;const{dn:t}=useDesignable(),{t:o}=(0,import_react_i18next.useTranslation)(),r=(0,import_react.useFieldSchema)();return{title:o("Display page title"),checked:!((e=r["x-component-props"])!=null&&e.hidePageTitle),onChange(i){r["x-component-props"]=r["x-component-props"]||{},r["x-component-props"].hidePageTitle=!i,t.emit("patch",{schema:{"x-uid":r["x-uid"],"x-component-props":r["x-component-props"]}}),t.refresh()}}}},{name:"editPageTitle",type:"modal",useVisible(){var e;const t=useNotDisableHeader(),o=!((e=(0,import_react.useFieldSchema)()["x-component-props"])!=null&&e.hidePageTitle);return t&&o},useComponentProps(){const{dn:e}=useDesignable(),{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{title:i}=useSchemaToolbar();return{hide:!0,title:t("Edit page title"),schema:{type:"object",title:t("Edit page title"),properties:{title:{title:t("Title"),required:!0,"x-decorator":"FormItem","x-component":"Input","x-component-props":{}}}},initialValues:{title:i},onSubmit({title:n}){o.title=n,r.title=n,e.emit("patch",{schema:{"x-uid":r["x-uid"],title:n}})}}}},{name:"enablePageTabs",type:"switch",useVisible:useNotDisableHeader,useComponentProps(){const{dn:e}=useDesignable(),{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useFieldSchema)(),r=useCurrentRoute(),{updateRoute:i}=useNocoBaseRoutes();return{title:t("Enable page tabs"),checked:r.enableTabs,onChange(n){return z(this,null,function*(){yield i(r.id,{enableTabs:n}),o["x-component-props"]=o["x-component-props"]||{},o["x-component-props"].enablePageTabs=n,e.emit("patch",{schema:{"x-uid":o["x-uid"],"x-component-props":o["x-component-props"]}})})}}}}]}),pageTabSettings=new SchemaSettings({name:"PageTabSettings",items:[{name:"edit",type:"modal",useComponentProps(){const{t:e}=(0,import_react_i18next.useTranslation)(),{updateRoute:t}=useNocoBaseRoutes(),o=useCurrentRoute();return{title:e("Edit"),schema:{type:"object",title:e("Edit tab"),properties:{title:{title:e("Tab name"),required:!0,"x-decorator":"FormItem","x-component":"Input","x-component-props":{}},icon:{title:e("Icon"),"x-decorator":"FormItem","x-component":"IconPicker","x-component-props":{}}}},initialValues:{title:o.title,icon:o.icon},onSubmit:({title:r,icon:i})=>{t(o.id,{title:r,icon:i})}}},sort:100},{name:"hidden",type:"switch",useComponentProps(){const{t:e}=(0,import_react_i18next.useTranslation)(),{updateRoute:t}=useNocoBaseRoutes(),o=useCurrentRoute();return{title:e("Hidden"),checked:o.hideInMenu,onChange:r=>{import_antd.Modal.confirm({title:e("Are you sure you want to hide this tab?"),icon:(0,import_jsx_runtime.jsx)(import_icons.ExclamationCircleFilled,{}),content:e("After hiding, this tab will no longer appear in the tab bar. To show it again, you need to go to the route management page to set it."),onOk(){return z(this,null,function*(){yield t(o.id,{hideInMenu:!!r})})}})}}},sort:200},{name:"divider",type:"divider",sort:300},{name:"delete",type:"item",useComponentProps(){const{modal:e}=import_antd.App.useApp(),{dn:t}=useDesignable(),{t:o}=(0,import_react_i18next.useTranslation)(),{deleteRoute:r}=useNocoBaseRoutes(),i=useCurrentRoute(),n=useNavigateNoUpdate(),a=(0,import_react.useFieldSchema)();return{title:o("Delete"),eventKey:"remove",onClick(){e.confirm(P(x({title:o("Delete block"),content:o("Are you sure you want to delete it?")},confirm),{onOk(){return z(this,null,function*(){yield r(i.id),t.emit("remove",{removed:{"x-uid":i.schemaUid}}),window.location.pathname.includes(i.schemaUid)&&n(`/admin/${a["x-uid"]}`)})}}))},children:o("Delete")}},sort:400}]}),AntdSchemaComponentProvider=e=>{const{children:t}=e;return(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{scope:{requestChartData,useFilterActionProps:useFilterActionProps$1},components:x(x({},components$2),common),children:t})};class AntdSchemaComponentPlugin extends Plugin{load(){return z(this,null,function*(){this.addComponents(),this.addScopes(),this.addSchemaSettings()})}addComponents(){this.app.addComponents(x(x({},components$2),common))}addScopes(){this.app.addScopes({requestChartData,useFilterActionProps:useFilterActionProps$1})}addSchemaSettings(){this.app.schemaSettingsManager.add(pageSettings),this.app.schemaSettingsManager.add(pageTabSettings),this.app.schemaSettingsManager.add(formItemSettings),this.app.schemaSettingsManager.add(filterFormItemSettings),this.app.schemaSettingsManager.add(formV1Settings),this.app.schemaSettingsManager.add(formSettings),this.app.schemaSettingsManager.add(readPrettyFormSettings),this.app.schemaSettingsManager.add(formDetailsSettings),this.app.schemaSettingsManager.add(actionSettings)}}function usePropsCollection({collection:e}){return e}function loadChildren(e){const t=getCollectionFieldOptions.call(this,e.field.target,e);return t.length&&t.some(o=>isAssociation(o.field))||(e.isLeaf=!0),t}function isAssociation(e){return e.target&&e.interface}function trueFilter(e){return!0}function getCollectionFieldOptions(e,t){const o=this.getCollectionFields(e),r=loadChildren.bind(this);return o.filter(this.filter).map(i=>{var n,a,l;const c=t?`${t.value?`${t.value}.`:""}${i.name}`:i.name,u=(a=this.compile((n=i.uiSchema)==null?void 0:n.title))!=null?a:i.name,m=!this.getCollectionFields(i.target).filter(isAssociation).filter(this.filter).length;return{pId:(l=t==null?void 0:t.key)!=null?l:null,id:c,key:c,value:c,title:u,isLeaf:m,loadChildren:m?null:r,field:i,fullTitle:t?[...t.fullTitle,u]:[u]}})}const FieldsTreeSelect=e=>{const t=e,{title:o,value:r,onChange:i,collection:n,useCollection:a=usePropsCollection,filter:l=trueFilter,rootOption:c,loadData:u,includeFieldPaths:m}=t,d=W(t,["title","value","onChange","collection","useCollection","filter","rootOption","loadData","includeFieldPaths"]),p=useCompile(),{t:h}=(0,import_react_i18next.useTranslation)(),[g,_]=(0,import_react2.useState)({}),f=a({collection:n}),[v,b]=parseCollectionName(f),S=useApp(),{collectionManager:C}=S.dataSourceManager.getDataSource(v),y=(D,R)=>{const $=C.getCollection(D);return $?$.getAllFields(R):[]},F=Object.values(g),j=(0,import_react2.useMemo)(()=>e.multiple?(r||[]).map(D=>g[D]).filter(Boolean):r,[r,e.multiple,g]),k=(0,import_react2.useCallback)(D=>z(void 0,null,function*(){if(u!=null)return u(D);if(!D.isLeaf&&D.loadChildren){const R=D.loadChildren(D);_($=>R.reduce((M,I)=>Object.assign(M,{[I.value]:I}),x({},$)))}}),[u]);(0,import_react2.useEffect)(()=>{const D=c?P(x({},c),{id:c.value,key:c.value,title:c.label,fullTitle:c.label,isLeaf:!1}):null,R=(u===null?[]:getCollectionFieldOptions.call({compile:p,getCollectionFields:y,filter:l},b,D)).reduce(($,M)=>Object.assign($,{[M.value]:M}),{});D&&(R[D.value]=D),_(R)},[f,c,l,u]),(0,import_react2.useEffect)(()=>{const D=e.multiple?r:r?[r]:[];if(!(D!=null&&D.length)||D.every($=>!!g[$]))return;const R=[];D.forEach($=>{const M=$.split(".");let I=g[M[0]];for(let N=1;N<M.length&&I;N++){const E=M.slice(0,N+1).join(".");if(g[E]){I=g[E];break}if(!I.isLeaf&&I.loadChildren){const O=I.loadChildren(I);O!=null&&O.length&&(R.push(...O),I=O.find(V=>V.value===M.slice(0,N+1).join(".")))}}}),_($=>R.reduce((M,I)=>Object.assign(M,{[I.value]:I}),x({},$)))},[r,F.length,e.multiple]);const T=(0,import_react2.useCallback)(D=>{if(!e.multiple){i(D);return}const R=D.map(I=>I.value).filter(Boolean),$=new Set(R),M=j.find(I=>!$.has(I.value));if(M){const I=`${M.value}.`;Object.keys(g).forEach(N=>{N.startsWith(I)&&$.delete(N)})}else m&&R.forEach(I=>{const N=I.split(".");if(N.length)for(let E=1;E<=N.length;E++)$.add(N.slice(0,E).join("."))});i(Array.from($))},[e.multiple,j,i,g]),B=(0,import_react2.useCallback)(D=>{var R;const{value:$,onClose:M,disabled:I,closable:N}=D;if(!$)return null;const{fullTitle:E}=(R=g[$])!=null?R:{};return(0,import_jsx_runtime.jsx)(import_antd.Tag,{closable:N&&!I,onClose:M,children:E==null?void 0:E.join(" / ")})},[g]),w=Array.isArray(j)?j.filter(D=>D.value in g):j,L=e.multiple?r:r!=null?[r]:[];return(0,import_jsx_runtime.jsx)(import_antd.TreeSelect,P(x({role:"button","data-testid":`select-field${o?`-${o}`:""}`,value:w,placeholder:h("Select field"),showCheckedStrategy:import_antd.TreeSelect.SHOW_ALL,treeDefaultExpandedKeys:L,allowClear:{clearIcon:(0,import_jsx_runtime.jsx)(import_icons.CloseCircleFilled,{role:"button","aria-label":"icon-close"})},treeCheckStrictly:e.multiple,treeCheckable:e.multiple,tagRender:B,onChange:T,treeDataSimpleMode:!0,treeData:F,loadData:k},d),{suffixIcon:(0,import_jsx_runtime.jsx)(import_icons.DownOutlined,{})}))},AppendsTreeSelect=e=>(0,import_jsx_runtime.jsx)(FieldsTreeSelect,x({filter:isAssociation,includeFieldPaths:!0},e)),removeIfKeyEmpty=(e,t)=>!e||typeof e!="object"||!t||Array.isArray(e)||e[t]?e:void 0,AssociationFieldAddNewer=e=>{const t=(0,import_react2.useContext)(SchemaComponentContext);return(0,import_jsx_runtime.jsx)(SchemaComponentContext.Provider,{value:P(x({},t),{draggable:!0}),children:(0,import_jsx_runtime.jsx)(Action.Container,x({},e))})},filterAnalyses=e=>{if(!e)return;const t=Object.keys(e)[0]||"$and",o=e[t],r=[];return o==null||o.map(i=>{var n,a,l;const c=getInnermostKeyAndValue(i);if(!(c!=null&&c.key))return!0;const u=/\{\{\$[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*\.(\w+)\.id\}\}/,m=(l=(a=(n=c==null?void 0:c.value)==null?void 0:n.match)==null?void 0:a.call(n,u))==null?void 0:l[1];m&&r.push(m)}),r};function getFieldPath(e){const t=e.lastIndexOf(".");return t===-1?e:e.slice(0,t)}const InternalAssociationSelect$1=(0,import_react.observer)(e=>{var t;const o=e,{objectValue:r=!0,addMode:i}=o,n=W(o,["objectValue","addMode"]),a=(0,import_react.useField)(),l=(0,import_react.useFieldSchema)(),c=useServiceOptions$1((l==null?void 0:l["x-component-props"])||e),{options:u}=useAssociationFieldContext(),m=isVariable$1(e.value)?void 0:e.value,d=Array.isArray(m)?m.filter(Boolean):m,[p,h]=(0,import_react2.useState)(d),g=(t=l["x-component-props"])==null?void 0:t.addMode,{t:_}=(0,import_react_i18next.useTranslation)(),{multiple:f}=e,v=(0,import_react.useForm)(),b=useAPIClient().resource(u.target),S=useCollectionRecordData(),C=(0,import_react2.useContext)(SchemaComponentContext),{getCollection:y}=useCollectionManager_deprecated(),F=y(u.target),{filterTargetKey:j}=F;(0,import_react2.useEffect)(()=>{const B=isVariable$1(a.value)?void 0:a.value,w=Array.isArray(B)?B.filter(Boolean):B,L=removeIfKeyEmpty(w,j);h(L),(0,import_lodash.isEqual)(a.value,L)||(a.value=L)},[a.value,j]),(0,import_react2.useEffect)(()=>{const B=(0,import_shared.uid)();return v.addEffects(B,()=>{(0,import_core.onFieldInputValueChange)("*",w=>{var L,D,R,$,M,I;const N=filterAnalyses((R=(D=(L=a.componentProps)==null?void 0:L.service)==null?void 0:D.params)==null?void 0:R.filter)||[],E=getFieldPath(w.address.entire),O=getFieldPath(a.address.entire);N.includes(($=w==null?void 0:w.props)==null?void 0:$.name)&&a.value&&(0,import_lodash.isEqual)(w==null?void 0:w.indexes,a==null?void 0:a.indexes)&&((M=w==null?void 0:w.props)==null?void 0:M.name)!==a.props.name&&(!((I=a==null?void 0:a.indexes)!=null&&I.length)||(0,import_lodash.isEqual)(E,O))&&(a.setValue(null),h(null))})}),()=>{v.removeEffects(B)}},[]);const k=B=>z(void 0,null,function*(){var w,L;const{search:D,callBack:R}=B,{data:{data:$}}=yield b.create({values:{[((L=(w=a==null?void 0:a.componentProps)==null?void 0:w.fieldNames)==null?void 0:L.label)||"id"]:D}});if($){if(["m2m","o2m"].includes(u==null?void 0:u.interface)&&f!==!1){const M=v.getValuesIn(a.path)||[];M.push($),v.setValuesIn(a.path,M),a.onInput(M)}else v.setValuesIn(a.path,$),a.onInput($);(0,import_mathjs.isFunction)(R)&&(R==null||R()),import_antd.message.success(_("Saved successfully"))}}),T=B=>(0,import_jsx_runtime.jsxs)("div",{onClick:()=>k(B),style:{cursor:"pointer",padding:"5px 12px",color:"#0d0c0c"},children:[(0,import_jsx_runtime.jsx)(import_icons.PlusOutlined,{}),(0,import_jsx_runtime.jsx)("span",{style:{paddingLeft:5},children:_("Add")+` “${B.search}” `})]});return(0,import_jsx_runtime.jsx)("div",{children:(0,import_jsx_runtime.jsxs)(import_antd.Space.Compact,{style:{display:"flex"},children:[(0,import_jsx_runtime.jsx)(RemoteSelect,P(x({style:{width:"100%"}},n),{size:"middle",objectValue:r,value:removeIfKeyEmpty(d||p,j),service:c,onChange:B=>{var w;const L=Array.isArray(B)&&B.length===0?null:B;(w=e.onChange)==null||w.call(e,L)},CustomDropdownRender:g==="quickAdd"&&T})),g==="modalAdd"&&(0,import_jsx_runtime.jsx)(SchemaComponentContext.Provider,{value:P(x({},C),{draggable:!1}),children:(0,import_jsx_runtime.jsx)(RecordProvider,{isNew:!0,record:null,parent:S,children:(0,import_jsx_runtime.jsx)(VariablePopupRecordProvider,{children:(0,import_jsx_runtime.jsx)(ClearCollectionFieldContext,{children:(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{onlyRenderProperties:!0,basePath:a.address,schema:l,filterProperties:B=>B["x-component"]==="Action"})})})})})]})},l.name)},{displayName:"AssociationSelect"}),AssociationSelect$1=InternalAssociationSelect$1;(0,import_react.connect)(e=>{const t=useServiceOptions$1(e);return e.fieldNames?(0,import_jsx_runtime.jsx)(RemoteSelect.ReadPretty,P(x({},e),{service:t})):null},(0,import_react.mapProps)({dataSource:"options",loading:!0},(e,t)=>P(x({},e),{fieldNames:e.fieldNames&&x(x({},e.fieldNames),t.componentProps.fieldNames),suffixIcon:t!=null&&t.loading||t!=null&&t.validating?(0,import_jsx_runtime.jsx)(import_icons.LoadingOutlined,{}):e.suffixIcon})));const publicPath=window.__nocobase_dev_public_path__||window.__nocobase_public_path__||"/",UPLOAD_PLACEHOLDER=[{ext:/\.docx?$/i,icon:"/file-placeholder/docx-200-200.png"},{ext:/\.pptx?$/i,icon:"/file-placeholder/pptx-200-200.png"},{ext:/\.jpe?g$/i,icon:"/file-placeholder/jpeg-200-200.png"},{ext:/\.pdf$/i,icon:"/file-placeholder/pdf-200-200.png"},{ext:/\.png$/i,icon:"/file-placeholder/png-200-200.png"},{ext:/\.eps$/i,icon:"/file-placeholder/eps-200-200.png"},{ext:/\.ai$/i,icon:"/file-placeholder/ai-200-200.png"},{ext:/\.gif$/i,icon:"/file-placeholder/gif-200-200.png"},{ext:/\.svg$/i,icon:"/file-placeholder/svg-200-200.png"},{ext:/\.xlsx?$/i,icon:"/file-placeholder/xlsx-200-200.png"},{ext:/\.psd?$/i,icon:"/file-placeholder/psd-200-200.png"},{ext:/\.(wav|aif|aiff|au|mp1|mp2|mp3|ra|rm|ram|mid|rmi)$/i,icon:"/file-placeholder/audio-200-200.png"},{ext:/\.(avi|wmv|mpg|mpeg|vob|dat|3gp|mp4|mkv|rm|rmvb|mov|flv)$/i,icon:"/file-placeholder/video-200-200.png"},{ext:/\.(zip|rar|arj|z|gz|iso|jar|ace|tar|uue|dmg|pkg|lzh|cab)$/i,icon:"/file-placeholder/zip-200-200.png"}].map(e=>({ext:e.ext,icon:publicPath+e.icon.slice(1)})),UNKNOWN_FILE_ICON=publicPath+"file-placeholder/unknown-200-200.png",FILE_SIZE_LIMIT_DEFAULT=1024*1024*20;class AttachmentFileTypes{constructor(){A(this,"types",[])}add(t){this.types.unshift(t)}getTypeByFile(t){return this.types.find(o=>o.match(t))}}const attachmentFileTypes=new AttachmentFileTypes;function matchMimetype(e,t){if(!e)return!1;if(e.originFileObj)return(0,import_mime_match.default)(e.type,t);if(e.mimetype)return(0,import_mime_match.default)(e.mimetype,t);if(e.url){const[o]=e.url.split("?");return(0,import_mime_match.default)(import_mime.default.getType(o)||"",t)}return!1}const toArr$1=e=>(0,import_shared.isValid)(e)?Object.keys(e).length===0?[]:(0,import_shared.toArr)(e):[],testOpts=(e,t)=>t&&(0,import_shared.isArr)(t.include)?t.include.some(o=>e.test(o)):t&&(0,import_shared.isArr)(t.exclude)?!t.exclude.some(o=>e.test(o)):!0;function getThumbnailPlaceholderURL(e,t={}){for(let o=0;o<UPLOAD_PLACEHOLDER.length;o++)if(UPLOAD_PLACEHOLDER[o].ext.test(e.extname||e.filename||e.url||e.name))return testOpts(UPLOAD_PLACEHOLDER[o].ext,t)?UPLOAD_PLACEHOLDER[o].icon||UNKNOWN_FILE_ICON:e.name;return UNKNOWN_FILE_ICON}function getResponseMessage({error:e,response:t}){var o,r,i,n;if(e instanceof Error&&"isAxiosError"in e)return e.response?(i=(r=(o=e.response.data)==null?void 0:o.errors)==null?void 0:r.map)==null?void 0:i.call(r,l=>l==null?void 0:l.message).join(", "):e.message;if(!t)return"";if(typeof t=="string")return t;const{errors:a}=(n=t.data)!=null?n:{};return a!=null&&a.length?a.map(l=>l==null?void 0:l.message).join(", "):""}function normalizeFile(e){const t=getResponseMessage(e);return P(x({},e),{title:e.name,response:t})}function useUploadProps(e){const t=useAPIClient();return x({customRequest({action:o,data:r,file:i,filename:n,headers:a,onError:l,onProgress:c,onSuccess:u,withCredentials:m}){const d=new FormData;return r&&Object.keys(r).forEach(p=>{d.append(p,r[p])}),d.append(n,i),t.axios.post(o,d,{withCredentials:m,headers:a,onUploadProgress:({total:p,loaded:h})=>{c({percent:Math.round(h/p*100).toFixed(2)},i)}}).then(({data:p})=>{u(p,i)}).catch(l).finally(()=>{}),{abort(){console.log("upload progress is aborted.")}}}},e)}function toValueItem(e){return e}const toItem=e=>{var t;return typeof e=="string"?{url:e}:((t=e==null?void 0:e.response)!=null&&t.data&&(e=x({uid:e.uid},e.response.data)),P(x({},e),{id:e.id||e.uid,title:e.title||e.name}))},toFileList=e=>toArr$1(e).filter(Boolean).map(toItem),Rules={size(e,t){const o=t??FILE_SIZE_LIMIT_DEFAULT;return o===0||e.size<=o?null:"File size exceeds the limit"},mimetype(e,t="*"){const o=t.toString().trim();return!o||o==="*"||o.split(",").filter(Boolean).some((0,import_mime_match.default)(e.type))?null:"File type is not allowed"}};function validate(e,t){if(!t)return null;const o=Object.keys(t);if(!o.length)return null;for(const r of o){const i=Rules[r](e,t[r]);if(i)return i}return null}function useBeforeUpload(e){const{t}=(0,import_react_i18next.useTranslation)();return(0,import_react2.useCallback)(o=>{const r=validate(o,e);return r?(o.status="error",o.response=t(r)):o.status==="error"&&(delete o.status,delete o.response),!r},[e])}const useStyles$6=genStyleHook("upload",e=>{const{componentCls:t,antCls:o}=e;return{[`${t}-wrapper`]:{"&.nb-upload.nb-upload-small":{[`${t}-list-picture-card-container`]:{margin:"0 3px 3px 0 !important",height:"32px !important",width:"32px !important",marginBlock:"0 !important"},[`${t}-list-picture-card ${t}-list-item-name${t}-list-item-name`]:{display:"none !important"},[`${t}-list-picture ${t}-list-item, ${t}-list-picture-card ${t}-list-item`]:{borderRadius:"4px",padding:"1px !important",[`${t}-list-item-image`]:{borderRadius:"2px"}}},"&.nb-upload-large":{[`${t}-list-picture-card-container`]:{margin:"0 3px 3px 0 !important",height:"160px !important",width:"160px !important",marginBlock:"0 28px !important"}},"&.nb-upload":{[`${t}-list-item, ${t}-list-item-list-type-picture-card`]:{padding:"3px !important"},[`${t}-list-item-thumbnail`]:{img:{objectFit:"cover !important"}},[`${t}-list-item-actions`]:{left:"auto !important",right:"2px !important",top:"2px !important",transform:"none !important",width:"fit-content !important",[`${o}-btn-text:hover, ${o}-btn-text:focus`]:{background:"rgba(0, 0, 0, 0.4)"}},[`${t}-list-picture-card ${t}-list-item-info`]:{overflow:"inherit",width:"100%",height:"100%"},[`${t}-list-picture-card ${t}-list-item-name`]:{display:"block !important",marginTop:"5px",fontSize:"13px",color:"#636363"},[`${t}-list-picture-card ${t}-list-item::before`]:{display:"none !important"},[`${t}-list-picture-card ${t}-list-item-progress`]:{bottom:"calc(50% - 11px)",left:`${e.margin/2}px`,pointerEvents:"none"},[`${o}-btn`]:{background:"rgba(0, 0, 0, 0.5)"},[`${t}-list-picture-card-container`]:{}},[`${t}-list-item-error`]:{[`${t}-list-item-info img`]:{opacity:.6}},[`${t}-drag`]:{[`${t}-drag-container`]:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",height:"100%",ul:{color:e.colorTextSecondary,[`${t}-hint`]:{textAlign:"left"}}}}}}}),useUploadStyles=useStyles$6,LightBoxGlobalStyle=import_antd_style.createGlobalStyle`
909
+ `,InternalPageContent=e=>{var t,o,r;const{loading:i,disablePageHeader:n,enablePageTabs:a,activeKey:l}=e,c=useCurrentRoute(),u=useNavigateNoUpdate(),m=useLocationNoUpdate(),{isMobileLayout:d}=useMobileLayout(),p=((c==null?void 0:c.children)||[]).every(g=>g.schemaUid!==l&&g.tabSchemaName!==l);if(l&&p)return(0,import_jsx_runtime.jsx)(AppNotFound,{});const h=(t=c==null?void 0:c.children)==null?void 0:t.find(g=>g.tabSchemaName===l);if(h){const g=new URLSearchParams(m.search);g.has("tab")&&g.get("tab")===l&&g.delete("tab");const _=g.toString()?`?${g.toString()}`:"",f=m.pathname+(m.pathname.endsWith("/")?`tabs/${h.schemaUid}`:`/tabs/${h.schemaUid}`);return u(f+_),null}return!n&&a?(0,import_jsx_runtime.jsx)(KeepAlive,{uid:l,children:g=>{var _;return(0,import_jsx_runtime.jsx)(NocoBaseRouteContext.Provider,{value:(_=c.children)==null?void 0:_.find(f=>f.schemaUid===g),children:(0,import_jsx_runtime.jsx)(RemoteSchemaComponent,{uid:g,schemaTransform:d?import_client.transformMultiColumnToSingleColumn:void 0})})}}):(0,import_jsx_runtime.jsx)("div",{className:className1,children:(0,import_jsx_runtime.jsx)(NocoBaseRouteContext.Provider,{value:(o=c==null?void 0:c.children)==null?void 0:o[0],children:(0,import_jsx_runtime.jsx)(RemoteSchemaComponent,{uid:(r=c==null?void 0:c.children)==null?void 0:r[0].schemaUid,schemaTransform:d?import_client.transformMultiColumnToSingleColumn:void 0})})})},PageContent=(0,import_react2.memo)(e=>(0,import_jsx_runtime.jsx)(PopupRouteContextResetter,{children:(0,import_jsx_runtime.jsx)(InternalPageContent,x({},e))})),TabBadge=e=>{var t,o,r;const i=useEvaluatedExpression((o=(t=e.tabRoute.options)==null?void 0:t.badge)==null?void 0:o.count);return i==null?null:(0,import_jsx_runtime.jsx)(import_antd.Badge,P(x({},(r=e.tabRoute.options)==null?void 0:r.badge),{count:i,style:e.style,dot:!1,children:e.children}))},NocoBasePageHeaderTabs=({className:e,activeKey:t})=>{const o=(0,import_react.useFieldSchema)(),{t:r}=(0,import_react_i18next.useTranslation)(),{t:i}=useRouteTranslation(),{token:n}=useToken$1(),a=useRouterBasename(),l=useNavigateNoUpdate(),c=(0,import_react2.useCallback)(y=>{navigateToTab({activeKey:y,navigate:l,basename:a})},[a,l]),u=useDesignable(),{getAriaLabel:m}=useGetAriaLabelOfSchemaInitializer(),d=(0,import_react2.useContext)(import_react.SchemaOptionsContext),{theme:p}=useGlobalTheme(),h=useCurrentRoute(),{createRoute:g}=useNocoBaseRoutes(),_=useCompile(),f=(0,import_react2.useMemo)(()=>u.designable&&(0,import_jsx_runtime.jsx)(import_antd.Button,{"aria-label":m("tabs"),icon:(0,import_jsx_runtime.jsx)(import_icons.PlusOutlined,{}),className:"addTabBtn",type:"dashed",onClick:()=>z(void 0,null,function*(){const y=yield FormDialog(r("Add tab"),()=>(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{scope:d.scope,components:x({},d.components),children:(0,import_jsx_runtime.jsx)(import_antd_v5.FormLayout,{layout:"vertical",children:(0,import_jsx_runtime.jsx)(SchemaComponent,{schema:{properties:{title:{title:r("Tab name"),"x-component":"Input","x-decorator":"FormItem",required:!0},icon:{title:r("Icon"),"x-component":"IconPicker","x-decorator":"FormItem"}}}})})}),p).open({initialValues:{}}),{title:F,icon:j}=y,k=(0,import_shared.uid)(),T=(0,import_shared.uid)();yield g({type:NocoBaseDesktopRouteType.tabs,schemaUid:k,title:F||'{{t("Unnamed")}}',icon:j,parentId:h.id,tabSchemaName:T}),u.insertBeforeEnd(getTabSchema({title:F,icon:j,schemaUid:k,tabSchemaName:T}))}),children:r("Add tab")}),[u,m,d==null?void 0:d.components,d==null?void 0:d.scope,r,p]),v=h.enableTabs,b=(0,import_react2.useMemo)(()=>({paddingLeft:n.paddingLG-n.paddingPageHorizontal,paddingRight:n.paddingLG-n.paddingPageHorizontal,marginLeft:n.paddingPageHorizontal-n.paddingLG,marginRight:n.paddingPageHorizontal-n.paddingLG}),[n.paddingLG,n.paddingPageHorizontal]),S=(0,import_react2.useMemo)(()=>{var y;return(y=h==null?void 0:h.children)==null?void 0:y.map(F=>{var j,k;if(!F||F.hideInMenu)return null;const T={__route__:F};return{label:(0,import_jsx_runtime.jsx)(NocoBaseRouteContext.Provider,{value:F,children:(0,import_jsx_runtime.jsx)(VariableScope,{scopeId:F.schemaUid,type:"pageTab",children:(0,import_jsx_runtime.jsxs)(SortableItem,{id:String(F.id),className:(0,import_classnames.default)("nb-action-link","designerCss",e),schema:T,style:{display:"flex",alignItems:"center"},children:[F.icon&&(0,import_jsx_runtime.jsx)(Icon,{style:{marginRight:8},type:F.icon}),(0,import_jsx_runtime.jsx)("span",{children:F.title&&i(_(F.title))||r("Unnamed")}),(0,import_jsx_runtime.jsx)(PageTabDesigner,{}),(0,import_jsx_runtime.jsx)(TabBadge,{style:{marginLeft:4,color:(k=(j=F.options)==null?void 0:j.badge)==null?void 0:k.textColor},tabRoute:F})]})})}),key:F.schemaUid}}).filter(Boolean)},[o,e,r,o.mapProperties(y=>y.title||r("Unnamed")).join(),h]),{onDragEnd:C}=useMenuDragEnd();return v?(0,import_jsx_runtime.jsx)(DndContext,{onDragEnd:C,children:(0,import_jsx_runtime.jsx)(import_antd.Tabs,{size:"small",activeKey:t,tabBarStyle:b,onChange:c,tabBarExtraContent:f,items:S})}):null},NocoBasePageHeader=import_react2.default.memo(({activeKey:e,className:t})=>{var o,r;const i=(0,import_react.useFieldSchema)(),{setTitle:n}=useDocumentTitle(),{t:a}=(0,import_react_i18next.useTranslation)(),{t:l}=useRouteTranslation(),[c,u]=(0,import_react2.useState)(()=>a(i.title)),m=(o=i["x-component-props"])==null?void 0:o.disablePageHeader,d=useCurrentRoute(),p=d.enableTabs,h=(r=i["x-component-props"])==null?void 0:r.hidePageTitle,{token:g}=useToken$1();return(0,import_react2.useEffect)(()=>{const _=a(i.title,{ns:NAMESPACE_UI_SCHEMA})||a(d==null?void 0:d.title,{ns:NAMESPACE_UI_SCHEMA});_&&(n(_),u(_))},[i.title,c,n,a,d==null?void 0:d.title]),(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(PageDesigner,{title:c}),!m&&(0,import_jsx_runtime.jsx)(import_pro_layout.PageHeader,{className:(0,import_classnames.default)("pageHeaderCss",c||p?"":"height0"),style:{paddingBottom:d.enableTabs||h?0:g.paddingSM},ghost:!1,title:h?" ":(!i.title&&c?l(c):c)||" ",footer:(0,import_jsx_runtime.jsx)(NocoBasePageHeaderTabs,{className:t,activeKey:e})})]})});NocoBasePageHeader.displayName="NocoBasePageHeader";function navigateToTab({activeKey:e,navigate:t,basename:o,pathname:r=window.location.pathname}){r=r.replace(o,""),r.endsWith("/")&&(r=r.slice(0,-1)),r.startsWith("/")||(r=`/${r}`),isTabPage(r)?t(withSearchParams(`${r.replace(/\/tabs\/[^/]+$/,`/tabs/${e}`)}`),{replace:!0}):t(withSearchParams(`${r}/tabs/${e}`),{replace:!0})}function isTabPage(e){e.endsWith("/")&&(e=e.slice(0,-1));const t=e.split("/");return t[t.length-2]==="tabs"}function getTabSchema({title:e,icon:t,schemaUid:o,tabSchemaName:r}){return{type:"void",name:r,title:e,"x-icon":t,"x-component":"Grid","x-initializer":"page:addBlock",properties:{},"x-uid":o,"x-async":!0}}function RouteSchemaComponent(){const e=useCurrentPageUid();return(0,import_jsx_runtime.jsx)(RemoteSchemaComponent,{onlyRenderProperties:!0,uid:e})}function useNotDisableHeader(){var e;return!((e=(0,import_react.useFieldSchema)()["x-component-props"])!=null&&e.disablePageHeader)}const pageSettings=new SchemaSettings({name:"PageSettings",items:[{name:"enablePageHeader",type:"switch",useComponentProps(){var e;const{dn:t}=useDesignable(),{t:o}=(0,import_react_i18next.useTranslation)(),r=(0,import_react.useFieldSchema)();return{title:o("Enable page header"),checked:!((e=r["x-component-props"])!=null&&e.disablePageHeader),onChange(i){r["x-component-props"]=r["x-component-props"]||{},r["x-component-props"].disablePageHeader=!i,t.emit("patch",{schema:{"x-uid":r["x-uid"],"x-component-props":r["x-component-props"]}}),t.refresh()}}}},{name:"divider",type:"divider",useVisible:useNotDisableHeader},{name:"displayPageTitle",type:"switch",useVisible:useNotDisableHeader,useComponentProps(){var e;const{dn:t}=useDesignable(),{t:o}=(0,import_react_i18next.useTranslation)(),r=(0,import_react.useFieldSchema)();return{title:o("Display page title"),checked:!((e=r["x-component-props"])!=null&&e.hidePageTitle),onChange(i){r["x-component-props"]=r["x-component-props"]||{},r["x-component-props"].hidePageTitle=!i,t.emit("patch",{schema:{"x-uid":r["x-uid"],"x-component-props":r["x-component-props"]}}),t.refresh()}}}},{name:"editPageTitle",type:"modal",useVisible(){var e;const t=useNotDisableHeader(),o=!((e=(0,import_react.useFieldSchema)()["x-component-props"])!=null&&e.hidePageTitle);return t&&o},useComponentProps(){const{dn:e}=useDesignable(),{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{title:i}=useSchemaToolbar();return{hide:!0,title:t("Edit page title"),schema:{type:"object",title:t("Edit page title"),properties:{title:{title:t("Title"),required:!0,"x-decorator":"FormItem","x-component":"Input","x-component-props":{}}}},initialValues:{title:i},onSubmit({title:n}){o.title=n,r.title=n,e.emit("patch",{schema:{"x-uid":r["x-uid"],title:n}})}}}},{name:"enablePageTabs",type:"switch",useVisible:useNotDisableHeader,useComponentProps(){const{dn:e}=useDesignable(),{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useFieldSchema)(),r=useCurrentRoute(),{updateRoute:i}=useNocoBaseRoutes();return{title:t("Enable page tabs"),checked:r.enableTabs,onChange(n){return z(this,null,function*(){yield i(r.id,{enableTabs:n}),o["x-component-props"]=o["x-component-props"]||{},o["x-component-props"].enablePageTabs=n,e.emit("patch",{schema:{"x-uid":o["x-uid"],"x-component-props":o["x-component-props"]}})})}}}}]}),pageTabSettings=new SchemaSettings({name:"PageTabSettings",items:[{name:"edit",type:"modal",useComponentProps(){const{t:e}=(0,import_react_i18next.useTranslation)(),{updateRoute:t}=useNocoBaseRoutes(),o=useCurrentRoute();return{title:e("Edit"),schema:{type:"object",title:e("Edit tab"),properties:{title:{title:e("Tab name"),required:!0,"x-decorator":"FormItem","x-component":"Input","x-component-props":{}},icon:{title:e("Icon"),"x-decorator":"FormItem","x-component":"IconPicker","x-component-props":{}}}},initialValues:{title:o.title,icon:o.icon},onSubmit:({title:r,icon:i})=>{t(o.id,{title:r,icon:i})}}},sort:100},{name:"hidden",type:"switch",useComponentProps(){const{t:e}=(0,import_react_i18next.useTranslation)(),{updateRoute:t}=useNocoBaseRoutes(),o=useCurrentRoute();return{title:e("Hidden"),checked:o.hideInMenu,onChange:r=>{import_antd.Modal.confirm({title:e("Are you sure you want to hide this tab?"),icon:(0,import_jsx_runtime.jsx)(import_icons.ExclamationCircleFilled,{}),content:e("After hiding, this tab will no longer appear in the tab bar. To show it again, you need to go to the route management page to set it."),onOk(){return z(this,null,function*(){yield t(o.id,{hideInMenu:!!r})})}})}}},sort:200},{name:"divider",type:"divider",sort:300},{name:"delete",type:"item",useComponentProps(){const{modal:e}=import_antd.App.useApp(),{dn:t}=useDesignable(),{t:o}=(0,import_react_i18next.useTranslation)(),{deleteRoute:r}=useNocoBaseRoutes(),i=useCurrentRoute(),n=useNavigateNoUpdate(),a=(0,import_react.useFieldSchema)();return{title:o("Delete"),eventKey:"remove",onClick(){e.confirm(P(x({title:o("Delete block"),content:o("Are you sure you want to delete it?")},confirm),{onOk(){return z(this,null,function*(){yield r(i.id),t.emit("remove",{removed:{"x-uid":i.schemaUid}}),window.location.pathname.includes(i.schemaUid)&&n(`/admin/${a["x-uid"]}`)})}}))},children:o("Delete")}},sort:400}]}),AntdSchemaComponentProvider=e=>{const{children:t}=e;return(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{scope:{requestChartData,useFilterActionProps:useFilterActionProps$1},components:x(x({},components$2),common),children:t})};class AntdSchemaComponentPlugin extends Plugin{load(){return z(this,null,function*(){this.addComponents(),this.addScopes(),this.addSchemaSettings()})}addComponents(){this.app.addComponents(x(x({},components$2),common))}addScopes(){this.app.addScopes({requestChartData,useFilterActionProps:useFilterActionProps$1})}addSchemaSettings(){this.app.schemaSettingsManager.add(pageSettings),this.app.schemaSettingsManager.add(pageTabSettings),this.app.schemaSettingsManager.add(formItemSettings),this.app.schemaSettingsManager.add(filterFormItemSettings),this.app.schemaSettingsManager.add(formV1Settings),this.app.schemaSettingsManager.add(formSettings),this.app.schemaSettingsManager.add(readPrettyFormSettings),this.app.schemaSettingsManager.add(formDetailsSettings),this.app.schemaSettingsManager.add(actionSettings)}}function usePropsCollection({collection:e}){return e}function loadChildren(e){const t=getCollectionFieldOptions.call(this,e.field.target,e);return t.length&&t.some(o=>isAssociation(o.field))||(e.isLeaf=!0),t}function isAssociation(e){return e.target&&e.interface}function trueFilter(e){return!0}function getCollectionFieldOptions(e,t){const o=this.getCollectionFields(e),r=loadChildren.bind(this);return o.filter(this.filter).map(i=>{var n,a,l;const c=t?`${t.value?`${t.value}.`:""}${i.name}`:i.name,u=(a=this.compile((n=i.uiSchema)==null?void 0:n.title))!=null?a:i.name,m=!this.getCollectionFields(i.target).filter(isAssociation).filter(this.filter).length;return{pId:(l=t==null?void 0:t.key)!=null?l:null,id:c,key:c,value:c,title:u,isLeaf:m,loadChildren:m?null:r,field:i,fullTitle:t?[...t.fullTitle,u]:[u]}})}const FieldsTreeSelect=e=>{const t=e,{title:o,value:r,onChange:i,collection:n,useCollection:a=usePropsCollection,filter:l=trueFilter,rootOption:c,loadData:u,includeFieldPaths:m}=t,d=W(t,["title","value","onChange","collection","useCollection","filter","rootOption","loadData","includeFieldPaths"]),p=useCompile(),{t:h}=(0,import_react_i18next.useTranslation)(),[g,_]=(0,import_react2.useState)({}),f=a({collection:n}),[v,b]=parseCollectionName(f),S=useApp(),{collectionManager:C}=S.dataSourceManager.getDataSource(v),y=(D,R)=>{const $=C.getCollection(D);return $?$.getAllFields(R):[]},F=Object.values(g),j=(0,import_react2.useMemo)(()=>e.multiple?(r||[]).map(D=>g[D]).filter(Boolean):r,[r,e.multiple,g]),k=(0,import_react2.useCallback)(D=>z(void 0,null,function*(){if(u!=null)return u(D);if(!D.isLeaf&&D.loadChildren){const R=D.loadChildren(D);_($=>R.reduce((M,I)=>Object.assign(M,{[I.value]:I}),x({},$)))}}),[u]);(0,import_react2.useEffect)(()=>{const D=c?P(x({},c),{id:c.value,key:c.value,title:c.label,fullTitle:c.label,isLeaf:!1}):null,R=(u===null?[]:getCollectionFieldOptions.call({compile:p,getCollectionFields:y,filter:l},b,D)).reduce(($,M)=>Object.assign($,{[M.value]:M}),{});D&&(R[D.value]=D),_(R)},[f,c,l,u]),(0,import_react2.useEffect)(()=>{const D=e.multiple?r:r?[r]:[];if(!(D!=null&&D.length)||D.every($=>!!g[$]))return;const R=[];D.forEach($=>{const M=$.split(".");let I=g[M[0]];for(let N=1;N<M.length&&I;N++){const E=M.slice(0,N+1).join(".");if(g[E]){I=g[E];break}if(!I.isLeaf&&I.loadChildren){const O=I.loadChildren(I);O!=null&&O.length&&(R.push(...O),I=O.find(V=>V.value===M.slice(0,N+1).join(".")))}}}),_($=>R.reduce((M,I)=>Object.assign(M,{[I.value]:I}),x({},$)))},[r,F.length,e.multiple]);const T=(0,import_react2.useCallback)(D=>{if(!e.multiple){i(D);return}const R=D.map(I=>I.value).filter(Boolean),$=new Set(R),M=j.find(I=>!$.has(I.value));if(M){const I=`${M.value}.`;Object.keys(g).forEach(N=>{N.startsWith(I)&&$.delete(N)})}else m&&R.forEach(I=>{const N=I.split(".");if(N.length)for(let E=1;E<=N.length;E++)$.add(N.slice(0,E).join("."))});i(Array.from($))},[e.multiple,j,i,g]),B=(0,import_react2.useCallback)(D=>{var R;const{value:$,onClose:M,disabled:I,closable:N}=D;if(!$)return null;const{fullTitle:E}=(R=g[$])!=null?R:{};return(0,import_jsx_runtime.jsx)(import_antd.Tag,{closable:N&&!I,onClose:M,children:E==null?void 0:E.join(" / ")})},[g]),w=Array.isArray(j)?j.filter(D=>D.value in g):j,L=e.multiple?r:r!=null?[r]:[];return(0,import_jsx_runtime.jsx)(import_antd.TreeSelect,P(x({role:"button","data-testid":`select-field${o?`-${o}`:""}`,value:w,placeholder:h("Select field"),showCheckedStrategy:import_antd.TreeSelect.SHOW_ALL,treeDefaultExpandedKeys:L,allowClear:{clearIcon:(0,import_jsx_runtime.jsx)(import_icons.CloseCircleFilled,{role:"button","aria-label":"icon-close"})},treeCheckStrictly:e.multiple,treeCheckable:e.multiple,tagRender:B,onChange:T,treeDataSimpleMode:!0,treeData:F,loadData:k},d),{suffixIcon:(0,import_jsx_runtime.jsx)(import_icons.DownOutlined,{})}))},AppendsTreeSelect=e=>(0,import_jsx_runtime.jsx)(FieldsTreeSelect,x({filter:isAssociation,includeFieldPaths:!0},e)),removeIfKeyEmpty=(e,t)=>!e||typeof e!="object"||!t||Array.isArray(e)||e[t]?e:void 0,AssociationFieldAddNewer=e=>{const t=(0,import_react2.useContext)(SchemaComponentContext);return(0,import_jsx_runtime.jsx)(SchemaComponentContext.Provider,{value:P(x({},t),{draggable:!0}),children:(0,import_jsx_runtime.jsx)(Action.Container,x({},e))})},filterAnalyses=e=>{if(!e)return;const t=Object.keys(e)[0]||"$and",o=e[t],r=[];return o==null||o.map(i=>{var n,a,l;const c=getInnermostKeyAndValue(i);if(!(c!=null&&c.key))return!0;const u=/\{\{\$[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*\.(\w+)\.id\}\}/,m=(l=(a=(n=c==null?void 0:c.value)==null?void 0:n.match)==null?void 0:a.call(n,u))==null?void 0:l[1];m&&r.push(m)}),r};function getFieldPath(e){const t=e.lastIndexOf(".");return t===-1?e:e.slice(0,t)}const InternalAssociationSelect$1=(0,import_react.observer)(e=>{var t;const o=e,{objectValue:r=!0,addMode:i}=o,n=W(o,["objectValue","addMode"]),a=(0,import_react.useField)(),l=(0,import_react.useFieldSchema)(),c=useServiceOptions$1((l==null?void 0:l["x-component-props"])||e),{options:u}=useAssociationFieldContext(),m=isVariable$1(e.value)?void 0:e.value,d=Array.isArray(m)?m.filter(Boolean):m,[p,h]=(0,import_react2.useState)(d),g=(t=l["x-component-props"])==null?void 0:t.addMode,{t:_}=(0,import_react_i18next.useTranslation)(),{multiple:f}=e,v=(0,import_react.useForm)(),b=useAPIClient().resource(u.target),S=useCollectionRecordData(),C=(0,import_react2.useContext)(SchemaComponentContext),{getCollection:y}=useCollectionManager_deprecated(),F=y(u.target),{filterTargetKey:j}=F;(0,import_react2.useEffect)(()=>{const B=isVariable$1(a.value)?void 0:a.value,w=Array.isArray(B)?B.filter(Boolean):B,L=removeIfKeyEmpty(w,j);h(L),(0,import_lodash.isEqual)(a.value,L)||(a.value=L)},[a.value,j]),(0,import_react2.useEffect)(()=>{const B=(0,import_shared.uid)();return v.addEffects(B,()=>{(0,import_core.onFieldInputValueChange)("*",w=>{var L,D,R,$,M,I;const N=filterAnalyses((R=(D=(L=a.componentProps)==null?void 0:L.service)==null?void 0:D.params)==null?void 0:R.filter)||[],E=getFieldPath(w.address.entire),O=getFieldPath(a.address.entire);N.includes(($=w==null?void 0:w.props)==null?void 0:$.name)&&a.value&&(0,import_lodash.isEqual)(w==null?void 0:w.indexes,a==null?void 0:a.indexes)&&((M=w==null?void 0:w.props)==null?void 0:M.name)!==a.props.name&&(!((I=a==null?void 0:a.indexes)!=null&&I.length)||(0,import_lodash.isEqual)(E,O))&&(a.setValue(null),h(null))})}),()=>{v.removeEffects(B)}},[]);const k=B=>z(void 0,null,function*(){var w,L;const{search:D,callBack:R}=B,{data:{data:$}}=yield b.create({values:{[((L=(w=a==null?void 0:a.componentProps)==null?void 0:w.fieldNames)==null?void 0:L.label)||"id"]:D}});if($){if(["m2m","o2m"].includes(u==null?void 0:u.interface)&&f!==!1){const M=v.getValuesIn(a.path)||[];M.push($),v.setValuesIn(a.path,M),a.onInput(M)}else v.setValuesIn(a.path,$),a.onInput($);(0,import_mathjs.isFunction)(R)&&(R==null||R()),import_antd.message.success(_("Saved successfully"))}}),T=B=>(0,import_jsx_runtime.jsxs)("div",{onClick:()=>k(B),style:{cursor:"pointer",padding:"5px 12px",color:"#0d0c0c"},children:[(0,import_jsx_runtime.jsx)(import_icons.PlusOutlined,{}),(0,import_jsx_runtime.jsx)("span",{style:{paddingLeft:5},children:_("Add")+` “${B.search}” `})]});return(0,import_jsx_runtime.jsx)("div",{children:(0,import_jsx_runtime.jsxs)(import_antd.Space.Compact,{style:{display:"flex"},children:[(0,import_jsx_runtime.jsx)(RemoteSelect,P(x({style:{width:"100%"}},n),{size:"middle",objectValue:r,value:removeIfKeyEmpty(d||p,j),service:c,onChange:B=>{var w;const L=Array.isArray(B)&&B.length===0?null:B;(w=e.onChange)==null||w.call(e,L)},CustomDropdownRender:g==="quickAdd"&&T})),g==="modalAdd"&&(0,import_jsx_runtime.jsx)(SchemaComponentContext.Provider,{value:P(x({},C),{draggable:!1}),children:(0,import_jsx_runtime.jsx)(RecordProvider,{isNew:!0,record:null,parent:S,children:(0,import_jsx_runtime.jsx)(VariablePopupRecordProvider,{children:(0,import_jsx_runtime.jsx)(ClearCollectionFieldContext,{children:(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{onlyRenderProperties:!0,basePath:a.address,schema:l,filterProperties:B=>B["x-component"]==="Action"})})})})})]})},l.name)},{displayName:"AssociationSelect"}),AssociationSelect$1=InternalAssociationSelect$1;(0,import_react.connect)(e=>{const t=useServiceOptions$1(e);return e.fieldNames?(0,import_jsx_runtime.jsx)(RemoteSelect.ReadPretty,P(x({},e),{service:t})):null},(0,import_react.mapProps)({dataSource:"options",loading:!0},(e,t)=>P(x({},e),{fieldNames:e.fieldNames&&x(x({},e.fieldNames),t.componentProps.fieldNames),suffixIcon:t!=null&&t.loading||t!=null&&t.validating?(0,import_jsx_runtime.jsx)(import_icons.LoadingOutlined,{}):e.suffixIcon})));const publicPath=window.__nocobase_dev_public_path__||window.__nocobase_public_path__||"/",UPLOAD_PLACEHOLDER=[{ext:/\.docx?$/i,icon:"/file-placeholder/docx-200-200.png"},{ext:/\.pptx?$/i,icon:"/file-placeholder/pptx-200-200.png"},{ext:/\.jpe?g$/i,icon:"/file-placeholder/jpeg-200-200.png"},{ext:/\.pdf$/i,icon:"/file-placeholder/pdf-200-200.png"},{ext:/\.png$/i,icon:"/file-placeholder/png-200-200.png"},{ext:/\.eps$/i,icon:"/file-placeholder/eps-200-200.png"},{ext:/\.ai$/i,icon:"/file-placeholder/ai-200-200.png"},{ext:/\.gif$/i,icon:"/file-placeholder/gif-200-200.png"},{ext:/\.svg$/i,icon:"/file-placeholder/svg-200-200.png"},{ext:/\.xlsx?$/i,icon:"/file-placeholder/xlsx-200-200.png"},{ext:/\.psd?$/i,icon:"/file-placeholder/psd-200-200.png"},{ext:/\.(wav|aif|aiff|au|mp1|mp2|mp3|ra|rm|ram|mid|rmi)$/i,icon:"/file-placeholder/audio-200-200.png"},{ext:/\.(avi|wmv|mpg|mpeg|vob|dat|3gp|mp4|mkv|rm|rmvb|mov|flv)$/i,icon:"/file-placeholder/video-200-200.png"},{ext:/\.(zip|rar|arj|z|gz|iso|jar|ace|tar|uue|dmg|pkg|lzh|cab)$/i,icon:"/file-placeholder/zip-200-200.png"}].map(e=>({ext:e.ext,icon:publicPath+e.icon.slice(1)})),UNKNOWN_FILE_ICON=publicPath+"file-placeholder/unknown-200-200.png",FILE_SIZE_LIMIT_DEFAULT=1024*1024*20;class AttachmentFileTypes{constructor(){A(this,"types",[])}add(t){this.types.unshift(t)}getTypeByFile(t){return this.types.find(o=>o.match(t))}}const attachmentFileTypes=new AttachmentFileTypes;function matchMimetype(e,t){if(!e)return!1;if(e.originFileObj)return(0,import_mime_match.default)(e.type,t);if(e.mimetype)return(0,import_mime_match.default)(e.mimetype,t);if(e.url){const[o]=e.url.split("?");return(0,import_mime_match.default)(import_mime.default.getType(o)||"",t)}return!1}const toArr$1=e=>(0,import_shared.isValid)(e)?Object.keys(e).length===0?[]:(0,import_shared.toArr)(e):[],testOpts=(e,t)=>t&&(0,import_shared.isArr)(t.include)?t.include.some(o=>e.test(o)):t&&(0,import_shared.isArr)(t.exclude)?!t.exclude.some(o=>e.test(o)):!0;function getThumbnailPlaceholderURL(e,t={}){for(let o=0;o<UPLOAD_PLACEHOLDER.length;o++)if(UPLOAD_PLACEHOLDER[o].ext.test(e.extname||e.filename||e.url||e.name))return testOpts(UPLOAD_PLACEHOLDER[o].ext,t)?UPLOAD_PLACEHOLDER[o].icon||UNKNOWN_FILE_ICON:e.name;return UNKNOWN_FILE_ICON}function getResponseMessage({error:e,response:t}){var o,r,i,n;if(e instanceof Error&&"isAxiosError"in e)return e.response?(i=(r=(o=e.response.data)==null?void 0:o.errors)==null?void 0:r.map)==null?void 0:i.call(r,l=>l==null?void 0:l.message).join(", "):e.message;if(!t)return"";if(typeof t=="string")return t;const{errors:a}=(n=t.data)!=null?n:{};return a!=null&&a.length?a.map(l=>l==null?void 0:l.message).join(", "):""}function normalizeFile(e){const t=getResponseMessage(e);return P(x({},e),{title:e.name,response:t})}function useUploadProps(e){const t=useAPIClient();return x({customRequest({action:o,data:r,file:i,filename:n,headers:a,onError:l,onProgress:c,onSuccess:u,withCredentials:m}){const d=new FormData;return r&&Object.keys(r).forEach(p=>{d.append(p,r[p])}),d.append(n,i),t.axios.post(o,d,{withCredentials:m,headers:a,onUploadProgress:({total:p,loaded:h})=>{c({percent:Math.round(h/p*100).toFixed(2)},i)}}).then(({data:p})=>{u(p,i)}).catch(l).finally(()=>{}),{abort(){console.log("upload progress is aborted.")}}}},e)}function toValueItem(e){return e}const toItem=e=>{var t;return typeof e=="string"?{url:e}:((t=e==null?void 0:e.response)!=null&&t.data&&(e=x({uid:e.uid},e.response.data)),P(x({},e),{id:e.id||e.uid,title:e.title||e.name}))},toFileList=e=>toArr$1(e).filter(Boolean).map(toItem),Rules={size(e,t){const o=t??FILE_SIZE_LIMIT_DEFAULT;return o===0||e.size<=o?null:"File size exceeds the limit"},mimetype(e,t="*"){const o=t.toString().trim();return!o||o==="*"||o.split(",").filter(Boolean).some((0,import_mime_match.default)(e.type))?null:"File type is not allowed"}};function validate(e,t){if(!t)return null;const o=Object.keys(t);if(!o.length)return null;for(const r of o){const i=Rules[r](e,t[r]);if(i)return i}return null}function useBeforeUpload(e){const{t}=(0,import_react_i18next.useTranslation)();return(0,import_react2.useCallback)(o=>{const r=validate(o,e);return r?(o.status="error",o.response=t(r)):o.status==="error"&&(delete o.status,delete o.response),!r},[e])}const useStyles$6=genStyleHook("upload",e=>{const{componentCls:t,antCls:o}=e;return{[`${t}-wrapper`]:{"&.nb-upload.nb-upload-small":{[`${t}-list-picture-card-container`]:{margin:"0 3px 3px 0 !important",height:"32px !important",width:"32px !important",marginBlock:"0 !important"},[`${t}-list-picture-card ${t}-list-item-name${t}-list-item-name`]:{display:"none !important"},[`${t}-list-picture ${t}-list-item, ${t}-list-picture-card ${t}-list-item`]:{borderRadius:"4px",padding:"1px !important",[`${t}-list-item-image`]:{borderRadius:"2px"}}},"&.nb-upload-large":{[`${t}-list-picture-card-container`]:{margin:"0 3px 3px 0 !important",height:"160px !important",width:"160px !important",marginBlock:"0 28px !important"}},"&.nb-upload":{[`${t}-list-item, ${t}-list-item-list-type-picture-card`]:{padding:"3px !important"},[`${t}-list-item-thumbnail`]:{img:{objectFit:"cover !important"}},[`${t}-list-item-actions`]:{left:"auto !important",right:"2px !important",top:"2px !important",transform:"none !important",width:"fit-content !important",[`${o}-btn-text:hover, ${o}-btn-text:focus`]:{background:"rgba(0, 0, 0, 0.4)"}},[`${t}-list-picture-card ${t}-list-item-info`]:{overflow:"inherit",width:"100%",height:"100%"},[`${t}-list-picture-card ${t}-list-item-name`]:{display:"block !important",marginTop:"5px",fontSize:"13px",color:"#636363"},[`${t}-list-picture-card ${t}-list-item::before`]:{display:"none !important"},[`${t}-list-picture-card ${t}-list-item-progress`]:{bottom:"calc(50% - 11px)",left:`${e.margin/2}px`,pointerEvents:"none"},[`${o}-btn`]:{background:"rgba(0, 0, 0, 0.5)"},[`${t}-list-picture-card-container`]:{}},[`${t}-list-item-error`]:{[`${t}-list-item-info img`]:{opacity:.6}},[`${t}-drag`]:{[`${t}-drag-container`]:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",height:"100%",ul:{color:e.colorTextSecondary,[`${t}-hint`]:{textAlign:"left"}}}}}}}),useUploadStyles=useStyles$6,LightBoxGlobalStyle=import_antd_style.createGlobalStyle`
910
910
  .ReactModal__Overlay.ReactModal__Overlay--after-open {
911
911
  z-index: 3000 !important; // 避免预览图片时被遮挡
912
912
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nocobase/client",
3
- "version": "1.9.0-alpha.1",
3
+ "version": "1.9.0-beta.2",
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.0-alpha.1",
30
- "@nocobase/sdk": "1.9.0-alpha.1",
31
- "@nocobase/utils": "1.9.0-alpha.1",
29
+ "@nocobase/evaluators": "1.9.0-beta.2",
30
+ "@nocobase/sdk": "1.9.0-beta.2",
31
+ "@nocobase/utils": "1.9.0-beta.2",
32
32
  "ahooks": "^3.7.2",
33
33
  "antd": "5.24.2",
34
34
  "antd-style": "3.7.1",
@@ -82,5 +82,5 @@
82
82
  "dumi-theme-nocobase": "^0.2.28",
83
83
  "html5-qrcode": "^2.3.8"
84
84
  },
85
- "gitHead": "71ebde8a27da3c5c4d64194571804eeab6e95ce0"
85
+ "gitHead": "5ff02f5b60ed666fbf8bdea1a202635e77879ee0"
86
86
  }