@nocobase/plugin-data-source-manager 0.20.0-alpha.8 → 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.
package/dist/client/index.js
CHANGED
|
@@ -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
|
package/dist/externalVersion.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
module.exports = {
|
|
2
|
-
"@nocobase/client": "0.20.0-alpha.
|
|
2
|
+
"@nocobase/client": "0.20.0-alpha.9",
|
|
3
3
|
"react": "18.2.0",
|
|
4
|
-
"@nocobase/server": "0.20.0-alpha.
|
|
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.
|
|
14
|
-
"@nocobase/utils": "0.20.0-alpha.
|
|
15
|
-
"@nocobase/plugin-acl": "0.20.0-alpha.
|
|
16
|
-
"@nocobase/acl": "0.20.0-alpha.
|
|
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",
|
|
@@ -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
|
|
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
|
-
|
|
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(
|
|
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.
|
|
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": "
|
|
19
|
+
"gitHead": "5473d9039cfdb649a8c8c625edefc9a3ac464be5"
|
|
20
20
|
}
|