@nocobase/plugin-data-source-manager 0.20.0-alpha.7 → 0.20.0-alpha.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- (function(M,i){typeof exports=="object"&&typeof module!="undefined"?i(exports,require("react/jsx-runtime"),require("@nocobase/client"),require("react"),require("@formily/react"),require("antd"),require("react-i18next"),require("@ant-design/icons"),require("react-router-dom"),require("@formily/shared"),require("@formily/reactive"),require("@formily/core"),require("@formily/antd-v5"),require("lodash"),require("@dnd-kit/core"),require("@emotion/css"),require("antd-style")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","@nocobase/client","react","@formily/react","antd","react-i18next","@ant-design/icons","react-router-dom","@formily/shared","@formily/reactive","@formily/core","@formily/antd-v5","lodash","@dnd-kit/core","@emotion/css","antd-style"],i):(M=typeof globalThis!="undefined"?globalThis:M||self,i(M["@nocobase/plugin-data-source-manager"]={},M.jsxRuntime,M["@nocobase/client"],M.react,M["@formily/react"],M.antd,M["react-i18next"],M["@ant-design/icons"],M["react-router-dom"],M["@formily/shared"],M["@formily/reactive"],M["@formily/core"],M["@formily/antd-v5"],M.lodash,M["@dnd-kit/core"],M["@emotion/css"],M["antd-style"]))})(this,function(M,i,n,p,A,h,V,ee,W,L,tt,ue,pe,J,R,ae,Ir){"use strict";var nv=Object.defineProperty,av=Object.defineProperties;var sv=Object.getOwnPropertyDescriptors;var Re=Object.getOwnPropertySymbols;var _r=Object.prototype.hasOwnProperty,Pr=Object.prototype.propertyIsEnumerable;var Mt=(M,i,n)=>i in M?nv(M,i,{enumerable:!0,configurable:!0,writable:!0,value:n}):M[i]=n,$=(M,i)=>{for(var n in i||(i={}))_r.call(i,n)&&Mt(M,n,i[n]);if(Re)for(var n of Re(i))Pr.call(i,n)&&Mt(M,n,i[n]);return M},k=(M,i)=>av(M,sv(i));var et=(M,i)=>{var n={};for(var p in M)_r.call(M,p)&&i.indexOf(p)<0&&(n[p]=M[p]);if(M!=null&&Re)for(var p of Re(M))i.indexOf(p)<0&&Pr.call(M,p)&&(n[p]=M[p]);return n};var Dr=(M,i,n)=>(Mt(M,typeof i!="symbol"?i+"":i,n),n);var O=(M,i,n)=>new Promise((p,A)=>{var h=W=>{try{ee(n.next(W))}catch(L){A(L)}},V=W=>{try{ee(n.throw(W))}catch(L){A(L)}},ee=W=>W.done?p(W.value):Promise.resolve(W.value).then(h,V);ee((n=n.apply(M,i)).next())});const N="data-source-manager";function Or(e,t={}){return n.i18n.t(e,k($({},t),{ns:N}))}const Er=e=>{const t=A.useForm(),o=n.useActionContext(),r=n.useAPIClient(),{t:a}=V.useTranslation(),s=A.useField();return s.data=s.data||{},{run(){return O(this,null,function*(){yield t.submit();try{s.data.loading=!0;const{data:l}=yield r.resource("databaseServers").create({values:$({},t.values)});s.data.loading=!1,o.setVisible(!1),yield t.reset(),e==null||e(l==null?void 0:l.data),h.message.success(a("Saved successfully"))}catch(l){s.data.loading=!1,console.log(l)}})}}},jt=()=>{const e=A.useForm(),t=n.useAPIClient(),{t:o}=V.useTranslation(),r=A.useField();return r.data=r.data||{},{run(){return O(this,null,function*(){yield e.submit();try{r.data.loading=!0,yield t.resource("dataSources").testConnection({values:$({},e.values)}),r.data.loading=!1,h.message.success(o("Connection successful",{ns:N}))}catch(s){r.data.loading=!1,console.log(s)}})}}},Mr=Object.freeze(Object.defineProperty({__proto__:null,useCreateDatabaseServer:Er,useTestConnectionAction:jt},Symbol.toStringTag,{value:"Module"})),Pe=p.createContext(null);Pe.displayName="DataSourceContext";const jr=e=>{const[t,o]=p.useState(null);return i.jsx(Pe.Provider,{value:{dataSource:t,setDataSource:o},children:i.jsx(n.SchemaComponentOptions,{scope:Mr,components:{},children:e.children})})};class kt extends n.DataSource{getDataSource(){return O(this,null,function*(){return(yield this.app.apiClient.request({url:`dataSources:get/${this.key}`,params:{appends:["collections"]}})).data.data})}}const Kt=[{value:"loading",label:`{{t("Loading",{ns:"${N}"})}}`,color:"orange"},{value:"loading-failed",label:`{{t("Failed",{ns:"${N}"})}}`,color:"red"},{value:"loaded",label:`{{t("Loaded",{ns:"${N}"})}}`,color:"green"},{value:"reloading",label:`{{t("Reloading",{ns:"${N}"})}}`,color:"orange"}],Nt={name:"collections-"+L.uid(),fields:[{type:"string",name:"key",interface:"input",uiSchema:{title:`{{t("Data source name",{ ns: "${N}" })}}`,type:"string","x-component":"Input",required:!0}},{type:"string",name:"displayName",interface:"input",uiSchema:{title:`{{t("Data source display name",{ ns: "${N}" })}}`,type:"string","x-component":"Input",required:!0}},{type:"string",name:"type",interface:"select",uiSchema:{title:`{{t("Type", { ns: "${N}" })}}`,type:"string","x-component":"Select",enum:"{{types}}"}},{type:"string",name:"status",interface:"select",uiSchema:{title:`{{t("Status", { ns: "${N}" })}}`,type:"string","x-component":"Select",enum:Kt}},{type:"boolean",name:"enabled",uiSchema:{type:"boolean",title:'{{t("Enabled")}}',"x-component":"Checkbox"}}]},kr={type:"object",properties:{[L.uid()]:{type:"void","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:Nt,resourceName:"dataSources",request:{resource:"dataSources",action:"list",params:{pageSize:50,appends:[]}}},"x-component":"CollectionProvider_deprecated","x-component-props":{collection:Nt},properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:16}},properties:{refresh:{type:"void",title:'{{ t("Refresh") }}',"x-component":"Action","x-component-props":{icon:"ReloadOutlined",useProps:"{{ useRefreshActionProps }}"}},delete:{type:"void",title:'{{ t("Delete") }}',"x-component":"Action","x-component-props":{icon:"DeleteOutlined",useAction:"{{ cm.useBulkDestroyAction }}",confirm:{title:"{{t('Delete')}}",content:"{{t('Are you sure you want to delete it?')}}"},actionCallback:"{{ dataSourceDeleteCallback }}"}},create:{type:"void",title:'{{t("Add new")}}',"x-component":"CreateDatabaseConnectAction","x-component-props":{type:"primary"}}}},table:{type:"void","x-uid":"input","x-component":"Table.Void","x-component-props":{rowKey:"key",rowSelection:{type:"checkbox"},useDataSource:"{{ cm.useDataSourceFromRAC }}"},properties:{key:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{key:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},displayName:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{displayName:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},type:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{type:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},status:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{status:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},enabled:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{enabled:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},actions:{type:"void",title:'{{t("Actions")}}',"x-component":"Table.Column",properties:{actions:{type:"void","x-component":"Space","x-component-props":{},properties:{view:{type:"void",title:'{{t("View")}}',"x-component":"ViewDatabaseConnectionAction","x-component-props":{type:"primary"}},update:{type:"void",title:'{{t("Edit")}}',"x-component":"EditDatabaseConnectionAction","x-component-props":{type:"primary"},"x-reactions":["{{useIsAbleDelete($self)}}"]},delete:{type:"void",title:'{{ t("Delete") }}',"x-component":"Action.Link","x-component-props":{confirm:{title:'{{t("Delete")}}',content:'{{t("Are you sure you want to delete it?")}}'},useAction:"{{useDestroyAction}}"},"x-reactions":["{{useIsAbleDelete($self)}}"]}}}}}}}}}}},Bt=()=>{const e=n.useApp(),{name:t}=W.useParams(),o=n.useCompile(),r=n.useDataSourceManager(),{displayName:a}=r.getDataSource(t)||{},{dataSource:s}=p.useContext(Pe),c=p.useMemo(()=>s||r.getDataSource(t),[s,t]),l=p.useMemo(()=>{const d=c==null?void 0:c.status,u=Kt.find(y=>y.value===d),f=[{title:i.jsx(W.Link,{to:e.pluginSettingsManager.getRoutePath(N),children:Or("Data source manager")})}];return c&&f.push({title:i.jsxs(h.Space,{children:[i.jsx("span",{children:o(a)}),d&&i.jsx(h.Tag,{color:u==null?void 0:u.color,children:o(u==null?void 0:u.label)},d)]})}),f},[c]);return i.jsx(h.Breadcrumb,{separator:i.jsx(ee.RightOutlined,{}),items:l})},Vt=e=>A.Schema.compile(e,{t:n.i18n.t}),Kr={name:"database-"+L.uid(),filterTargetKey:"name",targetKey:"name",sortable:!0,fields:[{type:"integer",name:"title",interface:"input",uiSchema:{title:'{{ t("Collection display name") }}',type:"number","x-component":"Input",required:!0}},{type:"string",name:"name",interface:"input",uiSchema:{title:'{{ t("Collection name") }}',type:"string","x-component":"CollectionName",description:'{{t("Randomly generated and can be modified. Support letters, numbers and underscores, must start with an letter.")}}'}},{type:"hasMany",name:"fields",target:"fields",collectionName:"collections",sourceKey:"name",targetKey:"name",uiSchema:{}},{type:"hasMany",name:"inherits",interface:"select",uiSchema:{title:'{{ t("Inherits") }}',type:"string","x-component":"Select","x-component-props":{mode:"multiple"}}},{type:"string",name:"description",interface:"input",uiSchema:{title:'{{ t("Description") }}',type:"string","x-component":"Input"}}]},Nr=e=>({type:"object",properties:{[L.uid()]:{type:"void","x-collection":"dataSources","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:Kr,dragSort:!1,request:{url:`dataSources/${e}/collections:list`,params:{pageSize:50,sort:"sort",filter:{"hidden.$isFalsy":!0},appends:["category"]}}},properties:{tabs:{type:"void","x-component":"ConfigurationTabs"}}}}}),ot={type:"object",properties:{[L.uid()]:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:16}},properties:{filter:{type:"void",title:'{{ t("Filter") }}',default:{$and:[{title:{$includes:""}},{name:{$includes:""}}]},"x-action":"filter","x-component":"Filter.Action","x-component-props":{icon:"FilterOutlined",useProps:"{{ cm.useFilterActionProps }}"},"x-align":"left"},refresh:{type:"void",title:'{{ t("Refresh") }}',"x-component":"Action","x-component-props":{icon:"ReloadOutlined",useProps:"{{ useRefreshActionProps }}"}},delete:{type:"void",title:'{{ t("Delete") }}',"x-component":"DeleteCollection","x-component-props":{role:"button",isBulk:!0},"x-visible":!1},create:{type:"void",title:'{{ t("Create collection") }}',"x-component":"AddCollection","x-component-props":{type:"primary"},"x-visible":!1}}},[L.uid()]:{type:"void","x-uid":"input","x-component":"Table.Void","x-component-props":{rowKey:"name",rowSelection:{type:"checkbox"},useDataSource:"{{cm.useDataSourceFromRAC }}",useAction(){const e=n.useAPIClient(),{t}=V.useTranslation();return{move(r,a){return O(this,null,function*(){yield e.resource("dataSources").move({sourceId:r.key,targetId:a.key}),h.message.success(t("Saved successfully"),.2)})}}}},properties:{column1:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{title:{"x-component":"CollectionField","x-read-pretty":!0}}},column2:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{name:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},column5:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{description:{"x-component":"CollectionField","x-read-pretty":!0,"x-component-props":{ellipsis:!0}}}},column6:{type:"void",title:'{{ t("Actions") }}',"x-component":"Table.Column",properties:{actions:{type:"void","x-component":"Space","x-component-props":{split:"|"},properties:{view:{type:"void",title:'{{ t("Configure fields") }}',"x-component":"Action.Link","x-component-props":{},properties:{drawer:{type:"void","x-component":"Action.Drawer","x-component-props":{destroyOnClose:!0,width:"70%"},"x-reactions":e=>{const t=e.path.segments[1],o=e.path.segments[0],r=e.form.getValuesIn(`${o}.${t}`);r&&(e.title=`${Vt(r.title||r.name)} - ${Vt('{{ t("Configure fields") }}')}`)},properties:{collectionFields:{type:"void","x-component":"CollectionFields"}}}}},update:{type:"void",title:'{{ t("Edit") }}',"x-component":"EditCollection","x-component-props":{role:"button","aria-label":'{{ "edit-button-" + $record.name }}',type:"primary"}},delete:{type:"void",title:'{{ t("Delete") }}',"x-visible":!1,"x-component":"DeleteCollection","x-component-props":{role:"button","aria-label":'{{ "delete-button-" + $record.name }}',type:"primary",className:"nb-action-link"}}}}}}}}}},Br={name:"fields",fields:[{type:"string",name:"type",interface:"input",uiSchema:{title:'{{ t("Storage type") }}',type:"string","x-component":"Select",enum:[{label:"String",value:"string"}],required:!0}},{type:"string",name:"interface",interface:"input",uiSchema:{title:`{{t("Field interface", { ns: "${N}" })}}`,type:"string","x-component":"Select",enum:"{{interfaces}}"}},{type:"string",name:"title",interface:"input",uiSchema:{title:'{{ t("Field display name") }}',type:"string","x-component":"Input",required:!0}},{type:"string",name:"name",interface:"input",uiSchema:{title:'{{ t("Field name") }}',type:"string","x-component":"Input"}},{type:"string",name:"description",interface:"input",uiSchema:{title:'{{ t("Description") }}',type:"string","x-component":"Input.TextArea"}}]},Vr={type:"object",properties:{[L.uid()]:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:16}},properties:{delete:{type:"void",title:'{{ t("Delete") }}',"x-component":"Action","x-visible":!1,"x-component-props":{useAction:"{{ useBulkDestroyActionAndRefreshCM }}",confirm:{title:"{{t('Delete record')}}",content:"{{t('Are you sure you want to delete it?')}}"}}},syncfromDatabase:{type:"void",title:'{{ t("Sync from database") }}',"x-component":"SyncFieldsAction","x-component-props":{type:"primary"}},syncSQL:{type:"void",title:'{{ t("Sync from database") }}',"x-component":"SyncSQLFieldsAction","x-component-props":{type:"primary"}},create:{type:"void",title:'{{ t("Add new") }}',"x-component":"AddCollectionField","x-component-props":{type:"primary"}}}},[L.uid()]:{type:"void","x-uid":"input","x-component":"Table.Void","x-component-props":{pagination:!1,rowKey:"name",rowSelection:{type:"checkbox"},dragSort:!1,useDataSource:"{{ useDataSource }}"},properties:{column1:{type:"void",title:'{{ t("Field display name") }}',"x-component":"Table.Column",properties:{"uiSchema.title":{type:"string","x-component":"FieldTitleInput","x-component-props":{handleFieldChange:"{{handleFieldChange}}"}}}},column2:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{name:{"x-component":"CollectionField","x-read-pretty":!0}}},column3:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",title:'{{t("Field type")}}',properties:{type:{"x-component":"FieldType","x-component-props":{handleFieldChange:"{{handleFieldChange}}"}}}},column4:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",title:`{{t("Field interface", { ns: "${N}" })}}`,properties:{interface:{"x-component":"CollectionFieldInterfaceSelect","x-component-props":{handleFieldChange:"{{handleFieldChange}}"}}}},column5:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",title:'{{t("Title field")}}',properties:{titleField:{"x-component":"TitleField","x-read-pretty":!1,"x-component-props":{useProps:"{{useTitleFieldProps}}"}}}},column6:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",title:'{{ t("Description") }}',properties:{description:{"x-component":"CollectionField","x-read-pretty":!0,"x-component-props":{ellipsis:!0,style:{width:100}}}}},column7:{type:"void",title:'{{ t("Actions") }}',"x-component":"Table.Column",properties:{actions:{type:"void","x-component":"Space","x-component-props":{split:"|"},properties:{update:{type:"void",title:'{{ t("Edit") }}',"x-component":"EditCollectionField","x-component-props":{role:"button","aria-label":'{{ "edit-button-" + $record.name }}',type:"primary"}},delete:{type:"void",title:'{{ t("Delete") }}',"x-disabled":"{{cm.useDeleteButtonDisabled()}}","x-component":"Action.Link","x-component-props":{confirm:{title:"{{t('Delete record')}}",content:"{{t('Are you sure you want to delete it?')}}"},useAction:"{{ useDestroyActionAndRefreshCM }}"},"x-reactions":[{dependencies:[".interface"],fulfill:{state:{visible:"{{ ['obo','oho','m2m','o2m','m2o'].includes($deps[0]) }}"}}}]}}}}}}}}},Lr=e=>{const{useProps:t}=e,{t:o}=V.useTranslation(),{isTitleField:r}=n.useCollectionManager_deprecated(),[a,s]=p.useState(null),{setTitleField:c,filterByTk:l,dataSourceKey:d}=t(),u=n.useRecord(),f=n.useAPIClient(),{refreshRM:y,titleField:g}=Tt(),S=D=>O(this,null,function*(){s(u),yield f.request({url:`dataSources/${d}/collections:update?filterByTk=${l}`,method:"post",data:{titleField:D?u.name:"id"}}),h.message.success(o("Saved successfully")),y(),c(D?u.name:"id"),s(null)});return r(u)?i.jsx(h.Tooltip,{title:o("Default title for each record"),placement:"right",overlayInnerStyle:{textAlign:"center"},children:i.jsx(h.Switch,{"aria-label":`switch-title-field-${u==null?void 0:u.name}`,size:"small",loading:(u==null?void 0:u.name)===(a==null?void 0:a.name),checked:(u==null?void 0:u.name)===(g||"id"),onChange:S})}):null},Lt=(e,t)=>{const o=[];return e.forEach(r=>{const a=r.children.filter(s=>{var c;return(c=s==null?void 0:s.availableTypes)==null?void 0:c.includes(t)});o.push({label:r.label,key:r.key,children:a})}),o.filter(r=>t==="sort"?r.key==="advanced":r.children.length>0)},qr=A.observer(e=>{var g;const{value:t,handleFieldChange:o}=e,r=n.useRecord(),{getInterface:a}=n.useCollectionManager_deprecated(),s=n.useCompile(),c=n.useFieldInterfaceOptions(),l=Lt(c,r.type),d=A.useForm(),u=A.useField(),[f,y]=p.useState(l);return["oho","obo","o2m","m2o","m2m"].includes(r.interface)?i.jsx(h.Tag,{children:s((g=c.find(S=>S.key==="relation").children.find(S=>S.name===t))==null?void 0:g.label)},t):i.jsx(h.Select,{defaultValue:t,style:{width:"100%"},popupMatchSelectWidth:!1,onChange:S=>{var C,x;const D=a(S);o({interface:S,uiSchema:$({title:(C=r==null?void 0:r.uiSchema)==null?void 0:C.title},(x=D==null?void 0:D.default)==null?void 0:x.uiSchema)},r.name)},onDropdownVisibleChange:S=>{var D,C;if(S&&(r!=null&&r.possibleTypes)){const x=(C=(D=Object.values(d.values))==null?void 0:D[0])==null?void 0:C[u.index],v=(x==null?void 0:x.type)||r.type,I=Lt(c,v);y(I)}},children:f.map(S=>i.jsx(h.Select.OptGroup,{label:s(S.label),children:S.children.map(D=>i.jsx(h.Select.Option,{value:D.name,children:s(D.label)},D.name))},S.key))})},{displayName:"CollectionFieldInterfaceSelect"}),De=["string","bigInt","integer","uuid","uid"],Gr=A.observer(e=>{var u,f;const{name:t}=W.useParams(),{collectionName:o,sourceKey:r,name:a}=n.useRecord(),s=A.useField(),c=n.useCompile(),{getCollection:l}=n.useCollectionManager_deprecated(),d=(u=l(o||a,t).fields)==null?void 0:u.filter(y=>y.primaryKey||y.unique).map(y=>{var g;return{value:y.name,label:c(((g=y.uiSchema)==null?void 0:g.title)||y.title||y.name)}});return p.useEffect(()=>{var y;s.initialValue=((y=d==null?void 0:d[0])==null?void 0:y.value)||r},[]),i.jsx("div",{children:i.jsx(h.Select,{disabled:r,options:d,defaultValue:((f=d==null?void 0:d[0])==null?void 0:f.value)||r,onChange:e==null?void 0:e.onChange,showSearch:!0})})},{displayName:"SourceKey"}),qt=A.observer(e=>{const{disabled:t}=e,o=n.useAPIClient(),[r,a]=p.useState([]),{name:s}=W.useParams(),c=n.useRecord(),l=A.useField(),{collectionName:d,target:u,type:f,through:y,name:g}=c,S=c[l.props.name],{getCollection:D}=n.useCollectionManager_deprecated(),C=n.useCompile(),x=A.useForm(),[v,I]=p.useState(S);return p.useEffect(()=>{var P;l.initialValue=null;const b=["belongsTo"].includes(f)?d:["belongsToMany"].includes(f)?y:u,m=(P=D(b||g,s))==null?void 0:P.fields;if(m){const w=m==null?void 0:m.filter(T=>De.includes(T.type)).map(T=>{var j;return{value:T.name,label:C(((j=T.uiSchema)==null?void 0:j.title)||T.title||T.name)}});if(a(w),S){const T=w.find(j=>j.value===S);I((T==null?void 0:T.label)||S)}}},[f]),p.useEffect(()=>{I(S)},[S]),i.jsx("div",{children:i.jsx(h.Select,{disabled:t,value:v,options:r,showSearch:!0,onDropdownVisibleChange:b=>O(this,null,function*(){var j;const{target:m,type:P,through:w}=x.values,T=["belongsTo"].includes(P)?d:["belongsToMany"].includes(P)?w:m;if(T&&b){const{data:F}=yield o.request({url:`dataSourcesCollections/${s}.${T}/fields:list`,params:{paginate:!1,filter:{$or:[{"interface.$not":null},{"options.source.$notEmpty":!0}]},sort:["sort"]}});a((j=F.data)==null?void 0:j.filter(_=>De.includes(_.type)).map(_=>{var K;return{value:_.name,label:C(((K=_.uiSchema)==null?void 0:K.title)||_.title||_.name)}}))}}),onChange:b=>{var m;(m=e==null?void 0:e.onChange)==null||m.call(e,b),I(b)}})})},{displayName:"ForeignKey"}),zr=A.observer(e=>{const{value:t,disabled:o}=e,{targetKey:r,target:a,type:s}=n.useRecord(),{name:c}=W.useParams(),{getCollection:l}=n.useCollectionManager_deprecated(),d=n.useAPIClient(),[u,f]=p.useState([]),[y,g]=p.useState(t||r),S=A.useForm(),D=n.useCompile(),C=A.useField();return C.required=!0,p.useEffect(()=>{var x;a&&f((x=l(a,c).fields)==null?void 0:x.filter(v=>s!=="hasMany"?v.primaryKey||v.unique:De.includes(v.type)).map(v=>{var I;return{value:v.name,label:D(((I=v==null?void 0:v.uiSchema)==null?void 0:I.title)||v.title||v.name)}}))},[]),i.jsx("div",{children:i.jsx(h.Select,{showSearch:!0,options:u,onDropdownVisibleChange:x=>O(this,null,function*(){var b;const{target:v,type:I}=S.values;if(v&&x){const{data:m}=yield d.request({url:`dataSourcesCollections/${c}.${v}/fields:list`,params:{paginate:!1,filter:{$or:[{"interface.$not":null},{"options.source.$notEmpty":!0}]},sort:["sort"]}});f((b=m.data)==null?void 0:b.filter(P=>I!=="hasMany"?P.primaryKey||P.unique:De.includes(P.type)).map(P=>{var w;return{value:P.name,label:D(((w=P.uiSchema)==null?void 0:w.title)||P.title||P.name)}}))}}),onChange:x=>{var v;(v=e==null?void 0:e.onChange)==null||v.call(e,x),g(x)},value:y,disabled:o})})},{displayName:"TargetKey"}),Ur=A.observer(()=>{const e=n.useCompile(),{targetCollection:t}=Tt();return i.jsx("div",{children:i.jsx(h.Select,{disabled:!0,showSearch:!0,popupMatchSelectWidth:!1,value:t.name,options:[{value:t.name,label:e(t.title||t.name)}]})})},{displayName:"SourceCollection"}),Hr=A.observer(e=>{const{disabled:t}=e,o=n.useCompile(),[r,a]=p.useState([]),{name:s}=W.useParams(),c=A.useField(),{getCollections:l}=n.useCollectionManager_deprecated(s),u=n.useRecord()[c.props.name],f=()=>l().filter(g=>!(g.autoCreate&&g.isThrough)).map(g=>({label:o(g.title||g.name),value:g.name}));return p.useEffect(()=>{const y=f();a(y)},[]),i.jsx("div",{children:i.jsx(h.Select,{disabled:t,showSearch:!0,popupMatchSelectWidth:!1,fieldNames:{label:"label",value:"value"},defaultValue:u,options:r,onChange:y=>{var g;(g=e==null?void 0:e.onChange)==null||g.call(e,y)}})})},{displayName:"ThroughCollection"}),Wr=(e,t,o)=>{var s;if(!e)return;const r=J.cloneDeep(e.properties);r!=null&&r.foreignKey&&(r.foreignKey["x-component"]=qt),e.hasDefaultValue===!0&&(r.defaultValue=J.cloneDeep((s=e==null?void 0:e.default)==null?void 0:s.uiSchema),r.defaultValue.required=!1,r.defaultValue.title=o('{{ t("Default value") }}'),r.defaultValue["x-decorator"]="FormItem",r.defaultValue["x-reactions"]={dependencies:["uiSchema.x-component-props.gmt","uiSchema.x-component-props.showTime","uiSchema.x-component-props.dateFormat","uiSchema.x-component-props.timeFormat"],fulfill:{state:{componentProps:{gmt:"{{$deps[0]}}",showTime:"{{$deps[1]}}",dateFormat:"{{$deps[2]}}",timeFormat:"{{$deps[3]}}"}}}});const a=k($({name:`f_${L.uid()}`},J.cloneDeep(e.default)),{interface:e.name});return a.reverseField&&(a.reverseField.name=`f_${L.uid()}`),{type:"object",properties:{[L.uid()]:{type:"void","x-component":"Action.Drawer","x-component-props":{getContainer:"{{ getContainer }}"},"x-decorator":"Form","x-decorator-props":{useValues(c){return n.useRequest(()=>Promise.resolve({data:a}),c)}},title:`${o(t.title||t.name)} - ${o('{{ t("Add field") }}')}`,properties:k($({summary:{type:"void","x-component":"FieldSummary","x-component-props":{schemaKey:e.name}}},r),{description:{type:"string",title:'{{t("Description")}}',"x-decorator":"FormItem","x-component":"Input.TextArea"},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{action1:{title:'{{ t("Cancel") }}',"x-component":"Action","x-component-props":{useAction:"{{ useCancelAction }}"}},action2:{title:'{{ t("Submit") }}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ useCreateCollectionField }}"}}}}})}}}},Yr=()=>{const e=A.useForm(),t=n.useActionContext(),{refresh:o}=n.useResourceActionContext(),r=A.useField(),a=n.useAPIClient(),s=n.useRecord(),{name:c}=W.useParams();return{run(){return O(this,null,function*(){yield e.submit(),r.data=r.data||{},r.data.loading=!0;const d=J.cloneDeep(e.values);d.autoCreateReverseField||delete d.reverseField,delete d.autoCreateReverseField;try{yield a.request({url:`dataSourcesCollections/${c}.${s.name}/fields:create`,method:"post",data:d}),t.setVisible(!1),yield e.reset(),r.data.loading=!1,o()}catch(u){r.data.loading=!1}})}}},Qr=e=>{const t=n.useRecord();return i.jsx(Zr,$({item:t},e))},Zr=e=>{const{scope:t,getContainer:o,item:r,children:a,trigger:s,align:c,database:l}=e,{getInterface:d,getTemplate:u,collections:f}=n.useCollectionManager_deprecated(),[y,g]=p.useState(!1),[S,D]=p.useState(),[C,x]=p.useState({}),v=n.useCompile(),{t:I}=V.useTranslation(),{data:{database:b}}=n.useCurrentAppInfo(),m=_=>(b==null?void 0:b.dialect)===_,P=p.useMemo(()=>f.map(_=>({label:v(_.title),value:_.name})),[]),w=n.useFieldInterfaceOptions(),T=p.useCallback(()=>{const{availableFieldInterfaces:_}=u(r.template)||{},{exclude:K,include:B}=_||{},Q=[];return w.forEach(H=>{var E;if(H.key==="relation"){let Y=[];B!=null&&B.length?B.forEach(G=>{var ne;const oe=(ne=H==null?void 0:H.children)==null?void 0:ne.find(rv=>[G,G.interface].includes(rv.value));oe&&Y.push(k($({},oe),{targetScope:G==null?void 0:G.targetScope}))}):K!=null&&K.length?Y=(E=H==null?void 0:H.children)==null?void 0:E.filter(G=>!K.includes(G.value)):Y=H==null?void 0:H.children,Y!=null&&Y.length&&Q.push(k($({},H),{children:Y}))}}),Q},[u,r]),j=p.useMemo(()=>T().map(_=>{var K;return((K=_==null?void 0:_.children)==null?void 0:K.length)===0?null:r.template==="view"?{type:"group",label:v(_.label),title:v(_.label),key:_.label,children:_.children.filter(B=>["m2o"].includes(B.name)).map(B=>({label:v(B.title),title:v(B.title),key:B.name,dataTargetScope:B.targetScope}))}:{type:"group",label:v(_.label),title:v(_.label),key:_.label,children:_==null?void 0:_.children.filter(B=>!["o2o","subTable","linkTo"].includes(B.name)).map(B=>({label:v(B.title),title:v(B.title),key:B.name,dataTargetScope:B.targetScope}))}}).filter(_=>{var K;return(K=_==null?void 0:_.children)==null?void 0:K.length}),[T]),F=p.useMemo(()=>({style:{maxHeight:"60vh",overflow:"auto"},onClick:_=>{const K=_.item.props["data-targetScope"];K&&D(K);const B=Wr(d(_.key),r,v);B&&(x(B),g(!0))},items:j}),[d,j,r]);return r.template!=="sql"&&i.jsx(n.RecordProvider,{record:r,children:i.jsxs(n.ActionContextProvider,{value:{visible:y,setVisible:g},children:[i.jsx(h.Dropdown,{getPopupContainer:o,trigger:s,align:c,menu:F,children:a||i.jsx(h.Button,{icon:i.jsx(ee.PlusOutlined,{}),type:"primary",children:I("Add field")})}),i.jsx(n.SchemaComponent,{schema:C,components:{ArrayTable:pe.ArrayTable},scope:$({getContainer:o,useCancelAction:n.useCancelAction,createOnly:!0,isOverride:!1,override:!1,useCreateCollectionField:Yr,record:r,showReverseFieldConfig:!1,targetScope:S,collections:P,isDialect:m,disabledJSONB:!1,createMainOnly:!0},t)})]})})},Jr=A.observer(e=>{const{value:t,handleFieldChange:o}=e,r=n.useRecord(),[a,s]=p.useState(t),c=u=>{s(u)},l=p.useMemo(()=>J.debounce(u=>{o({uiSchema:k($({},r==null?void 0:r.uiSchema),{title:u})},r.name)},1e3),[o,r]),d=u=>{const f=u.target.value;c(f),l(f)};return p.useEffect(()=>{s(t)},[t]),i.jsx(h.Input,{value:a,onChange:d})},{displayName:"FieldTitleInput"}),Xr=()=>{const{refresh:e}=n.useResourceActionContext(),{name:t}=W.useParams(),{name:o,collectionName:r}=n.useRecord(),a=n.useAPIClient();return{run(){return O(this,null,function*(){yield a.request({url:`dataSourcesCollections/${t}.${r}/fields:destroy?filterByTk=${o}`,method:"post"}),e()})}}},Rr=()=>{const{state:e,setState:t,refresh:o}=n.useResourceActionContext(),{t:r}=V.useTranslation(),{name:a}=W.useParams(),s=n.useAPIClient(),{name:c}=n.useRecord();return{run(){return O(this,null,function*(){var d;if(!((d=e==null?void 0:e.selectedRowKeys)!=null&&d.length))return h.message.error(r("Please select the records you want to delete"));yield s.request({url:`dataSourcesCollections/${a}.${c}/fields:destroy`,method:"post",params:{filterByTk:(e==null?void 0:e.selectedRowKeys)||[]}}),t==null||t({selectedRowKeys:[]}),o()})}}},en=()=>{const{run:e}=Rr();return{run(){return O(this,null,function*(){yield e()})}}},tn=()=>{const{run:e}=Xr();return{run(){return O(this,null,function*(){yield e()})}}};var Ie=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function be(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function on(){this.__data__=[],this.size=0}var rn=on;function nn(e,t){return e===t||e!==e&&t!==t}var Gt=nn,an=Gt;function sn(e,t){for(var o=e.length;o--;)if(an(e[o][0],t))return o;return-1}var Oe=sn,cn=Oe,ln=Array.prototype,un=ln.splice;function pn(e){var t=this.__data__,o=cn(t,e);if(o<0)return!1;var r=t.length-1;return o==r?t.pop():un.call(t,o,1),--this.size,!0}var dn=pn,mn=Oe;function fn(e){var t=this.__data__,o=mn(t,e);return o<0?void 0:t[o][1]}var yn=fn,gn=Oe;function vn(e){return gn(this.__data__,e)>-1}var hn=vn,Cn=Oe;function bn(e,t){var o=this.__data__,r=Cn(o,e);return r<0?(++this.size,o.push([e,t])):o[r][1]=t,this}var xn=bn,Sn=rn,An=dn,$n=yn,Tn=hn,Fn=xn;function de(e){var t=-1,o=e==null?0:e.length;for(this.clear();++t<o;){var r=e[t];this.set(r[0],r[1])}}de.prototype.clear=Sn,de.prototype.delete=An,de.prototype.get=$n,de.prototype.has=Tn,de.prototype.set=Fn;var Ee=de,wn=Ee;function _n(){this.__data__=new wn,this.size=0}var Pn=_n;function Dn(e){var t=this.__data__,o=t.delete(e);return this.size=t.size,o}var In=Dn;function On(e){return this.__data__.get(e)}var En=On;function Mn(e){return this.__data__.has(e)}var jn=Mn,kn=typeof Ie=="object"&&Ie&&Ie.Object===Object&&Ie,zt=kn,Kn=zt,Nn=typeof self=="object"&&self&&self.Object===Object&&self,Bn=Kn||Nn||Function("return this")(),te=Bn,Vn=te,Ln=Vn.Symbol,xe=Ln,Ut=xe,Ht=Object.prototype,qn=Ht.hasOwnProperty,Gn=Ht.toString,Se=Ut?Ut.toStringTag:void 0;function zn(e){var t=qn.call(e,Se),o=e[Se];try{e[Se]=void 0;var r=!0}catch(s){}var a=Gn.call(e);return r&&(t?e[Se]=o:delete e[Se]),a}var Un=zn,Hn=Object.prototype,Wn=Hn.toString;function Yn(e){return Wn.call(e)}var Qn=Yn,Wt=xe,Zn=Un,Jn=Qn,Xn="[object Null]",Rn="[object Undefined]",Yt=Wt?Wt.toStringTag:void 0;function ea(e){return e==null?e===void 0?Rn:Xn:Yt&&Yt in Object(e)?Zn(e):Jn(e)}var me=ea;function ta(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var fe=ta,oa=me,ra=fe,na="[object AsyncFunction]",aa="[object Function]",sa="[object GeneratorFunction]",ia="[object Proxy]";function ca(e){if(!ra(e))return!1;var t=oa(e);return t==aa||t==sa||t==na||t==ia}var Qt=ca,la=te,ua=la["__core-js_shared__"],pa=ua,rt=pa,Zt=function(){var e=/[^.]+$/.exec(rt&&rt.keys&&rt.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function da(e){return!!Zt&&Zt in e}var ma=da,fa=Function.prototype,ya=fa.toString;function ga(e){if(e!=null){try{return ya.call(e)}catch(t){}try{return e+""}catch(t){}}return""}var Jt=ga,va=Qt,ha=ma,Ca=fe,ba=Jt,xa=/[\\^$.*+?()[\]{}|]/g,Sa=/^\[object .+?Constructor\]$/,Aa=Function.prototype,$a=Object.prototype,Ta=Aa.toString,Fa=$a.hasOwnProperty,wa=RegExp("^"+Ta.call(Fa).replace(xa,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function _a(e){if(!Ca(e)||ha(e))return!1;var t=va(e)?wa:Sa;return t.test(ba(e))}var Pa=_a;function Da(e,t){return e==null?void 0:e[t]}var Ia=Da,Oa=Pa,Ea=Ia;function Ma(e,t){var o=Ea(e,t);return Oa(o)?o:void 0}var se=Ma,ja=se,ka=te,Ka=ja(ka,"Map"),nt=Ka,Na=se,Ba=Na(Object,"create"),Me=Ba,Xt=Me;function Va(){this.__data__=Xt?Xt(null):{},this.size=0}var La=Va;function qa(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Ga=qa,za=Me,Ua="__lodash_hash_undefined__",Ha=Object.prototype,Wa=Ha.hasOwnProperty;function Ya(e){var t=this.__data__;if(za){var o=t[e];return o===Ua?void 0:o}return Wa.call(t,e)?t[e]:void 0}var Qa=Ya,Za=Me,Ja=Object.prototype,Xa=Ja.hasOwnProperty;function Ra(e){var t=this.__data__;return Za?t[e]!==void 0:Xa.call(t,e)}var es=Ra,ts=Me,os="__lodash_hash_undefined__";function rs(e,t){var o=this.__data__;return this.size+=this.has(e)?0:1,o[e]=ts&&t===void 0?os:t,this}var ns=rs,as=La,ss=Ga,is=Qa,cs=es,ls=ns;function ye(e){var t=-1,o=e==null?0:e.length;for(this.clear();++t<o;){var r=e[t];this.set(r[0],r[1])}}ye.prototype.clear=as,ye.prototype.delete=ss,ye.prototype.get=is,ye.prototype.has=cs,ye.prototype.set=ls;var us=ye,Rt=us,ps=Ee,ds=nt;function ms(){this.size=0,this.__data__={hash:new Rt,map:new(ds||ps),string:new Rt}}var fs=ms;function ys(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var gs=ys,vs=gs;function hs(e,t){var o=e.__data__;return vs(t)?o[typeof t=="string"?"string":"hash"]:o.map}var je=hs,Cs=je;function bs(e){var t=Cs(this,e).delete(e);return this.size-=t?1:0,t}var xs=bs,Ss=je;function As(e){return Ss(this,e).get(e)}var $s=As,Ts=je;function Fs(e){return Ts(this,e).has(e)}var ws=Fs,_s=je;function Ps(e,t){var o=_s(this,e),r=o.size;return o.set(e,t),this.size+=o.size==r?0:1,this}var Ds=Ps,Is=fs,Os=xs,Es=$s,Ms=ws,js=Ds;function ge(e){var t=-1,o=e==null?0:e.length;for(this.clear();++t<o;){var r=e[t];this.set(r[0],r[1])}}ge.prototype.clear=Is,ge.prototype.delete=Os,ge.prototype.get=Es,ge.prototype.has=Ms,ge.prototype.set=js;var eo=ge,ks=Ee,Ks=nt,Ns=eo,Bs=200;function Vs(e,t){var o=this.__data__;if(o instanceof ks){var r=o.__data__;if(!Ks||r.length<Bs-1)return r.push([e,t]),this.size=++o.size,this;o=this.__data__=new Ns(r)}return o.set(e,t),this.size=o.size,this}var Ls=Vs,qs=Ee,Gs=Pn,zs=In,Us=En,Hs=jn,Ws=Ls;function ve(e){var t=this.__data__=new qs(e);this.size=t.size}ve.prototype.clear=Gs,ve.prototype.delete=zs,ve.prototype.get=Us,ve.prototype.has=Hs,ve.prototype.set=Ws;var Ys=ve;function Qs(e,t){for(var o=-1,r=e==null?0:e.length;++o<r&&t(e[o],o,e)!==!1;);return e}var Zs=Qs,Js=se,Xs=function(){try{var e=Js(Object,"defineProperty");return e({},"",{}),e}catch(t){}}(),to=Xs,oo=to;function Rs(e,t,o){t=="__proto__"&&oo?oo(e,t,{configurable:!0,enumerable:!0,value:o,writable:!0}):e[t]=o}var ro=Rs,ei=ro,ti=Gt,oi=Object.prototype,ri=oi.hasOwnProperty;function ni(e,t,o){var r=e[t];(!(ri.call(e,t)&&ti(r,o))||o===void 0&&!(t in e))&&ei(e,t,o)}var at=ni,ai=at,si=ro;function ii(e,t,o,r){var a=!o;o||(o={});for(var s=-1,c=t.length;++s<c;){var l=t[s],d=r?r(o[l],e[l],l,o,e):void 0;d===void 0&&(d=e[l]),a?si(o,l,d):ai(o,l,d)}return o}var Ae=ii;function ci(e,t){for(var o=-1,r=Array(e);++o<e;)r[o]=t(o);return r}var li=ci;function ui(e){return e!=null&&typeof e=="object"}var ie=ui,pi=me,di=ie,mi="[object Arguments]";function fi(e){return di(e)&&pi(e)==mi}var yi=fi,no=yi,gi=ie,ao=Object.prototype,vi=ao.hasOwnProperty,hi=ao.propertyIsEnumerable,Ci=no(function(){return arguments}())?no:function(e){return gi(e)&&vi.call(e,"callee")&&!hi.call(e,"callee")},so=Ci,bi=Array.isArray,ce=bi,ke={exports:{}};function xi(){return!1}var Si=xi;ke.exports,function(e,t){var o=te,r=Si,a=t&&!t.nodeType&&t,s=a&&!0&&e&&!e.nodeType&&e,c=s&&s.exports===a,l=c?o.Buffer:void 0,d=l?l.isBuffer:void 0,u=d||r;e.exports=u}(ke,ke.exports);var io=ke.exports,Ai=9007199254740991,$i=/^(?:0|[1-9]\d*)$/;function Ti(e,t){var o=typeof e;return t=t==null?Ai:t,!!t&&(o=="number"||o!="symbol"&&$i.test(e))&&e>-1&&e%1==0&&e<t}var co=Ti,Fi=9007199254740991;function wi(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Fi}var lo=wi,_i=me,Pi=lo,Di=ie,Ii="[object Arguments]",Oi="[object Array]",Ei="[object Boolean]",Mi="[object Date]",ji="[object Error]",ki="[object Function]",Ki="[object Map]",Ni="[object Number]",Bi="[object Object]",Vi="[object RegExp]",Li="[object Set]",qi="[object String]",Gi="[object WeakMap]",zi="[object ArrayBuffer]",Ui="[object DataView]",Hi="[object Float32Array]",Wi="[object Float64Array]",Yi="[object Int8Array]",Qi="[object Int16Array]",Zi="[object Int32Array]",Ji="[object Uint8Array]",Xi="[object Uint8ClampedArray]",Ri="[object Uint16Array]",ec="[object Uint32Array]",U={};U[Hi]=U[Wi]=U[Yi]=U[Qi]=U[Zi]=U[Ji]=U[Xi]=U[Ri]=U[ec]=!0,U[Ii]=U[Oi]=U[zi]=U[Ei]=U[Ui]=U[Mi]=U[ji]=U[ki]=U[Ki]=U[Ni]=U[Bi]=U[Vi]=U[Li]=U[qi]=U[Gi]=!1;function tc(e){return Di(e)&&Pi(e.length)&&!!U[_i(e)]}var oc=tc;function rc(e){return function(t){return e(t)}}var st=rc,Ke={exports:{}};Ke.exports,function(e,t){var o=zt,r=t&&!t.nodeType&&t,a=r&&!0&&e&&!e.nodeType&&e,s=a&&a.exports===r,c=s&&o.process,l=function(){try{var d=a&&a.require&&a.require("util").types;return d||c&&c.binding&&c.binding("util")}catch(u){}}();e.exports=l}(Ke,Ke.exports);var it=Ke.exports,nc=oc,ac=st,uo=it,po=uo&&uo.isTypedArray,sc=po?ac(po):nc,ic=sc,cc=li,lc=so,uc=ce,pc=io,dc=co,mc=ic,fc=Object.prototype,yc=fc.hasOwnProperty;function gc(e,t){var o=uc(e),r=!o&&lc(e),a=!o&&!r&&pc(e),s=!o&&!r&&!a&&mc(e),c=o||r||a||s,l=c?cc(e.length,String):[],d=l.length;for(var u in e)(t||yc.call(e,u))&&!(c&&(u=="length"||a&&(u=="offset"||u=="parent")||s&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||dc(u,d)))&&l.push(u);return l}var mo=gc,vc=Object.prototype;function hc(e){var t=e&&e.constructor,o=typeof t=="function"&&t.prototype||vc;return e===o}var ct=hc;function Cc(e,t){return function(o){return e(t(o))}}var fo=Cc,bc=fo,xc=bc(Object.keys,Object),Sc=xc,Ac=ct,$c=Sc,Tc=Object.prototype,Fc=Tc.hasOwnProperty;function wc(e){if(!Ac(e))return $c(e);var t=[];for(var o in Object(e))Fc.call(e,o)&&o!="constructor"&&t.push(o);return t}var _c=wc,Pc=Qt,Dc=lo;function Ic(e){return e!=null&&Dc(e.length)&&!Pc(e)}var yo=Ic,Oc=mo,Ec=_c,Mc=yo;function jc(e){return Mc(e)?Oc(e):Ec(e)}var lt=jc,kc=Ae,Kc=lt;function Nc(e,t){return e&&kc(t,Kc(t),e)}var Bc=Nc;function Vc(e){var t=[];if(e!=null)for(var o in Object(e))t.push(o);return t}var Lc=Vc,qc=fe,Gc=ct,zc=Lc,Uc=Object.prototype,Hc=Uc.hasOwnProperty;function Wc(e){if(!qc(e))return zc(e);var t=Gc(e),o=[];for(var r in e)r=="constructor"&&(t||!Hc.call(e,r))||o.push(r);return o}var Yc=Wc,Qc=mo,Zc=Yc,Jc=yo;function Xc(e){return Jc(e)?Qc(e,!0):Zc(e)}var ut=Xc,Rc=Ae,el=ut;function tl(e,t){return e&&Rc(t,el(t),e)}var ol=tl,Ne={exports:{}};Ne.exports,function(e,t){var o=te,r=t&&!t.nodeType&&t,a=r&&!0&&e&&!e.nodeType&&e,s=a&&a.exports===r,c=s?o.Buffer:void 0,l=c?c.allocUnsafe:void 0;function d(u,f){if(f)return u.slice();var y=u.length,g=l?l(y):new u.constructor(y);return u.copy(g),g}e.exports=d}(Ne,Ne.exports);var rl=Ne.exports;function nl(e,t){var o=-1,r=e.length;for(t||(t=Array(r));++o<r;)t[o]=e[o];return t}var al=nl;function sl(e,t){for(var o=-1,r=e==null?0:e.length,a=0,s=[];++o<r;){var c=e[o];t(c,o,e)&&(s[a++]=c)}return s}var il=sl;function cl(){return[]}var go=cl,ll=il,ul=go,pl=Object.prototype,dl=pl.propertyIsEnumerable,vo=Object.getOwnPropertySymbols,ml=vo?function(e){return e==null?[]:(e=Object(e),ll(vo(e),function(t){return dl.call(e,t)}))}:ul,pt=ml,fl=Ae,yl=pt;function gl(e,t){return fl(e,yl(e),t)}var vl=gl;function hl(e,t){for(var o=-1,r=t.length,a=e.length;++o<r;)e[a+o]=t[o];return e}var dt=hl,Cl=fo,bl=Cl(Object.getPrototypeOf,Object),mt=bl,xl=dt,Sl=mt,Al=pt,$l=go,Tl=Object.getOwnPropertySymbols,Fl=Tl?function(e){for(var t=[];e;)xl(t,Al(e)),e=Sl(e);return t}:$l,ho=Fl,wl=Ae,_l=ho;function Pl(e,t){return wl(e,_l(e),t)}var Dl=Pl,Il=dt,Ol=ce;function El(e,t,o){var r=t(e);return Ol(e)?r:Il(r,o(e))}var Co=El,Ml=Co,jl=pt,kl=lt;function Kl(e){return Ml(e,kl,jl)}var Nl=Kl,Bl=Co,Vl=ho,Ll=ut;function ql(e){return Bl(e,Ll,Vl)}var bo=ql,Gl=se,zl=te,Ul=Gl(zl,"DataView"),Hl=Ul,Wl=se,Yl=te,Ql=Wl(Yl,"Promise"),Zl=Ql,Jl=se,Xl=te,Rl=Jl(Xl,"Set"),eu=Rl,tu=se,ou=te,ru=tu(ou,"WeakMap"),nu=ru,ft=Hl,yt=nt,gt=Zl,vt=eu,ht=nu,xo=me,he=Jt,So="[object Map]",au="[object Object]",Ao="[object Promise]",$o="[object Set]",To="[object WeakMap]",Fo="[object DataView]",su=he(ft),iu=he(yt),cu=he(gt),lu=he(vt),uu=he(ht),le=xo;(ft&&le(new ft(new ArrayBuffer(1)))!=Fo||yt&&le(new yt)!=So||gt&&le(gt.resolve())!=Ao||vt&&le(new vt)!=$o||ht&&le(new ht)!=To)&&(le=function(e){var t=xo(e),o=t==au?e.constructor:void 0,r=o?he(o):"";if(r)switch(r){case su:return Fo;case iu:return So;case cu:return Ao;case lu:return $o;case uu:return To}return t});var Ct=le,pu=Object.prototype,du=pu.hasOwnProperty;function mu(e){var t=e.length,o=new e.constructor(t);return t&&typeof e[0]=="string"&&du.call(e,"index")&&(o.index=e.index,o.input=e.input),o}var fu=mu,yu=te,gu=yu.Uint8Array,vu=gu,wo=vu;function hu(e){var t=new e.constructor(e.byteLength);return new wo(t).set(new wo(e)),t}var bt=hu,Cu=bt;function bu(e,t){var o=t?Cu(e.buffer):e.buffer;return new e.constructor(o,e.byteOffset,e.byteLength)}var xu=bu,Su=/\w*$/;function Au(e){var t=new e.constructor(e.source,Su.exec(e));return t.lastIndex=e.lastIndex,t}var $u=Au,_o=xe,Po=_o?_o.prototype:void 0,Do=Po?Po.valueOf:void 0;function Tu(e){return Do?Object(Do.call(e)):{}}var Fu=Tu,wu=bt;function _u(e,t){var o=t?wu(e.buffer):e.buffer;return new e.constructor(o,e.byteOffset,e.length)}var Pu=_u,Du=bt,Iu=xu,Ou=$u,Eu=Fu,Mu=Pu,ju="[object Boolean]",ku="[object Date]",Ku="[object Map]",Nu="[object Number]",Bu="[object RegExp]",Vu="[object Set]",Lu="[object String]",qu="[object Symbol]",Gu="[object ArrayBuffer]",zu="[object DataView]",Uu="[object Float32Array]",Hu="[object Float64Array]",Wu="[object Int8Array]",Yu="[object Int16Array]",Qu="[object Int32Array]",Zu="[object Uint8Array]",Ju="[object Uint8ClampedArray]",Xu="[object Uint16Array]",Ru="[object Uint32Array]";function ep(e,t,o){var r=e.constructor;switch(t){case Gu:return Du(e);case ju:case ku:return new r(+e);case zu:return Iu(e,o);case Uu:case Hu:case Wu:case Yu:case Qu:case Zu:case Ju:case Xu:case Ru:return Mu(e,o);case Ku:return new r;case Nu:case Lu:return new r(e);case Bu:return Ou(e);case Vu:return new r;case qu:return Eu(e)}}var tp=ep,op=fe,Io=Object.create,rp=function(){function e(){}return function(t){if(!op(t))return{};if(Io)return Io(t);e.prototype=t;var o=new e;return e.prototype=void 0,o}}(),np=rp,ap=np,sp=mt,ip=ct;function cp(e){return typeof e.constructor=="function"&&!ip(e)?ap(sp(e)):{}}var lp=cp,up=Ct,pp=ie,dp="[object Map]";function mp(e){return pp(e)&&up(e)==dp}var fp=mp,yp=fp,gp=st,Oo=it,Eo=Oo&&Oo.isMap,vp=Eo?gp(Eo):yp,hp=vp,Cp=Ct,bp=ie,xp="[object Set]";function Sp(e){return bp(e)&&Cp(e)==xp}var Ap=Sp,$p=Ap,Tp=st,Mo=it,jo=Mo&&Mo.isSet,Fp=jo?Tp(jo):$p,wp=Fp,_p=Ys,Pp=Zs,Dp=at,Ip=Bc,Op=ol,Ep=rl,Mp=al,jp=vl,kp=Dl,Kp=Nl,Np=bo,Bp=Ct,Vp=fu,Lp=tp,qp=lp,Gp=ce,zp=io,Up=hp,Hp=fe,Wp=wp,Yp=lt,Qp=ut,Zp=1,Jp=2,Xp=4,ko="[object Arguments]",Rp="[object Array]",ed="[object Boolean]",td="[object Date]",od="[object Error]",Ko="[object Function]",rd="[object GeneratorFunction]",nd="[object Map]",ad="[object Number]",No="[object Object]",sd="[object RegExp]",id="[object Set]",cd="[object String]",ld="[object Symbol]",ud="[object WeakMap]",pd="[object ArrayBuffer]",dd="[object DataView]",md="[object Float32Array]",fd="[object Float64Array]",yd="[object Int8Array]",gd="[object Int16Array]",vd="[object Int32Array]",hd="[object Uint8Array]",Cd="[object Uint8ClampedArray]",bd="[object Uint16Array]",xd="[object Uint32Array]",z={};z[ko]=z[Rp]=z[pd]=z[dd]=z[ed]=z[td]=z[md]=z[fd]=z[yd]=z[gd]=z[vd]=z[nd]=z[ad]=z[No]=z[sd]=z[id]=z[cd]=z[ld]=z[hd]=z[Cd]=z[bd]=z[xd]=!0,z[od]=z[Ko]=z[ud]=!1;function Be(e,t,o,r,a,s){var c,l=t&Zp,d=t&Jp,u=t&Xp;if(o&&(c=a?o(e,r,a,s):o(e)),c!==void 0)return c;if(!Hp(e))return e;var f=Gp(e);if(f){if(c=Vp(e),!l)return Mp(e,c)}else{var y=Bp(e),g=y==Ko||y==rd;if(zp(e))return Ep(e,l);if(y==No||y==ko||g&&!a){if(c=d||g?{}:qp(e),!l)return d?kp(e,Op(c,e)):jp(e,Ip(c,e))}else{if(!z[y])return a?e:{};c=Lp(e,y,l)}}s||(s=new _p);var S=s.get(e);if(S)return S;s.set(e,c),Wp(e)?e.forEach(function(x){c.add(Be(x,t,o,x,e,s))}):Up(e)&&e.forEach(function(x,v){c.set(v,Be(x,t,o,v,e,s))});var D=u?d?Np:Kp:d?Qp:Yp,C=f?void 0:D(e);return Pp(C||e,function(x,v){C&&(v=x,x=e[v]),Dp(c,v,Be(x,t,o,v,e,s))}),c}var Bo=Be,Sd=Bo,Ad=1,$d=4;function Td(e){return Sd(e,Ad|$d)}var Fd=Td;const re=be(Fd);function wd(e,t){for(var o=-1,r=e==null?0:e.length,a=Array(r);++o<r;)a[o]=t(e[o],o,e);return a}var Vo=wd,_d=me,Pd=ie,Dd="[object Symbol]";function Id(e){return typeof e=="symbol"||Pd(e)&&_d(e)==Dd}var xt=Id,Od=ce,Ed=xt,Md=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,jd=/^\w*$/;function kd(e,t){if(Od(e))return!1;var o=typeof e;return o=="number"||o=="symbol"||o=="boolean"||e==null||Ed(e)?!0:jd.test(e)||!Md.test(e)||t!=null&&e in Object(t)}var Kd=kd,Lo=eo,Nd="Expected a function";function St(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(Nd);var o=function(){var r=arguments,a=t?t.apply(this,r):r[0],s=o.cache;if(s.has(a))return s.get(a);var c=e.apply(this,r);return o.cache=s.set(a,c)||s,c};return o.cache=new(St.Cache||Lo),o}St.Cache=Lo;var Bd=St,Vd=Bd,Ld=500;function qd(e){var t=Vd(e,function(r){return o.size===Ld&&o.clear(),r}),o=t.cache;return t}var Gd=qd,zd=Gd,Ud=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Hd=/\\(\\)?/g,Wd=zd(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(Ud,function(o,r,a,s){t.push(a?s.replace(Hd,"$1"):r||o)}),t}),Yd=Wd,qo=xe,Qd=Vo,Zd=ce,Jd=xt,Xd=1/0,Go=qo?qo.prototype:void 0,zo=Go?Go.toString:void 0;function Uo(e){if(typeof e=="string")return e;if(Zd(e))return Qd(e,Uo)+"";if(Jd(e))return zo?zo.call(e):"";var t=e+"";return t=="0"&&1/e==-Xd?"-0":t}var Rd=Uo,em=Rd;function tm(e){return e==null?"":em(e)}var om=tm,rm=ce,nm=Kd,am=Yd,sm=om;function im(e,t){return rm(e)?e:nm(e,t)?[e]:am(sm(e))}var Ve=im;function cm(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}var lm=cm,um=xt,pm=1/0;function dm(e){if(typeof e=="string"||um(e))return e;var t=e+"";return t=="0"&&1/e==-pm?"-0":t}var At=dm,mm=Ve,fm=At;function ym(e,t){t=mm(t,e);for(var o=0,r=t.length;e!=null&&o<r;)e=e[fm(t[o++])];return o&&o==r?e:void 0}var gm=ym;function vm(e,t,o){var r=-1,a=e.length;t<0&&(t=-t>a?0:a+t),o=o>a?a:o,o<0&&(o+=a),a=t>o?0:o-t>>>0,t>>>=0;for(var s=Array(a);++r<a;)s[r]=e[r+t];return s}var hm=vm,Cm=gm,bm=hm;function xm(e,t){return t.length<2?e:Cm(e,bm(t,0,-1))}var Sm=xm,Am=Ve,$m=lm,Tm=Sm,Fm=At;function wm(e,t){return t=Am(t,e),e=Tm(e,t),e==null||delete e[Fm($m(t))]}var _m=wm,Pm=me,Dm=mt,Im=ie,Om="[object Object]",Em=Function.prototype,Mm=Object.prototype,Ho=Em.toString,jm=Mm.hasOwnProperty,km=Ho.call(Object);function Km(e){if(!Im(e)||Pm(e)!=Om)return!1;var t=Dm(e);if(t===null)return!0;var o=jm.call(t,"constructor")&&t.constructor;return typeof o=="function"&&o instanceof o&&Ho.call(o)==km}var Nm=Km,Bm=Nm;function Vm(e){return Bm(e)?void 0:e}var Lm=Vm,Wo=xe,qm=so,Gm=ce,Yo=Wo?Wo.isConcatSpreadable:void 0;function zm(e){return Gm(e)||qm(e)||!!(Yo&&e&&e[Yo])}var Um=zm,Hm=dt,Wm=Um;function Qo(e,t,o,r,a){var s=-1,c=e.length;for(o||(o=Wm),a||(a=[]);++s<c;){var l=e[s];t>0&&o(l)?t>1?Qo(l,t-1,o,r,a):Hm(a,l):r||(a[a.length]=l)}return a}var Ym=Qo,Qm=Ym;function Zm(e){var t=e==null?0:e.length;return t?Qm(e,1):[]}var Jm=Zm;function Xm(e,t,o){switch(o.length){case 0:return e.call(t);case 1:return e.call(t,o[0]);case 2:return e.call(t,o[0],o[1]);case 3:return e.call(t,o[0],o[1],o[2])}return e.apply(t,o)}var Rm=Xm,ef=Rm,Zo=Math.max;function tf(e,t,o){return t=Zo(t===void 0?e.length-1:t,0),function(){for(var r=arguments,a=-1,s=Zo(r.length-t,0),c=Array(s);++a<s;)c[a]=r[t+a];a=-1;for(var l=Array(t+1);++a<t;)l[a]=r[a];return l[t]=o(c),ef(e,this,l)}}var of=tf;function rf(e){return function(){return e}}var nf=rf;function af(e){return e}var sf=af,cf=nf,Jo=to,lf=sf,uf=Jo?function(e,t){return Jo(e,"toString",{configurable:!0,enumerable:!1,value:cf(t),writable:!0})}:lf,pf=uf,df=800,mf=16,ff=Date.now;function yf(e){var t=0,o=0;return function(){var r=ff(),a=mf-(r-o);if(o=r,a>0){if(++t>=df)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var gf=yf,vf=pf,hf=gf,Cf=hf(vf),bf=Cf,xf=Jm,Sf=of,Af=bf;function $f(e){return Af(Sf(e,void 0,xf),e+"")}var Tf=$f,Ff=Vo,wf=Bo,_f=_m,Pf=Ve,Df=Ae,If=Lm,Of=Tf,Ef=bo,Mf=1,jf=2,kf=4,Kf=Of(function(e,t){var o={};if(e==null)return o;var r=!1;t=Ff(t,function(s){return s=Pf(s,e),r||(r=s.length>1),s}),Df(e,Ef(e),o),r&&(o=wf(o,Mf|jf|kf,If));for(var a=t.length;a--;)_f(o,t[a]);return o}),Nf=Kf;const Le=be(Nf);var Bf=at,Vf=Ve,Lf=co,Xo=fe,qf=At;function Gf(e,t,o,r){if(!Xo(e))return e;t=Vf(t,e);for(var a=-1,s=t.length,c=s-1,l=e;l!=null&&++a<s;){var d=qf(t[a]),u=o;if(d==="__proto__"||d==="constructor"||d==="prototype")return e;if(a!=c){var f=l[d];u=r?r(f,d,l):void 0,u===void 0&&(u=Xo(f)?f:Lf(t[a+1])?[]:{})}Bf(l,d,u),l=l[d]}return e}var zf=Gf,Uf=zf;function Hf(e,t,o){return e==null?e:Uf(e,t,o)}var Wf=Hf;const Ro=be(Wf),Yf=({schema:e,record:t,parentRecord:o,compile:r,getContainer:a})=>{if(!e)return;const s=re(e.properties);return s!=null&&s.name&&(s.name["x-disabled"]=!0),e.hasDefaultValue===!0&&(s.defaultValue=re(e.default.uiSchema)||{},s.defaultValue.required=!1,s.defaultValue.title=r('{{ t("Default value") }}'),s.defaultValue["x-decorator"]="FormItem",s.defaultValue["x-reactions"]={dependencies:["uiSchema.x-component-props.gmt","uiSchema.x-component-props.showTime","uiSchema.x-component-props.dateFormat","uiSchema.x-component-props.timeFormat"],fulfill:{state:{componentProps:{gmt:"{{$deps[0]}}",showTime:"{{$deps[1]}}",dateFormat:"{{$deps[2]}}",timeFormat:"{{$deps[3]}}"}}}},s.defaultValue["x-disabled"]=!0),{type:"object",properties:{[L.uid()]:{type:"void","x-component":"Action.Drawer","x-component-props":{getContainer:"{{ getContainer }}"},"x-decorator":"Form","x-decorator-props":{useValues(c){return n.useRequest(()=>Promise.resolve({data:re(Le(e.default,["uiSchema.rawTitle"]))}),c)}},title:`${r((o==null?void 0:o.title)||(o==null?void 0:o.name))} - ${r('{{ t("Edit field") }}')}`,properties:k($({summary:{type:"void","x-component":"FieldSummary","x-component-props":{schemaKey:e.name}}},s),{description:{type:"string",title:'{{t("Description")}}',"x-decorator":"FormItem","x-component":"Input.TextArea"},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{action1:{title:'{{ t("Cancel") }}',"x-component":"Action","x-component-props":{useAction:"{{ useCancelAction }}"}},action2:{title:'{{ t("Submit") }}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ useUpdateCollectionField }}"}}}}})}}}},Qf=()=>{const e=A.useForm(),t=n.useAPIClient(),o=n.useActionContext(),{refresh:r}=n.useResourceActionContext(),{targetCollection:a}=Tt(),{name:s}=W.useParams(),{name:c}=n.useRecord(),l=n.useDataSourceManager();return{run(){return O(this,null,function*(){yield e.submit();const u=re(e.values);u.autoCreateReverseField||delete u.reverseField,delete u.autoCreateReverseField,yield t.request({url:`dataSourcesCollections/${s}.${a.name}/fields:update?filterByTk=${c}`,method:"post",data:u}),o.setVisible(!1),l.getDataSource(s).reload(),yield e.reset(),r()})}}},Zf=e=>{const t=n.useRecord(),o=n.useCollectionParentRecordData();return i.jsx(Jf,$({item:t,parentItem:o},e))},Jf=e=>{const w=e,{scope:t,getContainer:o,item:r,parentItem:a,children:s}=w,c=et(w,["scope","getContainer","item","parentItem","children"]),{getInterface:l,collections:d,getCollection:u}=n.useCollectionManager_deprecated(),{data:{database:f}}=n.useCurrentAppInfo(),[y,g]=p.useState(!1),[S,D]=p.useState({}),C=n.useAPIClient(),{t:x}=V.useTranslation(),v=n.useCompile(),{name:I}=W.useParams(),b=T=>(f==null?void 0:f.dialect)===T,m=p.useMemo(()=>d.map(T=>({label:v(T.title),value:T.name})),[]),P=p.useMemo(()=>{var T,j;return(r==null?void 0:r.fields)||((j=(T=u(r.collectionName,I))==null?void 0:T.options)==null?void 0:j.fields.filter(F=>F.interface==="select").map(F=>{var _;return{value:F.name,label:v((_=F.uiSchema)==null?void 0:_.title)}}))},[r.name]);return i.jsx(n.RecordProvider,{record:r,parent:a,children:i.jsxs(n.ActionContextProvider,{value:{visible:y,setVisible:g},children:[i.jsx("a",k($({},c),{onClick:()=>O(this,null,function*(){var K,B,Q;const{data:T}=yield C.request({url:`dataSourcesCollections/${I}.${a.name}/fields:get?filterByTk=${r.name}`,params:{appends:["reverseField"]}}),j=l((K=T==null?void 0:T.data)==null?void 0:K.interface),F=re(T==null?void 0:T.data)||{};F!=null&&F.reverseField||(F.autoCreateReverseField=!1,F.reverseField=(B=j==null?void 0:j.default)==null?void 0:B.reverseField,Ro(F.reverseField,"name",`f_${L.uid()}`),Ro(F.reverseField,"uiSchema.title",(Q=r.__parent)==null?void 0:Q.title));const _=Yf({schema:k($({},j),{default:F}),record:r,parentRecord:a,compile:v,getContainer:o});D(_),g(!0)}),children:s||x("Edit")})),i.jsx(n.SchemaComponent,{schema:S,components:{ArrayTable:pe.ArrayTable},scope:k($({getContainer:o,useUpdateCollectionField:Qf,useCancelAction:n.useCancelAction,showReverseFieldConfig:!1,collections:m,isDialect:b,scopeKeyOptions:P,disabledJSONB:!0},t),{createOnly:!1,createMainOnly:!1})})]})})},Xf=A.observer(e=>{const{value:t,handleFieldChange:o,onChange:r}=e,a=n.useRecord(),s=a;return s!=null&&s.possibleTypes?i.jsx(h.Select,{defaultValue:t,popupMatchSelectWidth:!1,style:{width:"100%"},options:(s==null?void 0:s.possibleTypes.map(c=>({label:c,value:c})))||[],onChange:c=>{r==null||r(c),o(k($({},s),{type:c}),a.name)}}):i.jsx(h.Tag,{children:t})},{displayName:"FieldType"}),Rf=()=>{const{t:e}=V.useTranslation(),{unsupportedFields:t}=n.useRecord(),o=[{title:e("Field name"),dataIndex:"name",key:"name"},{title:e("Field database type",{ns:N}),dataIndex:"rawType",key:"rawType"}];return(t==null?void 0:t.length)>0&&i.jsxs(i.Fragment,{children:[i.jsx(h.Divider,{plain:!0,orientation:"left",orientationMargin:"0",children:i.jsx("h3",{children:e("Unknown field type",{ns:N})})}),i.jsx("div",{style:{marginBottom:"15px"},children:e("The following field types are not compatible and do not support output and display",{ns:N})}),i.jsx(h.Table,{columns:o,dataSource:t,pagination:!1})]})},$t=p.createContext({refreshRM:()=>{},titleField:null,targetCollection:null});$t.displayName="RemoteCollectionContext";const Tt=()=>p.useContext($t),er=()=>{const e=A.useField(),t=p.useMemo(()=>ue.createForm(),[]),o=n.useAttach(t.createArrayField(k($({},e.props),{basePath:""}))),{t:r}=V.useTranslation(),{name:a}=W.useParams(),s=n.useAPIClient(),c=n.useCompile(),l=p.useContext(n.ResourceActionContext),d=n.useResourceContext(),{targetKey:u}=d||{},f=n.useRecord(),{[u]:y,titleField:g,name:S}=f,[D,C]=p.useState(g),x=w=>{const T=p.useContext(n.ResourceActionContext),j=A.useField();return p.useEffect(()=>{T.loading||(w==null||w.onSuccess(T.data),j.componentProps.dragSort=!!T.dragSort)},[T.loading]),T},v={association:{sourceKey:"name",targetKey:"name"},dragSort:!1,collection:Br,request:{url:`dataSourcesCollections/${a}.${S}/fields:list`,params:{paginate:!1,filter:{$or:[{"interface.$not":null},{"options.source.$notEmpty":!0}]},sort:["sort"]}}},I=n.useDataSourceManager(),b=(w,T)=>O(this,null,function*(){yield s.request({url:`dataSourcesCollections/${a}.${S}/fields:update?filterByTk=${T}`,method:"post",data:w}),I.getDataSource(a).reload(),h.message.success(r("Saved successfully"))}),m=()=>({filterByTk:y,titleField:D,dataSourceKey:a,setTitleField:C}),P=(w,T,j)=>O(this,null,function*(){var Q,H;const{targetScope:F}=T,_=((Q=w.props)==null?void 0:Q.name)==="inherits",{data:K}=yield s.request({url:`dataSources/${a}/collections:list`,params:{paginate:!1,appends:["fields"],sort:["sort"]}});return((H=K==null?void 0:K.data)==null?void 0:H.filter(E=>{var ne;if(j!=null&&j.includes(E.template)||E.autoCreate&&E.isThrough||_&&E.template==="view")return!1;const G=!(F!=null&&F.template)||F.template.includes(E.template),oe=!(F!=null&&F[(ne=w.props)==null?void 0:ne.name])||F[w.props.name].includes(E.name);return G&&oe})).map(E=>({label:c(E.title||E.name),value:E.name}))});return i.jsxs($t.Provider,{value:{refreshRM:()=>{l.refresh()},titleField:D,targetCollection:f},children:[i.jsx(n.ResourceActionProvider,k($({},v),{children:i.jsx(A.FormContext.Provider,{value:t,children:i.jsx(A.FieldContext.Provider,{value:o,children:i.jsx(n.SchemaComponentOptions,{components:{TitleField:Lr,CollectionFieldInterfaceSelect:qr,AddCollectionField:Qr,SourceCollection:Ur,TargetKey:zr,SourceKey:Gr,FieldTitleInput:Jr,EditCollectionField:Zf,Select:n.Select,FieldType:Xf,ForeignKey:qt,ThroughCollection:Hr},inherit:!0,scope:{useDataSource:x,useTitleFieldProps:m,handleFieldChange:b,useDestroyActionAndRefreshCM:tn,useBulkDestroyActionAndRefreshCM:en,loadCollections:P},children:i.jsx(A.RecursionField,{schema:Vr,onlyRenderProperties:!0})})})})})),i.jsx(Rf,{})]})},ey=(e,t,o,r)=>{if(!e)return;const a=re(e.configurableProperties)||{title:{"x-component":"CollectionField","x-decorator":"FormItem"},name:{"x-component":"CollectionField","x-decorator":"FormItem"}};return e.hasDefaultValue===!0&&(a.defaultValue=re(e.default.uiSchema),a.defaultValue.title=o('{{ t("Default value") }}'),a.defaultValue["x-decorator"]="FormItem"),{type:"object",properties:{[L.uid()]:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{useValues:"{{ useValuesFromRecord }}"},title:'{{ t("Edit collection") }}',properties:k($({},Le(a,"category","inherits","moreOptions")),{footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{action1:{title:'{{ t("Cancel") }}',"x-component":"Action","x-component-props":{useAction:"{{ useCancelAction }}"}},action2:{title:'{{ t("Submit") }}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ useUpdateCollectionActionAndRefreshCM }}"}}}}})}}}},ty=e=>{const t=n.useRecord(),o=n.useRequest(()=>{var a;return Promise.resolve({data:k($({},Le(re(t),["__parent","__collectionName"])),{category:(a=t==null?void 0:t.category)==null?void 0:a.map(s=>s.id)})})},k($({},e),{manual:!0})),r=n.useActionContext();return p.useEffect(()=>{r.visible&&o.run()},[r.visible]),o},oy=e=>{const{refreshCM:t}=n.useCollectionManager_deprecated(),o=A.useForm(),r=n.useActionContext(),{name:a}=W.useParams(),{refresh:s}=n.useResourceActionContext(),{resource:c,targetKey:l}=n.useResourceContext(),{[l]:d}=n.useRecord(),u=n.useAPIClient();return{run(){return O(this,null,function*(){yield o.submit(),yield u.request({url:`dataSources/${a}/collections:update?filterByTk=${d}`,method:"post",data:$({},Le(o.values,["fields","autoGenId","createdAt","updatedAt","createdBy","updatedBy","sortable"]))}),r.setVisible(!1),yield o.reset(),s(),yield t()})}}},ry=e=>{const t=n.useRecord();return i.jsx(ny,$({item:t},e))},ny=e=>{const S=e,{scope:t,getContainer:o,item:r,children:a}=S,s=et(S,["scope","getContainer","item","children"]),{getTemplate:c}=n.useCollectionManager_deprecated(),[l,d]=p.useState(!1),[u,f]=p.useState({}),{t:y}=V.useTranslation(),g=n.useCompile();return i.jsx(n.RecordProvider,{record:r,children:i.jsxs(n.ActionContextProvider,{value:{visible:l,setVisible:d},children:[i.jsx("a",k($({},s),{onClick:()=>O(this,null,function*(){const D=c(r.template),C=ey($({},D),r,g);f(C),d(!0)}),children:a||y("Edit")})),i.jsx(n.SchemaComponent,{schema:u,components:{ArrayTable:pe.ArrayTable},scope:$({getContainer:o,useValuesFromRecord:ty,useUpdateCollectionActionAndRefreshCM:oy,useCancelAction:n.useCancelAction,createOnly:!1},t)})]})})},ay=(e,t)=>(o,r)=>{o.loading=!0,e(o,r,t).then(tt.action.bound(a=>{o.dataSource=a,o.loading=!1})).catch(a=>console.log(a))},sy=()=>{const[e,t]=p.useState([]);return[e,t]},iy=()=>{const e=n.useRecord(),t=A.useForm();return{run(){return O(this,null,function*(){var a,s,c;const r=(c=(s=(a=t.values)==null?void 0:a.children)==null?void 0:s.slice)==null?void 0:c.call(s);t.setValuesIn("children",r.filter(l=>l.name!==e.name))})}}},cy=()=>({run(){return O(this,null,function*(){})}}),ly=e=>`${e||""}${L.uid()}`,uy=()=>{const{t:e}=V.useTranslation(),{interfaces:t}=n.useCollectionManager_deprecated(),{data:{database:o}}=n.useCurrentAppInfo(),r=n.useDataSourceManager(),a=p.useContext(n.SchemaComponentContext),{name:s}=W.useParams(),c=p.useContext(n.CollectionCategroriesContext),l=n.useAPIClient(),d=l.resource("dbViews"),u=n.useCompile(),f=()=>O(this,null,function*(){return c.data.map(C=>({label:u(C.name),value:C.id}))}),y=()=>O(this,null,function*(){return d.list().then(({data:C})=>{var x;return(x=C==null?void 0:C.data)==null?void 0:x.map(v=>{const I=v.schema;return{label:I?`${I}.${u(v.name)}`:v.name,value:I?`${I}_${v.name}`:v.name}})})}),g=()=>O(this,null,function*(){return l.resource("storages").list().then(({data:C})=>{var x;return(x=C==null?void 0:C.data)==null?void 0:x.map(v=>({label:e(u(v.title)),value:v.name}))})}),S=()=>{const C=p.useContext(n.ResourceActionContext),x=n.useAPIClient(),v=A.useField(),{name:I}=W.useParams();v.data=v.data||{};const{setDataSource:b,dataSource:m}=p.useContext(Pe);return{onClick(){return O(this,null,function*(){var w,T,j;v.data.loading=!0;try{const{data:F}=yield x.request({url:`dataSources:refresh?filterByTk=${I}&clientStatus=${(m==null?void 0:m.status)||"loaded"}`,method:"post"});v.data.loading=!1,b(F==null?void 0:F.data),((w=F==null?void 0:F.data)==null?void 0:w.status)==="reloading"?h.message.warning(e("Data source synchronization in progress")):((T=F==null?void 0:F.data)==null?void 0:T.status)==="loaded"&&(h.message.success(e("Data source synchronization successful")),(j=C==null?void 0:C.refresh)==null||j.call(C)),yield r.getDataSource(I).reload()}catch(F){v.data.loading=!1}})}}},D=p.useMemo(()=>Nr(s),[s]);return i.jsx(n.SchemaComponentContext.Provider,{value:k($({},a),{designable:!1}),children:i.jsx(n.SchemaComponent,{schema:D,components:{EditCollection:ry,AddSubFieldAction:n.AddSubFieldAction,EditSubFieldAction:n.EditSubFieldAction,FieldSummary:n.FieldSummary,TemplateSummay:n.TemplateSummary,CollectionFields:er},scope:{useRefreshActionProps:S,useDestroySubField:iy,useBulkDestroySubField:cy,useSelectedRowKeys:sy,useAsyncDataSource:ay,loadCategories:f,loadDBViews:y,loadStorages:g,useNewId:ly,useCancelAction:n.useCancelAction,interfaces:t,enableInherits:(o==null?void 0:o.dialect)==="postgres",isPG:(o==null?void 0:o.dialect)==="postgres"}})})};var tr={exports:{}};/*!
1
+ (function(M,i){typeof exports=="object"&&typeof module!="undefined"?i(exports,require("react/jsx-runtime"),require("@nocobase/client"),require("react"),require("@formily/react"),require("antd"),require("react-i18next"),require("@ant-design/icons"),require("react-router-dom"),require("@formily/shared"),require("@formily/reactive"),require("@formily/core"),require("@formily/antd-v5"),require("lodash"),require("@dnd-kit/core"),require("@emotion/css"),require("antd-style")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","@nocobase/client","react","@formily/react","antd","react-i18next","@ant-design/icons","react-router-dom","@formily/shared","@formily/reactive","@formily/core","@formily/antd-v5","lodash","@dnd-kit/core","@emotion/css","antd-style"],i):(M=typeof globalThis!="undefined"?globalThis:M||self,i(M["@nocobase/plugin-data-source-manager"]={},M.jsxRuntime,M["@nocobase/client"],M.react,M["@formily/react"],M.antd,M["react-i18next"],M["@ant-design/icons"],M["react-router-dom"],M["@formily/shared"],M["@formily/reactive"],M["@formily/core"],M["@formily/antd-v5"],M.lodash,M["@dnd-kit/core"],M["@emotion/css"],M["antd-style"]))})(this,function(M,i,n,p,A,h,V,ee,W,L,tt,ue,pe,J,R,ae,Ir){"use strict";var nv=Object.defineProperty,av=Object.defineProperties;var sv=Object.getOwnPropertyDescriptors;var Re=Object.getOwnPropertySymbols;var _r=Object.prototype.hasOwnProperty,Pr=Object.prototype.propertyIsEnumerable;var Mt=(M,i,n)=>i in M?nv(M,i,{enumerable:!0,configurable:!0,writable:!0,value:n}):M[i]=n,$=(M,i)=>{for(var n in i||(i={}))_r.call(i,n)&&Mt(M,n,i[n]);if(Re)for(var n of Re(i))Pr.call(i,n)&&Mt(M,n,i[n]);return M},k=(M,i)=>av(M,sv(i));var et=(M,i)=>{var n={};for(var p in M)_r.call(M,p)&&i.indexOf(p)<0&&(n[p]=M[p]);if(M!=null&&Re)for(var p of Re(M))i.indexOf(p)<0&&Pr.call(M,p)&&(n[p]=M[p]);return n};var Dr=(M,i,n)=>(Mt(M,typeof i!="symbol"?i+"":i,n),n);var O=(M,i,n)=>new Promise((p,A)=>{var h=W=>{try{ee(n.next(W))}catch(L){A(L)}},V=W=>{try{ee(n.throw(W))}catch(L){A(L)}},ee=W=>W.done?p(W.value):Promise.resolve(W.value).then(h,V);ee((n=n.apply(M,i)).next())});const N="data-source-manager";function Or(e,t={}){return n.i18n.t(e,k($({},t),{ns:N}))}const Er=e=>{const t=A.useForm(),o=n.useActionContext(),r=n.useAPIClient(),{t:a}=V.useTranslation(),s=A.useField();return s.data=s.data||{},{run(){return O(this,null,function*(){yield t.submit();try{s.data.loading=!0;const{data:l}=yield r.resource("databaseServers").create({values:$({},t.values)});s.data.loading=!1,o.setVisible(!1),yield t.reset(),e==null||e(l==null?void 0:l.data),h.message.success(a("Saved successfully"))}catch(l){s.data.loading=!1,console.log(l)}})}}},jt=()=>{const e=A.useForm(),t=n.useAPIClient(),{t:o}=V.useTranslation(),r=A.useField();return r.data=r.data||{},{run(){return O(this,null,function*(){yield e.submit();try{r.data.loading=!0,yield t.resource("dataSources").testConnection({values:$({},e.values)}),r.data.loading=!1,h.message.success(o("Connection successful",{ns:N}))}catch(s){r.data.loading=!1,console.log(s)}})}}},Mr=Object.freeze(Object.defineProperty({__proto__:null,useCreateDatabaseServer:Er,useTestConnectionAction:jt},Symbol.toStringTag,{value:"Module"})),Pe=p.createContext(null);Pe.displayName="DataSourceContext";const jr=e=>{const[t,o]=p.useState(null);return i.jsx(Pe.Provider,{value:{dataSource:t,setDataSource:o},children:i.jsx(n.SchemaComponentOptions,{scope:Mr,components:{},children:e.children})})};class kt extends n.DataSource{getDataSource(){return O(this,null,function*(){return(yield this.app.apiClient.request({url:`dataSources:get/${this.key}`,params:{appends:["collections"]}})).data.data})}}const Kt=[{value:"loading",label:`{{t("Loading",{ns:"${N}"})}}`,color:"orange"},{value:"loading-failed",label:`{{t("Failed",{ns:"${N}"})}}`,color:"red"},{value:"loaded",label:`{{t("Loaded",{ns:"${N}"})}}`,color:"green"},{value:"reloading",label:`{{t("Reloading",{ns:"${N}"})}}`,color:"orange"}],Nt={name:"collections-"+L.uid(),fields:[{type:"string",name:"key",interface:"input",uiSchema:{title:`{{t("Data source name",{ ns: "${N}" })}}`,type:"string","x-component":"Input",required:!0}},{type:"string",name:"displayName",interface:"input",uiSchema:{title:`{{t("Data source display name",{ ns: "${N}" })}}`,type:"string","x-component":"Input",required:!0}},{type:"string",name:"type",interface:"select",uiSchema:{title:`{{t("Type", { ns: "${N}" })}}`,type:"string","x-component":"Select",enum:"{{types}}"}},{type:"string",name:"status",interface:"select",uiSchema:{title:`{{t("Status", { ns: "${N}" })}}`,type:"string","x-component":"Select",enum:Kt}},{type:"boolean",name:"enabled",uiSchema:{type:"boolean",title:'{{t("Enabled")}}',"x-component":"Checkbox"}}]},kr={type:"object",properties:{[L.uid()]:{type:"void","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:Nt,resourceName:"dataSources",request:{resource:"dataSources",action:"list",params:{pageSize:50,appends:[]}}},"x-component":"CollectionProvider_deprecated","x-component-props":{collection:Nt},properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:16}},properties:{refresh:{type:"void",title:'{{ t("Refresh") }}',"x-component":"Action","x-component-props":{icon:"ReloadOutlined",useProps:"{{ useRefreshActionProps }}"}},delete:{type:"void",title:'{{ t("Delete") }}',"x-component":"Action","x-component-props":{icon:"DeleteOutlined",useAction:"{{ cm.useBulkDestroyAction }}",confirm:{title:"{{t('Delete')}}",content:"{{t('Are you sure you want to delete it?')}}"},actionCallback:"{{ dataSourceDeleteCallback }}"}},create:{type:"void",title:'{{t("Add new")}}',"x-component":"CreateDatabaseConnectAction","x-component-props":{type:"primary"}}}},table:{type:"void","x-uid":"input","x-component":"Table.Void","x-component-props":{rowKey:"key",rowSelection:{type:"checkbox"},useDataSource:"{{ cm.useDataSourceFromRAC }}"},properties:{key:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{key:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},displayName:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{displayName:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},type:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{type:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},status:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{status:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},enabled:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{enabled:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},actions:{type:"void",title:'{{t("Actions")}}',"x-component":"Table.Column",properties:{actions:{type:"void","x-component":"Space","x-component-props":{},properties:{view:{type:"void",title:'{{t("View")}}',"x-component":"ViewDatabaseConnectionAction","x-component-props":{type:"primary"}},update:{type:"void",title:'{{t("Edit")}}',"x-component":"EditDatabaseConnectionAction","x-component-props":{type:"primary"},"x-reactions":["{{useIsAbleDelete($self)}}"]},delete:{type:"void",title:'{{ t("Delete") }}',"x-component":"Action.Link","x-component-props":{confirm:{title:'{{t("Delete")}}',content:'{{t("Are you sure you want to delete it?")}}'},useAction:"{{useDestroyAction}}"},"x-reactions":["{{useIsAbleDelete($self)}}"]}}}}}}}}}}},Bt=()=>{const e=n.useApp(),{name:t}=W.useParams(),o=n.useCompile(),r=n.useDataSourceManager(),{displayName:a}=r.getDataSource(t)||{},{dataSource:s}=p.useContext(Pe),c=p.useMemo(()=>s||r.getDataSource(t),[s,t]),l=p.useMemo(()=>{const d=c==null?void 0:c.status,u=Kt.find(y=>y.value===d),f=[{title:i.jsx(W.Link,{to:e.pluginSettingsManager.getRoutePath(N),children:Or("Data source manager")})}];return c&&f.push({title:i.jsxs(h.Space,{children:[i.jsx("span",{children:o(a)}),d&&i.jsx(h.Tag,{color:u==null?void 0:u.color,children:o(u==null?void 0:u.label)},d)]})}),f},[c]);return i.jsx(h.Breadcrumb,{separator:i.jsx(ee.RightOutlined,{}),items:l})},Vt=e=>A.Schema.compile(e,{t:n.i18n.t}),Kr={name:"database-"+L.uid(),filterTargetKey:"name",targetKey:"name",sortable:!0,fields:[{type:"integer",name:"title",interface:"input",uiSchema:{title:'{{ t("Collection display name") }}',type:"number","x-component":"Input",required:!0}},{type:"string",name:"name",interface:"input",uiSchema:{title:'{{ t("Collection name") }}',type:"string","x-component":"CollectionName",description:'{{t("Randomly generated and can be modified. Support letters, numbers and underscores, must start with an letter.")}}'}},{type:"hasMany",name:"fields",target:"fields",collectionName:"collections",sourceKey:"name",targetKey:"name",uiSchema:{}},{type:"hasMany",name:"inherits",interface:"select",uiSchema:{title:'{{ t("Inherits") }}',type:"string","x-component":"Select","x-component-props":{mode:"multiple"}}},{type:"string",name:"description",interface:"input",uiSchema:{title:'{{ t("Description") }}',type:"string","x-component":"Input"}}]},Nr=e=>({type:"object",properties:{[L.uid()]:{type:"void","x-collection":"dataSources","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:Kr,dragSort:!1,request:{url:`dataSources/${e}/collections:list`,params:{pageSize:50,sort:"sort",filter:{"hidden.$isFalsy":!0},appends:["category"]}}},properties:{tabs:{type:"void","x-component":"ConfigurationTabs"}}}}}),ot={type:"object",properties:{[L.uid()]:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:16}},properties:{filter:{type:"void",title:'{{ t("Filter") }}',default:{$and:[{title:{$includes:""}},{name:{$includes:""}}]},"x-action":"filter","x-component":"Filter.Action","x-component-props":{icon:"FilterOutlined",useProps:"{{ cm.useFilterActionProps }}"},"x-align":"left"},refresh:{type:"void",title:'{{ t("Refresh") }}',"x-component":"Action","x-component-props":{icon:"ReloadOutlined",useProps:"{{ useRefreshActionProps }}"}},delete:{type:"void",title:'{{ t("Delete") }}',"x-component":"DeleteCollection","x-component-props":{role:"button",isBulk:!0},"x-visible":!1},create:{type:"void",title:'{{ t("Create collection") }}',"x-component":"AddCollection","x-component-props":{type:"primary"},"x-visible":!1}}},[L.uid()]:{type:"void","x-uid":"input","x-component":"Table.Void","x-component-props":{rowKey:"name",rowSelection:{type:"checkbox"},useDataSource:"{{cm.useDataSourceFromRAC }}",useAction(){const e=n.useAPIClient(),{t}=V.useTranslation();return{move(r,a){return O(this,null,function*(){yield e.resource("dataSources").move({sourceId:r.key,targetId:a.key}),h.message.success(t("Saved successfully"),.2)})}}}},properties:{column1:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{title:{"x-component":"CollectionField","x-read-pretty":!0}}},column2:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{name:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},column5:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{description:{"x-component":"CollectionField","x-read-pretty":!0,"x-component-props":{ellipsis:!0}}}},column6:{type:"void",title:'{{ t("Actions") }}',"x-component":"Table.Column",properties:{actions:{type:"void","x-component":"Space","x-component-props":{split:"|"},properties:{view:{type:"void",title:'{{ t("Configure fields") }}',"x-component":"Action.Link","x-component-props":{},properties:{drawer:{type:"void","x-component":"Action.Drawer","x-component-props":{destroyOnClose:!0,width:"70%"},"x-reactions":e=>{const t=e.path.segments[1],o=e.path.segments[0],r=e.form.getValuesIn(`${o}.${t}`);r&&(e.title=`${Vt(r.title||r.name)} - ${Vt('{{ t("Configure fields") }}')}`)},properties:{collectionFields:{type:"void","x-component":"CollectionFields"}}}}},update:{type:"void",title:'{{ t("Edit") }}',"x-component":"EditCollection","x-component-props":{role:"button","aria-label":'{{ "edit-button-" + $record.name }}',type:"primary"}},delete:{type:"void",title:'{{ t("Delete") }}',"x-visible":!1,"x-component":"DeleteCollection","x-component-props":{role:"button","aria-label":'{{ "delete-button-" + $record.name }}',type:"primary",className:"nb-action-link"}}}}}}}}}},Br={name:"fields",fields:[{type:"string",name:"type",interface:"input",uiSchema:{title:'{{ t("Storage type") }}',type:"string","x-component":"Select",enum:[{label:"String",value:"string"}],required:!0}},{type:"string",name:"interface",interface:"input",uiSchema:{title:`{{t("Field interface", { ns: "${N}" })}}`,type:"string","x-component":"Select",enum:"{{interfaces}}"}},{type:"string",name:"title",interface:"input",uiSchema:{title:'{{ t("Field display name") }}',type:"string","x-component":"Input",required:!0}},{type:"string",name:"name",interface:"input",uiSchema:{title:'{{ t("Field name") }}',type:"string","x-component":"Input"}},{type:"string",name:"description",interface:"input",uiSchema:{title:'{{ t("Description") }}',type:"string","x-component":"Input.TextArea"}}]},Vr={type:"object",properties:{[L.uid()]:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:16}},properties:{delete:{type:"void",title:'{{ t("Delete") }}',"x-component":"Action","x-visible":!1,"x-component-props":{useAction:"{{ useBulkDestroyActionAndRefreshCM }}",confirm:{title:"{{t('Delete record')}}",content:"{{t('Are you sure you want to delete it?')}}"}}},syncfromDatabase:{type:"void",title:'{{ t("Sync from database") }}',"x-component":"SyncFieldsAction","x-component-props":{type:"primary"}},syncSQL:{type:"void",title:'{{ t("Sync from database") }}',"x-component":"SyncSQLFieldsAction","x-component-props":{type:"primary"}},create:{type:"void",title:'{{ t("Add new") }}',"x-component":"AddCollectionField","x-component-props":{type:"primary"}}}},[L.uid()]:{type:"void","x-uid":"input","x-component":"Table.Void","x-component-props":{pagination:!1,rowKey:"name",rowSelection:{type:"checkbox"},dragSort:!1,useDataSource:"{{ useDataSource }}"},properties:{column1:{type:"void",title:'{{ t("Field display name") }}',"x-component":"Table.Column",properties:{"uiSchema.title":{type:"string","x-component":"FieldTitleInput","x-component-props":{handleFieldChange:"{{handleFieldChange}}"}}}},column2:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{name:{"x-component":"CollectionField","x-read-pretty":!0}}},column3:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",title:'{{t("Field type")}}',properties:{type:{"x-component":"FieldType","x-component-props":{handleFieldChange:"{{handleFieldChange}}"}}}},column4:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",title:`{{t("Field interface", { ns: "${N}" })}}`,properties:{interface:{"x-component":"CollectionFieldInterfaceSelect","x-component-props":{handleFieldChange:"{{handleFieldChange}}"}}}},column5:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",title:'{{t("Title field")}}',properties:{titleField:{"x-component":"TitleField","x-read-pretty":!1,"x-component-props":{useProps:"{{useTitleFieldProps}}"}}}},column6:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",title:'{{ t("Description") }}',properties:{description:{"x-component":"CollectionField","x-read-pretty":!0,"x-component-props":{ellipsis:!0,style:{width:100}}}}},column7:{type:"void",title:'{{ t("Actions") }}',"x-component":"Table.Column",properties:{actions:{type:"void","x-component":"Space","x-component-props":{split:"|"},properties:{update:{type:"void",title:'{{ t("Edit") }}',"x-component":"EditCollectionField","x-component-props":{role:"button","aria-label":'{{ "edit-button-" + $record.name }}',type:"primary"}},delete:{type:"void",title:'{{ t("Delete") }}',"x-disabled":"{{cm.useDeleteButtonDisabled()}}","x-component":"Action.Link","x-component-props":{confirm:{title:"{{t('Delete record')}}",content:"{{t('Are you sure you want to delete it?')}}"},useAction:"{{ useDestroyActionAndRefreshCM }}"},"x-reactions":[{dependencies:[".interface"],fulfill:{state:{visible:"{{ ['obo','oho','m2m','o2m','m2o'].includes($deps[0]) }}"}}}]}}}}}}}}},Lr=e=>{const{useProps:t}=e,{t:o}=V.useTranslation(),{isTitleField:r}=n.useCollectionManager_deprecated(),[a,s]=p.useState(null),{setTitleField:c,filterByTk:l,dataSourceKey:d}=t(),u=n.useRecord(),f=n.useAPIClient(),{refreshRM:y,titleField:g}=Tt(),S=D=>O(this,null,function*(){s(u),yield f.request({url:`dataSources/${d}/collections:update?filterByTk=${l}`,method:"post",data:{titleField:D?u.name:"id"}}),h.message.success(o("Saved successfully")),y(),c(D?u.name:"id"),s(null)});return r(u)?i.jsx(h.Tooltip,{title:o("Default title for each record"),placement:"right",overlayInnerStyle:{textAlign:"center"},children:i.jsx(h.Switch,{"aria-label":`switch-title-field-${u==null?void 0:u.name}`,size:"small",loading:(u==null?void 0:u.name)===(a==null?void 0:a.name),checked:(u==null?void 0:u.name)===(g||"id"),onChange:S})}):null},Lt=(e,t)=>{const o=[];return e.forEach(r=>{const a=r.children.filter(s=>{var c;return(c=s==null?void 0:s.availableTypes)==null?void 0:c.includes(t)});o.push({label:r.label,key:r.key,children:a})}),o.filter(r=>t==="sort"?r.key==="advanced":r.children.length>0)},qr=A.observer(e=>{var g;const{value:t,handleFieldChange:o}=e,r=n.useRecord(),{getInterface:a}=n.useCollectionManager_deprecated(),s=n.useCompile(),c=n.useFieldInterfaceOptions(),l=Lt(c,r.type),d=A.useForm(),u=A.useField(),[f,y]=p.useState(l);return["oho","obo","o2m","m2o","m2m"].includes(r.interface)?i.jsx(h.Tag,{children:s((g=c.find(S=>S.key==="relation").children.find(S=>S.name===t))==null?void 0:g.label)},t):i.jsx(h.Select,{defaultValue:t,style:{width:"100%"},popupMatchSelectWidth:!1,onChange:S=>{var C,x;const D=a(S);o({interface:S,uiSchema:$({title:(C=r==null?void 0:r.uiSchema)==null?void 0:C.title},(x=D==null?void 0:D.default)==null?void 0:x.uiSchema)},r.name)},onDropdownVisibleChange:S=>{var D,C;if(S&&(r!=null&&r.possibleTypes)){const x=(C=(D=Object.values(d.values))==null?void 0:D[0])==null?void 0:C[u.index],v=(x==null?void 0:x.type)||r.type,I=Lt(c,v);y(I)}},children:f.map(S=>i.jsx(h.Select.OptGroup,{label:s(S.label),children:S.children.map(D=>i.jsx(h.Select.Option,{value:D.name,children:s(D.label)},D.name))},S.key))})},{displayName:"CollectionFieldInterfaceSelect"}),De=["string","bigInt","integer","uuid","uid"],Gr=A.observer(e=>{var u,f;const{name:t}=W.useParams(),{collectionName:o,sourceKey:r,name:a}=n.useRecord(),s=A.useField(),c=n.useCompile(),{getCollection:l}=n.useCollectionManager_deprecated(),d=(u=l(o||a,t).fields)==null?void 0:u.filter(y=>y.primaryKey||y.unique).map(y=>{var g;return{value:y.name,label:c(((g=y.uiSchema)==null?void 0:g.title)||y.title||y.name)}});return p.useEffect(()=>{var y;s.initialValue=((y=d==null?void 0:d[0])==null?void 0:y.value)||r},[]),i.jsx("div",{children:i.jsx(h.Select,{disabled:r,options:d,defaultValue:((f=d==null?void 0:d[0])==null?void 0:f.value)||r,onChange:e==null?void 0:e.onChange,showSearch:!0})})},{displayName:"SourceKey"}),qt=A.observer(e=>{const{disabled:t}=e,o=n.useAPIClient(),[r,a]=p.useState([]),{name:s}=W.useParams(),c=n.useRecord(),l=A.useField(),{collectionName:d,target:u,type:f,through:y,name:g}=c,S=c[l.props.name],{getCollection:D}=n.useCollectionManager_deprecated(),C=n.useCompile(),x=A.useForm(),[v,I]=p.useState(S);return p.useEffect(()=>{var P;l.initialValue=null;const b=["belongsTo"].includes(f)?d:["belongsToMany"].includes(f)?y:u,m=(P=D(b||g,s))==null?void 0:P.fields;if(m){const w=m==null?void 0:m.filter(T=>De.includes(T.type)).map(T=>{var j;return{value:T.name,label:C(((j=T.uiSchema)==null?void 0:j.title)||T.title||T.name)}});if(a(w),S){const T=w.find(j=>j.value===S);I((T==null?void 0:T.label)||S)}}},[f]),p.useEffect(()=>{I(S)},[S]),i.jsx("div",{children:i.jsx(h.Select,{disabled:t,value:v,options:r,showSearch:!0,onDropdownVisibleChange:b=>O(this,null,function*(){var j;const{target:m,type:P,through:w}=x.values,T=["belongsTo"].includes(P)?d:["belongsToMany"].includes(P)?w:m;if(T&&b){const{data:F}=yield o.request({url:`dataSourcesCollections/${s}.${T}/fields:list`,params:{paginate:!1,filter:{$or:[{"interface.$not":null},{"options.source.$notEmpty":!0}]},sort:["sort"]}});a((j=F.data)==null?void 0:j.filter(_=>De.includes(_.type)).map(_=>{var K;return{value:_.name,label:C(((K=_.uiSchema)==null?void 0:K.title)||_.title||_.name)}}))}}),onChange:b=>{var m;(m=e==null?void 0:e.onChange)==null||m.call(e,b),I(b)}})})},{displayName:"ForeignKey"}),zr=A.observer(e=>{const{value:t,disabled:o}=e,{targetKey:r,target:a,type:s}=n.useRecord(),{name:c}=W.useParams(),{getCollection:l}=n.useCollectionManager_deprecated(),d=n.useAPIClient(),[u,f]=p.useState([]),[y,g]=p.useState(t||r),S=A.useForm(),D=n.useCompile(),C=A.useField();return C.required=!0,p.useEffect(()=>{var x;a&&f((x=l(a,c).fields)==null?void 0:x.filter(v=>s!=="hasMany"?v.primaryKey||v.unique:De.includes(v.type)).map(v=>{var I;return{value:v.name,label:D(((I=v==null?void 0:v.uiSchema)==null?void 0:I.title)||v.title||v.name)}}))},[]),i.jsx("div",{children:i.jsx(h.Select,{showSearch:!0,options:u,onDropdownVisibleChange:x=>O(this,null,function*(){var b;const{target:v,type:I}=S.values;if(v&&x){const{data:m}=yield d.request({url:`dataSourcesCollections/${c}.${v}/fields:list`,params:{paginate:!1,filter:{$or:[{"interface.$not":null},{"options.source.$notEmpty":!0}]},sort:["sort"]}});f((b=m.data)==null?void 0:b.filter(P=>I!=="hasMany"?P.primaryKey||P.unique:De.includes(P.type)).map(P=>{var w;return{value:P.name,label:D(((w=P.uiSchema)==null?void 0:w.title)||P.title||P.name)}}))}}),onChange:x=>{var v;(v=e==null?void 0:e.onChange)==null||v.call(e,x),g(x)},value:y,disabled:o})})},{displayName:"TargetKey"}),Ur=A.observer(()=>{const e=n.useCompile(),{targetCollection:t}=Tt();return i.jsx("div",{children:i.jsx(h.Select,{disabled:!0,showSearch:!0,popupMatchSelectWidth:!1,value:t.name,options:[{value:t.name,label:e(t.title||t.name)}]})})},{displayName:"SourceCollection"}),Hr=A.observer(e=>{const{disabled:t}=e,o=n.useCompile(),[r,a]=p.useState([]),{name:s}=W.useParams(),c=A.useField(),{getCollections:l}=n.useCollectionManager_deprecated(s),u=n.useRecord()[c.props.name],f=()=>l().filter(g=>!(g.autoCreate&&g.isThrough)).map(g=>({label:o(g.title||g.name),value:g.name}));return p.useEffect(()=>{const y=f();a(y)},[]),i.jsx("div",{children:i.jsx(h.Select,{disabled:t,showSearch:!0,popupMatchSelectWidth:!1,fieldNames:{label:"label",value:"value"},defaultValue:u,options:r,onChange:y=>{var g;(g=e==null?void 0:e.onChange)==null||g.call(e,y)}})})},{displayName:"ThroughCollection"}),Wr=(e,t,o)=>{var s;if(!e)return;const r=J.cloneDeep(e.properties);r!=null&&r.foreignKey&&(r.foreignKey["x-component"]=qt),e.hasDefaultValue===!0&&(r.defaultValue=J.cloneDeep((s=e==null?void 0:e.default)==null?void 0:s.uiSchema),r.defaultValue.required=!1,r.defaultValue.title=o('{{ t("Default value") }}'),r.defaultValue["x-decorator"]="FormItem",r.defaultValue["x-reactions"]={dependencies:["uiSchema.x-component-props.gmt","uiSchema.x-component-props.showTime","uiSchema.x-component-props.dateFormat","uiSchema.x-component-props.timeFormat"],fulfill:{state:{componentProps:{gmt:"{{$deps[0]}}",showTime:"{{$deps[1]}}",dateFormat:"{{$deps[2]}}",timeFormat:"{{$deps[3]}}"}}}});const a=k($({name:`f_${L.uid()}`},J.cloneDeep(e.default)),{interface:e.name});return a.reverseField&&(a.reverseField.name=`f_${L.uid()}`),{type:"object",properties:{[L.uid()]:{type:"void","x-component":"Action.Drawer","x-component-props":{getContainer:"{{ getContainer }}"},"x-decorator":"Form","x-decorator-props":{useValues(c){return n.useRequest(()=>Promise.resolve({data:a}),c)}},title:`${o(t.title||t.name)} - ${o('{{ t("Add field") }}')}`,properties:k($({summary:{type:"void","x-component":"FieldSummary","x-component-props":{schemaKey:e.name}}},r),{description:{type:"string",title:'{{t("Description")}}',"x-decorator":"FormItem","x-component":"Input.TextArea"},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{action1:{title:'{{ t("Cancel") }}',"x-component":"Action","x-component-props":{useAction:"{{ useCancelAction }}"}},action2:{title:'{{ t("Submit") }}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ useCreateCollectionField }}"}}}}})}}}},Yr=()=>{const e=A.useForm(),t=n.useActionContext(),{refresh:o}=n.useResourceActionContext(),r=A.useField(),a=n.useAPIClient(),s=n.useRecord(),{name:c}=W.useParams(),l=n.useDataSourceManager();return{run(){return O(this,null,function*(){yield e.submit(),r.data=r.data||{},r.data.loading=!0;const u=J.cloneDeep(e.values);u.autoCreateReverseField||delete u.reverseField,delete u.autoCreateReverseField;try{yield a.request({url:`dataSourcesCollections/${c}.${s.name}/fields:create`,method:"post",data:u}),t.setVisible(!1),l.getDataSource(c).reload(),yield e.reset(),r.data.loading=!1,o()}catch(f){r.data.loading=!1}})}}},Qr=e=>{const t=n.useRecord();return i.jsx(Zr,$({item:t},e))},Zr=e=>{const{scope:t,getContainer:o,item:r,children:a,trigger:s,align:c,database:l}=e,{getInterface:d,getTemplate:u,collections:f}=n.useCollectionManager_deprecated(),[y,g]=p.useState(!1),[S,D]=p.useState(),[C,x]=p.useState({}),v=n.useCompile(),{t:I}=V.useTranslation(),{data:{database:b}}=n.useCurrentAppInfo(),m=_=>(b==null?void 0:b.dialect)===_,P=p.useMemo(()=>f.map(_=>({label:v(_.title),value:_.name})),[]),w=n.useFieldInterfaceOptions(),T=p.useCallback(()=>{const{availableFieldInterfaces:_}=u(r.template)||{},{exclude:K,include:B}=_||{},Q=[];return w.forEach(H=>{var E;if(H.key==="relation"){let Y=[];B!=null&&B.length?B.forEach(G=>{var ne;const oe=(ne=H==null?void 0:H.children)==null?void 0:ne.find(rv=>[G,G.interface].includes(rv.value));oe&&Y.push(k($({},oe),{targetScope:G==null?void 0:G.targetScope}))}):K!=null&&K.length?Y=(E=H==null?void 0:H.children)==null?void 0:E.filter(G=>!K.includes(G.value)):Y=H==null?void 0:H.children,Y!=null&&Y.length&&Q.push(k($({},H),{children:Y}))}}),Q},[u,r]),j=p.useMemo(()=>T().map(_=>{var K;return((K=_==null?void 0:_.children)==null?void 0:K.length)===0?null:r.template==="view"?{type:"group",label:v(_.label),title:v(_.label),key:_.label,children:_.children.filter(B=>["m2o"].includes(B.name)).map(B=>({label:v(B.title),title:v(B.title),key:B.name,dataTargetScope:B.targetScope}))}:{type:"group",label:v(_.label),title:v(_.label),key:_.label,children:_==null?void 0:_.children.filter(B=>!["o2o","subTable","linkTo"].includes(B.name)).map(B=>({label:v(B.title),title:v(B.title),key:B.name,dataTargetScope:B.targetScope}))}}).filter(_=>{var K;return(K=_==null?void 0:_.children)==null?void 0:K.length}),[T]),F=p.useMemo(()=>({style:{maxHeight:"60vh",overflow:"auto"},onClick:_=>{const K=_.item.props["data-targetScope"];K&&D(K);const B=Wr(d(_.key),r,v);B&&(x(B),g(!0))},items:j}),[d,j,r]);return r.template!=="sql"&&i.jsx(n.RecordProvider,{record:r,children:i.jsxs(n.ActionContextProvider,{value:{visible:y,setVisible:g},children:[i.jsx(h.Dropdown,{getPopupContainer:o,trigger:s,align:c,menu:F,children:a||i.jsx(h.Button,{icon:i.jsx(ee.PlusOutlined,{}),type:"primary",children:I("Add field")})}),i.jsx(n.SchemaComponent,{schema:C,components:{ArrayTable:pe.ArrayTable},scope:$({getContainer:o,useCancelAction:n.useCancelAction,createOnly:!0,isOverride:!1,override:!1,useCreateCollectionField:Yr,record:r,showReverseFieldConfig:!1,targetScope:S,collections:P,isDialect:m,disabledJSONB:!1,createMainOnly:!0},t)})]})})},Jr=A.observer(e=>{const{value:t,handleFieldChange:o}=e,r=n.useRecord(),[a,s]=p.useState(t),c=u=>{s(u)},l=p.useMemo(()=>J.debounce(u=>{o({uiSchema:k($({},r==null?void 0:r.uiSchema),{title:u})},r.name)},1e3),[o,r]),d=u=>{const f=u.target.value;c(f),l(f)};return p.useEffect(()=>{s(t)},[t]),i.jsx(h.Input,{value:a,onChange:d})},{displayName:"FieldTitleInput"}),Xr=()=>{const{refresh:e}=n.useResourceActionContext(),{name:t}=W.useParams(),{name:o,collectionName:r}=n.useRecord(),a=n.useAPIClient();return{run(){return O(this,null,function*(){yield a.request({url:`dataSourcesCollections/${t}.${r}/fields:destroy?filterByTk=${o}`,method:"post"}),e()})}}},Rr=()=>{const{state:e,setState:t,refresh:o}=n.useResourceActionContext(),{t:r}=V.useTranslation(),{name:a}=W.useParams(),s=n.useAPIClient(),{name:c}=n.useRecord();return{run(){return O(this,null,function*(){var d;if(!((d=e==null?void 0:e.selectedRowKeys)!=null&&d.length))return h.message.error(r("Please select the records you want to delete"));yield s.request({url:`dataSourcesCollections/${a}.${c}/fields:destroy`,method:"post",params:{filterByTk:(e==null?void 0:e.selectedRowKeys)||[]}}),t==null||t({selectedRowKeys:[]}),o()})}}},en=()=>{const{run:e}=Rr();return{run(){return O(this,null,function*(){yield e()})}}},tn=()=>{const{run:e}=Xr();return{run(){return O(this,null,function*(){yield e()})}}};var Ie=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function be(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function on(){this.__data__=[],this.size=0}var rn=on;function nn(e,t){return e===t||e!==e&&t!==t}var Gt=nn,an=Gt;function sn(e,t){for(var o=e.length;o--;)if(an(e[o][0],t))return o;return-1}var Oe=sn,cn=Oe,ln=Array.prototype,un=ln.splice;function pn(e){var t=this.__data__,o=cn(t,e);if(o<0)return!1;var r=t.length-1;return o==r?t.pop():un.call(t,o,1),--this.size,!0}var dn=pn,mn=Oe;function fn(e){var t=this.__data__,o=mn(t,e);return o<0?void 0:t[o][1]}var yn=fn,gn=Oe;function vn(e){return gn(this.__data__,e)>-1}var hn=vn,Cn=Oe;function bn(e,t){var o=this.__data__,r=Cn(o,e);return r<0?(++this.size,o.push([e,t])):o[r][1]=t,this}var xn=bn,Sn=rn,An=dn,$n=yn,Tn=hn,Fn=xn;function de(e){var t=-1,o=e==null?0:e.length;for(this.clear();++t<o;){var r=e[t];this.set(r[0],r[1])}}de.prototype.clear=Sn,de.prototype.delete=An,de.prototype.get=$n,de.prototype.has=Tn,de.prototype.set=Fn;var Ee=de,wn=Ee;function _n(){this.__data__=new wn,this.size=0}var Pn=_n;function Dn(e){var t=this.__data__,o=t.delete(e);return this.size=t.size,o}var In=Dn;function On(e){return this.__data__.get(e)}var En=On;function Mn(e){return this.__data__.has(e)}var jn=Mn,kn=typeof Ie=="object"&&Ie&&Ie.Object===Object&&Ie,zt=kn,Kn=zt,Nn=typeof self=="object"&&self&&self.Object===Object&&self,Bn=Kn||Nn||Function("return this")(),te=Bn,Vn=te,Ln=Vn.Symbol,xe=Ln,Ut=xe,Ht=Object.prototype,qn=Ht.hasOwnProperty,Gn=Ht.toString,Se=Ut?Ut.toStringTag:void 0;function zn(e){var t=qn.call(e,Se),o=e[Se];try{e[Se]=void 0;var r=!0}catch(s){}var a=Gn.call(e);return r&&(t?e[Se]=o:delete e[Se]),a}var Un=zn,Hn=Object.prototype,Wn=Hn.toString;function Yn(e){return Wn.call(e)}var Qn=Yn,Wt=xe,Zn=Un,Jn=Qn,Xn="[object Null]",Rn="[object Undefined]",Yt=Wt?Wt.toStringTag:void 0;function ea(e){return e==null?e===void 0?Rn:Xn:Yt&&Yt in Object(e)?Zn(e):Jn(e)}var me=ea;function ta(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var fe=ta,oa=me,ra=fe,na="[object AsyncFunction]",aa="[object Function]",sa="[object GeneratorFunction]",ia="[object Proxy]";function ca(e){if(!ra(e))return!1;var t=oa(e);return t==aa||t==sa||t==na||t==ia}var Qt=ca,la=te,ua=la["__core-js_shared__"],pa=ua,rt=pa,Zt=function(){var e=/[^.]+$/.exec(rt&&rt.keys&&rt.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function da(e){return!!Zt&&Zt in e}var ma=da,fa=Function.prototype,ya=fa.toString;function ga(e){if(e!=null){try{return ya.call(e)}catch(t){}try{return e+""}catch(t){}}return""}var Jt=ga,va=Qt,ha=ma,Ca=fe,ba=Jt,xa=/[\\^$.*+?()[\]{}|]/g,Sa=/^\[object .+?Constructor\]$/,Aa=Function.prototype,$a=Object.prototype,Ta=Aa.toString,Fa=$a.hasOwnProperty,wa=RegExp("^"+Ta.call(Fa).replace(xa,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function _a(e){if(!Ca(e)||ha(e))return!1;var t=va(e)?wa:Sa;return t.test(ba(e))}var Pa=_a;function Da(e,t){return e==null?void 0:e[t]}var Ia=Da,Oa=Pa,Ea=Ia;function Ma(e,t){var o=Ea(e,t);return Oa(o)?o:void 0}var se=Ma,ja=se,ka=te,Ka=ja(ka,"Map"),nt=Ka,Na=se,Ba=Na(Object,"create"),Me=Ba,Xt=Me;function Va(){this.__data__=Xt?Xt(null):{},this.size=0}var La=Va;function qa(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Ga=qa,za=Me,Ua="__lodash_hash_undefined__",Ha=Object.prototype,Wa=Ha.hasOwnProperty;function Ya(e){var t=this.__data__;if(za){var o=t[e];return o===Ua?void 0:o}return Wa.call(t,e)?t[e]:void 0}var Qa=Ya,Za=Me,Ja=Object.prototype,Xa=Ja.hasOwnProperty;function Ra(e){var t=this.__data__;return Za?t[e]!==void 0:Xa.call(t,e)}var es=Ra,ts=Me,os="__lodash_hash_undefined__";function rs(e,t){var o=this.__data__;return this.size+=this.has(e)?0:1,o[e]=ts&&t===void 0?os:t,this}var ns=rs,as=La,ss=Ga,is=Qa,cs=es,ls=ns;function ye(e){var t=-1,o=e==null?0:e.length;for(this.clear();++t<o;){var r=e[t];this.set(r[0],r[1])}}ye.prototype.clear=as,ye.prototype.delete=ss,ye.prototype.get=is,ye.prototype.has=cs,ye.prototype.set=ls;var us=ye,Rt=us,ps=Ee,ds=nt;function ms(){this.size=0,this.__data__={hash:new Rt,map:new(ds||ps),string:new Rt}}var fs=ms;function ys(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var gs=ys,vs=gs;function hs(e,t){var o=e.__data__;return vs(t)?o[typeof t=="string"?"string":"hash"]:o.map}var je=hs,Cs=je;function bs(e){var t=Cs(this,e).delete(e);return this.size-=t?1:0,t}var xs=bs,Ss=je;function As(e){return Ss(this,e).get(e)}var $s=As,Ts=je;function Fs(e){return Ts(this,e).has(e)}var ws=Fs,_s=je;function Ps(e,t){var o=_s(this,e),r=o.size;return o.set(e,t),this.size+=o.size==r?0:1,this}var Ds=Ps,Is=fs,Os=xs,Es=$s,Ms=ws,js=Ds;function ge(e){var t=-1,o=e==null?0:e.length;for(this.clear();++t<o;){var r=e[t];this.set(r[0],r[1])}}ge.prototype.clear=Is,ge.prototype.delete=Os,ge.prototype.get=Es,ge.prototype.has=Ms,ge.prototype.set=js;var eo=ge,ks=Ee,Ks=nt,Ns=eo,Bs=200;function Vs(e,t){var o=this.__data__;if(o instanceof ks){var r=o.__data__;if(!Ks||r.length<Bs-1)return r.push([e,t]),this.size=++o.size,this;o=this.__data__=new Ns(r)}return o.set(e,t),this.size=o.size,this}var Ls=Vs,qs=Ee,Gs=Pn,zs=In,Us=En,Hs=jn,Ws=Ls;function ve(e){var t=this.__data__=new qs(e);this.size=t.size}ve.prototype.clear=Gs,ve.prototype.delete=zs,ve.prototype.get=Us,ve.prototype.has=Hs,ve.prototype.set=Ws;var Ys=ve;function Qs(e,t){for(var o=-1,r=e==null?0:e.length;++o<r&&t(e[o],o,e)!==!1;);return e}var Zs=Qs,Js=se,Xs=function(){try{var e=Js(Object,"defineProperty");return e({},"",{}),e}catch(t){}}(),to=Xs,oo=to;function Rs(e,t,o){t=="__proto__"&&oo?oo(e,t,{configurable:!0,enumerable:!0,value:o,writable:!0}):e[t]=o}var ro=Rs,ei=ro,ti=Gt,oi=Object.prototype,ri=oi.hasOwnProperty;function ni(e,t,o){var r=e[t];(!(ri.call(e,t)&&ti(r,o))||o===void 0&&!(t in e))&&ei(e,t,o)}var at=ni,ai=at,si=ro;function ii(e,t,o,r){var a=!o;o||(o={});for(var s=-1,c=t.length;++s<c;){var l=t[s],d=r?r(o[l],e[l],l,o,e):void 0;d===void 0&&(d=e[l]),a?si(o,l,d):ai(o,l,d)}return o}var Ae=ii;function ci(e,t){for(var o=-1,r=Array(e);++o<e;)r[o]=t(o);return r}var li=ci;function ui(e){return e!=null&&typeof e=="object"}var ie=ui,pi=me,di=ie,mi="[object Arguments]";function fi(e){return di(e)&&pi(e)==mi}var yi=fi,no=yi,gi=ie,ao=Object.prototype,vi=ao.hasOwnProperty,hi=ao.propertyIsEnumerable,Ci=no(function(){return arguments}())?no:function(e){return gi(e)&&vi.call(e,"callee")&&!hi.call(e,"callee")},so=Ci,bi=Array.isArray,ce=bi,ke={exports:{}};function xi(){return!1}var Si=xi;ke.exports,function(e,t){var o=te,r=Si,a=t&&!t.nodeType&&t,s=a&&!0&&e&&!e.nodeType&&e,c=s&&s.exports===a,l=c?o.Buffer:void 0,d=l?l.isBuffer:void 0,u=d||r;e.exports=u}(ke,ke.exports);var io=ke.exports,Ai=9007199254740991,$i=/^(?:0|[1-9]\d*)$/;function Ti(e,t){var o=typeof e;return t=t==null?Ai:t,!!t&&(o=="number"||o!="symbol"&&$i.test(e))&&e>-1&&e%1==0&&e<t}var co=Ti,Fi=9007199254740991;function wi(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Fi}var lo=wi,_i=me,Pi=lo,Di=ie,Ii="[object Arguments]",Oi="[object Array]",Ei="[object Boolean]",Mi="[object Date]",ji="[object Error]",ki="[object Function]",Ki="[object Map]",Ni="[object Number]",Bi="[object Object]",Vi="[object RegExp]",Li="[object Set]",qi="[object String]",Gi="[object WeakMap]",zi="[object ArrayBuffer]",Ui="[object DataView]",Hi="[object Float32Array]",Wi="[object Float64Array]",Yi="[object Int8Array]",Qi="[object Int16Array]",Zi="[object Int32Array]",Ji="[object Uint8Array]",Xi="[object Uint8ClampedArray]",Ri="[object Uint16Array]",ec="[object Uint32Array]",U={};U[Hi]=U[Wi]=U[Yi]=U[Qi]=U[Zi]=U[Ji]=U[Xi]=U[Ri]=U[ec]=!0,U[Ii]=U[Oi]=U[zi]=U[Ei]=U[Ui]=U[Mi]=U[ji]=U[ki]=U[Ki]=U[Ni]=U[Bi]=U[Vi]=U[Li]=U[qi]=U[Gi]=!1;function tc(e){return Di(e)&&Pi(e.length)&&!!U[_i(e)]}var oc=tc;function rc(e){return function(t){return e(t)}}var st=rc,Ke={exports:{}};Ke.exports,function(e,t){var o=zt,r=t&&!t.nodeType&&t,a=r&&!0&&e&&!e.nodeType&&e,s=a&&a.exports===r,c=s&&o.process,l=function(){try{var d=a&&a.require&&a.require("util").types;return d||c&&c.binding&&c.binding("util")}catch(u){}}();e.exports=l}(Ke,Ke.exports);var it=Ke.exports,nc=oc,ac=st,uo=it,po=uo&&uo.isTypedArray,sc=po?ac(po):nc,ic=sc,cc=li,lc=so,uc=ce,pc=io,dc=co,mc=ic,fc=Object.prototype,yc=fc.hasOwnProperty;function gc(e,t){var o=uc(e),r=!o&&lc(e),a=!o&&!r&&pc(e),s=!o&&!r&&!a&&mc(e),c=o||r||a||s,l=c?cc(e.length,String):[],d=l.length;for(var u in e)(t||yc.call(e,u))&&!(c&&(u=="length"||a&&(u=="offset"||u=="parent")||s&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||dc(u,d)))&&l.push(u);return l}var mo=gc,vc=Object.prototype;function hc(e){var t=e&&e.constructor,o=typeof t=="function"&&t.prototype||vc;return e===o}var ct=hc;function Cc(e,t){return function(o){return e(t(o))}}var fo=Cc,bc=fo,xc=bc(Object.keys,Object),Sc=xc,Ac=ct,$c=Sc,Tc=Object.prototype,Fc=Tc.hasOwnProperty;function wc(e){if(!Ac(e))return $c(e);var t=[];for(var o in Object(e))Fc.call(e,o)&&o!="constructor"&&t.push(o);return t}var _c=wc,Pc=Qt,Dc=lo;function Ic(e){return e!=null&&Dc(e.length)&&!Pc(e)}var yo=Ic,Oc=mo,Ec=_c,Mc=yo;function jc(e){return Mc(e)?Oc(e):Ec(e)}var lt=jc,kc=Ae,Kc=lt;function Nc(e,t){return e&&kc(t,Kc(t),e)}var Bc=Nc;function Vc(e){var t=[];if(e!=null)for(var o in Object(e))t.push(o);return t}var Lc=Vc,qc=fe,Gc=ct,zc=Lc,Uc=Object.prototype,Hc=Uc.hasOwnProperty;function Wc(e){if(!qc(e))return zc(e);var t=Gc(e),o=[];for(var r in e)r=="constructor"&&(t||!Hc.call(e,r))||o.push(r);return o}var Yc=Wc,Qc=mo,Zc=Yc,Jc=yo;function Xc(e){return Jc(e)?Qc(e,!0):Zc(e)}var ut=Xc,Rc=Ae,el=ut;function tl(e,t){return e&&Rc(t,el(t),e)}var ol=tl,Ne={exports:{}};Ne.exports,function(e,t){var o=te,r=t&&!t.nodeType&&t,a=r&&!0&&e&&!e.nodeType&&e,s=a&&a.exports===r,c=s?o.Buffer:void 0,l=c?c.allocUnsafe:void 0;function d(u,f){if(f)return u.slice();var y=u.length,g=l?l(y):new u.constructor(y);return u.copy(g),g}e.exports=d}(Ne,Ne.exports);var rl=Ne.exports;function nl(e,t){var o=-1,r=e.length;for(t||(t=Array(r));++o<r;)t[o]=e[o];return t}var al=nl;function sl(e,t){for(var o=-1,r=e==null?0:e.length,a=0,s=[];++o<r;){var c=e[o];t(c,o,e)&&(s[a++]=c)}return s}var il=sl;function cl(){return[]}var go=cl,ll=il,ul=go,pl=Object.prototype,dl=pl.propertyIsEnumerable,vo=Object.getOwnPropertySymbols,ml=vo?function(e){return e==null?[]:(e=Object(e),ll(vo(e),function(t){return dl.call(e,t)}))}:ul,pt=ml,fl=Ae,yl=pt;function gl(e,t){return fl(e,yl(e),t)}var vl=gl;function hl(e,t){for(var o=-1,r=t.length,a=e.length;++o<r;)e[a+o]=t[o];return e}var dt=hl,Cl=fo,bl=Cl(Object.getPrototypeOf,Object),mt=bl,xl=dt,Sl=mt,Al=pt,$l=go,Tl=Object.getOwnPropertySymbols,Fl=Tl?function(e){for(var t=[];e;)xl(t,Al(e)),e=Sl(e);return t}:$l,ho=Fl,wl=Ae,_l=ho;function Pl(e,t){return wl(e,_l(e),t)}var Dl=Pl,Il=dt,Ol=ce;function El(e,t,o){var r=t(e);return Ol(e)?r:Il(r,o(e))}var Co=El,Ml=Co,jl=pt,kl=lt;function Kl(e){return Ml(e,kl,jl)}var Nl=Kl,Bl=Co,Vl=ho,Ll=ut;function ql(e){return Bl(e,Ll,Vl)}var bo=ql,Gl=se,zl=te,Ul=Gl(zl,"DataView"),Hl=Ul,Wl=se,Yl=te,Ql=Wl(Yl,"Promise"),Zl=Ql,Jl=se,Xl=te,Rl=Jl(Xl,"Set"),eu=Rl,tu=se,ou=te,ru=tu(ou,"WeakMap"),nu=ru,ft=Hl,yt=nt,gt=Zl,vt=eu,ht=nu,xo=me,he=Jt,So="[object Map]",au="[object Object]",Ao="[object Promise]",$o="[object Set]",To="[object WeakMap]",Fo="[object DataView]",su=he(ft),iu=he(yt),cu=he(gt),lu=he(vt),uu=he(ht),le=xo;(ft&&le(new ft(new ArrayBuffer(1)))!=Fo||yt&&le(new yt)!=So||gt&&le(gt.resolve())!=Ao||vt&&le(new vt)!=$o||ht&&le(new ht)!=To)&&(le=function(e){var t=xo(e),o=t==au?e.constructor:void 0,r=o?he(o):"";if(r)switch(r){case su:return Fo;case iu:return So;case cu:return Ao;case lu:return $o;case uu:return To}return t});var Ct=le,pu=Object.prototype,du=pu.hasOwnProperty;function mu(e){var t=e.length,o=new e.constructor(t);return t&&typeof e[0]=="string"&&du.call(e,"index")&&(o.index=e.index,o.input=e.input),o}var fu=mu,yu=te,gu=yu.Uint8Array,vu=gu,wo=vu;function hu(e){var t=new e.constructor(e.byteLength);return new wo(t).set(new wo(e)),t}var bt=hu,Cu=bt;function bu(e,t){var o=t?Cu(e.buffer):e.buffer;return new e.constructor(o,e.byteOffset,e.byteLength)}var xu=bu,Su=/\w*$/;function Au(e){var t=new e.constructor(e.source,Su.exec(e));return t.lastIndex=e.lastIndex,t}var $u=Au,_o=xe,Po=_o?_o.prototype:void 0,Do=Po?Po.valueOf:void 0;function Tu(e){return Do?Object(Do.call(e)):{}}var Fu=Tu,wu=bt;function _u(e,t){var o=t?wu(e.buffer):e.buffer;return new e.constructor(o,e.byteOffset,e.length)}var Pu=_u,Du=bt,Iu=xu,Ou=$u,Eu=Fu,Mu=Pu,ju="[object Boolean]",ku="[object Date]",Ku="[object Map]",Nu="[object Number]",Bu="[object RegExp]",Vu="[object Set]",Lu="[object String]",qu="[object Symbol]",Gu="[object ArrayBuffer]",zu="[object DataView]",Uu="[object Float32Array]",Hu="[object Float64Array]",Wu="[object Int8Array]",Yu="[object Int16Array]",Qu="[object Int32Array]",Zu="[object Uint8Array]",Ju="[object Uint8ClampedArray]",Xu="[object Uint16Array]",Ru="[object Uint32Array]";function ep(e,t,o){var r=e.constructor;switch(t){case Gu:return Du(e);case ju:case ku:return new r(+e);case zu:return Iu(e,o);case Uu:case Hu:case Wu:case Yu:case Qu:case Zu:case Ju:case Xu:case Ru:return Mu(e,o);case Ku:return new r;case Nu:case Lu:return new r(e);case Bu:return Ou(e);case Vu:return new r;case qu:return Eu(e)}}var tp=ep,op=fe,Io=Object.create,rp=function(){function e(){}return function(t){if(!op(t))return{};if(Io)return Io(t);e.prototype=t;var o=new e;return e.prototype=void 0,o}}(),np=rp,ap=np,sp=mt,ip=ct;function cp(e){return typeof e.constructor=="function"&&!ip(e)?ap(sp(e)):{}}var lp=cp,up=Ct,pp=ie,dp="[object Map]";function mp(e){return pp(e)&&up(e)==dp}var fp=mp,yp=fp,gp=st,Oo=it,Eo=Oo&&Oo.isMap,vp=Eo?gp(Eo):yp,hp=vp,Cp=Ct,bp=ie,xp="[object Set]";function Sp(e){return bp(e)&&Cp(e)==xp}var Ap=Sp,$p=Ap,Tp=st,Mo=it,jo=Mo&&Mo.isSet,Fp=jo?Tp(jo):$p,wp=Fp,_p=Ys,Pp=Zs,Dp=at,Ip=Bc,Op=ol,Ep=rl,Mp=al,jp=vl,kp=Dl,Kp=Nl,Np=bo,Bp=Ct,Vp=fu,Lp=tp,qp=lp,Gp=ce,zp=io,Up=hp,Hp=fe,Wp=wp,Yp=lt,Qp=ut,Zp=1,Jp=2,Xp=4,ko="[object Arguments]",Rp="[object Array]",ed="[object Boolean]",td="[object Date]",od="[object Error]",Ko="[object Function]",rd="[object GeneratorFunction]",nd="[object Map]",ad="[object Number]",No="[object Object]",sd="[object RegExp]",id="[object Set]",cd="[object String]",ld="[object Symbol]",ud="[object WeakMap]",pd="[object ArrayBuffer]",dd="[object DataView]",md="[object Float32Array]",fd="[object Float64Array]",yd="[object Int8Array]",gd="[object Int16Array]",vd="[object Int32Array]",hd="[object Uint8Array]",Cd="[object Uint8ClampedArray]",bd="[object Uint16Array]",xd="[object Uint32Array]",z={};z[ko]=z[Rp]=z[pd]=z[dd]=z[ed]=z[td]=z[md]=z[fd]=z[yd]=z[gd]=z[vd]=z[nd]=z[ad]=z[No]=z[sd]=z[id]=z[cd]=z[ld]=z[hd]=z[Cd]=z[bd]=z[xd]=!0,z[od]=z[Ko]=z[ud]=!1;function Be(e,t,o,r,a,s){var c,l=t&Zp,d=t&Jp,u=t&Xp;if(o&&(c=a?o(e,r,a,s):o(e)),c!==void 0)return c;if(!Hp(e))return e;var f=Gp(e);if(f){if(c=Vp(e),!l)return Mp(e,c)}else{var y=Bp(e),g=y==Ko||y==rd;if(zp(e))return Ep(e,l);if(y==No||y==ko||g&&!a){if(c=d||g?{}:qp(e),!l)return d?kp(e,Op(c,e)):jp(e,Ip(c,e))}else{if(!z[y])return a?e:{};c=Lp(e,y,l)}}s||(s=new _p);var S=s.get(e);if(S)return S;s.set(e,c),Wp(e)?e.forEach(function(x){c.add(Be(x,t,o,x,e,s))}):Up(e)&&e.forEach(function(x,v){c.set(v,Be(x,t,o,v,e,s))});var D=u?d?Np:Kp:d?Qp:Yp,C=f?void 0:D(e);return Pp(C||e,function(x,v){C&&(v=x,x=e[v]),Dp(c,v,Be(x,t,o,v,e,s))}),c}var Bo=Be,Sd=Bo,Ad=1,$d=4;function Td(e){return Sd(e,Ad|$d)}var Fd=Td;const re=be(Fd);function wd(e,t){for(var o=-1,r=e==null?0:e.length,a=Array(r);++o<r;)a[o]=t(e[o],o,e);return a}var Vo=wd,_d=me,Pd=ie,Dd="[object Symbol]";function Id(e){return typeof e=="symbol"||Pd(e)&&_d(e)==Dd}var xt=Id,Od=ce,Ed=xt,Md=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,jd=/^\w*$/;function kd(e,t){if(Od(e))return!1;var o=typeof e;return o=="number"||o=="symbol"||o=="boolean"||e==null||Ed(e)?!0:jd.test(e)||!Md.test(e)||t!=null&&e in Object(t)}var Kd=kd,Lo=eo,Nd="Expected a function";function St(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(Nd);var o=function(){var r=arguments,a=t?t.apply(this,r):r[0],s=o.cache;if(s.has(a))return s.get(a);var c=e.apply(this,r);return o.cache=s.set(a,c)||s,c};return o.cache=new(St.Cache||Lo),o}St.Cache=Lo;var Bd=St,Vd=Bd,Ld=500;function qd(e){var t=Vd(e,function(r){return o.size===Ld&&o.clear(),r}),o=t.cache;return t}var Gd=qd,zd=Gd,Ud=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Hd=/\\(\\)?/g,Wd=zd(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(Ud,function(o,r,a,s){t.push(a?s.replace(Hd,"$1"):r||o)}),t}),Yd=Wd,qo=xe,Qd=Vo,Zd=ce,Jd=xt,Xd=1/0,Go=qo?qo.prototype:void 0,zo=Go?Go.toString:void 0;function Uo(e){if(typeof e=="string")return e;if(Zd(e))return Qd(e,Uo)+"";if(Jd(e))return zo?zo.call(e):"";var t=e+"";return t=="0"&&1/e==-Xd?"-0":t}var Rd=Uo,em=Rd;function tm(e){return e==null?"":em(e)}var om=tm,rm=ce,nm=Kd,am=Yd,sm=om;function im(e,t){return rm(e)?e:nm(e,t)?[e]:am(sm(e))}var Ve=im;function cm(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}var lm=cm,um=xt,pm=1/0;function dm(e){if(typeof e=="string"||um(e))return e;var t=e+"";return t=="0"&&1/e==-pm?"-0":t}var At=dm,mm=Ve,fm=At;function ym(e,t){t=mm(t,e);for(var o=0,r=t.length;e!=null&&o<r;)e=e[fm(t[o++])];return o&&o==r?e:void 0}var gm=ym;function vm(e,t,o){var r=-1,a=e.length;t<0&&(t=-t>a?0:a+t),o=o>a?a:o,o<0&&(o+=a),a=t>o?0:o-t>>>0,t>>>=0;for(var s=Array(a);++r<a;)s[r]=e[r+t];return s}var hm=vm,Cm=gm,bm=hm;function xm(e,t){return t.length<2?e:Cm(e,bm(t,0,-1))}var Sm=xm,Am=Ve,$m=lm,Tm=Sm,Fm=At;function wm(e,t){return t=Am(t,e),e=Tm(e,t),e==null||delete e[Fm($m(t))]}var _m=wm,Pm=me,Dm=mt,Im=ie,Om="[object Object]",Em=Function.prototype,Mm=Object.prototype,Ho=Em.toString,jm=Mm.hasOwnProperty,km=Ho.call(Object);function Km(e){if(!Im(e)||Pm(e)!=Om)return!1;var t=Dm(e);if(t===null)return!0;var o=jm.call(t,"constructor")&&t.constructor;return typeof o=="function"&&o instanceof o&&Ho.call(o)==km}var Nm=Km,Bm=Nm;function Vm(e){return Bm(e)?void 0:e}var Lm=Vm,Wo=xe,qm=so,Gm=ce,Yo=Wo?Wo.isConcatSpreadable:void 0;function zm(e){return Gm(e)||qm(e)||!!(Yo&&e&&e[Yo])}var Um=zm,Hm=dt,Wm=Um;function Qo(e,t,o,r,a){var s=-1,c=e.length;for(o||(o=Wm),a||(a=[]);++s<c;){var l=e[s];t>0&&o(l)?t>1?Qo(l,t-1,o,r,a):Hm(a,l):r||(a[a.length]=l)}return a}var Ym=Qo,Qm=Ym;function Zm(e){var t=e==null?0:e.length;return t?Qm(e,1):[]}var Jm=Zm;function Xm(e,t,o){switch(o.length){case 0:return e.call(t);case 1:return e.call(t,o[0]);case 2:return e.call(t,o[0],o[1]);case 3:return e.call(t,o[0],o[1],o[2])}return e.apply(t,o)}var Rm=Xm,ef=Rm,Zo=Math.max;function tf(e,t,o){return t=Zo(t===void 0?e.length-1:t,0),function(){for(var r=arguments,a=-1,s=Zo(r.length-t,0),c=Array(s);++a<s;)c[a]=r[t+a];a=-1;for(var l=Array(t+1);++a<t;)l[a]=r[a];return l[t]=o(c),ef(e,this,l)}}var of=tf;function rf(e){return function(){return e}}var nf=rf;function af(e){return e}var sf=af,cf=nf,Jo=to,lf=sf,uf=Jo?function(e,t){return Jo(e,"toString",{configurable:!0,enumerable:!1,value:cf(t),writable:!0})}:lf,pf=uf,df=800,mf=16,ff=Date.now;function yf(e){var t=0,o=0;return function(){var r=ff(),a=mf-(r-o);if(o=r,a>0){if(++t>=df)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var gf=yf,vf=pf,hf=gf,Cf=hf(vf),bf=Cf,xf=Jm,Sf=of,Af=bf;function $f(e){return Af(Sf(e,void 0,xf),e+"")}var Tf=$f,Ff=Vo,wf=Bo,_f=_m,Pf=Ve,Df=Ae,If=Lm,Of=Tf,Ef=bo,Mf=1,jf=2,kf=4,Kf=Of(function(e,t){var o={};if(e==null)return o;var r=!1;t=Ff(t,function(s){return s=Pf(s,e),r||(r=s.length>1),s}),Df(e,Ef(e),o),r&&(o=wf(o,Mf|jf|kf,If));for(var a=t.length;a--;)_f(o,t[a]);return o}),Nf=Kf;const Le=be(Nf);var Bf=at,Vf=Ve,Lf=co,Xo=fe,qf=At;function Gf(e,t,o,r){if(!Xo(e))return e;t=Vf(t,e);for(var a=-1,s=t.length,c=s-1,l=e;l!=null&&++a<s;){var d=qf(t[a]),u=o;if(d==="__proto__"||d==="constructor"||d==="prototype")return e;if(a!=c){var f=l[d];u=r?r(f,d,l):void 0,u===void 0&&(u=Xo(f)?f:Lf(t[a+1])?[]:{})}Bf(l,d,u),l=l[d]}return e}var zf=Gf,Uf=zf;function Hf(e,t,o){return e==null?e:Uf(e,t,o)}var Wf=Hf;const Ro=be(Wf),Yf=({schema:e,record:t,parentRecord:o,compile:r,getContainer:a})=>{if(!e)return;const s=re(e.properties);return s!=null&&s.name&&(s.name["x-disabled"]=!0),e.hasDefaultValue===!0&&(s.defaultValue=re(e.default.uiSchema)||{},s.defaultValue.required=!1,s.defaultValue.title=r('{{ t("Default value") }}'),s.defaultValue["x-decorator"]="FormItem",s.defaultValue["x-reactions"]={dependencies:["uiSchema.x-component-props.gmt","uiSchema.x-component-props.showTime","uiSchema.x-component-props.dateFormat","uiSchema.x-component-props.timeFormat"],fulfill:{state:{componentProps:{gmt:"{{$deps[0]}}",showTime:"{{$deps[1]}}",dateFormat:"{{$deps[2]}}",timeFormat:"{{$deps[3]}}"}}}},s.defaultValue["x-disabled"]=!0),{type:"object",properties:{[L.uid()]:{type:"void","x-component":"Action.Drawer","x-component-props":{getContainer:"{{ getContainer }}"},"x-decorator":"Form","x-decorator-props":{useValues(c){return n.useRequest(()=>Promise.resolve({data:re(Le(e.default,["uiSchema.rawTitle"]))}),c)}},title:`${r((o==null?void 0:o.title)||(o==null?void 0:o.name))} - ${r('{{ t("Edit field") }}')}`,properties:k($({summary:{type:"void","x-component":"FieldSummary","x-component-props":{schemaKey:e.name}}},s),{description:{type:"string",title:'{{t("Description")}}',"x-decorator":"FormItem","x-component":"Input.TextArea"},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{action1:{title:'{{ t("Cancel") }}',"x-component":"Action","x-component-props":{useAction:"{{ useCancelAction }}"}},action2:{title:'{{ t("Submit") }}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ useUpdateCollectionField }}"}}}}})}}}},Qf=()=>{const e=A.useForm(),t=n.useAPIClient(),o=n.useActionContext(),{refresh:r}=n.useResourceActionContext(),{targetCollection:a}=Tt(),{name:s}=W.useParams(),{name:c}=n.useRecord(),l=n.useDataSourceManager();return{run(){return O(this,null,function*(){yield e.submit();const u=re(e.values);u.autoCreateReverseField||delete u.reverseField,delete u.autoCreateReverseField,yield t.request({url:`dataSourcesCollections/${s}.${a.name}/fields:update?filterByTk=${c}`,method:"post",data:u}),o.setVisible(!1),l.getDataSource(s).reload(),yield e.reset(),r()})}}},Zf=e=>{const t=n.useRecord(),o=n.useCollectionParentRecordData();return i.jsx(Jf,$({item:t,parentItem:o},e))},Jf=e=>{const w=e,{scope:t,getContainer:o,item:r,parentItem:a,children:s}=w,c=et(w,["scope","getContainer","item","parentItem","children"]),{getInterface:l,collections:d,getCollection:u}=n.useCollectionManager_deprecated(),{data:{database:f}}=n.useCurrentAppInfo(),[y,g]=p.useState(!1),[S,D]=p.useState({}),C=n.useAPIClient(),{t:x}=V.useTranslation(),v=n.useCompile(),{name:I}=W.useParams(),b=T=>(f==null?void 0:f.dialect)===T,m=p.useMemo(()=>d.map(T=>({label:v(T.title),value:T.name})),[]),P=p.useMemo(()=>{var T,j;return(r==null?void 0:r.fields)||((j=(T=u(r.collectionName,I))==null?void 0:T.options)==null?void 0:j.fields.filter(F=>F.interface==="select").map(F=>{var _;return{value:F.name,label:v((_=F.uiSchema)==null?void 0:_.title)}}))},[r.name]);return i.jsx(n.RecordProvider,{record:r,parent:a,children:i.jsxs(n.ActionContextProvider,{value:{visible:y,setVisible:g},children:[i.jsx("a",k($({},c),{onClick:()=>O(this,null,function*(){var K,B,Q;const{data:T}=yield C.request({url:`dataSourcesCollections/${I}.${a.name}/fields:get?filterByTk=${r.name}`,params:{appends:["reverseField"]}}),j=l((K=T==null?void 0:T.data)==null?void 0:K.interface),F=re(T==null?void 0:T.data)||{};F!=null&&F.reverseField||(F.autoCreateReverseField=!1,F.reverseField=(B=j==null?void 0:j.default)==null?void 0:B.reverseField,Ro(F.reverseField,"name",`f_${L.uid()}`),Ro(F.reverseField,"uiSchema.title",(Q=r.__parent)==null?void 0:Q.title));const _=Yf({schema:k($({},j),{default:F}),record:r,parentRecord:a,compile:v,getContainer:o});D(_),g(!0)}),children:s||x("Edit")})),i.jsx(n.SchemaComponent,{schema:S,components:{ArrayTable:pe.ArrayTable},scope:k($({getContainer:o,useUpdateCollectionField:Qf,useCancelAction:n.useCancelAction,showReverseFieldConfig:!1,collections:m,isDialect:b,scopeKeyOptions:P,disabledJSONB:!0},t),{createOnly:!1,createMainOnly:!1})})]})})},Xf=A.observer(e=>{const{value:t,handleFieldChange:o,onChange:r}=e,a=n.useRecord(),s=a;return s!=null&&s.possibleTypes?i.jsx(h.Select,{defaultValue:t,popupMatchSelectWidth:!1,style:{width:"100%"},options:(s==null?void 0:s.possibleTypes.map(c=>({label:c,value:c})))||[],onChange:c=>{r==null||r(c),o(k($({},s),{type:c}),a.name)}}):i.jsx(h.Tag,{children:t})},{displayName:"FieldType"}),Rf=()=>{const{t:e}=V.useTranslation(),{unsupportedFields:t}=n.useRecord(),o=[{title:e("Field name"),dataIndex:"name",key:"name"},{title:e("Field database type",{ns:N}),dataIndex:"rawType",key:"rawType"}];return(t==null?void 0:t.length)>0&&i.jsxs(i.Fragment,{children:[i.jsx(h.Divider,{plain:!0,orientation:"left",orientationMargin:"0",children:i.jsx("h3",{children:e("Unknown field type",{ns:N})})}),i.jsx("div",{style:{marginBottom:"15px"},children:e("The following field types are not compatible and do not support output and display",{ns:N})}),i.jsx(h.Table,{columns:o,dataSource:t,pagination:!1})]})},$t=p.createContext({refreshRM:()=>{},titleField:null,targetCollection:null});$t.displayName="RemoteCollectionContext";const Tt=()=>p.useContext($t),er=()=>{const e=A.useField(),t=p.useMemo(()=>ue.createForm(),[]),o=n.useAttach(t.createArrayField(k($({},e.props),{basePath:""}))),{t:r}=V.useTranslation(),{name:a}=W.useParams(),s=n.useAPIClient(),c=n.useCompile(),l=p.useContext(n.ResourceActionContext),d=n.useResourceContext(),{targetKey:u}=d||{},f=n.useRecord(),{[u]:y,titleField:g,name:S}=f,[D,C]=p.useState(g),x=w=>{const T=p.useContext(n.ResourceActionContext),j=A.useField();return p.useEffect(()=>{T.loading||(w==null||w.onSuccess(T.data),j.componentProps.dragSort=!!T.dragSort)},[T.loading]),T},v={association:{sourceKey:"name",targetKey:"name"},dragSort:!1,collection:Br,request:{url:`dataSourcesCollections/${a}.${S}/fields:list`,params:{paginate:!1,filter:{$or:[{"interface.$not":null},{"options.source.$notEmpty":!0}]},sort:["sort"]}}},I=n.useDataSourceManager(),b=(w,T)=>O(this,null,function*(){yield s.request({url:`dataSourcesCollections/${a}.${S}/fields:update?filterByTk=${T}`,method:"post",data:w}),I.getDataSource(a).reload(),h.message.success(r("Saved successfully"))}),m=()=>({filterByTk:y,titleField:D,dataSourceKey:a,setTitleField:C}),P=(w,T,j)=>O(this,null,function*(){var Q,H;const{targetScope:F}=T,_=((Q=w.props)==null?void 0:Q.name)==="inherits",{data:K}=yield s.request({url:`dataSources/${a}/collections:list`,params:{paginate:!1,appends:["fields"],sort:["sort"]}});return((H=K==null?void 0:K.data)==null?void 0:H.filter(E=>{var ne;if(j!=null&&j.includes(E.template)||E.autoCreate&&E.isThrough||_&&E.template==="view")return!1;const G=!(F!=null&&F.template)||F.template.includes(E.template),oe=!(F!=null&&F[(ne=w.props)==null?void 0:ne.name])||F[w.props.name].includes(E.name);return G&&oe})).map(E=>({label:c(E.title||E.name),value:E.name}))});return i.jsxs($t.Provider,{value:{refreshRM:()=>{l.refresh()},titleField:D,targetCollection:f},children:[i.jsx(n.ResourceActionProvider,k($({},v),{children:i.jsx(A.FormContext.Provider,{value:t,children:i.jsx(A.FieldContext.Provider,{value:o,children:i.jsx(n.SchemaComponentOptions,{components:{TitleField:Lr,CollectionFieldInterfaceSelect:qr,AddCollectionField:Qr,SourceCollection:Ur,TargetKey:zr,SourceKey:Gr,FieldTitleInput:Jr,EditCollectionField:Zf,Select:n.Select,FieldType:Xf,ForeignKey:qt,ThroughCollection:Hr},inherit:!0,scope:{useDataSource:x,useTitleFieldProps:m,handleFieldChange:b,useDestroyActionAndRefreshCM:tn,useBulkDestroyActionAndRefreshCM:en,loadCollections:P},children:i.jsx(A.RecursionField,{schema:Vr,onlyRenderProperties:!0})})})})})),i.jsx(Rf,{})]})},ey=(e,t,o,r)=>{if(!e)return;const a=re(e.configurableProperties)||{title:{"x-component":"CollectionField","x-decorator":"FormItem"},name:{"x-component":"CollectionField","x-decorator":"FormItem"}};return e.hasDefaultValue===!0&&(a.defaultValue=re(e.default.uiSchema),a.defaultValue.title=o('{{ t("Default value") }}'),a.defaultValue["x-decorator"]="FormItem"),{type:"object",properties:{[L.uid()]:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{useValues:"{{ useValuesFromRecord }}"},title:'{{ t("Edit collection") }}',properties:k($({},Le(a,"category","inherits","moreOptions")),{footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{action1:{title:'{{ t("Cancel") }}',"x-component":"Action","x-component-props":{useAction:"{{ useCancelAction }}"}},action2:{title:'{{ t("Submit") }}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ useUpdateCollectionActionAndRefreshCM }}"}}}}})}}}},ty=e=>{const t=n.useRecord(),o=n.useRequest(()=>{var a;return Promise.resolve({data:k($({},Le(re(t),["__parent","__collectionName"])),{category:(a=t==null?void 0:t.category)==null?void 0:a.map(s=>s.id)})})},k($({},e),{manual:!0})),r=n.useActionContext();return p.useEffect(()=>{r.visible&&o.run()},[r.visible]),o},oy=e=>{const{refreshCM:t}=n.useCollectionManager_deprecated(),o=A.useForm(),r=n.useActionContext(),{name:a}=W.useParams(),{refresh:s}=n.useResourceActionContext(),{resource:c,targetKey:l}=n.useResourceContext(),{[l]:d}=n.useRecord(),u=n.useAPIClient();return{run(){return O(this,null,function*(){yield o.submit(),yield u.request({url:`dataSources/${a}/collections:update?filterByTk=${d}`,method:"post",data:$({},Le(o.values,["fields","autoGenId","createdAt","updatedAt","createdBy","updatedBy","sortable"]))}),r.setVisible(!1),yield o.reset(),s(),yield t()})}}},ry=e=>{const t=n.useRecord();return i.jsx(ny,$({item:t},e))},ny=e=>{const S=e,{scope:t,getContainer:o,item:r,children:a}=S,s=et(S,["scope","getContainer","item","children"]),{getTemplate:c}=n.useCollectionManager_deprecated(),[l,d]=p.useState(!1),[u,f]=p.useState({}),{t:y}=V.useTranslation(),g=n.useCompile();return i.jsx(n.RecordProvider,{record:r,children:i.jsxs(n.ActionContextProvider,{value:{visible:l,setVisible:d},children:[i.jsx("a",k($({},s),{onClick:()=>O(this,null,function*(){const D=c(r.template),C=ey($({},D),r,g);f(C),d(!0)}),children:a||y("Edit")})),i.jsx(n.SchemaComponent,{schema:u,components:{ArrayTable:pe.ArrayTable},scope:$({getContainer:o,useValuesFromRecord:ty,useUpdateCollectionActionAndRefreshCM:oy,useCancelAction:n.useCancelAction,createOnly:!1},t)})]})})},ay=(e,t)=>(o,r)=>{o.loading=!0,e(o,r,t).then(tt.action.bound(a=>{o.dataSource=a,o.loading=!1})).catch(a=>console.log(a))},sy=()=>{const[e,t]=p.useState([]);return[e,t]},iy=()=>{const e=n.useRecord(),t=A.useForm();return{run(){return O(this,null,function*(){var a,s,c;const r=(c=(s=(a=t.values)==null?void 0:a.children)==null?void 0:s.slice)==null?void 0:c.call(s);t.setValuesIn("children",r.filter(l=>l.name!==e.name))})}}},cy=()=>({run(){return O(this,null,function*(){})}}),ly=e=>`${e||""}${L.uid()}`,uy=()=>{const{t:e}=V.useTranslation(),{interfaces:t}=n.useCollectionManager_deprecated(),{data:{database:o}}=n.useCurrentAppInfo(),r=n.useDataSourceManager(),a=p.useContext(n.SchemaComponentContext),{name:s}=W.useParams(),c=p.useContext(n.CollectionCategroriesContext),l=n.useAPIClient(),d=l.resource("dbViews"),u=n.useCompile(),f=()=>O(this,null,function*(){return c.data.map(C=>({label:u(C.name),value:C.id}))}),y=()=>O(this,null,function*(){return d.list().then(({data:C})=>{var x;return(x=C==null?void 0:C.data)==null?void 0:x.map(v=>{const I=v.schema;return{label:I?`${I}.${u(v.name)}`:v.name,value:I?`${I}_${v.name}`:v.name}})})}),g=()=>O(this,null,function*(){return l.resource("storages").list().then(({data:C})=>{var x;return(x=C==null?void 0:C.data)==null?void 0:x.map(v=>({label:e(u(v.title)),value:v.name}))})}),S=()=>{const C=p.useContext(n.ResourceActionContext),x=n.useAPIClient(),v=A.useField(),{name:I}=W.useParams();v.data=v.data||{};const{setDataSource:b,dataSource:m}=p.useContext(Pe);return{onClick(){return O(this,null,function*(){var w,T,j;v.data.loading=!0;try{const{data:F}=yield x.request({url:`dataSources:refresh?filterByTk=${I}&clientStatus=${(m==null?void 0:m.status)||"loaded"}`,method:"post"});v.data.loading=!1,b(F==null?void 0:F.data),((w=F==null?void 0:F.data)==null?void 0:w.status)==="reloading"?h.message.warning(e("Data source synchronization in progress")):((T=F==null?void 0:F.data)==null?void 0:T.status)==="loaded"&&(h.message.success(e("Data source synchronization successful")),(j=C==null?void 0:C.refresh)==null||j.call(C)),yield r.getDataSource(I).reload()}catch(F){v.data.loading=!1}})}}},D=p.useMemo(()=>Nr(s),[s]);return i.jsx(n.SchemaComponentContext.Provider,{value:k($({},a),{designable:!1}),children:i.jsx(n.SchemaComponent,{schema:D,components:{EditCollection:ry,AddSubFieldAction:n.AddSubFieldAction,EditSubFieldAction:n.EditSubFieldAction,FieldSummary:n.FieldSummary,TemplateSummay:n.TemplateSummary,CollectionFields:er},scope:{useRefreshActionProps:S,useDestroySubField:iy,useBulkDestroySubField:cy,useSelectedRowKeys:sy,useAsyncDataSource:ay,loadCategories:f,loadDBViews:y,loadStorages:g,useNewId:ly,useCancelAction:n.useCancelAction,interfaces:t,enableInherits:(o==null?void 0:o.dialect)==="postgres",isPG:(o==null?void 0:o.dialect)==="postgres"}})})};var tr={exports:{}};/*!
2
2
  Copyright (c) 2018 Jed Watson.
3
3
  Licensed under the MIT License (MIT), see
4
4
  http://jedwatson.github.io/classnames
@@ -1,7 +1,7 @@
1
1
  module.exports = {
2
- "@nocobase/client": "0.20.0-alpha.7",
2
+ "@nocobase/client": "0.20.0-alpha.9",
3
3
  "react": "18.2.0",
4
- "@nocobase/server": "0.20.0-alpha.7",
4
+ "@nocobase/server": "0.20.0-alpha.9",
5
5
  "lodash": "4.17.21",
6
6
  "@ant-design/icons": "5.2.6",
7
7
  "antd": "5.12.8",
@@ -10,10 +10,10 @@ module.exports = {
10
10
  "react-i18next": "11.18.6",
11
11
  "@formily/react": "2.3.0",
12
12
  "@emotion/css": "11.11.2",
13
- "@nocobase/database": "0.20.0-alpha.7",
14
- "@nocobase/utils": "0.20.0-alpha.7",
15
- "@nocobase/plugin-acl": "0.20.0-alpha.7",
16
- "@nocobase/acl": "0.20.0-alpha.7",
13
+ "@nocobase/database": "0.20.0-alpha.9",
14
+ "@nocobase/utils": "0.20.0-alpha.9",
15
+ "@nocobase/plugin-acl": "0.20.0-alpha.9",
16
+ "@nocobase/acl": "0.20.0-alpha.9",
17
17
  "sequelize": "6.35.2",
18
18
  "@formily/antd-v5": "1.1.9",
19
19
  "@formily/core": "2.3.0",
@@ -399,7 +399,15 @@ class PluginDataSourceManagerServer extends import_server.Plugin {
399
399
  });
400
400
  this.app.acl.registerSnippet({
401
401
  name: `pm.${this.name}`,
402
- actions: ["dataSources:*", "roles.dataSourceResources"]
402
+ actions: [
403
+ "dataSources:*",
404
+ "roles.dataSourceResources",
405
+ "collections:*",
406
+ "collections.fields:*",
407
+ "dbViews:*",
408
+ "collectionCategories:*",
409
+ "sqlCollection:*"
410
+ ]
403
411
  });
404
412
  this.app.acl.allow("dataSources", "listEnabled", "loggedIn");
405
413
  this.app.acl.allow("dataSources", "get", "loggedIn");
@@ -46,7 +46,7 @@ const rolesRemoteCollectionsResourcer = {
46
46
  const { dataSourceKey } = filter;
47
47
  const dataSource = ctx.app.dataSourceManager.dataSources.get(dataSourceKey);
48
48
  const collectionRepository = new import_full_data_repository.FullDataRepository(dataSource.collectionManager.getCollections());
49
- const [collections, count] = await collectionRepository.findAndCount();
49
+ const [collections] = await collectionRepository.findAndCount();
50
50
  const filterItem = import_lodash.default.get(filter, "$and");
51
51
  const filterByTitle = filterItem == null ? void 0 : filterItem.find((item) => item.title);
52
52
  const filterByName = filterItem == null ? void 0 : filterItem.find((item) => item.name);
@@ -60,11 +60,12 @@ const rolesRemoteCollectionsResourcer = {
60
60
  });
61
61
  const roleResourcesNames = roleResources.map((roleResource) => roleResource.get("name"));
62
62
  const roleResourceActionResourceNames = roleResources.filter((roleResources2) => roleResources2.get("usingActionsConfig")).map((roleResources2) => roleResources2.get("name"));
63
+ const filtedCollections = collections.filter((collection) => {
64
+ var _a2;
65
+ return (!filterTitle || ((_a2 = import_lodash.default.get(collection, "options.title")) == null ? void 0 : _a2.toLowerCase().includes(filterTitle))) && (!filterName || collection.options.name.toLowerCase().includes(filterName));
66
+ });
63
67
  const items = import_lodash.default.sortBy(
64
- collections.filter((collection) => {
65
- var _a2;
66
- return (!filterTitle || ((_a2 = import_lodash.default.get(collection, "options.title")) == null ? void 0 : _a2.toLowerCase().includes(filterTitle))) && (!filterName || collection.options.name.toLowerCase().includes(filterName));
67
- }).map((collection, i) => {
68
+ filtedCollections.map((collection, i) => {
68
69
  var _a2;
69
70
  const collectionName = collection.options.name;
70
71
  const exists = roleResourcesNames.includes(collectionName);
@@ -85,11 +86,11 @@ const rolesRemoteCollectionsResourcer = {
85
86
  "name"
86
87
  );
87
88
  ctx.body = {
88
- count,
89
+ count: filtedCollections.length,
89
90
  rows: items,
90
91
  page: Number(page),
91
92
  pageSize: Number(pageSize),
92
- totalPage: totalPage(count, pageSize)
93
+ totalPage: totalPage(filtedCollections.length, pageSize)
93
94
  };
94
95
  await next();
95
96
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nocobase/plugin-data-source-manager",
3
- "version": "0.20.0-alpha.7",
3
+ "version": "0.20.0-alpha.9",
4
4
  "main": "dist/server/index.js",
5
5
  "displayName": "Data source manager",
6
6
  "displayName.zh-CN": "数据源管理",
@@ -16,5 +16,5 @@
16
16
  "keywords": [
17
17
  "Data model tools"
18
18
  ],
19
- "gitHead": "78900f33a0112255c408799d8bbf0c9b513147cd"
19
+ "gitHead": "5473d9039cfdb649a8c8c625edefc9a3ac464be5"
20
20
  }