@nocobase/plugin-data-source-manager 0.21.0-alpha.9 → 1.0.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,18 +1,18 @@
1
- (function(j,a){typeof exports=="object"&&typeof module!="undefined"?a(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"],a):(j=typeof globalThis!="undefined"?globalThis:j||self,a(j["@nocobase/plugin-data-source-manager"]={},j.jsxRuntime,j["@nocobase/client"],j.react,j["@formily/react"],j.antd,j["react-i18next"],j["@ant-design/icons"],j["react-router-dom"],j["@formily/shared"],j["@formily/reactive"],j["@formily/core"],j["@formily/antd-v5"],j.lodash,j["@dnd-kit/core"],j["@emotion/css"],j["antd-style"]))})(this,function(j,a,r,d,T,x,V,Y,U,B,pt,me,re,J,Q,ye,Qo){"use strict";var Vf=Object.defineProperty,Bf=Object.defineProperties;var Lf=Object.getOwnPropertyDescriptors;var Ke=Object.getOwnPropertySymbols;var zo=Object.prototype.hasOwnProperty,Ho=Object.prototype.propertyIsEnumerable;var lt=(j,a,r)=>a in j?Vf(j,a,{enumerable:!0,configurable:!0,writable:!0,value:r}):j[a]=r,A=(j,a)=>{for(var r in a||(a={}))zo.call(a,r)&&lt(j,r,a[r]);if(Ke)for(var r of Ke(a))Ho.call(a,r)&&lt(j,r,a[r]);return j},N=(j,a)=>Bf(j,Lf(a));var ut=(j,a)=>{var r={};for(var d in j)zo.call(j,d)&&a.indexOf(d)<0&&(r[d]=j[d]);if(j!=null&&Ke)for(var d of Ke(j))a.indexOf(d)<0&&Ho.call(j,d)&&(r[d]=j[d]);return r};var Wo=(j,a,r)=>(lt(j,typeof a!="symbol"?a+"":a,r),r);var D=(j,a,r)=>new Promise((d,T)=>{var x=U=>{try{Y(r.next(U))}catch(B){T(B)}},V=U=>{try{Y(r.throw(U))}catch(B){T(B)}},Y=U=>U.done?d(U.value):Promise.resolve(U.value).then(x,V);Y((r=r.apply(j,a)).next())});const E="data-source-manager";function Yo(e,t={}){return r.i18n.t(e,N(A({},t),{ns:E}))}const Jo=e=>{const t=T.useForm(),o=r.useActionContext(),n=r.useAPIClient(),{t:s}=V.useTranslation(),i=T.useField();return i.data=i.data||{},{run(){return D(this,null,function*(){yield t.submit();try{i.data.loading=!0;const{data:l}=yield n.resource("databaseServers").create({values:A({},t.values)});i.data.loading=!1,o.setVisible(!1),yield t.reset(),e==null||e(l==null?void 0:l.data),x.message.success(s("Saved successfully"))}catch(l){i.data.loading=!1,console.log(l)}})}}},dt=()=>{const e=T.useForm(),t=r.useAPIClient(),{t:o}=V.useTranslation(),n=T.useField();return n.data=n.data||{},{run(){return D(this,null,function*(){yield e.submit();try{n.data.loading=!0,yield t.resource("dataSources").testConnection({values:A({},e.values)}),n.data.loading=!1,x.message.success(o("Connection successful",{ns:E}))}catch(i){n.data.loading=!1,console.log(i)}})}}},Zo=Object.freeze(Object.defineProperty({__proto__:null,useCreateDatabaseServer:Jo,useTestConnectionAction:dt},Symbol.toStringTag,{value:"Module"})),Se=d.createContext(null);Se.displayName="DataSourceContext";const Xo=e=>{const[t,o]=d.useState(null);return a.jsx(Se.Provider,{value:{dataSource:t,setDataSource:o},children:a.jsx(r.SchemaComponentOptions,{scope:Zo,components:{},children:e.children})})};class mt extends r.DataSource{getDataSource(){return D(this,null,function*(){return(yield this.app.apiClient.request({url:`dataSources:get/${this.key}`,params:{appends:["collections"]}})).data.data})}}const yt=[{value:"loading",label:`{{t("Loading",{ns:"${E}"})}}`,color:"orange"},{value:"loading-failed",label:`{{t("Failed",{ns:"${E}"})}}`,color:"red"},{value:"loaded",label:`{{t("Loaded",{ns:"${E}"})}}`,color:"green"},{value:"reloading",label:`{{t("Reloading",{ns:"${E}"})}}`,color:"orange"}],ft={name:"collections-"+B.uid(),fields:[{type:"string",name:"key",interface:"input",uiSchema:{title:`{{t("Data source name",{ ns: "${E}" })}}`,type:"string","x-component":"Input",required:!0}},{type:"string",name:"displayName",interface:"input",uiSchema:{title:`{{t("Data source display name",{ ns: "${E}" })}}`,type:"string","x-component":"Input",required:!0}},{type:"string",name:"type",interface:"select",uiSchema:{title:`{{t("Type", { ns: "${E}" })}}`,type:"string","x-component":"Select",enum:"{{types}}"}},{type:"string",name:"status",interface:"select",uiSchema:{title:`{{t("Status", { ns: "${E}" })}}`,type:"string","x-component":"Select",enum:yt}},{type:"boolean",name:"enabled",uiSchema:{type:"boolean",title:'{{t("Enabled")}}',"x-component":"Checkbox"}}]},Ro={type:"object",properties:{[B.uid()]:{type:"void","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:ft,resourceName:"dataSources",request:{resource:"dataSources",action:"list",params:{pageSize:50,appends:[]}}},"x-component":"CollectionProvider_deprecated","x-component-props":{collection:ft},properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:16}},properties:{refresh:{type:"void",title:'{{ t("Refresh") }}',"x-component":"Action","x-use-component-props":"useRefreshActionProps","x-component-props":{icon:"ReloadOutlined"}},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)}}"]}}}}}}}}}}},gt=()=>{const e=r.useApp(),{name:t}=U.useParams(),o=r.useCompile(),n=r.useDataSourceManager(),{displayName:s}=n.getDataSource(t)||{},{dataSource:i}=d.useContext(Se),c=d.useMemo(()=>i||n.getDataSource(t),[i,t]),l=d.useMemo(()=>{const p=c==null?void 0:c.status,u=yt.find(g=>g.value===p),y=[{title:a.jsx(U.Link,{to:e.pluginSettingsManager.getRoutePath(E),children:Yo("Data source manager")})}];return c&&y.push({title:a.jsxs(x.Space,{children:[a.jsx("span",{children:o(s)}),p&&a.jsx(x.Tag,{color:u==null?void 0:u.color,children:o(u==null?void 0:u.label)},p)]})}),y},[c]);return a.jsx(x.Breadcrumb,{separator:a.jsx(Y.RightOutlined,{}),items:l})},ht=e=>T.Schema.compile(e,{t:r.i18n.t}),en={name:"database-"+B.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"}}]},tn=e=>({type:"object",properties:{[B.uid()]:{type:"void","x-collection":"dataSources","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:en,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"}}}}}),Ne={type:"object",properties:{[B.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-use-component-props":"cm.useFilterActionProps","x-component-props":{icon:"FilterOutlined"},"x-align":"left"},refresh:{type:"void",title:'{{ t("Refresh") }}',"x-component":"Action","x-use-component-props":"useRefreshActionProps","x-component-props":{icon:"ReloadOutlined"}},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}}},[B.uid()]:{type:"void","x-uid":"input","x-component":"Table.Void","x-component-props":{rowKey:"name",rowSelection:{type:"checkbox"},useDataSource:"{{cm.useDataSourceFromRAC }}",useAction(){const e=r.useAPIClient(),{t}=V.useTranslation();return{move(n,s){return D(this,null,function*(){yield e.resource("dataSources").move({sourceId:n.key,targetId:s.key}),x.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],n=e.form.getValuesIn(`${o}.${t}`);n&&(e.title=`${ht(n.title||n.name)} - ${ht('{{ 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"}}}}}}}}}},on={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: "${E}" })}}`,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"}}]},nn={type:"object",properties:{[B.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"}}}},[B.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: "${E}" })}}`,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-use-component-props":"useTitleFieldProps","x-read-pretty":!1}}},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]) }}"}}}]}}}}}}}}},rn=r.withDynamicSchemaProps(e=>{const{t}=V.useTranslation(),{isTitleField:o}=r.useCollectionManager_deprecated(),[n,s]=d.useState(null),{setTitleField:i,filterByTk:c,dataSourceKey:l}=r.useProps(e),p=r.useRecord(),u=r.useAPIClient(),{refreshRM:y,titleField:g}=it(),C=I=>D(this,null,function*(){s(p),yield u.request({url:`dataSources/${l}/collections:update?filterByTk=${c}`,method:"post",data:{titleField:I?p.name:"id"}}),x.message.success(t("Saved successfully")),y(),i(I?p.name:"id"),s(null)});return o(p)?a.jsx(x.Tooltip,{title:t("Default title for each record"),placement:"right",overlayInnerStyle:{textAlign:"center"},children:a.jsx(x.Switch,{"aria-label":`switch-title-field-${p==null?void 0:p.name}`,size:"small",loading:(p==null?void 0:p.name)===(n==null?void 0:n.name),checked:(p==null?void 0:p.name)===(g||"id"),onChange:C})}):null},{displayName:"TitleField"}),Ct=(e,t)=>{const o=[];return e.forEach(n=>{const s=n.children.filter(i=>{var c;return(c=i==null?void 0:i.availableTypes)==null?void 0:c.includes(t)});o.push({label:n.label,key:n.key,children:s})}),o.filter(n=>t==="sort"?n.key==="advanced":n.children.length>0)},an=(e,t)=>t==null?void 0:t.some(o=>{var n,s;return(s=(n=o.children)==null?void 0:n.some)==null?void 0:s.call(n,i=>i.name===e)}),sn=T.observer(e=>{var b,h,f;const{value:t,handleFieldChange:o}=e,n=r.useRecord(),{getInterface:s}=r.useCollectionManager_deprecated(),i=r.useCompile(),c=r.useFieldInterfaceOptions(),l=Ct(c,n.type),p=T.useForm(),u=T.useField(),[y,g]=d.useState(t),[C,I]=d.useState(l),$=(h=(b=Object.values(p.values))==null?void 0:b[0])==null?void 0:h[u.index],S=($==null?void 0:$.type)||n.type;return d.useEffect(()=>{var m,v,F,M,O,k,K,w,P,_,W,z;if(C.length===1&&((v=(m=C[0])==null?void 0:m.children)==null?void 0:v.length)===1){const G=(O=(M=(F=C[0])==null?void 0:F.children)==null?void 0:M[0])==null?void 0:O.name;if(G!==y){const H=s(G);o({interface:G,uiSchema:A({title:(k=n==null?void 0:n.uiSchema)==null?void 0:k.title},(K=H==null?void 0:H.default)==null?void 0:K.uiSchema)},n.name,!1),g(G)}}else if(y&&!an(y,C)){const G=(_=(P=(w=C[0])==null?void 0:w.children)==null?void 0:P[0])==null?void 0:_.name,H=s(G);o({interface:G,uiSchema:A({title:(W=n==null?void 0:n.uiSchema)==null?void 0:W.title},(z=H==null?void 0:H.default)==null?void 0:z.uiSchema)},n.name,!1),g(G)}},[C]),d.useEffect(()=>{var m,v;if(n!=null&&n.possibleTypes){const F=(v=(m=Object.values(p.values))==null?void 0:m[0])==null?void 0:v[u.index],M=(F==null?void 0:F.type)||n.type,O=Ct(c,M);I(O)}},[S]),["oho","obo","o2m","m2o","m2m"].includes(n.interface)?a.jsx(x.Tag,{children:i((f=c.find(m=>m.key==="relation").children.find(m=>m.name===t))==null?void 0:f.label)},t):a.jsx(x.Select,{"aria-label":`field-interface-${n==null?void 0:n.type}`,role:"button",value:y,style:{width:"100%"},popupMatchSelectWidth:!1,onChange:m=>{var F,M;const v=s(m);o({interface:m,uiSchema:A({title:(F=n==null?void 0:n.uiSchema)==null?void 0:F.title},(M=v==null?void 0:v.default)==null?void 0:M.uiSchema)},n.name),g(m)},children:C.map(m=>a.jsx(x.Select.OptGroup,{label:i(m.label),children:m.children.map(v=>a.jsx(x.Select.Option,{value:v.name,children:i(v.label)},v.name))},m.key))})},{displayName:"CollectionFieldInterfaceSelect"}),Ae=["string","bigInt","integer","uuid","uid"],cn=T.observer(e=>{var u,y;const{name:t}=U.useParams(),{collectionName:o,sourceKey:n,name:s}=r.useRecord(),i=T.useField(),c=r.useCompile(),{getCollection:l}=r.useCollectionManager_deprecated(),p=(u=l(o||s,t).fields)==null?void 0:u.filter(g=>g.primaryKey||g.unique).map(g=>{var C;return{value:g.name,label:c(((C=g.uiSchema)==null?void 0:C.title)||g.title||g.name)}});return d.useEffect(()=>{var g;i.initialValue=((g=p==null?void 0:p[0])==null?void 0:g.value)||n},[]),a.jsx("div",{children:a.jsx(x.Select,{disabled:n,options:p,defaultValue:((y=p==null?void 0:p[0])==null?void 0:y.value)||n,onChange:e==null?void 0:e.onChange,showSearch:!0})})},{displayName:"SourceKey"}),vt=T.observer(e=>{const{disabled:t}=e,o=r.useAPIClient(),[n,s]=d.useState([]),{name:i}=U.useParams(),c=r.useRecord(),l=T.useField(),{collectionName:p,target:u,type:y,through:g,name:C}=c,I=c[l.props.name],{getCollection:$}=r.useCollectionManager_deprecated(),S=r.useCompile(),b=T.useForm(),[h,f]=d.useState(I);return d.useEffect(()=>{var F;l.initialValue=null;const m=["belongsTo"].includes(y)?p:["belongsToMany"].includes(y)?g:u,v=(F=$(m,i))==null?void 0:F.fields;if(v){const M=v==null?void 0:v.filter(O=>Ae.includes(O.type)).map(O=>{var k;return{value:O.name,label:S(((k=O.uiSchema)==null?void 0:k.title)||O.title||O.name)}});if(s(M),I){const O=M.find(k=>k.value===I);f((O==null?void 0:O.label)||I)}}},[y]),d.useEffect(()=>{f(I)},[I]),a.jsx("div",{children:a.jsx(x.Select,{disabled:t,value:h,options:n,showSearch:!0,onDropdownVisibleChange:m=>D(this,null,function*(){var k;const{target:v,type:F,through:M}=b.values,O=["belongsTo"].includes(F)?p||C:["belongsToMany"].includes(F)?M:v;if(O&&m){const{data:K}=yield o.request({url:`dataSourcesCollections/${i}.${O}/fields:list`,params:{paginate:!1,filter:{$or:[{"interface.$not":null},{"options.source.$notEmpty":!0}]},sort:["sort"]}});s((k=K.data)==null?void 0:k.filter(w=>Ae.includes(w.type)).map(w=>{var P;return{value:w.name,label:S(((P=w.uiSchema)==null?void 0:P.title)||w.title||w.name)}}))}}),onChange:m=>{var v;(v=e==null?void 0:e.onChange)==null||v.call(e,m),f(m)}})})},{displayName:"ForeignKey"}),ln=T.observer(e=>{const{value:t,disabled:o}=e,{targetKey:n,target:s,type:i}=r.useRecord(),{name:c}=U.useParams(),{getCollection:l}=r.useCollectionManager_deprecated(),p=r.useAPIClient(),[u,y]=d.useState([]),[g,C]=d.useState(t||n),I=T.useForm(),$=r.useCompile(),S=T.useField();return S.required=!0,d.useEffect(()=>{var b;s&&y((b=l(s,c).fields)==null?void 0:b.filter(h=>i!=="hasMany"?h.primaryKey||h.unique:Ae.includes(h.type)).map(h=>{var f;return{value:h.name,label:$(((f=h==null?void 0:h.uiSchema)==null?void 0:f.title)||h.title||h.name)}}))},[]),a.jsx("div",{children:a.jsx(x.Select,{showSearch:!0,options:u,onDropdownVisibleChange:b=>D(this,null,function*(){var m;const{target:h,type:f}=I.values;if(h&&b){const{data:v}=yield p.request({url:`dataSourcesCollections/${c}.${h}/fields:list`,params:{paginate:!1,filter:{$or:[{"interface.$not":null},{"options.source.$notEmpty":!0}]},sort:["sort"]}});y((m=v.data)==null?void 0:m.filter(F=>f!=="hasMany"?F.primaryKey||F.unique:Ae.includes(F.type)).map(F=>{var M;return{value:F.name,label:$(((M=F.uiSchema)==null?void 0:M.title)||F.title||F.name)}}))}}),onChange:b=>{var h;(h=e==null?void 0:e.onChange)==null||h.call(e,b),C(b)},value:g,disabled:o})})},{displayName:"TargetKey"}),un=T.observer(()=>{const e=r.useCompile(),{targetCollection:t}=it();return a.jsx("div",{children:a.jsx(x.Select,{disabled:!0,showSearch:!0,popupMatchSelectWidth:!1,value:t.name,options:[{value:t.name,label:e(t.title||t.name)}]})})},{displayName:"SourceCollection"}),pn=T.observer(e=>{const{disabled:t}=e,o=r.useCompile(),[n,s]=d.useState([]),{name:i}=U.useParams(),c=T.useField(),{getCollections:l}=r.useCollectionManager_deprecated(i),u=r.useRecord()[c.props.name],y=()=>l().filter(C=>!(C.autoCreate&&C.isThrough)).map(C=>({label:o(C.title||C.name),value:C.name}));return d.useEffect(()=>{const g=y();s(g)},[]),a.jsx("div",{children:a.jsx(x.Select,{disabled:t,showSearch:!0,popupMatchSelectWidth:!1,fieldNames:{label:"label",value:"value"},defaultValue:u,options:n,onChange:g=>{var C;(C=e==null?void 0:e.onChange)==null||C.call(e,g)}})})},{displayName:"ThroughCollection"}),dn=(e,t,o)=>{var i;if(!e)return;const n=J.cloneDeep(e.properties);n!=null&&n.foreignKey&&(n.foreignKey["x-component"]=vt),e.hasDefaultValue===!0&&(n.defaultValue=J.cloneDeep((i=e==null?void 0:e.default)==null?void 0:i.uiSchema),n.defaultValue.required=!1,n.defaultValue.title=o('{{ t("Default value") }}'),n.defaultValue["x-decorator"]="FormItem",n.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 s=N(A({name:`f_${B.uid()}`},J.cloneDeep(e.default)),{interface:e.name});return s.reverseField&&(s.reverseField.name=`f_${B.uid()}`),{type:"object",properties:{[B.uid()]:{type:"void","x-component":"Action.Drawer","x-component-props":{getContainer:"{{ getContainer }}"},"x-decorator":"Form","x-decorator-props":{useValues(c){return r.useRequest(()=>Promise.resolve({data:s}),c)}},title:`${o(t.title||t.name)} - ${o('{{ t("Add field") }}')}`,properties:N(A({summary:{type:"void","x-component":"FieldSummary","x-component-props":{schemaKey:e.name}}},n),{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 }}"}}}}})}}}},mn=()=>{const e=T.useForm(),t=r.useActionContext(),{refresh:o}=r.useResourceActionContext(),n=T.useField(),s=r.useAPIClient(),i=r.useRecord(),{name:c}=U.useParams(),l=r.useDataSourceManager();return{run(){return D(this,null,function*(){yield e.submit(),n.data=n.data||{},n.data.loading=!0;const u=J.cloneDeep(e.values);u.autoCreateReverseField||delete u.reverseField,delete u.autoCreateReverseField;try{yield s.request({url:`dataSourcesCollections/${c}.${i.name}/fields:create`,method:"post",data:u}),t.setVisible(!1),l.getDataSource(c).reload(),yield e.reset(),n.data.loading=!1,o()}catch(y){n.data.loading=!1}})}}},yn=e=>{const t=r.useRecord();return a.jsx(fn,A({item:t},e))},fn=e=>{const{scope:t,getContainer:o,item:n,children:s,trigger:i,align:c,database:l}=e,{getInterface:p,getTemplate:u,collections:y}=r.useCollectionManager_deprecated(),[g,C]=d.useState(!1),[I,$]=d.useState(),[S,b]=d.useState({}),h=r.useCompile(),{t:f}=V.useTranslation(),{data:{database:m}}=r.useCurrentAppInfo(),v=w=>(m==null?void 0:m.dialect)===w,F=d.useMemo(()=>y.map(w=>({label:h(w.title),value:w.name})),[]),M=r.useFieldInterfaceOptions(),O=d.useCallback(()=>{const{availableFieldInterfaces:w}=u(n.template)||{},{exclude:P,include:_}=w||{},W=[];return M.forEach(z=>{var G;if(z.key==="relation"){let H=[];_!=null&&_.length?_.forEach(X=>{var xe;const ke=(xe=z==null?void 0:z.children)==null?void 0:xe.find(Nf=>[X,X.interface].includes(Nf.value));ke&&H.push(N(A({},ke),{targetScope:X==null?void 0:X.targetScope}))}):P!=null&&P.length?H=(G=z==null?void 0:z.children)==null?void 0:G.filter(X=>!P.includes(X.value)):H=z==null?void 0:z.children,H!=null&&H.length&&W.push(N(A({},z),{children:H}))}}),W},[u,n]),k=d.useMemo(()=>O().map(w=>{var P;return((P=w==null?void 0:w.children)==null?void 0:P.length)===0?null:n.template==="view"?{type:"group",label:h(w.label),title:h(w.label),key:w.label,children:w.children.filter(_=>["m2o"].includes(_.name)).map(_=>({label:h(_.title),title:h(_.title),key:_.name,dataTargetScope:_.targetScope}))}:{type:"group",label:h(w.label),title:h(w.label),key:w.label,children:w==null?void 0:w.children.filter(_=>!["o2o","subTable","linkTo"].includes(_.name)).map(_=>({label:h(_.title),title:h(_.title),key:_.name,dataTargetScope:_.targetScope}))}}).filter(w=>{var P;return(P=w==null?void 0:w.children)==null?void 0:P.length}),[O]),K=d.useMemo(()=>({style:{maxHeight:"60vh",overflow:"auto"},onClick:w=>{const P=w.item.props["data-targetScope"];P&&$(P);const _=dn(p(w.key),n,h);_&&(b(_),C(!0))},items:k}),[p,k,n]);return n.template!=="sql"&&a.jsx(r.RecordProvider,{record:n,children:a.jsxs(r.ActionContextProvider,{value:{visible:g,setVisible:C},children:[a.jsx(x.Dropdown,{getPopupContainer:o,trigger:i,align:c,menu:K,children:s||a.jsx(x.Button,{icon:a.jsx(Y.PlusOutlined,{}),type:"primary",children:f("Add field")})}),a.jsx(r.SchemaComponent,{schema:S,components:{ArrayTable:re.ArrayTable},scope:A({getContainer:o,useCancelAction:r.useCancelAction,createOnly:!0,isOverride:!1,override:!1,useCreateCollectionField:mn,record:n,showReverseFieldConfig:!1,targetScope:I,collections:F,isDialect:v,disabledJSONB:!1,createMainOnly:!0},t)})]})})},gn=T.observer(e=>{const{value:t,handleFieldChange:o}=e,n=r.useRecord(),[s,i]=d.useState(t),c=u=>{i(u)},l=d.useMemo(()=>J.debounce(u=>{o({uiSchema:N(A({},n==null?void 0:n.uiSchema),{title:u})},n.name)},1e3),[o,n]),p=u=>{const y=u.target.value;c(y),l(y)};return d.useEffect(()=>{i(t)},[t]),a.jsx(x.Input,{value:s,onChange:p,style:{minWidth:"100px"},"aria-label":"field-title-input"})},{displayName:"FieldTitleInput"}),hn=()=>{const{refresh:e}=r.useResourceActionContext(),{name:t}=U.useParams(),{name:o,collectionName:n}=r.useRecord(),s=r.useAPIClient();return{run(){return D(this,null,function*(){yield s.request({url:`dataSourcesCollections/${t}.${n}/fields:destroy?filterByTk=${o}`,method:"post"}),e()})}}},Cn=()=>{const{state:e,setState:t,refresh:o}=r.useResourceActionContext(),{t:n}=V.useTranslation(),{name:s}=U.useParams(),i=r.useAPIClient(),{name:c}=r.useRecord();return{run(){return D(this,null,function*(){var p;if(!((p=e==null?void 0:e.selectedRowKeys)!=null&&p.length))return x.message.error(n("Please select the records you want to delete"));yield i.request({url:`dataSourcesCollections/${s}.${c}/fields:destroy`,method:"post",params:{filterByTk:(e==null?void 0:e.selectedRowKeys)||[]}}),t==null||t({selectedRowKeys:[]}),o()})}}},vn=()=>{const{run:e}=Cn();return{run(){return D(this,null,function*(){yield e()})}}},bn=()=>{const{run:e}=hn();return{run(){return D(this,null,function*(){yield e()})}}};var $e=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function Te(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function xn(){this.__data__=[],this.size=0}var Sn=xn;function An(e,t){return e===t||e!==e&&t!==t}var bt=An,$n=bt;function Tn(e,t){for(var o=e.length;o--;)if($n(e[o][0],t))return o;return-1}var Fe=Tn,Fn=Fe,wn=Array.prototype,_n=wn.splice;function Pn(e){var t=this.__data__,o=Fn(t,e);if(o<0)return!1;var n=t.length-1;return o==n?t.pop():_n.call(t,o,1),--this.size,!0}var Dn=Pn,In=Fe;function On(e){var t=this.__data__,o=In(t,e);return o<0?void 0:t[o][1]}var Mn=On,jn=Fe;function En(e){return jn(this.__data__,e)>-1}var kn=En,Kn=Fe;function Nn(e,t){var o=this.__data__,n=Kn(o,e);return n<0?(++this.size,o.push([e,t])):o[n][1]=t,this}var Vn=Nn,Bn=Sn,Ln=Dn,qn=Mn,Gn=kn,Un=Vn;function ae(e){var t=-1,o=e==null?0:e.length;for(this.clear();++t<o;){var n=e[t];this.set(n[0],n[1])}}ae.prototype.clear=Bn,ae.prototype.delete=Ln,ae.prototype.get=qn,ae.prototype.has=Gn,ae.prototype.set=Un;var we=ae,zn=we;function Hn(){this.__data__=new zn,this.size=0}var Wn=Hn;function Qn(e){var t=this.__data__,o=t.delete(e);return this.size=t.size,o}var Yn=Qn;function Jn(e){return this.__data__.get(e)}var Zn=Jn;function Xn(e){return this.__data__.has(e)}var Rn=Xn,er=typeof $e=="object"&&$e&&$e.Object===Object&&$e,xt=er,tr=xt,or=typeof self=="object"&&self&&self.Object===Object&&self,nr=tr||or||Function("return this")(),Z=nr,rr=Z,ar=rr.Symbol,fe=ar,St=fe,At=Object.prototype,sr=At.hasOwnProperty,ir=At.toString,ge=St?St.toStringTag:void 0;function cr(e){var t=sr.call(e,ge),o=e[ge];try{e[ge]=void 0;var n=!0}catch(i){}var s=ir.call(e);return n&&(t?e[ge]=o:delete e[ge]),s}var lr=cr,ur=Object.prototype,pr=ur.toString;function dr(e){return pr.call(e)}var mr=dr,$t=fe,yr=lr,fr=mr,gr="[object Null]",hr="[object Undefined]",Tt=$t?$t.toStringTag:void 0;function Cr(e){return e==null?e===void 0?hr:gr:Tt&&Tt in Object(e)?yr(e):fr(e)}var se=Cr;function vr(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var ie=vr,br=se,xr=ie,Sr="[object AsyncFunction]",Ar="[object Function]",$r="[object GeneratorFunction]",Tr="[object Proxy]";function Fr(e){if(!xr(e))return!1;var t=br(e);return t==Ar||t==$r||t==Sr||t==Tr}var Ft=Fr,wr=Z,_r=wr["__core-js_shared__"],Pr=_r,Ve=Pr,wt=function(){var e=/[^.]+$/.exec(Ve&&Ve.keys&&Ve.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Dr(e){return!!wt&&wt in e}var Ir=Dr,Or=Function.prototype,Mr=Or.toString;function jr(e){if(e!=null){try{return Mr.call(e)}catch(t){}try{return e+""}catch(t){}}return""}var _t=jr,Er=Ft,kr=Ir,Kr=ie,Nr=_t,Vr=/[\\^$.*+?()[\]{}|]/g,Br=/^\[object .+?Constructor\]$/,Lr=Function.prototype,qr=Object.prototype,Gr=Lr.toString,Ur=qr.hasOwnProperty,zr=RegExp("^"+Gr.call(Ur).replace(Vr,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Hr(e){if(!Kr(e)||kr(e))return!1;var t=Er(e)?zr:Br;return t.test(Nr(e))}var Wr=Hr;function Qr(e,t){return e==null?void 0:e[t]}var Yr=Qr,Jr=Wr,Zr=Yr;function Xr(e,t){var o=Zr(e,t);return Jr(o)?o:void 0}var ee=Xr,Rr=ee,ea=Z,ta=Rr(ea,"Map"),Be=ta,oa=ee,na=oa(Object,"create"),_e=na,Pt=_e;function ra(){this.__data__=Pt?Pt(null):{},this.size=0}var aa=ra;function sa(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var ia=sa,ca=_e,la="__lodash_hash_undefined__",ua=Object.prototype,pa=ua.hasOwnProperty;function da(e){var t=this.__data__;if(ca){var o=t[e];return o===la?void 0:o}return pa.call(t,e)?t[e]:void 0}var ma=da,ya=_e,fa=Object.prototype,ga=fa.hasOwnProperty;function ha(e){var t=this.__data__;return ya?t[e]!==void 0:ga.call(t,e)}var Ca=ha,va=_e,ba="__lodash_hash_undefined__";function xa(e,t){var o=this.__data__;return this.size+=this.has(e)?0:1,o[e]=va&&t===void 0?ba:t,this}var Sa=xa,Aa=aa,$a=ia,Ta=ma,Fa=Ca,wa=Sa;function ce(e){var t=-1,o=e==null?0:e.length;for(this.clear();++t<o;){var n=e[t];this.set(n[0],n[1])}}ce.prototype.clear=Aa,ce.prototype.delete=$a,ce.prototype.get=Ta,ce.prototype.has=Fa,ce.prototype.set=wa;var _a=ce,Dt=_a,Pa=we,Da=Be;function Ia(){this.size=0,this.__data__={hash:new Dt,map:new(Da||Pa),string:new Dt}}var Oa=Ia;function Ma(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var ja=Ma,Ea=ja;function ka(e,t){var o=e.__data__;return Ea(t)?o[typeof t=="string"?"string":"hash"]:o.map}var Pe=ka,Ka=Pe;function Na(e){var t=Ka(this,e).delete(e);return this.size-=t?1:0,t}var Va=Na,Ba=Pe;function La(e){return Ba(this,e).get(e)}var qa=La,Ga=Pe;function Ua(e){return Ga(this,e).has(e)}var za=Ua,Ha=Pe;function Wa(e,t){var o=Ha(this,e),n=o.size;return o.set(e,t),this.size+=o.size==n?0:1,this}var Qa=Wa,Ya=Oa,Ja=Va,Za=qa,Xa=za,Ra=Qa;function le(e){var t=-1,o=e==null?0:e.length;for(this.clear();++t<o;){var n=e[t];this.set(n[0],n[1])}}le.prototype.clear=Ya,le.prototype.delete=Ja,le.prototype.get=Za,le.prototype.has=Xa,le.prototype.set=Ra;var It=le,es=we,ts=Be,os=It,ns=200;function rs(e,t){var o=this.__data__;if(o instanceof es){var n=o.__data__;if(!ts||n.length<ns-1)return n.push([e,t]),this.size=++o.size,this;o=this.__data__=new os(n)}return o.set(e,t),this.size=o.size,this}var as=rs,ss=we,is=Wn,cs=Yn,ls=Zn,us=Rn,ps=as;function ue(e){var t=this.__data__=new ss(e);this.size=t.size}ue.prototype.clear=is,ue.prototype.delete=cs,ue.prototype.get=ls,ue.prototype.has=us,ue.prototype.set=ps;var ds=ue;function ms(e,t){for(var o=-1,n=e==null?0:e.length;++o<n&&t(e[o],o,e)!==!1;);return e}var ys=ms,fs=ee,gs=function(){try{var e=fs(Object,"defineProperty");return e({},"",{}),e}catch(t){}}(),Ot=gs,Mt=Ot;function hs(e,t,o){t=="__proto__"&&Mt?Mt(e,t,{configurable:!0,enumerable:!0,value:o,writable:!0}):e[t]=o}var jt=hs,Cs=jt,vs=bt,bs=Object.prototype,xs=bs.hasOwnProperty;function Ss(e,t,o){var n=e[t];(!(xs.call(e,t)&&vs(n,o))||o===void 0&&!(t in e))&&Cs(e,t,o)}var Le=Ss,As=Le,$s=jt;function Ts(e,t,o,n){var s=!o;o||(o={});for(var i=-1,c=t.length;++i<c;){var l=t[i],p=n?n(o[l],e[l],l,o,e):void 0;p===void 0&&(p=e[l]),s?$s(o,l,p):As(o,l,p)}return o}var he=Ts;function Fs(e,t){for(var o=-1,n=Array(e);++o<e;)n[o]=t(o);return n}var ws=Fs;function _s(e){return e!=null&&typeof e=="object"}var te=_s,Ps=se,Ds=te,Is="[object Arguments]";function Os(e){return Ds(e)&&Ps(e)==Is}var Ms=Os,Et=Ms,js=te,kt=Object.prototype,Es=kt.hasOwnProperty,ks=kt.propertyIsEnumerable,Ks=Et(function(){return arguments}())?Et:function(e){return js(e)&&Es.call(e,"callee")&&!ks.call(e,"callee")},Kt=Ks,Ns=Array.isArray,oe=Ns,De={exports:{}};function Vs(){return!1}var Bs=Vs;De.exports,function(e,t){var o=Z,n=Bs,s=t&&!t.nodeType&&t,i=s&&!0&&e&&!e.nodeType&&e,c=i&&i.exports===s,l=c?o.Buffer:void 0,p=l?l.isBuffer:void 0,u=p||n;e.exports=u}(De,De.exports);var Nt=De.exports,Ls=9007199254740991,qs=/^(?:0|[1-9]\d*)$/;function Gs(e,t){var o=typeof e;return t=t==null?Ls:t,!!t&&(o=="number"||o!="symbol"&&qs.test(e))&&e>-1&&e%1==0&&e<t}var Vt=Gs,Us=9007199254740991;function zs(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Us}var Bt=zs,Hs=se,Ws=Bt,Qs=te,Ys="[object Arguments]",Js="[object Array]",Zs="[object Boolean]",Xs="[object Date]",Rs="[object Error]",ei="[object Function]",ti="[object Map]",oi="[object Number]",ni="[object Object]",ri="[object RegExp]",ai="[object Set]",si="[object String]",ii="[object WeakMap]",ci="[object ArrayBuffer]",li="[object DataView]",ui="[object Float32Array]",pi="[object Float64Array]",di="[object Int8Array]",mi="[object Int16Array]",yi="[object Int32Array]",fi="[object Uint8Array]",gi="[object Uint8ClampedArray]",hi="[object Uint16Array]",Ci="[object Uint32Array]",q={};q[ui]=q[pi]=q[di]=q[mi]=q[yi]=q[fi]=q[gi]=q[hi]=q[Ci]=!0,q[Ys]=q[Js]=q[ci]=q[Zs]=q[li]=q[Xs]=q[Rs]=q[ei]=q[ti]=q[oi]=q[ni]=q[ri]=q[ai]=q[si]=q[ii]=!1;function vi(e){return Qs(e)&&Ws(e.length)&&!!q[Hs(e)]}var bi=vi;function xi(e){return function(t){return e(t)}}var qe=xi,Ie={exports:{}};Ie.exports,function(e,t){var o=xt,n=t&&!t.nodeType&&t,s=n&&!0&&e&&!e.nodeType&&e,i=s&&s.exports===n,c=i&&o.process,l=function(){try{var p=s&&s.require&&s.require("util").types;return p||c&&c.binding&&c.binding("util")}catch(u){}}();e.exports=l}(Ie,Ie.exports);var Ge=Ie.exports,Si=bi,Ai=qe,Lt=Ge,qt=Lt&&Lt.isTypedArray,$i=qt?Ai(qt):Si,Ti=$i,Fi=ws,wi=Kt,_i=oe,Pi=Nt,Di=Vt,Ii=Ti,Oi=Object.prototype,Mi=Oi.hasOwnProperty;function ji(e,t){var o=_i(e),n=!o&&wi(e),s=!o&&!n&&Pi(e),i=!o&&!n&&!s&&Ii(e),c=o||n||s||i,l=c?Fi(e.length,String):[],p=l.length;for(var u in e)(t||Mi.call(e,u))&&!(c&&(u=="length"||s&&(u=="offset"||u=="parent")||i&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||Di(u,p)))&&l.push(u);return l}var Gt=ji,Ei=Object.prototype;function ki(e){var t=e&&e.constructor,o=typeof t=="function"&&t.prototype||Ei;return e===o}var Ue=ki;function Ki(e,t){return function(o){return e(t(o))}}var Ut=Ki,Ni=Ut,Vi=Ni(Object.keys,Object),Bi=Vi,Li=Ue,qi=Bi,Gi=Object.prototype,Ui=Gi.hasOwnProperty;function zi(e){if(!Li(e))return qi(e);var t=[];for(var o in Object(e))Ui.call(e,o)&&o!="constructor"&&t.push(o);return t}var Hi=zi,Wi=Ft,Qi=Bt;function Yi(e){return e!=null&&Qi(e.length)&&!Wi(e)}var zt=Yi,Ji=Gt,Zi=Hi,Xi=zt;function Ri(e){return Xi(e)?Ji(e):Zi(e)}var ze=Ri,ec=he,tc=ze;function oc(e,t){return e&&ec(t,tc(t),e)}var nc=oc;function rc(e){var t=[];if(e!=null)for(var o in Object(e))t.push(o);return t}var ac=rc,sc=ie,ic=Ue,cc=ac,lc=Object.prototype,uc=lc.hasOwnProperty;function pc(e){if(!sc(e))return cc(e);var t=ic(e),o=[];for(var n in e)n=="constructor"&&(t||!uc.call(e,n))||o.push(n);return o}var dc=pc,mc=Gt,yc=dc,fc=zt;function gc(e){return fc(e)?mc(e,!0):yc(e)}var He=gc,hc=he,Cc=He;function vc(e,t){return e&&hc(t,Cc(t),e)}var bc=vc,Oe={exports:{}};Oe.exports,function(e,t){var o=Z,n=t&&!t.nodeType&&t,s=n&&!0&&e&&!e.nodeType&&e,i=s&&s.exports===n,c=i?o.Buffer:void 0,l=c?c.allocUnsafe:void 0;function p(u,y){if(y)return u.slice();var g=u.length,C=l?l(g):new u.constructor(g);return u.copy(C),C}e.exports=p}(Oe,Oe.exports);var xc=Oe.exports;function Sc(e,t){var o=-1,n=e.length;for(t||(t=Array(n));++o<n;)t[o]=e[o];return t}var Ac=Sc;function $c(e,t){for(var o=-1,n=e==null?0:e.length,s=0,i=[];++o<n;){var c=e[o];t(c,o,e)&&(i[s++]=c)}return i}var Tc=$c;function Fc(){return[]}var Ht=Fc,wc=Tc,_c=Ht,Pc=Object.prototype,Dc=Pc.propertyIsEnumerable,Wt=Object.getOwnPropertySymbols,Ic=Wt?function(e){return e==null?[]:(e=Object(e),wc(Wt(e),function(t){return Dc.call(e,t)}))}:_c,We=Ic,Oc=he,Mc=We;function jc(e,t){return Oc(e,Mc(e),t)}var Ec=jc;function kc(e,t){for(var o=-1,n=t.length,s=e.length;++o<n;)e[s+o]=t[o];return e}var Qe=kc,Kc=Ut,Nc=Kc(Object.getPrototypeOf,Object),Ye=Nc,Vc=Qe,Bc=Ye,Lc=We,qc=Ht,Gc=Object.getOwnPropertySymbols,Uc=Gc?function(e){for(var t=[];e;)Vc(t,Lc(e)),e=Bc(e);return t}:qc,Qt=Uc,zc=he,Hc=Qt;function Wc(e,t){return zc(e,Hc(e),t)}var Qc=Wc,Yc=Qe,Jc=oe;function Zc(e,t,o){var n=t(e);return Jc(e)?n:Yc(n,o(e))}var Yt=Zc,Xc=Yt,Rc=We,el=ze;function tl(e){return Xc(e,el,Rc)}var ol=tl,nl=Yt,rl=Qt,al=He;function sl(e){return nl(e,al,rl)}var Jt=sl,il=ee,cl=Z,ll=il(cl,"DataView"),ul=ll,pl=ee,dl=Z,ml=pl(dl,"Promise"),yl=ml,fl=ee,gl=Z,hl=fl(gl,"Set"),Cl=hl,vl=ee,bl=Z,xl=vl(bl,"WeakMap"),Sl=xl,Je=ul,Ze=Be,Xe=yl,Re=Cl,et=Sl,Zt=se,pe=_t,Xt="[object Map]",Al="[object Object]",Rt="[object Promise]",eo="[object Set]",to="[object WeakMap]",oo="[object DataView]",$l=pe(Je),Tl=pe(Ze),Fl=pe(Xe),wl=pe(Re),_l=pe(et),ne=Zt;(Je&&ne(new Je(new ArrayBuffer(1)))!=oo||Ze&&ne(new Ze)!=Xt||Xe&&ne(Xe.resolve())!=Rt||Re&&ne(new Re)!=eo||et&&ne(new et)!=to)&&(ne=function(e){var t=Zt(e),o=t==Al?e.constructor:void 0,n=o?pe(o):"";if(n)switch(n){case $l:return oo;case Tl:return Xt;case Fl:return Rt;case wl:return eo;case _l:return to}return t});var tt=ne,Pl=Object.prototype,Dl=Pl.hasOwnProperty;function Il(e){var t=e.length,o=new e.constructor(t);return t&&typeof e[0]=="string"&&Dl.call(e,"index")&&(o.index=e.index,o.input=e.input),o}var Ol=Il,Ml=Z,jl=Ml.Uint8Array,El=jl,no=El;function kl(e){var t=new e.constructor(e.byteLength);return new no(t).set(new no(e)),t}var ot=kl,Kl=ot;function Nl(e,t){var o=t?Kl(e.buffer):e.buffer;return new e.constructor(o,e.byteOffset,e.byteLength)}var Vl=Nl,Bl=/\w*$/;function Ll(e){var t=new e.constructor(e.source,Bl.exec(e));return t.lastIndex=e.lastIndex,t}var ql=Ll,ro=fe,ao=ro?ro.prototype:void 0,so=ao?ao.valueOf:void 0;function Gl(e){return so?Object(so.call(e)):{}}var Ul=Gl,zl=ot;function Hl(e,t){var o=t?zl(e.buffer):e.buffer;return new e.constructor(o,e.byteOffset,e.length)}var Wl=Hl,Ql=ot,Yl=Vl,Jl=ql,Zl=Ul,Xl=Wl,Rl="[object Boolean]",eu="[object Date]",tu="[object Map]",ou="[object Number]",nu="[object RegExp]",ru="[object Set]",au="[object String]",su="[object Symbol]",iu="[object ArrayBuffer]",cu="[object DataView]",lu="[object Float32Array]",uu="[object Float64Array]",pu="[object Int8Array]",du="[object Int16Array]",mu="[object Int32Array]",yu="[object Uint8Array]",fu="[object Uint8ClampedArray]",gu="[object Uint16Array]",hu="[object Uint32Array]";function Cu(e,t,o){var n=e.constructor;switch(t){case iu:return Ql(e);case Rl:case eu:return new n(+e);case cu:return Yl(e,o);case lu:case uu:case pu:case du:case mu:case yu:case fu:case gu:case hu:return Xl(e,o);case tu:return new n;case ou:case au:return new n(e);case nu:return Jl(e);case ru:return new n;case su:return Zl(e)}}var vu=Cu,bu=ie,io=Object.create,xu=function(){function e(){}return function(t){if(!bu(t))return{};if(io)return io(t);e.prototype=t;var o=new e;return e.prototype=void 0,o}}(),Su=xu,Au=Su,$u=Ye,Tu=Ue;function Fu(e){return typeof e.constructor=="function"&&!Tu(e)?Au($u(e)):{}}var wu=Fu,_u=tt,Pu=te,Du="[object Map]";function Iu(e){return Pu(e)&&_u(e)==Du}var Ou=Iu,Mu=Ou,ju=qe,co=Ge,lo=co&&co.isMap,Eu=lo?ju(lo):Mu,ku=Eu,Ku=tt,Nu=te,Vu="[object Set]";function Bu(e){return Nu(e)&&Ku(e)==Vu}var Lu=Bu,qu=Lu,Gu=qe,uo=Ge,po=uo&&uo.isSet,Uu=po?Gu(po):qu,zu=Uu,Hu=ds,Wu=ys,Qu=Le,Yu=nc,Ju=bc,Zu=xc,Xu=Ac,Ru=Ec,ep=Qc,tp=ol,op=Jt,np=tt,rp=Ol,ap=vu,sp=wu,ip=oe,cp=Nt,lp=ku,up=ie,pp=zu,dp=ze,mp=He,yp=1,fp=2,gp=4,mo="[object Arguments]",hp="[object Array]",Cp="[object Boolean]",vp="[object Date]",bp="[object Error]",yo="[object Function]",xp="[object GeneratorFunction]",Sp="[object Map]",Ap="[object Number]",fo="[object Object]",$p="[object RegExp]",Tp="[object Set]",Fp="[object String]",wp="[object Symbol]",_p="[object WeakMap]",Pp="[object ArrayBuffer]",Dp="[object DataView]",Ip="[object Float32Array]",Op="[object Float64Array]",Mp="[object Int8Array]",jp="[object Int16Array]",Ep="[object Int32Array]",kp="[object Uint8Array]",Kp="[object Uint8ClampedArray]",Np="[object Uint16Array]",Vp="[object Uint32Array]",L={};L[mo]=L[hp]=L[Pp]=L[Dp]=L[Cp]=L[vp]=L[Ip]=L[Op]=L[Mp]=L[jp]=L[Ep]=L[Sp]=L[Ap]=L[fo]=L[$p]=L[Tp]=L[Fp]=L[wp]=L[kp]=L[Kp]=L[Np]=L[Vp]=!0,L[bp]=L[yo]=L[_p]=!1;function Me(e,t,o,n,s,i){var c,l=t&yp,p=t&fp,u=t&gp;if(o&&(c=s?o(e,n,s,i):o(e)),c!==void 0)return c;if(!up(e))return e;var y=ip(e);if(y){if(c=rp(e),!l)return Xu(e,c)}else{var g=np(e),C=g==yo||g==xp;if(cp(e))return Zu(e,l);if(g==fo||g==mo||C&&!s){if(c=p||C?{}:sp(e),!l)return p?ep(e,Ju(c,e)):Ru(e,Yu(c,e))}else{if(!L[g])return s?e:{};c=ap(e,g,l)}}i||(i=new Hu);var I=i.get(e);if(I)return I;i.set(e,c),pp(e)?e.forEach(function(b){c.add(Me(b,t,o,b,e,i))}):lp(e)&&e.forEach(function(b,h){c.set(h,Me(b,t,o,h,e,i))});var $=u?p?op:tp:p?mp:dp,S=y?void 0:$(e);return Wu(S||e,function(b,h){S&&(h=b,b=e[h]),Qu(c,h,Me(b,t,o,h,e,i))}),c}var go=Me,Bp=go,Lp=1,qp=4;function Gp(e){return Bp(e,Lp|qp)}var Up=Gp;const R=Te(Up);function zp(e,t){for(var o=-1,n=e==null?0:e.length,s=Array(n);++o<n;)s[o]=t(e[o],o,e);return s}var ho=zp,Hp=se,Wp=te,Qp="[object Symbol]";function Yp(e){return typeof e=="symbol"||Wp(e)&&Hp(e)==Qp}var nt=Yp,Jp=oe,Zp=nt,Xp=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Rp=/^\w*$/;function ed(e,t){if(Jp(e))return!1;var o=typeof e;return o=="number"||o=="symbol"||o=="boolean"||e==null||Zp(e)?!0:Rp.test(e)||!Xp.test(e)||t!=null&&e in Object(t)}var td=ed,Co=It,od="Expected a function";function rt(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(od);var o=function(){var n=arguments,s=t?t.apply(this,n):n[0],i=o.cache;if(i.has(s))return i.get(s);var c=e.apply(this,n);return o.cache=i.set(s,c)||i,c};return o.cache=new(rt.Cache||Co),o}rt.Cache=Co;var nd=rt,rd=nd,ad=500;function sd(e){var t=rd(e,function(n){return o.size===ad&&o.clear(),n}),o=t.cache;return t}var id=sd,cd=id,ld=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ud=/\\(\\)?/g,pd=cd(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(ld,function(o,n,s,i){t.push(s?i.replace(ud,"$1"):n||o)}),t}),dd=pd,vo=fe,md=ho,yd=oe,fd=nt,gd=1/0,bo=vo?vo.prototype:void 0,xo=bo?bo.toString:void 0;function So(e){if(typeof e=="string")return e;if(yd(e))return md(e,So)+"";if(fd(e))return xo?xo.call(e):"";var t=e+"";return t=="0"&&1/e==-gd?"-0":t}var hd=So,Cd=hd;function vd(e){return e==null?"":Cd(e)}var bd=vd,xd=oe,Sd=td,Ad=dd,$d=bd;function Td(e,t){return xd(e)?e:Sd(e,t)?[e]:Ad($d(e))}var je=Td;function Fd(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}var wd=Fd,_d=nt,Pd=1/0;function Dd(e){if(typeof e=="string"||_d(e))return e;var t=e+"";return t=="0"&&1/e==-Pd?"-0":t}var at=Dd,Id=je,Od=at;function Md(e,t){t=Id(t,e);for(var o=0,n=t.length;e!=null&&o<n;)e=e[Od(t[o++])];return o&&o==n?e:void 0}var jd=Md;function Ed(e,t,o){var n=-1,s=e.length;t<0&&(t=-t>s?0:s+t),o=o>s?s:o,o<0&&(o+=s),s=t>o?0:o-t>>>0,t>>>=0;for(var i=Array(s);++n<s;)i[n]=e[n+t];return i}var kd=Ed,Kd=jd,Nd=kd;function Vd(e,t){return t.length<2?e:Kd(e,Nd(t,0,-1))}var Bd=Vd,Ld=je,qd=wd,Gd=Bd,Ud=at;function zd(e,t){return t=Ld(t,e),e=Gd(e,t),e==null||delete e[Ud(qd(t))]}var Hd=zd,Wd=se,Qd=Ye,Yd=te,Jd="[object Object]",Zd=Function.prototype,Xd=Object.prototype,Ao=Zd.toString,Rd=Xd.hasOwnProperty,em=Ao.call(Object);function tm(e){if(!Yd(e)||Wd(e)!=Jd)return!1;var t=Qd(e);if(t===null)return!0;var o=Rd.call(t,"constructor")&&t.constructor;return typeof o=="function"&&o instanceof o&&Ao.call(o)==em}var om=tm,nm=om;function rm(e){return nm(e)?void 0:e}var am=rm,$o=fe,sm=Kt,im=oe,To=$o?$o.isConcatSpreadable:void 0;function cm(e){return im(e)||sm(e)||!!(To&&e&&e[To])}var lm=cm,um=Qe,pm=lm;function Fo(e,t,o,n,s){var i=-1,c=e.length;for(o||(o=pm),s||(s=[]);++i<c;){var l=e[i];t>0&&o(l)?t>1?Fo(l,t-1,o,n,s):um(s,l):n||(s[s.length]=l)}return s}var dm=Fo,mm=dm;function ym(e){var t=e==null?0:e.length;return t?mm(e,1):[]}var fm=ym;function gm(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 hm=gm,Cm=hm,wo=Math.max;function vm(e,t,o){return t=wo(t===void 0?e.length-1:t,0),function(){for(var n=arguments,s=-1,i=wo(n.length-t,0),c=Array(i);++s<i;)c[s]=n[t+s];s=-1;for(var l=Array(t+1);++s<t;)l[s]=n[s];return l[t]=o(c),Cm(e,this,l)}}var bm=vm;function xm(e){return function(){return e}}var Sm=xm;function Am(e){return e}var $m=Am,Tm=Sm,_o=Ot,Fm=$m,wm=_o?function(e,t){return _o(e,"toString",{configurable:!0,enumerable:!1,value:Tm(t),writable:!0})}:Fm,_m=wm,Pm=800,Dm=16,Im=Date.now;function Om(e){var t=0,o=0;return function(){var n=Im(),s=Dm-(n-o);if(o=n,s>0){if(++t>=Pm)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var Mm=Om,jm=_m,Em=Mm,km=Em(jm),Km=km,Nm=fm,Vm=bm,Bm=Km;function Lm(e){return Bm(Vm(e,void 0,Nm),e+"")}var qm=Lm,Gm=ho,Um=go,zm=Hd,Hm=je,Wm=he,Qm=am,Ym=qm,Jm=Jt,Zm=1,Xm=2,Rm=4,ey=Ym(function(e,t){var o={};if(e==null)return o;var n=!1;t=Gm(t,function(i){return i=Hm(i,e),n||(n=i.length>1),i}),Wm(e,Jm(e),o),n&&(o=Um(o,Zm|Xm|Rm,Qm));for(var s=t.length;s--;)zm(o,t[s]);return o}),ty=ey;const Ee=Te(ty);var oy=Le,ny=je,ry=Vt,Po=ie,ay=at;function sy(e,t,o,n){if(!Po(e))return e;t=ny(t,e);for(var s=-1,i=t.length,c=i-1,l=e;l!=null&&++s<i;){var p=ay(t[s]),u=o;if(p==="__proto__"||p==="constructor"||p==="prototype")return e;if(s!=c){var y=l[p];u=n?n(y,p,l):void 0,u===void 0&&(u=Po(y)?y:ry(t[s+1])?[]:{})}oy(l,p,u),l=l[p]}return e}var iy=sy,cy=iy;function ly(e,t,o){return e==null?e:cy(e,t,o)}var uy=ly;const Do=Te(uy),py=({schema:e,record:t,parentRecord:o,compile:n,getContainer:s})=>{if(!e)return;const i=R(e.properties);return i!=null&&i.name&&(i.name["x-disabled"]=!0),e.hasDefaultValue===!0&&(i.defaultValue=R(e.default.uiSchema)||{},i.defaultValue.required=!1,i.defaultValue.title=n('{{ t("Default value") }}'),i.defaultValue["x-decorator"]="FormItem",i.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]}}"}}}},i.defaultValue["x-disabled"]=!0),{type:"object",properties:{[B.uid()]:{type:"void","x-component":"Action.Drawer","x-component-props":{getContainer:"{{ getContainer }}"},"x-decorator":"Form","x-decorator-props":{useValues(c){return r.useRequest(()=>{var l;return Promise.resolve({data:N(A({},R(Ee(e.default,["uiSchema.rawTitle"]))),{autoFill:((l=e.default)==null?void 0:l.autoFill)!==!1})})},c)}},title:`${n((o==null?void 0:o.title)||(o==null?void 0:o.name))} - ${n('{{ t("Edit field") }}')}`,properties:N(A({summary:{type:"void","x-component":"FieldSummary","x-component-props":{schemaKey:e.name}}},i),{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 }}"}}}}})}}}},dy=()=>{const e=T.useForm(),t=r.useAPIClient(),o=r.useActionContext(),{refresh:n}=r.useResourceActionContext(),{targetCollection:s}=it(),{name:i}=U.useParams(),{name:c}=r.useRecord(),l=r.useDataSourceManager();return{run(){return D(this,null,function*(){yield e.submit();const u=R(e.values);u.autoCreateReverseField||delete u.reverseField,delete u.autoCreateReverseField,yield t.request({url:`dataSourcesCollections/${i}.${s.name}/fields:update?filterByTk=${c}`,method:"post",data:u}),o.setVisible(!1),l.getDataSource(i).reload(),yield e.reset(),n()})}}},my=e=>{const t=r.useRecord(),o=r.useCollectionParentRecordData();return a.jsx(yy,A({item:t,parentItem:o},e))},yy=e=>{var k,K;const O=e,{scope:t,getContainer:o,item:n,parentItem:s,children:i}=O,c=ut(O,["scope","getContainer","item","parentItem","children"]),{getInterface:l,collections:p,getCollection:u}=r.useCollectionManager_deprecated(),{data:{database:y}}=r.useCurrentAppInfo(),[g,C]=d.useState(!1),[I,$]=d.useState({}),S=r.useAPIClient(),{t:b}=V.useTranslation(),h=r.useCompile(),{name:f}=U.useParams(),m=w=>(y==null?void 0:y.dialect)===w,v=(n==null?void 0:n.fields)||((K=(k=u(n.collectionName,f))==null?void 0:k.options)==null?void 0:K.fields),F=d.useMemo(()=>p.map(w=>({label:h(w.title),value:w.name})),[]),M=d.useMemo(()=>{var w,P;return(n==null?void 0:n.fields)||((P=(w=u(n.collectionName,f))==null?void 0:w.options)==null?void 0:P.fields.filter(_=>["string","bigInt","integer"].includes(_.type)).map(_=>{var W;return{value:_.name,label:h((W=_.uiSchema)==null?void 0:W.title)}}))},[n.name,v]);return a.jsx(r.RecordProvider,{record:n,parent:s,children:a.jsxs(r.ActionContextProvider,{value:{visible:g,setVisible:C},children:[a.jsx("a",N(A({},c),{onClick:()=>D(this,null,function*(){var z,G,H;const{data:w}=yield S.request({url:`dataSourcesCollections/${f}.${s.name}/fields:get?filterByTk=${n.name}`,params:{appends:["reverseField"]}}),P=l((z=w==null?void 0:w.data)==null?void 0:z.interface),_=R(w==null?void 0:w.data)||{};_!=null&&_.reverseField||(_.autoCreateReverseField=!1,_.reverseField=(G=P==null?void 0:P.default)==null?void 0:G.reverseField,Do(_.reverseField,"name",`f_${B.uid()}`),Do(_.reverseField,"uiSchema.title",(H=n.__parent)==null?void 0:H.title));const W=py({schema:N(A({},P),{default:_}),record:n,parentRecord:s,compile:h,getContainer:o});$(W),C(!0)}),children:i||b("Edit")})),a.jsx(r.SchemaComponent,{schema:I,components:{ArrayTable:re.ArrayTable},scope:N(A({getContainer:o,useUpdateCollectionField:dy,useCancelAction:r.useCancelAction,showReverseFieldConfig:!1,collections:F,isDialect:m,scopeKeyOptions:M,disabledJSONB:!0},t),{createOnly:!1,createMainOnly:!1,editMainOnly:!0})})]})})},fy=T.observer(e=>{const{value:t,handleFieldChange:o,onChange:n}=e,s=r.useRecord(),i=s;return i!=null&&i.possibleTypes?a.jsx(x.Select,{"aria-label":`field-type-${t}`,role:"button",defaultValue:t,popupMatchSelectWidth:!1,style:{width:"100%"},options:(i==null?void 0:i.possibleTypes.map(c=>({label:c,value:c})))||[],onChange:c=>{n==null||n(c),o(N(A({},i),{type:c}),s.name)}}):a.jsx(x.Tag,{children:t})},{displayName:"FieldType"}),gy=()=>{const{t:e}=V.useTranslation(),{unsupportedFields:t}=r.useRecord(),o=[{title:e("Field name"),dataIndex:"name",key:"name"},{title:e("Field database type",{ns:E}),dataIndex:"rawType",key:"rawType"}];return(t==null?void 0:t.length)>0&&a.jsxs(a.Fragment,{children:[a.jsx(x.Divider,{plain:!0,orientation:"left",orientationMargin:"0",children:a.jsx("h3",{children:e("Unknown field type",{ns:E})})}),a.jsx("div",{style:{marginBottom:"15px"},children:e("The following field types are not compatible and do not support output and display",{ns:E})}),a.jsx(x.Table,{columns:o,dataSource:t,pagination:!1})]})},st=d.createContext({refreshRM:()=>{},titleField:null,targetCollection:null});st.displayName="RemoteCollectionContext";const it=()=>d.useContext(st),Io=()=>{const e=T.useField(),t=d.useMemo(()=>me.createForm(),[]),o=r.useAttach(t.createArrayField(N(A({},e.props),{basePath:""}))),{t:n}=V.useTranslation(),{name:s}=U.useParams(),i=r.useAPIClient(),c=r.useCompile(),l=d.useContext(r.ResourceActionContext),p=r.useResourceContext(),{targetKey:u}=p||{},y=r.useRecord(),{[u]:g,titleField:C,name:I}=y,[$,S]=d.useState(C),b=M=>{const O=d.useContext(r.ResourceActionContext),k=T.useField();return d.useEffect(()=>{O.loading||(M==null||M.onSuccess(O.data),k.componentProps.dragSort=!!O.dragSort)},[O.loading]),O},h={association:{sourceKey:"name",targetKey:"name"},dragSort:!1,collection:on,request:{url:`dataSourcesCollections/${s}.${I}/fields:list`,params:{paginate:!1,filter:{$or:[{"interface.$not":null},{"options.source.$notEmpty":!0}]},sort:["sort"]}}},f=r.useDataSourceManager(),m=(M,O,k=!0)=>D(this,null,function*(){yield i.request({url:`dataSourcesCollections/${s}.${I}/fields:update?filterByTk=${O}`,method:"post",data:M}),f.getDataSource(s).reload(),k&&x.message.success(n("Saved successfully"))}),v=()=>({filterByTk:g,titleField:$,dataSourceKey:s,setTitleField:S}),F=(M,O,k)=>D(this,null,function*(){var W,z;const{targetScope:K}=O,w=((W=M.props)==null?void 0:W.name)==="inherits",{data:P}=yield i.request({url:`dataSources/${s}/collections:list`,params:{paginate:!1,appends:["fields"],sort:["sort"]}});return((z=P==null?void 0:P.data)==null?void 0:z.filter(G=>{var xe;if(k!=null&&k.includes(G.template)||G.autoCreate&&G.isThrough||w&&G.template==="view")return!1;const X=!(K!=null&&K.template)||K.template.includes(G.template),ke=!(K!=null&&K[(xe=M.props)==null?void 0:xe.name])||K[M.props.name].includes(G.name);return X&&ke})).map(G=>({label:c(G.title||G.name),value:G.name}))});return a.jsxs(st.Provider,{value:{refreshRM:()=>{l.refresh()},titleField:$,targetCollection:y},children:[a.jsx(r.ResourceActionProvider,N(A({},h),{children:a.jsx(T.FormContext.Provider,{value:t,children:a.jsx(T.FieldContext.Provider,{value:o,children:a.jsx(r.SchemaComponentOptions,{components:{TitleField:rn,CollectionFieldInterfaceSelect:sn,AddCollectionField:yn,SourceCollection:un,TargetKey:ln,SourceKey:cn,FieldTitleInput:gn,EditCollectionField:my,Select:r.Select,FieldType:fy,ForeignKey:vt,ThroughCollection:pn},inherit:!0,scope:{useDataSource:b,useTitleFieldProps:v,handleFieldChange:m,useDestroyActionAndRefreshCM:bn,useBulkDestroyActionAndRefreshCM:vn,loadCollections:F},children:a.jsx(T.RecursionField,{schema:nn,onlyRenderProperties:!0})})})})})),a.jsx(gy,{})]})},hy=(e,t,o,n)=>{if(!e)return;const s=R(e.configurableProperties)||{title:{"x-component":"CollectionField","x-decorator":"FormItem"},name:{"x-component":"CollectionField","x-decorator":"FormItem"}};return e.hasDefaultValue===!0&&(s.defaultValue=R(e.default.uiSchema),s.defaultValue.title=o('{{ t("Default value") }}'),s.defaultValue["x-decorator"]="FormItem"),{type:"object",properties:{[B.uid()]:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{useValues:"{{ useValuesFromRecord }}"},title:'{{ t("Edit collection") }}',properties:N(A({},Ee(s,"category","inherits","moreOptions")),{filterTargetKey:{title:`{{ t("Filter target key",{ ns: "${E}" }) }}`,type:"single",description:r.tval("Filter data based on the specific field, with the requirement that the field value must be unique.",{ns:E}),"x-decorator":"FormItem","x-component":"Select",enum:"{{filterTargetKeyOptions}}","x-visible":"{{!!isView}}"},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 }}"}}}}})}}}},Cy=e=>{const t=r.useRecord(),o=r.useRequest(()=>{var s;return Promise.resolve({data:N(A({},Ee(R(t),["__parent","__collectionName"])),{category:(s=t==null?void 0:t.category)==null?void 0:s.map(i=>i.id)})})},N(A({},e),{manual:!0})),n=r.useActionContext();return d.useEffect(()=>{n.visible&&o.run()},[n.visible]),o},vy=e=>{const{refreshCM:t}=r.useCollectionManager_deprecated(),o=T.useForm(),n=r.useActionContext(),{name:s}=U.useParams(),{refresh:i}=r.useResourceActionContext(),{resource:c,targetKey:l}=r.useResourceContext(),{[l]:p}=r.useRecord(),u=r.useAPIClient(),y=r.useDataSourceManager();return{run(){return D(this,null,function*(){yield o.submit(),yield u.request({url:`dataSources/${s}/collections:update?filterByTk=${p}`,method:"post",data:A({},Ee(o.values,["fields","autoGenId","createdAt","updatedAt","createdBy","updatedBy","sortable"]))}),yield y.getDataSource(s).reload(),n.setVisible(!1),yield o.reset(),i(),yield t()})}}},by=e=>{const t=r.useRecord();return a.jsx(xy,A({item:t},e))},xy=e=>{var S;const $=e,{scope:t,getContainer:o,item:n,children:s}=$,i=ut($,["scope","getContainer","item","children"]),{getTemplate:c}=r.useCollectionManager_deprecated(),[l,p]=d.useState(!1),[u,y]=d.useState({}),{t:g}=V.useTranslation(),C=r.useCompile(),I=(S=n.fields)==null?void 0:S.map(b=>{var h;return{label:(h=b.uiSchema)!=null&&h.title?C(b.uiSchema.title):b.name,value:b.name}});return a.jsx(r.RecordProvider,{record:n,children:a.jsxs(r.ActionContextProvider,{value:{visible:l,setVisible:p},children:[a.jsx("a",N(A({},i),{onClick:()=>D(this,null,function*(){const b=c(n.template),h=hy(A({},b),n,C);y(h),p(!0)}),children:s||g("Edit")})),a.jsx(r.SchemaComponent,{schema:u,components:{ArrayTable:re.ArrayTable},scope:A({getContainer:o,useValuesFromRecord:Cy,useUpdateCollectionActionAndRefreshCM:vy,useCancelAction:r.useCancelAction,createOnly:!1,filterTargetKeyOptions:I,isView:n.view},t)})]})})},Sy=(e,t)=>(o,n)=>{o.loading=!0,e(o,n,t).then(pt.action.bound(s=>{o.dataSource=s,o.loading=!1})).catch(s=>console.log(s))},Ay=()=>{const[e,t]=d.useState([]);return[e,t]},$y=()=>{const e=r.useRecord(),t=T.useForm();return{run(){return D(this,null,function*(){var s,i,c;const n=(c=(i=(s=t.values)==null?void 0:s.children)==null?void 0:i.slice)==null?void 0:c.call(i);t.setValuesIn("children",n.filter(l=>l.name!==e.name))})}}},Ty=()=>({run(){return D(this,null,function*(){})}}),Fy=e=>`${e||""}${B.uid()}`,wy=()=>{const{t:e}=V.useTranslation(),{interfaces:t}=r.useCollectionManager_deprecated(),{data:{database:o}}=r.useCurrentAppInfo(),n=r.useDataSourceManager(),s=d.useContext(r.SchemaComponentContext),{name:i}=U.useParams(),c=d.useContext(r.CollectionCategroriesContext),l=r.useAPIClient(),p=l.resource("dbViews"),u=r.useCompile(),y=()=>D(this,null,function*(){return c.data.map(S=>({label:u(S.name),value:S.id}))}),g=()=>D(this,null,function*(){return p.list().then(({data:S})=>{var b;return(b=S==null?void 0:S.data)==null?void 0:b.map(h=>{const f=h.schema;return{label:f?`${f}.${u(h.name)}`:h.name,value:f?`${f}_${h.name}`:h.name}})})}),C=()=>D(this,null,function*(){return l.resource("storages").list().then(({data:S})=>{var b;return(b=S==null?void 0:S.data)==null?void 0:b.map(h=>({label:e(u(h.title)),value:h.name}))})}),I=()=>{const S=d.useContext(r.ResourceActionContext),b=r.useAPIClient(),h=T.useField(),{name:f}=U.useParams();h.data=h.data||{};const{setDataSource:m,dataSource:v}=d.useContext(Se);return{onClick(){return D(this,null,function*(){var M,O,k;h.data.loading=!0;try{const{data:K}=yield b.request({url:`dataSources:refresh?filterByTk=${f}&clientStatus=${(v==null?void 0:v.status)||"loaded"}`,method:"post"});h.data.loading=!1,m(K==null?void 0:K.data),((M=K==null?void 0:K.data)==null?void 0:M.status)==="reloading"?x.message.warning(e("Data source synchronization in progress")):((O=K==null?void 0:K.data)==null?void 0:O.status)==="loaded"&&(x.message.success(e("Data source synchronization successful")),(k=S==null?void 0:S.refresh)==null||k.call(S)),yield n.getDataSource(f).reload()}catch(K){h.data.loading=!1}})}}},$=d.useMemo(()=>tn(i),[i]);return a.jsx(r.SchemaComponentContext.Provider,{value:N(A({},s),{designable:!1}),children:a.jsx(r.SchemaComponent,{schema:$,components:{EditCollection:by,AddSubFieldAction:r.AddSubFieldAction,EditSubFieldAction:r.EditSubFieldAction,FieldSummary:r.FieldSummary,TemplateSummay:r.TemplateSummary,CollectionFields:Io},scope:{useRefreshActionProps:I,useDestroySubField:$y,useBulkDestroySubField:Ty,useSelectedRowKeys:Ay,useAsyncDataSource:Sy,loadCategories:y,loadDBViews:g,loadStorages:C,useNewId:Fy,useCancelAction:r.useCancelAction,interfaces:t,enableInherits:(o==null?void 0:o.dialect)==="postgres",isPG:(o==null?void 0:o.dialect)==="postgres"}})})};var Oo={exports:{}};/*!
1
+ (function(O,a){typeof exports=="object"&&typeof module!="undefined"?a(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"],a):(O=typeof globalThis!="undefined"?globalThis:O||self,a(O["@nocobase/plugin-data-source-manager"]={},O.jsxRuntime,O["@nocobase/client"],O.react,O["@formily/react"],O.antd,O["react-i18next"],O["@ant-design/icons"],O["react-router-dom"],O["@formily/shared"],O["@formily/reactive"],O["@formily/core"],O["@formily/antd-v5"],O.lodash,O["@dnd-kit/core"],O["@emotion/css"],O["antd-style"]))})(this,function(O,a,r,d,_,S,K,Q,G,N,pt,ye,ae,Y,W,fe,Jo){"use strict";var qf=Object.defineProperty,Gf=Object.defineProperties;var Uf=Object.getOwnPropertyDescriptors;var Ke=Object.getOwnPropertySymbols;var Wo=Object.prototype.hasOwnProperty,Qo=Object.prototype.propertyIsEnumerable;var lt=(O,a,r)=>a in O?qf(O,a,{enumerable:!0,configurable:!0,writable:!0,value:r}):O[a]=r,F=(O,a)=>{for(var r in a||(a={}))Wo.call(a,r)&&lt(O,r,a[r]);if(Ke)for(var r of Ke(a))Qo.call(a,r)&&lt(O,r,a[r]);return O},j=(O,a)=>Gf(O,Uf(a));var ut=(O,a)=>{var r={};for(var d in O)Wo.call(O,d)&&a.indexOf(d)<0&&(r[d]=O[d]);if(O!=null&&Ke)for(var d of Ke(O))a.indexOf(d)<0&&Qo.call(O,d)&&(r[d]=O[d]);return r};var Yo=(O,a,r)=>(lt(O,typeof a!="symbol"?a+"":a,r),r);var P=(O,a,r)=>new Promise((d,_)=>{var S=G=>{try{Q(r.next(G))}catch(N){_(N)}},K=G=>{try{Q(r.throw(G))}catch(N){_(N)}},Q=G=>G.done?d(G.value):Promise.resolve(G.value).then(S,K);Q((r=r.apply(O,a)).next())});const E="data-source-manager";function Zo(e,t={}){return r.i18n.t(e,j(F({},t),{ns:E}))}const Xo=e=>{const t=_.useForm(),o=r.useActionContext(),n=r.useAPIClient(),{t:s}=K.useTranslation(),i=_.useField();return i.data=i.data||{},{run(){return P(this,null,function*(){yield t.submit();try{i.data.loading=!0;const{data:l}=yield n.resource("databaseServers").create({values:F({},t.values)});i.data.loading=!1,o.setVisible(!1),yield t.reset(),e==null||e(l==null?void 0:l.data),S.message.success(s("Saved successfully"))}catch(l){i.data.loading=!1,console.log(l)}})}}},dt=()=>{const e=_.useForm(),t=r.useAPIClient(),{t:o}=K.useTranslation(),n=_.useField();return n.data=n.data||{},{run(){return P(this,null,function*(){yield e.submit();try{n.data.loading=!0,yield t.resource("dataSources").testConnection({values:F({},e.values)}),n.data.loading=!1,S.message.success(o("Connection successful",{ns:E}))}catch(i){n.data.loading=!1,console.log(i)}})}}},Ro=Object.freeze(Object.defineProperty({__proto__:null,useCreateDatabaseServer:Xo,useTestConnectionAction:dt},Symbol.toStringTag,{value:"Module"})),Ae=d.createContext(null);Ae.displayName="DataSourceContext";const en=e=>{const[t,o]=d.useState(null);return a.jsx(Ae.Provider,{value:{dataSource:t,setDataSource:o},children:a.jsx(r.SchemaComponentOptions,{scope:Ro,components:{},children:e.children})})};class mt extends r.DataSource{getDataSource(){return P(this,null,function*(){return(yield this.app.apiClient.request({url:`dataSources:get/${this.key}`,params:{appends:["collections"]}})).data.data})}}const yt=[{value:"loading",label:`{{t("Loading",{ns:"${E}"})}}`,color:"orange"},{value:"loading-failed",label:`{{t("Failed",{ns:"${E}"})}}`,color:"red"},{value:"loaded",label:`{{t("Loaded",{ns:"${E}"})}}`,color:"green"},{value:"reloading",label:`{{t("Reloading",{ns:"${E}"})}}`,color:"orange"}],ft={name:"collections-"+N.uid(),fields:[{type:"string",name:"key",interface:"input",uiSchema:{title:`{{t("Data source name",{ ns: "${E}" })}}`,type:"string","x-component":"Input",required:!0}},{type:"string",name:"displayName",interface:"input",uiSchema:{title:`{{t("Data source display name",{ ns: "${E}" })}}`,type:"string","x-component":"Input",required:!0}},{type:"string",name:"type",interface:"select",uiSchema:{title:`{{t("Type", { ns: "${E}" })}}`,type:"string","x-component":"Select",enum:"{{types}}"}},{type:"string",name:"status",interface:"select",uiSchema:{title:`{{t("Status", { ns: "${E}" })}}`,type:"string","x-component":"Select",enum:yt}},{type:"boolean",name:"enabled",uiSchema:{type:"boolean",title:'{{t("Enabled")}}',"x-component":"Checkbox"}}]},tn={type:"object",properties:{[N.uid()]:{type:"void","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:ft,resourceName:"dataSources",request:{resource:"dataSources",action:"list",params:{pageSize:50,appends:[]}}},"x-component":"CollectionProvider_deprecated","x-component-props":{collection:ft},properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:16}},properties:{refresh:{type:"void",title:'{{ t("Refresh") }}',"x-component":"Action","x-use-component-props":"useRefreshActionProps","x-component-props":{icon:"ReloadOutlined"}},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)}}"]}}}}}}}}}}},gt=()=>{const e=r.useApp(),{name:t}=G.useParams(),o=r.useCompile(),n=r.useDataSourceManager(),{displayName:s}=n.getDataSource(t)||{},{dataSource:i}=d.useContext(Ae),c=d.useMemo(()=>i||n.getDataSource(t),[i,t]),l=d.useMemo(()=>{const p=c==null?void 0:c.status,u=yt.find(h=>h.value===p),m=[{title:a.jsx(G.Link,{to:e.pluginSettingsManager.getRoutePath(E),children:Zo("Data source manager")})}];return c&&m.push({title:a.jsxs(S.Space,{children:[a.jsx("span",{children:o(s)}),p&&a.jsx(S.Tag,{color:u==null?void 0:u.color,children:o(u==null?void 0:u.label)},p)]})}),m},[c]);return a.jsx(S.Breadcrumb,{separator:a.jsx(Q.RightOutlined,{}),items:l})},ht=e=>_.Schema.compile(e,{t:r.i18n.t}),on={name:"database-"+N.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"}}]},nn=e=>({type:"object",properties:{[N.uid()]:{type:"void","x-collection":"dataSources","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:on,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"}}}}}),Ne={type:"object",properties:{[N.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-use-component-props":"cm.useFilterActionProps","x-component-props":{icon:"FilterOutlined"},"x-align":"left"},refresh:{type:"void",title:'{{ t("Refresh") }}',"x-component":"Action","x-use-component-props":"useRefreshActionProps","x-component-props":{icon:"ReloadOutlined"}},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}}},[N.uid()]:{type:"void","x-uid":"input","x-component":"Table.Void","x-component-props":{rowKey:"name",rowSelection:{type:"checkbox"},useDataSource:"{{cm.useDataSourceFromRAC }}",useAction(){const e=r.useAPIClient(),{t}=K.useTranslation();return{move(n,s){return P(this,null,function*(){yield e.resource("dataSources").move({sourceId:n.key,targetId:s.key}),S.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],n=e.form.getValuesIn(`${o}.${t}`);n&&(e.title=`${ht(n.title||n.name)} - ${ht('{{ 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"}}}}}}}}}},rn={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: "${E}" })}}`,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"}}]},an={type:"object",properties:{[N.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"}}}},[N.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:"{{enqueueChange}}"}}}},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:"{{enqueueChange}}"}}}},column4:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",title:`{{t("Field interface", { ns: "${E}" })}}`,properties:{interface:{"x-component":"CollectionFieldInterfaceSelect","x-component-props":{handleFieldChange:"{{enqueueChange}}"}}}},column5:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",title:'{{t("Title field")}}',properties:{titleField:{"x-component":"TitleField","x-use-component-props":"useTitleFieldProps","x-read-pretty":!1}}},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]) }}"}}}]}}}}}}}}},sn=r.withDynamicSchemaProps(e=>{const{t}=K.useTranslation(),{isTitleField:o}=r.useCollectionManager_deprecated(),[n,s]=d.useState(null),{setTitleField:i,filterByTk:c,dataSourceKey:l}=r.useProps(e),p=r.useRecord(),u=r.useAPIClient(),{refreshRM:m,titleField:h}=it(),C=D=>P(this,null,function*(){s(p),yield u.request({url:`dataSources/${l}/collections:update?filterByTk=${c}`,method:"post",data:{titleField:D?p.name:"id"}}),S.message.success(t("Saved successfully")),m(),i(D?p.name:"id"),s(null)});return o(p)?a.jsx(S.Tooltip,{title:t("Default title for each record"),placement:"right",overlayInnerStyle:{textAlign:"center"},children:a.jsx(S.Switch,{"aria-label":`switch-title-field-${p==null?void 0:p.name}`,size:"small",loading:(p==null?void 0:p.name)===(n==null?void 0:n.name),checked:(p==null?void 0:p.name)===(h||"id"),onChange:C})}):null},{displayName:"TitleField"}),Ct=(e,t)=>{const o=[];return e.forEach(n=>{const s=n.children.filter(i=>{var c;return(c=i==null?void 0:i.availableTypes)==null?void 0:c.includes(t)});o.push({label:n.label,key:n.key,children:s})}),o.filter(n=>t==="sort"?n.key==="advanced":n.children.length>0)},cn=(e,t)=>t==null?void 0:t.some(o=>{var n,s;return(s=(n=o.children)==null?void 0:n.some)==null?void 0:s.call(n,i=>i.name===e)}),ln=_.observer(e=>{var D;const{value:t,handleFieldChange:o}=e,{data:n}=r.useCollectionRecord(),{getInterface:s}=r.useCollectionManager_deprecated(),i=r.useCompile(),c=r.useFieldInterfaceOptions(),l=Ct(c,n.type),[p,u]=d.useState(t),[m,h]=d.useState(l),C=n.type;return d.useEffect(()=>{var $,v,b,f,y,g,x,I,k,M,B,V;if(m.length===1&&((v=($=m[0])==null?void 0:$.children)==null?void 0:v.length)===1){const A=(y=(f=(b=m[0])==null?void 0:b.children)==null?void 0:f[0])==null?void 0:y.name;if(A!==p){const T=s(A);o({interface:A,uiSchema:F({title:(g=n==null?void 0:n.uiSchema)==null?void 0:g.title},(x=T==null?void 0:T.default)==null?void 0:x.uiSchema)},n.name,!1),u(A)}}else if(p&&!cn(p,m)){const A=(M=(k=(I=m[0])==null?void 0:I.children)==null?void 0:k[0])==null?void 0:M.name,T=s(A);o({interface:A,uiSchema:F({title:(B=n==null?void 0:n.uiSchema)==null?void 0:B.title},(V=T==null?void 0:T.default)==null?void 0:V.uiSchema)},n.name,!1),u(A)}},[m]),d.useEffect(()=>{if(n!=null&&n.possibleTypes){const $=Ct(c,C);h($)}},[C]),["oho","obo","o2m","m2o","m2m"].includes(n.interface)?a.jsx(S.Tag,{children:i((D=c.find($=>$.key==="relation").children.find($=>$.name===t))==null?void 0:D.label)},t):a.jsx(S.Select,{"aria-label":`field-interface-${n==null?void 0:n.type}`,role:"button",value:p,style:{width:"100%"},popupMatchSelectWidth:!1,onChange:$=>{var b,f;const v=s($);o({interface:$,uiSchema:F({title:(b=n==null?void 0:n.uiSchema)==null?void 0:b.title},(f=v==null?void 0:v.default)==null?void 0:f.uiSchema)},n.name),u($)},children:m.map($=>a.jsx(S.Select.OptGroup,{label:i($.label),children:$.children.map(v=>a.jsx(S.Select.Option,{value:v.name,children:i(v.label)},v.name))},$.key))})},{displayName:"CollectionFieldInterfaceSelect"}),$e=["string","bigInt","integer","uuid","uid"],un=_.observer(e=>{var u,m;const{name:t}=G.useParams(),{collectionName:o,sourceKey:n,name:s}=r.useRecord(),i=_.useField(),c=r.useCompile(),{getCollection:l}=r.useCollectionManager_deprecated(),p=(u=l(o||s,t).fields)==null?void 0:u.filter(h=>h.primaryKey||h.unique).map(h=>{var C;return{value:h.name,label:c(((C=h.uiSchema)==null?void 0:C.title)||h.title||h.name)}});return d.useEffect(()=>{var h;i.initialValue=((h=p==null?void 0:p[0])==null?void 0:h.value)||n},[]),a.jsx("div",{children:a.jsx(S.Select,{disabled:n,options:p,defaultValue:((m=p==null?void 0:p[0])==null?void 0:m.value)||n,onChange:e==null?void 0:e.onChange,showSearch:!0})})},{displayName:"SourceKey"}),vt=_.observer(e=>{const{disabled:t}=e,o=r.useAPIClient(),[n,s]=d.useState([]),{name:i}=G.useParams(),c=r.useRecord(),l=_.useField(),{collectionName:p,target:u,type:m,through:h,name:C}=c,D=c[l.props.name],{getCollection:$}=r.useCollectionManager_deprecated(),v=r.useCompile(),b=_.useForm(),[f,y]=d.useState(D);return d.useEffect(()=>{var I;l.initialValue=null;const g=["belongsTo"].includes(m)?p:["belongsToMany"].includes(m)?h:u,x=(I=$(g,i))==null?void 0:I.fields;if(x){const k=x==null?void 0:x.filter(M=>$e.includes(M.type)).map(M=>{var B;return{value:M.name,label:v(((B=M.uiSchema)==null?void 0:B.title)||M.title||M.name)}});if(s(k),D){const M=k.find(B=>B.value===D);y((M==null?void 0:M.label)||D)}}},[m]),d.useEffect(()=>{y(D)},[D]),a.jsx("div",{children:a.jsx(S.Select,{disabled:t,value:f,options:n,showSearch:!0,onDropdownVisibleChange:g=>P(this,null,function*(){var B;const{target:x,type:I,through:k}=b.values,M=["belongsTo"].includes(I)?p||C:["belongsToMany"].includes(I)?k:x;if(M&&g){const{data:V}=yield o.request({url:`dataSourcesCollections/${i}.${M}/fields:list`,params:{paginate:!1,filter:{$or:[{"interface.$not":null},{"options.source.$notEmpty":!0}]},sort:["sort"]}});s((B=V.data)==null?void 0:B.filter(A=>$e.includes(A.type)).map(A=>{var T;return{value:A.name,label:v(((T=A.uiSchema)==null?void 0:T.title)||A.title||A.name)}}))}}),onChange:g=>{var x;(x=e==null?void 0:e.onChange)==null||x.call(e,g),y(g)}})})},{displayName:"ForeignKey"}),pn=_.observer(e=>{const{value:t,disabled:o}=e,{targetKey:n,target:s,type:i}=r.useRecord(),{name:c}=G.useParams(),{getCollection:l}=r.useCollectionManager_deprecated(),p=r.useAPIClient(),[u,m]=d.useState([]),[h,C]=d.useState(t||n),D=_.useForm(),$=r.useCompile(),v=_.useField();return v.required=!0,d.useEffect(()=>{var b;s&&m((b=l(s,c).fields)==null?void 0:b.filter(f=>i!=="hasMany"?f.primaryKey||f.unique:$e.includes(f.type)).map(f=>{var y;return{value:f.name,label:$(((y=f==null?void 0:f.uiSchema)==null?void 0:y.title)||f.title||f.name)}}))},[]),a.jsx("div",{children:a.jsx(S.Select,{showSearch:!0,options:u,onDropdownVisibleChange:b=>P(this,null,function*(){var g;const{target:f,type:y}=D.values;if(f&&b){const{data:x}=yield p.request({url:`dataSourcesCollections/${c}.${f}/fields:list`,params:{paginate:!1,filter:{$or:[{"interface.$not":null},{"options.source.$notEmpty":!0}]},sort:["sort"]}});m((g=x.data)==null?void 0:g.filter(I=>y!=="hasMany"?I.primaryKey||I.unique:$e.includes(I.type)).map(I=>{var k;return{value:I.name,label:$(((k=I.uiSchema)==null?void 0:k.title)||I.title||I.name)}}))}}),onChange:b=>{var f;(f=e==null?void 0:e.onChange)==null||f.call(e,b),C(b)},value:h,disabled:o})})},{displayName:"TargetKey"}),dn=_.observer(()=>{const e=r.useCompile(),{targetCollection:t}=it();return a.jsx("div",{children:a.jsx(S.Select,{disabled:!0,showSearch:!0,popupMatchSelectWidth:!1,value:t.name,options:[{value:t.name,label:e(t.title||t.name)}]})})},{displayName:"SourceCollection"}),mn=_.observer(e=>{const{disabled:t}=e,o=r.useCompile(),[n,s]=d.useState([]),{name:i}=G.useParams(),c=_.useField(),{getCollections:l}=r.useCollectionManager_deprecated(i),u=r.useRecord()[c.props.name],m=()=>l().filter(C=>!(C.autoCreate&&C.isThrough)).map(C=>({label:o(C.title||C.name),value:C.name}));return d.useEffect(()=>{const h=m();s(h)},[]),a.jsx("div",{children:a.jsx(S.Select,{disabled:t,showSearch:!0,popupMatchSelectWidth:!1,fieldNames:{label:"label",value:"value"},defaultValue:u,options:n,onChange:h=>{var C;(C=e==null?void 0:e.onChange)==null||C.call(e,h)}})})},{displayName:"ThroughCollection"}),yn=(e,t,o)=>{var i;if(!e)return;const n=Y.cloneDeep(e.properties);n!=null&&n.foreignKey&&(n.foreignKey["x-component"]=vt),e.hasDefaultValue===!0&&(n.defaultValue=Y.cloneDeep((i=e==null?void 0:e.default)==null?void 0:i.uiSchema),n.defaultValue.required=!1,n.defaultValue.title=o('{{ t("Default value") }}'),n.defaultValue["x-decorator"]="FormItem",n.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 s=j(F({name:`f_${N.uid()}`},Y.cloneDeep(e.default)),{interface:e.name});return s.reverseField&&(s.reverseField.name=`f_${N.uid()}`),{type:"object",properties:{[N.uid()]:{type:"void","x-component":"Action.Drawer","x-component-props":{getContainer:"{{ getContainer }}"},"x-decorator":"Form","x-decorator-props":{useValues(c){return r.useRequest(()=>Promise.resolve({data:s}),c)}},title:`${o(t.title||t.name)} - ${o('{{ t("Add field") }}')}`,properties:j(F({summary:{type:"void","x-component":"FieldSummary","x-component-props":{schemaKey:e.name}}},n),{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 }}"}}}}})}}}},fn=()=>{const e=_.useForm(),t=r.useActionContext(),{refresh:o}=r.useResourceActionContext(),n=_.useField(),s=r.useAPIClient(),i=r.useRecord(),{name:c}=G.useParams(),l=r.useDataSourceManager();return{run(){return P(this,null,function*(){yield e.submit(),n.data=n.data||{},n.data.loading=!0;const u=Y.cloneDeep(e.values);u.autoCreateReverseField||delete u.reverseField,delete u.autoCreateReverseField;try{yield s.request({url:`dataSourcesCollections/${c}.${i.name}/fields:create`,method:"post",data:u}),t.setVisible(!1),l.getDataSource(c).reload(),yield e.reset(),n.data.loading=!1,o()}catch(m){n.data.loading=!1}})}}},gn=e=>{const t=r.useRecord();return a.jsx(hn,F({item:t},e))},hn=e=>{const{scope:t,getContainer:o,item:n,children:s,trigger:i,align:c,database:l}=e,{getInterface:p,getTemplate:u,collections:m}=r.useCollectionManager_deprecated(),[h,C]=d.useState(!1),[D,$]=d.useState(),[v,b]=d.useState({}),f=r.useCompile(),{t:y}=K.useTranslation(),{data:{database:g}}=r.useCurrentAppInfo(),x=A=>(g==null?void 0:g.dialect)===A,I=d.useMemo(()=>m.map(A=>({label:f(A.title),value:A.name})),[]),k=r.useFieldInterfaceOptions(),M=d.useCallback(()=>{const{availableFieldInterfaces:A}=u(n.template)||{},{exclude:T,include:w}=A||{},U=[];return k.forEach(z=>{var R;if(z.key==="relation"){let J=[];w!=null&&w.length?w.forEach(X=>{var H;const Se=(H=z==null?void 0:z.children)==null?void 0:H.find(zo=>[X,X.interface].includes(zo.value));Se&&J.push(j(F({},Se),{targetScope:X==null?void 0:X.targetScope}))}):T!=null&&T.length?J=(R=z==null?void 0:z.children)==null?void 0:R.filter(X=>!T.includes(X.value)):J=z==null?void 0:z.children,J!=null&&J.length&&U.push(j(F({},z),{children:J}))}}),U},[u,n]),B=d.useMemo(()=>M().map(A=>{var T;return((T=A==null?void 0:A.children)==null?void 0:T.length)===0?null:n.template==="view"?{type:"group",label:f(A.label),title:f(A.label),key:A.label,children:A.children.filter(w=>["m2o"].includes(w.name)).map(w=>({label:f(w.title),title:f(w.title),key:w.name,dataTargetScope:w.targetScope}))}:{type:"group",label:f(A.label),title:f(A.label),key:A.label,children:A==null?void 0:A.children.filter(w=>!["o2o","subTable","linkTo"].includes(w.name)).map(w=>({label:f(w.title),title:f(w.title),key:w.name,dataTargetScope:w.targetScope}))}}).filter(A=>{var T;return(T=A==null?void 0:A.children)==null?void 0:T.length}),[M]),V=d.useMemo(()=>({style:{maxHeight:"60vh",overflow:"auto"},onClick:A=>{const T=A.item.props["data-targetScope"];T&&$(T);const w=yn(p(A.key),n,f);w&&(b(w),C(!0))},items:B}),[p,B,n]);return n.template!=="sql"&&a.jsx(r.RecordProvider,{record:n,children:a.jsxs(r.ActionContextProvider,{value:{visible:h,setVisible:C},children:[a.jsx(S.Dropdown,{getPopupContainer:o,trigger:i,align:c,menu:V,children:s||a.jsx(S.Button,{icon:a.jsx(Q.PlusOutlined,{}),type:"primary",children:y("Add field")})}),a.jsx(r.SchemaComponent,{schema:v,components:{ArrayTable:ae.ArrayTable},scope:F({getContainer:o,useCancelAction:r.useCancelAction,createOnly:!0,isOverride:!1,override:!1,useCreateCollectionField:fn,record:n,showReverseFieldConfig:!1,targetScope:D,collections:I,isDialect:x,disabledJSONB:!1,createMainOnly:!0},t)})]})})},Cn=_.observer(e=>{const{value:t,handleFieldChange:o}=e,n=r.useRecord(),[s,i]=d.useState(t),c=u=>{i(u)},l=d.useMemo(()=>Y.debounce(u=>{o({uiSchema:j(F({},n==null?void 0:n.uiSchema),{title:u})},n.name)},1e3),[o,n]),p=u=>{const m=u.target.value;c(m),l(m)};return d.useEffect(()=>{i(t)},[t]),a.jsx(S.Input,{value:s,onChange:p,style:{minWidth:"100px"},"aria-label":"field-title-input"})},{displayName:"FieldTitleInput"}),vn=()=>{const{refresh:e}=r.useResourceActionContext(),{name:t}=G.useParams(),{name:o,collectionName:n}=r.useRecord(),s=r.useAPIClient();return{run(){return P(this,null,function*(){yield s.request({url:`dataSourcesCollections/${t}.${n}/fields:destroy?filterByTk=${o}`,method:"post"}),e()})}}},bn=()=>{const{state:e,setState:t,refresh:o}=r.useResourceActionContext(),{t:n}=K.useTranslation(),{name:s}=G.useParams(),i=r.useAPIClient(),{name:c}=r.useRecord();return{run(){return P(this,null,function*(){var p;if(!((p=e==null?void 0:e.selectedRowKeys)!=null&&p.length))return S.message.error(n("Please select the records you want to delete"));yield i.request({url:`dataSourcesCollections/${s}.${c}/fields:destroy`,method:"post",params:{filterByTk:(e==null?void 0:e.selectedRowKeys)||[]}}),t==null||t({selectedRowKeys:[]}),o()})}}},xn=()=>{const{run:e}=bn();return{run(){return P(this,null,function*(){yield e()})}}},Sn=()=>{const{run:e}=vn();return{run(){return P(this,null,function*(){yield e()})}}};var Te=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function Fe(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function An(){this.__data__=[],this.size=0}var $n=An;function Tn(e,t){return e===t||e!==e&&t!==t}var bt=Tn,Fn=bt;function wn(e,t){for(var o=e.length;o--;)if(Fn(e[o][0],t))return o;return-1}var we=wn,_n=we,Pn=Array.prototype,Dn=Pn.splice;function In(e){var t=this.__data__,o=_n(t,e);if(o<0)return!1;var n=t.length-1;return o==n?t.pop():Dn.call(t,o,1),--this.size,!0}var On=In,Mn=we;function En(e){var t=this.__data__,o=Mn(t,e);return o<0?void 0:t[o][1]}var jn=En,kn=we;function Kn(e){return kn(this.__data__,e)>-1}var Nn=Kn,Bn=we;function Vn(e,t){var o=this.__data__,n=Bn(o,e);return n<0?(++this.size,o.push([e,t])):o[n][1]=t,this}var Ln=Vn,qn=$n,Gn=On,Un=jn,zn=Nn,Hn=Ln;function se(e){var t=-1,o=e==null?0:e.length;for(this.clear();++t<o;){var n=e[t];this.set(n[0],n[1])}}se.prototype.clear=qn,se.prototype.delete=Gn,se.prototype.get=Un,se.prototype.has=zn,se.prototype.set=Hn;var _e=se,Wn=_e;function Qn(){this.__data__=new Wn,this.size=0}var Yn=Qn;function Jn(e){var t=this.__data__,o=t.delete(e);return this.size=t.size,o}var Zn=Jn;function Xn(e){return this.__data__.get(e)}var Rn=Xn;function er(e){return this.__data__.has(e)}var tr=er,or=typeof Te=="object"&&Te&&Te.Object===Object&&Te,xt=or,nr=xt,rr=typeof self=="object"&&self&&self.Object===Object&&self,ar=nr||rr||Function("return this")(),Z=ar,sr=Z,ir=sr.Symbol,ge=ir,St=ge,At=Object.prototype,cr=At.hasOwnProperty,lr=At.toString,he=St?St.toStringTag:void 0;function ur(e){var t=cr.call(e,he),o=e[he];try{e[he]=void 0;var n=!0}catch(i){}var s=lr.call(e);return n&&(t?e[he]=o:delete e[he]),s}var pr=ur,dr=Object.prototype,mr=dr.toString;function yr(e){return mr.call(e)}var fr=yr,$t=ge,gr=pr,hr=fr,Cr="[object Null]",vr="[object Undefined]",Tt=$t?$t.toStringTag:void 0;function br(e){return e==null?e===void 0?vr:Cr:Tt&&Tt in Object(e)?gr(e):hr(e)}var ie=br;function xr(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var ce=xr,Sr=ie,Ar=ce,$r="[object AsyncFunction]",Tr="[object Function]",Fr="[object GeneratorFunction]",wr="[object Proxy]";function _r(e){if(!Ar(e))return!1;var t=Sr(e);return t==Tr||t==Fr||t==$r||t==wr}var Ft=_r,Pr=Z,Dr=Pr["__core-js_shared__"],Ir=Dr,Be=Ir,wt=function(){var e=/[^.]+$/.exec(Be&&Be.keys&&Be.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Or(e){return!!wt&&wt in e}var Mr=Or,Er=Function.prototype,jr=Er.toString;function kr(e){if(e!=null){try{return jr.call(e)}catch(t){}try{return e+""}catch(t){}}return""}var _t=kr,Kr=Ft,Nr=Mr,Br=ce,Vr=_t,Lr=/[\\^$.*+?()[\]{}|]/g,qr=/^\[object .+?Constructor\]$/,Gr=Function.prototype,Ur=Object.prototype,zr=Gr.toString,Hr=Ur.hasOwnProperty,Wr=RegExp("^"+zr.call(Hr).replace(Lr,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Qr(e){if(!Br(e)||Nr(e))return!1;var t=Kr(e)?Wr:qr;return t.test(Vr(e))}var Yr=Qr;function Jr(e,t){return e==null?void 0:e[t]}var Zr=Jr,Xr=Yr,Rr=Zr;function ea(e,t){var o=Rr(e,t);return Xr(o)?o:void 0}var te=ea,ta=te,oa=Z,na=ta(oa,"Map"),Ve=na,ra=te,aa=ra(Object,"create"),Pe=aa,Pt=Pe;function sa(){this.__data__=Pt?Pt(null):{},this.size=0}var ia=sa;function ca(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var la=ca,ua=Pe,pa="__lodash_hash_undefined__",da=Object.prototype,ma=da.hasOwnProperty;function ya(e){var t=this.__data__;if(ua){var o=t[e];return o===pa?void 0:o}return ma.call(t,e)?t[e]:void 0}var fa=ya,ga=Pe,ha=Object.prototype,Ca=ha.hasOwnProperty;function va(e){var t=this.__data__;return ga?t[e]!==void 0:Ca.call(t,e)}var ba=va,xa=Pe,Sa="__lodash_hash_undefined__";function Aa(e,t){var o=this.__data__;return this.size+=this.has(e)?0:1,o[e]=xa&&t===void 0?Sa:t,this}var $a=Aa,Ta=ia,Fa=la,wa=fa,_a=ba,Pa=$a;function le(e){var t=-1,o=e==null?0:e.length;for(this.clear();++t<o;){var n=e[t];this.set(n[0],n[1])}}le.prototype.clear=Ta,le.prototype.delete=Fa,le.prototype.get=wa,le.prototype.has=_a,le.prototype.set=Pa;var Da=le,Dt=Da,Ia=_e,Oa=Ve;function Ma(){this.size=0,this.__data__={hash:new Dt,map:new(Oa||Ia),string:new Dt}}var Ea=Ma;function ja(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var ka=ja,Ka=ka;function Na(e,t){var o=e.__data__;return Ka(t)?o[typeof t=="string"?"string":"hash"]:o.map}var De=Na,Ba=De;function Va(e){var t=Ba(this,e).delete(e);return this.size-=t?1:0,t}var La=Va,qa=De;function Ga(e){return qa(this,e).get(e)}var Ua=Ga,za=De;function Ha(e){return za(this,e).has(e)}var Wa=Ha,Qa=De;function Ya(e,t){var o=Qa(this,e),n=o.size;return o.set(e,t),this.size+=o.size==n?0:1,this}var Ja=Ya,Za=Ea,Xa=La,Ra=Ua,es=Wa,ts=Ja;function ue(e){var t=-1,o=e==null?0:e.length;for(this.clear();++t<o;){var n=e[t];this.set(n[0],n[1])}}ue.prototype.clear=Za,ue.prototype.delete=Xa,ue.prototype.get=Ra,ue.prototype.has=es,ue.prototype.set=ts;var It=ue,os=_e,ns=Ve,rs=It,as=200;function ss(e,t){var o=this.__data__;if(o instanceof os){var n=o.__data__;if(!ns||n.length<as-1)return n.push([e,t]),this.size=++o.size,this;o=this.__data__=new rs(n)}return o.set(e,t),this.size=o.size,this}var is=ss,cs=_e,ls=Yn,us=Zn,ps=Rn,ds=tr,ms=is;function pe(e){var t=this.__data__=new cs(e);this.size=t.size}pe.prototype.clear=ls,pe.prototype.delete=us,pe.prototype.get=ps,pe.prototype.has=ds,pe.prototype.set=ms;var ys=pe;function fs(e,t){for(var o=-1,n=e==null?0:e.length;++o<n&&t(e[o],o,e)!==!1;);return e}var gs=fs,hs=te,Cs=function(){try{var e=hs(Object,"defineProperty");return e({},"",{}),e}catch(t){}}(),Ot=Cs,Mt=Ot;function vs(e,t,o){t=="__proto__"&&Mt?Mt(e,t,{configurable:!0,enumerable:!0,value:o,writable:!0}):e[t]=o}var Et=vs,bs=Et,xs=bt,Ss=Object.prototype,As=Ss.hasOwnProperty;function $s(e,t,o){var n=e[t];(!(As.call(e,t)&&xs(n,o))||o===void 0&&!(t in e))&&bs(e,t,o)}var Le=$s,Ts=Le,Fs=Et;function ws(e,t,o,n){var s=!o;o||(o={});for(var i=-1,c=t.length;++i<c;){var l=t[i],p=n?n(o[l],e[l],l,o,e):void 0;p===void 0&&(p=e[l]),s?Fs(o,l,p):Ts(o,l,p)}return o}var Ce=ws;function _s(e,t){for(var o=-1,n=Array(e);++o<e;)n[o]=t(o);return n}var Ps=_s;function Ds(e){return e!=null&&typeof e=="object"}var oe=Ds,Is=ie,Os=oe,Ms="[object Arguments]";function Es(e){return Os(e)&&Is(e)==Ms}var js=Es,jt=js,ks=oe,kt=Object.prototype,Ks=kt.hasOwnProperty,Ns=kt.propertyIsEnumerable,Bs=jt(function(){return arguments}())?jt:function(e){return ks(e)&&Ks.call(e,"callee")&&!Ns.call(e,"callee")},Kt=Bs,Vs=Array.isArray,ne=Vs,Ie={exports:{}};function Ls(){return!1}var qs=Ls;Ie.exports,function(e,t){var o=Z,n=qs,s=t&&!t.nodeType&&t,i=s&&!0&&e&&!e.nodeType&&e,c=i&&i.exports===s,l=c?o.Buffer:void 0,p=l?l.isBuffer:void 0,u=p||n;e.exports=u}(Ie,Ie.exports);var Nt=Ie.exports,Gs=9007199254740991,Us=/^(?:0|[1-9]\d*)$/;function zs(e,t){var o=typeof e;return t=t==null?Gs:t,!!t&&(o=="number"||o!="symbol"&&Us.test(e))&&e>-1&&e%1==0&&e<t}var Bt=zs,Hs=9007199254740991;function Ws(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Hs}var Vt=Ws,Qs=ie,Ys=Vt,Js=oe,Zs="[object Arguments]",Xs="[object Array]",Rs="[object Boolean]",ei="[object Date]",ti="[object Error]",oi="[object Function]",ni="[object Map]",ri="[object Number]",ai="[object Object]",si="[object RegExp]",ii="[object Set]",ci="[object String]",li="[object WeakMap]",ui="[object ArrayBuffer]",pi="[object DataView]",di="[object Float32Array]",mi="[object Float64Array]",yi="[object Int8Array]",fi="[object Int16Array]",gi="[object Int32Array]",hi="[object Uint8Array]",Ci="[object Uint8ClampedArray]",vi="[object Uint16Array]",bi="[object Uint32Array]",q={};q[di]=q[mi]=q[yi]=q[fi]=q[gi]=q[hi]=q[Ci]=q[vi]=q[bi]=!0,q[Zs]=q[Xs]=q[ui]=q[Rs]=q[pi]=q[ei]=q[ti]=q[oi]=q[ni]=q[ri]=q[ai]=q[si]=q[ii]=q[ci]=q[li]=!1;function xi(e){return Js(e)&&Ys(e.length)&&!!q[Qs(e)]}var Si=xi;function Ai(e){return function(t){return e(t)}}var qe=Ai,Oe={exports:{}};Oe.exports,function(e,t){var o=xt,n=t&&!t.nodeType&&t,s=n&&!0&&e&&!e.nodeType&&e,i=s&&s.exports===n,c=i&&o.process,l=function(){try{var p=s&&s.require&&s.require("util").types;return p||c&&c.binding&&c.binding("util")}catch(u){}}();e.exports=l}(Oe,Oe.exports);var Ge=Oe.exports,$i=Si,Ti=qe,Lt=Ge,qt=Lt&&Lt.isTypedArray,Fi=qt?Ti(qt):$i,wi=Fi,_i=Ps,Pi=Kt,Di=ne,Ii=Nt,Oi=Bt,Mi=wi,Ei=Object.prototype,ji=Ei.hasOwnProperty;function ki(e,t){var o=Di(e),n=!o&&Pi(e),s=!o&&!n&&Ii(e),i=!o&&!n&&!s&&Mi(e),c=o||n||s||i,l=c?_i(e.length,String):[],p=l.length;for(var u in e)(t||ji.call(e,u))&&!(c&&(u=="length"||s&&(u=="offset"||u=="parent")||i&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||Oi(u,p)))&&l.push(u);return l}var Gt=ki,Ki=Object.prototype;function Ni(e){var t=e&&e.constructor,o=typeof t=="function"&&t.prototype||Ki;return e===o}var Ue=Ni;function Bi(e,t){return function(o){return e(t(o))}}var Ut=Bi,Vi=Ut,Li=Vi(Object.keys,Object),qi=Li,Gi=Ue,Ui=qi,zi=Object.prototype,Hi=zi.hasOwnProperty;function Wi(e){if(!Gi(e))return Ui(e);var t=[];for(var o in Object(e))Hi.call(e,o)&&o!="constructor"&&t.push(o);return t}var Qi=Wi,Yi=Ft,Ji=Vt;function Zi(e){return e!=null&&Ji(e.length)&&!Yi(e)}var zt=Zi,Xi=Gt,Ri=Qi,ec=zt;function tc(e){return ec(e)?Xi(e):Ri(e)}var ze=tc,oc=Ce,nc=ze;function rc(e,t){return e&&oc(t,nc(t),e)}var ac=rc;function sc(e){var t=[];if(e!=null)for(var o in Object(e))t.push(o);return t}var ic=sc,cc=ce,lc=Ue,uc=ic,pc=Object.prototype,dc=pc.hasOwnProperty;function mc(e){if(!cc(e))return uc(e);var t=lc(e),o=[];for(var n in e)n=="constructor"&&(t||!dc.call(e,n))||o.push(n);return o}var yc=mc,fc=Gt,gc=yc,hc=zt;function Cc(e){return hc(e)?fc(e,!0):gc(e)}var He=Cc,vc=Ce,bc=He;function xc(e,t){return e&&vc(t,bc(t),e)}var Sc=xc,Me={exports:{}};Me.exports,function(e,t){var o=Z,n=t&&!t.nodeType&&t,s=n&&!0&&e&&!e.nodeType&&e,i=s&&s.exports===n,c=i?o.Buffer:void 0,l=c?c.allocUnsafe:void 0;function p(u,m){if(m)return u.slice();var h=u.length,C=l?l(h):new u.constructor(h);return u.copy(C),C}e.exports=p}(Me,Me.exports);var Ac=Me.exports;function $c(e,t){var o=-1,n=e.length;for(t||(t=Array(n));++o<n;)t[o]=e[o];return t}var Tc=$c;function Fc(e,t){for(var o=-1,n=e==null?0:e.length,s=0,i=[];++o<n;){var c=e[o];t(c,o,e)&&(i[s++]=c)}return i}var wc=Fc;function _c(){return[]}var Ht=_c,Pc=wc,Dc=Ht,Ic=Object.prototype,Oc=Ic.propertyIsEnumerable,Wt=Object.getOwnPropertySymbols,Mc=Wt?function(e){return e==null?[]:(e=Object(e),Pc(Wt(e),function(t){return Oc.call(e,t)}))}:Dc,We=Mc,Ec=Ce,jc=We;function kc(e,t){return Ec(e,jc(e),t)}var Kc=kc;function Nc(e,t){for(var o=-1,n=t.length,s=e.length;++o<n;)e[s+o]=t[o];return e}var Qe=Nc,Bc=Ut,Vc=Bc(Object.getPrototypeOf,Object),Ye=Vc,Lc=Qe,qc=Ye,Gc=We,Uc=Ht,zc=Object.getOwnPropertySymbols,Hc=zc?function(e){for(var t=[];e;)Lc(t,Gc(e)),e=qc(e);return t}:Uc,Qt=Hc,Wc=Ce,Qc=Qt;function Yc(e,t){return Wc(e,Qc(e),t)}var Jc=Yc,Zc=Qe,Xc=ne;function Rc(e,t,o){var n=t(e);return Xc(e)?n:Zc(n,o(e))}var Yt=Rc,el=Yt,tl=We,ol=ze;function nl(e){return el(e,ol,tl)}var rl=nl,al=Yt,sl=Qt,il=He;function cl(e){return al(e,il,sl)}var Jt=cl,ll=te,ul=Z,pl=ll(ul,"DataView"),dl=pl,ml=te,yl=Z,fl=ml(yl,"Promise"),gl=fl,hl=te,Cl=Z,vl=hl(Cl,"Set"),bl=vl,xl=te,Sl=Z,Al=xl(Sl,"WeakMap"),$l=Al,Je=dl,Ze=Ve,Xe=gl,Re=bl,et=$l,Zt=ie,de=_t,Xt="[object Map]",Tl="[object Object]",Rt="[object Promise]",eo="[object Set]",to="[object WeakMap]",oo="[object DataView]",Fl=de(Je),wl=de(Ze),_l=de(Xe),Pl=de(Re),Dl=de(et),re=Zt;(Je&&re(new Je(new ArrayBuffer(1)))!=oo||Ze&&re(new Ze)!=Xt||Xe&&re(Xe.resolve())!=Rt||Re&&re(new Re)!=eo||et&&re(new et)!=to)&&(re=function(e){var t=Zt(e),o=t==Tl?e.constructor:void 0,n=o?de(o):"";if(n)switch(n){case Fl:return oo;case wl:return Xt;case _l:return Rt;case Pl:return eo;case Dl:return to}return t});var tt=re,Il=Object.prototype,Ol=Il.hasOwnProperty;function Ml(e){var t=e.length,o=new e.constructor(t);return t&&typeof e[0]=="string"&&Ol.call(e,"index")&&(o.index=e.index,o.input=e.input),o}var El=Ml,jl=Z,kl=jl.Uint8Array,Kl=kl,no=Kl;function Nl(e){var t=new e.constructor(e.byteLength);return new no(t).set(new no(e)),t}var ot=Nl,Bl=ot;function Vl(e,t){var o=t?Bl(e.buffer):e.buffer;return new e.constructor(o,e.byteOffset,e.byteLength)}var Ll=Vl,ql=/\w*$/;function Gl(e){var t=new e.constructor(e.source,ql.exec(e));return t.lastIndex=e.lastIndex,t}var Ul=Gl,ro=ge,ao=ro?ro.prototype:void 0,so=ao?ao.valueOf:void 0;function zl(e){return so?Object(so.call(e)):{}}var Hl=zl,Wl=ot;function Ql(e,t){var o=t?Wl(e.buffer):e.buffer;return new e.constructor(o,e.byteOffset,e.length)}var Yl=Ql,Jl=ot,Zl=Ll,Xl=Ul,Rl=Hl,eu=Yl,tu="[object Boolean]",ou="[object Date]",nu="[object Map]",ru="[object Number]",au="[object RegExp]",su="[object Set]",iu="[object String]",cu="[object Symbol]",lu="[object ArrayBuffer]",uu="[object DataView]",pu="[object Float32Array]",du="[object Float64Array]",mu="[object Int8Array]",yu="[object Int16Array]",fu="[object Int32Array]",gu="[object Uint8Array]",hu="[object Uint8ClampedArray]",Cu="[object Uint16Array]",vu="[object Uint32Array]";function bu(e,t,o){var n=e.constructor;switch(t){case lu:return Jl(e);case tu:case ou:return new n(+e);case uu:return Zl(e,o);case pu:case du:case mu:case yu:case fu:case gu:case hu:case Cu:case vu:return eu(e,o);case nu:return new n;case ru:case iu:return new n(e);case au:return Xl(e);case su:return new n;case cu:return Rl(e)}}var xu=bu,Su=ce,io=Object.create,Au=function(){function e(){}return function(t){if(!Su(t))return{};if(io)return io(t);e.prototype=t;var o=new e;return e.prototype=void 0,o}}(),$u=Au,Tu=$u,Fu=Ye,wu=Ue;function _u(e){return typeof e.constructor=="function"&&!wu(e)?Tu(Fu(e)):{}}var Pu=_u,Du=tt,Iu=oe,Ou="[object Map]";function Mu(e){return Iu(e)&&Du(e)==Ou}var Eu=Mu,ju=Eu,ku=qe,co=Ge,lo=co&&co.isMap,Ku=lo?ku(lo):ju,Nu=Ku,Bu=tt,Vu=oe,Lu="[object Set]";function qu(e){return Vu(e)&&Bu(e)==Lu}var Gu=qu,Uu=Gu,zu=qe,uo=Ge,po=uo&&uo.isSet,Hu=po?zu(po):Uu,Wu=Hu,Qu=ys,Yu=gs,Ju=Le,Zu=ac,Xu=Sc,Ru=Ac,ep=Tc,tp=Kc,op=Jc,np=rl,rp=Jt,ap=tt,sp=El,ip=xu,cp=Pu,lp=ne,up=Nt,pp=Nu,dp=ce,mp=Wu,yp=ze,fp=He,gp=1,hp=2,Cp=4,mo="[object Arguments]",vp="[object Array]",bp="[object Boolean]",xp="[object Date]",Sp="[object Error]",yo="[object Function]",Ap="[object GeneratorFunction]",$p="[object Map]",Tp="[object Number]",fo="[object Object]",Fp="[object RegExp]",wp="[object Set]",_p="[object String]",Pp="[object Symbol]",Dp="[object WeakMap]",Ip="[object ArrayBuffer]",Op="[object DataView]",Mp="[object Float32Array]",Ep="[object Float64Array]",jp="[object Int8Array]",kp="[object Int16Array]",Kp="[object Int32Array]",Np="[object Uint8Array]",Bp="[object Uint8ClampedArray]",Vp="[object Uint16Array]",Lp="[object Uint32Array]",L={};L[mo]=L[vp]=L[Ip]=L[Op]=L[bp]=L[xp]=L[Mp]=L[Ep]=L[jp]=L[kp]=L[Kp]=L[$p]=L[Tp]=L[fo]=L[Fp]=L[wp]=L[_p]=L[Pp]=L[Np]=L[Bp]=L[Vp]=L[Lp]=!0,L[Sp]=L[yo]=L[Dp]=!1;function Ee(e,t,o,n,s,i){var c,l=t&gp,p=t&hp,u=t&Cp;if(o&&(c=s?o(e,n,s,i):o(e)),c!==void 0)return c;if(!dp(e))return e;var m=lp(e);if(m){if(c=sp(e),!l)return ep(e,c)}else{var h=ap(e),C=h==yo||h==Ap;if(up(e))return Ru(e,l);if(h==fo||h==mo||C&&!s){if(c=p||C?{}:cp(e),!l)return p?op(e,Xu(c,e)):tp(e,Zu(c,e))}else{if(!L[h])return s?e:{};c=ip(e,h,l)}}i||(i=new Qu);var D=i.get(e);if(D)return D;i.set(e,c),mp(e)?e.forEach(function(b){c.add(Ee(b,t,o,b,e,i))}):pp(e)&&e.forEach(function(b,f){c.set(f,Ee(b,t,o,f,e,i))});var $=u?p?rp:np:p?fp:yp,v=m?void 0:$(e);return Yu(v||e,function(b,f){v&&(f=b,b=e[f]),Ju(c,f,Ee(b,t,o,f,e,i))}),c}var go=Ee,qp=go,Gp=1,Up=4;function zp(e){return qp(e,Gp|Up)}var Hp=zp;const ee=Fe(Hp);function Wp(e,t){for(var o=-1,n=e==null?0:e.length,s=Array(n);++o<n;)s[o]=t(e[o],o,e);return s}var ho=Wp,Qp=ie,Yp=oe,Jp="[object Symbol]";function Zp(e){return typeof e=="symbol"||Yp(e)&&Qp(e)==Jp}var nt=Zp,Xp=ne,Rp=nt,ed=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,td=/^\w*$/;function od(e,t){if(Xp(e))return!1;var o=typeof e;return o=="number"||o=="symbol"||o=="boolean"||e==null||Rp(e)?!0:td.test(e)||!ed.test(e)||t!=null&&e in Object(t)}var nd=od,Co=It,rd="Expected a function";function rt(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(rd);var o=function(){var n=arguments,s=t?t.apply(this,n):n[0],i=o.cache;if(i.has(s))return i.get(s);var c=e.apply(this,n);return o.cache=i.set(s,c)||i,c};return o.cache=new(rt.Cache||Co),o}rt.Cache=Co;var ad=rt,sd=ad,id=500;function cd(e){var t=sd(e,function(n){return o.size===id&&o.clear(),n}),o=t.cache;return t}var ld=cd,ud=ld,pd=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,dd=/\\(\\)?/g,md=ud(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(pd,function(o,n,s,i){t.push(s?i.replace(dd,"$1"):n||o)}),t}),yd=md,vo=ge,fd=ho,gd=ne,hd=nt,Cd=1/0,bo=vo?vo.prototype:void 0,xo=bo?bo.toString:void 0;function So(e){if(typeof e=="string")return e;if(gd(e))return fd(e,So)+"";if(hd(e))return xo?xo.call(e):"";var t=e+"";return t=="0"&&1/e==-Cd?"-0":t}var vd=So,bd=vd;function xd(e){return e==null?"":bd(e)}var Sd=xd,Ad=ne,$d=nd,Td=yd,Fd=Sd;function wd(e,t){return Ad(e)?e:$d(e,t)?[e]:Td(Fd(e))}var je=wd;function _d(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}var Pd=_d,Dd=nt,Id=1/0;function Od(e){if(typeof e=="string"||Dd(e))return e;var t=e+"";return t=="0"&&1/e==-Id?"-0":t}var at=Od,Md=je,Ed=at;function jd(e,t){t=Md(t,e);for(var o=0,n=t.length;e!=null&&o<n;)e=e[Ed(t[o++])];return o&&o==n?e:void 0}var kd=jd;function Kd(e,t,o){var n=-1,s=e.length;t<0&&(t=-t>s?0:s+t),o=o>s?s:o,o<0&&(o+=s),s=t>o?0:o-t>>>0,t>>>=0;for(var i=Array(s);++n<s;)i[n]=e[n+t];return i}var Nd=Kd,Bd=kd,Vd=Nd;function Ld(e,t){return t.length<2?e:Bd(e,Vd(t,0,-1))}var qd=Ld,Gd=je,Ud=Pd,zd=qd,Hd=at;function Wd(e,t){return t=Gd(t,e),e=zd(e,t),e==null||delete e[Hd(Ud(t))]}var Qd=Wd,Yd=ie,Jd=Ye,Zd=oe,Xd="[object Object]",Rd=Function.prototype,em=Object.prototype,Ao=Rd.toString,tm=em.hasOwnProperty,om=Ao.call(Object);function nm(e){if(!Zd(e)||Yd(e)!=Xd)return!1;var t=Jd(e);if(t===null)return!0;var o=tm.call(t,"constructor")&&t.constructor;return typeof o=="function"&&o instanceof o&&Ao.call(o)==om}var rm=nm,am=rm;function sm(e){return am(e)?void 0:e}var im=sm,$o=ge,cm=Kt,lm=ne,To=$o?$o.isConcatSpreadable:void 0;function um(e){return lm(e)||cm(e)||!!(To&&e&&e[To])}var pm=um,dm=Qe,mm=pm;function Fo(e,t,o,n,s){var i=-1,c=e.length;for(o||(o=mm),s||(s=[]);++i<c;){var l=e[i];t>0&&o(l)?t>1?Fo(l,t-1,o,n,s):dm(s,l):n||(s[s.length]=l)}return s}var ym=Fo,fm=ym;function gm(e){var t=e==null?0:e.length;return t?fm(e,1):[]}var hm=gm;function Cm(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 vm=Cm,bm=vm,wo=Math.max;function xm(e,t,o){return t=wo(t===void 0?e.length-1:t,0),function(){for(var n=arguments,s=-1,i=wo(n.length-t,0),c=Array(i);++s<i;)c[s]=n[t+s];s=-1;for(var l=Array(t+1);++s<t;)l[s]=n[s];return l[t]=o(c),bm(e,this,l)}}var Sm=xm;function Am(e){return function(){return e}}var $m=Am;function Tm(e){return e}var Fm=Tm,wm=$m,_o=Ot,_m=Fm,Pm=_o?function(e,t){return _o(e,"toString",{configurable:!0,enumerable:!1,value:wm(t),writable:!0})}:_m,Dm=Pm,Im=800,Om=16,Mm=Date.now;function Em(e){var t=0,o=0;return function(){var n=Mm(),s=Om-(n-o);if(o=n,s>0){if(++t>=Im)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var jm=Em,km=Dm,Km=jm,Nm=Km(km),Bm=Nm,Vm=hm,Lm=Sm,qm=Bm;function Gm(e){return qm(Lm(e,void 0,Vm),e+"")}var Um=Gm,zm=ho,Hm=go,Wm=Qd,Qm=je,Ym=Ce,Jm=im,Zm=Um,Xm=Jt,Rm=1,ey=2,ty=4,oy=Zm(function(e,t){var o={};if(e==null)return o;var n=!1;t=zm(t,function(i){return i=Qm(i,e),n||(n=i.length>1),i}),Ym(e,Xm(e),o),n&&(o=Hm(o,Rm|ey|ty,Jm));for(var s=t.length;s--;)Wm(o,t[s]);return o}),ny=oy;const ke=Fe(ny);var ry=Le,ay=je,sy=Bt,Po=ce,iy=at;function cy(e,t,o,n){if(!Po(e))return e;t=ay(t,e);for(var s=-1,i=t.length,c=i-1,l=e;l!=null&&++s<i;){var p=iy(t[s]),u=o;if(p==="__proto__"||p==="constructor"||p==="prototype")return e;if(s!=c){var m=l[p];u=n?n(m,p,l):void 0,u===void 0&&(u=Po(m)?m:sy(t[s+1])?[]:{})}ry(l,p,u),l=l[p]}return e}var ly=cy,uy=ly;function py(e,t,o){return e==null?e:uy(e,t,o)}var dy=py;const Do=Fe(dy),my=({schema:e,record:t,parentRecord:o,compile:n,getContainer:s})=>{if(!e)return;const i=ee(e.properties);return i!=null&&i.name&&(i.name["x-disabled"]=!0),e.hasDefaultValue===!0&&(i.defaultValue=ee(e.default.uiSchema)||{},i.defaultValue.required=!1,i.defaultValue.title=n('{{ t("Default value") }}'),i.defaultValue["x-decorator"]="FormItem",i.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]}}"}}}},i.defaultValue["x-disabled"]=!0),{type:"object",properties:{[N.uid()]:{type:"void","x-component":"Action.Drawer","x-component-props":{getContainer:"{{ getContainer }}"},"x-decorator":"Form","x-decorator-props":{useValues(c){return r.useRequest(()=>{var l;return Promise.resolve({data:j(F({},ee(ke(e.default,["uiSchema.rawTitle"]))),{autoFill:((l=e.default)==null?void 0:l.autoFill)!==!1})})},c)}},title:`${n((o==null?void 0:o.title)||(o==null?void 0:o.name))} - ${n('{{ t("Edit field") }}')}`,properties:j(F({summary:{type:"void","x-component":"FieldSummary","x-component-props":{schemaKey:e.name}}},i),{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 }}"}}}}})}}}},yy=()=>{const e=_.useForm(),t=r.useAPIClient(),o=r.useActionContext(),{refresh:n}=r.useResourceActionContext(),{targetCollection:s}=it(),{name:i}=G.useParams(),{name:c}=r.useRecord(),l=r.useDataSourceManager();return{run(){return P(this,null,function*(){yield e.submit();const u=ee(e.values);u.autoCreateReverseField||delete u.reverseField,delete u.autoCreateReverseField,yield t.request({url:`dataSourcesCollections/${i}.${s.name}/fields:update?filterByTk=${c}`,method:"post",data:u}),o.setVisible(!1),l.getDataSource(i).reload(),yield e.reset(),n()})}}},fy=e=>{const t=r.useRecord(),o=r.useCollectionParentRecordData();return a.jsx(gy,F({item:t,parentItem:o},e))},gy=e=>{var B,V;const M=e,{scope:t,getContainer:o,item:n,parentItem:s,children:i}=M,c=ut(M,["scope","getContainer","item","parentItem","children"]),{getInterface:l,collections:p,getCollection:u}=r.useCollectionManager_deprecated(),{data:{database:m}}=r.useCurrentAppInfo(),[h,C]=d.useState(!1),[D,$]=d.useState({}),v=r.useAPIClient(),{t:b}=K.useTranslation(),f=r.useCompile(),{name:y}=G.useParams(),g=A=>(m==null?void 0:m.dialect)===A,x=(n==null?void 0:n.fields)||((V=(B=u(n.collectionName,y))==null?void 0:B.options)==null?void 0:V.fields),I=d.useMemo(()=>p.map(A=>({label:f(A.title),value:A.name})),[]),k=d.useMemo(()=>{var A,T;return(n==null?void 0:n.fields)||((T=(A=u(n.collectionName,y))==null?void 0:A.options)==null?void 0:T.fields.filter(w=>["string","bigInt","integer"].includes(w.type)).map(w=>{var U;return{value:w.name,label:f((U=w.uiSchema)==null?void 0:U.title)}}))},[n.name,x]);return a.jsx(r.RecordProvider,{record:n,parent:s,children:a.jsxs(r.ActionContextProvider,{value:{visible:h,setVisible:C},children:[a.jsx("a",j(F({},c),{onClick:()=>P(this,null,function*(){var z,R,J;const{data:A}=yield v.request({url:`dataSourcesCollections/${y}.${s.name}/fields:get?filterByTk=${n.name}`,params:{appends:["reverseField"]}}),T=l((z=A==null?void 0:A.data)==null?void 0:z.interface),w=ee(A==null?void 0:A.data)||{};w!=null&&w.reverseField||(w.autoCreateReverseField=!1,w.reverseField=(R=T==null?void 0:T.default)==null?void 0:R.reverseField,Do(w.reverseField,"name",`f_${N.uid()}`),Do(w.reverseField,"uiSchema.title",(J=n.__parent)==null?void 0:J.title));const U=my({schema:j(F({},T),{default:w}),record:n,parentRecord:s,compile:f,getContainer:o});$(U),C(!0)}),children:i||b("Edit")})),a.jsx(r.SchemaComponent,{schema:D,components:{ArrayTable:ae.ArrayTable},scope:j(F({getContainer:o,useUpdateCollectionField:yy,useCancelAction:r.useCancelAction,showReverseFieldConfig:!1,collections:I,isDialect:g,scopeKeyOptions:k,disabledJSONB:!0},t),{createOnly:!1,createMainOnly:!1,editMainOnly:!0})})]})})},hy=_.observer(e=>{const{value:t,handleFieldChange:o,onChange:n}=e,s=r.useRecord(),i=s;return i!=null&&i.possibleTypes?a.jsx(S.Select,{"aria-label":`field-type-${t}`,role:"button",defaultValue:t,popupMatchSelectWidth:!1,style:{width:"100%"},options:(i==null?void 0:i.possibleTypes.map(c=>({label:c,value:c})))||[],onChange:c=>{n==null||n(c),o(j(F({},i),{type:c}),s.name)}}):a.jsx(S.Tag,{children:t})},{displayName:"FieldType"}),Cy=()=>{const{t:e}=K.useTranslation(),{unsupportedFields:t}=r.useRecord(),o=[{title:e("Field name"),dataIndex:"name",key:"name"},{title:e("Field database type",{ns:E}),dataIndex:"rawType",key:"rawType"}];return(t==null?void 0:t.length)>0&&a.jsxs(a.Fragment,{children:[a.jsx(S.Divider,{plain:!0,orientation:"left",orientationMargin:"0",children:a.jsx("h3",{children:e("Unknown field type",{ns:E})})}),a.jsx("div",{style:{marginBottom:"15px"},children:e("The following field types are not compatible and do not support output and display",{ns:E})}),a.jsx(S.Table,{columns:o,dataSource:t,pagination:!1})]})},st=d.createContext({refreshRM:()=>{},titleField:null,targetCollection:null});st.displayName="RemoteCollectionContext";const it=()=>d.useContext(st),Io=()=>{const e=_.useField(),t=d.useMemo(()=>ye.createForm(),[]),o=r.useAttach(t.createArrayField(j(F({},e.props),{basePath:""}))),{t:n}=K.useTranslation(),{name:s}=G.useParams(),i=r.useAPIClient(),c=r.useCompile(),l=d.useContext(r.ResourceActionContext),p=r.useResourceContext(),{targetKey:u}=p||{},m=r.useRecord(),{[u]:h,titleField:C,name:D}=m,[$,v]=d.useState(C),b=A=>{const T=d.useContext(r.ResourceActionContext),w=_.useField();return d.useEffect(()=>{T.loading||(A==null||A.onSuccess(T.data),w.componentProps.dragSort=!!T.dragSort)},[T.loading]),T},f={association:{sourceKey:"name",targetKey:"name"},dragSort:!1,collection:rn,request:{url:`dataSourcesCollections/${s}.${D}/fields:list`,params:{paginate:!1,filter:{$or:[{"interface.$not":null},{"options.source.$notEmpty":!0}]},sort:["sort"]}}},y=r.useDataSourceManager();let g=!1;const x=[],I=()=>P(this,null,function*(){if(g||x.length===0)return;g=!0;const{value:A,filterByTk:T,flag:w}=x.shift();try{yield M(A,T,w)}catch(U){console.error("Error processing handleFieldChange:",U)}finally{g=!1,I()}}),k=(A,T,w)=>{x.push({value:A,filterByTk:T,flag:w}),I()},M=(A,T,w=!0)=>P(this,null,function*(){yield i.request({url:`dataSourcesCollections/${s}.${D}/fields:update?filterByTk=${T}`,method:"post",data:A}),y.getDataSource(s).reload(),w&&S.message.success(n("Saved successfully"))}),B=()=>({filterByTk:h,titleField:$,dataSourceKey:s,setTitleField:v}),V=(A,T,w)=>P(this,null,function*(){var X,Se;const{targetScope:U}=T,z=((X=A.props)==null?void 0:X.name)==="inherits",{data:R}=yield i.request({url:`dataSources/${s}/collections:list`,params:{paginate:!1,appends:["fields"],sort:["sort"]}});return((Se=R==null?void 0:R.data)==null?void 0:Se.filter(H=>{var Ho;if(w!=null&&w.includes(H.template)||H.autoCreate&&H.isThrough||z&&H.template==="view")return!1;const Vf=!(U!=null&&U.template)||U.template.includes(H.template),Lf=!(U!=null&&U[(Ho=A.props)==null?void 0:Ho.name])||U[A.props.name].includes(H.name);return Vf&&Lf})).map(H=>({label:c(H.title||H.name),value:H.name}))});return a.jsxs(st.Provider,{value:{refreshRM:()=>{l.refresh()},titleField:$,targetCollection:m},children:[a.jsx(r.ResourceActionProvider,j(F({},f),{children:a.jsx(_.FormContext.Provider,{value:t,children:a.jsx(_.FieldContext.Provider,{value:o,children:a.jsx(r.SchemaComponentOptions,{components:{TitleField:sn,CollectionFieldInterfaceSelect:ln,AddCollectionField:gn,SourceCollection:dn,TargetKey:pn,SourceKey:un,FieldTitleInput:Cn,EditCollectionField:fy,Select:r.Select,FieldType:hy,ForeignKey:vt,ThroughCollection:mn},inherit:!0,scope:{useDataSource:b,useTitleFieldProps:B,enqueueChange:k,useDestroyActionAndRefreshCM:Sn,useBulkDestroyActionAndRefreshCM:xn,loadCollections:V},children:a.jsx(_.RecursionField,{schema:an,onlyRenderProperties:!0})})})})})),a.jsx(Cy,{})]})},vy=(e,t,o,n)=>{if(!e)return;const s=ee(e.configurableProperties)||{title:{"x-component":"CollectionField","x-decorator":"FormItem"},name:{"x-component":"CollectionField","x-decorator":"FormItem"}};return e.hasDefaultValue===!0&&(s.defaultValue=ee(e.default.uiSchema),s.defaultValue.title=o('{{ t("Default value") }}'),s.defaultValue["x-decorator"]="FormItem"),{type:"object",properties:{[N.uid()]:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{useValues:"{{ useValuesFromRecord }}"},title:'{{ t("Edit collection") }}',properties:j(F({},ke(s,"category","inherits","moreOptions")),{filterTargetKey:{title:`{{ t("Filter target key",{ ns: "${E}" }) }}`,type:"single",description:r.tval("Filter data based on the specific field, with the requirement that the field value must be unique.",{ns:E}),"x-decorator":"FormItem","x-component":"Select",enum:"{{filterTargetKeyOptions}}","x-visible":"{{!!isView}}"},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 }}"}}}}})}}}},by=e=>{const t=r.useRecord(),o=r.useRequest(()=>{var s;return Promise.resolve({data:j(F({},ke(ee(t),["__parent","__collectionName"])),{category:(s=t==null?void 0:t.category)==null?void 0:s.map(i=>i.id)})})},j(F({},e),{manual:!0})),n=r.useActionContext();return d.useEffect(()=>{n.visible&&o.run()},[n.visible]),o},xy=e=>{const{refreshCM:t}=r.useCollectionManager_deprecated(),o=_.useForm(),n=r.useActionContext(),{name:s}=G.useParams(),{refresh:i}=r.useResourceActionContext(),{resource:c,targetKey:l}=r.useResourceContext(),{[l]:p}=r.useRecord(),u=r.useAPIClient(),m=r.useDataSourceManager();return{run(){return P(this,null,function*(){yield o.submit(),yield u.request({url:`dataSources/${s}/collections:update?filterByTk=${p}`,method:"post",data:F({},ke(o.values,["fields","autoGenId","createdAt","updatedAt","createdBy","updatedBy","sortable"]))}),yield m.getDataSource(s).reload(),n.setVisible(!1),yield o.reset(),i(),yield t()})}}},Sy=e=>{const t=r.useRecord();return a.jsx(Ay,F({item:t},e))},Ay=e=>{var v;const $=e,{scope:t,getContainer:o,item:n,children:s}=$,i=ut($,["scope","getContainer","item","children"]),{getTemplate:c}=r.useCollectionManager_deprecated(),[l,p]=d.useState(!1),[u,m]=d.useState({}),{t:h}=K.useTranslation(),C=r.useCompile(),D=(v=n.fields)==null?void 0:v.map(b=>{var f;return{label:(f=b.uiSchema)!=null&&f.title?C(b.uiSchema.title):b.name,value:b.name}});return a.jsx(r.RecordProvider,{record:n,children:a.jsxs(r.ActionContextProvider,{value:{visible:l,setVisible:p},children:[a.jsx("a",j(F({},i),{onClick:()=>P(this,null,function*(){const b=c(n.template),f=vy(F({},b),n,C);m(f),p(!0)}),children:s||h("Edit")})),a.jsx(r.SchemaComponent,{schema:u,components:{ArrayTable:ae.ArrayTable},scope:F({getContainer:o,useValuesFromRecord:by,useUpdateCollectionActionAndRefreshCM:xy,useCancelAction:r.useCancelAction,createOnly:!1,filterTargetKeyOptions:D,isView:n.view},t)})]})})},$y=(e,t)=>(o,n)=>{o.loading=!0,e(o,n,t).then(pt.action.bound(s=>{o.dataSource=s,o.loading=!1})).catch(s=>console.log(s))},Ty=()=>{const[e,t]=d.useState([]);return[e,t]},Fy=()=>{const e=r.useRecord(),t=_.useForm();return{run(){return P(this,null,function*(){var s,i,c;const n=(c=(i=(s=t.values)==null?void 0:s.children)==null?void 0:i.slice)==null?void 0:c.call(i);t.setValuesIn("children",n.filter(l=>l.name!==e.name))})}}},wy=()=>({run(){return P(this,null,function*(){})}}),_y=e=>`${e||""}${N.uid()}`,Py=()=>{const{t:e}=K.useTranslation(),{interfaces:t}=r.useCollectionManager_deprecated(),{data:{database:o}}=r.useCurrentAppInfo(),n=r.useDataSourceManager(),s=d.useContext(r.SchemaComponentContext),{name:i}=G.useParams(),c=d.useContext(r.CollectionCategroriesContext),l=r.useAPIClient(),p=l.resource("dbViews"),u=r.useCompile(),m=()=>P(this,null,function*(){return c.data.map(v=>({label:u(v.name),value:v.id}))}),h=()=>P(this,null,function*(){return p.list().then(({data:v})=>{var b;return(b=v==null?void 0:v.data)==null?void 0:b.map(f=>{const y=f.schema;return{label:y?`${y}.${u(f.name)}`:f.name,value:y?`${y}_${f.name}`:f.name}})})}),C=()=>P(this,null,function*(){return l.resource("storages").list().then(({data:v})=>{var b;return(b=v==null?void 0:v.data)==null?void 0:b.map(f=>({label:e(u(f.title)),value:f.name}))})}),D=()=>{const v=d.useContext(r.ResourceActionContext),b=r.useAPIClient(),f=_.useField(),{name:y}=G.useParams();f.data=f.data||{};const{setDataSource:g,dataSource:x}=d.useContext(Ae);return{onClick(){return P(this,null,function*(){var k,M,B;f.data.loading=!0;try{const{data:V}=yield b.request({url:`dataSources:refresh?filterByTk=${y}&clientStatus=${(x==null?void 0:x.status)||"loaded"}`,method:"post"});f.data.loading=!1,g(V==null?void 0:V.data),((k=V==null?void 0:V.data)==null?void 0:k.status)==="reloading"?S.message.warning(e("Data source synchronization in progress")):((M=V==null?void 0:V.data)==null?void 0:M.status)==="loaded"&&(S.message.success(e("Data source synchronization successful")),(B=v==null?void 0:v.refresh)==null||B.call(v)),yield n.getDataSource(y).reload()}catch(V){f.data.loading=!1}})}}},$=d.useMemo(()=>nn(i),[i]);return a.jsx(r.SchemaComponentContext.Provider,{value:j(F({},s),{designable:!1}),children:a.jsx(r.SchemaComponent,{schema:$,components:{EditCollection:Sy,AddSubFieldAction:r.AddSubFieldAction,EditSubFieldAction:r.EditSubFieldAction,FieldSummary:r.FieldSummary,TemplateSummay:r.TemplateSummary,CollectionFields:Io},scope:{useRefreshActionProps:D,useDestroySubField:Fy,useBulkDestroySubField:wy,useSelectedRowKeys:Ty,useAsyncDataSource:$y,loadCategories:m,loadDBViews:h,loadStorages:C,useNewId:_y,useCancelAction:r.useCancelAction,interfaces:t,enableInherits:(o==null?void 0:o.dialect)==="postgres",isPG:(o==null?void 0:o.dialect)==="postgres"}})})};var Oo={exports:{}};/*!
2
2
  Copyright (c) 2018 Jed Watson.
3
3
  Licensed under the MIT License (MIT), see
4
4
  http://jedwatson.github.io/classnames
5
- */(function(e){(function(){var t={}.hasOwnProperty;function o(){for(var n=[],s=0;s<arguments.length;s++){var i=arguments[s];if(i){var c=typeof i;if(c==="string"||c==="number")n.push(i);else if(Array.isArray(i)){if(i.length){var l=o.apply(null,i);l&&n.push(l)}}else if(c==="object"){if(i.toString!==Object.prototype.toString&&!i.toString.toString().includes("[native code]")){n.push(i.toString());continue}for(var p in i)t.call(i,p)&&i[p]&&n.push(p)}}}return n.join(" ")}e.exports?(o.default=o,e.exports=o):window.classNames=o})()})(Oo);var _y=Oo.exports;const Py=Te(_y);var Dy=function(e,t){var o;if("ConfigContext"in x.ConfigProvider){var n=d.useContext(x.ConfigProvider.ConfigContext).getPrefixCls;return n(e,t==null?void 0:t.prefixCls)}else{var s=(o=t==null?void 0:t.prefixCls)!==null&&o!==void 0?o:"ant-";return"".concat(s).concat(e!=null?e:"")}};const Iy=e=>{const t=Dy("description-input",e),{data:{name:o,tableName:n}}=r.useCollectionRecord();return a.jsx("div",{className:Py(t,e.className),style:e.style,children:o!==n?a.jsxs(a.Fragment,{children:[o," ",a.jsxs("span",{style:{color:"GrayText"},children:["(",n,")"]})]}):e.value})},Oy=Object.assign(T.connect(x.Input,T.mapProps((e,t)=>N(A({},e),{suffix:a.jsx("span",{children:t!=null&&t.loading||t!=null&&t.validating?a.jsx(Y.LoadingOutlined,{}):e.suffix})})),T.mapReadPretty(Iy))),My=({item:e})=>{const{t}=V.useTranslation(),o=r.useCompile();return a.jsxs(x.Space,{children:[a.jsx(x.Badge,{color:e.color}),t(o(e.name))]})},jy=T.observer(e=>{const[t,o]=d.useState(null),{refresh:n}=d.useContext(r.CollectionCategroriesContext),{refresh:s}=r.useResourceActionContext(),i=r.useAPIClient(),c=y=>D(this,null,function*(){const{active:g,over:C}=y;setTimeout(()=>{o(null)}),C&&C.id!==g.id&&(yield i.resource("collectionCategories").move({sourceId:g.id,targetId:C.id}),yield n(),yield s())});function l(y){var g;o((g=y.active)==null?void 0:g.data.current)}const p=Q.useSensor(Q.MouseSensor,{activationConstraint:{distance:10}}),u=Q.useSensors(p);return a.jsxs(Q.DndContext,{sensors:u,onDragEnd:c,onDragStart:l,children:[e.children,a.jsx(Q.DragOverlay,{children:t?a.jsx("span",{style:{whiteSpace:"nowrap"},children:a.jsx(My,{item:t})}):null})]})},{displayName:"DndProvider"}),Ey=()=>{const{t:e}=V.useTranslation(),{data:t}=d.useContext(r.CollectionCategroriesContext),o=r.useCompile();if(!t)return null;const n=t.sort((i,c)=>c.sort-i.sort).concat().map(i=>N(A({},i),{schema:Ne}));!n.find(i=>i.id==="all")&&n.unshift({name:'{{t("All collections")}}',id:"all",sort:0,closable:!1,schema:Ne});const s=()=>D(this,null,function*(){return t.map(i=>({label:e(o(i.name)),value:i.id}))});return a.jsx(jy,{children:a.jsx(x.Card,{bordered:!1,children:a.jsx(r.SchemaComponentOptions,{components:{CollectionFields:Io,CollectionName:Oy},inherit:!0,scope:{loadCategories:s},children:a.jsx(T.RecursionField,{schema:Ne,onlyRenderProperties:!0})})})})},ky={type:"object",properties:{[B.uid()]:{"x-component":"ConfigurationTable"}}},Ky=()=>a.jsx(r.SchemaComponent,{schema:ky,components:{CollectionCategroriesProvider:r.CollectionCategroriesProvider,ConfigurationTable:wy,ConfigurationTabs:Ey,AddFieldAction:r.AddFieldAction,AddCollectionField:r.AddCollectionField,AddCollection:r.AddCollection,AddCollectionAction:r.AddCollectionAction,EditCollection:r.EditCollection,EditCollectionAction:r.EditCollectionAction,DeleteCollection:r.DeleteCollection,DeleteCollectionAction:r.DeleteCollectionAction,EditFieldAction:r.EditFieldAction,EditCollectionField:r.EditCollectionField,OverridingCollectionField:r.OverridingCollectionField,OverridingFieldAction:r.OverridingFieldAction,ViewCollectionField:r.ViewCollectionField,ViewFieldAction:r.ViewFieldAction,SyncFieldsAction:r.SyncFieldsAction,SyncFieldsActionCom:r.SyncFieldsActionCom,SyncSQLFieldsAction:r.SyncSQLFieldsAction}}),Ny=()=>{const[e,t]=d.useState({}),o=r.usePlugin(be),n=r.useCompile(),[s,i]=d.useState(!1),{t:c}=V.useTranslation(),[l,p]=d.useState(null),u=r.useAPIClient(),y=g=>{const C=[...o.types.keys()].map(I=>{const $=o.types.get(I);return{value:$.name,label:n($.label)}});g.dataSource=C};return a.jsx("div",{children:a.jsxs(r.ActionContext.Provider,{value:{visible:s,setVisible:i},children:[a.jsx(x.Dropdown,{menu:{onClick(g){if(g.key==="__empty__")return;const C=o.types.get(g.key);p(g.key),i(!0),t({type:"object",properties:{[B.uid()]:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{initialValue:{type:g.key}},title:n("{{t('Add new')}}")+" - "+n(C.label),properties:{body:{type:"void","x-component":C.DataSourceSettingsForm},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{testConnectiion:{title:`{{ t("Test Connection",{ ns: "${E}" }) }}`,"x-component":"Action","x-component-props":{useAction:"{{ useTestConnectionAction }}"}},cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ cm.useCreateAction }}",actionCallback:"{{ dataSourceCreateCallback }}"}}}}}}}})},items:[o.types.size?null:{key:"__empty__",label:a.jsx(x.Empty,{image:x.Empty.PRESENTED_IMAGE_SIMPLE,description:a.jsxs(a.Fragment,{children:[c("No external data source plugin installed",{ns:E}),a.jsx("br",{})," ",a.jsx("a",{target:"_blank",href:u.auth.locale==="zh-CN"?"https://docs-cn.nocobase.com/handbook/data-source-manager":"https://docs.nocobase.com/handbook/data-source-manager",rel:"noreferrer",children:c("View documentation",{ns:E})})]})})}].filter(Boolean).concat([...o.types.keys()].map(g=>{const C=o.types.get(g);return{key:g,label:n(C==null?void 0:C.label)}}))},children:a.jsxs(x.Button,{type:"primary",icon:a.jsx(Y.PlusOutlined,{}),children:[c("Add new")," ",a.jsx(Y.DownOutlined,{})]})}),a.jsx(r.SchemaComponent,{scope:{createOnly:!1,useTestConnectionAction:dt,dialect:l,useDialectDataSource:y},schema:e})]})})},Vy=()=>{const e=r.useRecord(),[t,o]=d.useState({}),n=r.usePlugin(be),s=r.useCompile(),[i,c]=d.useState(!1),{t:l}=V.useTranslation(),p=r.useDataSourceManager(),u=()=>{const y=T.useField(),g=T.useForm(),C=r.useActionContext(),{refresh:I}=r.useResourceActionContext(),{resource:$}=r.useResourceContext(),{key:S}=r.useRecord();return{run(){return D(this,null,function*(){yield g.submit(),y.data=y.data||{},y.data.loading=!0;try{yield $.update({filterByTk:S,values:g.values}),C.setVisible(!1),p.getDataSource(S).setOptions(g.values),p.getDataSource(S).reload(),yield g.reset(),I()}catch(h){console.log(h)}finally{y.data.loading=!1}})}}};return a.jsx("div",{children:a.jsxs(r.ActionContext.Provider,{value:{visible:i,setVisible:c},children:[e.key!=="main"&&a.jsx("a",{onClick:()=>{c(!0);const y=n.types.get(e.type);o({type:"object",properties:{[B.uid()]:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{initialValue:e},title:s("{{t('Edit')}}")+" - "+s(e.displayName),properties:{body:{type:"void","x-component":y.DataSourceSettingsForm},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},testConnectiion:{title:`{{ t("Test Connection",{ ns: "${E}" }) }}`,"x-component":"Action","x-component-props":{useAction:"{{ useTestConnectionAction }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ useUpdateAction }}"}}}}}}}})},children:l("Edit")}),a.jsx(r.SchemaComponent,{scope:{createOnly:!0,useUpdateAction:u},schema:t})]})})},By=e=>`/admin/settings/data-source-manager/${e}/collections`,Ly=()=>{const e=r.useRecord(),t=U.useNavigate(),{t:o}=V.useTranslation();return a.jsx("div",{className:e.enabled?void 0:ye.css`
5
+ */(function(e){(function(){var t={}.hasOwnProperty;function o(){for(var n=[],s=0;s<arguments.length;s++){var i=arguments[s];if(i){var c=typeof i;if(c==="string"||c==="number")n.push(i);else if(Array.isArray(i)){if(i.length){var l=o.apply(null,i);l&&n.push(l)}}else if(c==="object"){if(i.toString!==Object.prototype.toString&&!i.toString.toString().includes("[native code]")){n.push(i.toString());continue}for(var p in i)t.call(i,p)&&i[p]&&n.push(p)}}}return n.join(" ")}e.exports?(o.default=o,e.exports=o):window.classNames=o})()})(Oo);var Dy=Oo.exports;const Iy=Fe(Dy);var Oy=function(e,t){var o;if("ConfigContext"in S.ConfigProvider){var n=d.useContext(S.ConfigProvider.ConfigContext).getPrefixCls;return n(e,t==null?void 0:t.prefixCls)}else{var s=(o=t==null?void 0:t.prefixCls)!==null&&o!==void 0?o:"ant-";return"".concat(s).concat(e!=null?e:"")}};const My=e=>{const t=Oy("description-input",e),{data:{name:o,tableName:n}}=r.useCollectionRecord();return a.jsx("div",{className:Iy(t,e.className),style:e.style,children:o!==n?a.jsxs(a.Fragment,{children:[o," ",a.jsxs("span",{style:{color:"GrayText"},children:["(",n,")"]})]}):e.value})},Ey=Object.assign(_.connect(S.Input,_.mapProps((e,t)=>j(F({},e),{suffix:a.jsx("span",{children:t!=null&&t.loading||t!=null&&t.validating?a.jsx(Q.LoadingOutlined,{}):e.suffix})})),_.mapReadPretty(My))),jy=({item:e})=>{const{t}=K.useTranslation(),o=r.useCompile();return a.jsxs(S.Space,{children:[a.jsx(S.Badge,{color:e.color}),t(o(e.name))]})},ky=_.observer(e=>{const[t,o]=d.useState(null),{refresh:n}=d.useContext(r.CollectionCategroriesContext),{refresh:s}=r.useResourceActionContext(),i=r.useAPIClient(),c=m=>P(this,null,function*(){const{active:h,over:C}=m;setTimeout(()=>{o(null)}),C&&C.id!==h.id&&(yield i.resource("collectionCategories").move({sourceId:h.id,targetId:C.id}),yield n(),yield s())});function l(m){var h;o((h=m.active)==null?void 0:h.data.current)}const p=W.useSensor(W.MouseSensor,{activationConstraint:{distance:10}}),u=W.useSensors(p);return a.jsxs(W.DndContext,{sensors:u,onDragEnd:c,onDragStart:l,children:[e.children,a.jsx(W.DragOverlay,{children:t?a.jsx("span",{style:{whiteSpace:"nowrap"},children:a.jsx(jy,{item:t})}):null})]})},{displayName:"DndProvider"}),Ky=()=>{const{t:e}=K.useTranslation(),{data:t}=d.useContext(r.CollectionCategroriesContext),o=r.useCompile();if(!t)return null;const n=t.sort((i,c)=>c.sort-i.sort).concat().map(i=>j(F({},i),{schema:Ne}));!n.find(i=>i.id==="all")&&n.unshift({name:'{{t("All collections")}}',id:"all",sort:0,closable:!1,schema:Ne});const s=()=>P(this,null,function*(){return t.map(i=>({label:e(o(i.name)),value:i.id}))});return a.jsx(ky,{children:a.jsx(S.Card,{bordered:!1,children:a.jsx(r.SchemaComponentOptions,{components:{CollectionFields:Io,CollectionName:Ey},inherit:!0,scope:{loadCategories:s},children:a.jsx(_.RecursionField,{schema:Ne,onlyRenderProperties:!0})})})})},Ny={type:"object",properties:{[N.uid()]:{"x-component":"ConfigurationTable"}}},By=()=>a.jsx(r.SchemaComponent,{schema:Ny,components:{CollectionCategroriesProvider:r.CollectionCategroriesProvider,ConfigurationTable:Py,ConfigurationTabs:Ky,AddFieldAction:r.AddFieldAction,AddCollectionField:r.AddCollectionField,AddCollection:r.AddCollection,AddCollectionAction:r.AddCollectionAction,EditCollection:r.EditCollection,EditCollectionAction:r.EditCollectionAction,DeleteCollection:r.DeleteCollection,DeleteCollectionAction:r.DeleteCollectionAction,EditFieldAction:r.EditFieldAction,EditCollectionField:r.EditCollectionField,OverridingCollectionField:r.OverridingCollectionField,OverridingFieldAction:r.OverridingFieldAction,ViewCollectionField:r.ViewCollectionField,ViewFieldAction:r.ViewFieldAction,SyncFieldsAction:r.SyncFieldsAction,SyncFieldsActionCom:r.SyncFieldsActionCom,SyncSQLFieldsAction:r.SyncSQLFieldsAction}}),Vy=()=>{const[e,t]=d.useState({}),o=r.usePlugin(xe),n=r.useCompile(),[s,i]=d.useState(!1),{t:c}=K.useTranslation(),[l,p]=d.useState(null),u=r.useAPIClient(),m=h=>{const C=[...o.types.keys()].map(D=>{const $=o.types.get(D);return{value:$.name,label:n($.label)}});h.dataSource=C};return a.jsx("div",{children:a.jsxs(r.ActionContext.Provider,{value:{visible:s,setVisible:i},children:[a.jsx(S.Dropdown,{menu:{onClick(h){if(h.key==="__empty__")return;const C=o.types.get(h.key);p(h.key),i(!0),t({type:"object",properties:{[N.uid()]:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{initialValue:{type:h.key}},title:n("{{t('Add new')}}")+" - "+n(C.label),properties:{body:{type:"void","x-component":C.DataSourceSettingsForm},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{testConnectiion:{title:`{{ t("Test Connection",{ ns: "${E}" }) }}`,"x-component":"Action","x-component-props":{useAction:"{{ useTestConnectionAction }}"}},cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ cm.useCreateAction }}",actionCallback:"{{ dataSourceCreateCallback }}"}}}}}}}})},items:[o.types.size?null:{key:"__empty__",label:a.jsx(S.Empty,{image:S.Empty.PRESENTED_IMAGE_SIMPLE,description:a.jsxs(a.Fragment,{children:[c("No external data source plugin installed",{ns:E}),a.jsx("br",{})," ",a.jsx("a",{target:"_blank",href:u.auth.locale==="zh-CN"?"https://docs-cn.nocobase.com/handbook/data-source-manager":"https://docs.nocobase.com/handbook/data-source-manager",rel:"noreferrer",children:c("View documentation",{ns:E})})]})})}].filter(Boolean).concat([...o.types.keys()].map(h=>{const C=o.types.get(h);return{key:h,label:n(C==null?void 0:C.label)}}))},children:a.jsxs(S.Button,{type:"primary",icon:a.jsx(Q.PlusOutlined,{}),children:[c("Add new")," ",a.jsx(Q.DownOutlined,{})]})}),a.jsx(r.SchemaComponent,{scope:{createOnly:!1,useTestConnectionAction:dt,dialect:l,useDialectDataSource:m},schema:e})]})})},Ly=()=>{const e=r.useRecord(),[t,o]=d.useState({}),n=r.usePlugin(xe),s=r.useCompile(),[i,c]=d.useState(!1),{t:l}=K.useTranslation(),p=r.useDataSourceManager(),u=()=>{const m=_.useField(),h=_.useForm(),C=r.useActionContext(),{refresh:D}=r.useResourceActionContext(),{resource:$}=r.useResourceContext(),{key:v}=r.useRecord();return{run(){return P(this,null,function*(){yield h.submit(),m.data=m.data||{},m.data.loading=!0;try{yield $.update({filterByTk:v,values:h.values}),C.setVisible(!1),p.getDataSource(v).setOptions(h.values),p.getDataSource(v).reload(),yield h.reset(),D()}catch(f){console.log(f)}finally{m.data.loading=!1}})}}};return a.jsx("div",{children:a.jsxs(r.ActionContext.Provider,{value:{visible:i,setVisible:c},children:[e.key!=="main"&&a.jsx("a",{onClick:()=>{c(!0);const m=n.types.get(e.type);o({type:"object",properties:{[N.uid()]:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{initialValue:e},title:s("{{t('Edit')}}")+" - "+s(e.displayName),properties:{body:{type:"void","x-component":m.DataSourceSettingsForm},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},testConnectiion:{title:`{{ t("Test Connection",{ ns: "${E}" }) }}`,"x-component":"Action","x-component-props":{useAction:"{{ useTestConnectionAction }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ useUpdateAction }}"}}}}}}}})},children:l("Edit")}),a.jsx(r.SchemaComponent,{scope:{createOnly:!0,useUpdateAction:u},schema:t})]})})},qy=e=>`/admin/settings/data-source-manager/${e}/collections`,Gy=()=>{const e=r.useRecord(),t=G.useNavigate(),{t:o}=K.useTranslation();return a.jsx("div",{className:e.enabled?void 0:fe.css`
6
6
  .ant-btn-link {
7
7
  &:hover {
8
8
  color: rgba(0, 0, 0, 0.25) !important;
9
9
  }
10
10
  }
11
- `,children:a.jsx(x.Button,{type:"link",style:{padding:"0px"},disabled:!e.enabled,onClick:()=>{t(By(e.key))},role:"button","aria-label":`${e==null?void 0:e.key}-Configure`,children:o("Configure")})})},qy=()=>{const{t:e}=V.useTranslation(),t=r.usePlugin(be),o=[...t.types.keys()].map(y=>{const g=t.types.get(y);return{value:y,label:e(g==null?void 0:g.label)}}).concat([{value:"main",label:e("Main")}]),n=r.useDataSourceManager(),s=d.useRef([]);d.useEffect(()=>()=>{n.getDataSources().forEach(y=>{s.current.includes(y.key)&&y.reload()})},[s]);const i=d.useCallback(y=>{n.removeDataSources(y)},[n]),c=d.useCallback(y=>{n.addDataSource(mt,y),s.current=[...s.current,y.key]},[]),l=()=>{const y=r.useResourceActionContext();return{onClick(){return D(this,null,function*(){var I,$;const C=(I=y==null?void 0:y.data)==null?void 0:I.data.filter(S=>S.status!=="loaded");if(C!=null&&C.length){const S=n.getDataSources(),b=C.map(f=>f.key),h=S.filter(f=>b.includes(f.key));yield Promise.all(h.map(f=>f.reload()))}($=y==null?void 0:y.refresh)==null||$.call(y)})}}},p=()=>{const{refresh:y}=r.useResourceActionContext(),{resource:g}=r.useResourceContext(),{key:C}=r.useRecord();return{run(){return D(this,null,function*(){yield g.destroy({filterByTk:C}),i([C]),y()})}}},u=y=>{const{key:g}=r.useRecord();y.visible=g!=="main"};return a.jsx(x.Card,{bordered:!1,children:a.jsx(r.SchemaComponent,{components:{CreateDatabaseConnectAction:Ny,EditDatabaseConnectionAction:Vy,ViewDatabaseConnectionAction:Ly},scope:{useNewId:y=>`${y}${B.uid()}`,types:o,useRefreshActionProps:l,useDestroyAction:p,dataSourceDeleteCallback:i,dataSourceCreateCallback:c,useIsAbleDelete:u},schema:Ro})})},Gy={association:{sourceKey:"name",targetKey:"name"},collection:{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") }}',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"}}]},request:{resource:"collections.fields",action:"list",params:{paginate:!1,filter:{$or:[{"interface.$not":null},{"options.source.$notEmpty":!0}]},sort:["sort"]}}},Uy=ye.css`
11
+ `,children:a.jsx(S.Button,{type:"link",style:{padding:"0px"},disabled:!e.enabled,onClick:()=>{t(qy(e.key))},role:"button","aria-label":`${e==null?void 0:e.key}-Configure`,children:o("Configure")})})},Uy=()=>{const{t:e}=K.useTranslation(),t=r.usePlugin(xe),o=[...t.types.keys()].map(m=>{const h=t.types.get(m);return{value:m,label:e(h==null?void 0:h.label)}}).concat([{value:"main",label:e("Main")}]),n=r.useDataSourceManager(),s=d.useRef([]);d.useEffect(()=>()=>{n.getDataSources().forEach(m=>{s.current.includes(m.key)&&m.reload()})},[s]);const i=d.useCallback(m=>{n.removeDataSources(m)},[n]),c=d.useCallback(m=>{n.addDataSource(mt,m),s.current=[...s.current,m.key]},[]),l=()=>{const m=r.useResourceActionContext();return{onClick(){return P(this,null,function*(){var D,$;const C=(D=m==null?void 0:m.data)==null?void 0:D.data.filter(v=>v.status!=="loaded");if(C!=null&&C.length){const v=n.getDataSources(),b=C.map(y=>y.key),f=v.filter(y=>b.includes(y.key));yield Promise.all(f.map(y=>y.reload()))}($=m==null?void 0:m.refresh)==null||$.call(m)})}}},p=()=>{const{refresh:m}=r.useResourceActionContext(),{resource:h}=r.useResourceContext(),{key:C}=r.useRecord();return{run(){return P(this,null,function*(){yield h.destroy({filterByTk:C}),i([C]),m()})}}},u=m=>{const{key:h}=r.useRecord();m.visible=h!=="main"};return a.jsx(S.Card,{bordered:!1,children:a.jsx(r.SchemaComponent,{components:{CreateDatabaseConnectAction:Vy,EditDatabaseConnectionAction:Ly,ViewDatabaseConnectionAction:Gy},scope:{useNewId:m=>`${m}${N.uid()}`,types:o,useRefreshActionProps:l,useDestroyAction:p,dataSourceDeleteCallback:i,dataSourceCreateCallback:c,useIsAbleDelete:u},schema:tn})})},zy={association:{sourceKey:"name",targetKey:"name"},collection:{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") }}',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"}}]},request:{resource:"collections.fields",action:"list",params:{paginate:!1,filter:{$or:[{"interface.$not":null},{"options.source.$notEmpty":!0}]},sort:["sort"]}}},Hy=fe.css`
12
12
  .ant-table {
13
13
  margin-left: -16px !important;
14
14
  }
15
- `,zy=ye.css`
15
+ `,Wy=fe.css`
16
16
  tr {
17
17
  display: flex;
18
18
  }
@@ -33,13 +33,13 @@
33
33
  min-width: 50px;
34
34
  flex: 0;
35
35
  }
36
- `,Mo="Default title for each record",jo=d.createContext(null),Hy=e=>{const t=r.useCompile(),{getInterface:o}=r.useCollectionManager_deprecated(),{t:n}=V.useTranslation(),{setState:s}=r.useResourceActionContext(),{resource:i,targetKey:c}=e.collectionResource||{},l=r.useRecord(),[p,u]=d.useState(null),{refreshCM:y,isTitleField:g,getTemplate:C}=r.useCollectionManager_deprecated(),{[c]:I,titleField:$,template:S}=l,b=C(S),h=[{dataIndex:["uiSchema","rawTitle"],title:n("Field display name"),render:f=>a.jsx("div",{style:{marginLeft:7},children:t(f)})},{dataIndex:"name",title:n("Field name")},{dataIndex:"interface",title:n("Field interface"),render:f=>{var m;return a.jsx(x.Tag,{children:t((m=o(f))==null?void 0:m.title)})}},{dataIndex:"titleField",title:n("Title field"),render:function(m,v){const F=M=>{u(v),i.update({filterByTk:I,values:{titleField:M?v.name:"id"}}).then(()=>D(this,null,function*(){yield e.refreshAsync(),u(null),y()})).catch(O=>{u(null),console.error(O)})};return g(v)?a.jsx(x.Tooltip,{title:n(Mo),placement:"right",overlayInnerStyle:{textAlign:"center"},children:a.jsx(x.Switch,{"aria-label":`switch-title-field-${v.name}`,size:"small",loading:v.name===(p==null?void 0:p.name),checked:v.name===($||"id"),onChange:F})}):null}},{dataIndex:"description",title:n("Descriptio "),render:f=>a.jsx(r.Input.ReadPretty,{value:f,ellipsis:!0})},{dataIndex:"actions",title:n("Actions"),render:(f,m)=>{const v={confirm:{title:n("Delete record"),content:n("Are you sure you want to delete it?")},useAction:r.useDestroyActionAndRefreshCM,disabled:r.isDeleteButtonDisabled(m)||(b==null?void 0:b.forbidDeletion),title:n("Delete")};return a.jsx(r.RecordProvider,{record:m,parent:l,children:a.jsxs(x.Space,{children:[a.jsx(r.EditCollectionField,{role:"button","aria-label":`edit-button-${m.name}`,type:"primary"}),a.jsx(r.Action.Link,A({},v))]})})}}];return a.jsx(x.Table,{rowKey:"name",columns:h,showHeader:!1,pagination:!1,dataSource:e.fields,rowSelection:{type:"checkbox",getCheckboxProps(f){return{"aria-label":`checkbox-${f.name}`}},onChange:f=>{s(m=>N(A({},m),{selectedRowKeys:f}))}},className:Uy})},Wy=e=>{const t=r.useCompile(),{getInterface:o}=r.useCollectionManager_deprecated(),{resource:n,targetKey:s}=e.collectionResource||{},i=r.useRecord(),[c,l]=d.useState(null),{t:p}=V.useTranslation(),{refreshCM:u,isTitleField:y}=r.useCollectionManager_deprecated(),{[s]:g,titleField:C,name:I}=i,$=[{dataIndex:["uiSchema","rawTitle"],title:p("Field display name"),render:S=>a.jsx("div",{style:{marginLeft:1},children:t(S)})},{dataIndex:"name",title:p("Field name")},{dataIndex:"interface",title:p("Field interface"),render:S=>{var b;return a.jsx(x.Tag,{children:t((b=o(S))==null?void 0:b.title)})}},{dataIndex:"titleField",title:p("Title field"),render(S,b){const h=f=>{l(b),n.update({filterByTk:g,values:{titleField:f?b.name:"id"}}).then(()=>D(this,null,function*(){yield e.refreshAsync(),l(null),u()})).catch(m=>{l(null),console.error(m)})};return y(b)?a.jsx(x.Tooltip,{title:p(Mo),placement:"right",overlayInnerStyle:{textAlign:"center"},children:a.jsx(x.Switch,{size:"small",loading:b.name===(c==null?void 0:c.name),checked:b.name===(C||"id"),onChange:h})}):null}},{dataIndex:"actions",title:p("Actions"),render:function(b,h){const{handleRefresh:f}=d.useContext(jo),m={type:"primary",currentCollection:I,handleRefresh:f},v={type:"primary"};return a.jsx(r.RecordProvider,{record:h,parent:i,children:a.jsxs(x.Space,{children:[a.jsx(r.OverridingCollectionField,A({},m)),a.jsx(r.ViewCollectionField,A({},v))]})})}}];return a.jsx(x.Table,{rowKey:"name",columns:$,showHeader:!1,pagination:!1,dataSource:e.fields.filter(S=>S.interface)})},Eo=()=>{const e=r.useCompile(),t=T.useField(),{name:o,template:n}=r.useRecord(),{data:{database:s}}=r.useCurrentAppInfo(),{getInterface:i,getInheritCollections:c,getCollection:l,getCurrentCollectionFields:p,getTemplate:u}=r.useCollectionManager_deprecated(),y=d.useMemo(()=>me.createForm(),[]),g=r.useAttach(y.createArrayField(N(A({},t.props),{basePath:""}))),{t:C}=V.useTranslation(),I=r.useResourceContext(),{refreshAsync:$}=d.useContext(r.ResourceActionContext),S=u(n),b=c(o),h=[{dataIndex:"title",title:C("Field display name"),render:P=>a.jsx("div",{className:ye.css`
36
+ `,Mo="Default title for each record",Eo=d.createContext(null),Qy=e=>{const t=r.useCompile(),{getInterface:o}=r.useCollectionManager_deprecated(),{t:n}=K.useTranslation(),{setState:s}=r.useResourceActionContext(),{resource:i,targetKey:c}=e.collectionResource||{},l=r.useRecord(),[p,u]=d.useState(null),{refreshCM:m,isTitleField:h,getTemplate:C}=r.useCollectionManager_deprecated(),{[c]:D,titleField:$,template:v}=l,b=C(v),f=[{dataIndex:["uiSchema","rawTitle"],title:n("Field display name"),render:y=>a.jsx("div",{style:{marginLeft:7},children:t(y)})},{dataIndex:"name",title:n("Field name")},{dataIndex:"interface",title:n("Field interface"),render:y=>{var g;return a.jsx(S.Tag,{children:t((g=o(y))==null?void 0:g.title)})}},{dataIndex:"titleField",title:n("Title field"),render:function(g,x){const I=k=>{u(x),i.update({filterByTk:D,values:{titleField:k?x.name:"id"}}).then(()=>P(this,null,function*(){yield e.refreshAsync(),u(null),m()})).catch(M=>{u(null),console.error(M)})};return h(x)?a.jsx(S.Tooltip,{title:n(Mo),placement:"right",overlayInnerStyle:{textAlign:"center"},children:a.jsx(S.Switch,{"aria-label":`switch-title-field-${x.name}`,size:"small",loading:x.name===(p==null?void 0:p.name),checked:x.name===($||"id"),onChange:I})}):null}},{dataIndex:"description",title:n("Descriptio "),render:y=>a.jsx(r.Input.ReadPretty,{value:y,ellipsis:!0})},{dataIndex:"actions",title:n("Actions"),render:(y,g)=>{const x={confirm:{title:n("Delete record"),content:n("Are you sure you want to delete it?")},useAction:r.useDestroyActionAndRefreshCM,disabled:r.isDeleteButtonDisabled(g)||(b==null?void 0:b.forbidDeletion),title:n("Delete")};return a.jsx(r.RecordProvider,{record:g,parent:l,children:a.jsxs(S.Space,{children:[a.jsx(r.EditCollectionField,{role:"button","aria-label":`edit-button-${g.name}`,type:"primary"}),a.jsx(r.Action.Link,F({},x))]})})}}];return a.jsx(S.Table,{rowKey:"name",columns:f,showHeader:!1,pagination:!1,dataSource:e.fields,rowSelection:{type:"checkbox",getCheckboxProps(y){return{"aria-label":`checkbox-${y.name}`}},onChange:y=>{s(g=>j(F({},g),{selectedRowKeys:y}))}},className:Hy})},Yy=e=>{const t=r.useCompile(),{getInterface:o}=r.useCollectionManager_deprecated(),{resource:n,targetKey:s}=e.collectionResource||{},i=r.useRecord(),[c,l]=d.useState(null),{t:p}=K.useTranslation(),{refreshCM:u,isTitleField:m}=r.useCollectionManager_deprecated(),{[s]:h,titleField:C,name:D}=i,$=[{dataIndex:["uiSchema","rawTitle"],title:p("Field display name"),render:v=>a.jsx("div",{style:{marginLeft:1},children:t(v)})},{dataIndex:"name",title:p("Field name")},{dataIndex:"interface",title:p("Field interface"),render:v=>{var b;return a.jsx(S.Tag,{children:t((b=o(v))==null?void 0:b.title)})}},{dataIndex:"titleField",title:p("Title field"),render(v,b){const f=y=>{l(b),n.update({filterByTk:h,values:{titleField:y?b.name:"id"}}).then(()=>P(this,null,function*(){yield e.refreshAsync(),l(null),u()})).catch(g=>{l(null),console.error(g)})};return m(b)?a.jsx(S.Tooltip,{title:p(Mo),placement:"right",overlayInnerStyle:{textAlign:"center"},children:a.jsx(S.Switch,{size:"small",loading:b.name===(c==null?void 0:c.name),checked:b.name===(C||"id"),onChange:f})}):null}},{dataIndex:"actions",title:p("Actions"),render:function(b,f){const{handleRefresh:y}=d.useContext(Eo),g={type:"primary",currentCollection:D,handleRefresh:y},x={type:"primary"};return a.jsx(r.RecordProvider,{record:f,parent:i,children:a.jsxs(S.Space,{children:[a.jsx(r.OverridingCollectionField,F({},g)),a.jsx(r.ViewCollectionField,F({},x))]})})}}];return a.jsx(S.Table,{rowKey:"name",columns:$,showHeader:!1,pagination:!1,dataSource:e.fields.filter(v=>v.interface)})},jo=()=>{const e=r.useCompile(),t=_.useField(),{name:o,template:n}=r.useRecord(),{data:{database:s}}=r.useCurrentAppInfo(),{getInterface:i,getInheritCollections:c,getCollection:l,getCurrentCollectionFields:p,getTemplate:u}=r.useCollectionManager_deprecated(),m=d.useMemo(()=>ye.createForm(),[]),h=r.useAttach(m.createArrayField(j(F({},t.props),{basePath:""}))),{t:C}=K.useTranslation(),D=r.useResourceContext(),{refreshAsync:$}=d.useContext(r.ResourceActionContext),v=u(n),b=c(o),f=[{dataIndex:"title",title:C("Field display name"),render:T=>a.jsx("div",{className:fe.css`
37
37
  font-weight: 500;
38
- `,children:P})},{dataIndex:"name",title:C("Field name")},{dataIndex:"interface",title:C("Field interface")},{dataIndex:"titleField",title:C("Title field")},{dataIndex:"description",title:C("Description")},{dataIndex:"actions",title:C("Actions")}],f=p(o),m={pf:[],association:[],general:[],system:[]};f.forEach(P=>{if(P.primaryKey||P.isForeignKey)m.pf.push(P);else if(P.interface){const _=i(P.interface);(_==null?void 0:_.group)==="systemInfo"?m.system.push(P):(_==null?void 0:_.group)==="relation"?m.association.push(P):m.general.push(P)}});const v=[{key:"pf",title:C("PK & FK fields"),fields:m.pf},{key:"association",title:C("Association fields"),fields:m.association},{key:"general",title:C("General fields"),fields:m.general},{key:"system",title:C("System fields"),fields:m.system}];v.push(...b.map(P=>{const _=l(P);if(_)return{key:P,title:`${C("Inherited fields")} - `+e(_==null?void 0:_.title),inherit:!0,fields:(_==null?void 0:_.fields)||[]}}).filter(Boolean));const F=d.useMemo(()=>({useAction:r.useBulkDestroyActionAndRefreshCM,title:C("Delete"),icon:"DeleteOutlined",disabled:S==null?void 0:S.forbidDeletion,confirm:{title:C("Delete record"),content:C("Are you sure you want to delete it?")}}),[C]),M={type:"primary",database:s},O={type:"primary"},[k,K]=d.useState(!1),w=()=>{K(!k)};return a.jsx(jo.Provider,{value:{refresh:k,handleRefresh:w},children:a.jsx(r.ResourceActionProvider,N(A({},Gy),{children:a.jsx(T.FormContext.Provider,{value:y,children:a.jsxs(T.FieldContext.Provider,{value:g,children:[a.jsxs(x.Space,{align:"end",className:ye.css`
38
+ `,children:T})},{dataIndex:"name",title:C("Field name")},{dataIndex:"interface",title:C("Field interface")},{dataIndex:"titleField",title:C("Title field")},{dataIndex:"description",title:C("Description")},{dataIndex:"actions",title:C("Actions")}],y=p(o),g={pf:[],association:[],general:[],system:[]};y.forEach(T=>{if(T.primaryKey||T.isForeignKey)g.pf.push(T);else if(T.interface){const w=i(T.interface);(w==null?void 0:w.group)==="systemInfo"?g.system.push(T):(w==null?void 0:w.group)==="relation"?g.association.push(T):g.general.push(T)}});const x=[{key:"pf",title:C("PK & FK fields"),fields:g.pf},{key:"association",title:C("Association fields"),fields:g.association},{key:"general",title:C("General fields"),fields:g.general},{key:"system",title:C("System fields"),fields:g.system}];x.push(...b.map(T=>{const w=l(T);if(w)return{key:T,title:`${C("Inherited fields")} - `+e(w==null?void 0:w.title),inherit:!0,fields:(w==null?void 0:w.fields)||[]}}).filter(Boolean));const I=d.useMemo(()=>({useAction:r.useBulkDestroyActionAndRefreshCM,title:C("Delete"),icon:"DeleteOutlined",disabled:v==null?void 0:v.forbidDeletion,confirm:{title:C("Delete record"),content:C("Are you sure you want to delete it?")}}),[C]),k={type:"primary",database:s},M={type:"primary"},[B,V]=d.useState(!1),A=()=>{V(!B)};return a.jsx(Eo.Provider,{value:{refresh:B,handleRefresh:A},children:a.jsx(r.ResourceActionProvider,j(F({},zy),{children:a.jsx(_.FormContext.Provider,{value:m,children:a.jsxs(_.FieldContext.Provider,{value:h,children:[a.jsxs(S.Space,{align:"end",className:fe.css`
39
39
  justify-content: flex-end;
40
40
  display: flex;
41
41
  margin-bottom: 16px;
42
- `,children:[a.jsx(r.Action,A({},F)),a.jsx(r.SyncFieldsAction,A({},O)),a.jsx(r.SyncSQLFieldsAction,{refreshCMList:$}),a.jsx(r.SchemaComponent,{schema:{type:"object",properties:A({},S.configureActions)}}),a.jsx(r.AddCollectionField,A({},M))]}),a.jsx(x.Table,{rowKey:"key",columns:h,dataSource:v.filter(P=>P.fields.length),pagination:!1,className:zy,expandable:{defaultExpandAllRows:!0,defaultExpandedRowKeys:v.map(P=>P.key),expandedRowRender:P=>P.inherit?a.jsx(Wy,{fields:P.fields,collectionResource:I,refreshAsync:$}):a.jsx(Hy,{fields:P.fields,collectionResource:I,refreshAsync:$})}})]})})}))})},ko=e=>T.Schema.compile(e,{t:r.i18n.t}),Qy={type:"object",properties:{block1:{type:"void","x-collection":"collections","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:{name:"collections",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":"Input",description:'{{t("Randomly generated and can be modified. Support letters, numbers and underscores, must start with an letter.")}}'}},{type:"string",name:"template",interface:"input",uiSchema:{title:'{{ t("Collection Template") }}',type:"string","x-component":"Input"}},{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"}}]},dragSort:!0,request:{resource:"collections",action:"list",params:{pageSize:50,sort:"sort",filter:{"hidden.$isFalsy":!0},appends:["category"]}}},properties:{tabs:{type:"void","x-component":"ConfigurationTabs"}}}}},Ko={type:"object",properties:{[B.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-use-component-props":"cm.useFilterActionProps","x-component-props":{icon:"FilterOutlined"},"x-align":"left"},delete:{type:"void",title:'{{ t("Delete") }}',"x-component":"DeleteCollection","x-component-props":{role:"button",isBulk:!0}},create:{type:"void",title:'{{ t("Create collection") }}',"x-component":"AddCollection","x-component-props":{type:"primary"}}}},[B.uid()]:{type:"void","x-uid":"input","x-component":"Table.Void","x-component-props":{rowKey:"name",rowSelection:{type:"checkbox"},useDataSource:"{{ cm.useDataSourceFromRAC }}",useAction(){const e=r.useAPIClient(),{t}=V.useTranslation();return{move(n,s){return D(this,null,function*(){yield e.resource("collections").move({sourceId:n.key,targetId:s.key}),x.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}}},column3:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",title:'{{t("Collection template")}}',properties:{template:{"x-component":r.CollectionTemplateTag,"x-read-pretty":!0}}},column4:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column","x-visible":"categoryVisible",title:'{{t("Collection category")}}',properties:{category:{"x-component":r.CollectionCategory,"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],n=e.form.getValuesIn(`${o}.${t}`);n&&(e.title=`${ko(n.title)} - ${ko('{{ t("Configure fields") }}')}`)},properties:{collectionFieldSchema:{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-component":"DeleteCollection","x-component-props":{role:"button","aria-label":'{{ "delete-button-" + $record.name }}',type:"primary",className:"nb-action-link"}}}}}}}}}},Yy={type:"object",properties:{form:{type:"void","x-decorator":"Form","x-component":"Action.Modal",title:'{{ t("Add category") }}',"x-component-props":{width:520,getContainer:"{{ getContainer }}"},properties:{name:{type:"string",title:'{{t("Category name")}}',required:!0,"x-disabled":"{{ !createOnly }}","x-decorator":"FormItem","x-component":"Input"},color:{type:"string",title:'{{t("Color")}}',required:!1,"x-decorator":"FormItem","x-component":"ColorSelect"},footer:{type:"void","x-component":"Action.Modal.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:"{{ useCreateCategry }}",style:{marginLeft:"8px"}}}}}}}}},Jy={type:"object",properties:{form:{type:"void","x-decorator":"Form","x-decorator-props":{useValues:"{{ useValuesFromRecord }}"},"x-component":"Action.Modal",title:'{{ t("Edit category") }}',"x-component-props":{width:520,getContainer:"{{ getContainer }}"},properties:{name:{type:"string",title:'{{t("Category name")}}',required:!0,"x-disabled":"{{ !createOnly }}","x-decorator":"FormItem","x-component":"Input"},color:{type:"string",title:'{{t("Color")}}',required:!1,"x-decorator":"FormItem","x-component":"ColorSelect"},footer:{type:"void","x-component":"Action.Modal.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:"{{ useEditCategry }}",style:{marginLeft:"8px"}}}}}}}}},Zy=(e,t)=>(o,n)=>{o.loading=!0,e(o,n,t).then(pt.action.bound(s=>{o.dataSource=s,o.loading=!1})).catch(console.error)},Xy=()=>{const[e,t]=d.useState([]);return[e,t]},Ry=()=>{const e=r.useRecord(),t=T.useForm();return{run(){return D(this,null,function*(){var s,i,c;const n=(c=(i=(s=t.values)==null?void 0:s.children)==null?void 0:i.slice)==null?void 0:c.call(i);t.setValuesIn("children",n.filter(l=>l.name!==e.name))})}}},ef=()=>({run(){return D(this,null,function*(){})}}),tf=()=>{const e=r.useRecord(),{getCollectionFields:t}=r.useCollectionManager_deprecated();return e.__parent&&e.__parent.interface==="subTable"?d.useContext(r.DataSourceContext_deprecated).dataSource:t(e.collectionName||e.name)},of=e=>`${e||""}${B.uid()}`,nf=()=>{const{t:e}=V.useTranslation(),{interfaces:t,getCollections:o}=r.useCollectionManager_deprecated(),{data:{database:n}}=r.useCurrentAppInfo(),s=d.useContext(r.CollectionCategroriesContext),i=r.useAPIClient(),c=i.resource("dbViews"),l=r.useCompile();T.useForm();const p=($,S,b)=>D(this,null,function*(){var v;const{targetScope:h}=S,f=((v=$.props)==null?void 0:v.name)==="inherits";return o().filter(F=>{var K;if(b!=null&&b.includes(F.template)||F.autoCreate&&F.isThrough||f&&F.template==="view")return!1;const O=!(h!=null&&h.template)||h.template.includes(F.template),k=!(h!=null&&h[(K=$.props)==null?void 0:K.name])||h[$.props.name].includes(F.name);return O&&k}).map(F=>({label:l(F.title),value:F.name}))}),u=()=>D(this,null,function*(){return s.data.map($=>({label:l($.name),value:$.id}))}),y=()=>D(this,null,function*(){return c.list().then(({data:$})=>{var S;return(S=$==null?void 0:$.data)==null?void 0:S.map(b=>{const h=b.schema;return{label:h?`${h}.${l(b.name)}`:b.name,value:h?`${h}_${b.name}`:b.name}})})}),g=$=>D(this,null,function*(){const{fields:S}=$.form.values;return Promise.resolve({data:S}).then(({data:b})=>b==null?void 0:b.map(h=>{var f;return{label:l((f=h.uiSchema)==null?void 0:f.title)||h.name,value:h.name}}))}),C=()=>D(this,null,function*(){return i.resource("storages").list().then(({data:$})=>{var S;return(S=$==null?void 0:$.data)==null?void 0:S.map(b=>({label:e(l(b.title)),value:b.name}))})}),I=d.useContext(r.SchemaComponentContext);return a.jsx(r.SchemaComponentContext.Provider,{value:N(A({},I),{designable:!1}),children:a.jsx(r.SchemaComponent,{schema:Qy,components:{AddSubFieldAction:r.AddSubFieldAction,EditSubFieldAction:r.EditSubFieldAction,FieldSummary:r.FieldSummary,TemplateSummay:r.TemplateSummary,CollectionFields:Eo},scope:{loadFilterTargetKeys:g,useDestroySubField:Ry,useBulkDestroySubField:ef,useSelectedRowKeys:Xy,useAsyncDataSource:Zy,loadCollections:p,loadCategories:u,loadDBViews:y,loadStorages:C,useCurrentFields:tf,useNewId:of,useCancelAction:r.useCancelAction,interfaces:t,enableInherits:(n==null?void 0:n.dialect)==="postgres",isPG:(n==null?void 0:n.dialect)==="postgres"}})})};function rf(e){const{attributes:t,listeners:o,setNodeRef:n}=Q.useDraggable({id:e.id,data:e.data});return a.jsx("div",N(A(A({ref:n},o),t),{children:a.jsx("div",{children:e.children})}))}function af(e){const{isOver:t,setNodeRef:o}=Q.useDroppable({id:e.id,data:e.data}),n=t?{color:"green"}:void 0;return a.jsx("div",{ref:o,style:n,children:e.children})}const sf=T.observer(({item:e})=>a.jsx(af,{id:e.id.toString(),data:e,children:a.jsx("div",{children:a.jsx(rf,{id:e.id.toString(),data:e,children:a.jsx(No,{item:e})})})}),{displayName:"TabTitle"}),No=({item:e})=>{const{t}=V.useTranslation(),o=r.useCompile();return a.jsxs(x.Space,{children:[a.jsx(x.Badge,{color:e.color}),t(o(e.name))]})},cf=T.observer(e=>{const[t,o]=d.useState(null),{refresh:n}=d.useContext(r.CollectionCategroriesContext),{refresh:s}=r.useResourceActionContext(),i=r.useAPIClient(),c=y=>D(this,null,function*(){const{active:g,over:C}=y;setTimeout(()=>{o(null)}),C&&C.id!==g.id&&(yield i.resource("collectionCategories").move({sourceId:g.id,targetId:C.id}),yield n(),yield s())});function l(y){var g;o((g=y.active)==null?void 0:g.data.current)}const p=Q.useSensor(Q.MouseSensor,{activationConstraint:{distance:10}}),u=Q.useSensors(p);return a.jsxs(Q.DndContext,{sensors:u,onDragEnd:c,onDragStart:l,children:[e.children,a.jsx(Q.DragOverlay,{children:t?a.jsx("span",{style:{whiteSpace:"nowrap"},children:a.jsx(No,{item:t})}):null})]})},{displayName:"DndProvider"}),lf=()=>{const{t:e}=V.useTranslation(),{data:t,refresh:o}=d.useContext(r.CollectionCategroriesContext),{refresh:n,run:s,defaultRequest:i,setState:c}=r.useResourceActionContext(),[l,p]=d.useState({tab:"all"}),[u,y]=d.useState(l.tab),g=r.useCompile(),C=r.useAPIClient(),{modal:I}=x.App.useApp(),$=d.useMemo(()=>{if(!t)return[];const m=t.sort((v,F)=>F.sort-v.sort).concat().map(v=>N(A({},v),{schema:Ko}));return!m.find(v=>v.id==="all")&&m.unshift({name:'{{t("All collections")}}',id:"all",sort:0,closable:!1,schema:Ko}),m},[t]);d.useEffect(()=>{l.tab!=="all"&&S(l.tab)},[]);const S=m=>{var v;if(p({tab:m}),y(B.uid()),m!=="all"){const M={$and:[(v=i==null?void 0:i.params)==null?void 0:v.filter,{"category.id":m}]};s({filter:M}),c==null||c({category:[+m],params:[{filter:M}]})}else s(),c==null||c({category:[],params:[]})},b=m=>{I.confirm({title:g("{{t('Delete category')}}"),content:g("{{t('Are you sure you want to delete it?')}}"),onOk:()=>D(this,null,function*(){yield C.resource("collectionCategories").destroy({filter:{id:m}}),m===+l.tab&&p({tab:"all"}),yield o(),yield n()})})},h=()=>D(this,null,function*(){return t.map(m=>({label:e(g(m.name)),value:m.id}))}),f=J.memoize(m=>({items:[{key:"edit",label:a.jsx(r.SchemaComponent,{schema:{type:"void",properties:{[B.uid()]:{"x-component":"EditCategory","x-component-props":{item:m}}}}})},{key:"delete",label:g("{{t('Delete category')}}"),onClick:()=>b(m.id)}]}));return t?a.jsx(cf,{children:a.jsx(x.Tabs,{addIcon:a.jsx(r.SchemaComponent,{schema:{type:"void",properties:{addCategories:{type:"void",title:'{{ t("Add category") }}',"x-component":"AddCategory","x-component-props":{type:"primary"}}}}}),onChange:S,defaultActiveKey:l.tab||"all",type:"editable-card",destroyInactiveTabPane:!0,tabBarStyle:{marginBottom:"0px"},items:$.map(m=>({label:m.id!=="all"?a.jsx("div",{"data-no-dnd":"true",children:a.jsx(sf,{item:m})}):g(m.name),key:String(m.id),closable:m.closable,closeIcon:a.jsx(x.Dropdown,{menu:f(m),children:a.jsx(Y.MenuOutlined,{role:"button","aria-label":g(m.name),style:{padding:8,margin:"-8px"}})}),children:a.jsx(x.Card,{bordered:!1,children:a.jsx(r.SchemaComponentOptions,{components:{CollectionFields:Eo},inherit:!0,scope:{loadCategories:h,categoryVisible:m.id==="all",categoryId:m.id},children:a.jsx(T.RecursionField,{name:u,schema:m.schema,onlyRenderProperties:!0})})})}))})}):null},uf=()=>{const e=T.useForm(),t=r.useActionContext(),{refresh:o}=d.useContext(r.CollectionCategroriesContext),n=r.useAPIClient();return{run(){return D(this,null,function*(){yield e.submit();const i=J.cloneDeep(e.values);yield n.resource("collectionCategories").create({values:A({},i)}),t.setVisible(!1),yield e.reset(),yield o()})}}},pf=e=>a.jsx(Vo,A({},e)),Vo=e=>{const{scope:t,getContainer:o,children:n}=e,[s,i]=d.useState(!1),{t:c}=V.useTranslation();return a.jsxs(r.ActionContextProvider,{value:{visible:s,setVisible:i},children:[a.jsx("div",{onClick:()=>i(!0),title:c("Add category"),children:n||a.jsx(Y.PlusOutlined,{})}),a.jsx(r.SchemaComponent,{schema:Yy,components:{CollectionCategory:r.CollectionCategory,CollectionTemplateTag:r.CollectionTemplateTag},scope:A({getContainer:o,useCancelAction:r.useCancelAction,createOnly:!0,useCreateCategry:uf},t)})]})},df=()=>{const e=T.useForm(),t=r.useActionContext(),{refresh:o}=d.useContext(r.CollectionCategroriesContext),{refresh:n}=r.useResourceActionContext(),s=r.useAPIClient(),{id:i}=r.useRecord();return{run(){return D(this,null,function*(){yield e.submit();const l=J.cloneDeep(e.values);yield s.resource("collectionCategories").update({filter:{id:i},values:A({},l)}),t.setVisible(!1),yield e.reset(),yield o(),yield n()})}}},mf=e=>{const t=r.useRecord(),o=r.useRequest(()=>Promise.resolve({data:J.cloneDeep(t)}),N(A({},e),{manual:!0})),n=r.useActionContext();return d.useEffect(()=>{n.visible&&o.run()},[n.visible]),o},yf=e=>a.jsx(Bo,A({},e)),Bo=e=>{const{scope:t,getContainer:o,item:n,children:s}=e,[i,c]=d.useState(!1),l=r.useCompile();return a.jsx(r.RecordProvider,{record:n,children:a.jsxs(r.ActionContextProvider,{value:{visible:i,setVisible:c},children:[a.jsx(a.Fragment,{children:s||a.jsx("span",{onClick:()=>c(!0),children:l('{{ t("Edit category") }}')})}),a.jsx(r.SchemaComponent,{schema:Jy,scope:A({getContainer:o,useCancelAction:r.useCancelAction,createOnly:!0,useEditCategry:df,useValuesFromRecord:mf},t)})]})})};me.registerValidateFormats({uid:/^[a-zA-Z][a-zA-Z0-9_-]*$/});const ff={type:"object",properties:{[B.uid()]:{"x-component":"ConfigurationTable"}}},gf=()=>a.jsx(r.SchemaComponent,{schema:ff,components:{CollectionCategroriesProvider:r.CollectionCategroriesProvider,ConfigurationTable:nf,ConfigurationTabs:lf,AddFieldAction:r.AddFieldAction,AddCollectionField:r.AddCollectionField,AddCollection:r.AddCollection,AddCollectionAction:r.AddCollectionAction,AddCategoryAction:Vo,AddCategory:pf,EditCollection:r.EditCollection,EditCollectionAction:r.EditCollectionAction,DeleteCollection:r.DeleteCollection,DeleteCollectionAction:r.DeleteCollectionAction,EditFieldAction:r.EditFieldAction,EditCollectionField:r.EditCollectionField,OverridingCollectionField:r.OverridingCollectionField,OverridingFieldAction:r.OverridingFieldAction,ViewCollectionField:r.ViewCollectionField,ViewFieldAction:r.ViewFieldAction,EditCategory:yf,EditCategoryAction:Bo,SyncFieldsAction:r.SyncFieldsAction,SyncFieldsActionCom:r.SyncFieldsActionCom,SyncSQLFieldsAction:r.SyncSQLFieldsAction}}),Ce=d.createContext(null);Ce.displayName="PermissionContext";const hf=e=>{const t=r.useAPIClient(),o=r.useRecord(),{t:n}=V.useTranslation(),s=d.useContext(ve),{snippets:i}=s;i==null||i.forEach(p=>{s[p]=!0});const[c,l]=d.useState(s);return d.useEffect(()=>{l(s)},[s]),a.jsx(Ce.Provider,{value:{currentDataSource:o,currentRecord:c,update:(p,u)=>D(this,null,function*(){yield t.request({url:`dataSources/${o.key}/roles:update`,data:u.values,method:"post",params:{filterByTk:u.values.roleName}}),l(A(A({},c),u.values)),x.message.success(n("Saved successfully"))})},children:e.children})},Cf=e=>{const t=d.useContext(ve),o=r.useRecord();return a.jsx(r.RecordContext_deprecated.Provider,{value:A({},t),children:a.jsx(r.SchemaComponentOptions,{scope:{dataSourceKey:o.key},children:e.children})})},vf=e=>{const t=r.useRecord(),{visible:o}=r.useActionContext(),{currentDataSource:n}=d.useContext(Ce),s=r.useRequest({resource:"roles.dataSourceResources",resourceOf:t.roleName,action:"get",params:{appends:["actions","actions.scope"],filterByTk:t.name,filter:{dataSourceKey:n.key,name:t.name}}},N(A({},e),{manual:!0}));return d.useEffect(()=>{if(!t.exists){e.onSuccess({data:{}});return}o&&s.run()},[o,t.exists]),s},bf=()=>{const e=T.useForm(),t=r.useAPIClient(),o=r.useRecord(),n=r.useActionContext(),{refresh:s}=r.useResourceActionContext(),{currentDataSource:i}=d.useContext(Ce);return{run(){return D(this,null,function*(){yield t.resource("roles.dataSourceResources",o.roleName)[o.exists?"update":"create"]({filterByTk:o.name,filter:{dataSourceKey:i.key,name:o.name},values:N(A({},e.values),{name:o.name,dataSourceKey:i.key})}),n.setVisible(!1),s()})}}},xf={type:"void","x-decorator":"RoleRecordProvider",properties:{block:{type:"void","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:{name:"dataSourcesCollections",targetKey:"name",filterTargetKey:"name",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":"Input"}},{type:"string",name:"type",interface:"input",uiSchema:{title:'{{t("Resource type")}}',type:"string","x-component":"Select",enum:[{label:'{{t("Collection")}}',value:"collection",color:"green"},{label:'{{t("Association")}}',value:"association",color:"blue"}]}},{type:"string",name:"usingConfig",interface:"input",uiSchema:{title:'{{t("Permission policy")}}',type:"string","x-component":"Select",enum:[{label:'{{t("Individual")}}',value:"resourceAction",color:"orange"},{label:'{{t("General")}}',value:"strategy",color:"default"}]}},{type:"hasMany",name:"fields",target:"fields",collectionName:"collections",sourceKey:"name",targetKey:"name",uiSchema:{}}]},association:{sourceKey:"name",targetKey:"name"},resourceName:"roles.dataSourcesCollections",request:{resource:"roles.dataSourcesCollections",action:"list",params:{pageSize:20,filter:{hidden:{$isFalsy:!0},dataSourceKey:"{{dataSourceKey}}"},sort:["sort"],appends:["fields"]}}},properties:{[B.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-use-component-props":"cm.useFilterActionProps","x-component-props":{icon:"FilterOutlined"},"x-align":"left"}}},table1:{type:"void","x-uid":"input","x-component":"Table.Void","x-component-props":{rowKey:"name",useDataSource:"{{ cm.useDataSourceFromRAC }}"},properties:{column0:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{title:{type:"number","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}}},column3:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{usingConfig:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},column4:{type:"void",title:'{{t("Actions")}}',"x-component":"Table.Column",properties:{actions:{type:"void","x-component":"Space","x-component-props":{split:"|"},properties:{configure:{type:"void",title:'{{t("Configure")}}',"x-component":"Action.Link","x-component-props":{type:"primary"},properties:{drawer:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{useValues:vf},title:'{{t("Configure permission")}}',properties:{usingActionsConfig:{title:'{{t("Permission policy")}}',"x-component":"Radio.Group","x-decorator":"FormItem",default:!1,enum:[{value:!1,label:'{{t("General")}}'},{value:!0,label:'{{t("Individual")}}'}],"x-reactions":{target:"actions",fulfill:{state:{hidden:"{{!$self.value}}"}}}},actions:{"x-component":"RolesResourcesActions","x-decorator":"FormItem"},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:bf}}}}}}}}}}}}}}}}}},Lo={name:"dataSources",filterTargetKey:"name",targetKey:"name",fields:[{type:"string",name:"displayName",interface:"input",uiSchema:{title:'{{t("Display name")}}',type:"number","x-component":"Input",required:!0}},{type:"string",name:"key",interface:"input",uiSchema:{title:'{{t("Name")}}',type:"number","x-component":"Input",required:!0}}]},Sf={type:"object",properties:{block1:{type:"void","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:Lo,resourceName:"dataSources",request:{resource:"dataSources",action:"list",params:{pageSize:50,showAnonymous:!0,appends:[]}}},"x-component":"CollectionProvider_deprecated","x-component-props":{collection:Lo},properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:16}},properties:{}},table:{type:"void","x-uid":"input","x-component":"Table.Void","x-component-props":{rowKey:"name",rowSelection:{type:"checkbox"},useDataSource:"{{ cm.useDataSourceFromRAC }}"},properties:{column1:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{displayName:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},column2:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{key:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},column4:{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")}}',"x-component":"Action.Link","x-decorator":"ACLActionProvider","x-acl-action":"roles:update","x-component-props":{},properties:{drawer:{type:"void","x-component":"Action.Drawer","x-decorator":"PermissionProvider",title:'{{t("Configure permissions")}}',properties:{tabs1:{type:"void","x-component":"Tabs","x-component-props":{},properties:{tab1:{type:"void",title:'{{t("General action permissions")}}',"x-component":"Tabs.TabPane","x-component-props":{},properties:{role:{"x-component":"RoleConfigure"}}},tab2:{type:"void",title:'{{t("Action permissions")}}',"x-component":"Tabs.TabPane","x-component-props":{},properties:{roleCollectionsSchema:xf}}}}}}}}}}}}}}}}}},ct=d.createContext([]);ct.displayName="AvailableActionsContext";const Af=e=>{const{data:t,loading:o}=r.useRequest({resource:"availableActions",action:"list"});return o?a.jsx(x.Spin,{}):a.jsx(ct.Provider,{value:t==null?void 0:t.data,children:e.children})},qo=()=>d.useContext(ct),$f=()=>{const e=r.useRecord();return a.jsx("div",{children:a.jsx(r.SchemaComponentContext.Provider,{value:{designable:!1},children:a.jsx(Af,{children:a.jsx(r.SchemaComponent,{schema:Sf,components:{SettingCenterPermissionProvider:r.SettingCenterPermissionProvider,PermissionProvider:hf},scope:{dataSourceKey:e.key}})})})})},Tf=()=>{const{update:e}=d.useContext(Ce),{t}=V.useTranslation(),{key:o}=r.useRecord();return a.jsx(r.SchemaComponent,{schema:{type:"void",name:"form","x-component":"Form","x-component-props":{useValues:n=>{const s=r.useAPIClient(),i=d.useContext(ve);return r.useRequest(()=>s.resource(`dataSources/${o}/roles`).get({filterByTk:i.name}).then(c=>{var p,u;const l=(p=c==null?void 0:c.data)==null?void 0:p.data;return(u=l.snippets)==null||u.forEach(y=>{l[y]=!0}),{data:l}}),n)},effects(){me.onFieldChange("*",(n,s)=>D(this,null,function*(){s.modified&&(yield e(n,s))}))}},properties:{"strategy.actions":{description:t("All collections use general action permissions by default; permission configured individually will override the default one."),"x-component":"StrategyActions"}}}})},Ff=e=>{var o;if(!e)return{};const t={};return(o=e==null?void 0:e.forEach)==null||o.call(e,n=>{const[s,i]=n.split(":");t[s]=i||"all"}),t},Go=e=>{const t=[];for(const o in e)if(Object.prototype.hasOwnProperty.call(e,o)){const n=e[o];n==="all"?t.push(o):t.push(`${o}:${n}`)}return t},wf=T.connect(e=>{const{onChange:t}=e,o=qo(),n=r.useCompile(),{t:s}=V.useTranslation(),i=T.useField(),c=Ff(i.value);return a.jsx("div",{children:a.jsx(x.Table,{size:"small",pagination:!1,columns:[{dataIndex:"displayName",title:s("Action display name"),render:l=>n(l)},{dataIndex:"onNewRecord",title:s("Action type"),render:l=>l?a.jsx(x.Tag,{color:"green",children:s("Action on new records")}):a.jsx(x.Tag,{color:"geekblue",children:s("Action on existing records")})},{dataIndex:"enabled",title:s("Allow"),render:(l,p)=>a.jsx(x.Checkbox,{checked:l,onChange:u=>{l?delete c[p.name]:c[p.name]="all",t(Go(c))}})},{dataIndex:"scope",title:s("Data scope"),render:(l,p)=>!p.onNewRecord&&a.jsx(x.Select,{"data-testid":"select-data-scope",popupMatchSelectWidth:!1,size:"small",value:l,options:[{label:s("All records"),value:"all"},{label:s("Own records"),value:"own"}],onChange:u=>{c[p.name]=u,t(Go(c))}})}],dataSource:o==null?void 0:o.map(l=>{let p="all",u=!1;return c[l.name]&&(u=!0,p=c[l.name]),N(A({},l),{enabled:u,scope:p})})})})}),_f=Qo.createStyles(({css:e})=>e`
42
+ `,children:[a.jsx(r.Action,F({},I)),a.jsx(r.SyncFieldsAction,F({},M)),a.jsx(r.SyncSQLFieldsAction,{refreshCMList:$}),a.jsx(r.SchemaComponent,{schema:{type:"object",properties:F({},v.configureActions)}}),a.jsx(r.AddCollectionField,F({},k))]}),a.jsx(S.Table,{rowKey:"key",columns:f,dataSource:x.filter(T=>T.fields.length),pagination:!1,className:Wy,expandable:{defaultExpandAllRows:!0,defaultExpandedRowKeys:x.map(T=>T.key),expandedRowRender:T=>T.inherit?a.jsx(Yy,{fields:T.fields,collectionResource:D,refreshAsync:$}):a.jsx(Qy,{fields:T.fields,collectionResource:D,refreshAsync:$})}})]})})}))})},ko=e=>_.Schema.compile(e,{t:r.i18n.t}),Jy={type:"object",properties:{block1:{type:"void","x-collection":"collections","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:{name:"collections",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":"Input",description:'{{t("Randomly generated and can be modified. Support letters, numbers and underscores, must start with an letter.")}}'}},{type:"string",name:"template",interface:"input",uiSchema:{title:'{{ t("Collection Template") }}',type:"string","x-component":"Input"}},{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"}}]},dragSort:!0,request:{resource:"collections",action:"list",params:{pageSize:50,sort:"sort",filter:{"hidden.$isFalsy":!0},appends:["category"]}}},properties:{tabs:{type:"void","x-component":"ConfigurationTabs"}}}}},Ko={type:"object",properties:{[N.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-use-component-props":"cm.useFilterActionProps","x-component-props":{icon:"FilterOutlined"},"x-align":"left"},delete:{type:"void",title:'{{ t("Delete") }}',"x-component":"DeleteCollection","x-component-props":{role:"button",isBulk:!0}},create:{type:"void",title:'{{ t("Create collection") }}',"x-component":"AddCollection","x-component-props":{type:"primary"}}}},[N.uid()]:{type:"void","x-uid":"input","x-component":"Table.Void","x-component-props":{rowKey:"name",rowSelection:{type:"checkbox"},useDataSource:"{{ cm.useDataSourceFromRAC }}",useAction(){const e=r.useAPIClient(),{t}=K.useTranslation();return{move(n,s){return P(this,null,function*(){yield e.resource("collections").move({sourceId:n.key,targetId:s.key}),S.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}}},column3:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",title:'{{t("Collection template")}}',properties:{template:{"x-component":r.CollectionTemplateTag,"x-read-pretty":!0}}},column4:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column","x-visible":"categoryVisible",title:'{{t("Collection category")}}',properties:{category:{"x-component":r.CollectionCategory,"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],n=e.form.getValuesIn(`${o}.${t}`);n&&(e.title=`${ko(n.title)} - ${ko('{{ t("Configure fields") }}')}`)},properties:{collectionFieldSchema:{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-component":"DeleteCollection","x-component-props":{role:"button","aria-label":'{{ "delete-button-" + $record.name }}',type:"primary",className:"nb-action-link"}}}}}}}}}},Zy={type:"object",properties:{form:{type:"void","x-decorator":"Form","x-component":"Action.Modal",title:'{{ t("Add category") }}',"x-component-props":{width:520,getContainer:"{{ getContainer }}"},properties:{name:{type:"string",title:'{{t("Category name")}}',required:!0,"x-disabled":"{{ !createOnly }}","x-decorator":"FormItem","x-component":"Input"},color:{type:"string",title:'{{t("Color")}}',required:!1,"x-decorator":"FormItem","x-component":"ColorSelect"},footer:{type:"void","x-component":"Action.Modal.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:"{{ useCreateCategry }}",style:{marginLeft:"8px"}}}}}}}}},Xy={type:"object",properties:{form:{type:"void","x-decorator":"Form","x-decorator-props":{useValues:"{{ useValuesFromRecord }}"},"x-component":"Action.Modal",title:'{{ t("Edit category") }}',"x-component-props":{width:520,getContainer:"{{ getContainer }}"},properties:{name:{type:"string",title:'{{t("Category name")}}',required:!0,"x-disabled":"{{ !createOnly }}","x-decorator":"FormItem","x-component":"Input"},color:{type:"string",title:'{{t("Color")}}',required:!1,"x-decorator":"FormItem","x-component":"ColorSelect"},footer:{type:"void","x-component":"Action.Modal.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:"{{ useEditCategry }}",style:{marginLeft:"8px"}}}}}}}}},Ry=(e,t)=>(o,n)=>{o.loading=!0,e(o,n,t).then(pt.action.bound(s=>{o.dataSource=s,o.loading=!1})).catch(console.error)},ef=()=>{const[e,t]=d.useState([]);return[e,t]},tf=()=>{const e=r.useRecord(),t=_.useForm();return{run(){return P(this,null,function*(){var s,i,c;const n=(c=(i=(s=t.values)==null?void 0:s.children)==null?void 0:i.slice)==null?void 0:c.call(i);t.setValuesIn("children",n.filter(l=>l.name!==e.name))})}}},of=()=>({run(){return P(this,null,function*(){})}}),nf=()=>{const e=r.useRecord(),{getCollectionFields:t}=r.useCollectionManager_deprecated();return e.__parent&&e.__parent.interface==="subTable"?d.useContext(r.DataSourceContext_deprecated).dataSource:t(e.collectionName||e.name)},rf=e=>`${e||""}${N.uid()}`,af=()=>{const{t:e}=K.useTranslation(),{interfaces:t,getCollections:o}=r.useCollectionManager_deprecated(),{data:{database:n}}=r.useCurrentAppInfo(),s=d.useContext(r.CollectionCategroriesContext),i=r.useAPIClient(),c=i.resource("dbViews"),l=r.useCompile();_.useForm();const p=($,v,b)=>P(this,null,function*(){var x;const{targetScope:f}=v,y=((x=$.props)==null?void 0:x.name)==="inherits";return o().filter(I=>{var V;if(b!=null&&b.includes(I.template)||I.autoCreate&&I.isThrough||y&&I.template==="view")return!1;const M=!(f!=null&&f.template)||f.template.includes(I.template),B=!(f!=null&&f[(V=$.props)==null?void 0:V.name])||f[$.props.name].includes(I.name);return M&&B}).map(I=>({label:l(I.title),value:I.name}))}),u=()=>P(this,null,function*(){return s.data.map($=>({label:l($.name),value:$.id}))}),m=()=>P(this,null,function*(){return c.list().then(({data:$})=>{var v;return(v=$==null?void 0:$.data)==null?void 0:v.map(b=>{const f=b.schema;return{label:f?`${f}.${l(b.name)}`:b.name,value:f?`${f}_${b.name}`:b.name}})})}),h=$=>P(this,null,function*(){const{fields:v}=$.form.values;return Promise.resolve({data:v}).then(({data:b})=>b==null?void 0:b.map(f=>{var y;return{label:l((y=f.uiSchema)==null?void 0:y.title)||f.name,value:f.name}}))}),C=()=>P(this,null,function*(){return i.resource("storages").list().then(({data:$})=>{var v;return(v=$==null?void 0:$.data)==null?void 0:v.map(b=>({label:e(l(b.title)),value:b.name}))})}),D=d.useContext(r.SchemaComponentContext);return a.jsx(r.SchemaComponentContext.Provider,{value:j(F({},D),{designable:!1}),children:a.jsx(r.SchemaComponent,{schema:Jy,components:{AddSubFieldAction:r.AddSubFieldAction,EditSubFieldAction:r.EditSubFieldAction,FieldSummary:r.FieldSummary,TemplateSummay:r.TemplateSummary,CollectionFields:jo},scope:{loadFilterTargetKeys:h,useDestroySubField:tf,useBulkDestroySubField:of,useSelectedRowKeys:ef,useAsyncDataSource:Ry,loadCollections:p,loadCategories:u,loadDBViews:m,loadStorages:C,useCurrentFields:nf,useNewId:rf,useCancelAction:r.useCancelAction,interfaces:t,enableInherits:(n==null?void 0:n.dialect)==="postgres",isPG:(n==null?void 0:n.dialect)==="postgres"}})})};function sf(e){const{attributes:t,listeners:o,setNodeRef:n}=W.useDraggable({id:e.id,data:e.data});return a.jsx("div",j(F(F({ref:n},o),t),{children:a.jsx("div",{children:e.children})}))}function cf(e){const{isOver:t,setNodeRef:o}=W.useDroppable({id:e.id,data:e.data}),n=t?{color:"green"}:void 0;return a.jsx("div",{ref:o,style:n,children:e.children})}const lf=_.observer(({item:e})=>a.jsx(cf,{id:e.id.toString(),data:e,children:a.jsx("div",{children:a.jsx(sf,{id:e.id.toString(),data:e,children:a.jsx(No,{item:e})})})}),{displayName:"TabTitle"}),No=({item:e})=>{const{t}=K.useTranslation(),o=r.useCompile();return a.jsxs(S.Space,{children:[a.jsx(S.Badge,{color:e.color}),t(o(e.name))]})},uf=_.observer(e=>{const[t,o]=d.useState(null),{refresh:n}=d.useContext(r.CollectionCategroriesContext),{refresh:s}=r.useResourceActionContext(),i=r.useAPIClient(),c=m=>P(this,null,function*(){const{active:h,over:C}=m;setTimeout(()=>{o(null)}),C&&C.id!==h.id&&(yield i.resource("collectionCategories").move({sourceId:h.id,targetId:C.id}),yield n(),yield s())});function l(m){var h;o((h=m.active)==null?void 0:h.data.current)}const p=W.useSensor(W.MouseSensor,{activationConstraint:{distance:10}}),u=W.useSensors(p);return a.jsxs(W.DndContext,{sensors:u,onDragEnd:c,onDragStart:l,children:[e.children,a.jsx(W.DragOverlay,{children:t?a.jsx("span",{style:{whiteSpace:"nowrap"},children:a.jsx(No,{item:t})}):null})]})},{displayName:"DndProvider"}),pf=()=>{const{t:e}=K.useTranslation(),{data:t,refresh:o}=d.useContext(r.CollectionCategroriesContext),{refresh:n,run:s,defaultRequest:i,setState:c}=r.useResourceActionContext(),[l,p]=d.useState({tab:"all"}),[u,m]=d.useState(l.tab),h=r.useCompile(),C=r.useAPIClient(),{modal:D}=S.App.useApp(),$=d.useMemo(()=>{if(!t)return[];const g=t.sort((x,I)=>I.sort-x.sort).concat().map(x=>j(F({},x),{schema:Ko}));return!g.find(x=>x.id==="all")&&g.unshift({name:'{{t("All collections")}}',id:"all",sort:0,closable:!1,schema:Ko}),g},[t]);d.useEffect(()=>{l.tab!=="all"&&v(l.tab)},[]);const v=g=>{var x;if(p({tab:g}),m(N.uid()),g!=="all"){const k={$and:[(x=i==null?void 0:i.params)==null?void 0:x.filter,{"category.id":g}]};s({filter:k}),c==null||c({category:[+g],params:[{filter:k}]})}else s(),c==null||c({category:[],params:[]})},b=g=>{D.confirm({title:h("{{t('Delete category')}}"),content:h("{{t('Are you sure you want to delete it?')}}"),onOk:()=>P(this,null,function*(){yield C.resource("collectionCategories").destroy({filter:{id:g}}),g===+l.tab&&p({tab:"all"}),yield o(),yield n()})})},f=()=>P(this,null,function*(){return t.map(g=>({label:e(h(g.name)),value:g.id}))}),y=Y.memoize(g=>({items:[{key:"edit",label:a.jsx(r.SchemaComponent,{schema:{type:"void",properties:{[N.uid()]:{"x-component":"EditCategory","x-component-props":{item:g}}}}})},{key:"delete",label:h("{{t('Delete category')}}"),onClick:()=>b(g.id)}]}));return t?a.jsx(uf,{children:a.jsx(S.Tabs,{addIcon:a.jsx(r.SchemaComponent,{schema:{type:"void",properties:{addCategories:{type:"void",title:'{{ t("Add category") }}',"x-component":"AddCategory","x-component-props":{type:"primary"}}}}}),onChange:v,defaultActiveKey:l.tab||"all",type:"editable-card",destroyInactiveTabPane:!0,tabBarStyle:{marginBottom:"0px"},items:$.map(g=>({label:g.id!=="all"?a.jsx("div",{"data-no-dnd":"true",children:a.jsx(lf,{item:g})}):h(g.name),key:String(g.id),closable:g.closable,closeIcon:a.jsx(S.Dropdown,{menu:y(g),children:a.jsx(Q.MenuOutlined,{role:"button","aria-label":h(g.name),style:{padding:8,margin:"-8px"}})}),children:a.jsx(S.Card,{bordered:!1,children:a.jsx(r.SchemaComponentOptions,{components:{CollectionFields:jo},inherit:!0,scope:{loadCategories:f,categoryVisible:g.id==="all",categoryId:g.id},children:a.jsx(_.RecursionField,{name:u,schema:g.schema,onlyRenderProperties:!0})})})}))})}):null},df=()=>{const e=_.useForm(),t=r.useActionContext(),{refresh:o}=d.useContext(r.CollectionCategroriesContext),n=r.useAPIClient();return{run(){return P(this,null,function*(){yield e.submit();const i=Y.cloneDeep(e.values);yield n.resource("collectionCategories").create({values:F({},i)}),t.setVisible(!1),yield e.reset(),yield o()})}}},mf=e=>a.jsx(Bo,F({},e)),Bo=e=>{const{scope:t,getContainer:o,children:n}=e,[s,i]=d.useState(!1),{t:c}=K.useTranslation();return a.jsxs(r.ActionContextProvider,{value:{visible:s,setVisible:i},children:[a.jsx("div",{onClick:()=>i(!0),title:c("Add category"),children:n||a.jsx(Q.PlusOutlined,{})}),a.jsx(r.SchemaComponent,{schema:Zy,components:{CollectionCategory:r.CollectionCategory,CollectionTemplateTag:r.CollectionTemplateTag},scope:F({getContainer:o,useCancelAction:r.useCancelAction,createOnly:!0,useCreateCategry:df},t)})]})},yf=()=>{const e=_.useForm(),t=r.useActionContext(),{refresh:o}=d.useContext(r.CollectionCategroriesContext),{refresh:n}=r.useResourceActionContext(),s=r.useAPIClient(),{id:i}=r.useRecord();return{run(){return P(this,null,function*(){yield e.submit();const l=Y.cloneDeep(e.values);yield s.resource("collectionCategories").update({filter:{id:i},values:F({},l)}),t.setVisible(!1),yield e.reset(),yield o(),yield n()})}}},ff=e=>{const t=r.useRecord(),o=r.useRequest(()=>Promise.resolve({data:Y.cloneDeep(t)}),j(F({},e),{manual:!0})),n=r.useActionContext();return d.useEffect(()=>{n.visible&&o.run()},[n.visible]),o},gf=e=>a.jsx(Vo,F({},e)),Vo=e=>{const{scope:t,getContainer:o,item:n,children:s}=e,[i,c]=d.useState(!1),l=r.useCompile();return a.jsx(r.RecordProvider,{record:n,children:a.jsxs(r.ActionContextProvider,{value:{visible:i,setVisible:c},children:[a.jsx(a.Fragment,{children:s||a.jsx("span",{onClick:()=>c(!0),children:l('{{ t("Edit category") }}')})}),a.jsx(r.SchemaComponent,{schema:Xy,scope:F({getContainer:o,useCancelAction:r.useCancelAction,createOnly:!0,useEditCategry:yf,useValuesFromRecord:ff},t)})]})})};ye.registerValidateFormats({uid:/^[a-zA-Z][a-zA-Z0-9_-]*$/});const hf={type:"object",properties:{[N.uid()]:{"x-component":"ConfigurationTable"}}},Cf=()=>a.jsx(r.SchemaComponent,{schema:hf,components:{CollectionCategroriesProvider:r.CollectionCategroriesProvider,ConfigurationTable:af,ConfigurationTabs:pf,AddFieldAction:r.AddFieldAction,AddCollectionField:r.AddCollectionField,AddCollection:r.AddCollection,AddCollectionAction:r.AddCollectionAction,AddCategoryAction:Bo,AddCategory:mf,EditCollection:r.EditCollection,EditCollectionAction:r.EditCollectionAction,DeleteCollection:r.DeleteCollection,DeleteCollectionAction:r.DeleteCollectionAction,EditFieldAction:r.EditFieldAction,EditCollectionField:r.EditCollectionField,OverridingCollectionField:r.OverridingCollectionField,OverridingFieldAction:r.OverridingFieldAction,ViewCollectionField:r.ViewCollectionField,ViewFieldAction:r.ViewFieldAction,EditCategory:gf,EditCategoryAction:Vo,SyncFieldsAction:r.SyncFieldsAction,SyncFieldsActionCom:r.SyncFieldsActionCom,SyncSQLFieldsAction:r.SyncSQLFieldsAction}}),ve=d.createContext(null);ve.displayName="PermissionContext";const vf=e=>{const t=r.useAPIClient(),o=r.useRecord(),{t:n}=K.useTranslation(),s=d.useContext(be),{snippets:i}=s;i==null||i.forEach(p=>{s[p]=!0});const[c,l]=d.useState(s);return d.useEffect(()=>{l(s)},[s]),a.jsx(ve.Provider,{value:{currentDataSource:o,currentRecord:c,update:(p,u)=>P(this,null,function*(){yield t.request({url:`dataSources/${o.key}/roles:update`,data:u.values,method:"post",params:{filterByTk:u.values.roleName}}),l(F(F({},c),u.values)),S.message.success(n("Saved successfully"))})},children:e.children})},bf=e=>{const t=d.useContext(be),o=r.useRecord();return a.jsx(r.RecordContext_deprecated.Provider,{value:F({},t),children:a.jsx(r.SchemaComponentOptions,{scope:{dataSourceKey:o.key},children:e.children})})},xf=e=>{const t=r.useRecord(),{visible:o}=r.useActionContext(),{currentDataSource:n}=d.useContext(ve),s=r.useRequest({resource:"roles.dataSourceResources",resourceOf:t.roleName,action:"get",params:{appends:["actions","actions.scope"],filterByTk:t.name,filter:{dataSourceKey:n.key,name:t.name}}},j(F({},e),{manual:!0}));return d.useEffect(()=>{if(!t.exists){e.onSuccess({data:{}});return}o&&s.run()},[o,t.exists]),s},Sf=()=>{const e=_.useForm(),t=r.useAPIClient(),o=r.useRecord(),n=r.useActionContext(),{refresh:s}=r.useResourceActionContext(),{currentDataSource:i}=d.useContext(ve);return{run(){return P(this,null,function*(){yield t.resource("roles.dataSourceResources",o.roleName)[o.exists?"update":"create"]({filterByTk:o.name,filter:{dataSourceKey:i.key,name:o.name},values:j(F({},e.values),{name:o.name,dataSourceKey:i.key})}),n.setVisible(!1),s()})}}},Af={type:"void","x-decorator":"RoleRecordProvider",properties:{block:{type:"void","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:{name:"dataSourcesCollections",targetKey:"name",filterTargetKey:"name",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":"Input"}},{type:"string",name:"type",interface:"input",uiSchema:{title:'{{t("Resource type")}}',type:"string","x-component":"Select",enum:[{label:'{{t("Collection")}}',value:"collection",color:"green"},{label:'{{t("Association")}}',value:"association",color:"blue"}]}},{type:"string",name:"usingConfig",interface:"input",uiSchema:{title:'{{t("Permission policy")}}',type:"string","x-component":"Select",enum:[{label:'{{t("Individual")}}',value:"resourceAction",color:"orange"},{label:'{{t("General")}}',value:"strategy",color:"default"}]}},{type:"hasMany",name:"fields",target:"fields",collectionName:"collections",sourceKey:"name",targetKey:"name",uiSchema:{}}]},association:{sourceKey:"name",targetKey:"name"},resourceName:"roles.dataSourcesCollections",request:{resource:"roles.dataSourcesCollections",action:"list",params:{pageSize:20,filter:{hidden:{$isFalsy:!0},dataSourceKey:"{{dataSourceKey}}"},sort:["sort"],appends:["fields"]}}},properties:{[N.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-use-component-props":"cm.useFilterActionProps","x-component-props":{icon:"FilterOutlined"},"x-align":"left"}}},table1:{type:"void","x-uid":"input","x-component":"Table.Void","x-component-props":{rowKey:"name",useDataSource:"{{ cm.useDataSourceFromRAC }}"},properties:{column0:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{title:{type:"number","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}}},column3:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{usingConfig:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},column4:{type:"void",title:'{{t("Actions")}}',"x-component":"Table.Column",properties:{actions:{type:"void","x-component":"Space","x-component-props":{split:"|"},properties:{configure:{type:"void",title:'{{t("Configure")}}',"x-component":"Action.Link","x-component-props":{type:"primary"},properties:{drawer:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{useValues:xf},title:'{{t("Configure permission")}}',properties:{usingActionsConfig:{title:'{{t("Permission policy")}}',"x-component":"Radio.Group","x-decorator":"FormItem",default:!1,enum:[{value:!1,label:'{{t("General")}}'},{value:!0,label:'{{t("Individual")}}'}],"x-reactions":{target:"actions",fulfill:{state:{hidden:"{{!$self.value}}"}}}},actions:{"x-component":"RolesResourcesActions","x-decorator":"FormItem"},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:Sf}}}}}}}}}}}}}}}}}},Lo={name:"dataSources",filterTargetKey:"name",targetKey:"name",fields:[{type:"string",name:"displayName",interface:"input",uiSchema:{title:'{{t("Display name")}}',type:"number","x-component":"Input",required:!0}},{type:"string",name:"key",interface:"input",uiSchema:{title:'{{t("Name")}}',type:"number","x-component":"Input",required:!0}}]},$f={type:"object",properties:{block1:{type:"void","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:Lo,resourceName:"dataSources",request:{resource:"dataSources",action:"list",params:{pageSize:50,showAnonymous:!0,appends:[]}}},"x-component":"CollectionProvider_deprecated","x-component-props":{collection:Lo},properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:16}},properties:{}},table:{type:"void","x-uid":"input","x-component":"Table.Void","x-component-props":{rowKey:"name",rowSelection:{type:"checkbox"},useDataSource:"{{ cm.useDataSourceFromRAC }}"},properties:{column1:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{displayName:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},column2:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{key:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},column4:{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")}}',"x-component":"Action.Link","x-decorator":"ACLActionProvider","x-acl-action":"roles:update","x-component-props":{},properties:{drawer:{type:"void","x-component":"Action.Drawer","x-decorator":"PermissionProvider",title:'{{t("Configure permissions")}}',properties:{tabs1:{type:"void","x-component":"Tabs","x-component-props":{},properties:{tab1:{type:"void",title:'{{t("General action permissions")}}',"x-component":"Tabs.TabPane","x-component-props":{},properties:{role:{"x-component":"RoleConfigure"}}},tab2:{type:"void",title:'{{t("Action permissions")}}',"x-component":"Tabs.TabPane","x-component-props":{},properties:{roleCollectionsSchema:Af}}}}}}}}}}}}}}}}}},ct=d.createContext([]);ct.displayName="AvailableActionsContext";const Tf=e=>{const{data:t,loading:o}=r.useRequest({resource:"availableActions",action:"list"});return o?a.jsx(S.Spin,{}):a.jsx(ct.Provider,{value:t==null?void 0:t.data,children:e.children})},qo=()=>d.useContext(ct),Ff=()=>{const e=r.useRecord();return a.jsx("div",{children:a.jsx(r.SchemaComponentContext.Provider,{value:{designable:!1},children:a.jsx(Tf,{children:a.jsx(r.SchemaComponent,{schema:$f,components:{SettingCenterPermissionProvider:r.SettingCenterPermissionProvider,PermissionProvider:vf},scope:{dataSourceKey:e.key}})})})})},wf=()=>{const{update:e}=d.useContext(ve),{t}=K.useTranslation(),{key:o}=r.useRecord();return a.jsx(r.SchemaComponent,{schema:{type:"void",name:"form","x-component":"Form","x-component-props":{useValues:n=>{const s=r.useAPIClient(),i=d.useContext(be);return r.useRequest(()=>s.resource(`dataSources/${o}/roles`).get({filterByTk:i.name}).then(c=>{var p,u;const l=(p=c==null?void 0:c.data)==null?void 0:p.data;return(u=l.snippets)==null||u.forEach(m=>{l[m]=!0}),{data:l}}),n)},effects(){ye.onFieldChange("*",(n,s)=>P(this,null,function*(){s.modified&&(yield e(n,s))}))}},properties:{"strategy.actions":{description:t("All collections use general action permissions by default; permission configured individually will override the default one."),"x-component":"StrategyActions"}}}})},_f=e=>{var o;if(!e)return{};const t={};return(o=e==null?void 0:e.forEach)==null||o.call(e,n=>{const[s,i]=n.split(":");t[s]=i||"all"}),t},Go=e=>{const t=[];for(const o in e)if(Object.prototype.hasOwnProperty.call(e,o)){const n=e[o];n==="all"?t.push(o):t.push(`${o}:${n}`)}return t},Pf=_.connect(e=>{const{onChange:t}=e,o=qo(),n=r.useCompile(),{t:s}=K.useTranslation(),i=_.useField(),c=_f(i.value);return a.jsx("div",{children:a.jsx(S.Table,{size:"small",pagination:!1,columns:[{dataIndex:"displayName",title:s("Action display name"),render:l=>n(l)},{dataIndex:"onNewRecord",title:s("Action type"),render:l=>l?a.jsx(S.Tag,{color:"green",children:s("Action on new records")}):a.jsx(S.Tag,{color:"geekblue",children:s("Action on existing records")})},{dataIndex:"enabled",title:s("Allow"),render:(l,p)=>a.jsx(S.Checkbox,{checked:l,onChange:u=>{l?delete c[p.name]:c[p.name]="all",t(Go(c))}})},{dataIndex:"scope",title:s("Data scope"),render:(l,p)=>!p.onNewRecord&&a.jsx(S.Select,{"data-testid":"select-data-scope",popupMatchSelectWidth:!1,size:"small",value:l,options:[{label:s("All records"),value:"all"},{label:s("Own records"),value:"own"}],onChange:u=>{c[p.name]=u,t(Go(c))}})}],dataSource:o==null?void 0:o.map(l=>{let p="all",u=!1;return c[l.name]&&(u=!0,p=c[l.name]),j(F({},l),{enabled:u,scope:p})})})})}),Df=Jo.createStyles(({css:e})=>e`
43
43
  .ant-table-cell {
44
44
  > .ant-space-horizontal {
45
45
  .ant-space-item-split:has(+ .ant-space-item:empty) {
@@ -47,4 +47,4 @@
47
47
  }
48
48
  }
49
49
  }
50
- `),Pf=(e="main")=>({name:`dataSources/${e}/rolesResourcesScopes`,fields:[{type:"string",name:"name",interface:"input",uiSchema:{title:'{{t("Scope name")}}',type:"string","x-component":"Input",required:!0}}]}),Df=()=>{const{name:e}=d.useContext(de),t=r.useFormBlockContext();return d.useEffect(()=>{t.form.setInitialValues({resourceName:e})},[e]),{form:t.form}},If=e=>{const t=Pf(e);return{type:"object",properties:{scope:{"x-component":"RecordPicker","x-component-props":{size:"small",fieldNames:{label:"name",value:"id"},multiple:!1,association:{target:"rolesResourcesScopes"},onChange:"{{ onChange }}"},properties:{selector:{type:"void",title:'{{ t("Select record") }}',"x-component":"RecordPicker.Selector","x-component-props":{className:"nb-record-picker-selector"},properties:{tableBlock:{type:"void","x-decorator":"TableSelectorProvider","x-decorator-props":{collection:t,resource:`dataSources/${e}/rolesResourcesScopes`,action:"list",params:{pageSize:20},useParams(){return{filter:{$or:[{resourceName:d.useContext(de).name},{resourceName:null}]}}},rowKey:"id"},"x-component":"BlockItem",properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:16}},properties:{create:{type:"void",title:'{{ t("Add new") }}',"x-action":"create","x-component":"Action","x-component-props":{icon:"PlusOutlined",openMode:"drawer",type:"primary"},properties:{drawer:{type:"void",title:'{{ t("Add record") }}',"x-component":"Action.Container","x-component-props":{className:"nb-action-popup"},properties:{formBlock:{type:"void","x-decorator":"FormBlockProvider","x-decorator-props":{resource:`dataSources/${e}/rolesResourcesScopes`,collection:t},"x-component":"CardItem",properties:{form:{type:"void","x-component":"FormV2","x-use-component-props":Df,properties:{name:{type:"string","x-component":"CollectionField","x-decorator":"FormItem"},scope:{type:"object",title:'{{t("Data scope")}}',name:"filter","x-decorator":"FormItem","x-component":"Filter","x-use-component-props":()=>{const o=d.useContext(de);return{options:r.useFilterFieldOptions(o.fields)}},"x-component-props":{dynamicComponent:r.VariableInput}},actions:{type:"void","x-component":"ActionBar","x-component-props":{layout:"one-column",style:{marginTop:24}},properties:{create:{title:'{{ t("Submit") }}',"x-action":"submit","x-component":"Action","x-use-component-props":"useCreateActionProps","x-component-props":{type:"primary",htmlType:"submit"}}}}}}}}}}}}}},value:{type:"array","x-component":"TableV2.Selector","x-use-component-props":"useTableSelectorProps","x-component-props":{rowKey:"id",rowSelection:{type:"checkbox"}},properties:{column1:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column",properties:{name:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},actions:{type:"void",title:'{{ t("Actions") }}',"x-action-column":"actions","x-component":"TableV2.Column",properties:{actions:{type:"void","x-decorator":"DndContext","x-component":"Space","x-component-props":{split:"|"},properties:{edit:{type:"void",title:'{{ t("Edit") }}',"x-action":"update","x-decorator":"ACLActionProvider","x-component":"Action.Link","x-component-props":{openMode:"drawer",icon:"EditOutlined"},properties:{drawer:{type:"void",title:'{{ t("Edit record") }}',"x-component":"Action.Container","x-component-props":{className:"nb-action-popup"},properties:{formBlock:{type:"void","x-decorator":"FormBlockProvider","x-decorator-props":{resource:`dataSources/${e}/rolesResourcesScopes`,collection:t,action:"get",useParams:"{{ useParamsFromRecord }}"},"x-component":"CardItem",properties:{form:{type:"void","x-component":"FormV2","x-use-component-props":"useFormBlockProps",properties:{name:{type:"string","x-component":"CollectionField","x-decorator":"FormItem"},scope:{type:"object",title:'{{t("Data scope")}}',name:"filter","x-decorator":"FormItem","x-component":"Filter","x-use-component-props":()=>{const o=d.useContext(de);return{options:r.useFilterFieldOptions(o.fields)}},"x-component-props":{dynamicComponent:r.VariableInput}},actions:{type:"void","x-component":"ActionBar","x-component-props":{layout:"one-column",style:{marginTop:24}},properties:{update:{title:'{{ t("Submit") }}',"x-action":"submit","x-component":"Action","x-use-component-props":"useUpdateActionProps","x-component-props":{type:"primary",htmlType:"submit"}}}}}}}}}}}},destroy:{title:'{{ t("Delete") }}',"x-action":"destroy","x-decorator":"ACLActionProvider","x-component":"Action.Link","x-use-component-props":"useDestroyActionProps","x-component-props":{icon:"DeleteOutlined",confirm:{title:"{{t('Delete record')}}",content:"{{t('Are you sure you want to delete it?')}}"}}}}}}}}}}},footer:{"x-component":"Action.Container.Footer","x-component-props":{},properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{},properties:{submit:{title:'{{ t("Submit") }}',"x-action":"submit","x-component":"Action","x-use-component-props":"usePickActionProps","x-component-props":{type:"primary",htmlType:"submit"}}}}}}}}}}}}},Uo=d.createContext(null);Uo.displayName="RolesResourcesScopesSelectedRowKeysContext";const Of=e=>{const[t,o]=d.useState([]);return a.jsx(Uo.Provider,{value:[t,o],children:e.children})},Mf=e=>{const t=d.useMemo(()=>me.createForm({values:{scope:e.value}}),[]),{key:o}=r.useRecord(),n=If(o);return a.jsx(r.FormProvider,{form:t,children:a.jsx(r.SchemaComponent,{components:{RolesResourcesScopesSelectedRowKeysProvider:Of},scope:{onChange(s){var i;(i=e==null?void 0:e.onChange)==null||i.call(e,s)}},schema:n})})},jf=e=>{var o;const t={};return(o=e==null?void 0:e.forEach)==null||o.call(e,n=>{n.name&&(t[n.name]=n,t[n.name].scope=J.isEmpty(n.scope)?null:n.scope)}),t},de=d.createContext({});de.displayName="RoleResourceCollectionContext";const Ef=T.connect(e=>{var b,h;const{styles:t}=_f(),o=f=>{const m=f.map(v=>N(A({},v),{scope:J.isEmpty(v.scope)?null:v.scope}));e.onChange(m)},n=r.useRecord(),s=qo(),i=n.fields,c=r.useCompile(),{t:l}=V.useTranslation(),p=T.useField(),u=jf(p.value||[]),y=(f,m)=>{var F;const v=u==null?void 0:u[f];return v?(F=v==null?void 0:v.fields)==null?void 0:F.includes(m):!1},g=s.filter(f=>f.allowConfigureFields),C=i==null?void 0:i.map(f=>{const m=A({},f);for(const v of g)m[v.name]=y(v.name,f.name);return m}),I=f=>{var m;u[f]?delete u[f]:u[f]={name:f,fields:(m=i==null?void 0:i.map)==null?void 0:m.call(i,v=>v.name)},o(Object.values(u))},$=(f,m)=>{u[f]?(u[f].scope=m,o(Object.values(u))):(I(f),u[f].scope=m,o(Object.values(u)))},S={};for(const f of g)S[f.name]=(i==null?void 0:i.length)===((h=(b=u==null?void 0:u[f.name])==null?void 0:b.fields)==null?void 0:h.length);return a.jsx("div",{children:a.jsx(de.Provider,{value:n,children:a.jsxs(re.FormLayout,{layout:"vertical",children:[a.jsx(re.FormItem,{label:l("Action permission"),children:a.jsx(x.Table,{className:t,size:"small",pagination:!1,columns:[{dataIndex:"displayName",title:l("Action display name"),render:f=>c(f)},{dataIndex:"onNewRecord",title:l("Action type"),render:f=>f?a.jsx(x.Tag,{color:"green",children:l("Action on new records")}):a.jsx(x.Tag,{color:"geekblue",children:l("Action on existing records")})},{dataIndex:"enabled",title:l("Allow"),render:(f,m)=>a.jsx(x.Checkbox,{checked:f,onChange:()=>{I(m.name)}})},{dataIndex:"scope",title:l("Data scope"),render:(f,m)=>!m.onNewRecord&&a.jsx(Mf,{value:f,onChange:v=>{$(m.name,v)}})}],dataSource:s==null?void 0:s.map(f=>{let m=!1,v=null;return u[f.name]&&(m=!0,f.onNewRecord||(v=u[f.name].scope)),N(A({},f),{enabled:m,scope:v})})})}),a.jsx(re.FormItem,{label:l("Field permission"),children:a.jsx(x.Table,{className:t,pagination:!1,dataSource:C,columns:[{dataIndex:["uiSchema","title"],title:l("Field display name"),render:(f,m)=>c(f)||m.name},...g.map(f=>{const m=S==null?void 0:S[f.name];return{dataIndex:f.name,title:a.jsxs(a.Fragment,{children:[a.jsx(x.Checkbox,{checked:m,onChange:()=>{var F;const v=u[f.name]||{name:f.name};m?v.fields=[]:v.fields=(F=i==null?void 0:i.map)==null?void 0:F.call(i,M=>M.name),u[f.name]=v,o(Object.values(u))}}),c(f.displayName)]}),render:(v,F)=>a.jsx(x.Checkbox,{checked:v,onChange:()=>{const M=u[f.name]||{name:f.name},O=M.fields||[];if(v){const k=O.indexOf(F.name);O.splice(k,1)}else O.push(F.name);M.fields=O,u[f.name]=M,o(Object.values(u))}})}})]})})]})})})}),kf={type:"object",properties:{[B.uid()]:{"x-component":"DataSourceTable"}}},ve=d.createContext({});ve.displayName="CurrentRolesContext";const Kf=({role:e})=>a.jsx(x.Card,{"data-testid":"acl-pane-card",bordered:!1,children:a.jsx(ve.Provider,{value:e,children:a.jsx(r.SchemaComponent,{components:{MenuConfigure:r.MenuConfigure,RoleConfigure:Tf,RolesResourcesActions:Ef,DataSourceTable:$f,StrategyActions:wf,SettingsCenterConfigure:r.SettingsCenterConfigure,SettingCenterProvider:r.SettingCenterProvider,ResourceActionProvider:r.ResourceActionProvider,RoleRecordProvider:Cf},schema:kf})})});class be extends r.Plugin{constructor(){super(...arguments);Wo(this,"types",new Map)}load(){return D(this,null,function*(){this.app.addComponents({DataSourcePermissionManager:Kf}),this.app.use(Xo),this.app.pluginSettingsManager.add(E,{title:`{{t("Data sources", { ns: "${E}" })}}`,icon:"ClusterOutlined",showTabs:!1,aclSnippet:"pm.data-source-manager*"}),this.app.pluginSettingsManager.add(`${E}.list`,{title:`{{t("Data sources", { ns: "${E}" })}}`,Component:qy,sort:1,skipAclConfigure:!0,aclSnippet:"pm.data-source-manager"}),this.app.pluginSettingsManager.add(`${E}/:name`,{title:a.jsx(gt,{}),icon:"ClusterOutlined",isTopLevel:!1,sort:100,skipAclConfigure:!0,aclSnippet:"pm.data-source-manager"}),this.app.pluginSettingsManager.add(`${E}/main`,{title:a.jsx(gt,{}),icon:"ClusterOutlined",isTopLevel:!1,sort:100,skipAclConfigure:!0,aclSnippet:"pm.data-source-manager.data-source-main"}),this.app.pluginSettingsManager.add(`${E}/main.collections`,{title:`{{t("Collections", { ns: "${E}" })}}`,Component:gf,topLevelName:`${E}/main`,pluginKey:E,skipAclConfigure:!0,aclSnippet:"pm.data-source-manager.data-source-main"}),this.app.pluginSettingsManager.add(`${E}/:name.collections`,{title:`{{t("Collections", { ns: "${E}" })}}`,Component:Ky,topLevelName:`${E}/:name`,pluginKey:E,skipAclConfigure:!0,aclSnippet:"pm.data-source-manager.data-source-main"}),this.app.dataSourceManager.addDataSources(this.getThirdDataSource.bind(this),mt)})}setDataSources(){return D(this,null,function*(){var n;const o=yield this.app.apiClient.request({resource:"dataSources",action:"listEnabled",params:{paginate:!1}});return(n=o==null?void 0:o.data)==null?void 0:n.data})}getThirdDataSource(){return D(this,null,function*(){var n;const o=yield this.app.apiClient.request({resource:"dataSources",action:"listEnabled",params:{paginate:!1,appends:["collections"]}});return(n=o==null?void 0:o.data)==null?void 0:n.data})}registerType(o,n){this.types.set(o,n)}}j.PluginDataSourceManagerClient=be,j.default=be,Object.defineProperties(j,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
50
+ `),If=(e="main")=>({name:`dataSources/${e}/rolesResourcesScopes`,fields:[{type:"string",name:"name",interface:"input",uiSchema:{title:'{{t("Scope name")}}',type:"string","x-component":"Input",required:!0}}]}),Of=()=>{const{name:e}=d.useContext(me),t=r.useFormBlockContext();return d.useEffect(()=>{t.form.setInitialValues({resourceName:e})},[e]),{form:t.form}},Mf=e=>{const t=If(e);return{type:"object",properties:{scope:{"x-component":"RecordPicker","x-component-props":{size:"small",fieldNames:{label:"name",value:"id"},multiple:!1,association:{target:"rolesResourcesScopes"},onChange:"{{ onChange }}"},properties:{selector:{type:"void",title:'{{ t("Select record") }}',"x-component":"RecordPicker.Selector","x-component-props":{className:"nb-record-picker-selector"},properties:{tableBlock:{type:"void","x-decorator":"TableSelectorProvider","x-decorator-props":{collection:t,resource:`dataSources/${e}/rolesResourcesScopes`,action:"list",params:{pageSize:20},useParams(){return{filter:{$or:[{resourceName:d.useContext(me).name},{resourceName:null}]}}},rowKey:"id"},"x-component":"BlockItem",properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:16}},properties:{create:{type:"void",title:'{{ t("Add new") }}',"x-action":"create","x-component":"Action","x-component-props":{icon:"PlusOutlined",openMode:"drawer",type:"primary"},properties:{drawer:{type:"void",title:'{{ t("Add record") }}',"x-component":"Action.Container","x-component-props":{className:"nb-action-popup"},properties:{formBlock:{type:"void","x-decorator":"FormBlockProvider","x-decorator-props":{resource:`dataSources/${e}/rolesResourcesScopes`,collection:t},"x-component":"CardItem",properties:{form:{type:"void","x-component":"FormV2","x-use-component-props":Of,properties:{name:{type:"string","x-component":"CollectionField","x-decorator":"FormItem"},scope:{type:"object",title:'{{t("Data scope")}}',name:"filter","x-decorator":"FormItem","x-component":"Filter","x-use-component-props":()=>{const o=d.useContext(me);return{options:r.useFilterFieldOptions(o.fields)}},"x-component-props":{dynamicComponent:r.VariableInput}},actions:{type:"void","x-component":"ActionBar","x-component-props":{layout:"one-column",style:{marginTop:24}},properties:{create:{title:'{{ t("Submit") }}',"x-action":"submit","x-component":"Action","x-use-component-props":"useCreateActionProps","x-component-props":{type:"primary",htmlType:"submit"}}}}}}}}}}}}}},value:{type:"array","x-component":"TableV2.Selector","x-use-component-props":"useTableSelectorProps","x-component-props":{rowKey:"id",rowSelection:{type:"checkbox"}},properties:{column1:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column",properties:{name:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},actions:{type:"void",title:'{{ t("Actions") }}',"x-action-column":"actions","x-component":"TableV2.Column",properties:{actions:{type:"void","x-decorator":"DndContext","x-component":"Space","x-component-props":{split:"|"},properties:{edit:{type:"void",title:'{{ t("Edit") }}',"x-action":"update","x-decorator":"ACLActionProvider","x-component":"Action.Link","x-component-props":{openMode:"drawer",icon:"EditOutlined"},properties:{drawer:{type:"void",title:'{{ t("Edit record") }}',"x-component":"Action.Container","x-component-props":{className:"nb-action-popup"},properties:{formBlock:{type:"void","x-decorator":"FormBlockProvider","x-decorator-props":{resource:`dataSources/${e}/rolesResourcesScopes`,collection:t,action:"get",useParams:"{{ useParamsFromRecord }}"},"x-component":"CardItem",properties:{form:{type:"void","x-component":"FormV2","x-use-component-props":"useFormBlockProps",properties:{name:{type:"string","x-component":"CollectionField","x-decorator":"FormItem"},scope:{type:"object",title:'{{t("Data scope")}}',name:"filter","x-decorator":"FormItem","x-component":"Filter","x-use-component-props":()=>{const o=d.useContext(me);return{options:r.useFilterFieldOptions(o.fields)}},"x-component-props":{dynamicComponent:r.VariableInput}},actions:{type:"void","x-component":"ActionBar","x-component-props":{layout:"one-column",style:{marginTop:24}},properties:{update:{title:'{{ t("Submit") }}',"x-action":"submit","x-component":"Action","x-use-component-props":"useUpdateActionProps","x-component-props":{type:"primary",htmlType:"submit"}}}}}}}}}}}},destroy:{title:'{{ t("Delete") }}',"x-action":"destroy","x-decorator":"ACLActionProvider","x-component":"Action.Link","x-use-component-props":"useDestroyActionProps","x-component-props":{icon:"DeleteOutlined",confirm:{title:"{{t('Delete record')}}",content:"{{t('Are you sure you want to delete it?')}}"}}}}}}}}}}},footer:{"x-component":"Action.Container.Footer","x-component-props":{},properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{},properties:{submit:{title:'{{ t("Submit") }}',"x-action":"submit","x-component":"Action","x-use-component-props":"usePickActionProps","x-component-props":{type:"primary",htmlType:"submit"}}}}}}}}}}}}},Uo=d.createContext(null);Uo.displayName="RolesResourcesScopesSelectedRowKeysContext";const Ef=e=>{const[t,o]=d.useState([]);return a.jsx(Uo.Provider,{value:[t,o],children:e.children})},jf=e=>{const t=d.useMemo(()=>ye.createForm({values:{scope:e.value}}),[]),{key:o}=r.useRecord(),n=Mf(o);return a.jsx(r.FormProvider,{form:t,children:a.jsx(r.SchemaComponent,{components:{RolesResourcesScopesSelectedRowKeysProvider:Ef},scope:{onChange(s){var i;(i=e==null?void 0:e.onChange)==null||i.call(e,s)}},schema:n})})},kf=e=>{var o;const t={};return(o=e==null?void 0:e.forEach)==null||o.call(e,n=>{n.name&&(t[n.name]=n,t[n.name].scope=Y.isEmpty(n.scope)?null:n.scope)}),t},me=d.createContext({});me.displayName="RoleResourceCollectionContext";const Kf=_.connect(e=>{var b,f;const{styles:t}=Df(),o=y=>{const g=y.map(x=>j(F({},x),{scope:Y.isEmpty(x.scope)?null:x.scope}));e.onChange(g)},n=r.useRecord(),s=qo(),i=n.fields,c=r.useCompile(),{t:l}=K.useTranslation(),p=_.useField(),u=kf(p.value||[]),m=(y,g)=>{var I;const x=u==null?void 0:u[y];return x?(I=x==null?void 0:x.fields)==null?void 0:I.includes(g):!1},h=s.filter(y=>y.allowConfigureFields),C=i==null?void 0:i.map(y=>{const g=F({},y);for(const x of h)g[x.name]=m(x.name,y.name);return g}),D=y=>{var g;u[y]?delete u[y]:u[y]={name:y,fields:(g=i==null?void 0:i.map)==null?void 0:g.call(i,x=>x.name)},o(Object.values(u))},$=(y,g)=>{u[y]?(u[y].scope=g,o(Object.values(u))):(D(y),u[y].scope=g,o(Object.values(u)))},v={};for(const y of h)v[y.name]=(i==null?void 0:i.length)===((f=(b=u==null?void 0:u[y.name])==null?void 0:b.fields)==null?void 0:f.length);return a.jsx("div",{children:a.jsx(me.Provider,{value:n,children:a.jsxs(ae.FormLayout,{layout:"vertical",children:[a.jsx(ae.FormItem,{label:l("Action permission"),children:a.jsx(S.Table,{className:t,size:"small",pagination:!1,columns:[{dataIndex:"displayName",title:l("Action display name"),render:y=>c(y)},{dataIndex:"onNewRecord",title:l("Action type"),render:y=>y?a.jsx(S.Tag,{color:"green",children:l("Action on new records")}):a.jsx(S.Tag,{color:"geekblue",children:l("Action on existing records")})},{dataIndex:"enabled",title:l("Allow"),render:(y,g)=>a.jsx(S.Checkbox,{checked:y,onChange:()=>{D(g.name)}})},{dataIndex:"scope",title:l("Data scope"),render:(y,g)=>!g.onNewRecord&&a.jsx(jf,{value:y,onChange:x=>{$(g.name,x)}})}],dataSource:s==null?void 0:s.map(y=>{let g=!1,x=null;return u[y.name]&&(g=!0,y.onNewRecord||(x=u[y.name].scope)),j(F({},y),{enabled:g,scope:x})})})}),a.jsx(ae.FormItem,{label:l("Field permission"),children:a.jsx(S.Table,{className:t,pagination:!1,dataSource:C,columns:[{dataIndex:["uiSchema","title"],title:l("Field display name"),render:(y,g)=>c(y)||g.name},...h.map(y=>{const g=v==null?void 0:v[y.name];return{dataIndex:y.name,title:a.jsxs(a.Fragment,{children:[a.jsx(S.Checkbox,{checked:g,onChange:()=>{var I;const x=u[y.name]||{name:y.name};g?x.fields=[]:x.fields=(I=i==null?void 0:i.map)==null?void 0:I.call(i,k=>k.name),u[y.name]=x,o(Object.values(u))}}),c(y.displayName)]}),render:(x,I)=>a.jsx(S.Checkbox,{checked:x,onChange:()=>{const k=u[y.name]||{name:y.name},M=k.fields||[];if(x){const B=M.indexOf(I.name);M.splice(B,1)}else M.push(I.name);k.fields=M,u[y.name]=k,o(Object.values(u))}})}})]})})]})})})}),Nf={type:"object",properties:{[N.uid()]:{"x-component":"DataSourceTable"}}},be=d.createContext({});be.displayName="CurrentRolesContext";const Bf=({role:e})=>a.jsx(S.Card,{"data-testid":"acl-pane-card",bordered:!1,children:a.jsx(be.Provider,{value:e,children:a.jsx(r.SchemaComponent,{components:{MenuConfigure:r.MenuConfigure,RoleConfigure:wf,RolesResourcesActions:Kf,DataSourceTable:Ff,StrategyActions:Pf,SettingsCenterConfigure:r.SettingsCenterConfigure,SettingCenterProvider:r.SettingCenterProvider,ResourceActionProvider:r.ResourceActionProvider,RoleRecordProvider:bf},schema:Nf})})});class xe extends r.Plugin{constructor(){super(...arguments);Yo(this,"types",new Map)}load(){return P(this,null,function*(){this.app.addComponents({DataSourcePermissionManager:Bf}),this.app.use(en),this.app.pluginSettingsManager.add(E,{title:`{{t("Data sources", { ns: "${E}" })}}`,icon:"ClusterOutlined",showTabs:!1,aclSnippet:"pm.data-source-manager*"}),this.app.pluginSettingsManager.add(`${E}.list`,{title:`{{t("Data sources", { ns: "${E}" })}}`,Component:Uy,sort:1,skipAclConfigure:!0,aclSnippet:"pm.data-source-manager"}),this.app.pluginSettingsManager.add(`${E}/:name`,{title:a.jsx(gt,{}),icon:"ClusterOutlined",isTopLevel:!1,sort:100,skipAclConfigure:!0,aclSnippet:"pm.data-source-manager"}),this.app.pluginSettingsManager.add(`${E}/main`,{title:a.jsx(gt,{}),icon:"ClusterOutlined",isTopLevel:!1,sort:100,skipAclConfigure:!0,aclSnippet:"pm.data-source-manager.data-source-main"}),this.app.pluginSettingsManager.add(`${E}/main.collections`,{title:`{{t("Collections", { ns: "${E}" })}}`,Component:Cf,topLevelName:`${E}/main`,pluginKey:E,skipAclConfigure:!0,aclSnippet:"pm.data-source-manager.data-source-main"}),this.app.pluginSettingsManager.add(`${E}/:name.collections`,{title:`{{t("Collections", { ns: "${E}" })}}`,Component:By,topLevelName:`${E}/:name`,pluginKey:E,skipAclConfigure:!0,aclSnippet:"pm.data-source-manager.data-source-main"}),this.app.dataSourceManager.addDataSources(this.getThirdDataSource.bind(this),mt)})}setDataSources(){return P(this,null,function*(){var n;const o=yield this.app.apiClient.request({resource:"dataSources",action:"listEnabled",params:{paginate:!1}});return(n=o==null?void 0:o.data)==null?void 0:n.data})}getThirdDataSource(){return P(this,null,function*(){var n;const o=yield this.app.apiClient.request({resource:"dataSources",action:"listEnabled",params:{paginate:!1,appends:["collections"]}});return(n=o==null?void 0:o.data)==null?void 0:n.data})}registerType(o,n){this.types.set(o,n)}}O.PluginDataSourceManagerClient=xe,O.default=xe,Object.defineProperties(O,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});