@nocobase/client 2.0.0-alpha.10 → 2.0.0-alpha.12
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
|
@@ -9566,7 +9566,7 @@ function addAppVersion(e, t) {
|
|
|
9566
9566
|
addAppVersion((n = e.properties) == null ? void 0 : n[o], t);
|
|
9567
9567
|
}), e;
|
|
9568
9568
|
}
|
|
9569
|
-
const name = "@nocobase/client", version = "2.0.0-alpha.
|
|
9569
|
+
const name = "@nocobase/client", version = "2.0.0-alpha.12", license = "AGPL-3.0", main = "lib/index.js", module = "es/index.mjs", types = "es/index.d.ts", dependencies = {
|
|
9570
9570
|
"@ahooksjs/use-url-state": "3.5.1",
|
|
9571
9571
|
"@ant-design/cssinjs": "^1.11.1",
|
|
9572
9572
|
"@ant-design/icons": "^5.6.1",
|
|
@@ -9589,10 +9589,10 @@ const name = "@nocobase/client", version = "2.0.0-alpha.10", license = "AGPL-3.0
|
|
|
9589
9589
|
"@formily/reactive-react": "^2.2.27",
|
|
9590
9590
|
"@formily/shared": "^2.2.27",
|
|
9591
9591
|
"@formily/validator": "^2.2.27",
|
|
9592
|
-
"@nocobase/evaluators": "2.0.0-alpha.
|
|
9593
|
-
"@nocobase/flow-engine": "2.0.0-alpha.
|
|
9594
|
-
"@nocobase/sdk": "2.0.0-alpha.
|
|
9595
|
-
"@nocobase/utils": "2.0.0-alpha.
|
|
9592
|
+
"@nocobase/evaluators": "2.0.0-alpha.12",
|
|
9593
|
+
"@nocobase/flow-engine": "2.0.0-alpha.12",
|
|
9594
|
+
"@nocobase/sdk": "2.0.0-alpha.12",
|
|
9595
|
+
"@nocobase/utils": "2.0.0-alpha.12",
|
|
9596
9596
|
"@tanstack/react-table": "^8.21.3",
|
|
9597
9597
|
"@types/tabulator-tables": "^6.2.6",
|
|
9598
9598
|
ahooks: "^3.7.2",
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
width: 100%;
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
|
-
`,items:s},i))})},qT=()=>{const{isInMenu:e}=DT();return{attribute:m.useMemo(()=>e?{}:{role:"menuitem"},[e])}},{Paragraph:BT,Text:ET}=j.Typography,$T=e=>{const[t,o]=m.useState(!1),n=a.jsx(BT,{style:{display:"flex",marginBottom:0},copyable:{text:e.error.message},children:a.jsxs(ET,{type:"danger",style:{whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden",display:"inline-block",maxWidth:"200px"},children:["Error: ",e.error.message]})});return a.jsxs(a.Fragment,{children:[a.jsx("div",{onMouseOver:()=>o(!0),children:e.children||n}),a.jsx(j.Modal,{zIndex:1e4,open:t,footer:null,onCancel:()=>o(!1),width:"60%",children:a.jsx(go,x({},e))})]})},{Paragraph:OT,Text:LT,Link:VT}=j.Typography,kd=(e,t={})=>{const o=ad(),[n,l]=m.useState(!1),i=Pe();return{loading:n,download:()=>O(void 0,null,function*(){l(!0);try{const r=yield i.request({url:"logger:collect",method:"post",responseType:"blob",data:x({error:{message:e.message,stack:e.stack},location:o},t)}),s=window.URL.createObjectURL(new Blob([r.data],{type:"application/gzip"})),c=document.createElement("a");c.setAttribute("href",s),c.setAttribute("download","logs.tar.gz"),c.click(),c.remove()}catch(r){console.log(r)}l(!1)})}},go=({error:e})=>{const t=b.useFieldSchema(),{t:o}=V.useTranslation(),{loading:n,download:l}=kd(e,{schema:t}),i=a.jsxs(V.Trans,{children:["This is likely a NocoBase internals bug. Please open an issue at ",a.jsx(VT,{href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:"here"})]});return a.jsx("div",{style:{backgroundColor:"white"},children:a.jsx(j.Result,{style:{maxWidth:"60vw",margin:"auto"},status:"error",title:o("Render Failed"),subTitle:i,extra:[a.jsx(j.Button,{type:"primary",href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:o("Feedback")},"feedback"),a.jsx(j.Button,{loading:n,onClick:l,children:o("Download logs")},"log")],children:a.jsx(OT,{copyable:{text:e.stack},children:a.jsx(LT,{type:"danger",style:{whiteSpace:"pre-line",textAlign:"center"},children:e.stack})})})})};go.Modal=$T;const pr=()=>{const e=Me.useNavigate(),{t}=V.useTranslation();return a.jsx(j.Result,{status:"404",title:"404",subTitle:t("Sorry, the page you visited does not exist."),extra:a.jsx(j.Button,{onClick:()=>e("/",{replace:!0}),type:"primary",children:"Back Home"})})};class lo{constructor(t,o){this.options=t,this.app=o,this.options=t,this.app=o}get pluginManager(){return this.app.pluginManager}get context(){return this.app.context}get flowEngine(){return this.app.flowEngine}get engine(){return this.app.flowEngine}get pm(){return this.app.pm}get router(){return this.app.router}get pluginSettingsManager(){return this.app.pluginSettingsManager}get pluginSettingsRouter(){return this.app.pluginSettingsManager}get schemaInitializerManager(){return this.app.schemaInitializerManager}get schemaSettingsManager(){return this.app.schemaSettingsManager}get dataSourceManager(){return this.app.dataSourceManager}afterAdd(){return O(this,null,function*(){})}beforeLoad(){return O(this,null,function*(){})}load(){return O(this,null,function*(){})}t(t,o={}){var n;return this.app.i18n.t(t,x({ns:(n=this.options)==null?void 0:n.packageName},o))}}const zT={display:"flex",alignItems:"center",gap:4},wd=e=>t=>{const{tooltip:o}=t;return o?a.jsxs("div",{style:zT,children:[a.jsx(e,x({},t)),a.jsx(j.Tooltip,{title:o,children:a.jsx(Z.QuestionCircleOutlined,{style:{zIndex:1}})})]}):a.jsx(e,x({},t))},{evaluate:_T}=Wc.evaluators.get("formula.js"),fh=e=>{const t=lt(),o=pt(),[n,l]=m.useState();return m.useEffect(()=>{O(void 0,null,function*(){if(e==null||e===""){l(void 0);return}const{exp:i,scope:r}=yield Sd(e,{variables:t,localVariables:o});try{const s=_T(i,x({now:()=>new Date().toString()},r));l(s)}catch(s){console.error(s)}})},[t.parseVariable,e,o]),n};class vn{constructor(t){M(this,"options"),M(this,"name"),this.options=Object.assign({items:[]},t),this.name=t.name}get items(){return this.options.items}add(t,o){const n=t.split("."),l=n[n.length-1],i=I(x({},o),{name:l}),r=(d,u)=>{const p=this.items.findIndex(h=>h.name===d);p===-1?this.items.push(u):this.items[p]=u};if(n.length===1){r(l,i);return}const s=n.slice(0,-1).join("."),c=this.get(s);if(c){c.children||(c.children=[]);const d=t.replace(`${c.name}.`,""),u=c.children.findIndex(p=>p.name===d);u===-1?c.children.push(i):c.children[u]=i}else r(l,i)}get(t){var o;if(!t)return;const n=t.split(".");let l={children:this.items};for(let i=0;i<n.length;i++){const r=n[i],s=(o=l.children)==null?void 0:o.find(c=>c.name===r);if(s&&(l=s),i===n.length-1)return s}}remove(t){const o=t.split(".");if(o.length===1){const l=this.items.findIndex(i=>i.name===o[0]);l!==-1&&this.items.splice(l,1);return}const n=this.get(o.slice(0,-1).join("."));if(n&&n.children){const l=o[o.length-1],i=n.children.findIndex(r=>r.name===l);i!==-1&&n.children.splice(i,1)}}}var Xe=(e=>(e.group="group",e.page="page",e.flowRoute="flowRoute",e.link="link",e.tabs="tabs",e.flowPage="flowPage",e))(Xe||{});const wi=Bt("nb-menu-item",e=>{const{componentCls:t}=e;return{[t]:{paddingLeft:`${e.padding}px !important`,paddingRight:`${e.padding}px !important`}}}),KT=()=>{const e=Pe();return m.useCallback(t=>O(void 0,null,function*(){yield e.request({method:"POST",url:"/uiSchemas:insert",data:t})}),[e])},HT=()=>{const{t:e}=V.useTranslation(),t=m.useContext(b.SchemaOptionsContext),{theme:o}=_o(),{componentCls:n,hashId:l}=wi(),i=Hi(),{createRoute:r}=Rt(),s=KT(),c=m.useCallback(()=>O(void 0,null,function*(){const d=yield Ho(e("Add page"),()=>a.jsx(ut,{scope:t.scope,components:x({},t.components),children:a.jsx(pe.FormLayout,{layout:"vertical",children:a.jsx(Ro.Provider,{value:El,children:a.jsx(_e,{schema:{properties:{title:{title:e("Menu item title"),required:!0,"x-component":"Input","x-decorator":"FormItem"},icon:{title:e("Icon"),"x-component":"IconPicker","x-decorator":"FormItem"}}}})})})}),o).open({initialValues:{}}),u=X.uid(),p=X.uid(),h=X.uid(),g=X.uid();yield r({type:Xe.page,title:d.title,icon:d.icon,parentId:i==null?void 0:i.id,schemaUid:p,menuSchemaUid:u,enableTabs:!1,children:[{type:Xe.tabs,schemaUid:h,tabSchemaName:g,hidden:!0}]}),s(Ky({pageSchemaUid:p,tabSchemaUid:h,tabSchemaName:g}))}),[r,s,t==null?void 0:t.components,t==null?void 0:t.scope,i==null?void 0:i.id,e,o]);return a.jsx(wt,{title:e("Modern page (v2)"),onClick:c,className:`${n} ${l}`})};function Ky({pageSchemaUid:e,tabSchemaUid:t,tabSchemaName:o}){return{type:"void","x-component":"FlowRoute","x-uid":e}}const Hy=()=>{const{t:e}=V.useTranslation(),t=m.useContext(b.SchemaOptionsContext),{theme:o}=_o(),{componentCls:n,hashId:l}=wi(),i=Hi(),{createRoute:r}=Rt(),s=m.useCallback(()=>O(void 0,null,function*(){const c=yield Ho(e("Add group"),()=>a.jsx(ut,{scope:t.scope,components:x({},t.components),children:a.jsx(pe.FormLayout,{layout:"vertical",children:a.jsx(Ro.Provider,{value:El,children:a.jsx(_e,{schema:{properties:{title:{title:e("Menu item title"),"x-component":"Input","x-decorator":"FormItem",required:!0},icon:{title:e("Icon"),"x-component":"IconPicker","x-decorator":"FormItem"}}}})})})}),o).open({initialValues:{}}),{title:d,icon:u}=c,p=X.uid();yield r({type:Xe.group,title:d,icon:u,parentId:i==null?void 0:i.id,schemaUid:p})}),[t.components,t.scope,e,o]);return a.jsx(wt,{title:e("Group"),onClick:s,className:`${n} ${l}`})},Pi=e=>{const t=m.useRef(null);return m.useEffect(()=>(t.current&&e!==t.current&&t.current.onUnmount(),t.current=e,e.onMount(),()=>{e.onUnmount()}),[e]),e},ei={},gf=e=>/{{.*?}}/g.test(e),ae=({noCache:e}={noCache:!1})=>{const t=m.useContext(b.SchemaOptionsContext),o=m.useContext(b.SchemaExpressionScopeContext);return(n,l)=>{let i=!1,r;if(typeof n=="string"&&n.startsWith("{{")&&(i=!0,r=n),n&&typeof n=="object"&&!m.isValidElement(n)){try{r=JSON.stringify(n)}catch(s){return console.warn("Failed to stringify:",s),n}if(ei[r])return ei[r];i=gf(r)}if(Array.isArray(n)){try{r=JSON.stringify(n)}catch(s){return console.warn("Failed to stringify:",s),n}if(ei[r])return ei[r];i=gf(r)}if(i){const s=x(x(x({},t==null?void 0:t.scope),o),l);if(!r)return b.Schema.compile(n,s);try{return e?b.Schema.compile(n,s):(ei[r]=ei[r]||b.Schema.compile(n,s),ei[r])}catch(c){return console.log("useCompile error",n,c),b.Schema.compile(n,s)}}return n}},ko=(e,t)=>{const{components:o}=m.useContext(b.SchemaOptionsContext);return e?typeof e!="string"?e:z.get(o,e)||t:t},sm=Symbol("LAZY_COMPONENT_KEY");function Mr(e,...t){if(t.length===0){const o=m.lazy(()=>e().then(l=>{const i=l.default;return n[sm]=i,{default:i}})),n=l=>a.jsx(m.Suspense,{fallback:a.jsx(j.Spin,{}),children:a.jsx(o,x({},l))});return n}return t.reduce((o,n)=>{const l=m.lazy(()=>e().then(i=>{const r=z.get(i,n);return o[n][sm]=r,{default:r}}));return o[n]=i=>a.jsx(m.Suspense,{fallback:a.jsx(j.Spin,{}),children:a.jsx(l,x({},i))}),o},{})}function Uy(e,t){if(e)return e["x-app-version"]||(e["x-app-version"]=t),Object.keys(e.properties||{}).forEach(o=>{var n;Uy((n=e.properties)==null?void 0:n[o],t)}),e}const UT="@nocobase/client",GT="2.0.0-alpha.10",WT="AGPL-3.0",YT="lib/index.js",JT="es/index.mjs",XT="es/index.d.ts",QT={"@ahooksjs/use-url-state":"3.5.1","@ant-design/cssinjs":"^1.11.1","@ant-design/icons":"^5.6.1","@ant-design/pro-layout":"^7.22.1","@antv/g2plot":"^2.4.18","@budibase/handlebars-helpers":"0.14.0","@codemirror/lang-html":"^6.4.10","@codemirror/theme-one-dark":"^6.1.3","@ctrl/tinycolor":"^3.6.0","@dnd-kit/core":"^6.0.0","@dnd-kit/sortable":"^7.0.0","@emotion/css":"^11.7.1","@formily/antd-v5":"1.2.3","@formily/core":"^2.2.27","@formily/grid":"^2.2.27","@formily/json-schema":"^2.2.27","@formily/path":"^2.2.27","@formily/react":"^2.2.27","@formily/reactive":"^2.2.27","@formily/reactive-react":"^2.2.27","@formily/shared":"^2.2.27","@formily/validator":"^2.2.27","@nocobase/evaluators":"2.0.0-alpha.10","@nocobase/flow-engine":"2.0.0-alpha.10","@nocobase/sdk":"2.0.0-alpha.10","@nocobase/utils":"2.0.0-alpha.10","@tanstack/react-table":"^8.21.3","@types/tabulator-tables":"^6.2.6",ahooks:"^3.7.2",antd:"5.24.2","antd-mobile":"^5.41.1","antd-mobile-icons":"^0.3.0","antd-style":"3.7.1",axios:"^1.7.0","bignumber.js":"^9.1.2",classnames:"^2.3.1",codemirror:"^6.0.2",cronstrue:"^2.11.0","file-saver":"^2.0.5",filesize:"9.0.11",flat:"^5.0.2","html5-qrcode":"^2.3.8",i18next:"^22.4.9","i18next-http-backend":"^2.1.1",ignore:"^5.2.0",json5:"^2.2.3",lodash:"4.17.21","lru-cache":"6.0.0","markdown-it":"14.1.0","markdown-it-highlightjs":"3.3.1",mathjs:"^10.6.0",mermaid:"9.4.3",mime:"^4.0.4","mime-match":"^1.0.2","react-beautiful-dnd":"^13.1.0","react-device-detect":"2.2.3","react-drag-listview":"^0.1.9","react-error-boundary":"^4.0.10","react-helmet":"^6.1.0","react-hotkeys-hook":"^3.4.7","react-i18next":"^11.15.1","react-iframe":"~1.8.5","react-image-lightbox":"^5.1.4","react-intersection-observer":"9.14.0","react-js-cron":"^3.1.0","react-quill":"^2.0.0","react-router-dom":"^6.30.1","react-to-print":"^2.14.7","sanitize-html":"2.13.0","tabulator-tables":"^6.3.1","use-deep-compare-effect":"^1.8.1"},ZT={react:">=18.0.0","react-dom":">=18.0.0","react-is":">=18.0.0"},eM={"@testing-library/react":"^14.0.0","@types/markdown-it":"14.1.1","@types/markdown-it-highlightjs":"3.3.1","@types/react-big-calendar":"^1.6.4","axios-mock-adapter":"^1.20.0",dumi:"2.2.14","dumi-theme-nocobase":"^0.2.32"},tM={name:UT,version:GT,license:WT,main:YT,module:JT,types:XT,dependencies:QT,peerDependencies:ZT,devDependencies:eM};function Yo(e){return new bh(e)}const Gy=e=>{e&&(e["x-uid"]||(e["x-uid"]=X.uid()),Object.keys(e.properties||{}).forEach(t=>{Gy(e.properties[t])}))},ic=e=>e,oM=(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}},ar=(e,t)=>{if(e["x-uid"]&&e["x-uid"]===t["x-uid"])return[null,e.toJSON()];const o=e.toJSON(),n=I(x({},o),{properties:{}});let l=null;const i=(r,s)=>{Object.keys(r||{}).forEach(c=>{const d=r[c];if(d["x-uid"]===t["x-uid"]){l=r[c];return}else s.properties[c]=I(x({},d),{properties:{}}),i(d==null?void 0:d.properties,s.properties[c])})};return i(o.properties,n),[n,l]},nM=e=>e;class bh{constructor(t){M(this,"current"),M(this,"options"),M(this,"appVersion"),M(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=nM}=this.options;if(!t)return;const n=l=>{if(!l)return[];const i=Object.values(l.properties).length,r=[];return l.mapProperties(s=>{s["x-component-props"]=s["x-component-props"]||{},s["x-component-props"].width=100/i,s["x-uid"]&&r.push({"x-uid":s["x-uid"],"x-component-props":s["x-component-props"]})}),l["x-uid"]&&r.length?r:[]};this.on("insertAdjacent",l=>O(this,[l],function*({onSuccess:i,current:r,position:s,schema:c,wrap:d,wrapped:u,removed:p}){var h;let g=[];if((u==null?void 0:u["x-component"])==="Grid.Col"&&(g=g.concat(n(u.parent))),(p==null?void 0:p["x-component"])==="Grid.Col"&&(g=g.concat(n(p.parent))),this.refresh(),!r["x-uid"])return;const v=yield t.request({url:`/uiSchemas:insertAdjacent/${r["x-uid"]}?position=${s}`,method:"post",data:{schema:Uy(c,this.appVersion),wrap:d}});g.length&&(yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:g})),p!=null&&p["x-uid"]&&(yield t.request({url:`/uiSchemas:remove/${p["x-uid"]}`,method:"post"})),i==null||i((h=v==null?void 0:v.data)==null?void 0:h.data),j.message.success(o("Saved successfully"),.2)})),this.on("patch",l=>O(this,[l],function*({schema:i}){this.refresh(),i!=null&&i["x-uid"]&&(yield t.request({url:"/uiSchemas:patch",method:"post",data:x({},i)}),j.message.success(o("Saved successfully"),.2))})),this.on("initializeActionContext",l=>O(this,[l],function*({schema:i}){i!=null&&i["x-uid"]&&(yield t.request({url:"/uiSchemas:initializeActionContext",method:"post",data:x({},i)}))})),this.on("batchPatch",l=>O(this,[l],function*({schemas:i}){this.refresh(),yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:i}),j.message.success(o("Saved successfully"),.2)})),this.on("remove",l=>O(this,[l],function*({removed:i}){let r=[];(i==null?void 0:i["x-component"])==="Grid.Col"&&(r=n(i.parent)),this.refresh(),i!=null&&i["x-uid"]&&(yield t.request({url:`/uiSchemas:remove/${i["x-uid"]}`,method:"post"}),r.length&&(yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:r})),j.message.success(o("Saved successfully"),.2))}))}prepareProperty(t){t.type||(t.type="void"),t.name||(t.name=X.uid()),this.current["x-uid"]&&Gy(t)}on(t,o){this.events[t]||(this.events[t]=[]),this.events[t].push(o)}emit(t,...o){return O(this,null,function*(){if(!this.events[t])return;const[n,...l]=o;return Promise.all(this.events[t].map(i=>i.bind(this)(x({current:this.current},n),...l)))})}parentsIn(t){if(!t||!b.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"},n={"x-decorator-props":"decoratorProps","x-component-props":"componentProps","x-data":"data"};Object.keys(t).forEach(l=>{o[l]?(this.current[l]=t[l],this.updateModel(o[l],t[l])):n[l]?Object.keys(t[l]).forEach(i=>{Xp(this.current,[l,i],t[l][i]),this.updateModel([n[l],i],t[l][i])}):this.current[l]=t[l]}),this.emit("patch",{schema:t})}getSchemaAttribute(t,o){return di(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(n=>{this.current[n]=t[n],o[n]&&this.updateModel(o[n],t[n])}),this.emit("patch",{schema:t})}updateModel(t,o){const n=l=>{Xp(l,t,o)};this.model&&n(this.model),this.query&&this.query.take(n)}insertAdjacent(t,o,n={}){switch(t){case"beforeBegin":return this.insertBeforeBegin(o,n);case"afterBegin":return this.insertAfterBegin(o,n);case"beforeEnd":return this.insertBeforeEnd(o,n);case"afterEnd":return this.insertAfterEnd(o,n)}}recursiveRemoveIfNoChildren(t,o){if(!t)return;let n=t,l;const i=o==null?void 0:o.breakRemoveOn;for(;n;){if(typeof i=="function"){if(i(n))break}else if(oM(n,i))break;if(Object.keys(n.properties||{}).length>0)break;n.parent&&(l=n.parent.removeProperty(n.name)),n=n.parent}return l}remove(t,o={}){const{breakRemoveOn:n,removeParentsIfNoChildren:l}=o,i=t||this.current;let r=i.parent.removeProperty(i.name);if(l){const s=this.recursiveRemoveIfNoChildren(i.parent,{breakRemoveOn:n});s&&(r=s)}return this.emit("remove",{removed:r})}removeWithoutEmit(t,o={}){const{breakRemoveOn:n,removeParentsIfNoChildren:l}=o,i=t||this.current;let r=i.parent.removeProperty(i.name);if(l){const s=this.recursiveRemoveIfNoChildren(i.parent,{breakRemoveOn:n});s&&(r=s)}return r}insertBeforeBeginOrAfterEnd(t,o={}){if(!b.Schema.isSchemaInstance(this.current)||!b.Schema.isSchemaInstance(t)||this.current.parent!==t.parent)return;let n=0,l=0;return this.current.parent.mapProperties((i,r,s)=>{this.current.name===r&&(l=s),t.name===r&&(n=s)}),n>l?this.insertBeforeBegin(t,o):this.insertAfterEnd(t,o)}insertBeforeBegin(t,o={}){if(!b.Schema.isSchemaInstance(this.current))return;const n={onSuccess:o.onSuccess},{wrap:l=ic,breakRemoveOn:i,removeParentsIfNoChildren:r}=o;if(b.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),r&&(n.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:i}))}else t&&(t=Go(t));const s={};let c=!1,d=0,u=0;this.current.parent.mapProperties((f,y)=>{y===this.current.name&&(u=d,c=!0,++d),f["x-index"]=d,++d,c&&(s[y]=f,this.current.parent.removeProperty(y))}),this.prepareProperty(t);const p=l(t),h=this.current.parent.addProperty(p.name||X.uid(),p);h["x-index"]=u,h.parent=this.current.parent,this.current.parent.setProperties(s);const[g,v]=ar(h,t);this.emit("insertAdjacent",x({position:"beforeBegin",schema:v,wrapped:p,wrap:g},n))}insertAfterBegin(t,o={}){if(!b.Schema.isSchemaInstance(this.current))return;const n={onSuccess:o.onSuccess},{wrap:l=ic,breakRemoveOn:i,removeParentsIfNoChildren:r}=o;if(b.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),r&&(n.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:i}))}else t&&(t=Go(t));const s={};let c=1;this.current.mapProperties((g,v)=>{g["x-index"]=c,++c,s[v]=g}),this.current.properties={},this.prepareProperty(t);const d=l(t),u=this.current.addProperty(d.name||X.uid(),d);u["x-index"]=0,u.parent=this.current,this.current.setProperties(s);const[p,h]=ar(u,t);this.emit("insertAdjacent",x({position:"afterBegin",schema:h,wrap:p,wrapped:d},n))}insertBeforeEnd(t,o={}){if(!b.Schema.isSchemaInstance(this.current))return;delete t["x-index"];const n={onSuccess:o.onSuccess},{wrap:l=ic,breakRemoveOn:i,removeParentsIfNoChildren:r}=o;if(b.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),r&&(n.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:i}))}else t&&(t=Go(t));this.prepareProperty(t);const s=l(t),c=this.current.addProperty(s.name||X.uid(),s);c.parent=this.current;const[d,u]=ar(c,t);return this.emit("insertAdjacent",x({position:"beforeEnd",schema:u,wrap:d,wrapped:s},n))}insertAfterEnd(t,o={}){if(!b.Schema.isSchemaInstance(this.current))return;const n={onSuccess:o==null?void 0:o.onSuccess},{wrap:l=ic,breakRemoveOn:i,removeParentsIfNoChildren:r}=o;let s=0,c=0,d=!1;const u={};if(this.current.parent.mapProperties((f,y)=>{f["x-index"]=s,y===this.current.name&&(++s,c=s,d=!0),++s,d&&y!==this.current.name&&(u[y]=f,this.current.parent.removeProperty(y))}),b.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),r&&(n.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:i})),t.parent=null}else t&&(t=Go(t));this.prepareProperty(t);const p=l(t),h=this.current.parent.addProperty(p.name||X.uid(),p);h.parent=this.current.parent,h["x-index"]=c,this.current.parent.setProperties(u);const[g,v]=ar(h,t);this.emit("insertAdjacent",x({position:"afterEnd",schema:v,wrap:g,wrapped:p},n))}}function Pd(){const e=m.useContext(b.SchemaOptionsContext),t=m.useMemo(()=>(e==null?void 0:e.components)||{},[e]);return o=>{if(!o)return null;if(typeof o!="string")return o;const n=di(t,o);return n||console.error(`[nocobase]: Component "${o}" not found`),n}}function G(){const{designable:e,setDesignable:t,refresh:o,reset:n}=m.useContext(yt),l=m.useContext(b.SchemaOptionsContext),i=m.useMemo(()=>(l==null?void 0:l.components)||{},[l]),r=m.useMemo(()=>()=>a.jsx(a.Fragment,{}),[]),s=bt.useUpdate(),c=Ki(),d=Fs(),u=m.useCallback(S=>{o==null||o(),s(),c==null||c(S),d==null||d()},[o,s,c,d]),p=b.useField(),h=b.useFieldSchema(),g=Pe(),{t:v}=V.useTranslation(),f=m.useMemo(()=>Yo({t:v,api:g,refresh:u,current:h,model:p,appVersion:tM.version}),[v,g,u,h,p]);m.useEffect(()=>{f.loadAPIClientEvents()},[f]);const{isMobileLayout:y}=Jt();return{dn:f,designable:y?!1:e,reset:n,refresh:u,setDesignable:t,DesignableBar:r,findComponent:m.useCallback(S=>{var C;if(!S)return null;if(typeof S!="string")return S;const k=di(i,S);return(C=k==null?void 0:k[sm])!=null?C:k},[di]),on:f.on.bind(f),patch:m.useCallback((S,C)=>{const k=F=>{Object.keys(F).forEach(P=>{const w=F[P];P==="title"&&(p.title=w,h.title=w),P==="x-decorator-props"&&(p.decoratorProps||(p.decoratorProps={}),h["x-decorator-props"]||(h["x-decorator-props"]={}),Object.keys(w).forEach(A=>{p.decoratorProps[A]=w[A],h["x-decorator-props"][A]=w[A]})),P==="x-component-props"&&(p.componentProps||(p.componentProps={}),h["x-component-props"]||(h["x-component-props"]={}),Object.keys(w).forEach(A=>{p.componentProps[A]=w[A],h["x-component-props"][A]=w[A]}))})};if(typeof S=="string"){const F={};return Xp(F,S,C),k(F)}k(S),u()},[f]),shallowMerge:m.useCallback(S=>{f.shallowMerge(S)},[f]),deepMerge:m.useCallback(S=>{f.deepMerge(S)},[f]),remove:m.useCallback((S,C)=>{f.remove(S,C)},[f]),insertAdjacent:m.useCallback((S,C,k)=>{f.insertAdjacent(S,C,k)},[f]),insertBeforeBegin:m.useCallback(S=>{f.insertBeforeBegin(S)},[f]),insertAfterBegin:m.useCallback(S=>{f.insertAfterBegin(S)},[f]),insertBeforeEnd:m.useCallback(S=>{f.insertBeforeEnd(S)},[f]),insertAfterEnd:m.useCallback(S=>{f.insertAfterEnd(S)},[f])}}const cm=()=>null;cm.isNullComponent=!0;const Ko=()=>{const{designable:e}=G(),t=b.useFieldSchema(),o=m.useMemo(()=>t["x-designer"]||t["x-toolbar"]?t["x-designer"]||t["x-toolbar"]:t["x-settings"]?nn:cm,[t]),n=ko(o);return e&&n||cm},Wy=e=>{const t=m.useContext(b.SchemaOptionsContext),o=m.useContext(b.SchemaExpressionScopeContext),n=m.useRef();return n.current=o,e.toFieldProps(I(x({},t),{get scope(){return x(x({},t.scope),n.current)}}))};function ji(){return m.useContext(yt)}const yh=()=>{var e;const{getCollectionJoinField:t,getCollection:o}=le(),n=b.useFieldSchema(),{getField:l}=re(),i=l(n.name)||t(n["x-collection-field"]),{t:r}=V.useTranslation(),{label:s}=((e=n["x-component-props"])==null?void 0:e.fieldNames)||{};return m.useMemo(()=>{if(!i||!(i!=null&&i.interface)||!["o2o","oho","obo","o2m","linkTo","m2o","m2m"].includes(i.interface))return;const c=o(i.target);if((c==null?void 0:c.template)==="file")return[{label:r("Record picker"),value:"CollectionField"},{label:r("Select"),value:"AssociationSelect"}];switch(i.interface){case"o2m":return[{label:r("Record picker"),value:"CollectionField"},{label:r("Subtable"),value:"TableField"},{label:r("Select"),value:"AssociationSelect"}];case"m2o":case"m2m":case"linkTo":return[{label:r("Record picker"),value:"CollectionField"},{label:r("Select"),value:"AssociationSelect"}];default:return[{label:r("Record picker"),value:"CollectionField"},{label:r("Subform"),value:"FormField"},{label:r("Select"),value:"AssociationSelect"}]}},[r,i==null?void 0:i.interface,s])},jd=()=>{var e;const t=b.useField(),o=b.useFieldSchema(),n=he(),l=Ue(),i=(n==null?void 0:n.getField(o.name))||(l==null?void 0:l.getCollectionField(o["x-collection-field"])),r=ae();m.useEffect(()=>{var s;t!=null&&t.title||(t.title=r((s=i==null?void 0:i.uiSchema)==null?void 0:s.title))},[(e=i==null?void 0:i.uiSchema)==null?void 0:e.title])},vf=()=>({}),Kt=(e={})=>{const t=e,{useProps:o=vf}=t,n=ne(t,["useProps"]);let l=o;typeof o!="function"&&(l=vf);const i=l();return x(x({},n),i)};function Rl({filterOption:e,onFilterChange:t}){const{parseFilter:o,findVariable:n}=PE(),[l,i]=m.useState({}),[r,s]=m.useState(!!e);return m.useEffect(()=>{if(!e)return;const c=()=>O(this,null,function*(){s(!0);const u=yield o(e);s(!1),i(u),t==null||t(u)});c();const d=z.debounce(c,Ry);rt.reaction(()=>te.flatten(e,{breakOn({key:u}){return u.startsWith("$")&&u!=="$and"&&u!=="$or"},transformValue(u){if(!it(u))return u;const p=bd(u),h=n(p);let g=null;const v=fd(u).split(".");return v.forEach((f,y)=>{const S=v.slice(0,y+1).join("."),C=te.getValuesByPath({[p]:(h==null?void 0:h.ctx)||{}},S);z.isEmpty(C)||(g=C)}),g}}),d,{equals:z.isEqual})},[JSON.stringify(e),o,n]),{filter:l,parseVariableLoading:r}}const _a=e=>{const t=It();if(e)return t},lM=e=>{var t;const{params:o,parseVariableLoading:n}=Yy(e),l=_a(e.association),i=(t=Ct().getDataSource(e.dataSource))==null?void 0:t.collectionManager.getCollection(e.collection);return{params:o,parentRecord:l,parseVariableLoading:n,rowKey:(i==null?void 0:i.filterTargetKey)||"id"}};function Yy(e){var t;const o=b.useFieldSchema(),{filter:n,parseVariableLoading:l}=Rl({filterOption:(t=e.params)==null?void 0:t.filter});return{params:m.useMemo(()=>{const i=e.params||{},{dragSortBy:r}=(o==null?void 0:o["x-decorator-props"])||{};return e.dragSort&&r&&(i.sort=r),I(x({},i),{filter:n})},[o,n,e.dragSort,e.params]),parseVariableLoading:l}}const Jy="__isNewRecord__",Sh=e=>rt.untracked(()=>!!(e!=null&&e[Jy])),Gn=e=>{if(!z.isObject(e))throw new Error("markRecordAsNew: record must be an object");return e[Jy]=!0,e},iM=()=>{var e;return!!((e=En())!=null&&e.loading)},Ka=(e,t)=>{const{useLoading:o=iM,displayName:n,SkeletonComponent:l=j.Skeleton}=t||{},i=m.memo(r=>{const s=o(),c=m.useRef(!1),d=m.useDeferredValue(s);return!c.current&&d?a.jsx(l,{}):(c.current=!0,a.jsx(e,x({},r)))});return i.displayName=n||`${e.displayName}(withSkeletonComponent)`||`${e.name}(withSkeletonComponent)`,i},rM=(e,t)=>{const o=n=>(n==null?void 0:n.mode)==="constant"?n.value:null;switch(!0){case[me.Color,me.BackgroundColor,me.TextAlign,me.FontSize,me.FontWeight,me.FontStyle].includes(e):return o(t);default:return null}},aM=(e,t)=>O(void 0,[e,t],function*({rules:o,variables:n,localVariables:l},i){return(yield Promise.all(o.filter(r=>!r.disabled).map(r=>O(void 0,null,function*(){return(yield fo({ruleGroup:r.condition,variables:n,localVariables:l,conditionType:r.conditionType},i))?r:null})))).filter(Boolean).map(r=>r.actions).flat()}),sM=(e,t)=>O(void 0,[e,t],function*({rules:o,variables:n,localVariables:l},i){return(yield aM({rules:o,variables:n,localVariables:l},i)).map(r=>I(x({},r),{value:rM(r.operator,r.value)}))}),cM=(e,t)=>O(void 0,[e,t],function*({rules:o,variables:n,localVariables:l},i){return(yield sM({rules:o,variables:n,localVariables:l},i)).reduce((r,s)=>I(x({},r),{[s.operator]:s.value}),{})});function Ch({formValues:e,category:t="default",rules:o,schema:n,form:l}){const[i,r]=m.useState({}),s=b.useFieldSchema(),c=lt(),d=pt({currentForm:{values:e}}),u=n??s,p=o??(u[jc[t]]||(u==null?void 0:u.parent[jc[t]])),h=nt(),g=m.useCallback(()=>{p&&e&&cM({rules:p,variables:c,localVariables:d},h.jsonLogic).then(v=>{z.isEmpty(v)?r({}):r(v)}).catch(v=>{throw new Error(v.message)})},[c,d,p,e]);return m.useEffect(()=>{if(g(),l){const v=X.uid();return l.addEffects(v,()=>{De.onFormValuesChange(()=>{g()})}),()=>{l.removeEffects(v)}}},[l,g,e]),{valueMap:i}}const Xy=m.memo(({record:e,schema:t,onStyleChange:o})=>{const{valueMap:n}=Ch({formValues:e,category:"style",schema:t});return m.useEffect(()=>{o(n)},[o,n]),null});Xy.displayName="GetStyleRules";const dM={opacity:.5},uM={position:"relative"},pM={display:"flex",alignItems:"center",justifyContent:"center",position:"absolute",left:0,right:0,height:"100%",maxHeight:400,zIndex:1e3},mM={display:"none"},hM=m.memo(e=>a.jsxs("div",{style:uM,children:[a.jsx(j.Spin,I(x({},z.omit(e,"children")),{style:e.spinning?pM:mM})),a.jsx("div",{style:e.spinning?dM:null,children:e.children})]}));var Ar=(e=>(e[e.FORM=0]="FORM",e[e.TABLE=1]="TABLE",e[e.TREE=2]="TREE",e[e.COLLAPSE=3]="COLLAPSE",e))(Ar||{});const Wt=(e,t="$and")=>{const o=e.filter(n=>{if(n&&typeof n=="object"&&!Array.isArray(n))return Object.values(n).filter(l=>l!==void 0).length});return o.length===0?{}:o.length===1?o[0]:{[t]:o}},Qy=(e,t)=>{var o;return(o=t.associatedFields)==null?void 0:o.filter(n=>e==null?void 0:e.some(l=>l===n.target))},Zy=(e,t)=>{var o;return(o=t.foreignKeyFields)==null?void 0:o.filter(n=>e.fields.some(l=>l.type!=="belongsTo"&&l.foreignKey===n.name&&l.target===n.collectionName))},gM=e=>{const{getDataBlocks:t}=_l(),o=b.useFieldSchema(),n=he(),{getAllCollectionsInheritChain:l}=ny();if(e===0||e===3)return t().filter(i=>dm(i.collection,n));if(e===1||e===2)return t().filter(i=>{var r,s;return o["x-uid"]!==i.uid&&(dm(i.collection,n)||((r=Qy(l(n.name,n.dataSource),i))==null?void 0:r.length)||((s=Zy(n,i))==null?void 0:s.length))})},vM=(e,t,o,n)=>(e=te.flatten(e,{breakOn({value:l,path:i}){if(["$match","$notMatch","$anyOf","$noneOf","$childIn","$childNotIn","$dateBetween","$in","$notIn"].includes(t[i]))return!0;const r=o(`${n}.${i}`);if(["datetime","datetimeNoTz","date","unixTimestamp","createdAt","updatedAt"].includes(r==null?void 0:r.interface))return!0;if(r!=null&&r.target){if(Array.isArray(l))return!0;const s=r.targetKey||"id";if(l&&l[s]!=null)return!0}return!1}}),{$and:Object.keys(e).map(l=>{let i=z.get(e,l);const r=o(`${n}.${l}`);return r!=null&&r.target&&["hasOne","hasMany","belongsTo","belongsToMany","belongsToArray"].includes(r.type)&&(i=te.getValuesByPath(i,r.targetKey||"id"),l=`${l}.${r.targetKey||"id"}`,(r==null?void 0:r.interface)==="chinaRegion"&&(i=z.last(i))),!i&&i!==0&&i!==!1?null:{[l]:{[t[l]||"$eq"]:i}}}).filter(Boolean)}),Fh=()=>{var e;return((e=he())==null?void 0:e.fields.filter(t=>e0(t)))||[]},e0=e=>["o2o","oho","obo","m2o","createdBy","updatedBy","o2m","m2m","linkTo","chinaRegion","mbm"].includes(e==null?void 0:e.interface),dm=(e,t)=>e.name===t.name&&e.dataSource===t.dataSource,mr=e=>{for(;e;){if(e["x-filter-targets"])return e["x-decorator"]==="FilterFormBlockProvider";e=e.parent}return!1},Id=m.createContext({});Id.displayName="AssociationFieldContext";const Jn=e=>{const t=b.useFieldSchema(),{insertAfterBegin:o}=G(),{isMobileLayout:n}=Jt();return m.useCallback(l=>{n||t.reduceProperties((i,r)=>r["x-component"]==="AssociationField."+e?r:i,null)||o(Go(l))},[e,t,o,n])};function Ft(){return m.useContext(Id)}function kh(e){var t,o,n,l,i,r,s,c,d,u;const{action:p="list",service:h,useOriginalFilter:g}=e,v=b.useFieldSchema(),f=b.useField(),{getField:y}=re(),{getCollectionJoinField:S}=le(),C=qe(),{isNew:k}=ho()||{},F=(z.isString((n=(o=(t=v==null?void 0:v["x-component-props"])==null?void 0:t.service)==null?void 0:o.params)==null?void 0:n.filter)?(r=(i=(l=f.componentProps)==null?void 0:l.service)==null?void 0:i.params)==null?void 0:r.filter:(d=(c=(s=v==null?void 0:v["x-component-props"])==null?void 0:s.service)==null?void 0:c.params)==null?void 0:d.filter)||((u=h==null?void 0:h.params)==null?void 0:u.filter),{filter:P}=Rl({filterOption:F,onFilterChange:()=>{k&&f.reset()}}),w=m.useMemo(()=>y(v.name)||S(v==null?void 0:v["x-collection-field"]),[v]),A=C==null?void 0:C[w==null?void 0:w.sourceKey],N=m.useMemo(()=>{const R=["oho","o2m"].includes(w==null?void 0:w.interface);return Wt([Wt([R&&!mr(v)&&w!=null&&w.foreignKey&&!g?{[w.foreignKey]:{$is:null}}:null,P]),R&&A!==void 0&&A!==null&&!mr(v)&&w!=null&&w.foreignKey&&!g?{[w.foreignKey]:{$eq:A}}:null],"$or")},[w==null?void 0:w.interface,w==null?void 0:w.foreignKey,v,P,A,g]);return m.useMemo(()=>I(x({resource:w==null?void 0:w.target,action:p},h),{params:I(x({},h==null?void 0:h.params),{filter:N})}),[w==null?void 0:w.target,p,N,h])}const Nr=(e={})=>{var t,o,n,l,i;const r=b.useFieldSchema(),s=((l=(n=(o=(t=r["x-component-props"])==null?void 0:t.field)==null?void 0:o.uiSchema)==null?void 0:n["x-component-props"])==null?void 0:l.fieldNames)||((i=r["x-component-props"])==null?void 0:i.fieldNames)||e.fieldNames;return x({label:"label",value:"value"},s)},Tc=m.createContext(null);Tc.displayName="SubFormContext";const Ii=e=>{const t=m.useContext(Tc),{value:o,collection:n,fieldSchema:l,parent:i,skip:r}=e.value,s=m.useMemo(()=>z.omitBy({value:o,collection:n,fieldSchema:l,skip:r,parent:i||(t!=null&&t.skip?t.parent:t)},z.isUndefined),[o,n,l,r,i,t]);return a.jsx(Tc.Provider,{value:s,children:e.children})},Rr=()=>{const{value:e,collection:t,fieldSchema:o,parent:n}=m.useContext(Tc)||{};return{formValue:e,collection:t,fieldSchema:o,parent:n}},Ha=e=>{const{t}=V.useTranslation(),o=`nocobase_table_column_settings_${e}`,n=m.useCallback(()=>{try{const r=localStorage.getItem(o);return r?JSON.parse(r):null}catch(r){return console.warn("Failed to parse table column settings from localStorage:",r),null}},[o]),l=m.useCallback(r=>{try{const s=JSON.stringify(r);localStorage.setItem(o,s);const c=new CustomEvent("nocobase-table-settings-changed",{detail:{key:o,tableId:e,settings:r}});window.dispatchEvent(c)}catch(s){console.warn("Failed to save table column settings to localStorage:",s),j.message.error(t("Failed to save table settings"))}},[o,e,t]),i=m.useCallback(()=>{try{localStorage.removeItem(o);const r=new CustomEvent("nocobase-table-settings-changed",{detail:{key:o,tableId:e,settings:null}});window.dispatchEvent(r)}catch(r){console.warn("Failed to clear table column settings from localStorage:",r),j.message.error(t("Failed to clear table settings"))}},[o,e,t]);return{getSettings:n,saveSettings:l,clearSettings:i}},Td=(e,t=!0)=>{const o=b.useFieldSchema(),n=(o==null?void 0:o["x-uid"])||"default",{getSettings:l}=Ha(n),[i,r]=m.useState(0);m.useEffect(()=>{const c=d=>{const{key:u,tableId:p}=d.detail;(u.includes(n)||p===n)&&r(h=>h+1)};return window.addEventListener("nocobase-table-settings-changed",c),()=>{window.removeEventListener("nocobase-table-settings-changed",c)}},[n]);const s=m.useMemo(()=>l(),[l,i]);return{columns:m.useMemo(()=>{if(!t||!s||s.length===0)return e;const c=new Map;s.forEach(g=>{c.set(g.key,g)});const d=e.map(g=>{const v=c.get(g.key);if(v){const f=g.columnHidden||!v.visible,y=v.width||g.width,S=v.fixed||g.fixed;return I(x({},g),{columnHidden:f,fixed:S,width:y,_orderIndex:v.order})}return g}),u=[],p=[];d.forEach(g=>{g._orderIndex!==void 0?u.push(g):p.push(g)}),u.sort((g,v)=>(g._orderIndex||0)-(v._orderIndex||0));const h=[...u,...p];return h.forEach(g=>{delete g._orderIndex}),h},[e,s])}},xM=({rows:e=5,columns:t=6})=>{const{token:o}=dt(),n=o.controlHeight*2.06,l=o.controlHeight*1.75,i=m.useMemo(()=>Q.css`
|
|
64
|
+
`,items:s},i))})},qT=()=>{const{isInMenu:e}=DT();return{attribute:m.useMemo(()=>e?{}:{role:"menuitem"},[e])}},{Paragraph:BT,Text:ET}=j.Typography,$T=e=>{const[t,o]=m.useState(!1),n=a.jsx(BT,{style:{display:"flex",marginBottom:0},copyable:{text:e.error.message},children:a.jsxs(ET,{type:"danger",style:{whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden",display:"inline-block",maxWidth:"200px"},children:["Error: ",e.error.message]})});return a.jsxs(a.Fragment,{children:[a.jsx("div",{onMouseOver:()=>o(!0),children:e.children||n}),a.jsx(j.Modal,{zIndex:1e4,open:t,footer:null,onCancel:()=>o(!1),width:"60%",children:a.jsx(go,x({},e))})]})},{Paragraph:OT,Text:LT,Link:VT}=j.Typography,kd=(e,t={})=>{const o=ad(),[n,l]=m.useState(!1),i=Pe();return{loading:n,download:()=>O(void 0,null,function*(){l(!0);try{const r=yield i.request({url:"logger:collect",method:"post",responseType:"blob",data:x({error:{message:e.message,stack:e.stack},location:o},t)}),s=window.URL.createObjectURL(new Blob([r.data],{type:"application/gzip"})),c=document.createElement("a");c.setAttribute("href",s),c.setAttribute("download","logs.tar.gz"),c.click(),c.remove()}catch(r){console.log(r)}l(!1)})}},go=({error:e})=>{const t=b.useFieldSchema(),{t:o}=V.useTranslation(),{loading:n,download:l}=kd(e,{schema:t}),i=a.jsxs(V.Trans,{children:["This is likely a NocoBase internals bug. Please open an issue at ",a.jsx(VT,{href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:"here"})]});return a.jsx("div",{style:{backgroundColor:"white"},children:a.jsx(j.Result,{style:{maxWidth:"60vw",margin:"auto"},status:"error",title:o("Render Failed"),subTitle:i,extra:[a.jsx(j.Button,{type:"primary",href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:o("Feedback")},"feedback"),a.jsx(j.Button,{loading:n,onClick:l,children:o("Download logs")},"log")],children:a.jsx(OT,{copyable:{text:e.stack},children:a.jsx(LT,{type:"danger",style:{whiteSpace:"pre-line",textAlign:"center"},children:e.stack})})})})};go.Modal=$T;const pr=()=>{const e=Me.useNavigate(),{t}=V.useTranslation();return a.jsx(j.Result,{status:"404",title:"404",subTitle:t("Sorry, the page you visited does not exist."),extra:a.jsx(j.Button,{onClick:()=>e("/",{replace:!0}),type:"primary",children:"Back Home"})})};class lo{constructor(t,o){this.options=t,this.app=o,this.options=t,this.app=o}get pluginManager(){return this.app.pluginManager}get context(){return this.app.context}get flowEngine(){return this.app.flowEngine}get engine(){return this.app.flowEngine}get pm(){return this.app.pm}get router(){return this.app.router}get pluginSettingsManager(){return this.app.pluginSettingsManager}get pluginSettingsRouter(){return this.app.pluginSettingsManager}get schemaInitializerManager(){return this.app.schemaInitializerManager}get schemaSettingsManager(){return this.app.schemaSettingsManager}get dataSourceManager(){return this.app.dataSourceManager}afterAdd(){return O(this,null,function*(){})}beforeLoad(){return O(this,null,function*(){})}load(){return O(this,null,function*(){})}t(t,o={}){var n;return this.app.i18n.t(t,x({ns:(n=this.options)==null?void 0:n.packageName},o))}}const zT={display:"flex",alignItems:"center",gap:4},wd=e=>t=>{const{tooltip:o}=t;return o?a.jsxs("div",{style:zT,children:[a.jsx(e,x({},t)),a.jsx(j.Tooltip,{title:o,children:a.jsx(Z.QuestionCircleOutlined,{style:{zIndex:1}})})]}):a.jsx(e,x({},t))},{evaluate:_T}=Wc.evaluators.get("formula.js"),fh=e=>{const t=lt(),o=pt(),[n,l]=m.useState();return m.useEffect(()=>{O(void 0,null,function*(){if(e==null||e===""){l(void 0);return}const{exp:i,scope:r}=yield Sd(e,{variables:t,localVariables:o});try{const s=_T(i,x({now:()=>new Date().toString()},r));l(s)}catch(s){console.error(s)}})},[t.parseVariable,e,o]),n};class vn{constructor(t){M(this,"options"),M(this,"name"),this.options=Object.assign({items:[]},t),this.name=t.name}get items(){return this.options.items}add(t,o){const n=t.split("."),l=n[n.length-1],i=I(x({},o),{name:l}),r=(d,u)=>{const p=this.items.findIndex(h=>h.name===d);p===-1?this.items.push(u):this.items[p]=u};if(n.length===1){r(l,i);return}const s=n.slice(0,-1).join("."),c=this.get(s);if(c){c.children||(c.children=[]);const d=t.replace(`${c.name}.`,""),u=c.children.findIndex(p=>p.name===d);u===-1?c.children.push(i):c.children[u]=i}else r(l,i)}get(t){var o;if(!t)return;const n=t.split(".");let l={children:this.items};for(let i=0;i<n.length;i++){const r=n[i],s=(o=l.children)==null?void 0:o.find(c=>c.name===r);if(s&&(l=s),i===n.length-1)return s}}remove(t){const o=t.split(".");if(o.length===1){const l=this.items.findIndex(i=>i.name===o[0]);l!==-1&&this.items.splice(l,1);return}const n=this.get(o.slice(0,-1).join("."));if(n&&n.children){const l=o[o.length-1],i=n.children.findIndex(r=>r.name===l);i!==-1&&n.children.splice(i,1)}}}var Xe=(e=>(e.group="group",e.page="page",e.flowRoute="flowRoute",e.link="link",e.tabs="tabs",e.flowPage="flowPage",e))(Xe||{});const wi=Bt("nb-menu-item",e=>{const{componentCls:t}=e;return{[t]:{paddingLeft:`${e.padding}px !important`,paddingRight:`${e.padding}px !important`}}}),KT=()=>{const e=Pe();return m.useCallback(t=>O(void 0,null,function*(){yield e.request({method:"POST",url:"/uiSchemas:insert",data:t})}),[e])},HT=()=>{const{t:e}=V.useTranslation(),t=m.useContext(b.SchemaOptionsContext),{theme:o}=_o(),{componentCls:n,hashId:l}=wi(),i=Hi(),{createRoute:r}=Rt(),s=KT(),c=m.useCallback(()=>O(void 0,null,function*(){const d=yield Ho(e("Add page"),()=>a.jsx(ut,{scope:t.scope,components:x({},t.components),children:a.jsx(pe.FormLayout,{layout:"vertical",children:a.jsx(Ro.Provider,{value:El,children:a.jsx(_e,{schema:{properties:{title:{title:e("Menu item title"),required:!0,"x-component":"Input","x-decorator":"FormItem"},icon:{title:e("Icon"),"x-component":"IconPicker","x-decorator":"FormItem"}}}})})})}),o).open({initialValues:{}}),u=X.uid(),p=X.uid(),h=X.uid(),g=X.uid();yield r({type:Xe.page,title:d.title,icon:d.icon,parentId:i==null?void 0:i.id,schemaUid:p,menuSchemaUid:u,enableTabs:!1,children:[{type:Xe.tabs,schemaUid:h,tabSchemaName:g,hidden:!0}]}),s(Ky({pageSchemaUid:p,tabSchemaUid:h,tabSchemaName:g}))}),[r,s,t==null?void 0:t.components,t==null?void 0:t.scope,i==null?void 0:i.id,e,o]);return a.jsx(wt,{title:e("Modern page (v2)"),onClick:c,className:`${n} ${l}`})};function Ky({pageSchemaUid:e,tabSchemaUid:t,tabSchemaName:o}){return{type:"void","x-component":"FlowRoute","x-uid":e}}const Hy=()=>{const{t:e}=V.useTranslation(),t=m.useContext(b.SchemaOptionsContext),{theme:o}=_o(),{componentCls:n,hashId:l}=wi(),i=Hi(),{createRoute:r}=Rt(),s=m.useCallback(()=>O(void 0,null,function*(){const c=yield Ho(e("Add group"),()=>a.jsx(ut,{scope:t.scope,components:x({},t.components),children:a.jsx(pe.FormLayout,{layout:"vertical",children:a.jsx(Ro.Provider,{value:El,children:a.jsx(_e,{schema:{properties:{title:{title:e("Menu item title"),"x-component":"Input","x-decorator":"FormItem",required:!0},icon:{title:e("Icon"),"x-component":"IconPicker","x-decorator":"FormItem"}}}})})})}),o).open({initialValues:{}}),{title:d,icon:u}=c,p=X.uid();yield r({type:Xe.group,title:d,icon:u,parentId:i==null?void 0:i.id,schemaUid:p})}),[t.components,t.scope,e,o]);return a.jsx(wt,{title:e("Group"),onClick:s,className:`${n} ${l}`})},Pi=e=>{const t=m.useRef(null);return m.useEffect(()=>(t.current&&e!==t.current&&t.current.onUnmount(),t.current=e,e.onMount(),()=>{e.onUnmount()}),[e]),e},ei={},gf=e=>/{{.*?}}/g.test(e),ae=({noCache:e}={noCache:!1})=>{const t=m.useContext(b.SchemaOptionsContext),o=m.useContext(b.SchemaExpressionScopeContext);return(n,l)=>{let i=!1,r;if(typeof n=="string"&&n.startsWith("{{")&&(i=!0,r=n),n&&typeof n=="object"&&!m.isValidElement(n)){try{r=JSON.stringify(n)}catch(s){return console.warn("Failed to stringify:",s),n}if(ei[r])return ei[r];i=gf(r)}if(Array.isArray(n)){try{r=JSON.stringify(n)}catch(s){return console.warn("Failed to stringify:",s),n}if(ei[r])return ei[r];i=gf(r)}if(i){const s=x(x(x({},t==null?void 0:t.scope),o),l);if(!r)return b.Schema.compile(n,s);try{return e?b.Schema.compile(n,s):(ei[r]=ei[r]||b.Schema.compile(n,s),ei[r])}catch(c){return console.log("useCompile error",n,c),b.Schema.compile(n,s)}}return n}},ko=(e,t)=>{const{components:o}=m.useContext(b.SchemaOptionsContext);return e?typeof e!="string"?e:z.get(o,e)||t:t},sm=Symbol("LAZY_COMPONENT_KEY");function Mr(e,...t){if(t.length===0){const o=m.lazy(()=>e().then(l=>{const i=l.default;return n[sm]=i,{default:i}})),n=l=>a.jsx(m.Suspense,{fallback:a.jsx(j.Spin,{}),children:a.jsx(o,x({},l))});return n}return t.reduce((o,n)=>{const l=m.lazy(()=>e().then(i=>{const r=z.get(i,n);return o[n][sm]=r,{default:r}}));return o[n]=i=>a.jsx(m.Suspense,{fallback:a.jsx(j.Spin,{}),children:a.jsx(l,x({},i))}),o},{})}function Uy(e,t){if(e)return e["x-app-version"]||(e["x-app-version"]=t),Object.keys(e.properties||{}).forEach(o=>{var n;Uy((n=e.properties)==null?void 0:n[o],t)}),e}const UT="@nocobase/client",GT="2.0.0-alpha.12",WT="AGPL-3.0",YT="lib/index.js",JT="es/index.mjs",XT="es/index.d.ts",QT={"@ahooksjs/use-url-state":"3.5.1","@ant-design/cssinjs":"^1.11.1","@ant-design/icons":"^5.6.1","@ant-design/pro-layout":"^7.22.1","@antv/g2plot":"^2.4.18","@budibase/handlebars-helpers":"0.14.0","@codemirror/lang-html":"^6.4.10","@codemirror/theme-one-dark":"^6.1.3","@ctrl/tinycolor":"^3.6.0","@dnd-kit/core":"^6.0.0","@dnd-kit/sortable":"^7.0.0","@emotion/css":"^11.7.1","@formily/antd-v5":"1.2.3","@formily/core":"^2.2.27","@formily/grid":"^2.2.27","@formily/json-schema":"^2.2.27","@formily/path":"^2.2.27","@formily/react":"^2.2.27","@formily/reactive":"^2.2.27","@formily/reactive-react":"^2.2.27","@formily/shared":"^2.2.27","@formily/validator":"^2.2.27","@nocobase/evaluators":"2.0.0-alpha.12","@nocobase/flow-engine":"2.0.0-alpha.12","@nocobase/sdk":"2.0.0-alpha.12","@nocobase/utils":"2.0.0-alpha.12","@tanstack/react-table":"^8.21.3","@types/tabulator-tables":"^6.2.6",ahooks:"^3.7.2",antd:"5.24.2","antd-mobile":"^5.41.1","antd-mobile-icons":"^0.3.0","antd-style":"3.7.1",axios:"^1.7.0","bignumber.js":"^9.1.2",classnames:"^2.3.1",codemirror:"^6.0.2",cronstrue:"^2.11.0","file-saver":"^2.0.5",filesize:"9.0.11",flat:"^5.0.2","html5-qrcode":"^2.3.8",i18next:"^22.4.9","i18next-http-backend":"^2.1.1",ignore:"^5.2.0",json5:"^2.2.3",lodash:"4.17.21","lru-cache":"6.0.0","markdown-it":"14.1.0","markdown-it-highlightjs":"3.3.1",mathjs:"^10.6.0",mermaid:"9.4.3",mime:"^4.0.4","mime-match":"^1.0.2","react-beautiful-dnd":"^13.1.0","react-device-detect":"2.2.3","react-drag-listview":"^0.1.9","react-error-boundary":"^4.0.10","react-helmet":"^6.1.0","react-hotkeys-hook":"^3.4.7","react-i18next":"^11.15.1","react-iframe":"~1.8.5","react-image-lightbox":"^5.1.4","react-intersection-observer":"9.14.0","react-js-cron":"^3.1.0","react-quill":"^2.0.0","react-router-dom":"^6.30.1","react-to-print":"^2.14.7","sanitize-html":"2.13.0","tabulator-tables":"^6.3.1","use-deep-compare-effect":"^1.8.1"},ZT={react:">=18.0.0","react-dom":">=18.0.0","react-is":">=18.0.0"},eM={"@testing-library/react":"^14.0.0","@types/markdown-it":"14.1.1","@types/markdown-it-highlightjs":"3.3.1","@types/react-big-calendar":"^1.6.4","axios-mock-adapter":"^1.20.0",dumi:"2.2.14","dumi-theme-nocobase":"^0.2.32"},tM={name:UT,version:GT,license:WT,main:YT,module:JT,types:XT,dependencies:QT,peerDependencies:ZT,devDependencies:eM};function Yo(e){return new bh(e)}const Gy=e=>{e&&(e["x-uid"]||(e["x-uid"]=X.uid()),Object.keys(e.properties||{}).forEach(t=>{Gy(e.properties[t])}))},ic=e=>e,oM=(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}},ar=(e,t)=>{if(e["x-uid"]&&e["x-uid"]===t["x-uid"])return[null,e.toJSON()];const o=e.toJSON(),n=I(x({},o),{properties:{}});let l=null;const i=(r,s)=>{Object.keys(r||{}).forEach(c=>{const d=r[c];if(d["x-uid"]===t["x-uid"]){l=r[c];return}else s.properties[c]=I(x({},d),{properties:{}}),i(d==null?void 0:d.properties,s.properties[c])})};return i(o.properties,n),[n,l]},nM=e=>e;class bh{constructor(t){M(this,"current"),M(this,"options"),M(this,"appVersion"),M(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=nM}=this.options;if(!t)return;const n=l=>{if(!l)return[];const i=Object.values(l.properties).length,r=[];return l.mapProperties(s=>{s["x-component-props"]=s["x-component-props"]||{},s["x-component-props"].width=100/i,s["x-uid"]&&r.push({"x-uid":s["x-uid"],"x-component-props":s["x-component-props"]})}),l["x-uid"]&&r.length?r:[]};this.on("insertAdjacent",l=>O(this,[l],function*({onSuccess:i,current:r,position:s,schema:c,wrap:d,wrapped:u,removed:p}){var h;let g=[];if((u==null?void 0:u["x-component"])==="Grid.Col"&&(g=g.concat(n(u.parent))),(p==null?void 0:p["x-component"])==="Grid.Col"&&(g=g.concat(n(p.parent))),this.refresh(),!r["x-uid"])return;const v=yield t.request({url:`/uiSchemas:insertAdjacent/${r["x-uid"]}?position=${s}`,method:"post",data:{schema:Uy(c,this.appVersion),wrap:d}});g.length&&(yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:g})),p!=null&&p["x-uid"]&&(yield t.request({url:`/uiSchemas:remove/${p["x-uid"]}`,method:"post"})),i==null||i((h=v==null?void 0:v.data)==null?void 0:h.data),j.message.success(o("Saved successfully"),.2)})),this.on("patch",l=>O(this,[l],function*({schema:i}){this.refresh(),i!=null&&i["x-uid"]&&(yield t.request({url:"/uiSchemas:patch",method:"post",data:x({},i)}),j.message.success(o("Saved successfully"),.2))})),this.on("initializeActionContext",l=>O(this,[l],function*({schema:i}){i!=null&&i["x-uid"]&&(yield t.request({url:"/uiSchemas:initializeActionContext",method:"post",data:x({},i)}))})),this.on("batchPatch",l=>O(this,[l],function*({schemas:i}){this.refresh(),yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:i}),j.message.success(o("Saved successfully"),.2)})),this.on("remove",l=>O(this,[l],function*({removed:i}){let r=[];(i==null?void 0:i["x-component"])==="Grid.Col"&&(r=n(i.parent)),this.refresh(),i!=null&&i["x-uid"]&&(yield t.request({url:`/uiSchemas:remove/${i["x-uid"]}`,method:"post"}),r.length&&(yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:r})),j.message.success(o("Saved successfully"),.2))}))}prepareProperty(t){t.type||(t.type="void"),t.name||(t.name=X.uid()),this.current["x-uid"]&&Gy(t)}on(t,o){this.events[t]||(this.events[t]=[]),this.events[t].push(o)}emit(t,...o){return O(this,null,function*(){if(!this.events[t])return;const[n,...l]=o;return Promise.all(this.events[t].map(i=>i.bind(this)(x({current:this.current},n),...l)))})}parentsIn(t){if(!t||!b.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"},n={"x-decorator-props":"decoratorProps","x-component-props":"componentProps","x-data":"data"};Object.keys(t).forEach(l=>{o[l]?(this.current[l]=t[l],this.updateModel(o[l],t[l])):n[l]?Object.keys(t[l]).forEach(i=>{Xp(this.current,[l,i],t[l][i]),this.updateModel([n[l],i],t[l][i])}):this.current[l]=t[l]}),this.emit("patch",{schema:t})}getSchemaAttribute(t,o){return di(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(n=>{this.current[n]=t[n],o[n]&&this.updateModel(o[n],t[n])}),this.emit("patch",{schema:t})}updateModel(t,o){const n=l=>{Xp(l,t,o)};this.model&&n(this.model),this.query&&this.query.take(n)}insertAdjacent(t,o,n={}){switch(t){case"beforeBegin":return this.insertBeforeBegin(o,n);case"afterBegin":return this.insertAfterBegin(o,n);case"beforeEnd":return this.insertBeforeEnd(o,n);case"afterEnd":return this.insertAfterEnd(o,n)}}recursiveRemoveIfNoChildren(t,o){if(!t)return;let n=t,l;const i=o==null?void 0:o.breakRemoveOn;for(;n;){if(typeof i=="function"){if(i(n))break}else if(oM(n,i))break;if(Object.keys(n.properties||{}).length>0)break;n.parent&&(l=n.parent.removeProperty(n.name)),n=n.parent}return l}remove(t,o={}){const{breakRemoveOn:n,removeParentsIfNoChildren:l}=o,i=t||this.current;let r=i.parent.removeProperty(i.name);if(l){const s=this.recursiveRemoveIfNoChildren(i.parent,{breakRemoveOn:n});s&&(r=s)}return this.emit("remove",{removed:r})}removeWithoutEmit(t,o={}){const{breakRemoveOn:n,removeParentsIfNoChildren:l}=o,i=t||this.current;let r=i.parent.removeProperty(i.name);if(l){const s=this.recursiveRemoveIfNoChildren(i.parent,{breakRemoveOn:n});s&&(r=s)}return r}insertBeforeBeginOrAfterEnd(t,o={}){if(!b.Schema.isSchemaInstance(this.current)||!b.Schema.isSchemaInstance(t)||this.current.parent!==t.parent)return;let n=0,l=0;return this.current.parent.mapProperties((i,r,s)=>{this.current.name===r&&(l=s),t.name===r&&(n=s)}),n>l?this.insertBeforeBegin(t,o):this.insertAfterEnd(t,o)}insertBeforeBegin(t,o={}){if(!b.Schema.isSchemaInstance(this.current))return;const n={onSuccess:o.onSuccess},{wrap:l=ic,breakRemoveOn:i,removeParentsIfNoChildren:r}=o;if(b.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),r&&(n.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:i}))}else t&&(t=Go(t));const s={};let c=!1,d=0,u=0;this.current.parent.mapProperties((f,y)=>{y===this.current.name&&(u=d,c=!0,++d),f["x-index"]=d,++d,c&&(s[y]=f,this.current.parent.removeProperty(y))}),this.prepareProperty(t);const p=l(t),h=this.current.parent.addProperty(p.name||X.uid(),p);h["x-index"]=u,h.parent=this.current.parent,this.current.parent.setProperties(s);const[g,v]=ar(h,t);this.emit("insertAdjacent",x({position:"beforeBegin",schema:v,wrapped:p,wrap:g},n))}insertAfterBegin(t,o={}){if(!b.Schema.isSchemaInstance(this.current))return;const n={onSuccess:o.onSuccess},{wrap:l=ic,breakRemoveOn:i,removeParentsIfNoChildren:r}=o;if(b.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),r&&(n.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:i}))}else t&&(t=Go(t));const s={};let c=1;this.current.mapProperties((g,v)=>{g["x-index"]=c,++c,s[v]=g}),this.current.properties={},this.prepareProperty(t);const d=l(t),u=this.current.addProperty(d.name||X.uid(),d);u["x-index"]=0,u.parent=this.current,this.current.setProperties(s);const[p,h]=ar(u,t);this.emit("insertAdjacent",x({position:"afterBegin",schema:h,wrap:p,wrapped:d},n))}insertBeforeEnd(t,o={}){if(!b.Schema.isSchemaInstance(this.current))return;delete t["x-index"];const n={onSuccess:o.onSuccess},{wrap:l=ic,breakRemoveOn:i,removeParentsIfNoChildren:r}=o;if(b.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),r&&(n.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:i}))}else t&&(t=Go(t));this.prepareProperty(t);const s=l(t),c=this.current.addProperty(s.name||X.uid(),s);c.parent=this.current;const[d,u]=ar(c,t);return this.emit("insertAdjacent",x({position:"beforeEnd",schema:u,wrap:d,wrapped:s},n))}insertAfterEnd(t,o={}){if(!b.Schema.isSchemaInstance(this.current))return;const n={onSuccess:o==null?void 0:o.onSuccess},{wrap:l=ic,breakRemoveOn:i,removeParentsIfNoChildren:r}=o;let s=0,c=0,d=!1;const u={};if(this.current.parent.mapProperties((f,y)=>{f["x-index"]=s,y===this.current.name&&(++s,c=s,d=!0),++s,d&&y!==this.current.name&&(u[y]=f,this.current.parent.removeProperty(y))}),b.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),r&&(n.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:i})),t.parent=null}else t&&(t=Go(t));this.prepareProperty(t);const p=l(t),h=this.current.parent.addProperty(p.name||X.uid(),p);h.parent=this.current.parent,h["x-index"]=c,this.current.parent.setProperties(u);const[g,v]=ar(h,t);this.emit("insertAdjacent",x({position:"afterEnd",schema:v,wrap:g,wrapped:p},n))}}function Pd(){const e=m.useContext(b.SchemaOptionsContext),t=m.useMemo(()=>(e==null?void 0:e.components)||{},[e]);return o=>{if(!o)return null;if(typeof o!="string")return o;const n=di(t,o);return n||console.error(`[nocobase]: Component "${o}" not found`),n}}function G(){const{designable:e,setDesignable:t,refresh:o,reset:n}=m.useContext(yt),l=m.useContext(b.SchemaOptionsContext),i=m.useMemo(()=>(l==null?void 0:l.components)||{},[l]),r=m.useMemo(()=>()=>a.jsx(a.Fragment,{}),[]),s=bt.useUpdate(),c=Ki(),d=Fs(),u=m.useCallback(S=>{o==null||o(),s(),c==null||c(S),d==null||d()},[o,s,c,d]),p=b.useField(),h=b.useFieldSchema(),g=Pe(),{t:v}=V.useTranslation(),f=m.useMemo(()=>Yo({t:v,api:g,refresh:u,current:h,model:p,appVersion:tM.version}),[v,g,u,h,p]);m.useEffect(()=>{f.loadAPIClientEvents()},[f]);const{isMobileLayout:y}=Jt();return{dn:f,designable:y?!1:e,reset:n,refresh:u,setDesignable:t,DesignableBar:r,findComponent:m.useCallback(S=>{var C;if(!S)return null;if(typeof S!="string")return S;const k=di(i,S);return(C=k==null?void 0:k[sm])!=null?C:k},[di]),on:f.on.bind(f),patch:m.useCallback((S,C)=>{const k=F=>{Object.keys(F).forEach(P=>{const w=F[P];P==="title"&&(p.title=w,h.title=w),P==="x-decorator-props"&&(p.decoratorProps||(p.decoratorProps={}),h["x-decorator-props"]||(h["x-decorator-props"]={}),Object.keys(w).forEach(A=>{p.decoratorProps[A]=w[A],h["x-decorator-props"][A]=w[A]})),P==="x-component-props"&&(p.componentProps||(p.componentProps={}),h["x-component-props"]||(h["x-component-props"]={}),Object.keys(w).forEach(A=>{p.componentProps[A]=w[A],h["x-component-props"][A]=w[A]}))})};if(typeof S=="string"){const F={};return Xp(F,S,C),k(F)}k(S),u()},[f]),shallowMerge:m.useCallback(S=>{f.shallowMerge(S)},[f]),deepMerge:m.useCallback(S=>{f.deepMerge(S)},[f]),remove:m.useCallback((S,C)=>{f.remove(S,C)},[f]),insertAdjacent:m.useCallback((S,C,k)=>{f.insertAdjacent(S,C,k)},[f]),insertBeforeBegin:m.useCallback(S=>{f.insertBeforeBegin(S)},[f]),insertAfterBegin:m.useCallback(S=>{f.insertAfterBegin(S)},[f]),insertBeforeEnd:m.useCallback(S=>{f.insertBeforeEnd(S)},[f]),insertAfterEnd:m.useCallback(S=>{f.insertAfterEnd(S)},[f])}}const cm=()=>null;cm.isNullComponent=!0;const Ko=()=>{const{designable:e}=G(),t=b.useFieldSchema(),o=m.useMemo(()=>t["x-designer"]||t["x-toolbar"]?t["x-designer"]||t["x-toolbar"]:t["x-settings"]?nn:cm,[t]),n=ko(o);return e&&n||cm},Wy=e=>{const t=m.useContext(b.SchemaOptionsContext),o=m.useContext(b.SchemaExpressionScopeContext),n=m.useRef();return n.current=o,e.toFieldProps(I(x({},t),{get scope(){return x(x({},t.scope),n.current)}}))};function ji(){return m.useContext(yt)}const yh=()=>{var e;const{getCollectionJoinField:t,getCollection:o}=le(),n=b.useFieldSchema(),{getField:l}=re(),i=l(n.name)||t(n["x-collection-field"]),{t:r}=V.useTranslation(),{label:s}=((e=n["x-component-props"])==null?void 0:e.fieldNames)||{};return m.useMemo(()=>{if(!i||!(i!=null&&i.interface)||!["o2o","oho","obo","o2m","linkTo","m2o","m2m"].includes(i.interface))return;const c=o(i.target);if((c==null?void 0:c.template)==="file")return[{label:r("Record picker"),value:"CollectionField"},{label:r("Select"),value:"AssociationSelect"}];switch(i.interface){case"o2m":return[{label:r("Record picker"),value:"CollectionField"},{label:r("Subtable"),value:"TableField"},{label:r("Select"),value:"AssociationSelect"}];case"m2o":case"m2m":case"linkTo":return[{label:r("Record picker"),value:"CollectionField"},{label:r("Select"),value:"AssociationSelect"}];default:return[{label:r("Record picker"),value:"CollectionField"},{label:r("Subform"),value:"FormField"},{label:r("Select"),value:"AssociationSelect"}]}},[r,i==null?void 0:i.interface,s])},jd=()=>{var e;const t=b.useField(),o=b.useFieldSchema(),n=he(),l=Ue(),i=(n==null?void 0:n.getField(o.name))||(l==null?void 0:l.getCollectionField(o["x-collection-field"])),r=ae();m.useEffect(()=>{var s;t!=null&&t.title||(t.title=r((s=i==null?void 0:i.uiSchema)==null?void 0:s.title))},[(e=i==null?void 0:i.uiSchema)==null?void 0:e.title])},vf=()=>({}),Kt=(e={})=>{const t=e,{useProps:o=vf}=t,n=ne(t,["useProps"]);let l=o;typeof o!="function"&&(l=vf);const i=l();return x(x({},n),i)};function Rl({filterOption:e,onFilterChange:t}){const{parseFilter:o,findVariable:n}=PE(),[l,i]=m.useState({}),[r,s]=m.useState(!!e);return m.useEffect(()=>{if(!e)return;const c=()=>O(this,null,function*(){s(!0);const u=yield o(e);s(!1),i(u),t==null||t(u)});c();const d=z.debounce(c,Ry);rt.reaction(()=>te.flatten(e,{breakOn({key:u}){return u.startsWith("$")&&u!=="$and"&&u!=="$or"},transformValue(u){if(!it(u))return u;const p=bd(u),h=n(p);let g=null;const v=fd(u).split(".");return v.forEach((f,y)=>{const S=v.slice(0,y+1).join("."),C=te.getValuesByPath({[p]:(h==null?void 0:h.ctx)||{}},S);z.isEmpty(C)||(g=C)}),g}}),d,{equals:z.isEqual})},[JSON.stringify(e),o,n]),{filter:l,parseVariableLoading:r}}const _a=e=>{const t=It();if(e)return t},lM=e=>{var t;const{params:o,parseVariableLoading:n}=Yy(e),l=_a(e.association),i=(t=Ct().getDataSource(e.dataSource))==null?void 0:t.collectionManager.getCollection(e.collection);return{params:o,parentRecord:l,parseVariableLoading:n,rowKey:(i==null?void 0:i.filterTargetKey)||"id"}};function Yy(e){var t;const o=b.useFieldSchema(),{filter:n,parseVariableLoading:l}=Rl({filterOption:(t=e.params)==null?void 0:t.filter});return{params:m.useMemo(()=>{const i=e.params||{},{dragSortBy:r}=(o==null?void 0:o["x-decorator-props"])||{};return e.dragSort&&r&&(i.sort=r),I(x({},i),{filter:n})},[o,n,e.dragSort,e.params]),parseVariableLoading:l}}const Jy="__isNewRecord__",Sh=e=>rt.untracked(()=>!!(e!=null&&e[Jy])),Gn=e=>{if(!z.isObject(e))throw new Error("markRecordAsNew: record must be an object");return e[Jy]=!0,e},iM=()=>{var e;return!!((e=En())!=null&&e.loading)},Ka=(e,t)=>{const{useLoading:o=iM,displayName:n,SkeletonComponent:l=j.Skeleton}=t||{},i=m.memo(r=>{const s=o(),c=m.useRef(!1),d=m.useDeferredValue(s);return!c.current&&d?a.jsx(l,{}):(c.current=!0,a.jsx(e,x({},r)))});return i.displayName=n||`${e.displayName}(withSkeletonComponent)`||`${e.name}(withSkeletonComponent)`,i},rM=(e,t)=>{const o=n=>(n==null?void 0:n.mode)==="constant"?n.value:null;switch(!0){case[me.Color,me.BackgroundColor,me.TextAlign,me.FontSize,me.FontWeight,me.FontStyle].includes(e):return o(t);default:return null}},aM=(e,t)=>O(void 0,[e,t],function*({rules:o,variables:n,localVariables:l},i){return(yield Promise.all(o.filter(r=>!r.disabled).map(r=>O(void 0,null,function*(){return(yield fo({ruleGroup:r.condition,variables:n,localVariables:l,conditionType:r.conditionType},i))?r:null})))).filter(Boolean).map(r=>r.actions).flat()}),sM=(e,t)=>O(void 0,[e,t],function*({rules:o,variables:n,localVariables:l},i){return(yield aM({rules:o,variables:n,localVariables:l},i)).map(r=>I(x({},r),{value:rM(r.operator,r.value)}))}),cM=(e,t)=>O(void 0,[e,t],function*({rules:o,variables:n,localVariables:l},i){return(yield sM({rules:o,variables:n,localVariables:l},i)).reduce((r,s)=>I(x({},r),{[s.operator]:s.value}),{})});function Ch({formValues:e,category:t="default",rules:o,schema:n,form:l}){const[i,r]=m.useState({}),s=b.useFieldSchema(),c=lt(),d=pt({currentForm:{values:e}}),u=n??s,p=o??(u[jc[t]]||(u==null?void 0:u.parent[jc[t]])),h=nt(),g=m.useCallback(()=>{p&&e&&cM({rules:p,variables:c,localVariables:d},h.jsonLogic).then(v=>{z.isEmpty(v)?r({}):r(v)}).catch(v=>{throw new Error(v.message)})},[c,d,p,e]);return m.useEffect(()=>{if(g(),l){const v=X.uid();return l.addEffects(v,()=>{De.onFormValuesChange(()=>{g()})}),()=>{l.removeEffects(v)}}},[l,g,e]),{valueMap:i}}const Xy=m.memo(({record:e,schema:t,onStyleChange:o})=>{const{valueMap:n}=Ch({formValues:e,category:"style",schema:t});return m.useEffect(()=>{o(n)},[o,n]),null});Xy.displayName="GetStyleRules";const dM={opacity:.5},uM={position:"relative"},pM={display:"flex",alignItems:"center",justifyContent:"center",position:"absolute",left:0,right:0,height:"100%",maxHeight:400,zIndex:1e3},mM={display:"none"},hM=m.memo(e=>a.jsxs("div",{style:uM,children:[a.jsx(j.Spin,I(x({},z.omit(e,"children")),{style:e.spinning?pM:mM})),a.jsx("div",{style:e.spinning?dM:null,children:e.children})]}));var Ar=(e=>(e[e.FORM=0]="FORM",e[e.TABLE=1]="TABLE",e[e.TREE=2]="TREE",e[e.COLLAPSE=3]="COLLAPSE",e))(Ar||{});const Wt=(e,t="$and")=>{const o=e.filter(n=>{if(n&&typeof n=="object"&&!Array.isArray(n))return Object.values(n).filter(l=>l!==void 0).length});return o.length===0?{}:o.length===1?o[0]:{[t]:o}},Qy=(e,t)=>{var o;return(o=t.associatedFields)==null?void 0:o.filter(n=>e==null?void 0:e.some(l=>l===n.target))},Zy=(e,t)=>{var o;return(o=t.foreignKeyFields)==null?void 0:o.filter(n=>e.fields.some(l=>l.type!=="belongsTo"&&l.foreignKey===n.name&&l.target===n.collectionName))},gM=e=>{const{getDataBlocks:t}=_l(),o=b.useFieldSchema(),n=he(),{getAllCollectionsInheritChain:l}=ny();if(e===0||e===3)return t().filter(i=>dm(i.collection,n));if(e===1||e===2)return t().filter(i=>{var r,s;return o["x-uid"]!==i.uid&&(dm(i.collection,n)||((r=Qy(l(n.name,n.dataSource),i))==null?void 0:r.length)||((s=Zy(n,i))==null?void 0:s.length))})},vM=(e,t,o,n)=>(e=te.flatten(e,{breakOn({value:l,path:i}){if(["$match","$notMatch","$anyOf","$noneOf","$childIn","$childNotIn","$dateBetween","$in","$notIn"].includes(t[i]))return!0;const r=o(`${n}.${i}`);if(["datetime","datetimeNoTz","date","unixTimestamp","createdAt","updatedAt"].includes(r==null?void 0:r.interface))return!0;if(r!=null&&r.target){if(Array.isArray(l))return!0;const s=r.targetKey||"id";if(l&&l[s]!=null)return!0}return!1}}),{$and:Object.keys(e).map(l=>{let i=z.get(e,l);const r=o(`${n}.${l}`);return r!=null&&r.target&&["hasOne","hasMany","belongsTo","belongsToMany","belongsToArray"].includes(r.type)&&(i=te.getValuesByPath(i,r.targetKey||"id"),l=`${l}.${r.targetKey||"id"}`,(r==null?void 0:r.interface)==="chinaRegion"&&(i=z.last(i))),!i&&i!==0&&i!==!1?null:{[l]:{[t[l]||"$eq"]:i}}}).filter(Boolean)}),Fh=()=>{var e;return((e=he())==null?void 0:e.fields.filter(t=>e0(t)))||[]},e0=e=>["o2o","oho","obo","m2o","createdBy","updatedBy","o2m","m2m","linkTo","chinaRegion","mbm"].includes(e==null?void 0:e.interface),dm=(e,t)=>e.name===t.name&&e.dataSource===t.dataSource,mr=e=>{for(;e;){if(e["x-filter-targets"])return e["x-decorator"]==="FilterFormBlockProvider";e=e.parent}return!1},Id=m.createContext({});Id.displayName="AssociationFieldContext";const Jn=e=>{const t=b.useFieldSchema(),{insertAfterBegin:o}=G(),{isMobileLayout:n}=Jt();return m.useCallback(l=>{n||t.reduceProperties((i,r)=>r["x-component"]==="AssociationField."+e?r:i,null)||o(Go(l))},[e,t,o,n])};function Ft(){return m.useContext(Id)}function kh(e){var t,o,n,l,i,r,s,c,d,u;const{action:p="list",service:h,useOriginalFilter:g}=e,v=b.useFieldSchema(),f=b.useField(),{getField:y}=re(),{getCollectionJoinField:S}=le(),C=qe(),{isNew:k}=ho()||{},F=(z.isString((n=(o=(t=v==null?void 0:v["x-component-props"])==null?void 0:t.service)==null?void 0:o.params)==null?void 0:n.filter)?(r=(i=(l=f.componentProps)==null?void 0:l.service)==null?void 0:i.params)==null?void 0:r.filter:(d=(c=(s=v==null?void 0:v["x-component-props"])==null?void 0:s.service)==null?void 0:c.params)==null?void 0:d.filter)||((u=h==null?void 0:h.params)==null?void 0:u.filter),{filter:P}=Rl({filterOption:F,onFilterChange:()=>{k&&f.reset()}}),w=m.useMemo(()=>y(v.name)||S(v==null?void 0:v["x-collection-field"]),[v]),A=C==null?void 0:C[w==null?void 0:w.sourceKey],N=m.useMemo(()=>{const R=["oho","o2m"].includes(w==null?void 0:w.interface);return Wt([Wt([R&&!mr(v)&&w!=null&&w.foreignKey&&!g?{[w.foreignKey]:{$is:null}}:null,P]),R&&A!==void 0&&A!==null&&!mr(v)&&w!=null&&w.foreignKey&&!g?{[w.foreignKey]:{$eq:A}}:null],"$or")},[w==null?void 0:w.interface,w==null?void 0:w.foreignKey,v,P,A,g]);return m.useMemo(()=>I(x({resource:w==null?void 0:w.target,action:p},h),{params:I(x({},h==null?void 0:h.params),{filter:N})}),[w==null?void 0:w.target,p,N,h])}const Nr=(e={})=>{var t,o,n,l,i;const r=b.useFieldSchema(),s=((l=(n=(o=(t=r["x-component-props"])==null?void 0:t.field)==null?void 0:o.uiSchema)==null?void 0:n["x-component-props"])==null?void 0:l.fieldNames)||((i=r["x-component-props"])==null?void 0:i.fieldNames)||e.fieldNames;return x({label:"label",value:"value"},s)},Tc=m.createContext(null);Tc.displayName="SubFormContext";const Ii=e=>{const t=m.useContext(Tc),{value:o,collection:n,fieldSchema:l,parent:i,skip:r}=e.value,s=m.useMemo(()=>z.omitBy({value:o,collection:n,fieldSchema:l,skip:r,parent:i||(t!=null&&t.skip?t.parent:t)},z.isUndefined),[o,n,l,r,i,t]);return a.jsx(Tc.Provider,{value:s,children:e.children})},Rr=()=>{const{value:e,collection:t,fieldSchema:o,parent:n}=m.useContext(Tc)||{};return{formValue:e,collection:t,fieldSchema:o,parent:n}},Ha=e=>{const{t}=V.useTranslation(),o=`nocobase_table_column_settings_${e}`,n=m.useCallback(()=>{try{const r=localStorage.getItem(o);return r?JSON.parse(r):null}catch(r){return console.warn("Failed to parse table column settings from localStorage:",r),null}},[o]),l=m.useCallback(r=>{try{const s=JSON.stringify(r);localStorage.setItem(o,s);const c=new CustomEvent("nocobase-table-settings-changed",{detail:{key:o,tableId:e,settings:r}});window.dispatchEvent(c)}catch(s){console.warn("Failed to save table column settings to localStorage:",s),j.message.error(t("Failed to save table settings"))}},[o,e,t]),i=m.useCallback(()=>{try{localStorage.removeItem(o);const r=new CustomEvent("nocobase-table-settings-changed",{detail:{key:o,tableId:e,settings:null}});window.dispatchEvent(r)}catch(r){console.warn("Failed to clear table column settings from localStorage:",r),j.message.error(t("Failed to clear table settings"))}},[o,e,t]);return{getSettings:n,saveSettings:l,clearSettings:i}},Td=(e,t=!0)=>{const o=b.useFieldSchema(),n=(o==null?void 0:o["x-uid"])||"default",{getSettings:l}=Ha(n),[i,r]=m.useState(0);m.useEffect(()=>{const c=d=>{const{key:u,tableId:p}=d.detail;(u.includes(n)||p===n)&&r(h=>h+1)};return window.addEventListener("nocobase-table-settings-changed",c),()=>{window.removeEventListener("nocobase-table-settings-changed",c)}},[n]);const s=m.useMemo(()=>l(),[l,i]);return{columns:m.useMemo(()=>{if(!t||!s||s.length===0)return e;const c=new Map;s.forEach(g=>{c.set(g.key,g)});const d=e.map(g=>{const v=c.get(g.key);if(v){const f=g.columnHidden||!v.visible,y=v.width||g.width,S=v.fixed||g.fixed;return I(x({},g),{columnHidden:f,fixed:S,width:y,_orderIndex:v.order})}return g}),u=[],p=[];d.forEach(g=>{g._orderIndex!==void 0?u.push(g):p.push(g)}),u.sort((g,v)=>(g._orderIndex||0)-(v._orderIndex||0));const h=[...u,...p];return h.forEach(g=>{delete g._orderIndex}),h},[e,s])}},xM=({rows:e=5,columns:t=6})=>{const{token:o}=dt(),n=o.controlHeight*2.06,l=o.controlHeight*1.75,i=m.useMemo(()=>Q.css`
|
|
65
65
|
&.skeleton-wrapper {
|
|
66
66
|
width: 100%;
|
|
67
67
|
background: ${o.colorBgContainer};
|
package/lib/index.js
CHANGED
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
width: 100%;
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
|
-
`,items:a},n))})},SchemaInitializerSubMenu=e=>{var t;const o=e,{children:r,items:i,title:n,name:l,onOpenChange:a,icon:c}=o,u=W(o,["children","items","title","name","onOpenChange","icon"]),d=useCompile(),m=useSchemaInitializerItem(),p=(0,import_react2.useMemo)(()=>l||(m==null?void 0:m.name)||(0,import_shared.uid)(),[l,m]),h=(t=i||r)==null?void 0:t.filter(_=>_.useVisible?_.useVisible():!0),g=useSchemaInitializerMenuItems(h,l),x=(0,import_react2.useMemo)(()=>[I(f({},u),{key:p,label:d(n),icon:typeof c=="string"?(0,import_jsx_runtime.jsx)(import_icons.default,{type:c}):c,children:g})],[g,d,c,p,u,n]);return(0,import_jsx_runtime.jsx)(SchemaInitializerMenu,{onOpenChange:a,items:x})},SchemaInitializerSubMenuInternal=()=>{const e=useSchemaInitializerItem();return(0,import_jsx_runtime.jsx)(SchemaInitializerSubMenu,f({},e))},useAriaAttributeOfMenuItem=()=>{const{isInMenu:e}=useSchemaInitializerSubMenuContext();return{attribute:(0,import_react2.useMemo)(()=>e?{}:{role:"menuitem"},[e])}},{Paragraph:Paragraph$1,Text:Text$2}=import_antd.Typography,ErrorFallbackModal=e=>{const[t,o]=import_react2.default.useState(!1),r=(0,import_jsx_runtime.jsx)(Paragraph$1,{style:{display:"flex",marginBottom:0},copyable:{text:e.error.message},children:(0,import_jsx_runtime.jsxs)(Text$2,{type:"danger",style:{whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden",display:"inline-block",maxWidth:"200px"},children:["Error: ",e.error.message]})});return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)("div",{onMouseOver:()=>o(!0),children:e.children||r}),(0,import_jsx_runtime.jsx)(import_antd.Modal,{zIndex:1e4,open:t,footer:null,onCancel:()=>o(!1),width:"60%",children:(0,import_jsx_runtime.jsx)(ErrorFallback,f({},e))})]})},{Paragraph,Text:Text$1,Link}=import_antd.Typography,useDownloadLogs=(e,t={})=>{const o=useLocationNoUpdate(),[r,i]=import_react2.default.useState(!1),n=useAPIClient();return{loading:r,download:()=>O(void 0,null,function*(){i(!0);try{const l=yield n.request({url:"logger:collect",method:"post",responseType:"blob",data:f({error:{message:e.message,stack:e.stack},location:o},t)}),a=window.URL.createObjectURL(new Blob([l.data],{type:"application/gzip"})),c=document.createElement("a");c.setAttribute("href",a),c.setAttribute("download","logs.tar.gz"),c.click(),c.remove()}catch(l){console.log(l)}i(!1)})}},ErrorFallback=({error:e})=>{const t=(0,import_react.useFieldSchema)(),{t:o}=(0,import_react_i18next.useTranslation)(),{loading:r,download:i}=useDownloadLogs(e,{schema:t}),n=(0,import_jsx_runtime.jsxs)(import_react_i18next.Trans,{children:["This is likely a NocoBase internals bug. Please open an issue at ",(0,import_jsx_runtime.jsx)(Link,{href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:"here"})]});return(0,import_jsx_runtime.jsx)("div",{style:{backgroundColor:"white"},children:(0,import_jsx_runtime.jsx)(import_antd.Result,{style:{maxWidth:"60vw",margin:"auto"},status:"error",title:o("Render Failed"),subTitle:n,extra:[(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"primary",href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:o("Feedback")},"feedback"),(0,import_jsx_runtime.jsx)(import_antd.Button,{loading:r,onClick:i,children:o("Download logs")},"log")],children:(0,import_jsx_runtime.jsx)(Paragraph,{copyable:{text:e.stack},children:(0,import_jsx_runtime.jsx)(Text$1,{type:"danger",style:{whiteSpace:"pre-line",textAlign:"center"},children:e.stack})})})})};ErrorFallback.Modal=ErrorFallbackModal;const AppNotFound=()=>{const e=(0,import_react_router_dom.useNavigate)(),{t}=(0,import_react_i18next.useTranslation)();return(0,import_jsx_runtime.jsx)(import_antd.Result,{status:"404",title:"404",subTitle:t("Sorry, the page you visited does not exist."),extra:(0,import_jsx_runtime.jsx)(import_antd.Button,{onClick:()=>e("/",{replace:!0}),type:"primary",children:"Back Home"})})};class Plugin{constructor(t,o){this.options=t,this.app=o,this.options=t,this.app=o}get pluginManager(){return this.app.pluginManager}get context(){return this.app.context}get flowEngine(){return this.app.flowEngine}get engine(){return this.app.flowEngine}get pm(){return this.app.pm}get router(){return this.app.router}get pluginSettingsManager(){return this.app.pluginSettingsManager}get pluginSettingsRouter(){return this.app.pluginSettingsManager}get schemaInitializerManager(){return this.app.schemaInitializerManager}get schemaSettingsManager(){return this.app.schemaSettingsManager}get dataSourceManager(){return this.app.dataSourceManager}afterAdd(){return O(this,null,function*(){})}beforeLoad(){return O(this,null,function*(){})}load(){return O(this,null,function*(){})}t(t,o={}){var r;return this.app.i18n.t(t,f({ns:(r=this.options)==null?void 0:r.packageName},o))}}const titleWrapperStyle={display:"flex",alignItems:"center",gap:4},withTooltipComponent=e=>t=>{const{tooltip:o}=t;return o?(0,import_jsx_runtime.jsxs)("div",{style:titleWrapperStyle,children:[(0,import_jsx_runtime.jsx)(e,f({},t)),(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:o,children:(0,import_jsx_runtime.jsx)(import_icons.QuestionCircleOutlined,{style:{zIndex:1}})})]}):(0,import_jsx_runtime.jsx)(e,f({},t))},{evaluate}=import_client4.evaluators.get("formula.js"),useEvaluatedExpression=e=>{const t=useVariables$1(),o=useLocalVariables$1(),[r,i]=(0,import_react2.useState)();return(0,import_react2.useEffect)(()=>{O(void 0,null,function*(){if(e==null||e===""){i(void 0);return}const{exp:n,scope:l}=yield replaceVariables(e,{variables:t,localVariables:o});try{const a=evaluate(n,f({now:()=>new Date().toString()},l));i(a)}catch(a){console.error(a)}})},[t.parseVariable,e,o]),r};class SchemaInitializer{constructor(t){k(this,"options"),k(this,"name"),this.options=Object.assign({items:[]},t),this.name=t.name}get items(){return this.options.items}add(t,o){const r=t.split("."),i=r[r.length-1],n=I(f({},o),{name:i}),l=(u,d)=>{const m=this.items.findIndex(p=>p.name===u);m===-1?this.items.push(d):this.items[m]=d};if(r.length===1){l(i,n);return}const a=r.slice(0,-1).join("."),c=this.get(a);if(c){c.children||(c.children=[]);const u=t.replace(`${c.name}.`,""),d=c.children.findIndex(m=>m.name===u);d===-1?c.children.push(n):c.children[d]=n}else l(i,n)}get(t){var o;if(!t)return;const r=t.split(".");let i={children:this.items};for(let n=0;n<r.length;n++){const l=r[n],a=(o=i.children)==null?void 0:o.find(c=>c.name===l);if(a&&(i=a),n===r.length-1)return a}}remove(t){const o=t.split(".");if(o.length===1){const i=this.items.findIndex(n=>n.name===o[0]);i!==-1&&this.items.splice(i,1);return}const r=this.get(o.slice(0,-1).join("."));if(r&&r.children){const i=o[o.length-1],n=r.children.findIndex(l=>l.name===i);n!==-1&&r.children.splice(n,1)}}}var NocoBaseDesktopRouteType=(e=>(e.group="group",e.page="page",e.flowRoute="flowRoute",e.link="link",e.tabs="tabs",e.flowPage="flowPage",e))(NocoBaseDesktopRouteType||{});const useStyles$h=genStyleHook("nb-menu-item",e=>{const{componentCls:t}=e;return{[t]:{paddingLeft:`${e.padding}px !important`,paddingRight:`${e.padding}px !important`}}}),useInsertFlowPageSchema=()=>{const e=useAPIClient();return(0,import_react2.useCallback)(t=>O(void 0,null,function*(){yield e.request({method:"POST",url:"/uiSchemas:insert",data:t})}),[e])},FlowPageMenuItem=()=>{const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),{theme:o}=useGlobalTheme(),{componentCls:r,hashId:i}=useStyles$h(),n=useParentRoute(),{createRoute:l}=useNocoBaseRoutes(),a=useInsertFlowPageSchema(),c=(0,import_react2.useCallback)(()=>O(void 0,null,function*(){const u=yield FormDialog(e("Add page"),()=>(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{scope:t.scope,components:f({},t.components),children:(0,import_jsx_runtime.jsx)(import_antd_v5.FormLayout,{layout:"vertical",children:(0,import_jsx_runtime.jsx)(zIndexContext.Provider,{value:ICON_POPUP_Z_INDEX,children:(0,import_jsx_runtime.jsx)(SchemaComponent,{schema:{properties:{title:{title:e("Menu item title"),required:!0,"x-component":"Input","x-decorator":"FormItem"},icon:{title:e("Icon"),"x-component":"IconPicker","x-decorator":"FormItem"}}}})})})}),o).open({initialValues:{}}),d=(0,import_shared.uid)(),m=(0,import_shared.uid)(),p=(0,import_shared.uid)(),h=(0,import_shared.uid)();yield l({type:NocoBaseDesktopRouteType.page,title:u.title,icon:u.icon,parentId:n==null?void 0:n.id,schemaUid:m,menuSchemaUid:d,enableTabs:!1,children:[{type:NocoBaseDesktopRouteType.tabs,schemaUid:p,tabSchemaName:h,hidden:!0}]}),a(getFlowPageMenuSchema({pageSchemaUid:m,tabSchemaUid:p,tabSchemaName:h}))}),[l,a,t==null?void 0:t.components,t==null?void 0:t.scope,n==null?void 0:n.id,e,o]);return(0,import_jsx_runtime.jsx)(SchemaInitializerItem,{title:e("Modern page (v2)"),onClick:c,className:`${r} ${i}`})};function getFlowPageMenuSchema({pageSchemaUid:e,tabSchemaUid:t,tabSchemaName:o}){return{type:"void","x-component":"FlowRoute","x-uid":e}}const GroupItem$1=()=>{const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),{theme:o}=useGlobalTheme(),{componentCls:r,hashId:i}=useStyles$h(),n=useParentRoute(),{createRoute:l}=useNocoBaseRoutes(),a=(0,import_react2.useCallback)(()=>O(void 0,null,function*(){const c=yield FormDialog(e("Add group"),()=>(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{scope:t.scope,components:f({},t.components),children:(0,import_jsx_runtime.jsx)(import_antd_v5.FormLayout,{layout:"vertical",children:(0,import_jsx_runtime.jsx)(zIndexContext.Provider,{value:ICON_POPUP_Z_INDEX,children:(0,import_jsx_runtime.jsx)(SchemaComponent,{schema:{properties:{title:{title:e("Menu item title"),"x-component":"Input","x-decorator":"FormItem",required:!0},icon:{title:e("Icon"),"x-component":"IconPicker","x-decorator":"FormItem"}}}})})})}),o).open({initialValues:{}}),{title:u,icon:d}=c,m=(0,import_shared.uid)();yield l({type:NocoBaseDesktopRouteType.group,title:u,icon:d,parentId:n==null?void 0:n.id,schemaUid:m})}),[t.components,t.scope,e,o]);return(0,import_jsx_runtime.jsx)(SchemaInitializerItem,{title:e("Group"),onClick:a,className:`${r} ${i}`})},useAttach=e=>{const t=(0,import_react2.useRef)(null);return(0,import_react2.useEffect)(()=>(t.current&&e!==t.current&&t.current.onUnmount(),t.current=e,e.onMount(),()=>{e.onUnmount()}),[e]),e},compileCache={},hasVariable=e=>/{{.*?}}/g.test(e),useCompile=({noCache:e}={noCache:!1})=>{const t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),o=(0,import_react2.useContext)(import_react.SchemaExpressionScopeContext);return(r,i)=>{let n=!1,l;if(typeof r=="string"&&r.startsWith("{{")&&(n=!0,l=r),r&&typeof r=="object"&&!(0,import_react2.isValidElement)(r)){try{l=JSON.stringify(r)}catch(a){return console.warn("Failed to stringify:",a),r}if(compileCache[l])return compileCache[l];n=hasVariable(l)}if(Array.isArray(r)){try{l=JSON.stringify(r)}catch(a){return console.warn("Failed to stringify:",a),r}if(compileCache[l])return compileCache[l];n=hasVariable(l)}if(n){const a=f(f(f({},t==null?void 0:t.scope),o),i);if(!l)return import_react.Schema.compile(r,a);try{return e?import_react.Schema.compile(r,a):(compileCache[l]=compileCache[l]||import_react.Schema.compile(r,a),compileCache[l])}catch(c){return console.log("useCompile error",r,c),import_react.Schema.compile(r,a)}}return r}},useComponent=(e,t)=>{const{components:o}=(0,import_react2.useContext)(import_react.SchemaOptionsContext);return e?typeof e!="string"?e:(0,import_lodash.get)(o,e)||t:t},LAZY_COMPONENT_KEY=Symbol("LAZY_COMPONENT_KEY");function lazy(e,...t){if(t.length===0){const o=(0,import_react2.lazy)(()=>e().then(i=>{const n=i.default;return r[LAZY_COMPONENT_KEY]=n,{default:n}})),r=i=>(0,import_jsx_runtime.jsx)(import_react2.default.Suspense,{fallback:(0,import_jsx_runtime.jsx)(import_antd.Spin,{}),children:(0,import_jsx_runtime.jsx)(o,f({},i))});return r}return t.reduce((o,r)=>{const i=(0,import_react2.lazy)(()=>e().then(n=>{const l=(0,import_lodash.get)(n,r);return o[r][LAZY_COMPONENT_KEY]=l,{default:l}}));return o[r]=n=>(0,import_jsx_runtime.jsx)(import_react2.default.Suspense,{fallback:(0,import_jsx_runtime.jsx)(import_antd.Spin,{}),children:(0,import_jsx_runtime.jsx)(i,f({},n))}),o},{})}function useLazy(e,t){const o=typeof t=="function"?t:i=>i[t],r=(0,import_react_imported_component.loadableResource)(e);if(!r.payload)throw new Promise((i,n)=>{r.loadIfNeeded(),r.resolution.then(i).catch(n)});return o(r.payload)}function addAppVersion(e,t){if(e)return e["x-app-version"]||(e["x-app-version"]=t),Object.keys(e.properties||{}).forEach(o=>{var r;addAppVersion((r=e.properties)==null?void 0:r[o],t)}),e}const name="@nocobase/client",version="2.0.0-alpha.10",license="AGPL-3.0",main="lib/index.js",module$1="es/index.mjs",types="es/index.d.ts",dependencies={"@ahooksjs/use-url-state":"3.5.1","@ant-design/cssinjs":"^1.11.1","@ant-design/icons":"^5.6.1","@ant-design/pro-layout":"^7.22.1","@antv/g2plot":"^2.4.18","@budibase/handlebars-helpers":"0.14.0","@codemirror/lang-html":"^6.4.10","@codemirror/theme-one-dark":"^6.1.3","@ctrl/tinycolor":"^3.6.0","@dnd-kit/core":"^6.0.0","@dnd-kit/sortable":"^7.0.0","@emotion/css":"^11.7.1","@formily/antd-v5":"1.2.3","@formily/core":"^2.2.27","@formily/grid":"^2.2.27","@formily/json-schema":"^2.2.27","@formily/path":"^2.2.27","@formily/react":"^2.2.27","@formily/reactive":"^2.2.27","@formily/reactive-react":"^2.2.27","@formily/shared":"^2.2.27","@formily/validator":"^2.2.27","@nocobase/evaluators":"2.0.0-alpha.10","@nocobase/flow-engine":"2.0.0-alpha.10","@nocobase/sdk":"2.0.0-alpha.10","@nocobase/utils":"2.0.0-alpha.10","@tanstack/react-table":"^8.21.3","@types/tabulator-tables":"^6.2.6",ahooks:"^3.7.2",antd:"5.24.2","antd-mobile":"^5.41.1","antd-mobile-icons":"^0.3.0","antd-style":"3.7.1",axios:"^1.7.0","bignumber.js":"^9.1.2",classnames:"^2.3.1",codemirror:"^6.0.2",cronstrue:"^2.11.0","file-saver":"^2.0.5",filesize:"9.0.11",flat:"^5.0.2","html5-qrcode":"^2.3.8",i18next:"^22.4.9","i18next-http-backend":"^2.1.1",ignore:"^5.2.0",json5:"^2.2.3",lodash:"4.17.21","lru-cache":"6.0.0","markdown-it":"14.1.0","markdown-it-highlightjs":"3.3.1",mathjs:"^10.6.0",mermaid:"9.4.3",mime:"^4.0.4","mime-match":"^1.0.2","react-beautiful-dnd":"^13.1.0","react-device-detect":"2.2.3","react-drag-listview":"^0.1.9","react-error-boundary":"^4.0.10","react-helmet":"^6.1.0","react-hotkeys-hook":"^3.4.7","react-i18next":"^11.15.1","react-iframe":"~1.8.5","react-image-lightbox":"^5.1.4","react-intersection-observer":"9.14.0","react-js-cron":"^3.1.0","react-quill":"^2.0.0","react-router-dom":"^6.30.1","react-to-print":"^2.14.7","sanitize-html":"2.13.0","tabulator-tables":"^6.3.1","use-deep-compare-effect":"^1.8.1"},peerDependencies={react:">=18.0.0","react-dom":">=18.0.0","react-is":">=18.0.0"},devDependencies={"@testing-library/react":"^14.0.0","@types/markdown-it":"14.1.1","@types/markdown-it-highlightjs":"3.3.1","@types/react-big-calendar":"^1.6.4","axios-mock-adapter":"^1.20.0",dumi:"2.2.14","dumi-theme-nocobase":"^0.2.32"},clientPkg={name,version,license,main,module:module$1,types,dependencies,peerDependencies,devDependencies};function createDesignable(e){return new Designable(e)}const generateUid=e=>{e&&(e["x-uid"]||(e["x-uid"]=(0,import_shared.uid)()),Object.keys(e.properties||{}).forEach(t=>{generateUid(e.properties[t])}))},defaultWrap=e=>e,matchSchema=(e,t)=>{if(!(!e||!t)){for(const o in t)if(Object.prototype.hasOwnProperty.call(t,o)&&t[o]!==(e==null?void 0:e[o]))return!1;return!0}},splitWrapSchema=(e,t)=>{if(e["x-uid"]&&e["x-uid"]===t["x-uid"])return[null,e.toJSON()];const o=e.toJSON(),r=I(f({},o),{properties:{}});let i=null;const n=(l,a)=>{Object.keys(l||{}).forEach(c=>{const u=l[c];if(u["x-uid"]===t["x-uid"]){i=l[c];return}else a.properties[c]=I(f({},u),{properties:{}}),n(u==null?void 0:u.properties,a.properties[c])})};return n(o.properties,r),[r,i]},translate=e=>e;class Designable{constructor(t){k(this,"current"),k(this,"options"),k(this,"appVersion"),k(this,"events",{}),this.options=t,this.current=t.current,this.appVersion=t.appVersion}get model(){return this.options.model}get query(){return this.options.query}loadAPIClientEvents(){const{api:t,t:o=translate}=this.options;if(!t)return;const r=i=>{if(!i)return[];const n=Object.values(i.properties).length,l=[];return i.mapProperties(a=>{a["x-component-props"]=a["x-component-props"]||{},a["x-component-props"].width=100/n,a["x-uid"]&&l.push({"x-uid":a["x-uid"],"x-component-props":a["x-component-props"]})}),i["x-uid"]&&l.length?l:[]};this.on("insertAdjacent",i=>O(this,[i],function*({onSuccess:n,current:l,position:a,schema:c,wrap:u,wrapped:d,removed:m}){var p;let h=[];if((d==null?void 0:d["x-component"])==="Grid.Col"&&(h=h.concat(r(d.parent))),(m==null?void 0:m["x-component"])==="Grid.Col"&&(h=h.concat(r(m.parent))),this.refresh(),!l["x-uid"])return;const g=yield t.request({url:`/uiSchemas:insertAdjacent/${l["x-uid"]}?position=${a}`,method:"post",data:{schema:addAppVersion(c,this.appVersion),wrap:u}});h.length&&(yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:h})),m!=null&&m["x-uid"]&&(yield t.request({url:`/uiSchemas:remove/${m["x-uid"]}`,method:"post"})),n==null||n((p=g==null?void 0:g.data)==null?void 0:p.data),import_antd.message.success(o("Saved successfully"),.2)})),this.on("patch",i=>O(this,[i],function*({schema:n}){this.refresh(),n!=null&&n["x-uid"]&&(yield t.request({url:"/uiSchemas:patch",method:"post",data:f({},n)}),import_antd.message.success(o("Saved successfully"),.2))})),this.on("initializeActionContext",i=>O(this,[i],function*({schema:n}){n!=null&&n["x-uid"]&&(yield t.request({url:"/uiSchemas:initializeActionContext",method:"post",data:f({},n)}))})),this.on("batchPatch",i=>O(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=>O(this,[i],function*({removed:n}){let l=[];(n==null?void 0:n["x-component"])==="Grid.Col"&&(l=r(n.parent)),this.refresh(),n!=null&&n["x-uid"]&&(yield t.request({url:`/uiSchemas:remove/${n["x-uid"]}`,method:"post"}),l.length&&(yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:l})),import_antd.message.success(o("Saved successfully"),.2))}))}prepareProperty(t){t.type||(t.type="void"),t.name||(t.name=(0,import_shared.uid)()),this.current["x-uid"]&&generateUid(t)}on(t,o){this.events[t]||(this.events[t]=[]),this.events[t].push(o)}emit(t,...o){return O(this,null,function*(){if(!this.events[t])return;const[r,...i]=o;return Promise.all(this.events[t].map(n=>n.bind(this)(f({current:this.current},r),...i)))})}parentsIn(t){if(!t||!import_react.Schema.isSchemaInstance(t))return!1;let o=this.current;for(;o!=null&&o.parent;){if(o.parent===t)return!0;o=o.parent}return!1}refresh(t){const{refresh:o}=this.options;return o==null?void 0:o(t)}deepMerge(t){const o={title:"title",description:"description",default:"initialValue",readOnly:"readOnly",writeOnly:"editable",enum:"dataSource","x-pattern":"pattern","x-display":"display","x-validator":"validator","x-decorator":"decorator","x-component":"component","x-reactions":"reactions","x-content":"content","x-visible":"visible","x-hidden":"hidden","x-disabled":"disabled","x-editable":"editable","x-read-only":"readOnly"},r={"x-decorator-props":"decoratorProps","x-component-props":"componentProps","x-data":"data"};Object.keys(t).forEach(i=>{o[i]?(this.current[i]=t[i],this.updateModel(o[i],t[i])):r[i]?Object.keys(t[i]).forEach(n=>{(0,import_set.default)(this.current,[i,n],t[i][n]),this.updateModel([r[i],n],t[i][n])}):this.current[i]=t[i]}),this.emit("patch",{schema:t})}getSchemaAttribute(t,o){return(0,import_get.default)(this.current,t,o)}shallowMerge(t){const o={title:"title",description:"description",default:"initialValue",readOnly:"readOnly",writeOnly:"editable",enum:"dataSource","x-pattern":"pattern","x-display":"display","x-validator":"validator","x-decorator":"decorator","x-component":"component","x-reactions":"reactions","x-content":"content","x-visible":"visible","x-hidden":"hidden","x-disabled":"disabled","x-editable":"editable","x-read-only":"readOnly","x-decorator-props":"decoratorProps","x-component-props":"componentProps","x-data":"data"};Object.keys(t).forEach(r=>{this.current[r]=t[r],o[r]&&this.updateModel(o[r],t[r])}),this.emit("patch",{schema:t})}updateModel(t,o){const r=i=>{(0,import_set.default)(i,t,o)};this.model&&r(this.model),this.query&&this.query.take(r)}insertAdjacent(t,o,r={}){switch(t){case"beforeBegin":return this.insertBeforeBegin(o,r);case"afterBegin":return this.insertAfterBegin(o,r);case"beforeEnd":return this.insertBeforeEnd(o,r);case"afterEnd":return this.insertAfterEnd(o,r)}}recursiveRemoveIfNoChildren(t,o){if(!t)return;let r=t,i;const n=o==null?void 0:o.breakRemoveOn;for(;r;){if(typeof n=="function"){if(n(r))break}else if(matchSchema(r,n))break;if(Object.keys(r.properties||{}).length>0)break;r.parent&&(i=r.parent.removeProperty(r.name)),r=r.parent}return i}remove(t,o={}){const{breakRemoveOn:r,removeParentsIfNoChildren:i}=o,n=t||this.current;let l=n.parent.removeProperty(n.name);if(i){const a=this.recursiveRemoveIfNoChildren(n.parent,{breakRemoveOn:r});a&&(l=a)}return this.emit("remove",{removed:l})}removeWithoutEmit(t,o={}){const{breakRemoveOn:r,removeParentsIfNoChildren:i}=o,n=t||this.current;let l=n.parent.removeProperty(n.name);if(i){const a=this.recursiveRemoveIfNoChildren(n.parent,{breakRemoveOn:r});a&&(l=a)}return l}insertBeforeBeginOrAfterEnd(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current)||!import_react.Schema.isSchemaInstance(t)||this.current.parent!==t.parent)return;let r=0,i=0;return this.current.parent.mapProperties((n,l,a)=>{this.current.name===l&&(i=a),t.name===l&&(r=a)}),r>i?this.insertBeforeBegin(t,o):this.insertAfterEnd(t,o)}insertBeforeBegin(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;const r={onSuccess:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren:l}=o;if(import_react.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),l&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n}))}else t&&(t=(0,import_cloneDeep.default)(t));const a={};let c=!1,u=0,d=0;this.current.parent.mapProperties((x,_)=>{_===this.current.name&&(d=u,c=!0,++u),x["x-index"]=u,++u,c&&(a[_]=x,this.current.parent.removeProperty(_))}),this.prepareProperty(t);const m=i(t),p=this.current.parent.addProperty(m.name||(0,import_shared.uid)(),m);p["x-index"]=d,p.parent=this.current.parent,this.current.parent.setProperties(a);const[h,g]=splitWrapSchema(p,t);this.emit("insertAdjacent",f({position:"beforeBegin",schema:g,wrapped:m,wrap:h},r))}insertAfterBegin(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;const r={onSuccess:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren:l}=o;if(import_react.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),l&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n}))}else t&&(t=(0,import_cloneDeep.default)(t));const a={};let c=1;this.current.mapProperties((h,g)=>{h["x-index"]=c,++c,a[g]=h}),this.current.properties={},this.prepareProperty(t);const u=i(t),d=this.current.addProperty(u.name||(0,import_shared.uid)(),u);d["x-index"]=0,d.parent=this.current,this.current.setProperties(a);const[m,p]=splitWrapSchema(d,t);this.emit("insertAdjacent",f({position:"afterBegin",schema:p,wrap:m,wrapped:u},r))}insertBeforeEnd(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;delete t["x-index"];const r={onSuccess:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren:l}=o;if(import_react.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),l&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n}))}else t&&(t=(0,import_cloneDeep.default)(t));this.prepareProperty(t);const a=i(t),c=this.current.addProperty(a.name||(0,import_shared.uid)(),a);c.parent=this.current;const[u,d]=splitWrapSchema(c,t);return this.emit("insertAdjacent",f({position:"beforeEnd",schema:d,wrap:u,wrapped:a},r))}insertAfterEnd(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;const r={onSuccess:o==null?void 0:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren:l}=o;let a=0,c=0,u=!1;const d={};if(this.current.parent.mapProperties((x,_)=>{x["x-index"]=a,_===this.current.name&&(++a,c=a,u=!0),++a,u&&_!==this.current.name&&(d[_]=x,this.current.parent.removeProperty(_))}),import_react.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),l&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n})),t.parent=null}else t&&(t=(0,import_cloneDeep.default)(t));this.prepareProperty(t);const m=i(t),p=this.current.parent.addProperty(m.name||(0,import_shared.uid)(),m);p.parent=this.current.parent,p["x-index"]=c,this.current.parent.setProperties(d);const[h,g]=splitWrapSchema(p,t);this.emit("insertAdjacent",f({position:"afterEnd",schema:g,wrap:h,wrapped:m},r))}}function useFindComponent(){const e=(0,import_react2.useContext)(import_react.SchemaOptionsContext),t=(0,import_react2.useMemo)(()=>(e==null?void 0:e.components)||{},[e]);return o=>{if(!o)return null;if(typeof o!="string")return o;const r=(0,import_get.default)(t,o);return r||console.error(`[nocobase]: Component "${o}" not found`),r}}function useDesignable(){const{designable:e,setDesignable:t,refresh:o,reset:r}=(0,import_react2.useContext)(SchemaComponentContext),i=(0,import_react2.useContext)(import_react.SchemaOptionsContext),n=(0,import_react2.useMemo)(()=>(i==null?void 0:i.components)||{},[i]),l=(0,import_react2.useMemo)(()=>()=>(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{}),[]),a=(0,import_ahooks.useUpdate)(),c=useRefreshFieldSchema(),u=useRefreshComponent(),d=(0,import_react2.useCallback)(v=>{o==null||o(),a(),c==null||c(v),u==null||u()},[o,a,c,u]),m=(0,import_react.useField)(),p=(0,import_react.useFieldSchema)(),h=useAPIClient(),{t:g}=(0,import_react_i18next.useTranslation)(),x=(0,import_react2.useMemo)(()=>createDesignable({t:g,api:h,refresh:d,current:p,model:m,appVersion:clientPkg.version}),[g,h,d,p,m]);(0,import_react2.useEffect)(()=>{x.loadAPIClientEvents()},[x]);const{isMobileLayout:_}=useMobileLayout();return{dn:x,designable:_?!1:e,reset:r,refresh:d,setDesignable:t,DesignableBar:l,findComponent:(0,import_react2.useCallback)(v=>{var b;if(!v)return null;if(typeof v!="string")return v;const y=(0,import_get.default)(n,v);return(b=y==null?void 0:y[LAZY_COMPONENT_KEY])!=null?b:y},[import_get.default]),on:x.on.bind(x),patch:(0,import_react2.useCallback)((v,b)=>{const y=C=>{Object.keys(C).forEach(F=>{const S=C[F];F==="title"&&(m.title=S,p.title=S),F==="x-decorator-props"&&(m.decoratorProps||(m.decoratorProps={}),p["x-decorator-props"]||(p["x-decorator-props"]={}),Object.keys(S).forEach(j=>{m.decoratorProps[j]=S[j],p["x-decorator-props"][j]=S[j]})),F==="x-component-props"&&(m.componentProps||(m.componentProps={}),p["x-component-props"]||(p["x-component-props"]={}),Object.keys(S).forEach(j=>{m.componentProps[j]=S[j],p["x-component-props"][j]=S[j]}))})};if(typeof v=="string"){const C={};return(0,import_set.default)(C,v,b),y(C)}y(v),d()},[x]),shallowMerge:(0,import_react2.useCallback)(v=>{x.shallowMerge(v)},[x]),deepMerge:(0,import_react2.useCallback)(v=>{x.deepMerge(v)},[x]),remove:(0,import_react2.useCallback)((v,b)=>{x.remove(v,b)},[x]),insertAdjacent:(0,import_react2.useCallback)((v,b,y)=>{x.insertAdjacent(v,b,y)},[x]),insertBeforeBegin:(0,import_react2.useCallback)(v=>{x.insertBeforeBegin(v)},[x]),insertAfterBegin:(0,import_react2.useCallback)(v=>{x.insertAfterBegin(v)},[x]),insertBeforeEnd:(0,import_react2.useCallback)(v=>{x.insertBeforeEnd(v)},[x]),insertAfterEnd:(0,import_react2.useCallback)(v=>{x.insertAfterEnd(v)},[x])}}const DefaultSchemaToolbar=()=>null;DefaultSchemaToolbar.isNullComponent=!0;const useDesigner=()=>{const{designable:e}=useDesignable(),t=(0,import_react.useFieldSchema)(),o=(0,import_react2.useMemo)(()=>t["x-designer"]||t["x-toolbar"]?t["x-designer"]||t["x-toolbar"]:t["x-settings"]?SchemaToolbar:DefaultSchemaToolbar,[t]),r=useComponent(o);return e&&r||DefaultSchemaToolbar},useFieldProps$1=e=>{const t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),o=(0,import_react2.useContext)(import_react.SchemaExpressionScopeContext),r=(0,import_react2.useRef)();return r.current=o,e.toFieldProps(I(f({},t),{get scope(){return f(f({},t.scope),r.current)}}))};function useSchemaComponentContext(){return(0,import_react2.useContext)(SchemaComponentContext)}const useFieldComponentOptions=()=>{var e;const{getCollectionJoinField:t,getCollection:o}=useCollectionManager_deprecated(),r=(0,import_react.useFieldSchema)(),{getField:i}=useCollection_deprecated(),n=i(r.name)||t(r["x-collection-field"]),{t:l}=(0,import_react_i18next.useTranslation)(),{label:a}=((e=r["x-component-props"])==null?void 0:e.fieldNames)||{};return(0,import_react2.useMemo)(()=>{if(!n||!(n!=null&&n.interface)||!["o2o","oho","obo","o2m","linkTo","m2o","m2m"].includes(n.interface))return;const c=o(n.target);if((c==null?void 0:c.template)==="file")return[{label:l("Record picker"),value:"CollectionField"},{label:l("Select"),value:"AssociationSelect"}];switch(n.interface){case"o2m":return[{label:l("Record picker"),value:"CollectionField"},{label:l("Subtable"),value:"TableField"},{label:l("Select"),value:"AssociationSelect"}];case"m2o":case"m2m":case"linkTo":return[{label:l("Record picker"),value:"CollectionField"},{label:l("Select"),value:"AssociationSelect"}];default:return[{label:l("Record picker"),value:"CollectionField"},{label:l("Subform"),value:"FormField"},{label:l("Select"),value:"AssociationSelect"}]}},[l,n==null?void 0:n.interface,a])},useFieldTitle=()=>{var e;const t=(0,import_react.useField)(),o=(0,import_react.useFieldSchema)(),r=useCollection(),i=useCollectionManager(),n=(r==null?void 0:r.getField(o.name))||(i==null?void 0:i.getCollectionField(o["x-collection-field"])),l=useCompile();(0,import_react2.useEffect)(()=>{var a;t!=null&&t.title||(t.title=l((a=n==null?void 0:n.uiSchema)==null?void 0:a.title))},[(e=n==null?void 0:n.uiSchema)==null?void 0:e.title])},useDef$4=()=>({}),useProps=(e={})=>{const t=e,{useProps:o=useDef$4}=t,r=W(t,["useProps"]);let i=o;typeof o!="function"&&(i=useDef$4);const n=i();return f(f({},r),n)};function useParsedFilter({filterOption:e,onFilterChange:t}){const{parseFilter:o,findVariable:r}=useParseDataScopeFilter(),[i,n]=(0,import_react2.useState)({}),[l,a]=(0,import_react2.useState)(!!e);return(0,import_react2.useEffect)(()=>{if(!e)return;const c=()=>O(this,null,function*(){a(!0);const d=yield o(e);a(!1),n(d),t==null||t(d)});c();const u=import_lodash.default.debounce(c,DEBOUNCE_WAIT);(0,import_reactive.reaction)(()=>(0,import_client.flatten)(e,{breakOn({key:d}){return d.startsWith("$")&&d!=="$and"&&d!=="$or"},transformValue(d){if(!isVariable$1(d))return d;const m=getVariableName(d),p=r(m);let h=null;const g=getPath(d).split(".");return g.forEach((x,_)=>{const v=g.slice(0,_+1).join("."),b=(0,import_client.getValuesByPath)({[m]:(p==null?void 0:p.ctx)||{}},v);import_lodash.default.isEmpty(b)||(h=b)}),h}}),u,{equals:import_lodash.default.isEqual})},[JSON.stringify(e),o,r]),{filter:i,parseVariableLoading:l}}const useParentRecordCommon=e=>{const t=useCollectionRecordData();if(e)return t},useTableBlockDecoratorProps=e=>{var t;const{params:o,parseVariableLoading:r}=useTableBlockParams(e),i=useParentRecordCommon(e.association),n=(t=useDataSourceManager().getDataSource(e.dataSource))==null?void 0:t.collectionManager.getCollection(e.collection);return{params:o,parentRecord:i,parseVariableLoading:r,rowKey:(n==null?void 0:n.filterTargetKey)||"id"}};function useTableBlockParams(e){var t;const o=(0,import_react.useFieldSchema)(),{filter:r,parseVariableLoading:i}=useParsedFilter({filterOption:(t=e.params)==null?void 0:t.filter});return{params:(0,import_react2.useMemo)(()=>{const n=e.params||{},{dragSortBy:l}=(o==null?void 0:o["x-decorator-props"])||{};return e.dragSort&&l&&(n.sort=l),I(f({},n),{filter:r})},[o,r,e.dragSort,e.params]),parseVariableLoading:i}}const key="__isNewRecord__",isNewRecord=e=>(0,import_reactive.untracked)(()=>!!(e!=null&&e[key])),markRecordAsNew=e=>{if(!(0,import_lodash.isObject)(e))throw new Error("markRecordAsNew: record must be an object");return e[key]=!0,e},useDefaultLoading=()=>{var e;return!!((e=useDataBlockRequest())!=null&&e.loading)},withSkeletonComponent=(e,t)=>{const{useLoading:o=useDefaultLoading,displayName:r,SkeletonComponent:i=import_antd.Skeleton}=t||{},n=import_react2.default.memo(l=>{const a=o(),c=(0,import_react2.useRef)(!1),u=(0,import_react2.useDeferredValue)(a);return!c.current&&u?(0,import_jsx_runtime.jsx)(i,{}):(c.current=!0,(0,import_jsx_runtime.jsx)(e,f({},l)))});return n.displayName=r||`${e.displayName}(withSkeletonComponent)`||`${e.name}(withSkeletonComponent)`,n},getActionValue=(e,t)=>{const o=r=>(r==null?void 0:r.mode)==="constant"?r.value:null;switch(!0){case[ActionType.Color,ActionType.BackgroundColor,ActionType.TextAlign,ActionType.FontSize,ActionType.FontWeight,ActionType.FontStyle].includes(e):return o(t);default:return null}},getSatisfiedActions=(e,t)=>O(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield Promise.all(o.filter(l=>!l.disabled).map(l=>O(void 0,null,function*(){return(yield conditionAnalyses({ruleGroup:l.condition,variables:r,localVariables:i,conditionType:l.conditionType},n))?l:null})))).filter(Boolean).map(l=>l.actions).flat()}),getSatisfiedValues=(e,t)=>O(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield getSatisfiedActions({rules:o,variables:r,localVariables:i},n)).map(l=>I(f({},l),{value:getActionValue(l.operator,l.value)}))}),getSatisfiedValueMap=(e,t)=>O(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield getSatisfiedValues({rules:o,variables:r,localVariables:i},n)).reduce((l,a)=>I(f({},l),{[a.operator]:a.value}),{})});function useSatisfiedActionValues({formValues:e,category:t="default",rules:o,schema:r,form:i}){const[n,l]=(0,import_react2.useState)({}),a=(0,import_react.useFieldSchema)(),c=useVariables$1(),u=useLocalVariables$1({currentForm:{values:e}}),d=r??a,m=o??(d[LinkageRuleDataKeyMap[t]]||(d==null?void 0:d.parent[LinkageRuleDataKeyMap[t]])),p=useApp(),h=(0,import_react2.useCallback)(()=>{m&&e&&getSatisfiedValueMap({rules:m,variables:c,localVariables:u},p.jsonLogic).then(g=>{(0,import_lodash.isEmpty)(g)?l({}):l(g)}).catch(g=>{throw new Error(g.message)})},[c,u,m,e]);return(0,import_react2.useEffect)(()=>{if(h(),i){const g=(0,import_shared.uid)();return i.addEffects(g,()=>{(0,import_core.onFormValuesChange)(()=>{h()})}),()=>{i.removeEffects(g)}}},[i,h,e]),{valueMap:n}}const GetStyleRules=import_react2.default.memo(({record:e,schema:t,onStyleChange:o})=>{const{valueMap:r}=useSatisfiedActionValues({formValues:e,category:"style",schema:t});return(0,import_react2.useEffect)(()=>{o(r)},[o,r]),null});GetStyleRules.displayName="GetStyleRules";const opacityStyle={opacity:.5},containerStyle={position:"relative"},spinStyle={display:"flex",alignItems:"center",justifyContent:"center",position:"absolute",left:0,right:0,height:"100%",maxHeight:400,zIndex:1e3},displayNone$3={display:"none"},HighPerformanceSpin=import_react2.default.memo(e=>(0,import_jsx_runtime.jsxs)("div",{style:containerStyle,children:[(0,import_jsx_runtime.jsx)(import_antd.Spin,I(f({},import_lodash.default.omit(e,"children")),{style:e.spinning?spinStyle:displayNone$3})),(0,import_jsx_runtime.jsx)("div",{style:e.spinning?opacityStyle:null,children:e.children})]}));var FilterBlockType=(e=>(e[e.FORM=0]="FORM",e[e.TABLE=1]="TABLE",e[e.TREE=2]="TREE",e[e.COLLAPSE=3]="COLLAPSE",e))(FilterBlockType||{});const mergeFilter=(e,t="$and")=>{const o=e.filter(r=>{if(r&&typeof r=="object"&&!Array.isArray(r))return Object.values(r).filter(i=>i!==void 0).length});return o.length===0?{}:o.length===1?o[0]:{[t]:o}},getSupportFieldsByAssociation=(e,t)=>{var o;return(o=t.associatedFields)==null?void 0:o.filter(r=>e==null?void 0:e.some(i=>i===r.target))},getSupportFieldsByForeignKey=(e,t)=>{var o;return(o=t.foreignKeyFields)==null?void 0:o.filter(r=>e.fields.some(i=>i.type!=="belongsTo"&&i.foreignKey===r.name&&i.target===r.collectionName))},useSupportedBlocks=e=>{const{getDataBlocks:t}=useFilterBlock(),o=(0,import_react.useFieldSchema)(),r=useCollection(),{getAllCollectionsInheritChain:i}=useAllCollectionsInheritChainGetter();if(e===0||e===3)return t().filter(n=>isSameCollection(n.collection,r));if(e===1||e===2)return t().filter(n=>{var l,a;return o["x-uid"]!==n.uid&&(isSameCollection(n.collection,r)||((l=getSupportFieldsByAssociation(i(r.name,r.dataSource),n))==null?void 0:l.length)||((a=getSupportFieldsByForeignKey(r,n))==null?void 0:a.length))})},transformToFilter=(e,t,o,r)=>(e=(0,import_client.flatten)(e,{breakOn({value:i,path:n}){if(["$match","$notMatch","$anyOf","$noneOf","$childIn","$childNotIn","$dateBetween","$in","$notIn"].includes(t[n]))return!0;const l=o(`${r}.${n}`);if(["datetime","datetimeNoTz","date","unixTimestamp","createdAt","updatedAt"].includes(l==null?void 0:l.interface))return!0;if(l!=null&&l.target){if(Array.isArray(i))return!0;const a=l.targetKey||"id";if(i&&i[a]!=null)return!0}return!1}}),{$and:Object.keys(e).map(i=>{let n=import_lodash.default.get(e,i);const l=o(`${r}.${i}`);return l!=null&&l.target&&["hasOne","hasMany","belongsTo","belongsToMany","belongsToArray"].includes(l.type)&&(n=(0,import_client.getValuesByPath)(n,l.targetKey||"id"),i=`${i}.${l.targetKey||"id"}`,(l==null?void 0:l.interface)==="chinaRegion"&&(n=import_lodash.default.last(n))),!n&&n!==0&&n!==!1?null:{[i]:{[t[i]||"$eq"]:n}}}).filter(Boolean)}),useAssociatedFields=()=>{var e;return((e=useCollection())==null?void 0:e.fields.filter(t=>isAssocField(t)))||[]},isAssocField=e=>["o2o","oho","obo","m2o","createdBy","updatedBy","o2m","m2m","linkTo","chinaRegion","mbm"].includes(e==null?void 0:e.interface),isSameCollection=(e,t)=>e.name===t.name&&e.dataSource===t.dataSource,useFilterAPI=()=>{const e=(0,import_react.useFieldSchema)(),{getDataBlocks:t}=useFilterBlock(),{targets:o,uid:r}=findFilterTargets(e),i=t(),[n,l]=(0,import_react2.useState)(()=>o&&o.some(u=>i.some(d=>d.uid===u.uid))),a=Object.keys(o||{});(0,import_react2.useEffect)(()=>{l(o&&o.some(u=>i.some(d=>d.uid===u.uid)))},[a.length,o,i]);const c=(0,import_react2.useCallback)((u,d="id",m="$eq")=>{const p=i.find(h=>h.uid===e.parent["x-uid"]);i.forEach(h=>{var g,x,_,v;let b=d;const y=o.find(j=>j.uid===h.uid);if(!y)return;import_lodash.default.isFunction(u)&&(u=u(y,h,getSourceKey$1(p,y.field))),import_lodash.default.isFunction(d)&&(b=d(y,h)),import_lodash.default.isFunction(m)&&(m=m(y));const C=((g=h.service.params)==null?void 0:g[0])||{},F=((_=(x=h.service.params)==null?void 0:x[1])==null?void 0:_.filters)||{};if(u!=null)F[r]={$and:[{[b]:{[m]:u}}]};else if((v=h.clearSelection)==null||v.call(h),delete F[r],h.dataLoadingMode==="manual")return h.clearData();const S=mergeFilter([...Object.values(F).map(j=>removeNullCondition(j)),h.defaultFilter]);h.doFilter(I(f({},C),{page:1,filter:S}),{filters:F})})},[i,o,r,e]);return{isConnected:n,doFilter:c}},isInFilterFormBlock=e=>{for(;e;){if(e["x-filter-targets"])return e["x-decorator"]==="FilterFormBlockProvider";e=e.parent}return!1};function getSourceKey$1(e,t){var o,r,i;const n=(o=e==null?void 0:e.associatedFields)==null?void 0:o.find(l=>l.foreignKey===t);return(n==null?void 0:n.sourceKey)||((i=(r=t==null?void 0:t.split)==null?void 0:r.call(t,"."))==null?void 0:i[1])}const AssociationFieldContext=(0,import_react2.createContext)({});AssociationFieldContext.displayName="AssociationFieldContext";const useInsertSchema$1=e=>{const t=(0,import_react.useFieldSchema)(),{insertAfterBegin:o}=useDesignable(),{isMobileLayout:r}=useMobileLayout();return(0,import_react2.useCallback)(i=>{r||t.reduceProperties((n,l)=>l["x-component"]==="AssociationField."+e?l:n,null)||o((0,import_cloneDeep.default)(i))},[e,t,o,r])};function useAssociationFieldContext(){return(0,import_react2.useContext)(AssociationFieldContext)}function useServiceOptions$1(e){var t,o,r,i,n,l,a,c,u,d;const{action:m="list",service:p,useOriginalFilter:h}=e,g=(0,import_react.useFieldSchema)(),x=(0,import_react.useField)(),{getField:_}=useCollection_deprecated(),{getCollectionJoinField:v}=useCollectionManager_deprecated(),b=useRecord(),{isNew:y}=useCollectionRecord()||{},C=((0,import_lodash.isString)((r=(o=(t=g==null?void 0:g["x-component-props"])==null?void 0:t.service)==null?void 0:o.params)==null?void 0:r.filter)?(l=(n=(i=x.componentProps)==null?void 0:i.service)==null?void 0:n.params)==null?void 0:l.filter:(u=(c=(a=g==null?void 0:g["x-component-props"])==null?void 0:a.service)==null?void 0:c.params)==null?void 0:u.filter)||((d=p==null?void 0:p.params)==null?void 0:d.filter),{filter:F}=useParsedFilter({filterOption:C,onFilterChange:()=>{y&&x.reset()}}),S=(0,import_react2.useMemo)(()=>_(g.name)||v(g==null?void 0:g["x-collection-field"]),[g]),j=b==null?void 0:b[S==null?void 0:S.sourceKey],P=(0,import_react2.useMemo)(()=>{const w=["oho","o2m"].includes(S==null?void 0:S.interface);return mergeFilter([mergeFilter([w&&!isInFilterFormBlock(g)&&S!=null&&S.foreignKey&&!h?{[S.foreignKey]:{$is:null}}:null,F]),w&&j!==void 0&&j!==null&&!isInFilterFormBlock(g)&&S!=null&&S.foreignKey&&!h?{[S.foreignKey]:{$eq:j}}:null],"$or")},[S==null?void 0:S.interface,S==null?void 0:S.foreignKey,g,F,j,h]);return(0,import_react2.useMemo)(()=>I(f({resource:S==null?void 0:S.target,action:m},p),{params:I(f({},p==null?void 0:p.params),{filter:P})}),[S==null?void 0:S.target,m,P,p])}const useFieldNames$1=(e={})=>{var t,o,r,i,n;const l=(0,import_react.useFieldSchema)(),a=((i=(r=(o=(t=l["x-component-props"])==null?void 0:t.field)==null?void 0:o.uiSchema)==null?void 0:r["x-component-props"])==null?void 0:i.fieldNames)||((n=l["x-component-props"])==null?void 0:n.fieldNames)||e.fieldNames;return f({label:"label",value:"value"},a)},SubFormContext=(0,import_react2.createContext)(null);SubFormContext.displayName="SubFormContext";const SubFormProvider=e=>{const t=(0,import_react2.useContext)(SubFormContext),{value:o,collection:r,fieldSchema:i,parent:n,skip:l}=e.value,a=(0,import_react2.useMemo)(()=>import_lodash.default.omitBy({value:o,collection:r,fieldSchema:i,skip:l,parent:n||(t!=null&&t.skip?t.parent:t)},import_lodash.default.isUndefined),[o,r,i,l,n,t]);return(0,import_jsx_runtime.jsx)(SubFormContext.Provider,{value:a,children:e.children})},useSubFormValue=()=>{const{value:e,collection:t,fieldSchema:o,parent:r}=(0,import_react2.useContext)(SubFormContext)||{};return{formValue:e,collection:t,fieldSchema:o,parent:r}},useColumnSettings=e=>{const{t}=(0,import_react_i18next.useTranslation)(),o=`nocobase_table_column_settings_${e}`,r=(0,import_react2.useCallback)(()=>{try{const l=localStorage.getItem(o);return l?JSON.parse(l):null}catch(l){return console.warn("Failed to parse table column settings from localStorage:",l),null}},[o]),i=(0,import_react2.useCallback)(l=>{try{const a=JSON.stringify(l);localStorage.setItem(o,a);const c=new CustomEvent("nocobase-table-settings-changed",{detail:{key:o,tableId:e,settings:l}});window.dispatchEvent(c)}catch(a){console.warn("Failed to save table column settings to localStorage:",a),import_antd.message.error(t("Failed to save table settings"))}},[o,e,t]),n=(0,import_react2.useCallback)(()=>{try{localStorage.removeItem(o);const l=new CustomEvent("nocobase-table-settings-changed",{detail:{key:o,tableId:e,settings:null}});window.dispatchEvent(l)}catch(l){console.warn("Failed to clear table column settings from localStorage:",l),import_antd.message.error(t("Failed to clear table settings"))}},[o,e,t]);return{getSettings:r,saveSettings:i,clearSettings:n}},useTableColumnIntegration=(e,t=!0)=>{const o=(0,import_react.useFieldSchema)(),r=(o==null?void 0:o["x-uid"])||"default",{getSettings:i}=useColumnSettings(r),[n,l]=(0,import_react2.useState)(0);(0,import_react2.useEffect)(()=>{const c=u=>{const{key:d,tableId:m}=u.detail;(d.includes(r)||m===r)&&l(p=>p+1)};return window.addEventListener("nocobase-table-settings-changed",c),()=>{window.removeEventListener("nocobase-table-settings-changed",c)}},[r]);const a=(0,import_react2.useMemo)(()=>i(),[i,n]);return{columns:(0,import_react2.useMemo)(()=>{if(!t||!a||a.length===0)return e;const c=new Map;a.forEach(h=>{c.set(h.key,h)});const u=e.map(h=>{const g=c.get(h.key);if(g){const x=h.columnHidden||!g.visible,_=g.width||h.width,v=g.fixed||h.fixed;return I(f({},h),{columnHidden:x,fixed:v,width:_,_orderIndex:g.order})}return h}),d=[],m=[];u.forEach(h=>{h._orderIndex!==void 0?d.push(h):m.push(h)}),d.sort((h,g)=>(h._orderIndex||0)-(g._orderIndex||0));const p=[...d,...m];return p.forEach(h=>{delete h._orderIndex}),p},[e,a])}},TableSkeleton=({rows:e=5,columns:t=6})=>{const{token:o}=useToken$1(),r=o.controlHeight*2.06,i=o.controlHeight*1.75,n=(0,import_react2.useMemo)(()=>import_css.css`
|
|
65
|
+
`,items:a},n))})},SchemaInitializerSubMenu=e=>{var t;const o=e,{children:r,items:i,title:n,name:l,onOpenChange:a,icon:c}=o,u=W(o,["children","items","title","name","onOpenChange","icon"]),d=useCompile(),m=useSchemaInitializerItem(),p=(0,import_react2.useMemo)(()=>l||(m==null?void 0:m.name)||(0,import_shared.uid)(),[l,m]),h=(t=i||r)==null?void 0:t.filter(_=>_.useVisible?_.useVisible():!0),g=useSchemaInitializerMenuItems(h,l),x=(0,import_react2.useMemo)(()=>[I(f({},u),{key:p,label:d(n),icon:typeof c=="string"?(0,import_jsx_runtime.jsx)(import_icons.default,{type:c}):c,children:g})],[g,d,c,p,u,n]);return(0,import_jsx_runtime.jsx)(SchemaInitializerMenu,{onOpenChange:a,items:x})},SchemaInitializerSubMenuInternal=()=>{const e=useSchemaInitializerItem();return(0,import_jsx_runtime.jsx)(SchemaInitializerSubMenu,f({},e))},useAriaAttributeOfMenuItem=()=>{const{isInMenu:e}=useSchemaInitializerSubMenuContext();return{attribute:(0,import_react2.useMemo)(()=>e?{}:{role:"menuitem"},[e])}},{Paragraph:Paragraph$1,Text:Text$2}=import_antd.Typography,ErrorFallbackModal=e=>{const[t,o]=import_react2.default.useState(!1),r=(0,import_jsx_runtime.jsx)(Paragraph$1,{style:{display:"flex",marginBottom:0},copyable:{text:e.error.message},children:(0,import_jsx_runtime.jsxs)(Text$2,{type:"danger",style:{whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden",display:"inline-block",maxWidth:"200px"},children:["Error: ",e.error.message]})});return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)("div",{onMouseOver:()=>o(!0),children:e.children||r}),(0,import_jsx_runtime.jsx)(import_antd.Modal,{zIndex:1e4,open:t,footer:null,onCancel:()=>o(!1),width:"60%",children:(0,import_jsx_runtime.jsx)(ErrorFallback,f({},e))})]})},{Paragraph,Text:Text$1,Link}=import_antd.Typography,useDownloadLogs=(e,t={})=>{const o=useLocationNoUpdate(),[r,i]=import_react2.default.useState(!1),n=useAPIClient();return{loading:r,download:()=>O(void 0,null,function*(){i(!0);try{const l=yield n.request({url:"logger:collect",method:"post",responseType:"blob",data:f({error:{message:e.message,stack:e.stack},location:o},t)}),a=window.URL.createObjectURL(new Blob([l.data],{type:"application/gzip"})),c=document.createElement("a");c.setAttribute("href",a),c.setAttribute("download","logs.tar.gz"),c.click(),c.remove()}catch(l){console.log(l)}i(!1)})}},ErrorFallback=({error:e})=>{const t=(0,import_react.useFieldSchema)(),{t:o}=(0,import_react_i18next.useTranslation)(),{loading:r,download:i}=useDownloadLogs(e,{schema:t}),n=(0,import_jsx_runtime.jsxs)(import_react_i18next.Trans,{children:["This is likely a NocoBase internals bug. Please open an issue at ",(0,import_jsx_runtime.jsx)(Link,{href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:"here"})]});return(0,import_jsx_runtime.jsx)("div",{style:{backgroundColor:"white"},children:(0,import_jsx_runtime.jsx)(import_antd.Result,{style:{maxWidth:"60vw",margin:"auto"},status:"error",title:o("Render Failed"),subTitle:n,extra:[(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"primary",href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:o("Feedback")},"feedback"),(0,import_jsx_runtime.jsx)(import_antd.Button,{loading:r,onClick:i,children:o("Download logs")},"log")],children:(0,import_jsx_runtime.jsx)(Paragraph,{copyable:{text:e.stack},children:(0,import_jsx_runtime.jsx)(Text$1,{type:"danger",style:{whiteSpace:"pre-line",textAlign:"center"},children:e.stack})})})})};ErrorFallback.Modal=ErrorFallbackModal;const AppNotFound=()=>{const e=(0,import_react_router_dom.useNavigate)(),{t}=(0,import_react_i18next.useTranslation)();return(0,import_jsx_runtime.jsx)(import_antd.Result,{status:"404",title:"404",subTitle:t("Sorry, the page you visited does not exist."),extra:(0,import_jsx_runtime.jsx)(import_antd.Button,{onClick:()=>e("/",{replace:!0}),type:"primary",children:"Back Home"})})};class Plugin{constructor(t,o){this.options=t,this.app=o,this.options=t,this.app=o}get pluginManager(){return this.app.pluginManager}get context(){return this.app.context}get flowEngine(){return this.app.flowEngine}get engine(){return this.app.flowEngine}get pm(){return this.app.pm}get router(){return this.app.router}get pluginSettingsManager(){return this.app.pluginSettingsManager}get pluginSettingsRouter(){return this.app.pluginSettingsManager}get schemaInitializerManager(){return this.app.schemaInitializerManager}get schemaSettingsManager(){return this.app.schemaSettingsManager}get dataSourceManager(){return this.app.dataSourceManager}afterAdd(){return O(this,null,function*(){})}beforeLoad(){return O(this,null,function*(){})}load(){return O(this,null,function*(){})}t(t,o={}){var r;return this.app.i18n.t(t,f({ns:(r=this.options)==null?void 0:r.packageName},o))}}const titleWrapperStyle={display:"flex",alignItems:"center",gap:4},withTooltipComponent=e=>t=>{const{tooltip:o}=t;return o?(0,import_jsx_runtime.jsxs)("div",{style:titleWrapperStyle,children:[(0,import_jsx_runtime.jsx)(e,f({},t)),(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:o,children:(0,import_jsx_runtime.jsx)(import_icons.QuestionCircleOutlined,{style:{zIndex:1}})})]}):(0,import_jsx_runtime.jsx)(e,f({},t))},{evaluate}=import_client4.evaluators.get("formula.js"),useEvaluatedExpression=e=>{const t=useVariables$1(),o=useLocalVariables$1(),[r,i]=(0,import_react2.useState)();return(0,import_react2.useEffect)(()=>{O(void 0,null,function*(){if(e==null||e===""){i(void 0);return}const{exp:n,scope:l}=yield replaceVariables(e,{variables:t,localVariables:o});try{const a=evaluate(n,f({now:()=>new Date().toString()},l));i(a)}catch(a){console.error(a)}})},[t.parseVariable,e,o]),r};class SchemaInitializer{constructor(t){k(this,"options"),k(this,"name"),this.options=Object.assign({items:[]},t),this.name=t.name}get items(){return this.options.items}add(t,o){const r=t.split("."),i=r[r.length-1],n=I(f({},o),{name:i}),l=(u,d)=>{const m=this.items.findIndex(p=>p.name===u);m===-1?this.items.push(d):this.items[m]=d};if(r.length===1){l(i,n);return}const a=r.slice(0,-1).join("."),c=this.get(a);if(c){c.children||(c.children=[]);const u=t.replace(`${c.name}.`,""),d=c.children.findIndex(m=>m.name===u);d===-1?c.children.push(n):c.children[d]=n}else l(i,n)}get(t){var o;if(!t)return;const r=t.split(".");let i={children:this.items};for(let n=0;n<r.length;n++){const l=r[n],a=(o=i.children)==null?void 0:o.find(c=>c.name===l);if(a&&(i=a),n===r.length-1)return a}}remove(t){const o=t.split(".");if(o.length===1){const i=this.items.findIndex(n=>n.name===o[0]);i!==-1&&this.items.splice(i,1);return}const r=this.get(o.slice(0,-1).join("."));if(r&&r.children){const i=o[o.length-1],n=r.children.findIndex(l=>l.name===i);n!==-1&&r.children.splice(n,1)}}}var NocoBaseDesktopRouteType=(e=>(e.group="group",e.page="page",e.flowRoute="flowRoute",e.link="link",e.tabs="tabs",e.flowPage="flowPage",e))(NocoBaseDesktopRouteType||{});const useStyles$h=genStyleHook("nb-menu-item",e=>{const{componentCls:t}=e;return{[t]:{paddingLeft:`${e.padding}px !important`,paddingRight:`${e.padding}px !important`}}}),useInsertFlowPageSchema=()=>{const e=useAPIClient();return(0,import_react2.useCallback)(t=>O(void 0,null,function*(){yield e.request({method:"POST",url:"/uiSchemas:insert",data:t})}),[e])},FlowPageMenuItem=()=>{const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),{theme:o}=useGlobalTheme(),{componentCls:r,hashId:i}=useStyles$h(),n=useParentRoute(),{createRoute:l}=useNocoBaseRoutes(),a=useInsertFlowPageSchema(),c=(0,import_react2.useCallback)(()=>O(void 0,null,function*(){const u=yield FormDialog(e("Add page"),()=>(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{scope:t.scope,components:f({},t.components),children:(0,import_jsx_runtime.jsx)(import_antd_v5.FormLayout,{layout:"vertical",children:(0,import_jsx_runtime.jsx)(zIndexContext.Provider,{value:ICON_POPUP_Z_INDEX,children:(0,import_jsx_runtime.jsx)(SchemaComponent,{schema:{properties:{title:{title:e("Menu item title"),required:!0,"x-component":"Input","x-decorator":"FormItem"},icon:{title:e("Icon"),"x-component":"IconPicker","x-decorator":"FormItem"}}}})})})}),o).open({initialValues:{}}),d=(0,import_shared.uid)(),m=(0,import_shared.uid)(),p=(0,import_shared.uid)(),h=(0,import_shared.uid)();yield l({type:NocoBaseDesktopRouteType.page,title:u.title,icon:u.icon,parentId:n==null?void 0:n.id,schemaUid:m,menuSchemaUid:d,enableTabs:!1,children:[{type:NocoBaseDesktopRouteType.tabs,schemaUid:p,tabSchemaName:h,hidden:!0}]}),a(getFlowPageMenuSchema({pageSchemaUid:m,tabSchemaUid:p,tabSchemaName:h}))}),[l,a,t==null?void 0:t.components,t==null?void 0:t.scope,n==null?void 0:n.id,e,o]);return(0,import_jsx_runtime.jsx)(SchemaInitializerItem,{title:e("Modern page (v2)"),onClick:c,className:`${r} ${i}`})};function getFlowPageMenuSchema({pageSchemaUid:e,tabSchemaUid:t,tabSchemaName:o}){return{type:"void","x-component":"FlowRoute","x-uid":e}}const GroupItem$1=()=>{const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),{theme:o}=useGlobalTheme(),{componentCls:r,hashId:i}=useStyles$h(),n=useParentRoute(),{createRoute:l}=useNocoBaseRoutes(),a=(0,import_react2.useCallback)(()=>O(void 0,null,function*(){const c=yield FormDialog(e("Add group"),()=>(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{scope:t.scope,components:f({},t.components),children:(0,import_jsx_runtime.jsx)(import_antd_v5.FormLayout,{layout:"vertical",children:(0,import_jsx_runtime.jsx)(zIndexContext.Provider,{value:ICON_POPUP_Z_INDEX,children:(0,import_jsx_runtime.jsx)(SchemaComponent,{schema:{properties:{title:{title:e("Menu item title"),"x-component":"Input","x-decorator":"FormItem",required:!0},icon:{title:e("Icon"),"x-component":"IconPicker","x-decorator":"FormItem"}}}})})})}),o).open({initialValues:{}}),{title:u,icon:d}=c,m=(0,import_shared.uid)();yield l({type:NocoBaseDesktopRouteType.group,title:u,icon:d,parentId:n==null?void 0:n.id,schemaUid:m})}),[t.components,t.scope,e,o]);return(0,import_jsx_runtime.jsx)(SchemaInitializerItem,{title:e("Group"),onClick:a,className:`${r} ${i}`})},useAttach=e=>{const t=(0,import_react2.useRef)(null);return(0,import_react2.useEffect)(()=>(t.current&&e!==t.current&&t.current.onUnmount(),t.current=e,e.onMount(),()=>{e.onUnmount()}),[e]),e},compileCache={},hasVariable=e=>/{{.*?}}/g.test(e),useCompile=({noCache:e}={noCache:!1})=>{const t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),o=(0,import_react2.useContext)(import_react.SchemaExpressionScopeContext);return(r,i)=>{let n=!1,l;if(typeof r=="string"&&r.startsWith("{{")&&(n=!0,l=r),r&&typeof r=="object"&&!(0,import_react2.isValidElement)(r)){try{l=JSON.stringify(r)}catch(a){return console.warn("Failed to stringify:",a),r}if(compileCache[l])return compileCache[l];n=hasVariable(l)}if(Array.isArray(r)){try{l=JSON.stringify(r)}catch(a){return console.warn("Failed to stringify:",a),r}if(compileCache[l])return compileCache[l];n=hasVariable(l)}if(n){const a=f(f(f({},t==null?void 0:t.scope),o),i);if(!l)return import_react.Schema.compile(r,a);try{return e?import_react.Schema.compile(r,a):(compileCache[l]=compileCache[l]||import_react.Schema.compile(r,a),compileCache[l])}catch(c){return console.log("useCompile error",r,c),import_react.Schema.compile(r,a)}}return r}},useComponent=(e,t)=>{const{components:o}=(0,import_react2.useContext)(import_react.SchemaOptionsContext);return e?typeof e!="string"?e:(0,import_lodash.get)(o,e)||t:t},LAZY_COMPONENT_KEY=Symbol("LAZY_COMPONENT_KEY");function lazy(e,...t){if(t.length===0){const o=(0,import_react2.lazy)(()=>e().then(i=>{const n=i.default;return r[LAZY_COMPONENT_KEY]=n,{default:n}})),r=i=>(0,import_jsx_runtime.jsx)(import_react2.default.Suspense,{fallback:(0,import_jsx_runtime.jsx)(import_antd.Spin,{}),children:(0,import_jsx_runtime.jsx)(o,f({},i))});return r}return t.reduce((o,r)=>{const i=(0,import_react2.lazy)(()=>e().then(n=>{const l=(0,import_lodash.get)(n,r);return o[r][LAZY_COMPONENT_KEY]=l,{default:l}}));return o[r]=n=>(0,import_jsx_runtime.jsx)(import_react2.default.Suspense,{fallback:(0,import_jsx_runtime.jsx)(import_antd.Spin,{}),children:(0,import_jsx_runtime.jsx)(i,f({},n))}),o},{})}function useLazy(e,t){const o=typeof t=="function"?t:i=>i[t],r=(0,import_react_imported_component.loadableResource)(e);if(!r.payload)throw new Promise((i,n)=>{r.loadIfNeeded(),r.resolution.then(i).catch(n)});return o(r.payload)}function addAppVersion(e,t){if(e)return e["x-app-version"]||(e["x-app-version"]=t),Object.keys(e.properties||{}).forEach(o=>{var r;addAppVersion((r=e.properties)==null?void 0:r[o],t)}),e}const name="@nocobase/client",version="2.0.0-alpha.12",license="AGPL-3.0",main="lib/index.js",module$1="es/index.mjs",types="es/index.d.ts",dependencies={"@ahooksjs/use-url-state":"3.5.1","@ant-design/cssinjs":"^1.11.1","@ant-design/icons":"^5.6.1","@ant-design/pro-layout":"^7.22.1","@antv/g2plot":"^2.4.18","@budibase/handlebars-helpers":"0.14.0","@codemirror/lang-html":"^6.4.10","@codemirror/theme-one-dark":"^6.1.3","@ctrl/tinycolor":"^3.6.0","@dnd-kit/core":"^6.0.0","@dnd-kit/sortable":"^7.0.0","@emotion/css":"^11.7.1","@formily/antd-v5":"1.2.3","@formily/core":"^2.2.27","@formily/grid":"^2.2.27","@formily/json-schema":"^2.2.27","@formily/path":"^2.2.27","@formily/react":"^2.2.27","@formily/reactive":"^2.2.27","@formily/reactive-react":"^2.2.27","@formily/shared":"^2.2.27","@formily/validator":"^2.2.27","@nocobase/evaluators":"2.0.0-alpha.12","@nocobase/flow-engine":"2.0.0-alpha.12","@nocobase/sdk":"2.0.0-alpha.12","@nocobase/utils":"2.0.0-alpha.12","@tanstack/react-table":"^8.21.3","@types/tabulator-tables":"^6.2.6",ahooks:"^3.7.2",antd:"5.24.2","antd-mobile":"^5.41.1","antd-mobile-icons":"^0.3.0","antd-style":"3.7.1",axios:"^1.7.0","bignumber.js":"^9.1.2",classnames:"^2.3.1",codemirror:"^6.0.2",cronstrue:"^2.11.0","file-saver":"^2.0.5",filesize:"9.0.11",flat:"^5.0.2","html5-qrcode":"^2.3.8",i18next:"^22.4.9","i18next-http-backend":"^2.1.1",ignore:"^5.2.0",json5:"^2.2.3",lodash:"4.17.21","lru-cache":"6.0.0","markdown-it":"14.1.0","markdown-it-highlightjs":"3.3.1",mathjs:"^10.6.0",mermaid:"9.4.3",mime:"^4.0.4","mime-match":"^1.0.2","react-beautiful-dnd":"^13.1.0","react-device-detect":"2.2.3","react-drag-listview":"^0.1.9","react-error-boundary":"^4.0.10","react-helmet":"^6.1.0","react-hotkeys-hook":"^3.4.7","react-i18next":"^11.15.1","react-iframe":"~1.8.5","react-image-lightbox":"^5.1.4","react-intersection-observer":"9.14.0","react-js-cron":"^3.1.0","react-quill":"^2.0.0","react-router-dom":"^6.30.1","react-to-print":"^2.14.7","sanitize-html":"2.13.0","tabulator-tables":"^6.3.1","use-deep-compare-effect":"^1.8.1"},peerDependencies={react:">=18.0.0","react-dom":">=18.0.0","react-is":">=18.0.0"},devDependencies={"@testing-library/react":"^14.0.0","@types/markdown-it":"14.1.1","@types/markdown-it-highlightjs":"3.3.1","@types/react-big-calendar":"^1.6.4","axios-mock-adapter":"^1.20.0",dumi:"2.2.14","dumi-theme-nocobase":"^0.2.32"},clientPkg={name,version,license,main,module:module$1,types,dependencies,peerDependencies,devDependencies};function createDesignable(e){return new Designable(e)}const generateUid=e=>{e&&(e["x-uid"]||(e["x-uid"]=(0,import_shared.uid)()),Object.keys(e.properties||{}).forEach(t=>{generateUid(e.properties[t])}))},defaultWrap=e=>e,matchSchema=(e,t)=>{if(!(!e||!t)){for(const o in t)if(Object.prototype.hasOwnProperty.call(t,o)&&t[o]!==(e==null?void 0:e[o]))return!1;return!0}},splitWrapSchema=(e,t)=>{if(e["x-uid"]&&e["x-uid"]===t["x-uid"])return[null,e.toJSON()];const o=e.toJSON(),r=I(f({},o),{properties:{}});let i=null;const n=(l,a)=>{Object.keys(l||{}).forEach(c=>{const u=l[c];if(u["x-uid"]===t["x-uid"]){i=l[c];return}else a.properties[c]=I(f({},u),{properties:{}}),n(u==null?void 0:u.properties,a.properties[c])})};return n(o.properties,r),[r,i]},translate=e=>e;class Designable{constructor(t){k(this,"current"),k(this,"options"),k(this,"appVersion"),k(this,"events",{}),this.options=t,this.current=t.current,this.appVersion=t.appVersion}get model(){return this.options.model}get query(){return this.options.query}loadAPIClientEvents(){const{api:t,t:o=translate}=this.options;if(!t)return;const r=i=>{if(!i)return[];const n=Object.values(i.properties).length,l=[];return i.mapProperties(a=>{a["x-component-props"]=a["x-component-props"]||{},a["x-component-props"].width=100/n,a["x-uid"]&&l.push({"x-uid":a["x-uid"],"x-component-props":a["x-component-props"]})}),i["x-uid"]&&l.length?l:[]};this.on("insertAdjacent",i=>O(this,[i],function*({onSuccess:n,current:l,position:a,schema:c,wrap:u,wrapped:d,removed:m}){var p;let h=[];if((d==null?void 0:d["x-component"])==="Grid.Col"&&(h=h.concat(r(d.parent))),(m==null?void 0:m["x-component"])==="Grid.Col"&&(h=h.concat(r(m.parent))),this.refresh(),!l["x-uid"])return;const g=yield t.request({url:`/uiSchemas:insertAdjacent/${l["x-uid"]}?position=${a}`,method:"post",data:{schema:addAppVersion(c,this.appVersion),wrap:u}});h.length&&(yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:h})),m!=null&&m["x-uid"]&&(yield t.request({url:`/uiSchemas:remove/${m["x-uid"]}`,method:"post"})),n==null||n((p=g==null?void 0:g.data)==null?void 0:p.data),import_antd.message.success(o("Saved successfully"),.2)})),this.on("patch",i=>O(this,[i],function*({schema:n}){this.refresh(),n!=null&&n["x-uid"]&&(yield t.request({url:"/uiSchemas:patch",method:"post",data:f({},n)}),import_antd.message.success(o("Saved successfully"),.2))})),this.on("initializeActionContext",i=>O(this,[i],function*({schema:n}){n!=null&&n["x-uid"]&&(yield t.request({url:"/uiSchemas:initializeActionContext",method:"post",data:f({},n)}))})),this.on("batchPatch",i=>O(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=>O(this,[i],function*({removed:n}){let l=[];(n==null?void 0:n["x-component"])==="Grid.Col"&&(l=r(n.parent)),this.refresh(),n!=null&&n["x-uid"]&&(yield t.request({url:`/uiSchemas:remove/${n["x-uid"]}`,method:"post"}),l.length&&(yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:l})),import_antd.message.success(o("Saved successfully"),.2))}))}prepareProperty(t){t.type||(t.type="void"),t.name||(t.name=(0,import_shared.uid)()),this.current["x-uid"]&&generateUid(t)}on(t,o){this.events[t]||(this.events[t]=[]),this.events[t].push(o)}emit(t,...o){return O(this,null,function*(){if(!this.events[t])return;const[r,...i]=o;return Promise.all(this.events[t].map(n=>n.bind(this)(f({current:this.current},r),...i)))})}parentsIn(t){if(!t||!import_react.Schema.isSchemaInstance(t))return!1;let o=this.current;for(;o!=null&&o.parent;){if(o.parent===t)return!0;o=o.parent}return!1}refresh(t){const{refresh:o}=this.options;return o==null?void 0:o(t)}deepMerge(t){const o={title:"title",description:"description",default:"initialValue",readOnly:"readOnly",writeOnly:"editable",enum:"dataSource","x-pattern":"pattern","x-display":"display","x-validator":"validator","x-decorator":"decorator","x-component":"component","x-reactions":"reactions","x-content":"content","x-visible":"visible","x-hidden":"hidden","x-disabled":"disabled","x-editable":"editable","x-read-only":"readOnly"},r={"x-decorator-props":"decoratorProps","x-component-props":"componentProps","x-data":"data"};Object.keys(t).forEach(i=>{o[i]?(this.current[i]=t[i],this.updateModel(o[i],t[i])):r[i]?Object.keys(t[i]).forEach(n=>{(0,import_set.default)(this.current,[i,n],t[i][n]),this.updateModel([r[i],n],t[i][n])}):this.current[i]=t[i]}),this.emit("patch",{schema:t})}getSchemaAttribute(t,o){return(0,import_get.default)(this.current,t,o)}shallowMerge(t){const o={title:"title",description:"description",default:"initialValue",readOnly:"readOnly",writeOnly:"editable",enum:"dataSource","x-pattern":"pattern","x-display":"display","x-validator":"validator","x-decorator":"decorator","x-component":"component","x-reactions":"reactions","x-content":"content","x-visible":"visible","x-hidden":"hidden","x-disabled":"disabled","x-editable":"editable","x-read-only":"readOnly","x-decorator-props":"decoratorProps","x-component-props":"componentProps","x-data":"data"};Object.keys(t).forEach(r=>{this.current[r]=t[r],o[r]&&this.updateModel(o[r],t[r])}),this.emit("patch",{schema:t})}updateModel(t,o){const r=i=>{(0,import_set.default)(i,t,o)};this.model&&r(this.model),this.query&&this.query.take(r)}insertAdjacent(t,o,r={}){switch(t){case"beforeBegin":return this.insertBeforeBegin(o,r);case"afterBegin":return this.insertAfterBegin(o,r);case"beforeEnd":return this.insertBeforeEnd(o,r);case"afterEnd":return this.insertAfterEnd(o,r)}}recursiveRemoveIfNoChildren(t,o){if(!t)return;let r=t,i;const n=o==null?void 0:o.breakRemoveOn;for(;r;){if(typeof n=="function"){if(n(r))break}else if(matchSchema(r,n))break;if(Object.keys(r.properties||{}).length>0)break;r.parent&&(i=r.parent.removeProperty(r.name)),r=r.parent}return i}remove(t,o={}){const{breakRemoveOn:r,removeParentsIfNoChildren:i}=o,n=t||this.current;let l=n.parent.removeProperty(n.name);if(i){const a=this.recursiveRemoveIfNoChildren(n.parent,{breakRemoveOn:r});a&&(l=a)}return this.emit("remove",{removed:l})}removeWithoutEmit(t,o={}){const{breakRemoveOn:r,removeParentsIfNoChildren:i}=o,n=t||this.current;let l=n.parent.removeProperty(n.name);if(i){const a=this.recursiveRemoveIfNoChildren(n.parent,{breakRemoveOn:r});a&&(l=a)}return l}insertBeforeBeginOrAfterEnd(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current)||!import_react.Schema.isSchemaInstance(t)||this.current.parent!==t.parent)return;let r=0,i=0;return this.current.parent.mapProperties((n,l,a)=>{this.current.name===l&&(i=a),t.name===l&&(r=a)}),r>i?this.insertBeforeBegin(t,o):this.insertAfterEnd(t,o)}insertBeforeBegin(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;const r={onSuccess:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren:l}=o;if(import_react.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),l&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n}))}else t&&(t=(0,import_cloneDeep.default)(t));const a={};let c=!1,u=0,d=0;this.current.parent.mapProperties((x,_)=>{_===this.current.name&&(d=u,c=!0,++u),x["x-index"]=u,++u,c&&(a[_]=x,this.current.parent.removeProperty(_))}),this.prepareProperty(t);const m=i(t),p=this.current.parent.addProperty(m.name||(0,import_shared.uid)(),m);p["x-index"]=d,p.parent=this.current.parent,this.current.parent.setProperties(a);const[h,g]=splitWrapSchema(p,t);this.emit("insertAdjacent",f({position:"beforeBegin",schema:g,wrapped:m,wrap:h},r))}insertAfterBegin(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;const r={onSuccess:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren:l}=o;if(import_react.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),l&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n}))}else t&&(t=(0,import_cloneDeep.default)(t));const a={};let c=1;this.current.mapProperties((h,g)=>{h["x-index"]=c,++c,a[g]=h}),this.current.properties={},this.prepareProperty(t);const u=i(t),d=this.current.addProperty(u.name||(0,import_shared.uid)(),u);d["x-index"]=0,d.parent=this.current,this.current.setProperties(a);const[m,p]=splitWrapSchema(d,t);this.emit("insertAdjacent",f({position:"afterBegin",schema:p,wrap:m,wrapped:u},r))}insertBeforeEnd(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;delete t["x-index"];const r={onSuccess:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren:l}=o;if(import_react.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),l&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n}))}else t&&(t=(0,import_cloneDeep.default)(t));this.prepareProperty(t);const a=i(t),c=this.current.addProperty(a.name||(0,import_shared.uid)(),a);c.parent=this.current;const[u,d]=splitWrapSchema(c,t);return this.emit("insertAdjacent",f({position:"beforeEnd",schema:d,wrap:u,wrapped:a},r))}insertAfterEnd(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;const r={onSuccess:o==null?void 0:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren:l}=o;let a=0,c=0,u=!1;const d={};if(this.current.parent.mapProperties((x,_)=>{x["x-index"]=a,_===this.current.name&&(++a,c=a,u=!0),++a,u&&_!==this.current.name&&(d[_]=x,this.current.parent.removeProperty(_))}),import_react.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),l&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n})),t.parent=null}else t&&(t=(0,import_cloneDeep.default)(t));this.prepareProperty(t);const m=i(t),p=this.current.parent.addProperty(m.name||(0,import_shared.uid)(),m);p.parent=this.current.parent,p["x-index"]=c,this.current.parent.setProperties(d);const[h,g]=splitWrapSchema(p,t);this.emit("insertAdjacent",f({position:"afterEnd",schema:g,wrap:h,wrapped:m},r))}}function useFindComponent(){const e=(0,import_react2.useContext)(import_react.SchemaOptionsContext),t=(0,import_react2.useMemo)(()=>(e==null?void 0:e.components)||{},[e]);return o=>{if(!o)return null;if(typeof o!="string")return o;const r=(0,import_get.default)(t,o);return r||console.error(`[nocobase]: Component "${o}" not found`),r}}function useDesignable(){const{designable:e,setDesignable:t,refresh:o,reset:r}=(0,import_react2.useContext)(SchemaComponentContext),i=(0,import_react2.useContext)(import_react.SchemaOptionsContext),n=(0,import_react2.useMemo)(()=>(i==null?void 0:i.components)||{},[i]),l=(0,import_react2.useMemo)(()=>()=>(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{}),[]),a=(0,import_ahooks.useUpdate)(),c=useRefreshFieldSchema(),u=useRefreshComponent(),d=(0,import_react2.useCallback)(v=>{o==null||o(),a(),c==null||c(v),u==null||u()},[o,a,c,u]),m=(0,import_react.useField)(),p=(0,import_react.useFieldSchema)(),h=useAPIClient(),{t:g}=(0,import_react_i18next.useTranslation)(),x=(0,import_react2.useMemo)(()=>createDesignable({t:g,api:h,refresh:d,current:p,model:m,appVersion:clientPkg.version}),[g,h,d,p,m]);(0,import_react2.useEffect)(()=>{x.loadAPIClientEvents()},[x]);const{isMobileLayout:_}=useMobileLayout();return{dn:x,designable:_?!1:e,reset:r,refresh:d,setDesignable:t,DesignableBar:l,findComponent:(0,import_react2.useCallback)(v=>{var b;if(!v)return null;if(typeof v!="string")return v;const y=(0,import_get.default)(n,v);return(b=y==null?void 0:y[LAZY_COMPONENT_KEY])!=null?b:y},[import_get.default]),on:x.on.bind(x),patch:(0,import_react2.useCallback)((v,b)=>{const y=C=>{Object.keys(C).forEach(F=>{const S=C[F];F==="title"&&(m.title=S,p.title=S),F==="x-decorator-props"&&(m.decoratorProps||(m.decoratorProps={}),p["x-decorator-props"]||(p["x-decorator-props"]={}),Object.keys(S).forEach(j=>{m.decoratorProps[j]=S[j],p["x-decorator-props"][j]=S[j]})),F==="x-component-props"&&(m.componentProps||(m.componentProps={}),p["x-component-props"]||(p["x-component-props"]={}),Object.keys(S).forEach(j=>{m.componentProps[j]=S[j],p["x-component-props"][j]=S[j]}))})};if(typeof v=="string"){const C={};return(0,import_set.default)(C,v,b),y(C)}y(v),d()},[x]),shallowMerge:(0,import_react2.useCallback)(v=>{x.shallowMerge(v)},[x]),deepMerge:(0,import_react2.useCallback)(v=>{x.deepMerge(v)},[x]),remove:(0,import_react2.useCallback)((v,b)=>{x.remove(v,b)},[x]),insertAdjacent:(0,import_react2.useCallback)((v,b,y)=>{x.insertAdjacent(v,b,y)},[x]),insertBeforeBegin:(0,import_react2.useCallback)(v=>{x.insertBeforeBegin(v)},[x]),insertAfterBegin:(0,import_react2.useCallback)(v=>{x.insertAfterBegin(v)},[x]),insertBeforeEnd:(0,import_react2.useCallback)(v=>{x.insertBeforeEnd(v)},[x]),insertAfterEnd:(0,import_react2.useCallback)(v=>{x.insertAfterEnd(v)},[x])}}const DefaultSchemaToolbar=()=>null;DefaultSchemaToolbar.isNullComponent=!0;const useDesigner=()=>{const{designable:e}=useDesignable(),t=(0,import_react.useFieldSchema)(),o=(0,import_react2.useMemo)(()=>t["x-designer"]||t["x-toolbar"]?t["x-designer"]||t["x-toolbar"]:t["x-settings"]?SchemaToolbar:DefaultSchemaToolbar,[t]),r=useComponent(o);return e&&r||DefaultSchemaToolbar},useFieldProps$1=e=>{const t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),o=(0,import_react2.useContext)(import_react.SchemaExpressionScopeContext),r=(0,import_react2.useRef)();return r.current=o,e.toFieldProps(I(f({},t),{get scope(){return f(f({},t.scope),r.current)}}))};function useSchemaComponentContext(){return(0,import_react2.useContext)(SchemaComponentContext)}const useFieldComponentOptions=()=>{var e;const{getCollectionJoinField:t,getCollection:o}=useCollectionManager_deprecated(),r=(0,import_react.useFieldSchema)(),{getField:i}=useCollection_deprecated(),n=i(r.name)||t(r["x-collection-field"]),{t:l}=(0,import_react_i18next.useTranslation)(),{label:a}=((e=r["x-component-props"])==null?void 0:e.fieldNames)||{};return(0,import_react2.useMemo)(()=>{if(!n||!(n!=null&&n.interface)||!["o2o","oho","obo","o2m","linkTo","m2o","m2m"].includes(n.interface))return;const c=o(n.target);if((c==null?void 0:c.template)==="file")return[{label:l("Record picker"),value:"CollectionField"},{label:l("Select"),value:"AssociationSelect"}];switch(n.interface){case"o2m":return[{label:l("Record picker"),value:"CollectionField"},{label:l("Subtable"),value:"TableField"},{label:l("Select"),value:"AssociationSelect"}];case"m2o":case"m2m":case"linkTo":return[{label:l("Record picker"),value:"CollectionField"},{label:l("Select"),value:"AssociationSelect"}];default:return[{label:l("Record picker"),value:"CollectionField"},{label:l("Subform"),value:"FormField"},{label:l("Select"),value:"AssociationSelect"}]}},[l,n==null?void 0:n.interface,a])},useFieldTitle=()=>{var e;const t=(0,import_react.useField)(),o=(0,import_react.useFieldSchema)(),r=useCollection(),i=useCollectionManager(),n=(r==null?void 0:r.getField(o.name))||(i==null?void 0:i.getCollectionField(o["x-collection-field"])),l=useCompile();(0,import_react2.useEffect)(()=>{var a;t!=null&&t.title||(t.title=l((a=n==null?void 0:n.uiSchema)==null?void 0:a.title))},[(e=n==null?void 0:n.uiSchema)==null?void 0:e.title])},useDef$4=()=>({}),useProps=(e={})=>{const t=e,{useProps:o=useDef$4}=t,r=W(t,["useProps"]);let i=o;typeof o!="function"&&(i=useDef$4);const n=i();return f(f({},r),n)};function useParsedFilter({filterOption:e,onFilterChange:t}){const{parseFilter:o,findVariable:r}=useParseDataScopeFilter(),[i,n]=(0,import_react2.useState)({}),[l,a]=(0,import_react2.useState)(!!e);return(0,import_react2.useEffect)(()=>{if(!e)return;const c=()=>O(this,null,function*(){a(!0);const d=yield o(e);a(!1),n(d),t==null||t(d)});c();const u=import_lodash.default.debounce(c,DEBOUNCE_WAIT);(0,import_reactive.reaction)(()=>(0,import_client.flatten)(e,{breakOn({key:d}){return d.startsWith("$")&&d!=="$and"&&d!=="$or"},transformValue(d){if(!isVariable$1(d))return d;const m=getVariableName(d),p=r(m);let h=null;const g=getPath(d).split(".");return g.forEach((x,_)=>{const v=g.slice(0,_+1).join("."),b=(0,import_client.getValuesByPath)({[m]:(p==null?void 0:p.ctx)||{}},v);import_lodash.default.isEmpty(b)||(h=b)}),h}}),u,{equals:import_lodash.default.isEqual})},[JSON.stringify(e),o,r]),{filter:i,parseVariableLoading:l}}const useParentRecordCommon=e=>{const t=useCollectionRecordData();if(e)return t},useTableBlockDecoratorProps=e=>{var t;const{params:o,parseVariableLoading:r}=useTableBlockParams(e),i=useParentRecordCommon(e.association),n=(t=useDataSourceManager().getDataSource(e.dataSource))==null?void 0:t.collectionManager.getCollection(e.collection);return{params:o,parentRecord:i,parseVariableLoading:r,rowKey:(n==null?void 0:n.filterTargetKey)||"id"}};function useTableBlockParams(e){var t;const o=(0,import_react.useFieldSchema)(),{filter:r,parseVariableLoading:i}=useParsedFilter({filterOption:(t=e.params)==null?void 0:t.filter});return{params:(0,import_react2.useMemo)(()=>{const n=e.params||{},{dragSortBy:l}=(o==null?void 0:o["x-decorator-props"])||{};return e.dragSort&&l&&(n.sort=l),I(f({},n),{filter:r})},[o,r,e.dragSort,e.params]),parseVariableLoading:i}}const key="__isNewRecord__",isNewRecord=e=>(0,import_reactive.untracked)(()=>!!(e!=null&&e[key])),markRecordAsNew=e=>{if(!(0,import_lodash.isObject)(e))throw new Error("markRecordAsNew: record must be an object");return e[key]=!0,e},useDefaultLoading=()=>{var e;return!!((e=useDataBlockRequest())!=null&&e.loading)},withSkeletonComponent=(e,t)=>{const{useLoading:o=useDefaultLoading,displayName:r,SkeletonComponent:i=import_antd.Skeleton}=t||{},n=import_react2.default.memo(l=>{const a=o(),c=(0,import_react2.useRef)(!1),u=(0,import_react2.useDeferredValue)(a);return!c.current&&u?(0,import_jsx_runtime.jsx)(i,{}):(c.current=!0,(0,import_jsx_runtime.jsx)(e,f({},l)))});return n.displayName=r||`${e.displayName}(withSkeletonComponent)`||`${e.name}(withSkeletonComponent)`,n},getActionValue=(e,t)=>{const o=r=>(r==null?void 0:r.mode)==="constant"?r.value:null;switch(!0){case[ActionType.Color,ActionType.BackgroundColor,ActionType.TextAlign,ActionType.FontSize,ActionType.FontWeight,ActionType.FontStyle].includes(e):return o(t);default:return null}},getSatisfiedActions=(e,t)=>O(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield Promise.all(o.filter(l=>!l.disabled).map(l=>O(void 0,null,function*(){return(yield conditionAnalyses({ruleGroup:l.condition,variables:r,localVariables:i,conditionType:l.conditionType},n))?l:null})))).filter(Boolean).map(l=>l.actions).flat()}),getSatisfiedValues=(e,t)=>O(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield getSatisfiedActions({rules:o,variables:r,localVariables:i},n)).map(l=>I(f({},l),{value:getActionValue(l.operator,l.value)}))}),getSatisfiedValueMap=(e,t)=>O(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield getSatisfiedValues({rules:o,variables:r,localVariables:i},n)).reduce((l,a)=>I(f({},l),{[a.operator]:a.value}),{})});function useSatisfiedActionValues({formValues:e,category:t="default",rules:o,schema:r,form:i}){const[n,l]=(0,import_react2.useState)({}),a=(0,import_react.useFieldSchema)(),c=useVariables$1(),u=useLocalVariables$1({currentForm:{values:e}}),d=r??a,m=o??(d[LinkageRuleDataKeyMap[t]]||(d==null?void 0:d.parent[LinkageRuleDataKeyMap[t]])),p=useApp(),h=(0,import_react2.useCallback)(()=>{m&&e&&getSatisfiedValueMap({rules:m,variables:c,localVariables:u},p.jsonLogic).then(g=>{(0,import_lodash.isEmpty)(g)?l({}):l(g)}).catch(g=>{throw new Error(g.message)})},[c,u,m,e]);return(0,import_react2.useEffect)(()=>{if(h(),i){const g=(0,import_shared.uid)();return i.addEffects(g,()=>{(0,import_core.onFormValuesChange)(()=>{h()})}),()=>{i.removeEffects(g)}}},[i,h,e]),{valueMap:n}}const GetStyleRules=import_react2.default.memo(({record:e,schema:t,onStyleChange:o})=>{const{valueMap:r}=useSatisfiedActionValues({formValues:e,category:"style",schema:t});return(0,import_react2.useEffect)(()=>{o(r)},[o,r]),null});GetStyleRules.displayName="GetStyleRules";const opacityStyle={opacity:.5},containerStyle={position:"relative"},spinStyle={display:"flex",alignItems:"center",justifyContent:"center",position:"absolute",left:0,right:0,height:"100%",maxHeight:400,zIndex:1e3},displayNone$3={display:"none"},HighPerformanceSpin=import_react2.default.memo(e=>(0,import_jsx_runtime.jsxs)("div",{style:containerStyle,children:[(0,import_jsx_runtime.jsx)(import_antd.Spin,I(f({},import_lodash.default.omit(e,"children")),{style:e.spinning?spinStyle:displayNone$3})),(0,import_jsx_runtime.jsx)("div",{style:e.spinning?opacityStyle:null,children:e.children})]}));var FilterBlockType=(e=>(e[e.FORM=0]="FORM",e[e.TABLE=1]="TABLE",e[e.TREE=2]="TREE",e[e.COLLAPSE=3]="COLLAPSE",e))(FilterBlockType||{});const mergeFilter=(e,t="$and")=>{const o=e.filter(r=>{if(r&&typeof r=="object"&&!Array.isArray(r))return Object.values(r).filter(i=>i!==void 0).length});return o.length===0?{}:o.length===1?o[0]:{[t]:o}},getSupportFieldsByAssociation=(e,t)=>{var o;return(o=t.associatedFields)==null?void 0:o.filter(r=>e==null?void 0:e.some(i=>i===r.target))},getSupportFieldsByForeignKey=(e,t)=>{var o;return(o=t.foreignKeyFields)==null?void 0:o.filter(r=>e.fields.some(i=>i.type!=="belongsTo"&&i.foreignKey===r.name&&i.target===r.collectionName))},useSupportedBlocks=e=>{const{getDataBlocks:t}=useFilterBlock(),o=(0,import_react.useFieldSchema)(),r=useCollection(),{getAllCollectionsInheritChain:i}=useAllCollectionsInheritChainGetter();if(e===0||e===3)return t().filter(n=>isSameCollection(n.collection,r));if(e===1||e===2)return t().filter(n=>{var l,a;return o["x-uid"]!==n.uid&&(isSameCollection(n.collection,r)||((l=getSupportFieldsByAssociation(i(r.name,r.dataSource),n))==null?void 0:l.length)||((a=getSupportFieldsByForeignKey(r,n))==null?void 0:a.length))})},transformToFilter=(e,t,o,r)=>(e=(0,import_client.flatten)(e,{breakOn({value:i,path:n}){if(["$match","$notMatch","$anyOf","$noneOf","$childIn","$childNotIn","$dateBetween","$in","$notIn"].includes(t[n]))return!0;const l=o(`${r}.${n}`);if(["datetime","datetimeNoTz","date","unixTimestamp","createdAt","updatedAt"].includes(l==null?void 0:l.interface))return!0;if(l!=null&&l.target){if(Array.isArray(i))return!0;const a=l.targetKey||"id";if(i&&i[a]!=null)return!0}return!1}}),{$and:Object.keys(e).map(i=>{let n=import_lodash.default.get(e,i);const l=o(`${r}.${i}`);return l!=null&&l.target&&["hasOne","hasMany","belongsTo","belongsToMany","belongsToArray"].includes(l.type)&&(n=(0,import_client.getValuesByPath)(n,l.targetKey||"id"),i=`${i}.${l.targetKey||"id"}`,(l==null?void 0:l.interface)==="chinaRegion"&&(n=import_lodash.default.last(n))),!n&&n!==0&&n!==!1?null:{[i]:{[t[i]||"$eq"]:n}}}).filter(Boolean)}),useAssociatedFields=()=>{var e;return((e=useCollection())==null?void 0:e.fields.filter(t=>isAssocField(t)))||[]},isAssocField=e=>["o2o","oho","obo","m2o","createdBy","updatedBy","o2m","m2m","linkTo","chinaRegion","mbm"].includes(e==null?void 0:e.interface),isSameCollection=(e,t)=>e.name===t.name&&e.dataSource===t.dataSource,useFilterAPI=()=>{const e=(0,import_react.useFieldSchema)(),{getDataBlocks:t}=useFilterBlock(),{targets:o,uid:r}=findFilterTargets(e),i=t(),[n,l]=(0,import_react2.useState)(()=>o&&o.some(u=>i.some(d=>d.uid===u.uid))),a=Object.keys(o||{});(0,import_react2.useEffect)(()=>{l(o&&o.some(u=>i.some(d=>d.uid===u.uid)))},[a.length,o,i]);const c=(0,import_react2.useCallback)((u,d="id",m="$eq")=>{const p=i.find(h=>h.uid===e.parent["x-uid"]);i.forEach(h=>{var g,x,_,v;let b=d;const y=o.find(j=>j.uid===h.uid);if(!y)return;import_lodash.default.isFunction(u)&&(u=u(y,h,getSourceKey$1(p,y.field))),import_lodash.default.isFunction(d)&&(b=d(y,h)),import_lodash.default.isFunction(m)&&(m=m(y));const C=((g=h.service.params)==null?void 0:g[0])||{},F=((_=(x=h.service.params)==null?void 0:x[1])==null?void 0:_.filters)||{};if(u!=null)F[r]={$and:[{[b]:{[m]:u}}]};else if((v=h.clearSelection)==null||v.call(h),delete F[r],h.dataLoadingMode==="manual")return h.clearData();const S=mergeFilter([...Object.values(F).map(j=>removeNullCondition(j)),h.defaultFilter]);h.doFilter(I(f({},C),{page:1,filter:S}),{filters:F})})},[i,o,r,e]);return{isConnected:n,doFilter:c}},isInFilterFormBlock=e=>{for(;e;){if(e["x-filter-targets"])return e["x-decorator"]==="FilterFormBlockProvider";e=e.parent}return!1};function getSourceKey$1(e,t){var o,r,i;const n=(o=e==null?void 0:e.associatedFields)==null?void 0:o.find(l=>l.foreignKey===t);return(n==null?void 0:n.sourceKey)||((i=(r=t==null?void 0:t.split)==null?void 0:r.call(t,"."))==null?void 0:i[1])}const AssociationFieldContext=(0,import_react2.createContext)({});AssociationFieldContext.displayName="AssociationFieldContext";const useInsertSchema$1=e=>{const t=(0,import_react.useFieldSchema)(),{insertAfterBegin:o}=useDesignable(),{isMobileLayout:r}=useMobileLayout();return(0,import_react2.useCallback)(i=>{r||t.reduceProperties((n,l)=>l["x-component"]==="AssociationField."+e?l:n,null)||o((0,import_cloneDeep.default)(i))},[e,t,o,r])};function useAssociationFieldContext(){return(0,import_react2.useContext)(AssociationFieldContext)}function useServiceOptions$1(e){var t,o,r,i,n,l,a,c,u,d;const{action:m="list",service:p,useOriginalFilter:h}=e,g=(0,import_react.useFieldSchema)(),x=(0,import_react.useField)(),{getField:_}=useCollection_deprecated(),{getCollectionJoinField:v}=useCollectionManager_deprecated(),b=useRecord(),{isNew:y}=useCollectionRecord()||{},C=((0,import_lodash.isString)((r=(o=(t=g==null?void 0:g["x-component-props"])==null?void 0:t.service)==null?void 0:o.params)==null?void 0:r.filter)?(l=(n=(i=x.componentProps)==null?void 0:i.service)==null?void 0:n.params)==null?void 0:l.filter:(u=(c=(a=g==null?void 0:g["x-component-props"])==null?void 0:a.service)==null?void 0:c.params)==null?void 0:u.filter)||((d=p==null?void 0:p.params)==null?void 0:d.filter),{filter:F}=useParsedFilter({filterOption:C,onFilterChange:()=>{y&&x.reset()}}),S=(0,import_react2.useMemo)(()=>_(g.name)||v(g==null?void 0:g["x-collection-field"]),[g]),j=b==null?void 0:b[S==null?void 0:S.sourceKey],P=(0,import_react2.useMemo)(()=>{const w=["oho","o2m"].includes(S==null?void 0:S.interface);return mergeFilter([mergeFilter([w&&!isInFilterFormBlock(g)&&S!=null&&S.foreignKey&&!h?{[S.foreignKey]:{$is:null}}:null,F]),w&&j!==void 0&&j!==null&&!isInFilterFormBlock(g)&&S!=null&&S.foreignKey&&!h?{[S.foreignKey]:{$eq:j}}:null],"$or")},[S==null?void 0:S.interface,S==null?void 0:S.foreignKey,g,F,j,h]);return(0,import_react2.useMemo)(()=>I(f({resource:S==null?void 0:S.target,action:m},p),{params:I(f({},p==null?void 0:p.params),{filter:P})}),[S==null?void 0:S.target,m,P,p])}const useFieldNames$1=(e={})=>{var t,o,r,i,n;const l=(0,import_react.useFieldSchema)(),a=((i=(r=(o=(t=l["x-component-props"])==null?void 0:t.field)==null?void 0:o.uiSchema)==null?void 0:r["x-component-props"])==null?void 0:i.fieldNames)||((n=l["x-component-props"])==null?void 0:n.fieldNames)||e.fieldNames;return f({label:"label",value:"value"},a)},SubFormContext=(0,import_react2.createContext)(null);SubFormContext.displayName="SubFormContext";const SubFormProvider=e=>{const t=(0,import_react2.useContext)(SubFormContext),{value:o,collection:r,fieldSchema:i,parent:n,skip:l}=e.value,a=(0,import_react2.useMemo)(()=>import_lodash.default.omitBy({value:o,collection:r,fieldSchema:i,skip:l,parent:n||(t!=null&&t.skip?t.parent:t)},import_lodash.default.isUndefined),[o,r,i,l,n,t]);return(0,import_jsx_runtime.jsx)(SubFormContext.Provider,{value:a,children:e.children})},useSubFormValue=()=>{const{value:e,collection:t,fieldSchema:o,parent:r}=(0,import_react2.useContext)(SubFormContext)||{};return{formValue:e,collection:t,fieldSchema:o,parent:r}},useColumnSettings=e=>{const{t}=(0,import_react_i18next.useTranslation)(),o=`nocobase_table_column_settings_${e}`,r=(0,import_react2.useCallback)(()=>{try{const l=localStorage.getItem(o);return l?JSON.parse(l):null}catch(l){return console.warn("Failed to parse table column settings from localStorage:",l),null}},[o]),i=(0,import_react2.useCallback)(l=>{try{const a=JSON.stringify(l);localStorage.setItem(o,a);const c=new CustomEvent("nocobase-table-settings-changed",{detail:{key:o,tableId:e,settings:l}});window.dispatchEvent(c)}catch(a){console.warn("Failed to save table column settings to localStorage:",a),import_antd.message.error(t("Failed to save table settings"))}},[o,e,t]),n=(0,import_react2.useCallback)(()=>{try{localStorage.removeItem(o);const l=new CustomEvent("nocobase-table-settings-changed",{detail:{key:o,tableId:e,settings:null}});window.dispatchEvent(l)}catch(l){console.warn("Failed to clear table column settings from localStorage:",l),import_antd.message.error(t("Failed to clear table settings"))}},[o,e,t]);return{getSettings:r,saveSettings:i,clearSettings:n}},useTableColumnIntegration=(e,t=!0)=>{const o=(0,import_react.useFieldSchema)(),r=(o==null?void 0:o["x-uid"])||"default",{getSettings:i}=useColumnSettings(r),[n,l]=(0,import_react2.useState)(0);(0,import_react2.useEffect)(()=>{const c=u=>{const{key:d,tableId:m}=u.detail;(d.includes(r)||m===r)&&l(p=>p+1)};return window.addEventListener("nocobase-table-settings-changed",c),()=>{window.removeEventListener("nocobase-table-settings-changed",c)}},[r]);const a=(0,import_react2.useMemo)(()=>i(),[i,n]);return{columns:(0,import_react2.useMemo)(()=>{if(!t||!a||a.length===0)return e;const c=new Map;a.forEach(h=>{c.set(h.key,h)});const u=e.map(h=>{const g=c.get(h.key);if(g){const x=h.columnHidden||!g.visible,_=g.width||h.width,v=g.fixed||h.fixed;return I(f({},h),{columnHidden:x,fixed:v,width:_,_orderIndex:g.order})}return h}),d=[],m=[];u.forEach(h=>{h._orderIndex!==void 0?d.push(h):m.push(h)}),d.sort((h,g)=>(h._orderIndex||0)-(g._orderIndex||0));const p=[...d,...m];return p.forEach(h=>{delete h._orderIndex}),p},[e,a])}},TableSkeleton=({rows:e=5,columns:t=6})=>{const{token:o}=useToken$1(),r=o.controlHeight*2.06,i=o.controlHeight*1.75,n=(0,import_react2.useMemo)(()=>import_css.css`
|
|
66
66
|
&.skeleton-wrapper {
|
|
67
67
|
width: 100%;
|
|
68
68
|
background: ${o.colorBgContainer};
|
|
@@ -1690,7 +1690,7 @@ https://requirejs.org/docs/errors.html#`+e);return i.requireType=e,i.requireModu
|
|
|
1690
1690
|
border-top-color: transparent;
|
|
1691
1691
|
background-color: transparent;
|
|
1692
1692
|
}
|
|
1693
|
-
`,children:"x"})})})]})},confirm$1=(0,import_flow_engine.defineAction)({name:"confirm",title:(0,import_flow_engine.escapeT)("Confirmation"),uiSchema:{enable:{type:"boolean",title:(0,import_flow_engine.escapeT)("Enable secondary confirmation"),"x-decorator":"FormItem","x-component":"Switch"},title:{type:"string",title:(0,import_flow_engine.escapeT)("Title"),"x-decorator":"FormItem","x-component":TextAreaWithContextSelector,"x-component-props":{rows:2}},content:{type:"string",title:(0,import_flow_engine.escapeT)("Content"),"x-decorator":"FormItem","x-component":TextAreaWithContextSelector,"x-component-props":{rows:3}}},defaultParams:{enable:!0,title:(0,import_flow_engine.escapeT)("Please Confirm"),content:(0,import_flow_engine.escapeT)("Are you sure you want to perform the action?")},handler(e,t){return O(this,null,function*(){t.enable&&((yield e.modal.confirm({title:e.t(t.title),content:e.t(t.content),okText:e.t("Confirm"),cancelText:e.t("Cancel")}))||e.exit())})}}),FilterGroup=(0,import_reactive_react.observer)(e=>{const{value:t={logic:"$and",items:[]},FilterItem:o,showBorder:r=!1,onRemove:i,onChange:n}=e,{token:l}=import_antd.theme.useToken(),{t:a}=(0,import_react_i18next.useTranslation)();t.logic||(t.logic="$and"),Array.isArray(t.items)||(t.items=[]);const{logic:c,items:u}=t,d=r?{position:"relative",border:`1px dashed ${l.colorBorder}`,padding:l.paddingSM,marginBottom:l.marginXS,borderRadius:l.borderRadius}:{position:"relative",marginBottom:l.marginXS},m=v=>{t.logic=v},p=()=>{u.push({path:"",operator:"",value:""}),n==null||n(t)},h=()=>{u.push({logic:"$and",items:[]}),n==null||n(t)},g=v=>{u.splice(v,1),n==null||n(t)},x=v=>"path"in v||"operator"in v||"value"in v,_=v=>"logic"in v&&"items"in v;return(0,import_jsx_runtime.jsxs)("div",{style:d,children:[r&&i&&(0,import_jsx_runtime.jsx)("a",{role:"button","aria-label":"icon-close",children:(0,import_jsx_runtime.jsx)(import_icons.CloseCircleOutlined,{style:{position:"absolute",right:10,top:10,color:"#bfbfbf"},onClick:i})}),(0,import_jsx_runtime.jsx)("div",{style:{marginBottom:8,color:l.colorText},children:(0,import_jsx_runtime.jsxs)("span",{children:[a("Meet")," ",(0,import_jsx_runtime.jsxs)(import_antd.Select,{role:"button","data-testid":"filter-select-all-or-any",style:{width:"auto"},value:c,onChange:m,children:[(0,import_jsx_runtime.jsx)(import_antd.Select.Option,{value:"$and",children:a("All")}),(0,import_jsx_runtime.jsx)(import_antd.Select.Option,{value:"$or",children:a("Any")})]})," ",a("conditions in the group")]})}),(0,import_jsx_runtime.jsx)("div",{children:u.map((v,b)=>_(v)?(0,import_jsx_runtime.jsx)(FilterGroup,{value:v,FilterItem:o,showBorder:!0,onRemove:()=>g(b),onChange:n},b):x(v)?o?(0,import_jsx_runtime.jsx)("div",{style:{marginBottom:8,display:"flex",alignItems:"flex-end"},children:(0,import_jsx_runtime.jsxs)(import_antd.Space,{style:{flex:1,minWidth:0},children:[(0,import_jsx_runtime.jsx)(o,{value:v}),(0,import_jsx_runtime.jsx)("a",{role:"button","aria-label":"icon-close",style:{marginLeft:8,flex:"0 0 auto"},children:(0,import_jsx_runtime.jsx)(import_icons.CloseCircleOutlined,{onClick:()=>g(b),style:{color:"#bfbfbf"}})})]})},b):(0,import_jsx_runtime.jsx)("div",{style:{marginBottom:8,display:"flex",alignItems:"flex-end"},children:(0,import_jsx_runtime.jsxs)(import_antd.Space,{style:{flex:1,minWidth:0},children:[(0,import_jsx_runtime.jsxs)("span",{children:[v.path," ",v.operator," ",String(v.value)]}),(0,import_jsx_runtime.jsx)("a",{role:"button","aria-label":"icon-close",style:{marginLeft:8,flex:"0 0 auto"},children:(0,import_jsx_runtime.jsx)(import_icons.CloseCircleOutlined,{onClick:()=>g(b),style:{color:"#bfbfbf"}})})]})},b):(0,import_jsx_runtime.jsx)("div",{style:{marginBottom:8,display:"flex",alignItems:"flex-end"},children:(0,import_jsx_runtime.jsxs)(import_antd.Space,{style:{flex:1,minWidth:0},children:[(0,import_jsx_runtime.jsx)("span",{style:{color:l.colorTextTertiary},children:"Invalid filter item"}),(0,import_jsx_runtime.jsx)("a",{role:"button","aria-label":"icon-close",style:{marginLeft:8,flex:"0 0 auto"},children:(0,import_jsx_runtime.jsx)(import_icons.CloseCircleOutlined,{onClick:()=>g(b),style:{color:"#bfbfbf"}})})]})},b))}),(0,import_jsx_runtime.jsxs)(import_antd.Space,{size:16,style:{marginTop:8,marginBottom:8},children:[(0,import_jsx_runtime.jsx)(import_antd.Button,{style:{padding:0},type:"link",size:"small",icon:(0,import_jsx_runtime.jsx)(import_icons.PlusOutlined,{}),onClick:p,children:a("Add condition")}),(0,import_jsx_runtime.jsx)(import_antd.Button,{style:{padding:0},type:"link",size:"small",icon:(0,import_jsx_runtime.jsx)(import_icons.PlusOutlined,{}),onClick:h,children:a("Add condition group")})]})]})},{displayName:"FilterGroup"}),FilterContainer$1=(0,import_reactive_react.observer)(e=>{var t;const{value:o,FilterItem:r,ctx:i}=e;o.logic||(o.logic="and"),Array.isArray(o.items)||(o.items=[]);const n=()=>{var c;(c=i==null?void 0:i.model)!=null&&c.dispatchEvent&&i.model.dispatchEvent("reset")},l=()=>{var c;(c=i==null?void 0:i.model)!=null&&c.dispatchEvent&&i.model.dispatchEvent("submit")},a=((t=i==null?void 0:i.model)==null?void 0:t.translate)||(c=>c);return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(FilterGroup,{value:o,FilterItem:r}),(0,import_jsx_runtime.jsxs)(import_antd.Space,{style:{width:"100%",display:"flex",justifyContent:"flex-end"},children:[(0,import_jsx_runtime.jsx)(import_antd.Button,{onClick:n,children:a("Reset")}),(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"primary",onClick:l,children:a("Submit")})]})]})},{displayName:"FilterContent"}),fieldsToOptions=(e,t,o,r)=>e.map(i=>field2option(i,t,o,r)).filter(Boolean),field2option=(e,t,o,r)=>{var i;if(o.length&&t===1&&o.includes(e.name)||!e.interface||e.filterable===!1)return;const n=e.getInterfaceOptions();if(!(n!=null&&n.filterable))return;const{nested:l,children:a,operators:c}=n.filterable,u={name:e.name,type:e.type,target:e.target,title:r(e.title),schema:e==null?void 0:e.uiSchema,operators:(((i=c==null?void 0:c.filter)==null?void 0:i.call(c,d=>!(d!=null&&d.visible)||d.visible(e)))||[]).map(d=>I(f({},d),{label:r(d.label)}))};if(!(e.target&&t>2)){if(t>2)return u;if(a!=null&&a.length&&(u.children=a),l){const d=e.getFields().filter(p=>p.target!=="attachments"&&p.interface!=="formula"),m=fieldsToOptions(d,t+1,o,r).filter(Boolean);u.children=u.children||[],u.children.push(...m)}return u}},FilterItem=(0,import_reactive_react.observer)(e=>{var t;const{path:o,operator:r,value:i}=e.value,n=e.model,l=((t=n.context.blockModel.collection)==null?void 0:t.getFields().filter(g=>g.target!=="attachments"))||[],a=getIgnoreFieldsNames(n.props.filterableFieldsNames||[],l.map(g=>g.name)),c=n.translate,u=fieldsToOptions(l.filter(g=>g.target!=="attachments"&&g.interface!=="formula"&&!["belongsTo","belongsToMany","hasOne","hasMany","oho","obo","m2o","o2m","m2m"].includes(g.type)),1,e.noIgnore?[]:a,c).filter(Boolean),d=(0,import_react2.useMemo)(()=>{const g=u.find(x=>x.name===o);return(g==null?void 0:g.operators)||[]},[u,o]),m=g=>{var x;e.value.path=g;const _=u.find(v=>v.name===g);((x=_==null?void 0:_.operators)==null?void 0:x.length)>0?e.value.operator=_.operators[0].value:e.value.operator="",e.value.value=""},p=g=>{e.value.operator=g},h=g=>{e.value.value=g.target.value};return(0,import_jsx_runtime.jsxs)(import_antd.Space,{children:[(0,import_jsx_runtime.jsx)(import_antd.Select,{style:{width:200},placeholder:c("Select field"),value:o||void 0,onChange:m,children:u.map(g=>(0,import_jsx_runtime.jsx)(import_antd.Select.Option,{value:g.name,children:g.title},g.name))}),(0,import_jsx_runtime.jsx)(import_antd.Select,{style:{width:120},placeholder:c("Select operator"),value:r||void 0,onChange:p,disabled:!o||d.length===0,children:d.map(g=>(0,import_jsx_runtime.jsx)(import_antd.Select.Option,{value:g.value,children:g.label},g.value))}),(0,import_jsx_runtime.jsx)(import_antd.Input,{style:{width:200},placeholder:c("Enter value"),value:i,onChange:h})]})},{displayName:"FilterItem"});function getIgnoreFieldsNames(e,t){return t==null?void 0:t.filter(o=>!e.includes(o))}const{DateFilterDynamicComponent:DateFilterDynamicComponentLazy$1}=lazy(()=>Promise.resolve().then(()=>require("./index-C3fHjsMw-49uqMRUB.js")),"DateFilterDynamicComponent");function createStaticInputRenderer$1(e,t,o){var r;const i=e==null?void 0:e["x-component"],n=((r=t==null?void 0:t.uiSchema)==null?void 0:r["x-component-props"])||{},l=(e==null?void 0:e["x-component-props"])||{},a=(0,import_merge.default)({},n,l),c=(e==null?void 0:e.enum)||[],u=f({style:f({width:200},(a==null?void 0:a.style)||{}),placeholder:(a==null?void 0:a.placeholder)||o("Enter value")},a);return d=>{const m=d||{},{value:p,onChange:h}=m,g=W(m,["value","onChange"]);return i==="InputNumber"?(0,import_jsx_runtime.jsx)(import_antd.InputNumber,I(f(f({},u),g),{value:p,onChange:h})):i==="NumberPicker"?(0,import_jsx_runtime.jsx)(import_antd_v5.NumberPicker,I(f(f({},u),g),{value:p,onChange:h})):i==="Switch"?(0,import_jsx_runtime.jsx)(import_antd.Switch,I(f(f({},u),g),{checked:!!p,onChange:h})):i==="Select"?(0,import_jsx_runtime.jsx)(import_antd.Select,I(f(f({options:c},u),g),{value:p,onChange:h})):i==="DateFilterDynamicComponent"?(0,import_jsx_runtime.jsx)(DateFilterDynamicComponentLazy$1,I(f(f({},u),g),{value:p,onChange:h})):(0,import_jsx_runtime.jsx)(import_antd.Input,I(f(f({},u),g),{value:p,onChange:x=>{var _;return h==null?void 0:h((_=x==null?void 0:x.target)==null?void 0:_.value)}}))}}const VariableFilterItem=(0,import_reactive_react.observer)(({value:e,model:t,rightAsVariable:o,rightMetaTree:r})=>{const i=(0,import_flow_engine.useFlowViewContext)(),n=t.translate,{path:l,operator:a,value:c}=e,[u,d]=(0,import_react2.useState)(null),m=(0,import_react2.useMemo)(()=>{var w,M,R;if(!(u!=null&&u.interface))return[];const B=(w=t.context.app)==null?void 0:w.dataSourceManager,D=(M=B==null?void 0:B.collectionFieldInterfaceManager)==null?void 0:M.getFieldInterface(u.interface);return(((R=D==null?void 0:D.filterable)==null?void 0:R.operators)||[]).filter(T=>!T.visible||T.visible(u))},[u,t]);(0,import_react2.useEffect)(()=>{m.length>0&&!import_lodash.default.find(m,w=>w.value===e.operator)&&(e.operator="",e.value="")},[m,e]);const p=(0,import_react2.useMemo)(()=>m.map(w=>{var M,R;return{value:w.value,label:typeof w.label=="string"?n(w.label):((R=(M=w.label)==null?void 0:M.toString)==null?void 0:R.call(M))||String(w.label)}}),[m,n]),h=(0,import_react2.useCallback)((w,M)=>{e.path=w||"",M&&d(M)},[e]),g=(0,import_react2.useMemo)(()=>({resolveValueFromPath:w=>(d(w),(w==null?void 0:w.paths.slice(1).join("."))||null),resolvePathFromValue(w){return w&&["collection",...String(w).split(".")]}}),[]),x=(0,import_react2.useCallback)(w=>{e.operator=w;const M=m.find(R=>R.value===w);M!=null&&M.noValue&&(e.value=!0)},[m,e]),_=(0,import_react2.useMemo)(()=>m.find(w=>w.value===a),[m,a]),v=(0,import_react2.useMemo)(()=>{const w=(u==null?void 0:u.uiSchema)||{},M=(_==null?void 0:_.schema)||{};return(0,import_merge.default)({},w,M)},[u,_]),b=import_react2.default.useRef(n);import_react2.default.useEffect(()=>{b.current=n},[n]);const y=import_react2.default.useCallback(w=>{var M,R;return(R=(M=b.current)==null?void 0:M.call(b,w))!=null?R:w},[]),C=(0,import_react2.useMemo)(()=>createStaticInputRenderer$1(v,u,y),[v,u,y]),F=(0,import_react2.useCallback)(()=>(0,import_jsx_runtime.jsx)("div",{style:{flex:"1 1 40%",minWidth:160,maxWidth:"100%"},children:(0,import_jsx_runtime.jsx)(C,{value:c,onChange:w=>e.value=w})}),[C,c,e]),S=(0,import_react2.useMemo)(()=>function(){return(0,import_jsx_runtime.jsx)(import_antd.Input,{placeholder:`<${n("Null")}>`,readOnly:!0})},[n]),j=(0,import_react2.useMemo)(()=>()=>O(void 0,null,function*(){const w=typeof r=="function"?yield r():r||i.getPropertyMetaTree();return[{title:n("Constant"),name:"constant",type:"string",paths:["constant"],render:C},{title:n("Null"),name:"null",type:"object",paths:["null"],render:S},...Array.isArray(w)?w:[]]}),[r,i,C,S,n]),P=(0,import_react2.useMemo)(()=>({renderInputComponent:w=>{var M;const R=(M=w==null?void 0:w.paths)==null?void 0:M[0];return R==="constant"?C:R==="null"?S:null},resolveValueFromPath:w=>{var M;const R=(M=w==null?void 0:w.paths)==null?void 0:M[0];if(R==="constant")return"";if(R==="null")return null},resolvePathFromValue:w=>w===null?["null"]:(0,import_flow_engine.parseValueToPath)(w)||["constant"]}),[S,C]);return(0,import_jsx_runtime.jsxs)(import_antd.Space,{wrap:!0,style:{width:"100%"},children:[(0,import_jsx_runtime.jsx)(import_flow_engine.VariableInput,{value:l,metaTree:()=>t.context.getPropertyMetaTree("{{ ctx.collection }}"),onChange:h,converters:g,showValueComponent:!1,style:{flex:"1 1 40%",minWidth:160,maxWidth:"100%"},onlyLeafSelectable:!0,placeholder:n("Select field")}),(0,import_jsx_runtime.jsx)(import_antd.Select,{style:{flex:"0 0 140px",minWidth:120,maxWidth:"100%"},placeholder:n("Comparison"),value:a||void 0,onChange:x,children:p.map(w=>(0,import_jsx_runtime.jsx)(import_antd.Select.Option,{value:w.value,children:w.label},w.value))}),!(_!=null&&_.noValue)&&(o?(0,import_jsx_runtime.jsx)(import_flow_engine.VariableInput,{value:c,onChange:w=>e.value=w,metaTree:j,converters:P,showValueComponent:!0,style:{flex:"1 1 40%",minWidth:160,maxWidth:"100%"},placeholder:n("Enter value")}):F())]})});function normalizeUiSchemaEnumToOptions(e=[]){return Array.isArray(e)?e.map(t=>{var o;if(t&&typeof t=="object"&&!Array.isArray(t)){const r=t,i=typeof r.label<"u",n=typeof r.value<"u",l=i?r.label:String((o=r.value)!=null?o:""),a=n?r.value:l,c={label:l,value:a};return r.color&&(c.color=r.color),r.icon&&(c.icon=r.icon),c}return{label:String(t),value:t}}):[]}function ensureOptionsFromUiSchemaEnumIfAbsent(e,t){var o,r,i,n;const l=t==null?void 0:t.interface;if(!["radioGroup","checkboxGroup","select","multipleSelect"].includes(l)||Array.isArray((o=e.props)==null?void 0:o.options)&&((i=(r=e.props)==null?void 0:r.options)==null?void 0:i.length)>0)return!1;const a=(n=t.uiSchema)==null?void 0:n.enum;if(!Array.isArray(a)||a.length===0)return!1;const c=normalizeUiSchemaEnumToOptions(a);return c.length?(e.setProps({options:c}),!0):!1}const{DateFilterDynamicComponent:DateFilterDynamicComponentLazy}=lazy(()=>Promise.resolve().then(()=>DateFilterDynamicComponent$1),"DateFilterDynamicComponent");function createStaticInputRenderer(e,t,o){var r,i,n;const l=e==null?void 0:e["x-component"],a=((r=t==null?void 0:t.uiSchema)==null?void 0:r["x-component-props"])||{},c=(e==null?void 0:e["x-component-props"])||{},u=(0,import_merge.default)({},a,c),d=Array.isArray((i=t==null?void 0:t.uiSchema)==null?void 0:i.enum)?(n=t==null?void 0:t.uiSchema)==null?void 0:n.enum:void 0,m=d?normalizeUiSchemaEnumToOptions(d):void 0,p=f({style:f({width:200},(u==null?void 0:u.style)||{}),placeholder:(u==null?void 0:u.placeholder)||o("Enter value")},u);return h=>{const g=h||{},{value:x,onChange:_}=g,v=W(g,["value","onChange"]);if(l==="InputNumber")return(0,import_jsx_runtime.jsx)(import_antd.InputNumber,I(f(f({},p),v),{value:x,onChange:_}));if(l==="NumberPicker")return(0,import_jsx_runtime.jsx)(import_antd_v5.NumberPicker,I(f(f({},p),v),{value:x,onChange:_}));if(l==="Switch")return(0,import_jsx_runtime.jsx)(import_antd.Switch,I(f(f({},p),v),{checked:!!x,onChange:_}));if(l==="Select"){const b=Array.isArray(p==null?void 0:p.options)&&p.options.length>0||!m?p:I(f({},p),{options:m});return(0,import_jsx_runtime.jsx)(import_antd.Select,I(f(f({},b),v),{value:x,onChange:_}))}return l==="DateFilterDynamicComponent"?(0,import_jsx_runtime.jsx)(DateFilterDynamicComponentLazy,I(f(f({},p),v),{value:x,onChange:_})):(0,import_jsx_runtime.jsx)(import_antd.Input,I(f(f({},p),v),{value:x,onChange:b=>{var y;return _==null?void 0:_((y=b==null?void 0:b.target)==null?void 0:y.value)}}))}}const fallbackStringOperators=[{value:"$includes",label:"contains",selected:!0},{value:"$notIncludes",label:"does not contain"},{value:"$eq",label:"is"},{value:"$ne",label:"is not"},{value:"$empty",label:"is empty",noValue:!0},{value:"$notEmpty",label:"is not empty",noValue:!0}],LinkageFilterItem=(0,import_reactive_react.observer)(e=>{var t;const{value:o,model:r}=e,i=(0,import_flow_engine.useFlowViewContext)(),n=r.translate,{path:l,operator:a,value:c}=o||{},[u,d]=(0,import_react2.useState)(null),m=(0,import_react2.useRef)(!1),p=(0,import_react2.useMemo)(()=>{if(!u)return"";const M=u.interface||"",R=Array.isArray(u.paths)?u.paths.join("."):"";return`${M}|${R}`},[u]),h=(0,import_react2.useMemo)(()=>u!=null&&u.interface?(r.context.app.dataSourceManager.collectionFieldInterfaceManager.getFieldInterface(u.interface).filterable.operators||[]).filter(M=>!M.visible||M.visible(u)).map(M=>({value:M.value,label:typeof M.label=="string"?M.label:String(M.label),noValue:!!M.noValue,schema:M.schema,selected:!!M.selected})):u?fallbackStringOperators:[],[p,r]),g=(0,import_react2.useMemo)(()=>h.map(M=>({value:M.value,label:n(M.label)})),[h,n]);(0,import_react2.useEffect)(()=>{if(h.length!==0){if(!a){if(m.current){const M=h.find(R=>R.selected)||h[0];o.operator=(M==null?void 0:M.value)||"",M!=null&&M.noValue&&(o.value=""),m.current=!1}return}if(!h.some(M=>M.value===a)){const M=h.find(R=>R.selected)||h[0];o.operator=(M==null?void 0:M.value)||"",M!=null&&M.noValue&&(o.value="")}}},[h,a,o]);const x=(0,import_react2.useMemo)(()=>h.find(M=>M.value===a),[h,a]),_=(0,import_react2.useMemo)(()=>{const M=(u==null?void 0:u.uiSchema)||{},R=(x==null?void 0:x.schema)||{};return(0,import_merge.default)({},M,R)},[u,x]),v=(0,import_react2.useRef)(n);(0,import_react2.useEffect)(()=>{v.current=n},[n]);const b=(0,import_react2.useCallback)(M=>{var R,B;return(B=(R=v.current)==null?void 0:R.call(v,M))!=null?B:M},[]),y=(0,import_react2.useMemo)(()=>createStaticInputRenderer(_,u,b),[_,u,b]),C=(0,import_react2.useMemo)(()=>function(){return(0,import_jsx_runtime.jsx)(import_antd.Input,{placeholder:`<${n("Null")}>`,readOnly:!0})},[n]),F=(0,import_react2.useMemo)(()=>()=>O(void 0,null,function*(){const M=(r==null?void 0:r.context.getPropertyMetaTree())||i.getPropertyMetaTree();return[{title:n("Constant"),name:"constant",type:"string",paths:["constant"]},{title:n("Null"),name:"null",type:"object",paths:["null"]},...Array.isArray(M)?M:[]]}),[i,r,n]),S=(0,import_react2.useCallback)(()=>{var M,R;return((R=(M=r==null?void 0:r.context)==null?void 0:M.getPropertyMetaTree)==null?void 0:R.call(M))||i.getPropertyMetaTree()},[i,r]),j=(0,import_react2.useMemo)(()=>({renderInputComponent:M=>{var R;const B=(R=M==null?void 0:M.paths)==null?void 0:R[0];return B==="constant"?y:B==="null"?C:null},resolveValueFromPath:M=>{var R;const B=(R=M==null?void 0:M.paths)==null?void 0:R[0];if(B==="constant")return"";if(B==="null")return null},resolvePathFromValue:M=>M===null?["null"]:(0,import_flow_engine.parseValueToPath)(M)||["constant"]}),[C,y]),P=(0,import_react2.useCallback)((M,R)=>{const B=o.path||"",D=M||"",T=D!==B;o.path=D,T&&B&&(o.operator="",o.value="",m.current=!0),!B&&D&&!o.operator&&(m.current=!0),R&&d(R)},[o]),w=(0,import_react2.useCallback)(M=>{o.operator=M;const R=h.find(B=>B.value===M);R!=null&&R.noValue&&(o.value="")},[o,h]);return(0,import_jsx_runtime.jsxs)(import_antd.Space,{wrap:!0,style:{width:"100%"},children:[(0,import_jsx_runtime.jsx)(import_flow_engine.VariableInput,{value:l,onChange:P,metaTree:S,showValueComponent:!0,style:{flex:"1 1 40%",minWidth:160,maxWidth:"100%"},placeholder:n("Select variable"),onlyLeafSelectable:!0}),(0,import_jsx_runtime.jsx)(import_antd.Select,{style:{flex:"0 0 140px",minWidth:120,maxWidth:"100%"},placeholder:n("Comparison"),value:a||void 0,onChange:w,children:g.map(M=>(0,import_jsx_runtime.jsx)(import_antd.Select.Option,{value:M.value,children:M.label},M.value))}),!((t=h.find(M=>M.value===a))!=null&&t.noValue)&&(0,import_jsx_runtime.jsx)(import_flow_engine.VariableInput,{value:c,onChange:M=>o.value=M,metaTree:F,converters:j,showValueComponent:!0,style:{flex:"1 1 40%",minWidth:160,maxWidth:"100%"},placeholder:n("Enter value"),clearValue:""})]})}),dataScope=(0,import_flow_engine.defineAction)({name:"dataScope",title:(0,import_client.tval)("Data scope"),uiMode:{type:"dialog",props:{width:800}},uiSchema:{filter:{type:"object","x-decorator":"FormItem","x-component":function e(t){const o=(0,import_flow_engine.useFlowSettingsContext)();return(0,import_jsx_runtime.jsx)(FilterGroup,{value:t.value,FilterItem:r=>(0,import_jsx_runtime.jsx)(VariableFilterItem,I(f({},r),{model:o.model,rightAsVariable:!0}))})}}},defaultParams(e){return{filter:{logic:"$and",items:[]}}},handler(e,t){return O(this,null,function*(){var o;const r=(o=e.model)==null?void 0:o.resource;if(!r)return;const i=(0,import_client.removeNullCondition)((0,import_client.transformFilter)(t.filter));(0,import_client.isEmptyFilter)(i)?r.removeFilterGroup(e.model.uid):r.addFilterGroup(e.model.uid,i)})}});function SkeletonFallback(e){return(0,import_jsx_runtime.jsx)(import_antd.Card,I(f({},e),{children:(0,import_jsx_runtime.jsx)(import_antd.Skeleton,{paragraph:{rows:3}})}))}class RouteModel extends import_flow_engine.FlowModel{}RouteModel.registerFlow({key:"popupSettings",on:"click",steps:{openView:{use:"openView",defaultParams(e){return{mode:"embed",preventClose:!0,pageModelClass:"RootPageModel"}}}}});function resolveViewParamsToViewList(e,t,o){return O(this,null,function*(){const r=t.map((l,a)=>O(this,null,function*(){let c;if(a===0?c=o:c=e.getModel(l.viewUid,!0)||(yield e.loadModel({uid:l.viewUid})),!c)throw new Error(`Model with uid ${l.viewUid} not found`);return{params:l,model:c,hidden:import_flow_engine.observable.ref(!1),index:a}})),i=yield Promise.all(r);let n=!1;for(let l=i.length-1;l>=0;l--){const a=i[l];getViewType(a)==="embed"&&!n?(n=!0,a.hidden.value=!1):a.hidden.value=n}return i})}function getViewType(e){if(e.model instanceof RouteModel)return"embed";const t=e.model.getStepParams("popupSettings","openView");return(t==null?void 0:t.mode)||"drawer"}function getViewDiffAndUpdateHidden(e,t){const o=new Map,r=new Map;e.forEach(l=>{o.set(`${l.params.viewUid}_${l.index}`,l)}),t.forEach(l=>{r.set(`${l.params.viewUid}_${l.index}`,l)});const i=[];o.forEach((l,a)=>{r.has(a)?l.hidden.value=r.get(a).hidden.value:i.push(l)});const n=[];return r.forEach((l,a)=>{o.has(a)||n.push(l)}),{viewsToClose:i,viewsToOpen:n}}const openViewFlow=(0,import_flow_engine.defineFlow)({key:"popupSettings",title:(0,import_flow_engine.escapeT)("Popup settings"),on:"click",steps:{openView:{use:"openView"}},defaultParams:e=>{var t,o,r,i,n,l;let a,c,u;const d=e.collectionField,m=e.blockModel;if((t=d==null?void 0:d.isAssociationField)!=null&&t.call(d)){const p=d.targetCollection,h=m==null?void 0:m.collection;a=p==null?void 0:p.name,c=p==null?void 0:p.dataSourceKey,u=h!=null&&h.name&&d!=null&&d.name?`${h.name}.${d.name}`:void 0}else d?(a=(o=e.collection)==null?void 0:o.name,c=(r=e.collection)==null?void 0:r.dataSourceKey,u=d==null?void 0:d.target):(a=(i=e.collection)==null?void 0:i.name,c=(n=e.collection)==null?void 0:n.dataSourceKey,u=(l=e.association)==null?void 0:l.resourceName);return{openView:{collectionName:a,associationName:u,dataSourceKey:c}}}}),getOpenViewStepParams=e=>e.getStepParams("popupSettings","openView");function InternalFlowPage(e){var t=e,{uid:o}=t,r=W(t,["uid"]);const i=(0,import_flow_engine.useFlowModelById)(o);return(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,f({model:i,fallback:(0,import_jsx_runtime.jsx)(SkeletonFallback,{style:{margin:16}}),hideRemoveInSettings:!0,showFlowSettings:{showBackground:!1,showBorder:!1}},r))}const getKey=e=>`${e.params.viewUid}_${e.index}`,FlowRoute=()=>{const e=(0,import_react2.useRef)(null),t=(0,import_flow_engine.useFlowEngine)(),o=useCurrentRoute(),{refresh:r}=useAllAccessDesktopRoutes(),{isMobileLayout:i}=useMobileLayout(),n=(0,import_react2.useRef)(t.context.route.params.name),l=(0,import_react2.useRef)({}),a=(0,import_react2.useRef)([]),c=(0,import_react2.useRef)(!1),{designable:u}=useDesignable(),d=(0,import_react2.useMemo)(()=>t.createModel({uid:n.current,use:"RouteModel"}),[t]);return(0,import_react2.useEffect)(()=>{t.context.defineProperty("isMobileLayout",{get:()=>i}),t.context.defineProperty("deviceType",{get:()=>import_react_device_detect.deviceType==="browser"?"computer":import_react_device_detect.deviceType,cache:!1,meta:{type:"string",title:t.translate("Current device type"),interface:"select",uiSchema:{enum:[{label:t.translate("Computer"),value:"computer"},{label:t.translate("Mobile"),value:"mobile"},{label:t.translate("Tablet"),value:"tablet"},{label:t.translate("SmartTv"),value:"smarttv"},{label:t.translate("Console"),value:"console"},{label:t.translate("Wearable"),value:"wearable"},{label:t.translate("Embedded"),value:"embedded"}],"x-component":"Select"}}})},[i,t]),(0,import_react2.useEffect)(()=>{i?t.flowSettings.disable():u&&t.flowSettings.enable()},[u,t,i]),(0,import_react2.useEffect)(()=>{e.current&&(t.context.defineProperty("layoutContentElement",{get:()=>e.current}),d.context.defineProperty("currentRoute",{get:()=>o}),t.context.defineProperty("currentRoute",{get:()=>o}),d.context.defineProperty("refreshDesktopRoutes",{get:()=>r}))},[d,o,r,t]),(0,import_react2.useEffect)(()=>{const m=(0,import_flow_engine.reaction)(()=>t.context.route,p=>O(void 0,null,function*(){if(p.params.name!==n.current)return;const h=(0,import_flow_engine.parsePathnameToViewParams)(p.pathname),g=yield resolveViewParamsToViewList(t,h,d);if(a.current.length===0&&g.length>1&&!c.current){const v=b=>{g[b]&&(b===0?new import_flow_engine.ViewNavigation(t.context,[]).navigateTo(g[b].params,{replace:!0}):new import_flow_engine.ViewNavigation(t.context,g.slice(0,b).map(y=>y.params)).navigateTo(g[b].params),v(b+1))};v(0),c.current=!0;return}const{viewsToClose:x,viewsToOpen:_}=getViewDiffAndUpdateHidden(a.current,g);if(_.length){const v=b=>{if(!_[b])return;const y=_[b],C=import_react2.default.createRef(),F=import_react2.default.createRef(),S=getOpenViewStepParams(y.model);a.current.push(y);const j=a.current.slice(0,-1).map(P=>P.params.viewUid);y.model.dispatchEvent("click",I(f({target:e.current,collectionName:S==null?void 0:S.collectionName,associationName:S==null?void 0:S.associationName,dataSourceKey:S==null?void 0:S.dataSourceKey,closeRef:C,updateRef:F,openerUids:j},y.params),{navigation:new import_flow_engine.ViewNavigation(t.context,a.current.map(P=>P.params)),onOpen(){v(b+1)},hidden:y.hidden,isMobileLayout:i})),l.current[getKey(y)]={close:P=>{var w;return(w=C.current)==null?void 0:w.call(C,void 0,P)},update:P=>{var w;return(w=F.current)==null?void 0:w.call(F,P)}}};v(0)}x.forEach(v=>{var b,y;(y=(b=l.current[getKey(v)])==null?void 0:b.close)==null||y.call(b,!0),delete l.current[getKey(v)],a.current=a.current.filter(C=>getKey(C)!==getKey(v))})}),{fireImmediately:!0});return()=>{m==null||m(),a.current.forEach(p=>{var h,g;(g=(h=l.current[getKey(p)])==null?void 0:h.close)==null||g.call(h,!0),t.removeModel(p.params.viewUid),delete l.current[getKey(p)]}),a.current=[]}},[t,i,d]),(0,import_jsx_runtime.jsx)("div",{ref:e})},FlowPage=e=>{const t=e,{pageModelClass:o="ChildPageModel",parentId:r,onModelLoaded:i}=t,n=W(t,["pageModelClass","parentId","onModelLoaded"]),l=(0,import_flow_engine.useFlowEngine)(),a=(0,import_flow_engine.useFlowViewContext)(),{loading:c,data:u}=(0,import_ahooks.useRequest)(()=>O(void 0,null,function*(){const d={async:!0,parentId:r,subKey:"page",subType:"object",use:o};o==="ChildPageModel"&&(d.subModels={tabs:[{use:"ChildPageTabModel",stepParams:{pageTabSettings:{tab:{title:"Details"}}}}]},d.stepParams={pageSettings:{general:{displayTitle:!1,enableTabs:!0}}});const m=yield l.loadOrCreateModel(d);return m!=null&&m.uid&&i&&(m.context.addDelegate(a),m.removeParentDelegate(),i(m.uid,m)),m}),{refreshDeps:[r]});return c||!(u!=null&&u.uid)?(0,import_jsx_runtime.jsx)(SkeletonFallback,{style:{margin:16}}):(0,import_jsx_runtime.jsx)(InternalFlowPage,f({uid:u.uid},n))},RemoteFlowModelRenderer=e=>{const t=e,{uid:o,parentId:r,subKey:i}=t,n=W(t,["uid","parentId","subKey"]),l=(0,import_flow_engine.useFlowEngine)(),{loading:a,data:c}=(0,import_ahooks.useRequest)(()=>O(void 0,null,function*(){return yield l.loadModel({uid:o,parentId:r,subKey:i})}),{refreshDeps:[o,r,i]});return a||!(c!=null&&c.uid)?(0,import_jsx_runtime.jsx)(SkeletonFallback,{style:{margin:16}}):(0,import_jsx_runtime.jsx)(InternalFlowPage,f({uid:c.uid},n))},openView=(0,import_flow_engine.defineAction)({name:"openView",title:(0,import_flow_engine.escapeT)("Edit popup"),uiSchema:{mode:{type:"string",title:(0,import_flow_engine.escapeT)("Open mode"),enum:[{label:(0,import_flow_engine.escapeT)("Drawer"),value:"drawer"},{label:(0,import_flow_engine.escapeT)("Dialog"),value:"dialog"},{label:(0,import_flow_engine.escapeT)("Page"),value:"embed"}],"x-decorator":"FormItem","x-component":"Radio.Group"},size:{type:"string",title:(0,import_flow_engine.escapeT)("Popup size"),enum:[{label:(0,import_flow_engine.escapeT)("Small"),value:"small"},{label:(0,import_flow_engine.escapeT)("Medium"),value:"medium"},{label:(0,import_flow_engine.escapeT)("Large"),value:"large"}],"x-decorator":"FormItem","x-component":"Radio.Group","x-reactions":{dependencies:["mode"],fulfill:{state:{hidden:'{{$deps[0] === "embed"}}'}}}},uid:{type:"string",title:(0,import_flow_engine.escapeT)("Popup uid"),required:!0,"x-decorator":"FormItem","x-component":function e(t){const{value:o,onChange:r}=t,i=(0,import_flow_engine.useFlowSettingsContext)(),n=(0,import_react.useField)(),l=(0,import_react.useForm)(),a=(0,import_react2.useCallback)((u,d)=>{l.setFieldState(u,m=>{m.disabled=d})},[l]),c=(0,import_react2.useCallback)((u,d)=>{const m=["dataSourceKey","collectionName","associationName","sourceId","filterByTk"];if(!u){m.forEach(g=>a(g,!1)),a("tabUid",!1);return}const p=g=>u[g];m.forEach(g=>{const x=p(g);x!==void 0?(l.setValuesIn(g,x),g==="dataSourceKey"||g==="collectionName"?a(g,!0):a(g,!!d)):a(g,!1)});const h=p("tabUid");h!==void 0?(l.setValuesIn("tabUid",h),a("tabUid",!!d)):a("tabUid",!1)},[l,a]);return(0,import_react2.useEffect)(()=>{let u=!0;return O(this,null,function*(){var d,m;l.setFieldState((d=n.props)==null?void 0:d.name,p=>{p.loading=!0});try{const p=i.engine;let h=p.getModel(o);if(h||(h=yield p.loadModel({uid:o})),!u)return;if(!h){n.setFeedback({type:"error",code:"NotFound",messages:[i.t("Popup UID not exists")]}),c(null,!1);return}n.setFeedback({});const g=h.getStepParams("popupSettings","openView")||{},x=h.uid===i.model.uid;c(g||null,!x)}catch{if(!u)return;n.setFeedback({type:"error",code:"LoadFailed",messages:[i.t("Failed to load popup by UID")]}),c(null,!1)}finally{u&&l.setFieldState((m=n.props)==null?void 0:m.name,p=>{p.loading=!1})}}),()=>{u=!1}},[o,i,n,l,c]),(0,import_jsx_runtime.jsx)(import_antd.Input,{value:o,onChange:u=>{var d;return r==null?void 0:r((d=u==null?void 0:u.target)==null?void 0:d.value)},suffix:(0,import_jsx_runtime.jsx)("span",{children:n!=null&&n.loading||n.validating?(0,import_jsx_runtime.jsx)(import_icons.LoadingOutlined,{}):null})})}},dsAndCollection:{type:"array",title:(0,import_flow_engine.escapeT)("Data source / Collection"),"x-decorator":"FormItem","x-component":function e(t){const{disabled:o,placeholder:r}=t,i=(0,import_flow_engine.useFlowSettingsContext)(),n=(0,import_react.useForm)(),[l,a]=(0,import_react2.useState)(()=>{var g;return(g=n==null?void 0:n.values)==null?void 0:g.dataSourceKey}),[c,u]=(0,import_react2.useState)(()=>{var g;return(g=n==null?void 0:n.values)==null?void 0:g.collectionName});(0,import_react.useFormEffects)(()=>{(0,import_core.onFieldValueChange)("dataSourceKey",g=>a(g.value)),(0,import_core.onFieldValueChange)("collectionName",g=>u(g.value))}),(0,import_react2.useEffect)(()=>{var g,x;a((g=n==null?void 0:n.values)==null?void 0:g.dataSourceKey),u((x=n==null?void 0:n.values)==null?void 0:x.collectionName)},[n]);const d=(0,import_react2.useMemo)(()=>l&&c?[l,c]:void 0,[l,c]),m=(0,import_react2.useMemo)(()=>{var g,x;return(((x=(g=i==null?void 0:i.dataSourceManager)==null?void 0:g.getDataSources)==null?void 0:x.call(g))||[]).map(_=>{var v;return{label:_.displayName,value:_.key,children:(((v=_.getCollections)==null?void 0:v.call(_))||[]).map(b=>({label:b.title,value:b.name}))}})},[i]),p=!0,h=(0,import_react2.useCallback)(g=>{if(!g||g.length<2){n.setValuesIn("dataSourceKey",void 0),n.setValuesIn("collectionName",void 0);return}const[x,_]=g;n.setValuesIn("dataSourceKey",x),n.setValuesIn("collectionName",_),n.setValuesIn("associationName",void 0)},[n]);return(0,import_jsx_runtime.jsx)(import_antd.Cascader,{options:m,value:d,onChange:h,disabled:p,placeholder:r,allowClear:!0,showSearch:!0,style:{width:"100%"}})}},dataSourceKey:{type:"string",title:(0,import_flow_engine.escapeT)("Data source key"),"x-decorator":"FormItem","x-component":function e(t){const{value:o,onChange:r,disabled:i,placeholder:n}=t,l=(0,import_flow_engine.useFlowSettingsContext)(),a=(0,import_react.useForm)(),c=(0,import_react2.useMemo)(()=>{var d,m;return(((m=(d=l==null?void 0:l.dataSourceManager)==null?void 0:d.getDataSources)==null?void 0:m.call(d))||[]).map(p=>({label:p.displayName,value:p.key}))},[l]),u=(0,import_react2.useCallback)(d=>{d!==o&&(a.setValuesIn("collectionName",void 0),a.setValuesIn("associationName",void 0)),r==null||r(d)},[r,a,o]);return(0,import_jsx_runtime.jsx)(import_antd.Select,{showSearch:!0,allowClear:!0,options:c,value:o,onChange:u,disabled:i,placeholder:n,optionFilterProp:"label",style:{width:"100%"}})},"x-reactions":{fulfill:{state:{hidden:!0}}}},collectionName:{type:"string",title:(0,import_flow_engine.escapeT)("Collection name"),"x-decorator":"FormItem","x-component":function e(t){const{value:o,onChange:r,disabled:i,placeholder:n}=t,l=(0,import_flow_engine.useFlowSettingsContext)(),a=(0,import_react.useForm)(),[c,u]=(0,import_react2.useState)(()=>{var m;return(m=a==null?void 0:a.values)==null?void 0:m.dataSourceKey});(0,import_react.useFormEffects)(()=>{(0,import_core.onFieldValueChange)("dataSourceKey",m=>u(m.value))}),(0,import_react2.useEffect)(()=>{var m;u((m=a==null?void 0:a.values)==null?void 0:m.dataSourceKey)},[a]);const d=(0,import_react2.useMemo)(()=>{var m,p,h;if(!c)return[];const g=(p=(m=l==null?void 0:l.dataSourceManager)==null?void 0:m.getDataSource)==null?void 0:p.call(m,c);return(((h=g==null?void 0:g.getCollections)==null?void 0:h.call(g))||[]).map(x=>({label:x.title,value:x.name}))},[l,c]);return(0,import_jsx_runtime.jsx)(import_antd.Select,{showSearch:!0,allowClear:!0,options:d,value:o,onChange:m=>{m!==o&&a.setValuesIn("associationName",void 0),r==null||r(m)},disabled:i||!c,placeholder:n||(c?void 0:l.t("Please select data source first")),optionFilterProp:"label",style:{width:"100%"}})},"x-reactions":{fulfill:{state:{hidden:!0}}}},associationName:{type:"string",title:(0,import_flow_engine.escapeT)("Association name"),"x-decorator":"FormItem","x-component":function e(t){const{value:o,onChange:r,disabled:i,placeholder:n}=t,l=(0,import_flow_engine.useFlowSettingsContext)(),a=(0,import_react.useForm)(),[c,u]=(0,import_react2.useState)(()=>{var h;return(h=a==null?void 0:a.values)==null?void 0:h.dataSourceKey}),[d,m]=(0,import_react2.useState)(()=>{var h;return(h=a==null?void 0:a.values)==null?void 0:h.collectionName});(0,import_react.useFormEffects)(()=>{(0,import_core.onFieldValueChange)("dataSourceKey",h=>u(h.value)),(0,import_core.onFieldValueChange)("collectionName",h=>m(h.value))}),(0,import_react2.useEffect)(()=>{var h,g;u((h=a==null?void 0:a.values)==null?void 0:h.dataSourceKey),m((g=a==null?void 0:a.values)==null?void 0:g.collectionName)},[a]);const p=(0,import_react2.useMemo)(()=>{var h,g,x,_;if(!c||!d)return[];const v=(g=(h=l==null?void 0:l.dataSourceManager)==null?void 0:h.getDataSource)==null?void 0:g.call(h,c),b=(x=v==null?void 0:v.getCollection)==null?void 0:x.call(v,d);if(!b)return[];const y=((_=b.getAssociationFields)==null?void 0:_.call(b,["many","one"]))||[];return[{label:b.title,value:b.name},...y.map(C=>({label:`${b.title}.${C.title||C.name}`,value:`${b.name}.${C.name}`}))]},[l,c,d]);return(0,import_jsx_runtime.jsx)(import_antd.Select,{showSearch:!0,allowClear:!0,options:p,value:o,onChange:r,disabled:i||!c||!d,placeholder:n||(c?d?void 0:l.t("Please select collection first"):l.t("Please select data source first")),optionFilterProp:"label",style:{width:"100%"}})},"x-reactions":{fulfill:{state:{hidden:"{{!$self.value}}",disabled:'{{ $self.initialValue != null && $self.initialValue !== "" }}'}}}},tabUid:{type:"string",title:(0,import_flow_engine.escapeT)("Tab uid"),"x-decorator":"FormItem","x-component":"Input","x-reactions":{fulfill:{state:{hidden:!0}}}},sourceId:{type:"string",title:(0,import_flow_engine.escapeT)("Source ID"),"x-decorator":"FormItem","x-component":function e(t){const o=(0,import_flow_engine.useFlowSettingsContext)(),r=(0,import_react2.useMemo)(()=>{var i,n;try{const l=(o.getPropertyMetaTree()||[]).filter(u=>["record","resource"].includes(String(u==null?void 0:u.name))),a=l.some(u=>String(u==null?void 0:u.name)==="resource");let c=!1;try{const u=(n=(i=o==null?void 0:o.resource)==null?void 0:i.getSourceId)==null?void 0:n.call(i);c=u!=null&&String(u)!==""}catch{}return!a&&c&&l.push({name:"resource",title:o.t("Resource"),type:"object",paths:["resource"],children:[{name:"sourceId",title:o.t("Source ID"),type:"string",paths:["resource","sourceId"]}]}),l.filter(u=>String(u==null?void 0:u.name)==="record"||String(u==null?void 0:u.name)==="resource")}catch{return o.getPropertyMetaTree()}},[o]);return(0,import_jsx_runtime.jsx)(import_flow_engine.VariableInput,{value:t.value,onChange:t.onChange,disabled:t.disabled,placeholder:t.placeholder,metaTree:()=>r})},"x-reactions":{dependencies:["associationName"],fulfill:{state:{hidden:"{{!$deps[0]}}"}}}},filterByTk:{type:"string",title:(0,import_flow_engine.escapeT)("Filter by TK"),"x-decorator":"FormItem","x-component":function e(t){const o=(0,import_flow_engine.useFlowSettingsContext)(),r=(0,import_react2.useMemo)(()=>{try{return(o.getPropertyMetaTree()||[]).filter(i=>String(i==null?void 0:i.name)==="record")}catch{return o.getPropertyMetaTree()}},[o]);return(0,import_jsx_runtime.jsx)(import_flow_engine.VariableInput,{value:t.value,onChange:t.onChange,disabled:t.disabled,placeholder:t.placeholder,metaTree:()=>r})}}},defaultParams:e=>O(void 0,null,function*(){var t,o,r;const i=e.getPropertyMetaTree()||[],n=Array.isArray(i)&&i.some(p=>String(p==null?void 0:p.name)==="record"),l=e==null?void 0:e.collection,a=n&&l&&typeof l.filterTargetKey=="string"&&l.filterTargetKey?l.filterTargetKey:"id",c=n?`{{ ctx.record.${a} }}`:void 0;let u;try{const p=(o=(t=e==null?void 0:e.resource)==null?void 0:t.getSourceId)==null?void 0:o.call(t);p!=null&&String(p)!==""&&(u="{{ ctx.resource.sourceId }}")}catch{}const d=l==null?void 0:l.dataSourceKey,m=l==null?void 0:l.name;return f(f(f(f({mode:"drawer",size:"medium",pageModelClass:"ChildPageModel",uid:(r=e.model)==null?void 0:r.uid},c?{filterByTk:c}:{}),u?{sourceId:u}:{}),d?{dataSourceKey:d}:{}),m?{collectionName:m}:{})}),beforeParamsSave(e,t){return O(this,null,function*(){if(t!=null&&t.uid){const o=e.engine;if(!(o.getModel(t.uid)||(yield o.loadModel({uid:t.uid}))))throw new Error(e.t("Popup UID not exists"))}})},handler(e,t){return O(this,null,function*(){var o,r,i,n,l,a,c,u,d,m,p,h,g,x,_,v,b,y,C,F,S,j,P,w,M,R,B,D,T,E,N,A,$;if(t!=null&&t.uid&&t.uid!==e.model.uid){const Z=((r=(o=e.model)==null?void 0:o.getInputArgs)==null?void 0:r.call(o))||{};yield e.openView(t.uid,I(f({},t),{target:e.inputArgs.target||e.layoutContentElement,dataSourceKey:(i=t.dataSourceKey)!=null?i:Z.dataSourceKey,collectionName:(n=t.collectionName)!=null?n:Z.collectionName,associationName:(l=t.associationName)!=null?l:Z.associationName,filterByTk:(a=t.filterByTk)!=null?a:Z.filterByTk,sourceId:(c=t.sourceId)!=null?c:Z.sourceId,tabUid:t.tabUid}));return}const L=e.inputArgs||{};L.filterByTk===void 0&&t.filterByTk!==void 0&&(L.filterByTk=t.filterByTk),L.sourceId===void 0&&t.sourceId!==void 0&&(L.sourceId=t.sourceId),L.tabUid===void 0&&t.tabUid!==void 0&&(L.tabUid=t.tabUid);const q=(u=L.navigation)!=null?u:t.navigation;if(q!==!1&&!e.inputArgs.navigation&&(d=e.view)!=null&&d.navigation){const Z=(m=e.inputArgs)!=null&&m.isMobileLayout?"embed":((p=e.inputArgs)==null?void 0:p.mode)||(t==null?void 0:t.mode)||"drawer",oe=I(f({},e.inputArgs),{dataSourceKey:(h=t.dataSourceKey)!=null?h:e.inputArgs.dataSourceKey,collectionName:(g=t.collectionName)!=null?g:e.inputArgs.collectionName,associationName:(x=t.associationName)!=null?x:e.inputArgs.associationName,filterByTk:(_=L.filterByTk)!=null?_:t.filterByTk,sourceId:(v=L.sourceId)!=null?v:t.sourceId,tabUid:(b=L.tabUid)!=null?b:t.tabUid,viewUid:((C=(y=e.model.context)==null?void 0:y.inputArgs)==null?void 0:C.viewUid)||e.model.uid}),ie={type:Z,inputArgs:oe,navigation:(F=e.view)==null?void 0:F.navigation,preventClose:!!(t!=null&&t.preventClose),engineCtx:e.engine.context};e.model.context.defineProperty("view",{value:ie});const ne={viewUid:((j=(S=e.model.context)==null?void 0:S.inputArgs)==null?void 0:j.viewUid)||e.model.uid,filterByTk:(P=L.filterByTk)!=null?P:t.filterByTk,sourceId:(w=L.sourceId)!=null?w:t.sourceId,tabUid:(M=L.tabUid)!=null?M:t.tabUid};e.view.navigation.navigateTo(ne);return}const V={drawer:{small:"30%",medium:"50%",large:"70%"},dialog:{small:"40%",medium:"50%",large:"80%"},embed:{}},U=e.inputArgs.pageModelClass||t.pageModelClass||"ChildPageModel",z=e.inputArgs.isMobileLayout?"embed":e.inputArgs.mode||t.mode||"drawer",G=e.inputArgs.size||t.size||"medium";let H=null,K=null,J=e.model.uid;if(t.subModelKey){const Z=yield e.engine.loadOrCreateModel({async:!0,parentId:e.model.uid,subKey:t.subModelKey,subType:"object",use:"FlowModel"});Z!=null&&Z.uid&&(J=Z.uid)}const Y=!!((R=e.inputArgs)!=null&&R.navigation),Q=((D=(B=e.view)==null?void 0:B.inputArgs)==null?void 0:D.openerUids)||L.openerUids||[],X=Y?L.openerUids||Q:[...Q,((E=(T=e.model.context)==null?void 0:T.inputArgs)==null?void 0:E.viewUid)||e.model.uid],ee=I(f(f({},e.inputArgs),L),{dataSourceKey:t.dataSourceKey,collectionName:t.collectionName,associationName:t.associationName,tabUid:(N=L.tabUid)!=null?N:t.tabUid,openerUids:X});ee.filterByTk=(A=L.filterByTk)!=null?A:t.filterByTk,ee.sourceId=($=L.sourceId)!=null?$:t.sourceId,yield e.viewer.open({type:z,inputArgs:ee,preventClose:!!t.preventClose,destroyOnClose:!0,inheritContext:!1,target:e.inputArgs.target||e.layoutContentElement,width:V[z][G],content:Z=>(e.inputArgs.closeRef&&(e.inputArgs.closeRef.current=Z.close),e.inputArgs.updateRef&&(e.inputArgs.updateRef.current=Z.update),(0,import_jsx_runtime.jsx)(FlowPage,{parentId:J,pageModelClass:U,onModelLoaded:(oe,ie)=>{var ne,se,me,pe,fe,ce,he,ge;H=oe;const ue=ie||e.engine.getModel(H);K=ue||null;const ve=(pe=(me=L.defineProperties)!=null?me:(se=(ne=e.model.context)==null?void 0:ne.inputArgs)==null?void 0:se.defineProperties)!=null?pe:{},le=(ge=(he=L.defineMethods)!=null?he:(ce=(fe=e.model.context)==null?void 0:fe.inputArgs)==null?void 0:ce.defineMethods)!=null?ge:{};ue.context.defineProperty("currentView",{get:()=>Z}),ue.context.defineProperty("view",{get:()=>Z}),ue.context.defineProperty("closable",{get:()=>z!=="embed"}),Object.entries(ve).forEach(([te,re])=>{ue.context.defineProperty(te,re)}),Object.entries(le).forEach(([te,re])=>{ue.context.defineMethod(te,re)}),ue.invalidateFlowCache("beforeRender",!0),ue._rerunLastAutoRun()}})),styles:{content:f({padding:0,backgroundColor:e.model.flowEngine.context.themeToken.colorBgLayout},z==="embed"?{position:"absolute",top:0,left:0,right:0,bottom:0}:{}),body:{padding:0}},onClose:()=>{var Z,oe;const ie=((Z=e.inputArgs)==null?void 0:Z.navigation)||((oe=e.view)==null?void 0:oe.navigation);if(H){const ne=K||e.model.flowEngine.getModel(H);ne==null||ne.invalidateFlowCache("beforeRender",!0)}q!==!1&&ie!=null&&ie.back&&ie.back()},onOpen:e.inputArgs.onOpen})})}}),InjectableRendingEventTrigger=e=>{var t=e,{children:o,mode:r}=t,i=W(t,["children","mode"]);if(import_react2.default.Children.count(o)!==1||!import_react2.default.isValidElement(o))throw new Error("InjectableRendingEventTrigger expects exactly one child element.");return r==="runtime"?(0,import_jsx_runtime.jsx)(RuntimeTrigger,I(f({},i),{children:o})):(0,import_jsx_runtime.jsx)(SettingsTrigger,I(f({},i),{children:o}))},SettingsTrigger=({children:e,name:t,language:o,scene:r})=>{const i=(0,import_flow_engine.useFlowSettingsContext)(),n=useInjectableProps(i,t,o,r,e);return import_react2.default.cloneElement(e,n)},RuntimeTrigger=({children:e,name:t,language:o,scene:r})=>{const i=(0,import_flow_engine.useFlowContext)(),n=useInjectableProps(i,t,o,r,e);return import_react2.default.cloneElement(e,n)},useInjectableProps=(e,t,o,r,i)=>{const[n,l]=import_react2.default.useState({});return(0,import_react2.useEffect)(()=>{e&&e.model.dispatchEvent("InjectableRending",{ctx:e,name:t,language:o,scene:r,children:i,setProps:l})},[e,t,o,r,i]),n};function buildRunJSCompletions(e,t="v1",o){return O(this,null,function*(){var r,i,n,l,a,c,u,d,m,p;try{yield(0,import_flow_engine.setupRunJSContexts)()}catch{}const h=(0,import_flow_engine.getRunJSDocFor)(e||{},{version:t}),g=[],x=S=>typeof S=="string"?S:JSON.stringify(S);(h!=null&&h.label||h!=null&&h.properties||h!=null&&h.methods)&&g.push({label:"ctx",type:"class",detail:"FlowRunJSContext",info:(h==null?void 0:h.label)||"RunJS context",boost:115});const _=(S,j=[])=>{var P,w,M,R,B;if(S)for(const[D,T]of Object.entries(S)){const E=[...j,D],N=`ctx.${E.join(".")}`,A=E.length;let $=T,L,q,V;T&&typeof T=="object"&&!Array.isArray(T)&&($=(M=(w=(P=T.description)!=null?P:T.detail)!=null?w:T.type)!=null?M:T,L=(B=(R=T.detail)!=null?R:T.type)!=null?B:"ctx property",V=T.completion,q=T.properties);const U=V!=null&&V.insertText?(z,G,H,K)=>{z.dispatch({changes:{from:H,to:K,insert:V.insertText},selection:{anchor:H+V.insertText.length},scrollIntoView:!0})}:void 0;g.push({label:N,type:"property",info:x($),detail:L||"ctx property",boost:Math.max(90-A*5,10),apply:U}),q&&_(q,E)}};_((h==null?void 0:h.properties)||{});const v=(h==null?void 0:h.methods)||{};for(const S of Object.keys(v)){const j=v[S];let P=j,w="ctx method",M;j&&typeof j=="object"&&!Array.isArray(j)&&(P=(i=(r=j.description)!=null?r:j.detail)!=null?i:j,w=(n=j.detail)!=null?n:w,M=j.completion);const R=(l=M==null?void 0:M.insertText)!=null?l:`ctx.${S}()`;g.push({label:`ctx.${S}()`,type:"function",info:x(P),detail:w,boost:95,apply:(B,D,T,E)=>{B.dispatch({changes:{from:T,to:E,insert:R},selection:{anchor:T+R.length},scrollIntoView:!0})}})}let b=[];try{const S=((c=(a=e==null?void 0:e.model)==null?void 0:a.constructor)==null?void 0:c.name)||"*",j=((d=(u=e==null?void 0:e.api)==null?void 0:u.auth)==null?void 0:d.locale)||((m=e==null?void 0:e.i18n)==null?void 0:m.language);b=yield(0,import_flow_engine.listSnippetsForContext)(S,t,j)}catch{b=[]}const y=Array.isArray(o)?o.filter(S=>typeof S=="string"&&S.trim().length>0):o?[o]:[],C=y.length?b.filter(S=>{var j;if((j=S.scenes)!=null&&j.length)return S.scenes.some(R=>y.includes(R));const P=S.group||"";if(!P.startsWith("scene/"))return!0;const[w,M]=P.split("/");return M?y.includes(M):!1}):b,F=new Set;for(const S of C){const j=S.body,P=String((p=S.name)!=null?p:"").trim(),w=typeof S.prefix=="string"?S.prefix.trim():"",M=P||w,R=M,B=P&&w&&w!==R?w:void 0,D=S.ref||`${M}|${B??""}`;!R||F.has(D)||(F.add(D),g.push({label:M,displayLabel:R,detail:B,type:"snippet",info:S.description||S.ref,boost:80,apply:(T,E,N,A)=>{T.dispatch({changes:{from:N,to:A,insert:j},selection:{anchor:N+j.length},scrollIntoView:!0})}}))}return{completions:g,entries:C}})}function useRunJSDocCompletions(e,t="v1",o){const[r,i]=(0,import_react2.useState)(null),[n,l]=(0,import_react2.useState)([]),[a,c]=(0,import_react2.useState)(null);return(0,import_react2.useEffect)(()=>{let u=!1;return O(this,null,function*(){try{const{completions:d,entries:m}=yield buildRunJSCompletions(e,t,o);u||(i(d),l(m),c(null))}catch(d){u||(i(null),l([]),c(d))}}),()=>{u=!0}},[e,t,o]),{completions:r,entries:n,error:a}}const WRAPPER_PRELUDE_LINES=2;function clearDiagnostics(e){var t;try{e&&(0,import_lint.setDiagnostics)(e.state,[])}catch(o){try{(t=console.debug)==null||t.call(console,"[errorHelpers] clearDiagnostics failed",o)}catch{}}}function parseErrorLineColumn(e){const t=String((e==null?void 0:e.stack)||(e==null?void 0:e.message)||e||""),o=t.split(`
|
|
1693
|
+
`,children:"x"})})})]})},confirm$1=(0,import_flow_engine.defineAction)({name:"confirm",title:(0,import_flow_engine.escapeT)("Confirmation"),uiSchema:{enable:{type:"boolean",title:(0,import_flow_engine.escapeT)("Enable secondary confirmation"),"x-decorator":"FormItem","x-component":"Switch"},title:{type:"string",title:(0,import_flow_engine.escapeT)("Title"),"x-decorator":"FormItem","x-component":TextAreaWithContextSelector,"x-component-props":{rows:2}},content:{type:"string",title:(0,import_flow_engine.escapeT)("Content"),"x-decorator":"FormItem","x-component":TextAreaWithContextSelector,"x-component-props":{rows:3}}},defaultParams:{enable:!0,title:(0,import_flow_engine.escapeT)("Please Confirm"),content:(0,import_flow_engine.escapeT)("Are you sure you want to perform the action?")},handler(e,t){return O(this,null,function*(){t.enable&&((yield e.modal.confirm({title:e.t(t.title),content:e.t(t.content),okText:e.t("Confirm"),cancelText:e.t("Cancel")}))||e.exit())})}}),FilterGroup=(0,import_reactive_react.observer)(e=>{const{value:t={logic:"$and",items:[]},FilterItem:o,showBorder:r=!1,onRemove:i,onChange:n}=e,{token:l}=import_antd.theme.useToken(),{t:a}=(0,import_react_i18next.useTranslation)();t.logic||(t.logic="$and"),Array.isArray(t.items)||(t.items=[]);const{logic:c,items:u}=t,d=r?{position:"relative",border:`1px dashed ${l.colorBorder}`,padding:l.paddingSM,marginBottom:l.marginXS,borderRadius:l.borderRadius}:{position:"relative",marginBottom:l.marginXS},m=v=>{t.logic=v},p=()=>{u.push({path:"",operator:"",value:""}),n==null||n(t)},h=()=>{u.push({logic:"$and",items:[]}),n==null||n(t)},g=v=>{u.splice(v,1),n==null||n(t)},x=v=>"path"in v||"operator"in v||"value"in v,_=v=>"logic"in v&&"items"in v;return(0,import_jsx_runtime.jsxs)("div",{style:d,children:[r&&i&&(0,import_jsx_runtime.jsx)("a",{role:"button","aria-label":"icon-close",children:(0,import_jsx_runtime.jsx)(import_icons.CloseCircleOutlined,{style:{position:"absolute",right:10,top:10,color:"#bfbfbf"},onClick:i})}),(0,import_jsx_runtime.jsx)("div",{style:{marginBottom:8,color:l.colorText},children:(0,import_jsx_runtime.jsxs)("span",{children:[a("Meet")," ",(0,import_jsx_runtime.jsxs)(import_antd.Select,{role:"button","data-testid":"filter-select-all-or-any",style:{width:"auto"},value:c,onChange:m,children:[(0,import_jsx_runtime.jsx)(import_antd.Select.Option,{value:"$and",children:a("All")}),(0,import_jsx_runtime.jsx)(import_antd.Select.Option,{value:"$or",children:a("Any")})]})," ",a("conditions in the group")]})}),(0,import_jsx_runtime.jsx)("div",{children:u.map((v,b)=>_(v)?(0,import_jsx_runtime.jsx)(FilterGroup,{value:v,FilterItem:o,showBorder:!0,onRemove:()=>g(b),onChange:n},b):x(v)?o?(0,import_jsx_runtime.jsx)("div",{style:{marginBottom:8,display:"flex",alignItems:"flex-end"},children:(0,import_jsx_runtime.jsxs)(import_antd.Space,{style:{flex:1,minWidth:0},children:[(0,import_jsx_runtime.jsx)(o,{value:v}),(0,import_jsx_runtime.jsx)("a",{role:"button","aria-label":"icon-close",style:{marginLeft:8,flex:"0 0 auto"},children:(0,import_jsx_runtime.jsx)(import_icons.CloseCircleOutlined,{onClick:()=>g(b),style:{color:"#bfbfbf"}})})]})},b):(0,import_jsx_runtime.jsx)("div",{style:{marginBottom:8,display:"flex",alignItems:"flex-end"},children:(0,import_jsx_runtime.jsxs)(import_antd.Space,{style:{flex:1,minWidth:0},children:[(0,import_jsx_runtime.jsxs)("span",{children:[v.path," ",v.operator," ",String(v.value)]}),(0,import_jsx_runtime.jsx)("a",{role:"button","aria-label":"icon-close",style:{marginLeft:8,flex:"0 0 auto"},children:(0,import_jsx_runtime.jsx)(import_icons.CloseCircleOutlined,{onClick:()=>g(b),style:{color:"#bfbfbf"}})})]})},b):(0,import_jsx_runtime.jsx)("div",{style:{marginBottom:8,display:"flex",alignItems:"flex-end"},children:(0,import_jsx_runtime.jsxs)(import_antd.Space,{style:{flex:1,minWidth:0},children:[(0,import_jsx_runtime.jsx)("span",{style:{color:l.colorTextTertiary},children:"Invalid filter item"}),(0,import_jsx_runtime.jsx)("a",{role:"button","aria-label":"icon-close",style:{marginLeft:8,flex:"0 0 auto"},children:(0,import_jsx_runtime.jsx)(import_icons.CloseCircleOutlined,{onClick:()=>g(b),style:{color:"#bfbfbf"}})})]})},b))}),(0,import_jsx_runtime.jsxs)(import_antd.Space,{size:16,style:{marginTop:8,marginBottom:8},children:[(0,import_jsx_runtime.jsx)(import_antd.Button,{style:{padding:0},type:"link",size:"small",icon:(0,import_jsx_runtime.jsx)(import_icons.PlusOutlined,{}),onClick:p,children:a("Add condition")}),(0,import_jsx_runtime.jsx)(import_antd.Button,{style:{padding:0},type:"link",size:"small",icon:(0,import_jsx_runtime.jsx)(import_icons.PlusOutlined,{}),onClick:h,children:a("Add condition group")})]})]})},{displayName:"FilterGroup"}),FilterContainer$1=(0,import_reactive_react.observer)(e=>{var t;const{value:o,FilterItem:r,ctx:i}=e;o.logic||(o.logic="and"),Array.isArray(o.items)||(o.items=[]);const n=()=>{var c;(c=i==null?void 0:i.model)!=null&&c.dispatchEvent&&i.model.dispatchEvent("reset")},l=()=>{var c;(c=i==null?void 0:i.model)!=null&&c.dispatchEvent&&i.model.dispatchEvent("submit")},a=((t=i==null?void 0:i.model)==null?void 0:t.translate)||(c=>c);return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(FilterGroup,{value:o,FilterItem:r}),(0,import_jsx_runtime.jsxs)(import_antd.Space,{style:{width:"100%",display:"flex",justifyContent:"flex-end"},children:[(0,import_jsx_runtime.jsx)(import_antd.Button,{onClick:n,children:a("Reset")}),(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"primary",onClick:l,children:a("Submit")})]})]})},{displayName:"FilterContent"}),fieldsToOptions=(e,t,o,r)=>e.map(i=>field2option(i,t,o,r)).filter(Boolean),field2option=(e,t,o,r)=>{var i;if(o.length&&t===1&&o.includes(e.name)||!e.interface||e.filterable===!1)return;const n=e.getInterfaceOptions();if(!(n!=null&&n.filterable))return;const{nested:l,children:a,operators:c}=n.filterable,u={name:e.name,type:e.type,target:e.target,title:r(e.title),schema:e==null?void 0:e.uiSchema,operators:(((i=c==null?void 0:c.filter)==null?void 0:i.call(c,d=>!(d!=null&&d.visible)||d.visible(e)))||[]).map(d=>I(f({},d),{label:r(d.label)}))};if(!(e.target&&t>2)){if(t>2)return u;if(a!=null&&a.length&&(u.children=a),l){const d=e.getFields().filter(p=>p.target!=="attachments"&&p.interface!=="formula"),m=fieldsToOptions(d,t+1,o,r).filter(Boolean);u.children=u.children||[],u.children.push(...m)}return u}},FilterItem=(0,import_reactive_react.observer)(e=>{var t;const{path:o,operator:r,value:i}=e.value,n=e.model,l=((t=n.context.blockModel.collection)==null?void 0:t.getFields().filter(g=>g.target!=="attachments"))||[],a=getIgnoreFieldsNames(n.props.filterableFieldsNames||[],l.map(g=>g.name)),c=n.translate,u=fieldsToOptions(l.filter(g=>g.target!=="attachments"&&g.interface!=="formula"&&!["belongsTo","belongsToMany","hasOne","hasMany","oho","obo","m2o","o2m","m2m"].includes(g.type)),1,e.noIgnore?[]:a,c).filter(Boolean),d=(0,import_react2.useMemo)(()=>{const g=u.find(x=>x.name===o);return(g==null?void 0:g.operators)||[]},[u,o]),m=g=>{var x;e.value.path=g;const _=u.find(v=>v.name===g);((x=_==null?void 0:_.operators)==null?void 0:x.length)>0?e.value.operator=_.operators[0].value:e.value.operator="",e.value.value=""},p=g=>{e.value.operator=g},h=g=>{e.value.value=g.target.value};return(0,import_jsx_runtime.jsxs)(import_antd.Space,{children:[(0,import_jsx_runtime.jsx)(import_antd.Select,{style:{width:200},placeholder:c("Select field"),value:o||void 0,onChange:m,children:u.map(g=>(0,import_jsx_runtime.jsx)(import_antd.Select.Option,{value:g.name,children:g.title},g.name))}),(0,import_jsx_runtime.jsx)(import_antd.Select,{style:{width:120},placeholder:c("Select operator"),value:r||void 0,onChange:p,disabled:!o||d.length===0,children:d.map(g=>(0,import_jsx_runtime.jsx)(import_antd.Select.Option,{value:g.value,children:g.label},g.value))}),(0,import_jsx_runtime.jsx)(import_antd.Input,{style:{width:200},placeholder:c("Enter value"),value:i,onChange:h})]})},{displayName:"FilterItem"});function getIgnoreFieldsNames(e,t){return t==null?void 0:t.filter(o=>!e.includes(o))}const{DateFilterDynamicComponent:DateFilterDynamicComponentLazy$1}=lazy(()=>Promise.resolve().then(()=>require("./index-C3fHjsMw-CPNByUCR.js")),"DateFilterDynamicComponent");function createStaticInputRenderer$1(e,t,o){var r;const i=e==null?void 0:e["x-component"],n=((r=t==null?void 0:t.uiSchema)==null?void 0:r["x-component-props"])||{},l=(e==null?void 0:e["x-component-props"])||{},a=(0,import_merge.default)({},n,l),c=(e==null?void 0:e.enum)||[],u=f({style:f({width:200},(a==null?void 0:a.style)||{}),placeholder:(a==null?void 0:a.placeholder)||o("Enter value")},a);return d=>{const m=d||{},{value:p,onChange:h}=m,g=W(m,["value","onChange"]);return i==="InputNumber"?(0,import_jsx_runtime.jsx)(import_antd.InputNumber,I(f(f({},u),g),{value:p,onChange:h})):i==="NumberPicker"?(0,import_jsx_runtime.jsx)(import_antd_v5.NumberPicker,I(f(f({},u),g),{value:p,onChange:h})):i==="Switch"?(0,import_jsx_runtime.jsx)(import_antd.Switch,I(f(f({},u),g),{checked:!!p,onChange:h})):i==="Select"?(0,import_jsx_runtime.jsx)(import_antd.Select,I(f(f({options:c},u),g),{value:p,onChange:h})):i==="DateFilterDynamicComponent"?(0,import_jsx_runtime.jsx)(DateFilterDynamicComponentLazy$1,I(f(f({},u),g),{value:p,onChange:h})):(0,import_jsx_runtime.jsx)(import_antd.Input,I(f(f({},u),g),{value:p,onChange:x=>{var _;return h==null?void 0:h((_=x==null?void 0:x.target)==null?void 0:_.value)}}))}}const VariableFilterItem=(0,import_reactive_react.observer)(({value:e,model:t,rightAsVariable:o,rightMetaTree:r})=>{const i=(0,import_flow_engine.useFlowViewContext)(),n=t.translate,{path:l,operator:a,value:c}=e,[u,d]=(0,import_react2.useState)(null),m=(0,import_react2.useMemo)(()=>{var w,M,R;if(!(u!=null&&u.interface))return[];const B=(w=t.context.app)==null?void 0:w.dataSourceManager,D=(M=B==null?void 0:B.collectionFieldInterfaceManager)==null?void 0:M.getFieldInterface(u.interface);return(((R=D==null?void 0:D.filterable)==null?void 0:R.operators)||[]).filter(T=>!T.visible||T.visible(u))},[u,t]);(0,import_react2.useEffect)(()=>{m.length>0&&!import_lodash.default.find(m,w=>w.value===e.operator)&&(e.operator="",e.value="")},[m,e]);const p=(0,import_react2.useMemo)(()=>m.map(w=>{var M,R;return{value:w.value,label:typeof w.label=="string"?n(w.label):((R=(M=w.label)==null?void 0:M.toString)==null?void 0:R.call(M))||String(w.label)}}),[m,n]),h=(0,import_react2.useCallback)((w,M)=>{e.path=w||"",M&&d(M)},[e]),g=(0,import_react2.useMemo)(()=>({resolveValueFromPath:w=>(d(w),(w==null?void 0:w.paths.slice(1).join("."))||null),resolvePathFromValue(w){return w&&["collection",...String(w).split(".")]}}),[]),x=(0,import_react2.useCallback)(w=>{e.operator=w;const M=m.find(R=>R.value===w);M!=null&&M.noValue&&(e.value=!0)},[m,e]),_=(0,import_react2.useMemo)(()=>m.find(w=>w.value===a),[m,a]),v=(0,import_react2.useMemo)(()=>{const w=(u==null?void 0:u.uiSchema)||{},M=(_==null?void 0:_.schema)||{};return(0,import_merge.default)({},w,M)},[u,_]),b=import_react2.default.useRef(n);import_react2.default.useEffect(()=>{b.current=n},[n]);const y=import_react2.default.useCallback(w=>{var M,R;return(R=(M=b.current)==null?void 0:M.call(b,w))!=null?R:w},[]),C=(0,import_react2.useMemo)(()=>createStaticInputRenderer$1(v,u,y),[v,u,y]),F=(0,import_react2.useCallback)(()=>(0,import_jsx_runtime.jsx)("div",{style:{flex:"1 1 40%",minWidth:160,maxWidth:"100%"},children:(0,import_jsx_runtime.jsx)(C,{value:c,onChange:w=>e.value=w})}),[C,c,e]),S=(0,import_react2.useMemo)(()=>function(){return(0,import_jsx_runtime.jsx)(import_antd.Input,{placeholder:`<${n("Null")}>`,readOnly:!0})},[n]),j=(0,import_react2.useMemo)(()=>()=>O(void 0,null,function*(){const w=typeof r=="function"?yield r():r||i.getPropertyMetaTree();return[{title:n("Constant"),name:"constant",type:"string",paths:["constant"],render:C},{title:n("Null"),name:"null",type:"object",paths:["null"],render:S},...Array.isArray(w)?w:[]]}),[r,i,C,S,n]),P=(0,import_react2.useMemo)(()=>({renderInputComponent:w=>{var M;const R=(M=w==null?void 0:w.paths)==null?void 0:M[0];return R==="constant"?C:R==="null"?S:null},resolveValueFromPath:w=>{var M;const R=(M=w==null?void 0:w.paths)==null?void 0:M[0];if(R==="constant")return"";if(R==="null")return null},resolvePathFromValue:w=>w===null?["null"]:(0,import_flow_engine.parseValueToPath)(w)||["constant"]}),[S,C]);return(0,import_jsx_runtime.jsxs)(import_antd.Space,{wrap:!0,style:{width:"100%"},children:[(0,import_jsx_runtime.jsx)(import_flow_engine.VariableInput,{value:l,metaTree:()=>t.context.getPropertyMetaTree("{{ ctx.collection }}"),onChange:h,converters:g,showValueComponent:!1,style:{flex:"1 1 40%",minWidth:160,maxWidth:"100%"},onlyLeafSelectable:!0,placeholder:n("Select field")}),(0,import_jsx_runtime.jsx)(import_antd.Select,{style:{flex:"0 0 140px",minWidth:120,maxWidth:"100%"},placeholder:n("Comparison"),value:a||void 0,onChange:x,children:p.map(w=>(0,import_jsx_runtime.jsx)(import_antd.Select.Option,{value:w.value,children:w.label},w.value))}),!(_!=null&&_.noValue)&&(o?(0,import_jsx_runtime.jsx)(import_flow_engine.VariableInput,{value:c,onChange:w=>e.value=w,metaTree:j,converters:P,showValueComponent:!0,style:{flex:"1 1 40%",minWidth:160,maxWidth:"100%"},placeholder:n("Enter value")}):F())]})});function normalizeUiSchemaEnumToOptions(e=[]){return Array.isArray(e)?e.map(t=>{var o;if(t&&typeof t=="object"&&!Array.isArray(t)){const r=t,i=typeof r.label<"u",n=typeof r.value<"u",l=i?r.label:String((o=r.value)!=null?o:""),a=n?r.value:l,c={label:l,value:a};return r.color&&(c.color=r.color),r.icon&&(c.icon=r.icon),c}return{label:String(t),value:t}}):[]}function ensureOptionsFromUiSchemaEnumIfAbsent(e,t){var o,r,i,n;const l=t==null?void 0:t.interface;if(!["radioGroup","checkboxGroup","select","multipleSelect"].includes(l)||Array.isArray((o=e.props)==null?void 0:o.options)&&((i=(r=e.props)==null?void 0:r.options)==null?void 0:i.length)>0)return!1;const a=(n=t.uiSchema)==null?void 0:n.enum;if(!Array.isArray(a)||a.length===0)return!1;const c=normalizeUiSchemaEnumToOptions(a);return c.length?(e.setProps({options:c}),!0):!1}const{DateFilterDynamicComponent:DateFilterDynamicComponentLazy}=lazy(()=>Promise.resolve().then(()=>DateFilterDynamicComponent$1),"DateFilterDynamicComponent");function createStaticInputRenderer(e,t,o){var r,i,n;const l=e==null?void 0:e["x-component"],a=((r=t==null?void 0:t.uiSchema)==null?void 0:r["x-component-props"])||{},c=(e==null?void 0:e["x-component-props"])||{},u=(0,import_merge.default)({},a,c),d=Array.isArray((i=t==null?void 0:t.uiSchema)==null?void 0:i.enum)?(n=t==null?void 0:t.uiSchema)==null?void 0:n.enum:void 0,m=d?normalizeUiSchemaEnumToOptions(d):void 0,p=f({style:f({width:200},(u==null?void 0:u.style)||{}),placeholder:(u==null?void 0:u.placeholder)||o("Enter value")},u);return h=>{const g=h||{},{value:x,onChange:_}=g,v=W(g,["value","onChange"]);if(l==="InputNumber")return(0,import_jsx_runtime.jsx)(import_antd.InputNumber,I(f(f({},p),v),{value:x,onChange:_}));if(l==="NumberPicker")return(0,import_jsx_runtime.jsx)(import_antd_v5.NumberPicker,I(f(f({},p),v),{value:x,onChange:_}));if(l==="Switch")return(0,import_jsx_runtime.jsx)(import_antd.Switch,I(f(f({},p),v),{checked:!!x,onChange:_}));if(l==="Select"){const b=Array.isArray(p==null?void 0:p.options)&&p.options.length>0||!m?p:I(f({},p),{options:m});return(0,import_jsx_runtime.jsx)(import_antd.Select,I(f(f({},b),v),{value:x,onChange:_}))}return l==="DateFilterDynamicComponent"?(0,import_jsx_runtime.jsx)(DateFilterDynamicComponentLazy,I(f(f({},p),v),{value:x,onChange:_})):(0,import_jsx_runtime.jsx)(import_antd.Input,I(f(f({},p),v),{value:x,onChange:b=>{var y;return _==null?void 0:_((y=b==null?void 0:b.target)==null?void 0:y.value)}}))}}const fallbackStringOperators=[{value:"$includes",label:"contains",selected:!0},{value:"$notIncludes",label:"does not contain"},{value:"$eq",label:"is"},{value:"$ne",label:"is not"},{value:"$empty",label:"is empty",noValue:!0},{value:"$notEmpty",label:"is not empty",noValue:!0}],LinkageFilterItem=(0,import_reactive_react.observer)(e=>{var t;const{value:o,model:r}=e,i=(0,import_flow_engine.useFlowViewContext)(),n=r.translate,{path:l,operator:a,value:c}=o||{},[u,d]=(0,import_react2.useState)(null),m=(0,import_react2.useRef)(!1),p=(0,import_react2.useMemo)(()=>{if(!u)return"";const M=u.interface||"",R=Array.isArray(u.paths)?u.paths.join("."):"";return`${M}|${R}`},[u]),h=(0,import_react2.useMemo)(()=>u!=null&&u.interface?(r.context.app.dataSourceManager.collectionFieldInterfaceManager.getFieldInterface(u.interface).filterable.operators||[]).filter(M=>!M.visible||M.visible(u)).map(M=>({value:M.value,label:typeof M.label=="string"?M.label:String(M.label),noValue:!!M.noValue,schema:M.schema,selected:!!M.selected})):u?fallbackStringOperators:[],[p,r]),g=(0,import_react2.useMemo)(()=>h.map(M=>({value:M.value,label:n(M.label)})),[h,n]);(0,import_react2.useEffect)(()=>{if(h.length!==0){if(!a){if(m.current){const M=h.find(R=>R.selected)||h[0];o.operator=(M==null?void 0:M.value)||"",M!=null&&M.noValue&&(o.value=""),m.current=!1}return}if(!h.some(M=>M.value===a)){const M=h.find(R=>R.selected)||h[0];o.operator=(M==null?void 0:M.value)||"",M!=null&&M.noValue&&(o.value="")}}},[h,a,o]);const x=(0,import_react2.useMemo)(()=>h.find(M=>M.value===a),[h,a]),_=(0,import_react2.useMemo)(()=>{const M=(u==null?void 0:u.uiSchema)||{},R=(x==null?void 0:x.schema)||{};return(0,import_merge.default)({},M,R)},[u,x]),v=(0,import_react2.useRef)(n);(0,import_react2.useEffect)(()=>{v.current=n},[n]);const b=(0,import_react2.useCallback)(M=>{var R,B;return(B=(R=v.current)==null?void 0:R.call(v,M))!=null?B:M},[]),y=(0,import_react2.useMemo)(()=>createStaticInputRenderer(_,u,b),[_,u,b]),C=(0,import_react2.useMemo)(()=>function(){return(0,import_jsx_runtime.jsx)(import_antd.Input,{placeholder:`<${n("Null")}>`,readOnly:!0})},[n]),F=(0,import_react2.useMemo)(()=>()=>O(void 0,null,function*(){const M=(r==null?void 0:r.context.getPropertyMetaTree())||i.getPropertyMetaTree();return[{title:n("Constant"),name:"constant",type:"string",paths:["constant"]},{title:n("Null"),name:"null",type:"object",paths:["null"]},...Array.isArray(M)?M:[]]}),[i,r,n]),S=(0,import_react2.useCallback)(()=>{var M,R;return((R=(M=r==null?void 0:r.context)==null?void 0:M.getPropertyMetaTree)==null?void 0:R.call(M))||i.getPropertyMetaTree()},[i,r]),j=(0,import_react2.useMemo)(()=>({renderInputComponent:M=>{var R;const B=(R=M==null?void 0:M.paths)==null?void 0:R[0];return B==="constant"?y:B==="null"?C:null},resolveValueFromPath:M=>{var R;const B=(R=M==null?void 0:M.paths)==null?void 0:R[0];if(B==="constant")return"";if(B==="null")return null},resolvePathFromValue:M=>M===null?["null"]:(0,import_flow_engine.parseValueToPath)(M)||["constant"]}),[C,y]),P=(0,import_react2.useCallback)((M,R)=>{const B=o.path||"",D=M||"",T=D!==B;o.path=D,T&&B&&(o.operator="",o.value="",m.current=!0),!B&&D&&!o.operator&&(m.current=!0),R&&d(R)},[o]),w=(0,import_react2.useCallback)(M=>{o.operator=M;const R=h.find(B=>B.value===M);R!=null&&R.noValue&&(o.value="")},[o,h]);return(0,import_jsx_runtime.jsxs)(import_antd.Space,{wrap:!0,style:{width:"100%"},children:[(0,import_jsx_runtime.jsx)(import_flow_engine.VariableInput,{value:l,onChange:P,metaTree:S,showValueComponent:!0,style:{flex:"1 1 40%",minWidth:160,maxWidth:"100%"},placeholder:n("Select variable"),onlyLeafSelectable:!0}),(0,import_jsx_runtime.jsx)(import_antd.Select,{style:{flex:"0 0 140px",minWidth:120,maxWidth:"100%"},placeholder:n("Comparison"),value:a||void 0,onChange:w,children:g.map(M=>(0,import_jsx_runtime.jsx)(import_antd.Select.Option,{value:M.value,children:M.label},M.value))}),!((t=h.find(M=>M.value===a))!=null&&t.noValue)&&(0,import_jsx_runtime.jsx)(import_flow_engine.VariableInput,{value:c,onChange:M=>o.value=M,metaTree:F,converters:j,showValueComponent:!0,style:{flex:"1 1 40%",minWidth:160,maxWidth:"100%"},placeholder:n("Enter value"),clearValue:""})]})}),dataScope=(0,import_flow_engine.defineAction)({name:"dataScope",title:(0,import_client.tval)("Data scope"),uiMode:{type:"dialog",props:{width:800}},uiSchema:{filter:{type:"object","x-decorator":"FormItem","x-component":function e(t){const o=(0,import_flow_engine.useFlowSettingsContext)();return(0,import_jsx_runtime.jsx)(FilterGroup,{value:t.value,FilterItem:r=>(0,import_jsx_runtime.jsx)(VariableFilterItem,I(f({},r),{model:o.model,rightAsVariable:!0}))})}}},defaultParams(e){return{filter:{logic:"$and",items:[]}}},handler(e,t){return O(this,null,function*(){var o;const r=(o=e.model)==null?void 0:o.resource;if(!r)return;const i=(0,import_client.removeNullCondition)((0,import_client.transformFilter)(t.filter));(0,import_client.isEmptyFilter)(i)?r.removeFilterGroup(e.model.uid):r.addFilterGroup(e.model.uid,i)})}});function SkeletonFallback(e){return(0,import_jsx_runtime.jsx)(import_antd.Card,I(f({},e),{children:(0,import_jsx_runtime.jsx)(import_antd.Skeleton,{paragraph:{rows:3}})}))}class RouteModel extends import_flow_engine.FlowModel{}RouteModel.registerFlow({key:"popupSettings",on:"click",steps:{openView:{use:"openView",defaultParams(e){return{mode:"embed",preventClose:!0,pageModelClass:"RootPageModel"}}}}});function resolveViewParamsToViewList(e,t,o){return O(this,null,function*(){const r=t.map((l,a)=>O(this,null,function*(){let c;if(a===0?c=o:c=e.getModel(l.viewUid,!0)||(yield e.loadModel({uid:l.viewUid})),!c)throw new Error(`Model with uid ${l.viewUid} not found`);return{params:l,model:c,hidden:import_flow_engine.observable.ref(!1),index:a}})),i=yield Promise.all(r);let n=!1;for(let l=i.length-1;l>=0;l--){const a=i[l];getViewType(a)==="embed"&&!n?(n=!0,a.hidden.value=!1):a.hidden.value=n}return i})}function getViewType(e){if(e.model instanceof RouteModel)return"embed";const t=e.model.getStepParams("popupSettings","openView");return(t==null?void 0:t.mode)||"drawer"}function getViewDiffAndUpdateHidden(e,t){const o=new Map,r=new Map;e.forEach(l=>{o.set(`${l.params.viewUid}_${l.index}`,l)}),t.forEach(l=>{r.set(`${l.params.viewUid}_${l.index}`,l)});const i=[];o.forEach((l,a)=>{r.has(a)?l.hidden.value=r.get(a).hidden.value:i.push(l)});const n=[];return r.forEach((l,a)=>{o.has(a)||n.push(l)}),{viewsToClose:i,viewsToOpen:n}}const openViewFlow=(0,import_flow_engine.defineFlow)({key:"popupSettings",title:(0,import_flow_engine.escapeT)("Popup settings"),on:"click",steps:{openView:{use:"openView"}},defaultParams:e=>{var t,o,r,i,n,l;let a,c,u;const d=e.collectionField,m=e.blockModel;if((t=d==null?void 0:d.isAssociationField)!=null&&t.call(d)){const p=d.targetCollection,h=m==null?void 0:m.collection;a=p==null?void 0:p.name,c=p==null?void 0:p.dataSourceKey,u=h!=null&&h.name&&d!=null&&d.name?`${h.name}.${d.name}`:void 0}else d?(a=(o=e.collection)==null?void 0:o.name,c=(r=e.collection)==null?void 0:r.dataSourceKey,u=d==null?void 0:d.target):(a=(i=e.collection)==null?void 0:i.name,c=(n=e.collection)==null?void 0:n.dataSourceKey,u=(l=e.association)==null?void 0:l.resourceName);return{openView:{collectionName:a,associationName:u,dataSourceKey:c}}}}),getOpenViewStepParams=e=>e.getStepParams("popupSettings","openView");function InternalFlowPage(e){var t=e,{uid:o}=t,r=W(t,["uid"]);const i=(0,import_flow_engine.useFlowModelById)(o);return(0,import_jsx_runtime.jsx)(import_flow_engine.FlowModelRenderer,f({model:i,fallback:(0,import_jsx_runtime.jsx)(SkeletonFallback,{style:{margin:16}}),hideRemoveInSettings:!0,showFlowSettings:{showBackground:!1,showBorder:!1}},r))}const getKey=e=>`${e.params.viewUid}_${e.index}`,FlowRoute=()=>{const e=(0,import_react2.useRef)(null),t=(0,import_flow_engine.useFlowEngine)(),o=useCurrentRoute(),{refresh:r}=useAllAccessDesktopRoutes(),{isMobileLayout:i}=useMobileLayout(),n=(0,import_react2.useRef)(t.context.route.params.name),l=(0,import_react2.useRef)({}),a=(0,import_react2.useRef)([]),c=(0,import_react2.useRef)(!1),{designable:u}=useDesignable(),d=(0,import_react2.useMemo)(()=>t.createModel({uid:n.current,use:"RouteModel"}),[t]);return(0,import_react2.useEffect)(()=>{t.context.defineProperty("isMobileLayout",{get:()=>i}),t.context.defineProperty("deviceType",{get:()=>import_react_device_detect.deviceType==="browser"?"computer":import_react_device_detect.deviceType,cache:!1,meta:{type:"string",title:t.translate("Current device type"),interface:"select",uiSchema:{enum:[{label:t.translate("Computer"),value:"computer"},{label:t.translate("Mobile"),value:"mobile"},{label:t.translate("Tablet"),value:"tablet"},{label:t.translate("SmartTv"),value:"smarttv"},{label:t.translate("Console"),value:"console"},{label:t.translate("Wearable"),value:"wearable"},{label:t.translate("Embedded"),value:"embedded"}],"x-component":"Select"}}})},[i,t]),(0,import_react2.useEffect)(()=>{i?t.flowSettings.disable():u&&t.flowSettings.enable()},[u,t,i]),(0,import_react2.useEffect)(()=>{e.current&&(t.context.defineProperty("layoutContentElement",{get:()=>e.current}),d.context.defineProperty("currentRoute",{get:()=>o}),t.context.defineProperty("currentRoute",{get:()=>o}),d.context.defineProperty("refreshDesktopRoutes",{get:()=>r}))},[d,o,r,t]),(0,import_react2.useEffect)(()=>{const m=(0,import_flow_engine.reaction)(()=>t.context.route,p=>O(void 0,null,function*(){if(p.params.name!==n.current)return;const h=(0,import_flow_engine.parsePathnameToViewParams)(p.pathname),g=yield resolveViewParamsToViewList(t,h,d);if(a.current.length===0&&g.length>1&&!c.current){const v=b=>{g[b]&&(b===0?new import_flow_engine.ViewNavigation(t.context,[]).navigateTo(g[b].params,{replace:!0}):new import_flow_engine.ViewNavigation(t.context,g.slice(0,b).map(y=>y.params)).navigateTo(g[b].params),v(b+1))};v(0),c.current=!0;return}const{viewsToClose:x,viewsToOpen:_}=getViewDiffAndUpdateHidden(a.current,g);if(_.length){const v=b=>{if(!_[b])return;const y=_[b],C=import_react2.default.createRef(),F=import_react2.default.createRef(),S=getOpenViewStepParams(y.model);a.current.push(y);const j=a.current.slice(0,-1).map(P=>P.params.viewUid);y.model.dispatchEvent("click",I(f({target:e.current,collectionName:S==null?void 0:S.collectionName,associationName:S==null?void 0:S.associationName,dataSourceKey:S==null?void 0:S.dataSourceKey,closeRef:C,updateRef:F,openerUids:j},y.params),{navigation:new import_flow_engine.ViewNavigation(t.context,a.current.map(P=>P.params)),onOpen(){v(b+1)},hidden:y.hidden,isMobileLayout:i})),l.current[getKey(y)]={close:P=>{var w;return(w=C.current)==null?void 0:w.call(C,void 0,P)},update:P=>{var w;return(w=F.current)==null?void 0:w.call(F,P)}}};v(0)}x.forEach(v=>{var b,y;(y=(b=l.current[getKey(v)])==null?void 0:b.close)==null||y.call(b,!0),delete l.current[getKey(v)],a.current=a.current.filter(C=>getKey(C)!==getKey(v))})}),{fireImmediately:!0});return()=>{m==null||m(),a.current.forEach(p=>{var h,g;(g=(h=l.current[getKey(p)])==null?void 0:h.close)==null||g.call(h,!0),t.removeModel(p.params.viewUid),delete l.current[getKey(p)]}),a.current=[]}},[t,i,d]),(0,import_jsx_runtime.jsx)("div",{ref:e})},FlowPage=e=>{const t=e,{pageModelClass:o="ChildPageModel",parentId:r,onModelLoaded:i}=t,n=W(t,["pageModelClass","parentId","onModelLoaded"]),l=(0,import_flow_engine.useFlowEngine)(),a=(0,import_flow_engine.useFlowViewContext)(),{loading:c,data:u}=(0,import_ahooks.useRequest)(()=>O(void 0,null,function*(){const d={async:!0,parentId:r,subKey:"page",subType:"object",use:o};o==="ChildPageModel"&&(d.subModels={tabs:[{use:"ChildPageTabModel",stepParams:{pageTabSettings:{tab:{title:"Details"}}}}]},d.stepParams={pageSettings:{general:{displayTitle:!1,enableTabs:!0}}});const m=yield l.loadOrCreateModel(d);return m!=null&&m.uid&&i&&(m.context.addDelegate(a),m.removeParentDelegate(),i(m.uid,m)),m}),{refreshDeps:[r]});return c||!(u!=null&&u.uid)?(0,import_jsx_runtime.jsx)(SkeletonFallback,{style:{margin:16}}):(0,import_jsx_runtime.jsx)(InternalFlowPage,f({uid:u.uid},n))},RemoteFlowModelRenderer=e=>{const t=e,{uid:o,parentId:r,subKey:i}=t,n=W(t,["uid","parentId","subKey"]),l=(0,import_flow_engine.useFlowEngine)(),{loading:a,data:c}=(0,import_ahooks.useRequest)(()=>O(void 0,null,function*(){return yield l.loadModel({uid:o,parentId:r,subKey:i})}),{refreshDeps:[o,r,i]});return a||!(c!=null&&c.uid)?(0,import_jsx_runtime.jsx)(SkeletonFallback,{style:{margin:16}}):(0,import_jsx_runtime.jsx)(InternalFlowPage,f({uid:c.uid},n))},openView=(0,import_flow_engine.defineAction)({name:"openView",title:(0,import_flow_engine.escapeT)("Edit popup"),uiSchema:{mode:{type:"string",title:(0,import_flow_engine.escapeT)("Open mode"),enum:[{label:(0,import_flow_engine.escapeT)("Drawer"),value:"drawer"},{label:(0,import_flow_engine.escapeT)("Dialog"),value:"dialog"},{label:(0,import_flow_engine.escapeT)("Page"),value:"embed"}],"x-decorator":"FormItem","x-component":"Radio.Group"},size:{type:"string",title:(0,import_flow_engine.escapeT)("Popup size"),enum:[{label:(0,import_flow_engine.escapeT)("Small"),value:"small"},{label:(0,import_flow_engine.escapeT)("Medium"),value:"medium"},{label:(0,import_flow_engine.escapeT)("Large"),value:"large"}],"x-decorator":"FormItem","x-component":"Radio.Group","x-reactions":{dependencies:["mode"],fulfill:{state:{hidden:'{{$deps[0] === "embed"}}'}}}},uid:{type:"string",title:(0,import_flow_engine.escapeT)("Popup uid"),required:!0,"x-decorator":"FormItem","x-component":function e(t){const{value:o,onChange:r}=t,i=(0,import_flow_engine.useFlowSettingsContext)(),n=(0,import_react.useField)(),l=(0,import_react.useForm)(),a=(0,import_react2.useCallback)((u,d)=>{l.setFieldState(u,m=>{m.disabled=d})},[l]),c=(0,import_react2.useCallback)((u,d)=>{const m=["dataSourceKey","collectionName","associationName","sourceId","filterByTk"];if(!u){m.forEach(g=>a(g,!1)),a("tabUid",!1);return}const p=g=>u[g];m.forEach(g=>{const x=p(g);x!==void 0?(l.setValuesIn(g,x),g==="dataSourceKey"||g==="collectionName"?a(g,!0):a(g,!!d)):a(g,!1)});const h=p("tabUid");h!==void 0?(l.setValuesIn("tabUid",h),a("tabUid",!!d)):a("tabUid",!1)},[l,a]);return(0,import_react2.useEffect)(()=>{let u=!0;return O(this,null,function*(){var d,m;l.setFieldState((d=n.props)==null?void 0:d.name,p=>{p.loading=!0});try{const p=i.engine;let h=p.getModel(o);if(h||(h=yield p.loadModel({uid:o})),!u)return;if(!h){n.setFeedback({type:"error",code:"NotFound",messages:[i.t("Popup UID not exists")]}),c(null,!1);return}n.setFeedback({});const g=h.getStepParams("popupSettings","openView")||{},x=h.uid===i.model.uid;c(g||null,!x)}catch{if(!u)return;n.setFeedback({type:"error",code:"LoadFailed",messages:[i.t("Failed to load popup by UID")]}),c(null,!1)}finally{u&&l.setFieldState((m=n.props)==null?void 0:m.name,p=>{p.loading=!1})}}),()=>{u=!1}},[o,i,n,l,c]),(0,import_jsx_runtime.jsx)(import_antd.Input,{value:o,onChange:u=>{var d;return r==null?void 0:r((d=u==null?void 0:u.target)==null?void 0:d.value)},suffix:(0,import_jsx_runtime.jsx)("span",{children:n!=null&&n.loading||n.validating?(0,import_jsx_runtime.jsx)(import_icons.LoadingOutlined,{}):null})})}},dsAndCollection:{type:"array",title:(0,import_flow_engine.escapeT)("Data source / Collection"),"x-decorator":"FormItem","x-component":function e(t){const{disabled:o,placeholder:r}=t,i=(0,import_flow_engine.useFlowSettingsContext)(),n=(0,import_react.useForm)(),[l,a]=(0,import_react2.useState)(()=>{var g;return(g=n==null?void 0:n.values)==null?void 0:g.dataSourceKey}),[c,u]=(0,import_react2.useState)(()=>{var g;return(g=n==null?void 0:n.values)==null?void 0:g.collectionName});(0,import_react.useFormEffects)(()=>{(0,import_core.onFieldValueChange)("dataSourceKey",g=>a(g.value)),(0,import_core.onFieldValueChange)("collectionName",g=>u(g.value))}),(0,import_react2.useEffect)(()=>{var g,x;a((g=n==null?void 0:n.values)==null?void 0:g.dataSourceKey),u((x=n==null?void 0:n.values)==null?void 0:x.collectionName)},[n]);const d=(0,import_react2.useMemo)(()=>l&&c?[l,c]:void 0,[l,c]),m=(0,import_react2.useMemo)(()=>{var g,x;return(((x=(g=i==null?void 0:i.dataSourceManager)==null?void 0:g.getDataSources)==null?void 0:x.call(g))||[]).map(_=>{var v;return{label:_.displayName,value:_.key,children:(((v=_.getCollections)==null?void 0:v.call(_))||[]).map(b=>({label:b.title,value:b.name}))}})},[i]),p=!0,h=(0,import_react2.useCallback)(g=>{if(!g||g.length<2){n.setValuesIn("dataSourceKey",void 0),n.setValuesIn("collectionName",void 0);return}const[x,_]=g;n.setValuesIn("dataSourceKey",x),n.setValuesIn("collectionName",_),n.setValuesIn("associationName",void 0)},[n]);return(0,import_jsx_runtime.jsx)(import_antd.Cascader,{options:m,value:d,onChange:h,disabled:p,placeholder:r,allowClear:!0,showSearch:!0,style:{width:"100%"}})}},dataSourceKey:{type:"string",title:(0,import_flow_engine.escapeT)("Data source key"),"x-decorator":"FormItem","x-component":function e(t){const{value:o,onChange:r,disabled:i,placeholder:n}=t,l=(0,import_flow_engine.useFlowSettingsContext)(),a=(0,import_react.useForm)(),c=(0,import_react2.useMemo)(()=>{var d,m;return(((m=(d=l==null?void 0:l.dataSourceManager)==null?void 0:d.getDataSources)==null?void 0:m.call(d))||[]).map(p=>({label:p.displayName,value:p.key}))},[l]),u=(0,import_react2.useCallback)(d=>{d!==o&&(a.setValuesIn("collectionName",void 0),a.setValuesIn("associationName",void 0)),r==null||r(d)},[r,a,o]);return(0,import_jsx_runtime.jsx)(import_antd.Select,{showSearch:!0,allowClear:!0,options:c,value:o,onChange:u,disabled:i,placeholder:n,optionFilterProp:"label",style:{width:"100%"}})},"x-reactions":{fulfill:{state:{hidden:!0}}}},collectionName:{type:"string",title:(0,import_flow_engine.escapeT)("Collection name"),"x-decorator":"FormItem","x-component":function e(t){const{value:o,onChange:r,disabled:i,placeholder:n}=t,l=(0,import_flow_engine.useFlowSettingsContext)(),a=(0,import_react.useForm)(),[c,u]=(0,import_react2.useState)(()=>{var m;return(m=a==null?void 0:a.values)==null?void 0:m.dataSourceKey});(0,import_react.useFormEffects)(()=>{(0,import_core.onFieldValueChange)("dataSourceKey",m=>u(m.value))}),(0,import_react2.useEffect)(()=>{var m;u((m=a==null?void 0:a.values)==null?void 0:m.dataSourceKey)},[a]);const d=(0,import_react2.useMemo)(()=>{var m,p,h;if(!c)return[];const g=(p=(m=l==null?void 0:l.dataSourceManager)==null?void 0:m.getDataSource)==null?void 0:p.call(m,c);return(((h=g==null?void 0:g.getCollections)==null?void 0:h.call(g))||[]).map(x=>({label:x.title,value:x.name}))},[l,c]);return(0,import_jsx_runtime.jsx)(import_antd.Select,{showSearch:!0,allowClear:!0,options:d,value:o,onChange:m=>{m!==o&&a.setValuesIn("associationName",void 0),r==null||r(m)},disabled:i||!c,placeholder:n||(c?void 0:l.t("Please select data source first")),optionFilterProp:"label",style:{width:"100%"}})},"x-reactions":{fulfill:{state:{hidden:!0}}}},associationName:{type:"string",title:(0,import_flow_engine.escapeT)("Association name"),"x-decorator":"FormItem","x-component":function e(t){const{value:o,onChange:r,disabled:i,placeholder:n}=t,l=(0,import_flow_engine.useFlowSettingsContext)(),a=(0,import_react.useForm)(),[c,u]=(0,import_react2.useState)(()=>{var h;return(h=a==null?void 0:a.values)==null?void 0:h.dataSourceKey}),[d,m]=(0,import_react2.useState)(()=>{var h;return(h=a==null?void 0:a.values)==null?void 0:h.collectionName});(0,import_react.useFormEffects)(()=>{(0,import_core.onFieldValueChange)("dataSourceKey",h=>u(h.value)),(0,import_core.onFieldValueChange)("collectionName",h=>m(h.value))}),(0,import_react2.useEffect)(()=>{var h,g;u((h=a==null?void 0:a.values)==null?void 0:h.dataSourceKey),m((g=a==null?void 0:a.values)==null?void 0:g.collectionName)},[a]);const p=(0,import_react2.useMemo)(()=>{var h,g,x,_;if(!c||!d)return[];const v=(g=(h=l==null?void 0:l.dataSourceManager)==null?void 0:h.getDataSource)==null?void 0:g.call(h,c),b=(x=v==null?void 0:v.getCollection)==null?void 0:x.call(v,d);if(!b)return[];const y=((_=b.getAssociationFields)==null?void 0:_.call(b,["many","one"]))||[];return[{label:b.title,value:b.name},...y.map(C=>({label:`${b.title}.${C.title||C.name}`,value:`${b.name}.${C.name}`}))]},[l,c,d]);return(0,import_jsx_runtime.jsx)(import_antd.Select,{showSearch:!0,allowClear:!0,options:p,value:o,onChange:r,disabled:i||!c||!d,placeholder:n||(c?d?void 0:l.t("Please select collection first"):l.t("Please select data source first")),optionFilterProp:"label",style:{width:"100%"}})},"x-reactions":{fulfill:{state:{hidden:"{{!$self.value}}",disabled:'{{ $self.initialValue != null && $self.initialValue !== "" }}'}}}},tabUid:{type:"string",title:(0,import_flow_engine.escapeT)("Tab uid"),"x-decorator":"FormItem","x-component":"Input","x-reactions":{fulfill:{state:{hidden:!0}}}},sourceId:{type:"string",title:(0,import_flow_engine.escapeT)("Source ID"),"x-decorator":"FormItem","x-component":function e(t){const o=(0,import_flow_engine.useFlowSettingsContext)(),r=(0,import_react2.useMemo)(()=>{var i,n;try{const l=(o.getPropertyMetaTree()||[]).filter(u=>["record","resource"].includes(String(u==null?void 0:u.name))),a=l.some(u=>String(u==null?void 0:u.name)==="resource");let c=!1;try{const u=(n=(i=o==null?void 0:o.resource)==null?void 0:i.getSourceId)==null?void 0:n.call(i);c=u!=null&&String(u)!==""}catch{}return!a&&c&&l.push({name:"resource",title:o.t("Resource"),type:"object",paths:["resource"],children:[{name:"sourceId",title:o.t("Source ID"),type:"string",paths:["resource","sourceId"]}]}),l.filter(u=>String(u==null?void 0:u.name)==="record"||String(u==null?void 0:u.name)==="resource")}catch{return o.getPropertyMetaTree()}},[o]);return(0,import_jsx_runtime.jsx)(import_flow_engine.VariableInput,{value:t.value,onChange:t.onChange,disabled:t.disabled,placeholder:t.placeholder,metaTree:()=>r})},"x-reactions":{dependencies:["associationName"],fulfill:{state:{hidden:"{{!$deps[0]}}"}}}},filterByTk:{type:"string",title:(0,import_flow_engine.escapeT)("Filter by TK"),"x-decorator":"FormItem","x-component":function e(t){const o=(0,import_flow_engine.useFlowSettingsContext)(),r=(0,import_react2.useMemo)(()=>{try{return(o.getPropertyMetaTree()||[]).filter(i=>String(i==null?void 0:i.name)==="record")}catch{return o.getPropertyMetaTree()}},[o]);return(0,import_jsx_runtime.jsx)(import_flow_engine.VariableInput,{value:t.value,onChange:t.onChange,disabled:t.disabled,placeholder:t.placeholder,metaTree:()=>r})}}},defaultParams:e=>O(void 0,null,function*(){var t,o,r;const i=e.getPropertyMetaTree()||[],n=Array.isArray(i)&&i.some(p=>String(p==null?void 0:p.name)==="record"),l=e==null?void 0:e.collection,a=n&&l&&typeof l.filterTargetKey=="string"&&l.filterTargetKey?l.filterTargetKey:"id",c=n?`{{ ctx.record.${a} }}`:void 0;let u;try{const p=(o=(t=e==null?void 0:e.resource)==null?void 0:t.getSourceId)==null?void 0:o.call(t);p!=null&&String(p)!==""&&(u="{{ ctx.resource.sourceId }}")}catch{}const d=l==null?void 0:l.dataSourceKey,m=l==null?void 0:l.name;return f(f(f(f({mode:"drawer",size:"medium",pageModelClass:"ChildPageModel",uid:(r=e.model)==null?void 0:r.uid},c?{filterByTk:c}:{}),u?{sourceId:u}:{}),d?{dataSourceKey:d}:{}),m?{collectionName:m}:{})}),beforeParamsSave(e,t){return O(this,null,function*(){if(t!=null&&t.uid){const o=e.engine;if(!(o.getModel(t.uid)||(yield o.loadModel({uid:t.uid}))))throw new Error(e.t("Popup UID not exists"))}})},handler(e,t){return O(this,null,function*(){var o,r,i,n,l,a,c,u,d,m,p,h,g,x,_,v,b,y,C,F,S,j,P,w,M,R,B,D,T,E,N,A,$;if(t!=null&&t.uid&&t.uid!==e.model.uid){const Z=((r=(o=e.model)==null?void 0:o.getInputArgs)==null?void 0:r.call(o))||{};yield e.openView(t.uid,I(f({},t),{target:e.inputArgs.target||e.layoutContentElement,dataSourceKey:(i=t.dataSourceKey)!=null?i:Z.dataSourceKey,collectionName:(n=t.collectionName)!=null?n:Z.collectionName,associationName:(l=t.associationName)!=null?l:Z.associationName,filterByTk:(a=t.filterByTk)!=null?a:Z.filterByTk,sourceId:(c=t.sourceId)!=null?c:Z.sourceId,tabUid:t.tabUid}));return}const L=e.inputArgs||{};L.filterByTk===void 0&&t.filterByTk!==void 0&&(L.filterByTk=t.filterByTk),L.sourceId===void 0&&t.sourceId!==void 0&&(L.sourceId=t.sourceId),L.tabUid===void 0&&t.tabUid!==void 0&&(L.tabUid=t.tabUid);const q=(u=L.navigation)!=null?u:t.navigation;if(q!==!1&&!e.inputArgs.navigation&&(d=e.view)!=null&&d.navigation){const Z=(m=e.inputArgs)!=null&&m.isMobileLayout?"embed":((p=e.inputArgs)==null?void 0:p.mode)||(t==null?void 0:t.mode)||"drawer",oe=I(f({},e.inputArgs),{dataSourceKey:(h=t.dataSourceKey)!=null?h:e.inputArgs.dataSourceKey,collectionName:(g=t.collectionName)!=null?g:e.inputArgs.collectionName,associationName:(x=t.associationName)!=null?x:e.inputArgs.associationName,filterByTk:(_=L.filterByTk)!=null?_:t.filterByTk,sourceId:(v=L.sourceId)!=null?v:t.sourceId,tabUid:(b=L.tabUid)!=null?b:t.tabUid,viewUid:((C=(y=e.model.context)==null?void 0:y.inputArgs)==null?void 0:C.viewUid)||e.model.uid}),ie={type:Z,inputArgs:oe,navigation:(F=e.view)==null?void 0:F.navigation,preventClose:!!(t!=null&&t.preventClose),engineCtx:e.engine.context};e.model.context.defineProperty("view",{value:ie});const ne={viewUid:((j=(S=e.model.context)==null?void 0:S.inputArgs)==null?void 0:j.viewUid)||e.model.uid,filterByTk:(P=L.filterByTk)!=null?P:t.filterByTk,sourceId:(w=L.sourceId)!=null?w:t.sourceId,tabUid:(M=L.tabUid)!=null?M:t.tabUid};e.view.navigation.navigateTo(ne);return}const V={drawer:{small:"30%",medium:"50%",large:"70%"},dialog:{small:"40%",medium:"50%",large:"80%"},embed:{}},U=e.inputArgs.pageModelClass||t.pageModelClass||"ChildPageModel",z=e.inputArgs.isMobileLayout?"embed":e.inputArgs.mode||t.mode||"drawer",G=e.inputArgs.size||t.size||"medium";let H=null,K=null,J=e.model.uid;if(t.subModelKey){const Z=yield e.engine.loadOrCreateModel({async:!0,parentId:e.model.uid,subKey:t.subModelKey,subType:"object",use:"FlowModel"});Z!=null&&Z.uid&&(J=Z.uid)}const Y=!!((R=e.inputArgs)!=null&&R.navigation),Q=((D=(B=e.view)==null?void 0:B.inputArgs)==null?void 0:D.openerUids)||L.openerUids||[],X=Y?L.openerUids||Q:[...Q,((E=(T=e.model.context)==null?void 0:T.inputArgs)==null?void 0:E.viewUid)||e.model.uid],ee=I(f(f({},e.inputArgs),L),{dataSourceKey:t.dataSourceKey,collectionName:t.collectionName,associationName:t.associationName,tabUid:(N=L.tabUid)!=null?N:t.tabUid,openerUids:X});ee.filterByTk=(A=L.filterByTk)!=null?A:t.filterByTk,ee.sourceId=($=L.sourceId)!=null?$:t.sourceId,yield e.viewer.open({type:z,inputArgs:ee,preventClose:!!t.preventClose,destroyOnClose:!0,inheritContext:!1,target:e.inputArgs.target||e.layoutContentElement,width:V[z][G],content:Z=>(e.inputArgs.closeRef&&(e.inputArgs.closeRef.current=Z.close),e.inputArgs.updateRef&&(e.inputArgs.updateRef.current=Z.update),(0,import_jsx_runtime.jsx)(FlowPage,{parentId:J,pageModelClass:U,onModelLoaded:(oe,ie)=>{var ne,se,me,pe,fe,ce,he,ge;H=oe;const ue=ie||e.engine.getModel(H);K=ue||null;const ve=(pe=(me=L.defineProperties)!=null?me:(se=(ne=e.model.context)==null?void 0:ne.inputArgs)==null?void 0:se.defineProperties)!=null?pe:{},le=(ge=(he=L.defineMethods)!=null?he:(ce=(fe=e.model.context)==null?void 0:fe.inputArgs)==null?void 0:ce.defineMethods)!=null?ge:{};ue.context.defineProperty("currentView",{get:()=>Z}),ue.context.defineProperty("view",{get:()=>Z}),ue.context.defineProperty("closable",{get:()=>z!=="embed"}),Object.entries(ve).forEach(([te,re])=>{ue.context.defineProperty(te,re)}),Object.entries(le).forEach(([te,re])=>{ue.context.defineMethod(te,re)}),ue.invalidateFlowCache("beforeRender",!0),ue._rerunLastAutoRun()}})),styles:{content:f({padding:0,backgroundColor:e.model.flowEngine.context.themeToken.colorBgLayout},z==="embed"?{position:"absolute",top:0,left:0,right:0,bottom:0}:{}),body:{padding:0}},onClose:()=>{var Z,oe;const ie=((Z=e.inputArgs)==null?void 0:Z.navigation)||((oe=e.view)==null?void 0:oe.navigation);if(H){const ne=K||e.model.flowEngine.getModel(H);ne==null||ne.invalidateFlowCache("beforeRender",!0)}q!==!1&&ie!=null&&ie.back&&ie.back()},onOpen:e.inputArgs.onOpen})})}}),InjectableRendingEventTrigger=e=>{var t=e,{children:o,mode:r}=t,i=W(t,["children","mode"]);if(import_react2.default.Children.count(o)!==1||!import_react2.default.isValidElement(o))throw new Error("InjectableRendingEventTrigger expects exactly one child element.");return r==="runtime"?(0,import_jsx_runtime.jsx)(RuntimeTrigger,I(f({},i),{children:o})):(0,import_jsx_runtime.jsx)(SettingsTrigger,I(f({},i),{children:o}))},SettingsTrigger=({children:e,name:t,language:o,scene:r})=>{const i=(0,import_flow_engine.useFlowSettingsContext)(),n=useInjectableProps(i,t,o,r,e);return import_react2.default.cloneElement(e,n)},RuntimeTrigger=({children:e,name:t,language:o,scene:r})=>{const i=(0,import_flow_engine.useFlowContext)(),n=useInjectableProps(i,t,o,r,e);return import_react2.default.cloneElement(e,n)},useInjectableProps=(e,t,o,r,i)=>{const[n,l]=import_react2.default.useState({});return(0,import_react2.useEffect)(()=>{e&&e.model.dispatchEvent("InjectableRending",{ctx:e,name:t,language:o,scene:r,children:i,setProps:l})},[e,t,o,r,i]),n};function buildRunJSCompletions(e,t="v1",o){return O(this,null,function*(){var r,i,n,l,a,c,u,d,m,p;try{yield(0,import_flow_engine.setupRunJSContexts)()}catch{}const h=(0,import_flow_engine.getRunJSDocFor)(e||{},{version:t}),g=[],x=S=>typeof S=="string"?S:JSON.stringify(S);(h!=null&&h.label||h!=null&&h.properties||h!=null&&h.methods)&&g.push({label:"ctx",type:"class",detail:"FlowRunJSContext",info:(h==null?void 0:h.label)||"RunJS context",boost:115});const _=(S,j=[])=>{var P,w,M,R,B;if(S)for(const[D,T]of Object.entries(S)){const E=[...j,D],N=`ctx.${E.join(".")}`,A=E.length;let $=T,L,q,V;T&&typeof T=="object"&&!Array.isArray(T)&&($=(M=(w=(P=T.description)!=null?P:T.detail)!=null?w:T.type)!=null?M:T,L=(B=(R=T.detail)!=null?R:T.type)!=null?B:"ctx property",V=T.completion,q=T.properties);const U=V!=null&&V.insertText?(z,G,H,K)=>{z.dispatch({changes:{from:H,to:K,insert:V.insertText},selection:{anchor:H+V.insertText.length},scrollIntoView:!0})}:void 0;g.push({label:N,type:"property",info:x($),detail:L||"ctx property",boost:Math.max(90-A*5,10),apply:U}),q&&_(q,E)}};_((h==null?void 0:h.properties)||{});const v=(h==null?void 0:h.methods)||{};for(const S of Object.keys(v)){const j=v[S];let P=j,w="ctx method",M;j&&typeof j=="object"&&!Array.isArray(j)&&(P=(i=(r=j.description)!=null?r:j.detail)!=null?i:j,w=(n=j.detail)!=null?n:w,M=j.completion);const R=(l=M==null?void 0:M.insertText)!=null?l:`ctx.${S}()`;g.push({label:`ctx.${S}()`,type:"function",info:x(P),detail:w,boost:95,apply:(B,D,T,E)=>{B.dispatch({changes:{from:T,to:E,insert:R},selection:{anchor:T+R.length},scrollIntoView:!0})}})}let b=[];try{const S=((c=(a=e==null?void 0:e.model)==null?void 0:a.constructor)==null?void 0:c.name)||"*",j=((d=(u=e==null?void 0:e.api)==null?void 0:u.auth)==null?void 0:d.locale)||((m=e==null?void 0:e.i18n)==null?void 0:m.language);b=yield(0,import_flow_engine.listSnippetsForContext)(S,t,j)}catch{b=[]}const y=Array.isArray(o)?o.filter(S=>typeof S=="string"&&S.trim().length>0):o?[o]:[],C=y.length?b.filter(S=>{var j;if((j=S.scenes)!=null&&j.length)return S.scenes.some(R=>y.includes(R));const P=S.group||"";if(!P.startsWith("scene/"))return!0;const[w,M]=P.split("/");return M?y.includes(M):!1}):b,F=new Set;for(const S of C){const j=S.body,P=String((p=S.name)!=null?p:"").trim(),w=typeof S.prefix=="string"?S.prefix.trim():"",M=P||w,R=M,B=P&&w&&w!==R?w:void 0,D=S.ref||`${M}|${B??""}`;!R||F.has(D)||(F.add(D),g.push({label:M,displayLabel:R,detail:B,type:"snippet",info:S.description||S.ref,boost:80,apply:(T,E,N,A)=>{T.dispatch({changes:{from:N,to:A,insert:j},selection:{anchor:N+j.length},scrollIntoView:!0})}}))}return{completions:g,entries:C}})}function useRunJSDocCompletions(e,t="v1",o){const[r,i]=(0,import_react2.useState)(null),[n,l]=(0,import_react2.useState)([]),[a,c]=(0,import_react2.useState)(null);return(0,import_react2.useEffect)(()=>{let u=!1;return O(this,null,function*(){try{const{completions:d,entries:m}=yield buildRunJSCompletions(e,t,o);u||(i(d),l(m),c(null))}catch(d){u||(i(null),l([]),c(d))}}),()=>{u=!0}},[e,t,o]),{completions:r,entries:n,error:a}}const WRAPPER_PRELUDE_LINES=2;function clearDiagnostics(e){var t;try{e&&(0,import_lint.setDiagnostics)(e.state,[])}catch(o){try{(t=console.debug)==null||t.call(console,"[errorHelpers] clearDiagnostics failed",o)}catch{}}}function parseErrorLineColumn(e){const t=String((e==null?void 0:e.stack)||(e==null?void 0:e.message)||e||""),o=t.split(`
|
|
1694
1694
|
`);for(const i of o){let n=i.match(/<anonymous>:(\d+):(\d+)/);if(n)return{line:parseInt(n[1],10),column:parseInt(n[2],10)};if(n=i.match(/:(\d+):(\d+)/),n){const l=parseInt(n[1],10),a=parseInt(n[2],10);if(!Number.isNaN(l)&&!Number.isNaN(a))return{line:l,column:a}}}const r=t.match(/line\s*(\d+)\D+column\s*(\d+)/i);return r?{line:parseInt(r[1],10),column:parseInt(r[2],10)}:null}function markErrorAt(e,t,o,r,i=WRAPPER_PRELUDE_LINES){var n;try{if(!e)return;const l=Math.max(1,t-i),a=e.state.doc.line(Math.min(l,e.state.doc.lines)),c=Math.min(a.from+Math.max(0,o-1),a.to),u=[{from:c,to:c,severity:"error",message:r}];(0,import_lint.setDiagnostics)(e.state,u),e.dispatch({selection:{anchor:c},scrollIntoView:!0})}catch(l){try{(n=console.debug)==null||n.call(console,"[errorHelpers] markErrorAt failed",l)}catch{}}}function jumpTo(e,t,o,r=WRAPPER_PRELUDE_LINES){var i;try{if(!e)return;const n=Math.max(1,t-r),l=e.state.doc.line(Math.min(n,e.state.doc.lines)),a=Math.min(l.from+Math.max(0,o-1),l.to);e.dispatch({selection:{anchor:a},scrollIntoView:!0})}catch(n){try{(i=console.debug)==null||i.call(console,"[errorHelpers] jumpTo failed",n)}catch{}}}function getTemplateHtmlRanges(e){const t=[],o=e.from+1,r=e.to-1;let i=o;for(let n=e.firstChild;n;n=n.nextSibling)n.type.name==="Interpolation"&&(n.from>i&&t.push({from:i,to:n.from}),i=Math.max(i,n.to));return i<r&&t.push({from:i,to:r}),t.filter(n=>n.to>n.from)}function javascriptWithHtmlTemplates(){const e=(0,import_lang_javascript.javascript)(),t=(0,import_lang_html.html)(),o=import_lang_javascript.javascriptLanguage.configure({wrap:(0,import_common.parseMixed)(r=>{if(r.type.name!=="TemplateString")return null;const i=getTemplateHtmlRanges(r.node);return i.length?{parser:import_lang_html.htmlLanguage.parser,overlay:i}:null})});return new import_language.LanguageSupport(o,[e.support,t.support])}const buildSegments=(e,t,o)=>{const r=o.state.doc,i=[];let n="",l=0;for(const u of t){const d=r.sliceString(u.from,u.to),m=l,p=m+d.length;i.push({htmlFrom:m,htmlTo:p,docFrom:u.from}),n+=d,l=p}if(!i.length)return null;const a=i.find(({docFrom:u,htmlFrom:d,htmlTo:m})=>o.pos>=u&&o.pos<=u+(m-d));if(!a)return null;const c=a.htmlFrom+(o.pos-a.docFrom);return{htmlDoc:n,htmlPos:c,segments:i}},mapHtmlToDoc=(e,t)=>{for(let o=e.length-1;o>=0;o-=1){const r=e[o];if(t>=r.htmlFrom&&t<=r.htmlTo)return r.docFrom+(t-r.htmlFrom)}return null},findTemplateStringNode=e=>{for(let t=e;t;t=t.parent)if(t.type.name==="TemplateString")return t;return null},resolveHtmlTemplateContext=e=>{const t=(0,import_language.syntaxTree)(e.state).resolveInner(e.pos,-1),o=findTemplateStringNode(t);if(!o||t.type.name==="Interpolation")return null;const r=getTemplateHtmlRanges(o.node);return r.length?buildSegments(o.node,r,e):null},createHtmlCompletionResult=(e,t)=>{const o=mapHtmlToDoc(t,e.from),r=mapHtmlToDoc(t,e.to);return o==null||r==null?null:I(f({},e),{from:o,to:r})},isHtmlTemplateContext=e=>resolveHtmlTemplateContext(e)!=null,createHtmlCompletion=()=>{const e=import_lang_html.htmlCompletionSource;return t=>{const o=resolveHtmlTemplateContext(t);if(!o)return null;const r=import_state.EditorState.create({doc:o.htmlDoc,extensions:[import_lang_html.htmlLanguage]}),i=new import_autocomplete.CompletionContext(r,o.htmlPos,t.explicit),n=e(i);return n?createHtmlCompletionResult(n,o.segments):null}};function buildBaseCompletions(){var e,t,o,r,i;try{const n=typeof((e=import_flow_engine.FlowRunJSContext)==null?void 0:e.getDoc)=="function"?import_flow_engine.FlowRunJSContext.getDoc():{},l=[],a=d=>typeof d=="string"?d:JSON.stringify(d);(n!=null&&n.label||n!=null&&n.properties||n!=null&&n.methods)&&l.push({label:"ctx",type:"class",detail:"FlowRunJSContext",info:(n==null?void 0:n.label)||"RunJS context",boost:115});const c=(d,m=[])=>{var p,h,g,x,_;if(d)for(const[v,b]of Object.entries(d)){const y=[...m,v],C=`ctx.${y.join(".")}`,F=y.length;let S=b,j,P,w;b&&typeof b=="object"&&!Array.isArray(b)&&(S=(g=(h=(p=b.description)!=null?p:b.detail)!=null?h:b.type)!=null?g:b,j=(_=(x=b.detail)!=null?x:b.type)!=null?_:"ctx property",P=b.completion,w=b.properties);const M=P!=null&&P.insertText?(R,B,D,T)=>{R.dispatch({changes:{from:D,to:T,insert:P.insertText},selection:{anchor:D+P.insertText.length},scrollIntoView:!0})}:void 0;l.push({label:C,type:"property",detail:j||"ctx property",info:a(S),boost:Math.max(90-F*5,10),apply:M}),w&&c(w,y)}};c((n==null?void 0:n.properties)||{});const u=(n==null?void 0:n.methods)||{};for(const d of Object.keys(u)){const m=u[d];let p=m,h="ctx method",g;m&&typeof m=="object"&&!Array.isArray(m)&&(p=(o=(t=m.description)!=null?t:m.detail)!=null?o:m,h=(r=m.detail)!=null?r:h,g=m.completion);const x=(i=g==null?void 0:g.insertText)!=null?i:`ctx.${d}()`;l.push({label:`ctx.${d}()`,type:"function",detail:h,info:a(p),boost:95,apply:(_,v,b,y)=>{_.dispatch({changes:{from:b,to:y,insert:x},selection:{anchor:b+x.length},scrollIntoView:!0})}})}return l}catch{return[]}}const baseCompletions=buildBaseCompletions(),javascriptCompletionSource=e=>{if(isHtmlTemplateContext(e))return null;const t=e.matchBefore(/[$_\p{Letter}][$_\p{Letter}\p{Number}.-]*/u);if(!t&&e.explicit)return{from:e.pos,to:e.pos,options:baseCompletions};if(!t||t.from===t.to&&!e.explicit)return null;const o=t.from,r=t.to;return{from:o,to:r,options:baseCompletions}},createJavascriptCompletion=()=>javascriptCompletionSource,createJavaScriptLinter=()=>(0,import_lint.linter)(e=>{const t=[],o=e.state.doc.toString();if(!o.trim())return t;let r=null;try{r=acorn.parse(o,{ecmaVersion:2022,sourceType:"script",allowAwaitOutsideFunction:!0,allowReturnOutsideFunction:!0,locations:!0})}catch(i){const n=i;let l=0,a=o.length;return n.loc?(l=o.split(`
|
|
1695
1695
|
`).slice(0,n.loc.line-1).join(`
|
|
1696
1696
|
`).length+(n.loc.line>1?1:0)+n.loc.column,a=l+1):n.pos!==void 0&&(l=n.pos,a=l+1),t.push({from:l,to:a,severity:"error",message:`Syntax error: ${n.message}`,actions:[]}),t}try{const i=(u,d,m,p="warning")=>{t.push({from:u,to:d,message:m,severity:p,actions:[]})},n=new Set(["ctx","console","window","document","Math","Date","Array","Object","Number","String","Boolean","Promise","RegExp","Set","Map","WeakSet","WeakMap","JSON","Intl","URL","Error","TypeError","encodeURIComponent","decodeURIComponent","parseInt","parseFloat","isNaN","isFinite","undefined","NaN","Infinity"]),l=u=>{u&&typeof u.name=="string"&&n.add(u.name)},a=u=>{if(!u)return;const d=[u];for(;d.length;){const m=d.pop();m&&(m.type==="Identifier"?l(m):m.type==="AssignmentPattern"?d.push(m.left):m.type==="ArrayPattern"?(m.elements||[]).forEach(p=>p&&d.push(p)):m.type==="ObjectPattern"&&(m.properties||[]).forEach(p=>p&&d.push(p.value||p)))}};acornWalk.full(r,u=>{switch(u==null?void 0:u.type){case"VariableDeclarator":a(u.id);break;case"FunctionDeclaration":l(u.id),(u.params||[]).forEach(a);break;case"FunctionExpression":l(u.id),(u.params||[]).forEach(a);break;case"ArrowFunctionExpression":(u.params||[]).forEach(a);break;case"CatchClause":a(u.param);break;case"ClassDeclaration":l(u.id);break;default:break}}),acornWalk.full(r,u=>{var d,m,p,h;if(!(!u||typeof u.type!="string")){if(u.type==="CallExpression"){const g=u.callee;if(!(g&&(g.type==="Identifier"||g.type==="MemberExpression"||g.type==="FunctionExpression"||g.type==="ArrowFunctionExpression"||g.type==="CallExpression"||g.type==="ChainExpression"))){const x=(d=(g==null?void 0:g.loc)&&g.start)!=null?d:u.start,_=(m=(g==null?void 0:g.loc)&&g.end)!=null?m:u.end;i(x,_,"This expression is not callable.")}}else if(u.type==="NewExpression"){const g=u.callee;if(!(g&&(g.type==="Identifier"||g.type==="MemberExpression"||g.type==="CallExpression"))){const x=(p=(g==null?void 0:g.loc)&&g.start)!=null?p:u.start,_=(h=(g==null?void 0:g.loc)&&g.end)!=null?h:u.end;i(x,_,"This constructor is not a function.")}}}});const c=new Set;acornWalk.ancestor(r,{Identifier(u,d){var m,p;const h=u.name;if(!h||n.has(h)||c.has(h))return;const g=d[d.length-2];if(!g||g.type==="VariableDeclarator"&&g.id===u||g.type==="FunctionDeclaration"&&g.id===u||g.type==="FunctionExpression"&&g.id===u||g.type==="ClassDeclaration"&&g.id===u||g.type==="ClassExpression"&&g.id===u||g.type==="Property"&&g.key===u&&g.computed!==!0||g.type==="MemberExpression"&&g.property===u&&g.computed!==!0||g.type==="LabeledStatement"&&g.label===u||g.type==="BreakStatement"&&g.label===u||g.type==="ContinueStatement"&&g.label===u)return;const x=(m=u.start)!=null?m:0,_=(p=u.end)!=null?p:x+1;i(x,_,`Possible undefined variable: ${h}`,"warning"),c.add(h)}})}catch{}return t}),EditorCore=({value:e="",onChange:t,placeholder:o="",height:r="100%",minHeight:i,theme:n="light",readonly:l=!1,enableLinter:a=!1,extraCompletions:c,viewRef:u})=>{const d=(0,import_react2.useRef)(null),m=(0,import_react2.useRef)();return(0,import_react2.useEffect)(()=>{m.current=t},[t]),(0,import_react2.useEffect)(()=>{var p,h,g;if(!d.current)return;const x=F=>S=>{const j=S.matchBefore(/[$_\p{Letter}][$_\p{Letter}\p{Number}.-]*/u);return j?j.from===j.to&&!S.explicit?null:{from:j.from,to:j.to,options:F}:S.explicit?{from:S.pos,to:S.pos,options:F}:null},_=typeof i>"u"?void 0:typeof i=="string"?i:`${i}px`,v=typeof _=="string"?{".cm-gutter,.cm-content":{minHeight:_}}:{},b=[import_codemirror.basicSetup,javascriptWithHtmlTemplates(),(0,import_autocomplete.autocompletion)({override:[createHtmlCompletion(),createJavascriptCompletion(),...Array.isArray(c)&&c.length?[x(c)]:[]],closeOnBlur:!1,activateOnTyping:!0}),...a?[(0,import_lint.lintGutter)(),createJavaScriptLinter()]:[],(0,import_view.tooltips)({parent:document.getElementById("nocobase-embed-container")||((p=d.current)==null?void 0:p.closest("#nocobase-embed-container"))||document.body}),import_view.EditorView.updateListener.of(F=>{var S;if(F.docChanged&&!l){const j=F.state.doc.toString();try{(S=m.current)==null||S.call(m,j)}catch{}}}),import_view.EditorView.theme(I(f({"&":{height:typeof r=="string"?r||"100%":`${r}px`}},v),{".cm-scroller":{fontFamily:'"Fira Code", "Monaco", "Menlo", "Ubuntu Mono", monospace',overflow:"auto"},".cm-diagnostic":{padding:"4px 8px",borderRadius:"4px",border:"1px solid #d9d9d9",backgroundColor:"#fff",boxShadow:"0 2px 8px rgba(0,0,0,0.1)",fontSize:"12px",maxWidth:"300px"},".cm-diagnostic-error":{borderLeftColor:"#ff4d4f",borderLeftWidth:"3px"},".cm-diagnostic-warning":{borderLeftColor:"#faad14",borderLeftWidth:"3px"},".cm-diagnostic-info":{borderLeftColor:"#1890ff",borderLeftWidth:"3px"},".cm-lintRange-error":{backgroundImage:`url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' width='6' height='3'><path d='m0 3 l2 -2 l1 0 l2 2 l1 0' stroke='%23ff4d4f' fill='none' stroke-width='.7'/></svg>")`,backgroundRepeat:"repeat-x",backgroundPosition:"left bottom"},".cm-lintRange-warning":{backgroundImage:`url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' width='6' height='3'><path d='m0 3 l2 -2 l1 0 l2 2 l1 0' stroke='%23faad14' fill='none' stroke-width='.7'/></svg>")`,backgroundRepeat:"repeat-x",backgroundPosition:"left bottom"},".cm-lintRange-info":{backgroundImage:`url("data:image/svg+xml;charset=utf8,<svg xmlns='http://www.w3.org/2000/svg' width='6' height='3'><path d='m0 3 l2 -2 l1 0 l2 2 l1 0' stroke='%231890ff' fill='none' stroke-width='.7'/></svg>")`,backgroundRepeat:"repeat-x",backgroundPosition:"left bottom"}}))];n==="dark"&&b.push(import_theme_one_dark.oneDark);const y=u.current&&typeof((g=(h=u.current.state)==null?void 0:h.doc)==null?void 0:g.toString)=="function"?u.current.state.doc.toString():e||"",C=new import_view.EditorView({doc:y,extensions:b,parent:d.current});return u.current=C,()=>{try{C.destroy()}catch{}u.current=null}},[c,a,r,i,n,l]),(0,import_react2.useEffect)(()=>{const p=u.current;p&&p.state.doc.toString()!==(e||"")&&p.dispatch({changes:{from:0,to:p.state.doc.length,insert:e||""}})},[e]),(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)("div",{style:{flex:1,minHeight:120},ref:d}),o&&!e&&(0,import_jsx_runtime.jsx)("div",{style:{position:"absolute",top:"12px",left:"12px",color:"#999",pointerEvents:"none",fontSize:"14px"},children:o})]})},RightExtra=({rightExtra:e,extraEditorRef:t,onActionCountChange:o,extraContent:r})=>{const[i,n]=(0,import_react2.useState)({}),l=(u,d)=>{n(m=>{const p=I(f({},m),{[u]:d}),h=Object.values(p).filter(Boolean).length;return o==null||o(h),p})},a={padding:"8px",borderBottom:"1px solid #d9d9d9"},{visible:c}=(0,import_react2.useMemo)(()=>{const u=Object.values(i).some(Boolean),d=Array.isArray(e)&&e.length>0;return{visible:u||d||!!r}},[i,e,r]);return(0,import_react2.useEffect)(()=>{t.buttonGroupHeight=c?50:0},[c,t]),c?(0,import_jsx_runtime.jsx)(import_antd.Flex,{gap:"middle",justify:"flex-end",align:"center",style:a,children:(0,import_jsx_runtime.jsxs)("div",{style:{display:"flex",gap:8,alignItems:"center"},children:[r,e==null?void 0:e.map(u=>u(t,l))]})}):null},LogsPanel=({logs:e,onJumpTo:t,tr:o})=>(0,import_jsx_runtime.jsxs)("div",{style:{borderTop:"1px solid #d9d9d9",maxHeight:180,overflow:"auto",padding:"8px 12px",background:"#fff"},children:[(0,import_jsx_runtime.jsx)("div",{style:{fontWeight:600,marginBottom:6},children:o("Logs")}),e.length===0?(0,import_jsx_runtime.jsx)("div",{style:{color:"#999"},children:o("No logs yet. Click Run to execute.")}):e.map((r,i)=>{const n=r.level==="error"?"#ff4d4f":r.level==="warn"?"#faad14":"#333",l=r.level==="error"&&typeof r.line=="number"&&typeof r.column=="number",a=typeof r.line=="number"?Math.max(1,r.line-WRAPPER_PRELUDE_LINES):r.line;return(0,import_jsx_runtime.jsxs)("pre",{onClick:l?()=>{typeof r.line=="number"&&typeof r.column=="number"&&(t==null||t(r.line,r.column))}:void 0,style:{margin:0,whiteSpace:"pre-wrap",color:n,cursor:l?"pointer":"default",textDecoration:l?"underline dotted":"none"},children:["[",r.level,"] ",r.msg,l?` (${o("at")} ${a}:${r.column})`:""]},i)})]}),SnippetsDrawer=({open:e,onClose:t,getContainer:o,entries:r,onInsert:i,tr:n})=>{const[l,a]=(0,import_react2.useState)(""),c=(0,import_react2.useMemo)(()=>{if(!l)return r;const d=l.toLowerCase();return r.filter(m=>m.name.toLowerCase().includes(d)||(m.prefix||"").toLowerCase().includes(d)||(m.description||"").toLowerCase().includes(d)||([...m.groups||[],m.group].filter(Boolean).join(" ")||"").toLowerCase().includes(d)||m.body.toLowerCase().includes(d))},[r,l]),u=(0,import_react2.useMemo)(()=>{const d={global:n("Common"),libs:n("Libs"),"scene/block":n("Block"),"scene/detail":n("Detail"),"scene/form":n("Form"),"scene/table":n("Table")};return m=>m?d[m]||m:""},[n]);return(0,import_jsx_runtime.jsxs)(import_antd.Drawer,{title:n("Snippets"),open:e,onClose:t,getContainer:o,width:"100%",destroyOnClose:!0,children:[(0,import_jsx_runtime.jsx)(import_antd.Input,{placeholder:n("Search snippets (name / prefix / body / group)"),allowClear:!0,value:l,onChange:d=>a(d.target.value),style:{marginBottom:12}}),(0,import_jsx_runtime.jsx)(import_antd.List,{dataSource:c,renderItem:d=>{var m;const p=(m=d.groups)!=null&&m.length?d.groups:d.group?[d.group]:[];return(0,import_jsx_runtime.jsx)(import_antd.List.Item,{actions:[(0,import_jsx_runtime.jsx)(import_antd.Button,{size:"small",type:"primary",onClick:()=>{const h=d.body.endsWith(`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nocobase/client",
|
|
3
|
-
"version": "2.0.0-alpha.
|
|
3
|
+
"version": "2.0.0-alpha.12",
|
|
4
4
|
"license": "AGPL-3.0",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "es/index.mjs",
|
|
@@ -28,10 +28,10 @@
|
|
|
28
28
|
"@formily/reactive-react": "^2.2.27",
|
|
29
29
|
"@formily/shared": "^2.2.27",
|
|
30
30
|
"@formily/validator": "^2.2.27",
|
|
31
|
-
"@nocobase/evaluators": "2.0.0-alpha.
|
|
32
|
-
"@nocobase/flow-engine": "2.0.0-alpha.
|
|
33
|
-
"@nocobase/sdk": "2.0.0-alpha.
|
|
34
|
-
"@nocobase/utils": "2.0.0-alpha.
|
|
31
|
+
"@nocobase/evaluators": "2.0.0-alpha.12",
|
|
32
|
+
"@nocobase/flow-engine": "2.0.0-alpha.12",
|
|
33
|
+
"@nocobase/sdk": "2.0.0-alpha.12",
|
|
34
|
+
"@nocobase/utils": "2.0.0-alpha.12",
|
|
35
35
|
"@tanstack/react-table": "^8.21.3",
|
|
36
36
|
"@types/tabulator-tables": "^6.2.6",
|
|
37
37
|
"ahooks": "^3.7.2",
|
|
@@ -92,5 +92,5 @@
|
|
|
92
92
|
"dumi": "2.2.14",
|
|
93
93
|
"dumi-theme-nocobase": "^0.2.32"
|
|
94
94
|
},
|
|
95
|
-
"gitHead": "
|
|
95
|
+
"gitHead": "24050194a7ce4fbf09bb1d116b71f44832a3aa4f"
|
|
96
96
|
}
|