@tachybase/module-data-source 0.23.40 → 0.23.47

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,3 +1,3 @@
1
1
  import React from 'react';
2
2
  export declare const RoleResourceCollectionContext: React.Context<any>;
3
- export declare const RolesResourcesActions: React.ForwardRefExoticComponent<Omit<Partial<any>, "ref"> & React.RefAttributes<unknown>>;
3
+ export declare const RolesResourcesActions: React.ForwardRefExoticComponent<Omit<any, "ref"> & React.RefAttributes<unknown>>;
@@ -1,2 +1,2 @@
1
1
  import React from 'react';
2
- export declare const StrategyActions: React.ForwardRefExoticComponent<Omit<Partial<any>, "ref"> & React.RefAttributes<unknown>>;
2
+ export declare const StrategyActions: React.ForwardRefExoticComponent<Omit<any, "ref"> & React.RefAttributes<unknown>>;
@@ -1,14 +1,14 @@
1
- (function(k,a){typeof exports=="object"&&typeof module!="undefined"?a(exports,require("react/jsx-runtime"),require("@tachybase/client"),require("react"),require("@ant-design/icons"),require("antd"),require("react-router-dom"),require("@tachybase/schema"),require("react-i18next"),require("lodash"),require("@dnd-kit/core"),require("@tachybase/components")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","@tachybase/client","react","@ant-design/icons","antd","react-router-dom","@tachybase/schema","react-i18next","lodash","@dnd-kit/core","@tachybase/components"],a):(k=typeof globalThis!="undefined"?globalThis:k||self,a(k["@tachybase/module-data-source"]={},k.jsxRuntime,k["@tachybase/client"],k.react,k["@ant-design/icons"],k.antd,k["react-router-dom"],k["@tachybase/schema"],k["react-i18next"],k.lodash,k["@dnd-kit/core"],k["@tachybase/components"]))})(this,function(k,a,r,f,J,S,W,C,j,Q,Z,ae){"use strict";var Nf=Object.defineProperty,Lf=Object.defineProperties;var qf=Object.getOwnPropertyDescriptors;var Oe=Object.getOwnPropertySymbols;var Bo=Object.prototype.hasOwnProperty,Vo=Object.prototype.propertyIsEnumerable;var it=(k,a,r)=>a in k?Nf(k,a,{enumerable:!0,configurable:!0,writable:!0,value:r}):k[a]=r,F=(k,a)=>{for(var r in a||(a={}))Bo.call(a,r)&&it(k,r,a[r]);if(Oe)for(var r of Oe(a))Vo.call(a,r)&&it(k,r,a[r]);return k},K=(k,a)=>Lf(k,qf(a));var Ee=(k,a)=>{var r={};for(var f in k)Bo.call(k,f)&&a.indexOf(f)<0&&(r[f]=k[f]);if(k!=null&&Oe)for(var f of Oe(k))a.indexOf(f)<0&&Vo.call(k,f)&&(r[f]=k[f]);return r};var No=(k,a,r)=>it(k,typeof a!="symbol"?a+"":a,r);var I=(k,a,r)=>new Promise((f,J)=>{var S=j=>{try{C(r.next(j))}catch(Q){J(Q)}},W=j=>{try{C(r.throw(j))}catch(Q){J(Q)}},C=j=>j.done?f(j.value):Promise.resolve(j.value).then(S,W);C((r=r.apply(k,a)).next())});const U="data-source",Lo=e=>r.useTranslation([U,"core"],e),ke=()=>{const e=C.useForm(),t=r.useAPIClient(),{t:o}=j.useTranslation(),n=C.useField();return n.data=n.data||{},{onClick(){return I(this,null,function*(){yield e.submit();try{n.data.loading=!0,yield t.resource("dataSources").testConnection({values:e.values}),n.data.loading=!1,S.message.success(o("Connection successful",{ns:U}))}catch(i){n.data.loading=!1}})}}},lt=()=>{const e=C.useForm(),t=C.useField(),o=r.useActionContext(),n=r.useDataBlockRequest(),s=r.useDataBlockResource();return{onClick(){return I(this,null,function*(){try{yield e.submit(),t.data=t.data||{},t.data.loading=!0,yield s.create({values:e.values}),o.setVisible(!1),yield e.reset(),t.data.loading=!1,n.refresh()}catch(l){t.data&&(t.data.loading=!1)}})}}},qo=Object.freeze(Object.defineProperty({__proto__:null,useCreateDatabaseConnectionAction:lt,useTestConnectionAction:ke},Symbol.toStringTag,{value:"Module"})),xe=f.createContext(null);xe.displayName="DataSourceContext";const Go=e=>{const[t,o]=f.useState(null);return a.jsx(xe.Provider,{value:{dataSource:t,setDataSource:o},children:a.jsx(r.SchemaComponentOptions,{scope:qo,components:{},children:e.children})})},ct=[{value:"loading",label:`{{t("Loading",{ns:"${U}"})}}`,color:"orange"},{value:"loading-failed",label:`{{t("Failed",{ns:"${U}"})}}`,color:"red"},{value:"loaded",label:`{{t("Loaded",{ns:"${U}"})}}`,color:"green"},{value:"reloading",label:`{{t("Reloading",{ns:"${U}"})}}`,color:"orange"}],Uo={name:"dataSources",fields:[{type:"string",name:"key",interface:"input",uiSchema:{title:`{{t("Data source name",{ ns: "${U}" })}}`,type:"string","x-component":"Input",required:!0}},{type:"string",name:"displayName",interface:"input",uiSchema:{title:`{{t("Data source display name",{ ns: "${U}" })}}`,type:"string","x-component":"Input",required:!0}},{type:"string",name:"type",interface:"select",uiSchema:{title:`{{t("Type", { ns: "${U}" })}}`,type:"string","x-component":"Select",enum:"{{types}}"}},{type:"string",name:"status",interface:"select",uiSchema:{title:`{{t("Status", { ns: "${U}" })}}`,type:"string","x-component":"Select",enum:ct}},{type:"boolean",name:"enabled",uiSchema:{type:"boolean",title:'{{t("Enabled")}}',"x-component":"Checkbox"}}]},zo={type:"void",properties:{[C.uid()]:{type:"void","x-component":"CardItem","x-decorator":"TableBlockProvider","x-decorator-props":{collection:Uo,action:"list",params:{pageSize:50,appends:[],filter:{type:{$ne:"main"}}}},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-action":"destroy","x-decorator":"ACLActionProvider","x-use-component-props":"useBulkDestroyActionProps","x-component-props":{icon:"DeleteOutlined",confirm:{title:"{{t('Delete')}}",content:"{{t('Are you sure you want to delete it?')}}"}}},create:{type:"void",title:'{{t("Add new")}}',"x-component":"CreateDatabaseConnectAction","x-component-props":{type:"primary"}}}},table:{type:"array","x-component":"TableV2","x-use-component-props":"useTableBlockProps","x-component-props":{rowKey:"key",rowSelection:{type:"checkbox"}},properties:{key:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column",properties:{key:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},displayName:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column",properties:{displayName:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},type:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column",properties:{type:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},status:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column",properties:{status:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},enabled:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column",properties:{enabled:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},actions:{type:"void",title:'{{t("Actions")}}',"x-component":"TableV2.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)}}"]}}}}}}}}}}},Ho=()=>{r.useApp();const{name:e}=W.useParams(),t=r.useCompile(),o=r.useDataSourceManager(),{displayName:n}=o.getDataSource(e)||{},{dataSource:s}=f.useContext(xe),i=f.useMemo(()=>s||o.getDataSource(e),[s,e]),l=f.useMemo(()=>{const p=i==null?void 0:i.status,u=ct.find(g=>g.value===p),c=[];return i&&c.push({title:a.jsxs(S.Space,{children:[a.jsx("span",{children:t(n)}),p&&a.jsx(S.Tag,{color:u==null?void 0:u.color,children:t(u==null?void 0:u.label)},p)]})}),c},[i]);return a.jsx(S.Breadcrumb,{separator:a.jsx(J.RightOutlined,{}),items:l})},Se=["string","bigInt","integer","uuid","uid"],Wo=C.observer(e=>{var c,g;const{name:t}=W.useParams(),{collectionName:o,sourceKey:n,name:s}=r.useRecord(),i=C.useField(),l=r.useCompile(),{getCollection:p}=r.useCollectionManager_deprecated(),u=(c=p(o||s,t).fields)==null?void 0:c.filter(m=>m.primaryKey||m.unique).map(m=>{var v;return{value:m.name,label:l(((v=m.uiSchema)==null?void 0:v.title)||m.title||m.name)}});return f.useEffect(()=>{var m;i.initialValue=((m=u==null?void 0:u[0])==null?void 0:m.value)||n},[]),a.jsx("div",{children:a.jsx(S.Select,{disabled:n,options:u,defaultValue:((g=u==null?void 0:u[0])==null?void 0:g.value)||n,onChange:e==null?void 0:e.onChange,showSearch:!0})})},{displayName:"SourceKey"}),pt=C.observer(e=>{const{disabled:t}=e,o=r.useAPIClient(),[n,s]=f.useState([]),{name:i}=W.useParams(),l=r.useRecord(),p=C.useField(),{collectionName:u,target:c,type:g,through:m,name:v}=l,x=l[p.props.name],{getCollection:P}=r.useCollectionManager_deprecated(),w=r.useCompile(),h=C.useForm(),[b,y]=f.useState(x);return f.useEffect(()=>{var D;p.initialValue=null;const d=["belongsTo"].includes(g)?u:["belongsToMany"].includes(g)?m:c,A=(D=P(d,i))==null?void 0:D.fields;if(A){const E=A==null?void 0:A.filter($=>Se.includes($.type)).map($=>{var B;return{value:$.name,label:w(((B=$.uiSchema)==null?void 0:B.title)||$.title||$.name)}});if(s(E),x){const $=E.find(B=>B.value===x);y(($==null?void 0:$.label)||x)}}},[g]),f.useEffect(()=>{y(x)},[x]),a.jsx("div",{children:a.jsx(S.Select,{disabled:t,value:b,options:n,showSearch:!0,onDropdownVisibleChange:d=>I(this,null,function*(){var B;const{target:A,type:D,through:E}=h.values,$=["belongsTo"].includes(D)?u||v:["belongsToMany"].includes(D)?E:A;if($&&d){const{data:_}=yield o.request({url:`dataSourcesCollections/${i}.${$}/fields:list`,params:{paginate:!1,filter:{$or:[{"interface.$not":null},{"options.source.$notEmpty":!0}]},sort:["sort"]}});s((B=_.data)==null?void 0:B.filter(T=>Se.includes(T.type)).map(T=>{var M;return{value:T.name,label:w(((M=T.uiSchema)==null?void 0:M.title)||T.title||T.name)}}))}}),onChange:d=>{var A;(A=e==null?void 0:e.onChange)==null||A.call(e,d),y(d)}})})},{displayName:"ForeignKey"}),Qo=C.observer(e=>{const{value:t,disabled:o}=e,{targetKey:n,target:s,type:i}=r.useRecord(),{name:l}=W.useParams(),{getCollection:p}=r.useCollectionManager_deprecated(),u=r.useAPIClient(),[c,g]=f.useState([]),[m,v]=f.useState(t||n),x=C.useForm(),P=r.useCompile(),w=C.useField();return w.required=!0,f.useEffect(()=>{var h;s&&g((h=p(s,l).fields)==null?void 0:h.filter(b=>i!=="hasMany"?b.primaryKey||b.unique:Se.includes(b.type)).map(b=>{var y;return{value:b.name,label:P(((y=b==null?void 0:b.uiSchema)==null?void 0:y.title)||b.title||b.name)}}))},[]),a.jsx("div",{children:a.jsx(S.Select,{showSearch:!0,options:c,onDropdownVisibleChange:h=>I(this,null,function*(){var d;const{target:b,type:y}=x.values;if(b&&h){const{data:A}=yield u.request({url:`dataSourcesCollections/${l}.${b}/fields:list`,params:{paginate:!1,filter:{$or:[{"interface.$not":null},{"options.source.$notEmpty":!0}]},sort:["sort"]}});g((d=A.data)==null?void 0:d.filter(D=>y!=="hasMany"?D.primaryKey||D.unique:Se.includes(D.type)).map(D=>{var E;return{value:D.name,label:P(((E=D.uiSchema)==null?void 0:E.title)||D.title||D.name)}}))}}),onChange:h=>{var b;(b=e==null?void 0:e.onChange)==null||b.call(e,h),v(h)},value:m,disabled:o})})},{displayName:"TargetKey"}),Zo=C.observer(()=>{const e=r.useCompile(),{targetCollection:t}=rt();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"}),Jo=C.observer(e=>{const{disabled:t}=e,o=r.useCompile(),[n,s]=f.useState([]),{name:i}=W.useParams(),l=C.useField(),{getCollections:p}=r.useCollectionManager_deprecated(i),c=r.useRecord()[l.props.name],g=()=>p().filter(v=>!(v.autoCreate&&v.isThrough)).map(v=>({label:o(v.title||v.name),value:v.name}));return f.useEffect(()=>{const m=g();s(m)},[]),a.jsx("div",{children:a.jsx(S.Select,{disabled:t,showSearch:!0,popupMatchSelectWidth:!1,fieldNames:{label:"label",value:"value"},defaultValue:c,options:n,onChange:m=>{var v;(v=e==null?void 0:e.onChange)==null||v.call(e,m)}})})},{displayName:"ThroughCollection"}),Xo=(e,t,o)=>{var i;if(!e)return;const n=Q.cloneDeep(e.properties);n!=null&&n.foreignKey&&(n.foreignKey["x-component"]=pt),e.hasDefaultValue===!0&&(n.defaultValue=Q.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=K(F({name:`f_${C.uid()}`},Q.cloneDeep(e.default)),{interface:e.name});return s.reverseField&&(s.reverseField.name=`f_${C.uid()}`),{type:"object",properties:{[C.uid()]:{type:"void","x-component":"Action.Drawer","x-component-props":{getContainer:"{{ getContainer }}"},"x-decorator":"Form","x-decorator-props":{useValues(l){return r.useRequest(()=>Promise.resolve({data:s}),l)}},title:`${o(t.title||t.name)} - ${o('{{ t("Add field") }}')}`,properties:K(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 }}"}}}}})}}}},Yo=()=>{const e=C.useForm(),t=r.useActionContext(),{refresh:o}=r.useResourceActionContext(),n=C.useField(),s=r.useAPIClient(),i=r.useRecord(),{name:l}=W.useParams(),p=r.useDataSourceManager();return{run(){return I(this,null,function*(){yield e.submit(),n.data=n.data||{},n.data.loading=!0;const c=Q.cloneDeep(e.values);c.autoCreateReverseField||delete c.reverseField,delete c.autoCreateReverseField;try{yield s.request({url:`dataSourcesCollections/${l}.${i.name}/fields:create`,method:"post",data:c}),t.setVisible(!1),p.getDataSource(l).reload(),yield e.reset(),n.data.loading=!1,o()}catch(g){n.data.loading=!1}})}}},Ro=e=>{const t=r.useRecord();return a.jsx(en,F({item:t},e))},en=e=>{const{scope:t,getContainer:o,item:n,children:s,trigger:i,align:l,database:p}=e,{getInterface:u,getTemplate:c,collections:g}=r.useCollectionManager_deprecated(),[m,v]=f.useState(!1),[x,P]=f.useState(),[w,h]=f.useState({}),b=r.useCompile(),{t:y}=j.useTranslation(),{data:{database:d}}=r.useCurrentAppInfo(),A=T=>(d==null?void 0:d.dialect)===T,D=f.useMemo(()=>g.map(T=>({label:b(T.title),value:T.name})),[]),E=r.useFieldInterfaceOptions(),$=f.useCallback(()=>{const{availableFieldInterfaces:T}=c(n.template)||{},{exclude:M,include:V}=T||{},H=[];return E.forEach(G=>{var O;if(G.key==="relation"){let z=[];V!=null&&V.length?V.forEach(N=>{var ee;const Y=(ee=G==null?void 0:G.children)==null?void 0:ee.find(Vf=>[N,N.interface].includes(Vf.value));Y&&z.push(K(F({},Y),{targetScope:N==null?void 0:N.targetScope}))}):M!=null&&M.length?z=(O=G==null?void 0:G.children)==null?void 0:O.filter(N=>!M.includes(N.value)):z=G==null?void 0:G.children,z!=null&&z.length&&H.push(K(F({},G),{children:z}))}}),H},[c,n]),B=f.useMemo(()=>$().map(T=>{var M;return((M=T==null?void 0:T.children)==null?void 0:M.length)===0?null:n.template==="view"?{type:"group",label:b(T.label),title:b(T.label),key:T.label,children:T.children.filter(V=>["m2o"].includes(V.name)).map(V=>({label:b(V.title),title:b(V.title),key:V.name,dataTargetScope:V.targetScope}))}:{type:"group",label:b(T.label),title:b(T.label),key:T.label,children:T==null?void 0:T.children.filter(V=>!["o2o","subTable","linkTo"].includes(V.name)).map(V=>({label:b(V.title),title:b(V.title),key:V.name,dataTargetScope:V.targetScope}))}}).filter(T=>{var M;return(M=T==null?void 0:T.children)==null?void 0:M.length}),[$]),_=f.useMemo(()=>({style:{maxHeight:"60vh",overflow:"auto"},onClick:T=>{const M=T.item.props["data-targetScope"];M&&P(M);const V=Xo(u(T.key),n,b);V&&(h(V),v(!0))},items:B}),[u,B,n]);return n.template!=="sql"&&a.jsx(r.RecordProvider,{record:n,children:a.jsxs(r.ActionContextProvider,{value:{visible:m,setVisible:v},children:[a.jsx(S.Dropdown,{getPopupContainer:o,trigger:i,align:l,menu:_,children:s||a.jsx(S.Button,{icon:a.jsx(J.PlusOutlined,{}),type:"primary",children:y("Add field")})}),a.jsx(r.SchemaComponent,{schema:w,components:{ArrayTable:ae.ArrayTable},scope:F({getContainer:o,useCancelAction:r.useCancelAction,createOnly:!0,isOverride:!1,override:!1,useCreateCollectionField:Yo,record:n,showReverseFieldConfig:!1,targetScope:x,collections:D,isDialect:A,disabledJSONB:!1,createMainOnly:!0},t)})]})})},ut=(e,t)=>{const o=[];return e.forEach(n=>{const s=n.children.filter(i=>{var l;return(l=i==null?void 0:i.availableTypes)==null?void 0:l.includes(t)});o.push({label:n.label,key:n.key,children:s})}),o.filter(n=>t==="sort"?n.key==="advanced":n.children.length>0)},tn=C.observer(e=>{var v;const{value:t,handleFieldChange:o}=e,n=r.useRecord(),{getInterface:s}=r.useCollectionManager_deprecated(),i=r.useCompile(),l=r.useFieldInterfaceOptions(),p=ut(l,n.type),u=C.useForm(),c=C.useField(),[g,m]=f.useState(p);return["oho","obo","o2m","m2o","m2m"].includes(n.interface)?a.jsx(S.Tag,{children:i((v=l.find(x=>x.key==="relation").children.find(x=>x.name===t))==null?void 0:v.label)},t):a.jsx(S.Select,{"aria-label":`field-interface-${n==null?void 0:n.type}`,role:"button",defaultValue:t,style:{width:"100%"},popupMatchSelectWidth:!1,onChange:x=>{var w,h;const P=s(x);o({interface:x,uiSchema:F({title:(w=n==null?void 0:n.uiSchema)==null?void 0:w.title},(h=P==null?void 0:P.default)==null?void 0:h.uiSchema)},n.name)},onDropdownVisibleChange:x=>{var P,w;if(x&&(n!=null&&n.possibleTypes)){const h=(w=(P=Object.values(u.values))==null?void 0:P[0])==null?void 0:w[c.index],b=(h==null?void 0:h.type)||n.type,y=ut(l,b);m(y)}},children:g.map(x=>a.jsx(S.Select.OptGroup,{label:i(x.label),children:x.children.map(P=>a.jsx(S.Select.Option,{value:P.name,children:i(P.label)},P.name))},x.key))})},{displayName:"CollectionFieldInterfaceSelect"}),on=C.observer(e=>{const{value:t,handleFieldChange:o}=e,n=r.useRecord(),[s,i]=f.useState(t),l=c=>{i(c)},p=f.useMemo(()=>Q.debounce(c=>{o({uiSchema:K(F({},n==null?void 0:n.uiSchema),{title:c})},n.name)},1e3),[o,n]),u=c=>{const g=c.target.value;l(g),p(g)};return f.useEffect(()=>{i(t)},[t]),a.jsx(S.Input,{value:s,onChange:u,style:{minWidth:"100px"},"aria-label":"field-title-input"})},{displayName:"FieldTitleInput"}),nn=C.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(l=>({label:l,value:l})))||[],onChange:l=>{n==null||n(l),o(K(F({},i),{type:l}),s.name)}}):a.jsx(S.Tag,{children:t})},{displayName:"FieldType"}),rn=r.withDynamicSchemaProps(e=>{const{t}=j.useTranslation(),{isTitleField:o}=r.useCollectionManager_deprecated(),[n,s]=f.useState(null),{setTitleField:i,filterByTk:l,dataSourceKey:p}=r.useProps(e),u=r.useRecord(),c=r.useAPIClient(),{refreshRM:g,titleField:m}=rt(),v=x=>I(this,null,function*(){s(u),yield c.request({url:`dataSources/${p}/collections:update?filterByTk=${l}`,method:"post",data:{titleField:x?u.name:"id"}}),S.message.success(t("Saved successfully")),g(),i(x?u.name:"id"),s(null)});return o(u)?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-${u==null?void 0:u.name}`,size:"small",loading:(u==null?void 0:u.name)===(n==null?void 0:n.name),checked:(u==null?void 0:u.name)===(m||"id"),onChange:v})}):null},{displayName:"TitleField"}),an=()=>{const{t:e}=j.useTranslation(),{unsupportedFields:t}=r.useRecord(),o=[{title:e("Field name"),dataIndex:"name",key:"name"},{title:e("Field database type",{ns:U}),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:U})})}),a.jsx("div",{style:{marginBottom:"15px"},children:e("The following field types are not compatible and do not support output and display",{ns:U})}),a.jsx(S.Table,{columns:o,dataSource:t,pagination:!1})]})};var R=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function Me(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function sn(){this.__data__=[],this.size=0}var ln=sn;function cn(e,t){return e===t||e!==e&&t!==t}var dt=cn,pn=dt;function un(e,t){for(var o=e.length;o--;)if(pn(e[o][0],t))return o;return-1}var Ae=un,dn=Ae,mn=Array.prototype,yn=mn.splice;function fn(e){var t=this.__data__,o=dn(t,e);if(o<0)return!1;var n=t.length-1;return o==n?t.pop():yn.call(t,o,1),--this.size,!0}var gn=fn,vn=Ae;function Cn(e){var t=this.__data__,o=vn(t,e);return o<0?void 0:t[o][1]}var hn=Cn,bn=Ae;function xn(e){return bn(this.__data__,e)>-1}var Sn=xn,An=Ae;function $n(e,t){var o=this.__data__,n=An(o,e);return n<0?(++this.size,o.push([e,t])):o[n][1]=t,this}var Tn=$n,Fn=ln,wn=gn,_n=hn,Pn=Sn,Dn=Tn;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=Fn,se.prototype.delete=wn,se.prototype.get=_n,se.prototype.has=Pn,se.prototype.set=Dn;var $e=se,In=$e;function On(){this.__data__=new In,this.size=0}var En=On;function kn(e){var t=this.__data__,o=t.delete(e);return this.size=t.size,o}var Mn=kn;function jn(e){return this.__data__.get(e)}var Kn=jn;function Bn(e){return this.__data__.has(e)}var Vn=Bn,Nn=typeof R=="object"&&R&&R.Object===Object&&R,mt=Nn,Ln=mt,qn=typeof self=="object"&&self&&self.Object===Object&&self,Gn=Ln||qn||Function("return this")(),X=Gn,Un=X,zn=Un.Symbol,fe=zn,yt=fe,ft=Object.prototype,Hn=ft.hasOwnProperty,Wn=ft.toString,ge=yt?yt.toStringTag:void 0;function Qn(e){var t=Hn.call(e,ge),o=e[ge];try{e[ge]=void 0;var n=!0}catch(i){}var s=Wn.call(e);return n&&(t?e[ge]=o:delete e[ge]),s}var Zn=Qn,Jn=Object.prototype,Xn=Jn.toString;function Yn(e){return Xn.call(e)}var Rn=Yn,gt=fe,er=Zn,tr=Rn,or="[object Null]",nr="[object Undefined]",vt=gt?gt.toStringTag:void 0;function rr(e){return e==null?e===void 0?nr:or:vt&&vt in Object(e)?er(e):tr(e)}var ie=rr;function ar(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var le=ar,sr=ie,ir=le,lr="[object AsyncFunction]",cr="[object Function]",pr="[object GeneratorFunction]",ur="[object Proxy]";function dr(e){if(!ir(e))return!1;var t=sr(e);return t==cr||t==pr||t==lr||t==ur}var Ct=dr,mr=X,yr=mr["__core-js_shared__"],fr=yr,je=fr,ht=function(){var e=/[^.]+$/.exec(je&&je.keys&&je.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function gr(e){return!!ht&&ht in e}var vr=gr,Cr=Function.prototype,hr=Cr.toString;function br(e){if(e!=null){try{return hr.call(e)}catch(t){}try{return e+""}catch(t){}}return""}var bt=br,xr=Ct,Sr=vr,Ar=le,$r=bt,Tr=/[\\^$.*+?()[\]{}|]/g,Fr=/^\[object .+?Constructor\]$/,wr=Function.prototype,_r=Object.prototype,Pr=wr.toString,Dr=_r.hasOwnProperty,Ir=RegExp("^"+Pr.call(Dr).replace(Tr,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Or(e){if(!Ar(e)||Sr(e))return!1;var t=xr(e)?Ir:Fr;return t.test($r(e))}var Er=Or;function kr(e,t){return e==null?void 0:e[t]}var Mr=kr,jr=Er,Kr=Mr;function Br(e,t){var o=Kr(e,t);return jr(o)?o:void 0}var te=Br,Vr=te,Nr=X,Lr=Vr(Nr,"Map"),Ke=Lr,qr=te,Gr=qr(Object,"create"),Te=Gr,xt=Te;function Ur(){this.__data__=xt?xt(null):{},this.size=0}var zr=Ur;function Hr(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Wr=Hr,Qr=Te,Zr="__lodash_hash_undefined__",Jr=Object.prototype,Xr=Jr.hasOwnProperty;function Yr(e){var t=this.__data__;if(Qr){var o=t[e];return o===Zr?void 0:o}return Xr.call(t,e)?t[e]:void 0}var Rr=Yr,ea=Te,ta=Object.prototype,oa=ta.hasOwnProperty;function na(e){var t=this.__data__;return ea?t[e]!==void 0:oa.call(t,e)}var ra=na,aa=Te,sa="__lodash_hash_undefined__";function ia(e,t){var o=this.__data__;return this.size+=this.has(e)?0:1,o[e]=aa&&t===void 0?sa:t,this}var la=ia,ca=zr,pa=Wr,ua=Rr,da=ra,ma=la;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=ca,ce.prototype.delete=pa,ce.prototype.get=ua,ce.prototype.has=da,ce.prototype.set=ma;var ya=ce,St=ya,fa=$e,ga=Ke;function va(){this.size=0,this.__data__={hash:new St,map:new(ga||fa),string:new St}}var Ca=va;function ha(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var ba=ha,xa=ba;function Sa(e,t){var o=e.__data__;return xa(t)?o[typeof t=="string"?"string":"hash"]:o.map}var Fe=Sa,Aa=Fe;function $a(e){var t=Aa(this,e).delete(e);return this.size-=t?1:0,t}var Ta=$a,Fa=Fe;function wa(e){return Fa(this,e).get(e)}var _a=wa,Pa=Fe;function Da(e){return Pa(this,e).has(e)}var Ia=Da,Oa=Fe;function Ea(e,t){var o=Oa(this,e),n=o.size;return o.set(e,t),this.size+=o.size==n?0:1,this}var ka=Ea,Ma=Ca,ja=Ta,Ka=_a,Ba=Ia,Va=ka;function pe(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])}}pe.prototype.clear=Ma,pe.prototype.delete=ja,pe.prototype.get=Ka,pe.prototype.has=Ba,pe.prototype.set=Va;var At=pe,Na=$e,La=Ke,qa=At,Ga=200;function Ua(e,t){var o=this.__data__;if(o instanceof Na){var n=o.__data__;if(!La||n.length<Ga-1)return n.push([e,t]),this.size=++o.size,this;o=this.__data__=new qa(n)}return o.set(e,t),this.size=o.size,this}var za=Ua,Ha=$e,Wa=En,Qa=Mn,Za=Kn,Ja=Vn,Xa=za;function ue(e){var t=this.__data__=new Ha(e);this.size=t.size}ue.prototype.clear=Wa,ue.prototype.delete=Qa,ue.prototype.get=Za,ue.prototype.has=Ja,ue.prototype.set=Xa;var Ya=ue;function Ra(e,t){for(var o=-1,n=e==null?0:e.length;++o<n&&t(e[o],o,e)!==!1;);return e}var es=Ra,ts=te,os=function(){try{var e=ts(Object,"defineProperty");return e({},"",{}),e}catch(t){}}(),$t=os,Tt=$t;function ns(e,t,o){t=="__proto__"&&Tt?Tt(e,t,{configurable:!0,enumerable:!0,value:o,writable:!0}):e[t]=o}var Ft=ns,rs=Ft,as=dt,ss=Object.prototype,is=ss.hasOwnProperty;function ls(e,t,o){var n=e[t];(!(is.call(e,t)&&as(n,o))||o===void 0&&!(t in e))&&rs(e,t,o)}var Be=ls,cs=Be,ps=Ft;function us(e,t,o,n){var s=!o;o||(o={});for(var i=-1,l=t.length;++i<l;){var p=t[i],u=n?n(o[p],e[p],p,o,e):void 0;u===void 0&&(u=e[p]),s?ps(o,p,u):cs(o,p,u)}return o}var ve=us;function ds(e,t){for(var o=-1,n=Array(e);++o<e;)n[o]=t(o);return n}var ms=ds;function ys(e){return e!=null&&typeof e=="object"}var oe=ys,fs=ie,gs=oe,vs="[object Arguments]";function Cs(e){return gs(e)&&fs(e)==vs}var hs=Cs,wt=hs,bs=oe,_t=Object.prototype,xs=_t.hasOwnProperty,Ss=_t.propertyIsEnumerable,As=wt(function(){return arguments}())?wt:function(e){return bs(e)&&xs.call(e,"callee")&&!Ss.call(e,"callee")},Pt=As,$s=Array.isArray,ne=$s,we={exports:{}};function Ts(){return!1}var Fs=Ts;we.exports,function(e,t){var o=X,n=Fs,s=t&&!t.nodeType&&t,i=s&&!0&&e&&!e.nodeType&&e,l=i&&i.exports===s,p=l?o.Buffer:void 0,u=p?p.isBuffer:void 0,c=u||n;e.exports=c}(we,we.exports);var Dt=we.exports,ws=9007199254740991,_s=/^(?:0|[1-9]\d*)$/;function Ps(e,t){var o=typeof e;return t=t==null?ws:t,!!t&&(o=="number"||o!="symbol"&&_s.test(e))&&e>-1&&e%1==0&&e<t}var It=Ps,Ds=9007199254740991;function Is(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Ds}var Ot=Is,Os=ie,Es=Ot,ks=oe,Ms="[object Arguments]",js="[object Array]",Ks="[object Boolean]",Bs="[object Date]",Vs="[object Error]",Ns="[object Function]",Ls="[object Map]",qs="[object Number]",Gs="[object Object]",Us="[object RegExp]",zs="[object Set]",Hs="[object String]",Ws="[object WeakMap]",Qs="[object ArrayBuffer]",Zs="[object DataView]",Js="[object Float32Array]",Xs="[object Float64Array]",Ys="[object Int8Array]",Rs="[object Int16Array]",ei="[object Int32Array]",ti="[object Uint8Array]",oi="[object Uint8ClampedArray]",ni="[object Uint16Array]",ri="[object Uint32Array]",q={};q[Js]=q[Xs]=q[Ys]=q[Rs]=q[ei]=q[ti]=q[oi]=q[ni]=q[ri]=!0,q[Ms]=q[js]=q[Qs]=q[Ks]=q[Zs]=q[Bs]=q[Vs]=q[Ns]=q[Ls]=q[qs]=q[Gs]=q[Us]=q[zs]=q[Hs]=q[Ws]=!1;function ai(e){return ks(e)&&Es(e.length)&&!!q[Os(e)]}var si=ai;function ii(e){return function(t){return e(t)}}var Ve=ii,_e={exports:{}};_e.exports,function(e,t){var o=mt,n=t&&!t.nodeType&&t,s=n&&!0&&e&&!e.nodeType&&e,i=s&&s.exports===n,l=i&&o.process,p=function(){try{var u=s&&s.require&&s.require("util").types;return u||l&&l.binding&&l.binding("util")}catch(c){}}();e.exports=p}(_e,_e.exports);var Ne=_e.exports,li=si,ci=Ve,Et=Ne,kt=Et&&Et.isTypedArray,pi=kt?ci(kt):li,ui=pi,di=ms,mi=Pt,yi=ne,fi=Dt,gi=It,vi=ui,Ci=Object.prototype,hi=Ci.hasOwnProperty;function bi(e,t){var o=yi(e),n=!o&&mi(e),s=!o&&!n&&fi(e),i=!o&&!n&&!s&&vi(e),l=o||n||s||i,p=l?di(e.length,String):[],u=p.length;for(var c in e)(t||hi.call(e,c))&&!(l&&(c=="length"||s&&(c=="offset"||c=="parent")||i&&(c=="buffer"||c=="byteLength"||c=="byteOffset")||gi(c,u)))&&p.push(c);return p}var Mt=bi,xi=Object.prototype;function Si(e){var t=e&&e.constructor,o=typeof t=="function"&&t.prototype||xi;return e===o}var Le=Si;function Ai(e,t){return function(o){return e(t(o))}}var jt=Ai,$i=jt,Ti=$i(Object.keys,Object),Fi=Ti,wi=Le,_i=Fi,Pi=Object.prototype,Di=Pi.hasOwnProperty;function Ii(e){if(!wi(e))return _i(e);var t=[];for(var o in Object(e))Di.call(e,o)&&o!="constructor"&&t.push(o);return t}var Oi=Ii,Ei=Ct,ki=Ot;function Mi(e){return e!=null&&ki(e.length)&&!Ei(e)}var Kt=Mi,ji=Mt,Ki=Oi,Bi=Kt;function Vi(e){return Bi(e)?ji(e):Ki(e)}var qe=Vi,Ni=ve,Li=qe;function qi(e,t){return e&&Ni(t,Li(t),e)}var Gi=qi;function Ui(e){var t=[];if(e!=null)for(var o in Object(e))t.push(o);return t}var zi=Ui,Hi=le,Wi=Le,Qi=zi,Zi=Object.prototype,Ji=Zi.hasOwnProperty;function Xi(e){if(!Hi(e))return Qi(e);var t=Wi(e),o=[];for(var n in e)n=="constructor"&&(t||!Ji.call(e,n))||o.push(n);return o}var Yi=Xi,Ri=Mt,el=Yi,tl=Kt;function ol(e){return tl(e)?Ri(e,!0):el(e)}var Ge=ol,nl=ve,rl=Ge;function al(e,t){return e&&nl(t,rl(t),e)}var sl=al,Pe={exports:{}};Pe.exports,function(e,t){var o=X,n=t&&!t.nodeType&&t,s=n&&!0&&e&&!e.nodeType&&e,i=s&&s.exports===n,l=i?o.Buffer:void 0,p=l?l.allocUnsafe:void 0;function u(c,g){if(g)return c.slice();var m=c.length,v=p?p(m):new c.constructor(m);return c.copy(v),v}e.exports=u}(Pe,Pe.exports);var il=Pe.exports;function ll(e,t){var o=-1,n=e.length;for(t||(t=Array(n));++o<n;)t[o]=e[o];return t}var cl=ll;function pl(e,t){for(var o=-1,n=e==null?0:e.length,s=0,i=[];++o<n;){var l=e[o];t(l,o,e)&&(i[s++]=l)}return i}var ul=pl;function dl(){return[]}var Bt=dl,ml=ul,yl=Bt,fl=Object.prototype,gl=fl.propertyIsEnumerable,Vt=Object.getOwnPropertySymbols,vl=Vt?function(e){return e==null?[]:(e=Object(e),ml(Vt(e),function(t){return gl.call(e,t)}))}:yl,Ue=vl,Cl=ve,hl=Ue;function bl(e,t){return Cl(e,hl(e),t)}var xl=bl;function Sl(e,t){for(var o=-1,n=t.length,s=e.length;++o<n;)e[s+o]=t[o];return e}var ze=Sl,Al=jt,$l=Al(Object.getPrototypeOf,Object),He=$l,Tl=ze,Fl=He,wl=Ue,_l=Bt,Pl=Object.getOwnPropertySymbols,Dl=Pl?function(e){for(var t=[];e;)Tl(t,wl(e)),e=Fl(e);return t}:_l,Nt=Dl,Il=ve,Ol=Nt;function El(e,t){return Il(e,Ol(e),t)}var kl=El,Ml=ze,jl=ne;function Kl(e,t,o){var n=t(e);return jl(e)?n:Ml(n,o(e))}var Lt=Kl,Bl=Lt,Vl=Ue,Nl=qe;function Ll(e){return Bl(e,Nl,Vl)}var ql=Ll,Gl=Lt,Ul=Nt,zl=Ge;function Hl(e){return Gl(e,zl,Ul)}var qt=Hl,Wl=te,Ql=X,Zl=Wl(Ql,"DataView"),Jl=Zl,Xl=te,Yl=X,Rl=Xl(Yl,"Promise"),ec=Rl,tc=te,oc=X,nc=tc(oc,"Set"),rc=nc,ac=te,sc=X,ic=ac(sc,"WeakMap"),lc=ic,We=Jl,Qe=Ke,Ze=ec,Je=rc,Xe=lc,Gt=ie,de=bt,Ut="[object Map]",cc="[object Object]",zt="[object Promise]",Ht="[object Set]",Wt="[object WeakMap]",Qt="[object DataView]",pc=de(We),uc=de(Qe),dc=de(Ze),mc=de(Je),yc=de(Xe),re=Gt;(We&&re(new We(new ArrayBuffer(1)))!=Qt||Qe&&re(new Qe)!=Ut||Ze&&re(Ze.resolve())!=zt||Je&&re(new Je)!=Ht||Xe&&re(new Xe)!=Wt)&&(re=function(e){var t=Gt(e),o=t==cc?e.constructor:void 0,n=o?de(o):"";if(n)switch(n){case pc:return Qt;case uc:return Ut;case dc:return zt;case mc:return Ht;case yc:return Wt}return t});var Ye=re,fc=Object.prototype,gc=fc.hasOwnProperty;function vc(e){var t=e.length,o=new e.constructor(t);return t&&typeof e[0]=="string"&&gc.call(e,"index")&&(o.index=e.index,o.input=e.input),o}var Cc=vc,hc=X,bc=hc.Uint8Array,xc=bc,Zt=xc;function Sc(e){var t=new e.constructor(e.byteLength);return new Zt(t).set(new Zt(e)),t}var Re=Sc,Ac=Re;function $c(e,t){var o=t?Ac(e.buffer):e.buffer;return new e.constructor(o,e.byteOffset,e.byteLength)}var Tc=$c,Fc=/\w*$/;function wc(e){var t=new e.constructor(e.source,Fc.exec(e));return t.lastIndex=e.lastIndex,t}var _c=wc,Jt=fe,Xt=Jt?Jt.prototype:void 0,Yt=Xt?Xt.valueOf:void 0;function Pc(e){return Yt?Object(Yt.call(e)):{}}var Dc=Pc,Ic=Re;function Oc(e,t){var o=t?Ic(e.buffer):e.buffer;return new e.constructor(o,e.byteOffset,e.length)}var Ec=Oc,kc=Re,Mc=Tc,jc=_c,Kc=Dc,Bc=Ec,Vc="[object Boolean]",Nc="[object Date]",Lc="[object Map]",qc="[object Number]",Gc="[object RegExp]",Uc="[object Set]",zc="[object String]",Hc="[object Symbol]",Wc="[object ArrayBuffer]",Qc="[object DataView]",Zc="[object Float32Array]",Jc="[object Float64Array]",Xc="[object Int8Array]",Yc="[object Int16Array]",Rc="[object Int32Array]",ep="[object Uint8Array]",tp="[object Uint8ClampedArray]",op="[object Uint16Array]",np="[object Uint32Array]";function rp(e,t,o){var n=e.constructor;switch(t){case Wc:return kc(e);case Vc:case Nc:return new n(+e);case Qc:return Mc(e,o);case Zc:case Jc:case Xc:case Yc:case Rc:case ep:case tp:case op:case np:return Bc(e,o);case Lc:return new n;case qc:case zc:return new n(e);case Gc:return jc(e);case Uc:return new n;case Hc:return Kc(e)}}var ap=rp,sp=le,Rt=Object.create,ip=function(){function e(){}return function(t){if(!sp(t))return{};if(Rt)return Rt(t);e.prototype=t;var o=new e;return e.prototype=void 0,o}}(),lp=ip,cp=lp,pp=He,up=Le;function dp(e){return typeof e.constructor=="function"&&!up(e)?cp(pp(e)):{}}var mp=dp,yp=Ye,fp=oe,gp="[object Map]";function vp(e){return fp(e)&&yp(e)==gp}var Cp=vp,hp=Cp,bp=Ve,eo=Ne,to=eo&&eo.isMap,xp=to?bp(to):hp,Sp=xp,Ap=Ye,$p=oe,Tp="[object Set]";function Fp(e){return $p(e)&&Ap(e)==Tp}var wp=Fp,_p=wp,Pp=Ve,oo=Ne,no=oo&&oo.isSet,Dp=no?Pp(no):_p,Ip=Dp,Op=Ya,Ep=es,kp=Be,Mp=Gi,jp=sl,Kp=il,Bp=cl,Vp=xl,Np=kl,Lp=ql,qp=qt,Gp=Ye,Up=Cc,zp=ap,Hp=mp,Wp=ne,Qp=Dt,Zp=Sp,Jp=le,Xp=Ip,Yp=qe,Rp=Ge,eu=1,tu=2,ou=4,ro="[object Arguments]",nu="[object Array]",ru="[object Boolean]",au="[object Date]",su="[object Error]",ao="[object Function]",iu="[object GeneratorFunction]",lu="[object Map]",cu="[object Number]",so="[object Object]",pu="[object RegExp]",uu="[object Set]",du="[object String]",mu="[object Symbol]",yu="[object WeakMap]",fu="[object ArrayBuffer]",gu="[object DataView]",vu="[object Float32Array]",Cu="[object Float64Array]",hu="[object Int8Array]",bu="[object Int16Array]",xu="[object Int32Array]",Su="[object Uint8Array]",Au="[object Uint8ClampedArray]",$u="[object Uint16Array]",Tu="[object Uint32Array]",L={};L[ro]=L[nu]=L[fu]=L[gu]=L[ru]=L[au]=L[vu]=L[Cu]=L[hu]=L[bu]=L[xu]=L[lu]=L[cu]=L[so]=L[pu]=L[uu]=L[du]=L[mu]=L[Su]=L[Au]=L[$u]=L[Tu]=!0,L[su]=L[ao]=L[yu]=!1;function De(e,t,o,n,s,i){var l,p=t&eu,u=t&tu,c=t&ou;if(o&&(l=s?o(e,n,s,i):o(e)),l!==void 0)return l;if(!Jp(e))return e;var g=Wp(e);if(g){if(l=Up(e),!p)return Bp(e,l)}else{var m=Gp(e),v=m==ao||m==iu;if(Qp(e))return Kp(e,p);if(m==so||m==ro||v&&!s){if(l=u||v?{}:Hp(e),!p)return u?Np(e,jp(l,e)):Vp(e,Mp(l,e))}else{if(!L[m])return s?e:{};l=zp(e,m,p)}}i||(i=new Op);var x=i.get(e);if(x)return x;i.set(e,l),Xp(e)?e.forEach(function(h){l.add(De(h,t,o,h,e,i))}):Zp(e)&&e.forEach(function(h,b){l.set(b,De(h,t,o,b,e,i))});var P=c?u?qp:Lp:u?Rp:Yp,w=g?void 0:P(e);return Ep(w||e,function(h,b){w&&(b=h,h=e[b]),kp(l,b,De(h,t,o,b,e,i))}),l}var io=De,Fu=io,wu=1,_u=4;function Pu(e){return Fu(e,wu|_u)}var Du=Pu;const Ce=Me(Du);function Iu(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 lo=Iu,Ou=ie,Eu=oe,ku="[object Symbol]";function Mu(e){return typeof e=="symbol"||Eu(e)&&Ou(e)==ku}var et=Mu,ju=ne,Ku=et,Bu=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Vu=/^\w*$/;function Nu(e,t){if(ju(e))return!1;var o=typeof e;return o=="number"||o=="symbol"||o=="boolean"||e==null||Ku(e)?!0:Vu.test(e)||!Bu.test(e)||t!=null&&e in Object(t)}var Lu=Nu,co=At,qu="Expected a function";function tt(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(qu);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 l=e.apply(this,n);return o.cache=i.set(s,l)||i,l};return o.cache=new(tt.Cache||co),o}tt.Cache=co;var Gu=tt,Uu=Gu,zu=500;function Hu(e){var t=Uu(e,function(n){return o.size===zu&&o.clear(),n}),o=t.cache;return t}var Wu=Hu,Qu=Wu,Zu=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Ju=/\\(\\)?/g,Xu=Qu(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(Zu,function(o,n,s,i){t.push(s?i.replace(Ju,"$1"):n||o)}),t}),Yu=Xu,po=fe,Ru=lo,ed=ne,td=et,od=1/0,uo=po?po.prototype:void 0,mo=uo?uo.toString:void 0;function yo(e){if(typeof e=="string")return e;if(ed(e))return Ru(e,yo)+"";if(td(e))return mo?mo.call(e):"";var t=e+"";return t=="0"&&1/e==-od?"-0":t}var nd=yo,rd=nd;function ad(e){return e==null?"":rd(e)}var sd=ad,id=ne,ld=Lu,cd=Yu,pd=sd;function ud(e,t){return id(e)?e:ld(e,t)?[e]:cd(pd(e))}var Ie=ud;function dd(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}var md=dd,yd=et,fd=1/0;function gd(e){if(typeof e=="string"||yd(e))return e;var t=e+"";return t=="0"&&1/e==-fd?"-0":t}var ot=gd,vd=Ie,Cd=ot;function hd(e,t){t=vd(t,e);for(var o=0,n=t.length;e!=null&&o<n;)e=e[Cd(t[o++])];return o&&o==n?e:void 0}var bd=hd;function xd(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 Sd=xd,Ad=bd,$d=Sd;function Td(e,t){return t.length<2?e:Ad(e,$d(t,0,-1))}var Fd=Td,wd=Ie,_d=md,Pd=Fd,Dd=ot;function Id(e,t){return t=wd(t,e),e=Pd(e,t),e==null||delete e[Dd(_d(t))]}var Od=Id,Ed=ie,kd=He,Md=oe,jd="[object Object]",Kd=Function.prototype,Bd=Object.prototype,fo=Kd.toString,Vd=Bd.hasOwnProperty,Nd=fo.call(Object);function Ld(e){if(!Md(e)||Ed(e)!=jd)return!1;var t=kd(e);if(t===null)return!0;var o=Vd.call(t,"constructor")&&t.constructor;return typeof o=="function"&&o instanceof o&&fo.call(o)==Nd}var qd=Ld,Gd=qd;function Ud(e){return Gd(e)?void 0:e}var zd=Ud,go=fe,Hd=Pt,Wd=ne,vo=go?go.isConcatSpreadable:void 0;function Qd(e){return Wd(e)||Hd(e)||!!(vo&&e&&e[vo])}var Zd=Qd,Jd=ze,Xd=Zd;function Co(e,t,o,n,s){var i=-1,l=e.length;for(o||(o=Xd),s||(s=[]);++i<l;){var p=e[i];t>0&&o(p)?t>1?Co(p,t-1,o,n,s):Jd(s,p):n||(s[s.length]=p)}return s}var Yd=Co,Rd=Yd;function em(e){var t=e==null?0:e.length;return t?Rd(e,1):[]}var tm=em;function om(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 nm=om,rm=nm,ho=Math.max;function am(e,t,o){return t=ho(t===void 0?e.length-1:t,0),function(){for(var n=arguments,s=-1,i=ho(n.length-t,0),l=Array(i);++s<i;)l[s]=n[t+s];s=-1;for(var p=Array(t+1);++s<t;)p[s]=n[s];return p[t]=o(l),rm(e,this,p)}}var sm=am;function im(e){return function(){return e}}var lm=im;function cm(e){return e}var pm=cm,um=lm,bo=$t,dm=pm,mm=bo?function(e,t){return bo(e,"toString",{configurable:!0,enumerable:!1,value:um(t),writable:!0})}:dm,ym=mm,fm=800,gm=16,vm=Date.now;function Cm(e){var t=0,o=0;return function(){var n=vm(),s=gm-(n-o);if(o=n,s>0){if(++t>=fm)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var hm=Cm,bm=ym,xm=hm,Sm=xm(bm),Am=Sm,$m=tm,Tm=sm,Fm=Am;function wm(e){return Fm(Tm(e,void 0,$m),e+"")}var _m=wm,Pm=lo,Dm=io,Im=Od,Om=Ie,Em=ve,km=zd,Mm=_m,jm=qt,Km=1,Bm=2,Vm=4,Nm=Mm(function(e,t){var o={};if(e==null)return o;var n=!1;t=Pm(t,function(i){return i=Om(i,e),n||(n=i.length>1),i}),Em(e,jm(e),o),n&&(o=Dm(o,Km|Bm|Vm,km));for(var s=t.length;s--;)Im(o,t[s]);return o}),Lm=Nm;const qm=Me(Lm);var Gm=Be,Um=Ie,zm=It,xo=le,Hm=ot;function Wm(e,t,o,n){if(!xo(e))return e;t=Um(t,e);for(var s=-1,i=t.length,l=i-1,p=e;p!=null&&++s<i;){var u=Hm(t[s]),c=o;if(u==="__proto__"||u==="constructor"||u==="prototype")return e;if(s!=l){var g=p[u];c=n?n(g,u,p):void 0,c===void 0&&(c=xo(g)?g:zm(t[s+1])?[]:{})}Gm(p,u,c),p=p[u]}return e}var Qm=Wm,Zm=Qm;function Jm(e,t,o){return e==null?e:Zm(e,t,o)}var Xm=Jm;const So=Me(Xm),Ym=({schema:e,record:t,parentRecord:o,compile:n,getContainer:s})=>{if(!e)return;const i=Ce(e.properties);return i!=null&&i.name&&(i.name["x-disabled"]=!0),e.hasDefaultValue===!0&&(i.defaultValue=Ce(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:{[C.uid()]:{type:"void","x-component":"Action.Drawer","x-component-props":{getContainer:"{{ getContainer }}"},"x-decorator":"Form","x-decorator-props":{useValues(l){return r.useRequest(()=>Promise.resolve({data:Ce(qm(e.default,["uiSchema.rawTitle"]))}),l)}},title:`${n((o==null?void 0:o.title)||(o==null?void 0:o.name))} - ${n('{{ t("Edit field") }}')}`,properties:K(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 }}"}}}}})}}}},Rm=()=>{const e=C.useForm(),t=r.useAPIClient(),o=r.useActionContext(),{refresh:n}=r.useResourceActionContext(),{targetCollection:s}=rt(),{name:i}=W.useParams(),{name:l}=r.useRecord(),p=r.useDataSourceManager();return{run(){return I(this,null,function*(){yield e.submit();const c=Ce(e.values);c.autoCreateReverseField||delete c.reverseField,delete c.autoCreateReverseField,yield t.request({url:`dataSourcesCollections/${i}.${s.name}/fields:update?filterByTk=${l}`,method:"post",data:c}),o.setVisible(!1),p.getDataSource(i).reload(),yield e.reset(),n()})}}},ey=e=>{const t=r.useRecord(),o=r.useCollectionParentRecordData();return a.jsx(ty,F({item:t,parentItem:o},e))},ty=e=>{const E=e,{scope:t,getContainer:o,item:n,parentItem:s,children:i}=E,l=Ee(E,["scope","getContainer","item","parentItem","children"]),{getInterface:p,collections:u,getCollection:c}=r.useCollectionManager_deprecated(),{data:{database:g}}=r.useCurrentAppInfo(),[m,v]=f.useState(!1),[x,P]=f.useState({}),w=r.useAPIClient(),{t:h}=j.useTranslation(),b=r.useCompile(),{name:y}=W.useParams(),d=$=>(g==null?void 0:g.dialect)===$,A=f.useMemo(()=>u.map($=>({label:b($.title),value:$.name})),[]),D=f.useMemo(()=>{var $,B;return(n==null?void 0:n.fields)||((B=($=c(n.collectionName,y))==null?void 0:$.options)==null?void 0:B.fields.filter(_=>_.interface==="select").map(_=>{var T;return{value:_.name,label:b((T=_.uiSchema)==null?void 0:T.title)}}))},[n.name]);return a.jsx(r.RecordProvider,{record:n,parent:s,children:a.jsxs(r.ActionContextProvider,{value:{visible:m,setVisible:v},children:[a.jsx("a",K(F({},l),{onClick:()=>I(this,null,function*(){var M,V,H;const{data:$}=yield w.request({url:`dataSourcesCollections/${y}.${s.name}/fields:get?filterByTk=${n.name}`,params:{appends:["reverseField"]}}),B=p((M=$==null?void 0:$.data)==null?void 0:M.interface),_=Ce($==null?void 0:$.data)||{};_!=null&&_.reverseField||(_.autoCreateReverseField=!1,_.reverseField=(V=B==null?void 0:B.default)==null?void 0:V.reverseField,So(_.reverseField,"name",`f_${C.uid()}`),So(_.reverseField,"uiSchema.title",(H=n.__parent)==null?void 0:H.title));const T=Ym({schema:K(F({},B),{default:_}),record:n,parentRecord:s,compile:b,getContainer:o});P(T),v(!0)}),children:i||h("Edit")})),a.jsx(r.SchemaComponent,{schema:x,components:{ArrayTable:ae.ArrayTable},scope:K(F({getContainer:o,useUpdateCollectionField:Rm,useCancelAction:r.useCancelAction,showReverseFieldConfig:!1,collections:A,isDialect:d,scopeKeyOptions:D,disabledJSONB:!0},t),{createOnly:!1,createMainOnly:!1})})]})})},oy=()=>{const{refresh:e}=r.useResourceActionContext(),{name:t}=W.useParams(),{name:o,collectionName:n}=r.useRecord(),s=r.useAPIClient();return{run(){return I(this,null,function*(){yield s.request({url:`dataSourcesCollections/${t}.${n}/fields:destroy?filterByTk=${o}`,method:"post"}),e()})}}},ny=()=>{const{state:e,setState:t,refresh:o}=r.useResourceActionContext(),{t:n}=j.useTranslation(),{name:s}=W.useParams(),i=r.useAPIClient(),{name:l}=r.useRecord();return{run(){return I(this,null,function*(){var u;if(!((u=e==null?void 0:e.selectedRowKeys)!=null&&u.length))return S.message.error(n("Please select the records you want to delete"));yield i.request({url:`dataSourcesCollections/${s}.${l}/fields:destroy`,method:"post",params:{filterByTk:(e==null?void 0:e.selectedRowKeys)||[]}}),t==null||t({selectedRowKeys:[]}),o()})}}},ry=()=>{const{run:e}=ny();return{run(){return I(this,null,function*(){yield e()})}}},ay=()=>{const{run:e}=oy();return{run(){return I(this,null,function*(){yield e()})}}},sy={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: "${U}" })}}`,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"}}]},iy={type:"object",properties:{[C.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"}}}},[C.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: "${U}" })}}`,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]) }}"}}}]}}}}}}}}},nt=f.createContext({refreshRM:()=>{},titleField:null,targetCollection:null});nt.displayName="RemoteCollectionContext";const rt=()=>f.useContext(nt),Ao=()=>{const e=C.useField(),t=f.useMemo(()=>C.createForm(),[]),o=r.useAttach(t.createArrayField(K(F({},e.props),{basePath:""}))),{t:n}=j.useTranslation(),{name:s}=W.useParams(),i=r.useAPIClient(),l=r.useCompile(),p=f.useContext(r.ResourceActionContext),u=r.useResourceContext(),{targetKey:c}=u||{},g=r.useRecord(),{[c]:m,titleField:v,name:x}=g,[P,w]=f.useState(v),h=E=>{const $=f.useContext(r.ResourceActionContext),B=C.useField();return f.useEffect(()=>{$.loading||(E==null||E.onSuccess($.data),B.componentProps.dragSort=!!$.dragSort)},[$.loading]),$},b={association:{sourceKey:"name",targetKey:"name"},dragSort:!1,collection:sy,request:{url:`dataSourcesCollections/${s}.${x}/fields:list`,params:{paginate:!1,filter:{$or:[{"interface.$not":null},{"options.source.$notEmpty":!0}]},sort:["sort"]}}},y=r.useDataSourceManager(),d=(E,$)=>I(this,null,function*(){yield i.request({url:`dataSourcesCollections/${s}.${x}/fields:update?filterByTk=${$}`,method:"post",data:E}),y.getDataSource(s).reload(),S.message.success(n("Saved successfully"))}),A=()=>({filterByTk:m,titleField:P,dataSourceKey:s,setTitleField:w}),D=(E,$,B)=>I(this,null,function*(){var H,G;const{targetScope:_}=$,T=((H=E.props)==null?void 0:H.name)==="inherits",{data:M}=yield i.request({url:`dataSources/${s}/collections:list`,params:{paginate:!1,appends:["fields"],sort:["sort"]}});return((G=M==null?void 0:M.data)==null?void 0:G.filter(O=>{var ee;if(B!=null&&B.includes(O.template)||O.autoCreate&&O.isThrough||T&&O.template==="view")return!1;const N=!(_!=null&&_.template)||_.template.includes(O.template),Y=!(_!=null&&_[(ee=E.props)==null?void 0:ee.name])||_[E.props.name].includes(O.name);return N&&Y})).map(O=>({label:l(O.title||O.name),value:O.name}))});return a.jsxs(nt.Provider,{value:{refreshRM:()=>{p.refresh()},titleField:P,targetCollection:g},children:[a.jsx(r.ResourceActionProvider,K(F({},b),{children:a.jsx(C.FormContext.Provider,{value:t,children:a.jsx(C.FieldContext.Provider,{value:o,children:a.jsx(r.SchemaComponentOptions,{components:{TitleField:rn,CollectionFieldInterfaceSelect:tn,AddCollectionField:Ro,SourceCollection:Zo,TargetKey:Qo,SourceKey:Wo,FieldTitleInput:on,EditCollectionField:ey,Select:r.Select,FieldType:nn,ForeignKey:pt,ThroughCollection:Jo},inherit:!0,scope:{useDataSource:h,useTitleFieldProps:A,handleFieldChange:d,useDestroyActionAndRefreshCM:ay,useBulkDestroyActionAndRefreshCM:ry,loadCollections:D},children:a.jsx(C.RecursionField,{schema:iy,onlyRenderProperties:!0})})})})})),a.jsx(an,{})]})},$o=e=>C.Schema.compile(e,{t:r.i18n.t}),ly={name:"database-"+C.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"}}]},cy=e=>({type:"object",properties:{[C.uid()]:{type:"void","x-collection":"dataSources","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:ly,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"}}}}}),at={type:"object",properties:{[C.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":"{{allowCollectionCreate}}"}}},[C.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}=j.useTranslation();return{move(n,s){return I(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=`${$o(n.title||n.name)} - ${$o('{{ 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":"{{ allowCollectionDeletion }}","x-component":"DeleteCollection","x-component-props":{role:"button","aria-label":'{{ "delete-button-" + $record.name }}',type:"primary",className:"tb-action-link"}}}}}}}}}},py=(e,t)=>(o,n)=>{o.loading=!0,e(o,n,t).then(C.action.bound(s=>{o.dataSource=s,o.loading=!1})).catch(s=>console.log(s))},uy=()=>{const[e,t]=f.useState([]);return[e,t]},dy=()=>{const e=r.useRecord(),t=C.useForm();return{run(){return I(this,null,function*(){var s,i,l;const n=(l=(i=(s=t.values)==null?void 0:s.children)==null?void 0:i.slice)==null?void 0:l.call(i);t.setValuesIn("children",n.filter(p=>p.name!==e.name))})}}},my=()=>({run(){return I(this,null,function*(){})}}),yy=e=>`${e||""}${C.uid()}`,fy=()=>{const{t:e}=j.useTranslation(),{interfaces:t}=r.useCollectionManager_deprecated(),{data:{database:o}}=r.useCurrentAppInfo(),n=r.useDataSourceManager(),s=f.useContext(r.SchemaComponentContext),{name:i}=W.useParams(),l=f.useContext(r.CollectionCategroriesContext),p=r.useAPIClient(),u=p.resource("dbViews"),c=r.useCompile(),g=()=>I(this,null,function*(){return l.data.map(h=>({label:c(h.name),value:h.id}))}),m=()=>I(this,null,function*(){return u.list().then(({data:h})=>{var b;return(b=h==null?void 0:h.data)==null?void 0:b.map(y=>{const d=y.schema;return{label:d?`${d}.${c(y.name)}`:y.name,value:d?`${d}_${y.name}`:y.name}})})}),v=()=>I(this,null,function*(){return p.resource("storages").list().then(({data:h})=>{var b;return(b=h==null?void 0:h.data)==null?void 0:b.map(y=>({label:e(c(y.title)),value:y.name}))})}),x=()=>{const h=f.useContext(r.ResourceActionContext),b=r.useAPIClient(),y=C.useField(),{name:d}=W.useParams();y.data=y.data||{};const{setDataSource:A,dataSource:D}=f.useContext(xe);return{onClick(){return I(this,null,function*(){var $,B,_;y.data.loading=!0;try{const{data:T}=yield b.request({url:`dataSources:refresh?filterByTk=${d}&clientStatus=${(D==null?void 0:D.status)||"loaded"}`,method:"post"});y.data.loading=!1,A(T==null?void 0:T.data),(($=T==null?void 0:T.data)==null?void 0:$.status)==="reloading"?S.message.warning(e("Data source synchronization in progress")):((B=T==null?void 0:T.data)==null?void 0:B.status)==="loaded"&&(S.message.success(e("Data source synchronization successful")),(_=h==null?void 0:h.refresh)==null||_.call(h)),yield n.getDataSource(d).reload()}catch(T){y.data.loading=!1}})}}},P=h=>I(this,null,function*(){const{fields:b}=h.form.values;return Promise.resolve({data:b}).then(({data:y})=>y==null?void 0:y.map(d=>{var A;return{label:c((A=d.uiSchema)==null?void 0:A.title)||d.name,value:d.name}}))}),w=f.useMemo(()=>cy(i),[i]);return a.jsx(r.SchemaComponentContext.Provider,{value:K(F({},s),{designable:!1}),children:a.jsx(r.SchemaComponent,{schema:w,components:{AddSubFieldAction:r.AddSubFieldAction,EditSubFieldAction:r.EditSubFieldAction,FieldSummary:r.FieldSummary,TemplateSummay:r.TemplateSummary,CollectionFields:Ao},scope:{useRefreshActionProps:x,useDestroySubField:dy,useBulkDestroySubField:my,useSelectedRowKeys:uy,useAsyncDataSource:py,loadFilterTargetKeys:P,loadCategories:g,loadDBViews:m,loadStorages:v,useNewId:yy,useCancelAction:r.useCancelAction,interfaces:t,enableInherits:(o==null?void 0:o.dialect)==="postgres",isPG:(o==null?void 0:o.dialect)==="postgres"}})})},gy=e=>{const t=ae.usePrefixCls("description-input",e),{data:{name:o,tableName:n}}=r.useCollectionRecord();return a.jsx("div",{className:r.cx(t,e.className),style:e.style,children:n&&o!==n?a.jsxs(a.Fragment,{children:[o," ",a.jsxs("span",{style:{color:"GrayText"},children:["(",n,")"]})]}):e.value})},vy=Object.assign(C.connect(S.Input,C.mapProps((e,t)=>K(F({},e),{suffix:a.jsx("span",{children:t!=null&&t.loading||t!=null&&t.validating?a.jsx(J.LoadingOutlined,{}):e.suffix})})),C.mapReadPretty(gy))),Cy=({item:e})=>{const{t}=j.useTranslation(),o=r.useCompile();return a.jsxs(S.Space,{children:[a.jsx(S.Badge,{color:e.color}),t(o(e.name))]})},hy=C.observer(e=>{const[t,o]=f.useState(null),{refresh:n}=f.useContext(r.CollectionCategroriesContext),{refresh:s}=r.useResourceActionContext(),i=r.useAPIClient(),l=g=>I(this,null,function*(){const{active:m,over:v}=g;setTimeout(()=>{o(null)}),v&&v.id!==m.id&&(yield i.resource("collectionCategories").move({sourceId:m.id,targetId:v.id}),yield n(),yield s())});function p(g){var m;o((m=g.active)==null?void 0:m.data.current)}const u=Z.useSensor(Z.MouseSensor,{activationConstraint:{distance:10}}),c=Z.useSensors(u);return a.jsxs(Z.DndContext,{sensors:c,onDragEnd:l,onDragStart:p,children:[e.children,a.jsx(Z.DragOverlay,{children:t?a.jsx("span",{style:{whiteSpace:"nowrap"},children:a.jsx(Cy,{item:t})}):null})]})},{displayName:"DndProvider"}),by=()=>{const{t:e}=j.useTranslation(),{data:t}=f.useContext(r.CollectionCategroriesContext),o=r.useCompile();if(!t)return null;const n=t.sort((i,l)=>l.sort-i.sort).concat().map(i=>K(F({},i),{schema:at}));!n.find(i=>i.id==="all")&&n.unshift({name:'{{t("All collections")}}',id:"all",sort:0,closable:!1,schema:at});const s=()=>I(this,null,function*(){return t.map(i=>({label:e(o(i.name)),value:i.id}))});return a.jsx(hy,{children:a.jsx(S.Card,{bordered:!1,children:a.jsx(r.SchemaComponentOptions,{components:{CollectionFields:Ao,CollectionName:vy},inherit:!0,scope:{loadCategories:s},children:a.jsx(C.RecursionField,{schema:at,onlyRenderProperties:!0})})})})},xy={type:"object",properties:{[C.uid()]:{"x-component":"ConfigurationTable"}}},Sy=()=>{const e=r.usePlugin(ye),t=W.useLocation(),o=new URLSearchParams(t.search).get("type"),n=o&&e.types.get(o);return a.jsx(r.SchemaComponent,{schema:xy,components:{CollectionCategroriesProvider:r.CollectionCategroriesProvider,ConfigurationTable:fy,ConfigurationTabs:by,AddFieldAction:r.AddFieldAction,AddCollectionField:r.AddCollectionField,AddCollection:(n==null?void 0:n.AddCollection)||r.AddCollection,AddCollectionAction:r.AddCollectionAction,EditCollection:(n==null?void 0:n.EditCollection)||r.EditCollection,EditCollectionAction:r.EditCollectionAction,DeleteCollection:(n==null?void 0:n.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},scope:{allowCollectionDeletion:!!(n!=null&&n.allowCollectionDeletion),disabledConfigureFields:n==null?void 0:n.disabledConfigureFields,disableAddFields:n==null?void 0:n.disableAddFields,allowCollectionCreate:!!(n!=null&&n.allowCollectionCreate)}})};class To extends r.DataSource{getDataSource(){return I(this,null,function*(){return(yield this.app.apiClient.request({url:`dataSources:get/${this.key}`,params:{appends:["collections"]}})).data.data})}}const Ay=()=>{const[e,t]=f.useState({}),o=r.usePlugin(ye),n=r.useCompile(),[s,i]=f.useState(!1),{t:l}=j.useTranslation(),[p,u]=f.useState(null);r.useAPIClient();const c=g=>{const m=[...o.types.keys()].map(v=>{const x=o.types.get(v);return{value:x.name,label:n(x.label)}});g.dataSource=m};return a.jsx("div",{children:a.jsxs(r.ActionContext.Provider,{value:{visible:s,setVisible:i},children:[a.jsx(S.Dropdown,{menu:{onClick(g){if(g.key==="__empty__")return;const m=C.createForm({values:{type:g.key}}),v=o.types.get(g.key);u(g.key),i(!0),t({type:"object",properties:{[C.uid()]:{type:"void","x-component":"Action.Drawer","x-decorator":"FormV2","x-decorator-props":{form:m},title:n("{{t('Add new')}}")+" - "+n(v.label),properties:{body:{type:"void","x-component":v.DataSourceSettingsForm},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{testConnection:{title:`{{ t("Test Connection",{ ns: "${U}" }) }}`,"x-component":"Action","x-use-component-props":"useTestConnectionAction"},cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-use-component-props":"useCancelActionProps"},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-use-component-props":"useCreateDatabaseConnectionAction","x-component-props":{type:"primary"}}}}}}}})},items:[o.types.size?null:{key:"__empty__",label:a.jsx(S.Empty,{image:S.Empty.PRESENTED_IMAGE_SIMPLE,description:a.jsx(a.Fragment,{children:l("No external data source plugin installed",{ns:U})})})}].filter(Boolean).concat([...o.types.keys()].map(g=>{const m=o.types.get(g);return{key:g,label:n(m==null?void 0:m.label)}}))},children:a.jsxs(S.Button,{type:"primary",icon:a.jsx(J.PlusOutlined,{}),children:[l("Add new")," ",a.jsx(J.DownOutlined,{})]})}),a.jsx(r.SchemaComponent,{scope:{createOnly:!1,useTestConnectionAction:ke,dialect:p,useDialectDataSource:c,useCreateDatabaseConnectionAction:lt,useCancelActionProps:r.useCancelActionProps},schema:e})]})})},$y=()=>{const e=r.useCollectionRecordData(),[t,o]=f.useState({}),n=r.usePlugin(ye),s=r.useCompile(),[i,l]=f.useState(!1),{t:p}=r.useTranslation(),u=r.useDataSourceManager(),c=()=>{const g=C.useField(),m=C.useForm(),v=r.useActionContext(),{refresh:x}=r.useDataBlockRequest(),P=r.useDataBlockResource(),{key:w}=r.useCollectionRecordData();return{run(){return I(this,null,function*(){yield m.submit(),g.data=g.data||{},g.data.loading=!0;try{yield P.update({filterByTk:w,values:m.values}),v.setVisible(!1),u.getDataSource(w).setOptions(m.values),u.getDataSource(w).reload(),yield m.reset(),x()}catch(b){console.log(b)}finally{g.data.loading=!1}})}}};return a.jsx("div",{children:a.jsxs(r.ActionContext.Provider,{value:{visible:i,setVisible:l},children:[e.key!=="main"&&a.jsx("a",{onClick:()=>{l(!0);const g=C.createForm({initialValues:e}),m=n.types.get(e.type);o({type:"object",properties:{[C.uid()]:{type:"void","x-component":"Action.Drawer","x-decorator":"FormV2","x-decorator-props":{form:g},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-use-component-props":"useCancelActionProps"},testConnection:{title:`{{ t("Test Connection",{ ns: "${U}" }) }}`,"x-component":"Action","x-use-component-props":"useTestConnectionAction"},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ useUpdateAction }}"}}}}}}}})},children:p("Edit")}),a.jsx(r.SchemaComponent,{scope:{createOnly:!0,useUpdateAction:c,useTestConnectionAction:ke,useCancelActionProps:r.useCancelActionProps},schema:t})]})})},Ty=({key:e,type:t})=>`/_admin/data-modeling/data-source/${e}?type=${t}`,Fy=()=>{const e=r.useRecord(),t=W.useNavigate(),{t:o}=j.useTranslation();return a.jsx("div",{className:e.enabled?void 0:r.css`
1
+ (function(M,a){typeof exports=="object"&&typeof module!="undefined"?a(exports,require("react/jsx-runtime"),require("@tachybase/client"),require("react"),require("@ant-design/icons"),require("antd"),require("react-router-dom"),require("@tachybase/schema"),require("react-i18next"),require("lodash"),require("@dnd-kit/core"),require("@tachybase/components")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","@tachybase/client","react","@ant-design/icons","antd","react-router-dom","@tachybase/schema","react-i18next","lodash","@dnd-kit/core","@tachybase/components"],a):(M=typeof globalThis!="undefined"?globalThis:M||self,a(M["@tachybase/module-data-source"]={},M.jsxRuntime,M["@tachybase/client"],M.react,M["@ant-design/icons"],M.antd,M["react-router-dom"],M["@tachybase/schema"],M["react-i18next"],M.lodash,M["@dnd-kit/core"],M["@tachybase/components"]))})(this,function(M,a,n,f,J,S,W,C,j,Q,Z,ae){"use strict";var Vf=Object.defineProperty,Nf=Object.defineProperties;var Lf=Object.getOwnPropertyDescriptors;var Oe=Object.getOwnPropertySymbols;var Bo=Object.prototype.hasOwnProperty,Vo=Object.prototype.propertyIsEnumerable;var Ko=(M,a,n)=>a in M?Vf(M,a,{enumerable:!0,configurable:!0,writable:!0,value:n}):M[a]=n,F=(M,a)=>{for(var n in a||(a={}))Bo.call(a,n)&&Ko(M,n,a[n]);if(Oe)for(var n of Oe(a))Vo.call(a,n)&&Ko(M,n,a[n]);return M},K=(M,a)=>Nf(M,Lf(a));var Ee=(M,a)=>{var n={};for(var f in M)Bo.call(M,f)&&a.indexOf(f)<0&&(n[f]=M[f]);if(M!=null&&Oe)for(var f of Oe(M))a.indexOf(f)<0&&Vo.call(M,f)&&(n[f]=M[f]);return n};var I=(M,a,n)=>new Promise((f,J)=>{var S=j=>{try{C(n.next(j))}catch(Q){J(Q)}},W=j=>{try{C(n.throw(j))}catch(Q){J(Q)}},C=j=>j.done?f(j.value):Promise.resolve(j.value).then(S,W);C((n=n.apply(M,a)).next())});const U="data-source",No=e=>n.useTranslation([U,"core"],e),ke=()=>{const e=C.useForm(),t=n.useAPIClient(),{t:o}=j.useTranslation(),r=C.useField();return r.data=r.data||{},{onClick(){return I(this,null,function*(){yield e.submit();try{r.data.loading=!0,yield t.resource("dataSources").testConnection({values:e.values}),r.data.loading=!1,S.message.success(o("Connection successful",{ns:U}))}catch(i){r.data.loading=!1}})}}},it=()=>{const e=C.useForm(),t=C.useField(),o=n.useActionContext(),r=n.useDataBlockRequest(),s=n.useDataBlockResource();return{onClick(){return I(this,null,function*(){try{yield e.submit(),t.data=t.data||{},t.data.loading=!0,yield s.create({values:e.values}),o.setVisible(!1),yield e.reset(),t.data.loading=!1,r.refresh()}catch(l){t.data&&(t.data.loading=!1)}})}}},Lo=Object.freeze(Object.defineProperty({__proto__:null,useCreateDatabaseConnectionAction:it,useTestConnectionAction:ke},Symbol.toStringTag,{value:"Module"})),xe=f.createContext(null);xe.displayName="DataSourceContext";const qo=e=>{const[t,o]=f.useState(null);return a.jsx(xe.Provider,{value:{dataSource:t,setDataSource:o},children:a.jsx(n.SchemaComponentOptions,{scope:Lo,components:{},children:e.children})})},lt=[{value:"loading",label:`{{t("Loading",{ns:"${U}"})}}`,color:"orange"},{value:"loading-failed",label:`{{t("Failed",{ns:"${U}"})}}`,color:"red"},{value:"loaded",label:`{{t("Loaded",{ns:"${U}"})}}`,color:"green"},{value:"reloading",label:`{{t("Reloading",{ns:"${U}"})}}`,color:"orange"}],Go={name:"dataSources",fields:[{type:"string",name:"key",interface:"input",uiSchema:{title:`{{t("Data source name",{ ns: "${U}" })}}`,type:"string","x-component":"Input",required:!0}},{type:"string",name:"displayName",interface:"input",uiSchema:{title:`{{t("Data source display name",{ ns: "${U}" })}}`,type:"string","x-component":"Input",required:!0}},{type:"string",name:"type",interface:"select",uiSchema:{title:`{{t("Type", { ns: "${U}" })}}`,type:"string","x-component":"Select",enum:"{{types}}"}},{type:"string",name:"status",interface:"select",uiSchema:{title:`{{t("Status", { ns: "${U}" })}}`,type:"string","x-component":"Select",enum:lt}},{type:"boolean",name:"enabled",uiSchema:{type:"boolean",title:'{{t("Enabled")}}',"x-component":"Checkbox"}}]},Uo={type:"void",properties:{[C.uid()]:{type:"void","x-component":"CardItem","x-decorator":"TableBlockProvider","x-decorator-props":{collection:Go,action:"list",params:{pageSize:50,appends:[],filter:{type:{$ne:"main"}}}},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-action":"destroy","x-decorator":"ACLActionProvider","x-use-component-props":"useBulkDestroyActionProps","x-component-props":{icon:"DeleteOutlined",confirm:{title:"{{t('Delete')}}",content:"{{t('Are you sure you want to delete it?')}}"}}},create:{type:"void",title:'{{t("Add new")}}',"x-component":"CreateDatabaseConnectAction","x-component-props":{type:"primary"}}}},table:{type:"array","x-component":"TableV2","x-use-component-props":"useTableBlockProps","x-component-props":{rowKey:"key",rowSelection:{type:"checkbox"}},properties:{key:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column",properties:{key:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},displayName:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column",properties:{displayName:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},type:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column",properties:{type:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},status:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column",properties:{status:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},enabled:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column",properties:{enabled:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},actions:{type:"void",title:'{{t("Actions")}}',"x-component":"TableV2.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)}}"]}}}}}}}}}}},zo=()=>{n.useApp();const{name:e}=W.useParams(),t=n.useCompile(),o=n.useDataSourceManager(),{displayName:r}=o.getDataSource(e)||{},{dataSource:s}=f.useContext(xe),i=f.useMemo(()=>s||o.getDataSource(e),[s,e]),l=f.useMemo(()=>{const p=i==null?void 0:i.status,u=lt.find(g=>g.value===p),c=[];return i&&c.push({title:a.jsxs(S.Space,{children:[a.jsx("span",{children:t(r)}),p&&a.jsx(S.Tag,{color:u==null?void 0:u.color,children:t(u==null?void 0:u.label)},p)]})}),c},[i]);return a.jsx(S.Breadcrumb,{separator:a.jsx(J.RightOutlined,{}),items:l})},Se=["string","bigInt","integer","uuid","uid"],Ho=C.observer(e=>{var c,g;const{name:t}=W.useParams(),{collectionName:o,sourceKey:r,name:s}=n.useRecord(),i=C.useField(),l=n.useCompile(),{getCollection:p}=n.useCollectionManager_deprecated(),u=(c=p(o||s,t).fields)==null?void 0:c.filter(m=>m.primaryKey||m.unique).map(m=>{var v;return{value:m.name,label:l(((v=m.uiSchema)==null?void 0:v.title)||m.title||m.name)}});return f.useEffect(()=>{var m;i.initialValue=((m=u==null?void 0:u[0])==null?void 0:m.value)||r},[]),a.jsx("div",{children:a.jsx(S.Select,{disabled:r,options:u,defaultValue:((g=u==null?void 0:u[0])==null?void 0:g.value)||r,onChange:e==null?void 0:e.onChange,showSearch:!0})})},{displayName:"SourceKey"}),ct=C.observer(e=>{const{disabled:t}=e,o=n.useAPIClient(),[r,s]=f.useState([]),{name:i}=W.useParams(),l=n.useRecord(),p=C.useField(),{collectionName:u,target:c,type:g,through:m,name:v}=l,x=l[p.props.name],{getCollection:P}=n.useCollectionManager_deprecated(),w=n.useCompile(),h=C.useForm(),[b,y]=f.useState(x);return f.useEffect(()=>{var D;p.initialValue=null;const d=["belongsTo"].includes(g)?u:["belongsToMany"].includes(g)?m:c,A=(D=P(d,i))==null?void 0:D.fields;if(A){const E=A==null?void 0:A.filter($=>Se.includes($.type)).map($=>{var B;return{value:$.name,label:w(((B=$.uiSchema)==null?void 0:B.title)||$.title||$.name)}});if(s(E),x){const $=E.find(B=>B.value===x);y(($==null?void 0:$.label)||x)}}},[g]),f.useEffect(()=>{y(x)},[x]),a.jsx("div",{children:a.jsx(S.Select,{disabled:t,value:b,options:r,showSearch:!0,onDropdownVisibleChange:d=>I(this,null,function*(){var B;const{target:A,type:D,through:E}=h.values,$=["belongsTo"].includes(D)?u||v:["belongsToMany"].includes(D)?E:A;if($&&d){const{data:_}=yield o.request({url:`dataSourcesCollections/${i}.${$}/fields:list`,params:{paginate:!1,filter:{$or:[{"interface.$not":null},{"options.source.$notEmpty":!0}]},sort:["sort"]}});s((B=_.data)==null?void 0:B.filter(T=>Se.includes(T.type)).map(T=>{var k;return{value:T.name,label:w(((k=T.uiSchema)==null?void 0:k.title)||T.title||T.name)}}))}}),onChange:d=>{var A;(A=e==null?void 0:e.onChange)==null||A.call(e,d),y(d)}})})},{displayName:"ForeignKey"}),Wo=C.observer(e=>{const{value:t,disabled:o}=e,{targetKey:r,target:s,type:i}=n.useRecord(),{name:l}=W.useParams(),{getCollection:p}=n.useCollectionManager_deprecated(),u=n.useAPIClient(),[c,g]=f.useState([]),[m,v]=f.useState(t||r),x=C.useForm(),P=n.useCompile(),w=C.useField();return w.required=!0,f.useEffect(()=>{var h;s&&g((h=p(s,l).fields)==null?void 0:h.filter(b=>i!=="hasMany"?b.primaryKey||b.unique:Se.includes(b.type)).map(b=>{var y;return{value:b.name,label:P(((y=b==null?void 0:b.uiSchema)==null?void 0:y.title)||b.title||b.name)}}))},[]),a.jsx("div",{children:a.jsx(S.Select,{showSearch:!0,options:c,onDropdownVisibleChange:h=>I(this,null,function*(){var d;const{target:b,type:y}=x.values;if(b&&h){const{data:A}=yield u.request({url:`dataSourcesCollections/${l}.${b}/fields:list`,params:{paginate:!1,filter:{$or:[{"interface.$not":null},{"options.source.$notEmpty":!0}]},sort:["sort"]}});g((d=A.data)==null?void 0:d.filter(D=>y!=="hasMany"?D.primaryKey||D.unique:Se.includes(D.type)).map(D=>{var E;return{value:D.name,label:P(((E=D.uiSchema)==null?void 0:E.title)||D.title||D.name)}}))}}),onChange:h=>{var b;(b=e==null?void 0:e.onChange)==null||b.call(e,h),v(h)},value:m,disabled:o})})},{displayName:"TargetKey"}),Qo=C.observer(()=>{const e=n.useCompile(),{targetCollection:t}=rt();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"}),Zo=C.observer(e=>{const{disabled:t}=e,o=n.useCompile(),[r,s]=f.useState([]),{name:i}=W.useParams(),l=C.useField(),{getCollections:p}=n.useCollectionManager_deprecated(i),c=n.useRecord()[l.props.name],g=()=>p().filter(v=>!(v.autoCreate&&v.isThrough)).map(v=>({label:o(v.title||v.name),value:v.name}));return f.useEffect(()=>{const m=g();s(m)},[]),a.jsx("div",{children:a.jsx(S.Select,{disabled:t,showSearch:!0,popupMatchSelectWidth:!1,fieldNames:{label:"label",value:"value"},defaultValue:c,options:r,onChange:m=>{var v;(v=e==null?void 0:e.onChange)==null||v.call(e,m)}})})},{displayName:"ThroughCollection"}),Jo=(e,t,o)=>{var i;if(!e)return;const r=Q.cloneDeep(e.properties);r!=null&&r.foreignKey&&(r.foreignKey["x-component"]=ct),e.hasDefaultValue===!0&&(r.defaultValue=Q.cloneDeep((i=e==null?void 0:e.default)==null?void 0:i.uiSchema),r.defaultValue.required=!1,r.defaultValue.title=o('{{ t("Default value") }}'),r.defaultValue["x-decorator"]="FormItem",r.defaultValue["x-reactions"]={dependencies:["uiSchema.x-component-props.gmt","uiSchema.x-component-props.showTime","uiSchema.x-component-props.dateFormat","uiSchema.x-component-props.timeFormat"],fulfill:{state:{componentProps:{gmt:"{{$deps[0]}}",showTime:"{{$deps[1]}}",dateFormat:"{{$deps[2]}}",timeFormat:"{{$deps[3]}}"}}}});const s=K(F({name:`f_${C.uid()}`},Q.cloneDeep(e.default)),{interface:e.name});return s.reverseField&&(s.reverseField.name=`f_${C.uid()}`),{type:"object",properties:{[C.uid()]:{type:"void","x-component":"Action.Drawer","x-component-props":{getContainer:"{{ getContainer }}"},"x-decorator":"Form","x-decorator-props":{useValues(l){return n.useRequest(()=>Promise.resolve({data:s}),l)}},title:`${o(t.title||t.name)} - ${o('{{ t("Add field") }}')}`,properties:K(F({summary:{type:"void","x-component":"FieldSummary","x-component-props":{schemaKey:e.name}}},r),{description:{type:"string",title:'{{t("Description")}}',"x-decorator":"FormItem","x-component":"Input.TextArea"},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{action1:{title:'{{ t("Cancel") }}',"x-component":"Action","x-component-props":{useAction:"{{ useCancelAction }}"}},action2:{title:'{{ t("Submit") }}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ useCreateCollectionField }}"}}}}})}}}},Xo=()=>{const e=C.useForm(),t=n.useActionContext(),{refresh:o}=n.useResourceActionContext(),r=C.useField(),s=n.useAPIClient(),i=n.useRecord(),{name:l}=W.useParams(),p=n.useDataSourceManager();return{run(){return I(this,null,function*(){yield e.submit(),r.data=r.data||{},r.data.loading=!0;const c=Q.cloneDeep(e.values);c.autoCreateReverseField||delete c.reverseField,delete c.autoCreateReverseField;try{yield s.request({url:`dataSourcesCollections/${l}.${i.name}/fields:create`,method:"post",data:c}),t.setVisible(!1),p.getDataSource(l).reload(),yield e.reset(),r.data.loading=!1,o()}catch(g){r.data.loading=!1}})}}},Yo=e=>{const t=n.useRecord();return a.jsx(Ro,F({item:t},e))},Ro=e=>{const{scope:t,getContainer:o,item:r,children:s,trigger:i,align:l,database:p}=e,{getInterface:u,getTemplate:c,collections:g}=n.useCollectionManager_deprecated(),[m,v]=f.useState(!1),[x,P]=f.useState(),[w,h]=f.useState({}),b=n.useCompile(),{t:y}=j.useTranslation(),{data:{database:d}}=n.useCurrentAppInfo(),A=T=>(d==null?void 0:d.dialect)===T,D=f.useMemo(()=>g.map(T=>({label:b(T.title),value:T.name})),[]),E=n.useFieldInterfaceOptions(),$=f.useCallback(()=>{const{availableFieldInterfaces:T}=c(r.template)||{},{exclude:k,include:V}=T||{},H=[];return E.forEach(G=>{var O;if(G.key==="relation"){let z=[];V!=null&&V.length?V.forEach(N=>{var ee;const Y=(ee=G==null?void 0:G.children)==null?void 0:ee.find(Bf=>[N,N.interface].includes(Bf.value));Y&&z.push(K(F({},Y),{targetScope:N==null?void 0:N.targetScope}))}):k!=null&&k.length?z=(O=G==null?void 0:G.children)==null?void 0:O.filter(N=>!k.includes(N.value)):z=G==null?void 0:G.children,z!=null&&z.length&&H.push(K(F({},G),{children:z}))}}),H},[c,r]),B=f.useMemo(()=>$().map(T=>{var k;return((k=T==null?void 0:T.children)==null?void 0:k.length)===0?null:r.template==="view"?{type:"group",label:b(T.label),title:b(T.label),key:T.label,children:T.children.filter(V=>["m2o"].includes(V.name)).map(V=>({label:b(V.title),title:b(V.title),key:V.name,dataTargetScope:V.targetScope}))}:{type:"group",label:b(T.label),title:b(T.label),key:T.label,children:T==null?void 0:T.children.filter(V=>!["o2o","subTable","linkTo"].includes(V.name)).map(V=>({label:b(V.title),title:b(V.title),key:V.name,dataTargetScope:V.targetScope}))}}).filter(T=>{var k;return(k=T==null?void 0:T.children)==null?void 0:k.length}),[$]),_=f.useMemo(()=>({style:{maxHeight:"60vh",overflow:"auto"},onClick:T=>{const k=T.item.props["data-targetScope"];k&&P(k);const V=Jo(u(T.key),r,b);V&&(h(V),v(!0))},items:B}),[u,B,r]);return r.template!=="sql"&&a.jsx(n.RecordProvider,{record:r,children:a.jsxs(n.ActionContextProvider,{value:{visible:m,setVisible:v},children:[a.jsx(S.Dropdown,{getPopupContainer:o,trigger:i,align:l,menu:_,children:s||a.jsx(S.Button,{icon:a.jsx(J.PlusOutlined,{}),type:"primary",children:y("Add field")})}),a.jsx(n.SchemaComponent,{schema:w,components:{ArrayTable:ae.ArrayTable},scope:F({getContainer:o,useCancelAction:n.useCancelAction,createOnly:!0,isOverride:!1,override:!1,useCreateCollectionField:Xo,record:r,showReverseFieldConfig:!1,targetScope:x,collections:D,isDialect:A,disabledJSONB:!1,createMainOnly:!0},t)})]})})},pt=(e,t)=>{const o=[];return e.forEach(r=>{const s=r.children.filter(i=>{var l;return(l=i==null?void 0:i.availableTypes)==null?void 0:l.includes(t)});o.push({label:r.label,key:r.key,children:s})}),o.filter(r=>t==="sort"?r.key==="advanced":r.children.length>0)},en=C.observer(e=>{var v;const{value:t,handleFieldChange:o}=e,r=n.useRecord(),{getInterface:s}=n.useCollectionManager_deprecated(),i=n.useCompile(),l=n.useFieldInterfaceOptions(),p=pt(l,r.type),u=C.useForm(),c=C.useField(),[g,m]=f.useState(p);return["oho","obo","o2m","m2o","m2m"].includes(r.interface)?a.jsx(S.Tag,{children:i((v=l.find(x=>x.key==="relation").children.find(x=>x.name===t))==null?void 0:v.label)},t):a.jsx(S.Select,{"aria-label":`field-interface-${r==null?void 0:r.type}`,role:"button",defaultValue:t,style:{width:"100%"},popupMatchSelectWidth:!1,onChange:x=>{var w,h;const P=s(x);o({interface:x,uiSchema:F({title:(w=r==null?void 0:r.uiSchema)==null?void 0:w.title},(h=P==null?void 0:P.default)==null?void 0:h.uiSchema)},r.name)},onDropdownVisibleChange:x=>{var P,w;if(x&&(r!=null&&r.possibleTypes)){const h=(w=(P=Object.values(u.values))==null?void 0:P[0])==null?void 0:w[c.index],b=(h==null?void 0:h.type)||r.type,y=pt(l,b);m(y)}},children:g.map(x=>a.jsx(S.Select.OptGroup,{label:i(x.label),children:x.children.map(P=>a.jsx(S.Select.Option,{value:P.name,children:i(P.label)},P.name))},x.key))})},{displayName:"CollectionFieldInterfaceSelect"}),tn=C.observer(e=>{const{value:t,handleFieldChange:o}=e,r=n.useRecord(),[s,i]=f.useState(t),l=c=>{i(c)},p=f.useMemo(()=>Q.debounce(c=>{o({uiSchema:K(F({},r==null?void 0:r.uiSchema),{title:c})},r.name)},1e3),[o,r]),u=c=>{const g=c.target.value;l(g),p(g)};return f.useEffect(()=>{i(t)},[t]),a.jsx(S.Input,{value:s,onChange:u,style:{minWidth:"100px"},"aria-label":"field-title-input"})},{displayName:"FieldTitleInput"}),on=C.observer(e=>{const{value:t,handleFieldChange:o,onChange:r}=e,s=n.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(l=>({label:l,value:l})))||[],onChange:l=>{r==null||r(l),o(K(F({},i),{type:l}),s.name)}}):a.jsx(S.Tag,{children:t})},{displayName:"FieldType"}),nn=n.withDynamicSchemaProps(e=>{const{t}=j.useTranslation(),{isTitleField:o}=n.useCollectionManager_deprecated(),[r,s]=f.useState(null),{setTitleField:i,filterByTk:l,dataSourceKey:p}=n.useProps(e),u=n.useRecord(),c=n.useAPIClient(),{refreshRM:g,titleField:m}=rt(),v=x=>I(this,null,function*(){s(u),yield c.request({url:`dataSources/${p}/collections:update?filterByTk=${l}`,method:"post",data:{titleField:x?u.name:"id"}}),S.message.success(t("Saved successfully")),g(),i(x?u.name:"id"),s(null)});return o(u)?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-${u==null?void 0:u.name}`,size:"small",loading:(u==null?void 0:u.name)===(r==null?void 0:r.name),checked:(u==null?void 0:u.name)===(m||"id"),onChange:v})}):null},{displayName:"TitleField"}),rn=()=>{const{t:e}=j.useTranslation(),{unsupportedFields:t}=n.useRecord(),o=[{title:e("Field name"),dataIndex:"name",key:"name"},{title:e("Field database type",{ns:U}),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:U})})}),a.jsx("div",{style:{marginBottom:"15px"},children:e("The following field types are not compatible and do not support output and display",{ns:U})}),a.jsx(S.Table,{columns:o,dataSource:t,pagination:!1})]})};var R=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function Me(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function an(){this.__data__=[],this.size=0}var sn=an;function ln(e,t){return e===t||e!==e&&t!==t}var ut=ln,cn=ut;function pn(e,t){for(var o=e.length;o--;)if(cn(e[o][0],t))return o;return-1}var Ae=pn,un=Ae,dn=Array.prototype,mn=dn.splice;function yn(e){var t=this.__data__,o=un(t,e);if(o<0)return!1;var r=t.length-1;return o==r?t.pop():mn.call(t,o,1),--this.size,!0}var fn=yn,gn=Ae;function vn(e){var t=this.__data__,o=gn(t,e);return o<0?void 0:t[o][1]}var Cn=vn,hn=Ae;function bn(e){return hn(this.__data__,e)>-1}var xn=bn,Sn=Ae;function An(e,t){var o=this.__data__,r=Sn(o,e);return r<0?(++this.size,o.push([e,t])):o[r][1]=t,this}var $n=An,Tn=sn,Fn=fn,wn=Cn,_n=xn,Pn=$n;function se(e){var t=-1,o=e==null?0:e.length;for(this.clear();++t<o;){var r=e[t];this.set(r[0],r[1])}}se.prototype.clear=Tn,se.prototype.delete=Fn,se.prototype.get=wn,se.prototype.has=_n,se.prototype.set=Pn;var $e=se,Dn=$e;function In(){this.__data__=new Dn,this.size=0}var On=In;function En(e){var t=this.__data__,o=t.delete(e);return this.size=t.size,o}var kn=En;function Mn(e){return this.__data__.get(e)}var jn=Mn;function Kn(e){return this.__data__.has(e)}var Bn=Kn,Vn=typeof R=="object"&&R&&R.Object===Object&&R,dt=Vn,Nn=dt,Ln=typeof self=="object"&&self&&self.Object===Object&&self,qn=Nn||Ln||Function("return this")(),X=qn,Gn=X,Un=Gn.Symbol,fe=Un,mt=fe,yt=Object.prototype,zn=yt.hasOwnProperty,Hn=yt.toString,ge=mt?mt.toStringTag:void 0;function Wn(e){var t=zn.call(e,ge),o=e[ge];try{e[ge]=void 0;var r=!0}catch(i){}var s=Hn.call(e);return r&&(t?e[ge]=o:delete e[ge]),s}var Qn=Wn,Zn=Object.prototype,Jn=Zn.toString;function Xn(e){return Jn.call(e)}var Yn=Xn,ft=fe,Rn=Qn,er=Yn,tr="[object Null]",or="[object Undefined]",gt=ft?ft.toStringTag:void 0;function nr(e){return e==null?e===void 0?or:tr:gt&&gt in Object(e)?Rn(e):er(e)}var ie=nr;function rr(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var le=rr,ar=ie,sr=le,ir="[object AsyncFunction]",lr="[object Function]",cr="[object GeneratorFunction]",pr="[object Proxy]";function ur(e){if(!sr(e))return!1;var t=ar(e);return t==lr||t==cr||t==ir||t==pr}var vt=ur,dr=X,mr=dr["__core-js_shared__"],yr=mr,je=yr,Ct=function(){var e=/[^.]+$/.exec(je&&je.keys&&je.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function fr(e){return!!Ct&&Ct in e}var gr=fr,vr=Function.prototype,Cr=vr.toString;function hr(e){if(e!=null){try{return Cr.call(e)}catch(t){}try{return e+""}catch(t){}}return""}var ht=hr,br=vt,xr=gr,Sr=le,Ar=ht,$r=/[\\^$.*+?()[\]{}|]/g,Tr=/^\[object .+?Constructor\]$/,Fr=Function.prototype,wr=Object.prototype,_r=Fr.toString,Pr=wr.hasOwnProperty,Dr=RegExp("^"+_r.call(Pr).replace($r,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Ir(e){if(!Sr(e)||xr(e))return!1;var t=br(e)?Dr:Tr;return t.test(Ar(e))}var Or=Ir;function Er(e,t){return e==null?void 0:e[t]}var kr=Er,Mr=Or,jr=kr;function Kr(e,t){var o=jr(e,t);return Mr(o)?o:void 0}var te=Kr,Br=te,Vr=X,Nr=Br(Vr,"Map"),Ke=Nr,Lr=te,qr=Lr(Object,"create"),Te=qr,bt=Te;function Gr(){this.__data__=bt?bt(null):{},this.size=0}var Ur=Gr;function zr(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Hr=zr,Wr=Te,Qr="__lodash_hash_undefined__",Zr=Object.prototype,Jr=Zr.hasOwnProperty;function Xr(e){var t=this.__data__;if(Wr){var o=t[e];return o===Qr?void 0:o}return Jr.call(t,e)?t[e]:void 0}var Yr=Xr,Rr=Te,ea=Object.prototype,ta=ea.hasOwnProperty;function oa(e){var t=this.__data__;return Rr?t[e]!==void 0:ta.call(t,e)}var na=oa,ra=Te,aa="__lodash_hash_undefined__";function sa(e,t){var o=this.__data__;return this.size+=this.has(e)?0:1,o[e]=ra&&t===void 0?aa:t,this}var ia=sa,la=Ur,ca=Hr,pa=Yr,ua=na,da=ia;function ce(e){var t=-1,o=e==null?0:e.length;for(this.clear();++t<o;){var r=e[t];this.set(r[0],r[1])}}ce.prototype.clear=la,ce.prototype.delete=ca,ce.prototype.get=pa,ce.prototype.has=ua,ce.prototype.set=da;var ma=ce,xt=ma,ya=$e,fa=Ke;function ga(){this.size=0,this.__data__={hash:new xt,map:new(fa||ya),string:new xt}}var va=ga;function Ca(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var ha=Ca,ba=ha;function xa(e,t){var o=e.__data__;return ba(t)?o[typeof t=="string"?"string":"hash"]:o.map}var Fe=xa,Sa=Fe;function Aa(e){var t=Sa(this,e).delete(e);return this.size-=t?1:0,t}var $a=Aa,Ta=Fe;function Fa(e){return Ta(this,e).get(e)}var wa=Fa,_a=Fe;function Pa(e){return _a(this,e).has(e)}var Da=Pa,Ia=Fe;function Oa(e,t){var o=Ia(this,e),r=o.size;return o.set(e,t),this.size+=o.size==r?0:1,this}var Ea=Oa,ka=va,Ma=$a,ja=wa,Ka=Da,Ba=Ea;function pe(e){var t=-1,o=e==null?0:e.length;for(this.clear();++t<o;){var r=e[t];this.set(r[0],r[1])}}pe.prototype.clear=ka,pe.prototype.delete=Ma,pe.prototype.get=ja,pe.prototype.has=Ka,pe.prototype.set=Ba;var St=pe,Va=$e,Na=Ke,La=St,qa=200;function Ga(e,t){var o=this.__data__;if(o instanceof Va){var r=o.__data__;if(!Na||r.length<qa-1)return r.push([e,t]),this.size=++o.size,this;o=this.__data__=new La(r)}return o.set(e,t),this.size=o.size,this}var Ua=Ga,za=$e,Ha=On,Wa=kn,Qa=jn,Za=Bn,Ja=Ua;function ue(e){var t=this.__data__=new za(e);this.size=t.size}ue.prototype.clear=Ha,ue.prototype.delete=Wa,ue.prototype.get=Qa,ue.prototype.has=Za,ue.prototype.set=Ja;var Xa=ue;function Ya(e,t){for(var o=-1,r=e==null?0:e.length;++o<r&&t(e[o],o,e)!==!1;);return e}var Ra=Ya,es=te,ts=function(){try{var e=es(Object,"defineProperty");return e({},"",{}),e}catch(t){}}(),At=ts,$t=At;function os(e,t,o){t=="__proto__"&&$t?$t(e,t,{configurable:!0,enumerable:!0,value:o,writable:!0}):e[t]=o}var Tt=os,ns=Tt,rs=ut,as=Object.prototype,ss=as.hasOwnProperty;function is(e,t,o){var r=e[t];(!(ss.call(e,t)&&rs(r,o))||o===void 0&&!(t in e))&&ns(e,t,o)}var Be=is,ls=Be,cs=Tt;function ps(e,t,o,r){var s=!o;o||(o={});for(var i=-1,l=t.length;++i<l;){var p=t[i],u=r?r(o[p],e[p],p,o,e):void 0;u===void 0&&(u=e[p]),s?cs(o,p,u):ls(o,p,u)}return o}var ve=ps;function us(e,t){for(var o=-1,r=Array(e);++o<e;)r[o]=t(o);return r}var ds=us;function ms(e){return e!=null&&typeof e=="object"}var oe=ms,ys=ie,fs=oe,gs="[object Arguments]";function vs(e){return fs(e)&&ys(e)==gs}var Cs=vs,Ft=Cs,hs=oe,wt=Object.prototype,bs=wt.hasOwnProperty,xs=wt.propertyIsEnumerable,Ss=Ft(function(){return arguments}())?Ft:function(e){return hs(e)&&bs.call(e,"callee")&&!xs.call(e,"callee")},_t=Ss,As=Array.isArray,ne=As,we={exports:{}};function $s(){return!1}var Ts=$s;we.exports,function(e,t){var o=X,r=Ts,s=t&&!t.nodeType&&t,i=s&&!0&&e&&!e.nodeType&&e,l=i&&i.exports===s,p=l?o.Buffer:void 0,u=p?p.isBuffer:void 0,c=u||r;e.exports=c}(we,we.exports);var Pt=we.exports,Fs=9007199254740991,ws=/^(?:0|[1-9]\d*)$/;function _s(e,t){var o=typeof e;return t=t==null?Fs:t,!!t&&(o=="number"||o!="symbol"&&ws.test(e))&&e>-1&&e%1==0&&e<t}var Dt=_s,Ps=9007199254740991;function Ds(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Ps}var It=Ds,Is=ie,Os=It,Es=oe,ks="[object Arguments]",Ms="[object Array]",js="[object Boolean]",Ks="[object Date]",Bs="[object Error]",Vs="[object Function]",Ns="[object Map]",Ls="[object Number]",qs="[object Object]",Gs="[object RegExp]",Us="[object Set]",zs="[object String]",Hs="[object WeakMap]",Ws="[object ArrayBuffer]",Qs="[object DataView]",Zs="[object Float32Array]",Js="[object Float64Array]",Xs="[object Int8Array]",Ys="[object Int16Array]",Rs="[object Int32Array]",ei="[object Uint8Array]",ti="[object Uint8ClampedArray]",oi="[object Uint16Array]",ni="[object Uint32Array]",q={};q[Zs]=q[Js]=q[Xs]=q[Ys]=q[Rs]=q[ei]=q[ti]=q[oi]=q[ni]=!0,q[ks]=q[Ms]=q[Ws]=q[js]=q[Qs]=q[Ks]=q[Bs]=q[Vs]=q[Ns]=q[Ls]=q[qs]=q[Gs]=q[Us]=q[zs]=q[Hs]=!1;function ri(e){return Es(e)&&Os(e.length)&&!!q[Is(e)]}var ai=ri;function si(e){return function(t){return e(t)}}var Ve=si,_e={exports:{}};_e.exports,function(e,t){var o=dt,r=t&&!t.nodeType&&t,s=r&&!0&&e&&!e.nodeType&&e,i=s&&s.exports===r,l=i&&o.process,p=function(){try{var u=s&&s.require&&s.require("util").types;return u||l&&l.binding&&l.binding("util")}catch(c){}}();e.exports=p}(_e,_e.exports);var Ne=_e.exports,ii=ai,li=Ve,Ot=Ne,Et=Ot&&Ot.isTypedArray,ci=Et?li(Et):ii,pi=ci,ui=ds,di=_t,mi=ne,yi=Pt,fi=Dt,gi=pi,vi=Object.prototype,Ci=vi.hasOwnProperty;function hi(e,t){var o=mi(e),r=!o&&di(e),s=!o&&!r&&yi(e),i=!o&&!r&&!s&&gi(e),l=o||r||s||i,p=l?ui(e.length,String):[],u=p.length;for(var c in e)(t||Ci.call(e,c))&&!(l&&(c=="length"||s&&(c=="offset"||c=="parent")||i&&(c=="buffer"||c=="byteLength"||c=="byteOffset")||fi(c,u)))&&p.push(c);return p}var kt=hi,bi=Object.prototype;function xi(e){var t=e&&e.constructor,o=typeof t=="function"&&t.prototype||bi;return e===o}var Le=xi;function Si(e,t){return function(o){return e(t(o))}}var Mt=Si,Ai=Mt,$i=Ai(Object.keys,Object),Ti=$i,Fi=Le,wi=Ti,_i=Object.prototype,Pi=_i.hasOwnProperty;function Di(e){if(!Fi(e))return wi(e);var t=[];for(var o in Object(e))Pi.call(e,o)&&o!="constructor"&&t.push(o);return t}var Ii=Di,Oi=vt,Ei=It;function ki(e){return e!=null&&Ei(e.length)&&!Oi(e)}var jt=ki,Mi=kt,ji=Ii,Ki=jt;function Bi(e){return Ki(e)?Mi(e):ji(e)}var qe=Bi,Vi=ve,Ni=qe;function Li(e,t){return e&&Vi(t,Ni(t),e)}var qi=Li;function Gi(e){var t=[];if(e!=null)for(var o in Object(e))t.push(o);return t}var Ui=Gi,zi=le,Hi=Le,Wi=Ui,Qi=Object.prototype,Zi=Qi.hasOwnProperty;function Ji(e){if(!zi(e))return Wi(e);var t=Hi(e),o=[];for(var r in e)r=="constructor"&&(t||!Zi.call(e,r))||o.push(r);return o}var Xi=Ji,Yi=kt,Ri=Xi,el=jt;function tl(e){return el(e)?Yi(e,!0):Ri(e)}var Ge=tl,ol=ve,nl=Ge;function rl(e,t){return e&&ol(t,nl(t),e)}var al=rl,Pe={exports:{}};Pe.exports,function(e,t){var o=X,r=t&&!t.nodeType&&t,s=r&&!0&&e&&!e.nodeType&&e,i=s&&s.exports===r,l=i?o.Buffer:void 0,p=l?l.allocUnsafe:void 0;function u(c,g){if(g)return c.slice();var m=c.length,v=p?p(m):new c.constructor(m);return c.copy(v),v}e.exports=u}(Pe,Pe.exports);var sl=Pe.exports;function il(e,t){var o=-1,r=e.length;for(t||(t=Array(r));++o<r;)t[o]=e[o];return t}var ll=il;function cl(e,t){for(var o=-1,r=e==null?0:e.length,s=0,i=[];++o<r;){var l=e[o];t(l,o,e)&&(i[s++]=l)}return i}var pl=cl;function ul(){return[]}var Kt=ul,dl=pl,ml=Kt,yl=Object.prototype,fl=yl.propertyIsEnumerable,Bt=Object.getOwnPropertySymbols,gl=Bt?function(e){return e==null?[]:(e=Object(e),dl(Bt(e),function(t){return fl.call(e,t)}))}:ml,Ue=gl,vl=ve,Cl=Ue;function hl(e,t){return vl(e,Cl(e),t)}var bl=hl;function xl(e,t){for(var o=-1,r=t.length,s=e.length;++o<r;)e[s+o]=t[o];return e}var ze=xl,Sl=Mt,Al=Sl(Object.getPrototypeOf,Object),He=Al,$l=ze,Tl=He,Fl=Ue,wl=Kt,_l=Object.getOwnPropertySymbols,Pl=_l?function(e){for(var t=[];e;)$l(t,Fl(e)),e=Tl(e);return t}:wl,Vt=Pl,Dl=ve,Il=Vt;function Ol(e,t){return Dl(e,Il(e),t)}var El=Ol,kl=ze,Ml=ne;function jl(e,t,o){var r=t(e);return Ml(e)?r:kl(r,o(e))}var Nt=jl,Kl=Nt,Bl=Ue,Vl=qe;function Nl(e){return Kl(e,Vl,Bl)}var Ll=Nl,ql=Nt,Gl=Vt,Ul=Ge;function zl(e){return ql(e,Ul,Gl)}var Lt=zl,Hl=te,Wl=X,Ql=Hl(Wl,"DataView"),Zl=Ql,Jl=te,Xl=X,Yl=Jl(Xl,"Promise"),Rl=Yl,ec=te,tc=X,oc=ec(tc,"Set"),nc=oc,rc=te,ac=X,sc=rc(ac,"WeakMap"),ic=sc,We=Zl,Qe=Ke,Ze=Rl,Je=nc,Xe=ic,qt=ie,de=ht,Gt="[object Map]",lc="[object Object]",Ut="[object Promise]",zt="[object Set]",Ht="[object WeakMap]",Wt="[object DataView]",cc=de(We),pc=de(Qe),uc=de(Ze),dc=de(Je),mc=de(Xe),re=qt;(We&&re(new We(new ArrayBuffer(1)))!=Wt||Qe&&re(new Qe)!=Gt||Ze&&re(Ze.resolve())!=Ut||Je&&re(new Je)!=zt||Xe&&re(new Xe)!=Ht)&&(re=function(e){var t=qt(e),o=t==lc?e.constructor:void 0,r=o?de(o):"";if(r)switch(r){case cc:return Wt;case pc:return Gt;case uc:return Ut;case dc:return zt;case mc:return Ht}return t});var Ye=re,yc=Object.prototype,fc=yc.hasOwnProperty;function gc(e){var t=e.length,o=new e.constructor(t);return t&&typeof e[0]=="string"&&fc.call(e,"index")&&(o.index=e.index,o.input=e.input),o}var vc=gc,Cc=X,hc=Cc.Uint8Array,bc=hc,Qt=bc;function xc(e){var t=new e.constructor(e.byteLength);return new Qt(t).set(new Qt(e)),t}var Re=xc,Sc=Re;function Ac(e,t){var o=t?Sc(e.buffer):e.buffer;return new e.constructor(o,e.byteOffset,e.byteLength)}var $c=Ac,Tc=/\w*$/;function Fc(e){var t=new e.constructor(e.source,Tc.exec(e));return t.lastIndex=e.lastIndex,t}var wc=Fc,Zt=fe,Jt=Zt?Zt.prototype:void 0,Xt=Jt?Jt.valueOf:void 0;function _c(e){return Xt?Object(Xt.call(e)):{}}var Pc=_c,Dc=Re;function Ic(e,t){var o=t?Dc(e.buffer):e.buffer;return new e.constructor(o,e.byteOffset,e.length)}var Oc=Ic,Ec=Re,kc=$c,Mc=wc,jc=Pc,Kc=Oc,Bc="[object Boolean]",Vc="[object Date]",Nc="[object Map]",Lc="[object Number]",qc="[object RegExp]",Gc="[object Set]",Uc="[object String]",zc="[object Symbol]",Hc="[object ArrayBuffer]",Wc="[object DataView]",Qc="[object Float32Array]",Zc="[object Float64Array]",Jc="[object Int8Array]",Xc="[object Int16Array]",Yc="[object Int32Array]",Rc="[object Uint8Array]",ep="[object Uint8ClampedArray]",tp="[object Uint16Array]",op="[object Uint32Array]";function np(e,t,o){var r=e.constructor;switch(t){case Hc:return Ec(e);case Bc:case Vc:return new r(+e);case Wc:return kc(e,o);case Qc:case Zc:case Jc:case Xc:case Yc:case Rc:case ep:case tp:case op:return Kc(e,o);case Nc:return new r;case Lc:case Uc:return new r(e);case qc:return Mc(e);case Gc:return new r;case zc:return jc(e)}}var rp=np,ap=le,Yt=Object.create,sp=function(){function e(){}return function(t){if(!ap(t))return{};if(Yt)return Yt(t);e.prototype=t;var o=new e;return e.prototype=void 0,o}}(),ip=sp,lp=ip,cp=He,pp=Le;function up(e){return typeof e.constructor=="function"&&!pp(e)?lp(cp(e)):{}}var dp=up,mp=Ye,yp=oe,fp="[object Map]";function gp(e){return yp(e)&&mp(e)==fp}var vp=gp,Cp=vp,hp=Ve,Rt=Ne,eo=Rt&&Rt.isMap,bp=eo?hp(eo):Cp,xp=bp,Sp=Ye,Ap=oe,$p="[object Set]";function Tp(e){return Ap(e)&&Sp(e)==$p}var Fp=Tp,wp=Fp,_p=Ve,to=Ne,oo=to&&to.isSet,Pp=oo?_p(oo):wp,Dp=Pp,Ip=Xa,Op=Ra,Ep=Be,kp=qi,Mp=al,jp=sl,Kp=ll,Bp=bl,Vp=El,Np=Ll,Lp=Lt,qp=Ye,Gp=vc,Up=rp,zp=dp,Hp=ne,Wp=Pt,Qp=xp,Zp=le,Jp=Dp,Xp=qe,Yp=Ge,Rp=1,eu=2,tu=4,no="[object Arguments]",ou="[object Array]",nu="[object Boolean]",ru="[object Date]",au="[object Error]",ro="[object Function]",su="[object GeneratorFunction]",iu="[object Map]",lu="[object Number]",ao="[object Object]",cu="[object RegExp]",pu="[object Set]",uu="[object String]",du="[object Symbol]",mu="[object WeakMap]",yu="[object ArrayBuffer]",fu="[object DataView]",gu="[object Float32Array]",vu="[object Float64Array]",Cu="[object Int8Array]",hu="[object Int16Array]",bu="[object Int32Array]",xu="[object Uint8Array]",Su="[object Uint8ClampedArray]",Au="[object Uint16Array]",$u="[object Uint32Array]",L={};L[no]=L[ou]=L[yu]=L[fu]=L[nu]=L[ru]=L[gu]=L[vu]=L[Cu]=L[hu]=L[bu]=L[iu]=L[lu]=L[ao]=L[cu]=L[pu]=L[uu]=L[du]=L[xu]=L[Su]=L[Au]=L[$u]=!0,L[au]=L[ro]=L[mu]=!1;function De(e,t,o,r,s,i){var l,p=t&Rp,u=t&eu,c=t&tu;if(o&&(l=s?o(e,r,s,i):o(e)),l!==void 0)return l;if(!Zp(e))return e;var g=Hp(e);if(g){if(l=Gp(e),!p)return Kp(e,l)}else{var m=qp(e),v=m==ro||m==su;if(Wp(e))return jp(e,p);if(m==ao||m==no||v&&!s){if(l=u||v?{}:zp(e),!p)return u?Vp(e,Mp(l,e)):Bp(e,kp(l,e))}else{if(!L[m])return s?e:{};l=Up(e,m,p)}}i||(i=new Ip);var x=i.get(e);if(x)return x;i.set(e,l),Jp(e)?e.forEach(function(h){l.add(De(h,t,o,h,e,i))}):Qp(e)&&e.forEach(function(h,b){l.set(b,De(h,t,o,b,e,i))});var P=c?u?Lp:Np:u?Yp:Xp,w=g?void 0:P(e);return Op(w||e,function(h,b){w&&(b=h,h=e[b]),Ep(l,b,De(h,t,o,b,e,i))}),l}var so=De,Tu=so,Fu=1,wu=4;function _u(e){return Tu(e,Fu|wu)}var Pu=_u;const Ce=Me(Pu);function Du(e,t){for(var o=-1,r=e==null?0:e.length,s=Array(r);++o<r;)s[o]=t(e[o],o,e);return s}var io=Du,Iu=ie,Ou=oe,Eu="[object Symbol]";function ku(e){return typeof e=="symbol"||Ou(e)&&Iu(e)==Eu}var et=ku,Mu=ne,ju=et,Ku=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Bu=/^\w*$/;function Vu(e,t){if(Mu(e))return!1;var o=typeof e;return o=="number"||o=="symbol"||o=="boolean"||e==null||ju(e)?!0:Bu.test(e)||!Ku.test(e)||t!=null&&e in Object(t)}var Nu=Vu,lo=St,Lu="Expected a function";function tt(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(Lu);var o=function(){var r=arguments,s=t?t.apply(this,r):r[0],i=o.cache;if(i.has(s))return i.get(s);var l=e.apply(this,r);return o.cache=i.set(s,l)||i,l};return o.cache=new(tt.Cache||lo),o}tt.Cache=lo;var qu=tt,Gu=qu,Uu=500;function zu(e){var t=Gu(e,function(r){return o.size===Uu&&o.clear(),r}),o=t.cache;return t}var Hu=zu,Wu=Hu,Qu=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Zu=/\\(\\)?/g,Ju=Wu(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(Qu,function(o,r,s,i){t.push(s?i.replace(Zu,"$1"):r||o)}),t}),Xu=Ju,co=fe,Yu=io,Ru=ne,ed=et,td=1/0,po=co?co.prototype:void 0,uo=po?po.toString:void 0;function mo(e){if(typeof e=="string")return e;if(Ru(e))return Yu(e,mo)+"";if(ed(e))return uo?uo.call(e):"";var t=e+"";return t=="0"&&1/e==-td?"-0":t}var od=mo,nd=od;function rd(e){return e==null?"":nd(e)}var ad=rd,sd=ne,id=Nu,ld=Xu,cd=ad;function pd(e,t){return sd(e)?e:id(e,t)?[e]:ld(cd(e))}var Ie=pd;function ud(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}var dd=ud,md=et,yd=1/0;function fd(e){if(typeof e=="string"||md(e))return e;var t=e+"";return t=="0"&&1/e==-yd?"-0":t}var ot=fd,gd=Ie,vd=ot;function Cd(e,t){t=gd(t,e);for(var o=0,r=t.length;e!=null&&o<r;)e=e[vd(t[o++])];return o&&o==r?e:void 0}var hd=Cd;function bd(e,t,o){var r=-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);++r<s;)i[r]=e[r+t];return i}var xd=bd,Sd=hd,Ad=xd;function $d(e,t){return t.length<2?e:Sd(e,Ad(t,0,-1))}var Td=$d,Fd=Ie,wd=dd,_d=Td,Pd=ot;function Dd(e,t){return t=Fd(t,e),e=_d(e,t),e==null||delete e[Pd(wd(t))]}var Id=Dd,Od=ie,Ed=He,kd=oe,Md="[object Object]",jd=Function.prototype,Kd=Object.prototype,yo=jd.toString,Bd=Kd.hasOwnProperty,Vd=yo.call(Object);function Nd(e){if(!kd(e)||Od(e)!=Md)return!1;var t=Ed(e);if(t===null)return!0;var o=Bd.call(t,"constructor")&&t.constructor;return typeof o=="function"&&o instanceof o&&yo.call(o)==Vd}var Ld=Nd,qd=Ld;function Gd(e){return qd(e)?void 0:e}var Ud=Gd,fo=fe,zd=_t,Hd=ne,go=fo?fo.isConcatSpreadable:void 0;function Wd(e){return Hd(e)||zd(e)||!!(go&&e&&e[go])}var Qd=Wd,Zd=ze,Jd=Qd;function vo(e,t,o,r,s){var i=-1,l=e.length;for(o||(o=Jd),s||(s=[]);++i<l;){var p=e[i];t>0&&o(p)?t>1?vo(p,t-1,o,r,s):Zd(s,p):r||(s[s.length]=p)}return s}var Xd=vo,Yd=Xd;function Rd(e){var t=e==null?0:e.length;return t?Yd(e,1):[]}var em=Rd;function tm(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 om=tm,nm=om,Co=Math.max;function rm(e,t,o){return t=Co(t===void 0?e.length-1:t,0),function(){for(var r=arguments,s=-1,i=Co(r.length-t,0),l=Array(i);++s<i;)l[s]=r[t+s];s=-1;for(var p=Array(t+1);++s<t;)p[s]=r[s];return p[t]=o(l),nm(e,this,p)}}var am=rm;function sm(e){return function(){return e}}var im=sm;function lm(e){return e}var cm=lm,pm=im,ho=At,um=cm,dm=ho?function(e,t){return ho(e,"toString",{configurable:!0,enumerable:!1,value:pm(t),writable:!0})}:um,mm=dm,ym=800,fm=16,gm=Date.now;function vm(e){var t=0,o=0;return function(){var r=gm(),s=fm-(r-o);if(o=r,s>0){if(++t>=ym)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var Cm=vm,hm=mm,bm=Cm,xm=bm(hm),Sm=xm,Am=em,$m=am,Tm=Sm;function Fm(e){return Tm($m(e,void 0,Am),e+"")}var wm=Fm,_m=io,Pm=so,Dm=Id,Im=Ie,Om=ve,Em=Ud,km=wm,Mm=Lt,jm=1,Km=2,Bm=4,Vm=km(function(e,t){var o={};if(e==null)return o;var r=!1;t=_m(t,function(i){return i=Im(i,e),r||(r=i.length>1),i}),Om(e,Mm(e),o),r&&(o=Pm(o,jm|Km|Bm,Em));for(var s=t.length;s--;)Dm(o,t[s]);return o}),Nm=Vm;const Lm=Me(Nm);var qm=Be,Gm=Ie,Um=Dt,bo=le,zm=ot;function Hm(e,t,o,r){if(!bo(e))return e;t=Gm(t,e);for(var s=-1,i=t.length,l=i-1,p=e;p!=null&&++s<i;){var u=zm(t[s]),c=o;if(u==="__proto__"||u==="constructor"||u==="prototype")return e;if(s!=l){var g=p[u];c=r?r(g,u,p):void 0,c===void 0&&(c=bo(g)?g:Um(t[s+1])?[]:{})}qm(p,u,c),p=p[u]}return e}var Wm=Hm,Qm=Wm;function Zm(e,t,o){return e==null?e:Qm(e,t,o)}var Jm=Zm;const xo=Me(Jm),Xm=({schema:e,record:t,parentRecord:o,compile:r,getContainer:s})=>{if(!e)return;const i=Ce(e.properties);return i!=null&&i.name&&(i.name["x-disabled"]=!0),e.hasDefaultValue===!0&&(i.defaultValue=Ce(e.default.uiSchema)||{},i.defaultValue.required=!1,i.defaultValue.title=r('{{ 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:{[C.uid()]:{type:"void","x-component":"Action.Drawer","x-component-props":{getContainer:"{{ getContainer }}"},"x-decorator":"Form","x-decorator-props":{useValues(l){return n.useRequest(()=>Promise.resolve({data:Ce(Lm(e.default,["uiSchema.rawTitle"]))}),l)}},title:`${r((o==null?void 0:o.title)||(o==null?void 0:o.name))} - ${r('{{ t("Edit field") }}')}`,properties:K(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 }}"}}}}})}}}},Ym=()=>{const e=C.useForm(),t=n.useAPIClient(),o=n.useActionContext(),{refresh:r}=n.useResourceActionContext(),{targetCollection:s}=rt(),{name:i}=W.useParams(),{name:l}=n.useRecord(),p=n.useDataSourceManager();return{run(){return I(this,null,function*(){yield e.submit();const c=Ce(e.values);c.autoCreateReverseField||delete c.reverseField,delete c.autoCreateReverseField,yield t.request({url:`dataSourcesCollections/${i}.${s.name}/fields:update?filterByTk=${l}`,method:"post",data:c}),o.setVisible(!1),p.getDataSource(i).reload(),yield e.reset(),r()})}}},Rm=e=>{const t=n.useRecord(),o=n.useCollectionParentRecordData();return a.jsx(ey,F({item:t,parentItem:o},e))},ey=e=>{const E=e,{scope:t,getContainer:o,item:r,parentItem:s,children:i}=E,l=Ee(E,["scope","getContainer","item","parentItem","children"]),{getInterface:p,collections:u,getCollection:c}=n.useCollectionManager_deprecated(),{data:{database:g}}=n.useCurrentAppInfo(),[m,v]=f.useState(!1),[x,P]=f.useState({}),w=n.useAPIClient(),{t:h}=j.useTranslation(),b=n.useCompile(),{name:y}=W.useParams(),d=$=>(g==null?void 0:g.dialect)===$,A=f.useMemo(()=>u.map($=>({label:b($.title),value:$.name})),[]),D=f.useMemo(()=>{var $,B;return(r==null?void 0:r.fields)||((B=($=c(r.collectionName,y))==null?void 0:$.options)==null?void 0:B.fields.filter(_=>_.interface==="select").map(_=>{var T;return{value:_.name,label:b((T=_.uiSchema)==null?void 0:T.title)}}))},[r.name]);return a.jsx(n.RecordProvider,{record:r,parent:s,children:a.jsxs(n.ActionContextProvider,{value:{visible:m,setVisible:v},children:[a.jsx("a",K(F({},l),{onClick:()=>I(this,null,function*(){var k,V,H;const{data:$}=yield w.request({url:`dataSourcesCollections/${y}.${s.name}/fields:get?filterByTk=${r.name}`,params:{appends:["reverseField"]}}),B=p((k=$==null?void 0:$.data)==null?void 0:k.interface),_=Ce($==null?void 0:$.data)||{};_!=null&&_.reverseField||(_.autoCreateReverseField=!1,_.reverseField=(V=B==null?void 0:B.default)==null?void 0:V.reverseField,xo(_.reverseField,"name",`f_${C.uid()}`),xo(_.reverseField,"uiSchema.title",(H=r.__parent)==null?void 0:H.title));const T=Xm({schema:K(F({},B),{default:_}),record:r,parentRecord:s,compile:b,getContainer:o});P(T),v(!0)}),children:i||h("Edit")})),a.jsx(n.SchemaComponent,{schema:x,components:{ArrayTable:ae.ArrayTable},scope:K(F({getContainer:o,useUpdateCollectionField:Ym,useCancelAction:n.useCancelAction,showReverseFieldConfig:!1,collections:A,isDialect:d,scopeKeyOptions:D,disabledJSONB:!0},t),{createOnly:!1,createMainOnly:!1})})]})})},ty=()=>{const{refresh:e}=n.useResourceActionContext(),{name:t}=W.useParams(),{name:o,collectionName:r}=n.useRecord(),s=n.useAPIClient();return{run(){return I(this,null,function*(){yield s.request({url:`dataSourcesCollections/${t}.${r}/fields:destroy?filterByTk=${o}`,method:"post"}),e()})}}},oy=()=>{const{state:e,setState:t,refresh:o}=n.useResourceActionContext(),{t:r}=j.useTranslation(),{name:s}=W.useParams(),i=n.useAPIClient(),{name:l}=n.useRecord();return{run(){return I(this,null,function*(){var u;if(!((u=e==null?void 0:e.selectedRowKeys)!=null&&u.length))return S.message.error(r("Please select the records you want to delete"));yield i.request({url:`dataSourcesCollections/${s}.${l}/fields:destroy`,method:"post",params:{filterByTk:(e==null?void 0:e.selectedRowKeys)||[]}}),t==null||t({selectedRowKeys:[]}),o()})}}},ny=()=>{const{run:e}=oy();return{run(){return I(this,null,function*(){yield e()})}}},ry=()=>{const{run:e}=ty();return{run(){return I(this,null,function*(){yield e()})}}},ay={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: "${U}" })}}`,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"}}]},sy={type:"object",properties:{[C.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"}}}},[C.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: "${U}" })}}`,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]) }}"}}}]}}}}}}}}},nt=f.createContext({refreshRM:()=>{},titleField:null,targetCollection:null});nt.displayName="RemoteCollectionContext";const rt=()=>f.useContext(nt),So=()=>{const e=C.useField(),t=f.useMemo(()=>C.createForm(),[]),o=n.useAttach(t.createArrayField(K(F({},e.props),{basePath:""}))),{t:r}=j.useTranslation(),{name:s}=W.useParams(),i=n.useAPIClient(),l=n.useCompile(),p=f.useContext(n.ResourceActionContext),u=n.useResourceContext(),{targetKey:c}=u||{},g=n.useRecord(),{[c]:m,titleField:v,name:x}=g,[P,w]=f.useState(v),h=E=>{const $=f.useContext(n.ResourceActionContext),B=C.useField();return f.useEffect(()=>{$.loading||(E==null||E.onSuccess($.data),B.componentProps.dragSort=!!$.dragSort)},[$.loading]),$},b={association:{sourceKey:"name",targetKey:"name"},dragSort:!1,collection:ay,request:{url:`dataSourcesCollections/${s}.${x}/fields:list`,params:{paginate:!1,filter:{$or:[{"interface.$not":null},{"options.source.$notEmpty":!0}]},sort:["sort"]}}},y=n.useDataSourceManager(),d=(E,$)=>I(this,null,function*(){yield i.request({url:`dataSourcesCollections/${s}.${x}/fields:update?filterByTk=${$}`,method:"post",data:E}),y.getDataSource(s).reload(),S.message.success(r("Saved successfully"))}),A=()=>({filterByTk:m,titleField:P,dataSourceKey:s,setTitleField:w}),D=(E,$,B)=>I(this,null,function*(){var H,G;const{targetScope:_}=$,T=((H=E.props)==null?void 0:H.name)==="inherits",{data:k}=yield i.request({url:`dataSources/${s}/collections:list`,params:{paginate:!1,appends:["fields"],sort:["sort"]}});return((G=k==null?void 0:k.data)==null?void 0:G.filter(O=>{var ee;if(B!=null&&B.includes(O.template)||O.autoCreate&&O.isThrough||T&&O.template==="view")return!1;const N=!(_!=null&&_.template)||_.template.includes(O.template),Y=!(_!=null&&_[(ee=E.props)==null?void 0:ee.name])||_[E.props.name].includes(O.name);return N&&Y})).map(O=>({label:l(O.title||O.name),value:O.name}))});return a.jsxs(nt.Provider,{value:{refreshRM:()=>{p.refresh()},titleField:P,targetCollection:g},children:[a.jsx(n.ResourceActionProvider,K(F({},b),{children:a.jsx(C.FormContext.Provider,{value:t,children:a.jsx(C.FieldContext.Provider,{value:o,children:a.jsx(n.SchemaComponentOptions,{components:{TitleField:nn,CollectionFieldInterfaceSelect:en,AddCollectionField:Yo,SourceCollection:Qo,TargetKey:Wo,SourceKey:Ho,FieldTitleInput:tn,EditCollectionField:Rm,Select:n.Select,FieldType:on,ForeignKey:ct,ThroughCollection:Zo},inherit:!0,scope:{useDataSource:h,useTitleFieldProps:A,handleFieldChange:d,useDestroyActionAndRefreshCM:ry,useBulkDestroyActionAndRefreshCM:ny,loadCollections:D},children:a.jsx(C.RecursionField,{schema:sy,onlyRenderProperties:!0})})})})})),a.jsx(rn,{})]})},Ao=e=>C.Schema.compile(e,{t:n.i18n.t}),iy={name:"database-"+C.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"}}]},ly=e=>({type:"object",properties:{[C.uid()]:{type:"void","x-collection":"dataSources","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:iy,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"}}}}}),at={type:"object",properties:{[C.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":"{{allowCollectionCreate}}"}}},[C.uid()]:{type:"void","x-uid":"input","x-component":"Table.Void","x-component-props":{rowKey:"name",rowSelection:{type:"checkbox"},useDataSource:"{{cm.useDataSourceFromRAC }}",useAction(){const e=n.useAPIClient(),{t}=j.useTranslation();return{move(r,s){return I(this,null,function*(){yield e.resource("dataSources").move({sourceId:r.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],r=e.form.getValuesIn(`${o}.${t}`);r&&(e.title=`${Ao(r.title||r.name)} - ${Ao('{{ 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":"{{ allowCollectionDeletion }}","x-component":"DeleteCollection","x-component-props":{role:"button","aria-label":'{{ "delete-button-" + $record.name }}',type:"primary",className:"tb-action-link"}}}}}}}}}},cy=(e,t)=>(o,r)=>{o.loading=!0,e(o,r,t).then(C.action.bound(s=>{o.dataSource=s,o.loading=!1})).catch(s=>console.log(s))},py=()=>{const[e,t]=f.useState([]);return[e,t]},uy=()=>{const e=n.useRecord(),t=C.useForm();return{run(){return I(this,null,function*(){var s,i,l;const r=(l=(i=(s=t.values)==null?void 0:s.children)==null?void 0:i.slice)==null?void 0:l.call(i);t.setValuesIn("children",r.filter(p=>p.name!==e.name))})}}},dy=()=>({run(){return I(this,null,function*(){})}}),my=e=>`${e||""}${C.uid()}`,yy=()=>{const{t:e}=j.useTranslation(),{interfaces:t}=n.useCollectionManager_deprecated(),{data:{database:o}}=n.useCurrentAppInfo(),r=n.useDataSourceManager(),s=f.useContext(n.SchemaComponentContext),{name:i}=W.useParams(),l=f.useContext(n.CollectionCategroriesContext),p=n.useAPIClient(),u=p.resource("dbViews"),c=n.useCompile(),g=()=>I(this,null,function*(){return l.data.map(h=>({label:c(h.name),value:h.id}))}),m=()=>I(this,null,function*(){return u.list().then(({data:h})=>{var b;return(b=h==null?void 0:h.data)==null?void 0:b.map(y=>{const d=y.schema;return{label:d?`${d}.${c(y.name)}`:y.name,value:d?`${d}_${y.name}`:y.name}})})}),v=()=>I(this,null,function*(){return p.resource("storages").list().then(({data:h})=>{var b;return(b=h==null?void 0:h.data)==null?void 0:b.map(y=>({label:e(c(y.title)),value:y.name}))})}),x=()=>{const h=f.useContext(n.ResourceActionContext),b=n.useAPIClient(),y=C.useField(),{name:d}=W.useParams();y.data=y.data||{};const{setDataSource:A,dataSource:D}=f.useContext(xe);return{onClick(){return I(this,null,function*(){var $,B,_;y.data.loading=!0;try{const{data:T}=yield b.request({url:`dataSources:refresh?filterByTk=${d}&clientStatus=${(D==null?void 0:D.status)||"loaded"}`,method:"post"});y.data.loading=!1,A(T==null?void 0:T.data),(($=T==null?void 0:T.data)==null?void 0:$.status)==="reloading"?S.message.warning(e("Data source synchronization in progress")):((B=T==null?void 0:T.data)==null?void 0:B.status)==="loaded"&&(S.message.success(e("Data source synchronization successful")),(_=h==null?void 0:h.refresh)==null||_.call(h)),yield r.getDataSource(d).reload()}catch(T){y.data.loading=!1}})}}},P=h=>I(this,null,function*(){const{fields:b}=h.form.values;return Promise.resolve({data:b}).then(({data:y})=>y==null?void 0:y.map(d=>{var A;return{label:c((A=d.uiSchema)==null?void 0:A.title)||d.name,value:d.name}}))}),w=f.useMemo(()=>ly(i),[i]);return a.jsx(n.SchemaComponentContext.Provider,{value:K(F({},s),{designable:!1}),children:a.jsx(n.SchemaComponent,{schema:w,components:{AddSubFieldAction:n.AddSubFieldAction,EditSubFieldAction:n.EditSubFieldAction,FieldSummary:n.FieldSummary,TemplateSummay:n.TemplateSummary,CollectionFields:So},scope:{useRefreshActionProps:x,useDestroySubField:uy,useBulkDestroySubField:dy,useSelectedRowKeys:py,useAsyncDataSource:cy,loadFilterTargetKeys:P,loadCategories:g,loadDBViews:m,loadStorages:v,useNewId:my,useCancelAction:n.useCancelAction,interfaces:t,enableInherits:(o==null?void 0:o.dialect)==="postgres",isPG:(o==null?void 0:o.dialect)==="postgres"}})})},fy=e=>{const t=ae.usePrefixCls("description-input",e),{data:{name:o,tableName:r}}=n.useCollectionRecord();return a.jsx("div",{className:n.cx(t,e.className),style:e.style,children:r&&o!==r?a.jsxs(a.Fragment,{children:[o," ",a.jsxs("span",{style:{color:"GrayText"},children:["(",r,")"]})]}):e.value})},gy=Object.assign(C.connect(S.Input,C.mapProps((e,t)=>K(F({},e),{suffix:a.jsx("span",{children:t!=null&&t.loading||t!=null&&t.validating?a.jsx(J.LoadingOutlined,{}):e.suffix})})),C.mapReadPretty(fy))),vy=({item:e})=>{const{t}=j.useTranslation(),o=n.useCompile();return a.jsxs(S.Space,{children:[a.jsx(S.Badge,{color:e.color}),t(o(e.name))]})},Cy=C.observer(e=>{const[t,o]=f.useState(null),{refresh:r}=f.useContext(n.CollectionCategroriesContext),{refresh:s}=n.useResourceActionContext(),i=n.useAPIClient(),l=g=>I(this,null,function*(){const{active:m,over:v}=g;setTimeout(()=>{o(null)}),v&&v.id!==m.id&&(yield i.resource("collectionCategories").move({sourceId:m.id,targetId:v.id}),yield r(),yield s())});function p(g){var m;o((m=g.active)==null?void 0:m.data.current)}const u=Z.useSensor(Z.MouseSensor,{activationConstraint:{distance:10}}),c=Z.useSensors(u);return a.jsxs(Z.DndContext,{sensors:c,onDragEnd:l,onDragStart:p,children:[e.children,a.jsx(Z.DragOverlay,{children:t?a.jsx("span",{style:{whiteSpace:"nowrap"},children:a.jsx(vy,{item:t})}):null})]})},{displayName:"DndProvider"}),hy=()=>{const{t:e}=j.useTranslation(),{data:t}=f.useContext(n.CollectionCategroriesContext),o=n.useCompile();if(!t)return null;const r=t.sort((i,l)=>l.sort-i.sort).concat().map(i=>K(F({},i),{schema:at}));!r.find(i=>i.id==="all")&&r.unshift({name:'{{t("All collections")}}',id:"all",sort:0,closable:!1,schema:at});const s=()=>I(this,null,function*(){return t.map(i=>({label:e(o(i.name)),value:i.id}))});return a.jsx(Cy,{children:a.jsx(S.Card,{bordered:!1,children:a.jsx(n.SchemaComponentOptions,{components:{CollectionFields:So,CollectionName:gy},inherit:!0,scope:{loadCategories:s},children:a.jsx(C.RecursionField,{schema:at,onlyRenderProperties:!0})})})})},by={type:"object",properties:{[C.uid()]:{"x-component":"ConfigurationTable"}}},xy=()=>{const e=n.usePlugin(ye),t=W.useLocation(),o=new URLSearchParams(t.search).get("type"),r=o&&e.types.get(o);return a.jsx(n.SchemaComponent,{schema:by,components:{CollectionCategroriesProvider:n.CollectionCategroriesProvider,ConfigurationTable:yy,ConfigurationTabs:hy,AddFieldAction:n.AddFieldAction,AddCollectionField:n.AddCollectionField,AddCollection:(r==null?void 0:r.AddCollection)||n.AddCollection,AddCollectionAction:n.AddCollectionAction,EditCollection:(r==null?void 0:r.EditCollection)||n.EditCollection,EditCollectionAction:n.EditCollectionAction,DeleteCollection:(r==null?void 0:r.DeleteCollection)||n.DeleteCollection,DeleteCollectionAction:n.DeleteCollectionAction,EditFieldAction:n.EditFieldAction,EditCollectionField:n.EditCollectionField,OverridingCollectionField:n.OverridingCollectionField,OverridingFieldAction:n.OverridingFieldAction,ViewCollectionField:n.ViewCollectionField,ViewFieldAction:n.ViewFieldAction,SyncFieldsAction:n.SyncFieldsAction,SyncFieldsActionCom:n.SyncFieldsActionCom,SyncSQLFieldsAction:n.SyncSQLFieldsAction},scope:{allowCollectionDeletion:!!(r!=null&&r.allowCollectionDeletion),disabledConfigureFields:r==null?void 0:r.disabledConfigureFields,disableAddFields:r==null?void 0:r.disableAddFields,allowCollectionCreate:!!(r!=null&&r.allowCollectionCreate)}})};class $o extends n.DataSource{getDataSource(){return I(this,null,function*(){return(yield this.app.apiClient.request({url:`dataSources:get/${this.key}`,params:{appends:["collections"]}})).data.data})}}const Sy=()=>{const[e,t]=f.useState({}),o=n.usePlugin(ye),r=n.useCompile(),[s,i]=f.useState(!1),{t:l}=j.useTranslation(),[p,u]=f.useState(null);n.useAPIClient();const c=g=>{const m=[...o.types.keys()].map(v=>{const x=o.types.get(v);return{value:x.name,label:r(x.label)}});g.dataSource=m};return a.jsx("div",{children:a.jsxs(n.ActionContext.Provider,{value:{visible:s,setVisible:i},children:[a.jsx(S.Dropdown,{menu:{onClick(g){if(g.key==="__empty__")return;const m=C.createForm({values:{type:g.key}}),v=o.types.get(g.key);u(g.key),i(!0),t({type:"object",properties:{[C.uid()]:{type:"void","x-component":"Action.Drawer","x-decorator":"FormV2","x-decorator-props":{form:m},title:r("{{t('Add new')}}")+" - "+r(v.label),properties:{body:{type:"void","x-component":v.DataSourceSettingsForm},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{testConnection:{title:`{{ t("Test Connection",{ ns: "${U}" }) }}`,"x-component":"Action","x-use-component-props":"useTestConnectionAction"},cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-use-component-props":"useCancelActionProps"},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-use-component-props":"useCreateDatabaseConnectionAction","x-component-props":{type:"primary"}}}}}}}})},items:[o.types.size?null:{key:"__empty__",label:a.jsx(S.Empty,{image:S.Empty.PRESENTED_IMAGE_SIMPLE,description:a.jsx(a.Fragment,{children:l("No external data source plugin installed",{ns:U})})})}].filter(Boolean).concat([...o.types.keys()].map(g=>{const m=o.types.get(g);return{key:g,label:r(m==null?void 0:m.label)}}))},children:a.jsxs(S.Button,{type:"primary",icon:a.jsx(J.PlusOutlined,{}),children:[l("Add new")," ",a.jsx(J.DownOutlined,{})]})}),a.jsx(n.SchemaComponent,{scope:{createOnly:!1,useTestConnectionAction:ke,dialect:p,useDialectDataSource:c,useCreateDatabaseConnectionAction:it,useCancelActionProps:n.useCancelActionProps},schema:e})]})})},Ay=()=>{const e=n.useCollectionRecordData(),[t,o]=f.useState({}),r=n.usePlugin(ye),s=n.useCompile(),[i,l]=f.useState(!1),{t:p}=n.useTranslation(),u=n.useDataSourceManager(),c=()=>{const g=C.useField(),m=C.useForm(),v=n.useActionContext(),{refresh:x}=n.useDataBlockRequest(),P=n.useDataBlockResource(),{key:w}=n.useCollectionRecordData();return{run(){return I(this,null,function*(){yield m.submit(),g.data=g.data||{},g.data.loading=!0;try{yield P.update({filterByTk:w,values:m.values}),v.setVisible(!1),u.getDataSource(w).setOptions(m.values),u.getDataSource(w).reload(),yield m.reset(),x()}catch(b){console.log(b)}finally{g.data.loading=!1}})}}};return a.jsx("div",{children:a.jsxs(n.ActionContext.Provider,{value:{visible:i,setVisible:l},children:[e.key!=="main"&&a.jsx("a",{onClick:()=>{l(!0);const g=C.createForm({initialValues:e}),m=r.types.get(e.type);o({type:"object",properties:{[C.uid()]:{type:"void","x-component":"Action.Drawer","x-decorator":"FormV2","x-decorator-props":{form:g},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-use-component-props":"useCancelActionProps"},testConnection:{title:`{{ t("Test Connection",{ ns: "${U}" }) }}`,"x-component":"Action","x-use-component-props":"useTestConnectionAction"},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ useUpdateAction }}"}}}}}}}})},children:p("Edit")}),a.jsx(n.SchemaComponent,{scope:{createOnly:!0,useUpdateAction:c,useTestConnectionAction:ke,useCancelActionProps:n.useCancelActionProps},schema:t})]})})},$y=({key:e,type:t})=>`/_admin/data-modeling/data-source/${e}?type=${t}`,Ty=()=>{const e=n.useRecord(),t=W.useNavigate(),{t:o}=j.useTranslation();return a.jsx("div",{className:e.enabled?void 0:n.css`
2
2
  .ant-btn-link {
3
3
  &:hover {
4
4
  color: rgba(0, 0, 0, 0.25) !important;
5
5
  }
6
6
  }
7
- `,children:a.jsx(S.Button,{type:"link",style:{padding:"0px"},disabled:!e.enabled,onClick:()=>{t(Ty(e))},role:"button","aria-label":`${e==null?void 0:e.key}-Configure`,children:o("Configure")})})},wy=()=>{const{t:e}=j.useTranslation(),t=W.useOutlet(),o=r.usePlugin(ye),n=[...o.types.keys()].map(m=>{const v=o.types.get(m);return{value:m,label:e(v==null?void 0:v.label)}}).concat([{value:"main",label:e("Main")}]),s=r.useDataSourceManager(),i=f.useRef([]);f.useEffect(()=>()=>{s.getDataSources().forEach(m=>{i.current.includes(m.key)&&m.reload()})},[i]);const l=f.useCallback(m=>{s.removeDataSources(m)},[s]),p=f.useCallback(m=>{s.addDataSource(To,m),i.current=[...i.current,m.key]},[]),u=()=>{const m=r.useDataBlockRequest();return{onClick(){return I(this,null,function*(){var P,w;const x=(P=m==null?void 0:m.data)==null?void 0:P.data.filter(h=>h.status!=="loaded");if(x!=null&&x.length){const h=s.getDataSources(),b=x.map(d=>d.key),y=h.filter(d=>b.includes(d.key));yield Promise.all(y.map(d=>d.reload()))}(w=m==null?void 0:m.refresh)==null||w.call(m)})}}},c=()=>{const{refresh:m}=r.useDataBlockRequest(),v=r.useDataBlockResource(),{key:x}=r.useCollectionRecordData();return{run(){return I(this,null,function*(){yield v.destroy({filterByTk:x}),l([x]),m()})}}},g=m=>{const{key:v}=r.useCollectionRecordData();m.visible=v!=="main"};return t||a.jsx(r.SchemaComponent,{components:{CreateDatabaseConnectAction:Ay,EditDatabaseConnectionAction:$y,ViewDatabaseConnectionAction:Fy},scope:{useNewId:m=>`${m}${C.uid()}`,types:n,useRefreshActionProps:u,useDestroyAction:c,dataSourceDeleteCallback:l,dataSourceCreateCallback:p,useIsAbleDelete:g},schema:zo})},_y=()=>{const{t:e}=Lo(),t=W.useNavigate(),{token:o}=r.useToken();return a.jsx(S.Tooltip,{title:e("Collections"),children:a.jsx(S.Button,{icon:a.jsx(J.DatabaseOutlined,{style:{color:o.colorTextHeaderMenu}}),title:e("Collections"),onClick:()=>{t("/_admin/data-modeling/collections")}})})},Py={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"}}]},Fo={type:"void",title:'{{ t("Actions") }}',"x-component":"Table.Column",properties:{actions:{type:"void","x-component":"Space","x-component-props":{split:"|"},properties:{overriding:{type:"void",title:'{{ t("Overriding") }}',"x-component":"OverridingCollectionField","x-component-props":{type:"primary",currentCollection:"{{ currentCollection }}"}},view:{type:"void",title:'{{ t("View") }}',"x-component":"ViewCollectionField","x-component-props":{type:"primary"}}}}}},Dy=r.css`
7
+ `,children:a.jsx(S.Button,{type:"link",style:{padding:"0px"},disabled:!e.enabled,onClick:()=>{t($y(e))},role:"button","aria-label":`${e==null?void 0:e.key}-Configure`,children:o("Configure")})})},Fy=()=>{const{t:e}=j.useTranslation(),t=W.useOutlet(),o=n.usePlugin(ye),r=[...o.types.keys()].map(m=>{const v=o.types.get(m);return{value:m,label:e(v==null?void 0:v.label)}}).concat([{value:"main",label:e("Main")}]),s=n.useDataSourceManager(),i=f.useRef([]);f.useEffect(()=>()=>{s.getDataSources().forEach(m=>{i.current.includes(m.key)&&m.reload()})},[i]);const l=f.useCallback(m=>{s.removeDataSources(m)},[s]),p=f.useCallback(m=>{s.addDataSource($o,m),i.current=[...i.current,m.key]},[]),u=()=>{const m=n.useDataBlockRequest();return{onClick(){return I(this,null,function*(){var P,w;const x=(P=m==null?void 0:m.data)==null?void 0:P.data.filter(h=>h.status!=="loaded");if(x!=null&&x.length){const h=s.getDataSources(),b=x.map(d=>d.key),y=h.filter(d=>b.includes(d.key));yield Promise.all(y.map(d=>d.reload()))}(w=m==null?void 0:m.refresh)==null||w.call(m)})}}},c=()=>{const{refresh:m}=n.useDataBlockRequest(),v=n.useDataBlockResource(),{key:x}=n.useCollectionRecordData();return{run(){return I(this,null,function*(){yield v.destroy({filterByTk:x}),l([x]),m()})}}},g=m=>{const{key:v}=n.useCollectionRecordData();m.visible=v!=="main"};return t||a.jsx(n.SchemaComponent,{components:{CreateDatabaseConnectAction:Sy,EditDatabaseConnectionAction:Ay,ViewDatabaseConnectionAction:Ty},scope:{useNewId:m=>`${m}${C.uid()}`,types:r,useRefreshActionProps:u,useDestroyAction:c,dataSourceDeleteCallback:l,dataSourceCreateCallback:p,useIsAbleDelete:g},schema:Uo})},wy=()=>{const{t:e}=No(),t=W.useNavigate(),{token:o}=n.useToken();return a.jsx(S.Tooltip,{title:e("Collections"),children:a.jsx(S.Button,{icon:a.jsx(J.DatabaseOutlined,{style:{color:o.colorTextHeaderMenu}}),title:e("Collections"),onClick:()=>{t("/_admin/data-modeling/collections")}})})},_y={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"}}]},To={type:"void",title:'{{ t("Actions") }}',"x-component":"Table.Column",properties:{actions:{type:"void","x-component":"Space","x-component-props":{split:"|"},properties:{overriding:{type:"void",title:'{{ t("Overriding") }}',"x-component":"OverridingCollectionField","x-component-props":{type:"primary",currentCollection:"{{ currentCollection }}"}},view:{type:"void",title:'{{ t("View") }}',"x-component":"ViewCollectionField","x-component-props":{type:"primary"}}}}}},Py=n.css`
8
8
  .ant-table {
9
9
  margin-left: -16px !important;
10
10
  }
11
- `,Iy=r.css`
11
+ `,Dy=n.css`
12
12
  tr {
13
13
  display: flex;
14
14
  }
@@ -29,23 +29,23 @@
29
29
  min-width: 50px;
30
30
  flex: 0;
31
31
  }
32
- `,wo="Default title for each record",Oy=e=>{const t=r.useCompile(),{getInterface:o}=r.useCollectionManager_deprecated(),{t:n}=j.useTranslation(),{setState:s}=r.useResourceActionContext(),{resource:i,targetKey:l}=e.collectionResource||{},p=r.useRecord(),[u,c]=f.useState(null),{refreshCM:g,isTitleField:m,getTemplate:v}=r.useCollectionManager_deprecated(),{[l]:x,titleField:P,template:w}=p,h=v(w),b=[{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 d;return a.jsx(S.Tag,{children:t((d=o(y))==null?void 0:d.title)})}},{dataIndex:"titleField",title:n("Title field"),render:function(d,A){const D=E=>{c(A),i.update({filterByTk:x,values:{titleField:E?A.name:"id"}}).then(()=>I(this,null,function*(){yield e.refreshAsync(),c(null),g()})).catch($=>{c(null),console.error($)})};return m(A)?a.jsx(S.Tooltip,{title:n(wo),placement:"right",overlayInnerStyle:{textAlign:"center"},children:a.jsx(S.Switch,{"aria-label":`switch-title-field-${A.name}`,size:"small",loading:A.name===(u==null?void 0:u.name),checked:A.name===(P||"id"),onChange:D})}):null}},{dataIndex:"description",title:n("Descriptio "),render:y=>a.jsx(r.Input.ReadPretty,{value:y,ellipsis:!0})},{dataIndex:"actions",title:n("Actions"),render:(y,d)=>{const A={confirm:{title:n("Delete record"),content:n("Are you sure you want to delete it?")},useAction:r.useDestroyActionAndRefreshCM,disabled:r.isDeleteButtonDisabled(d)||(h==null?void 0:h.forbidDeletion),title:n("Delete")};return a.jsx(r.RecordProvider,{record:d,parent:p,children:a.jsxs(S.Space,{children:[a.jsx(r.EditCollectionField,{role:"button","aria-label":`edit-button-${d.name}`,type:"primary"}),a.jsx(r.Action.Link,F({},A))]})})}}];return a.jsx(S.Table,{rowKey:"name",columns:b,showHeader:!1,pagination:!1,dataSource:e.fields,rowSelection:{type:"checkbox",getCheckboxProps(y){return{"aria-label":`checkbox-${y.name}`}},onChange:y=>{s(d=>K(F({},d),{selectedRowKeys:y}))}},className:Dy})},Ey=e=>{const t=r.useCompile(),{getInterface:o}=r.useCollectionManager_deprecated(),{resource:n,targetKey:s}=e.collectionResource||{},i=r.useRecord(),[l,p]=f.useState(null),{t:u}=j.useTranslation(),{refreshCM:c,isTitleField:g}=r.useCollectionManager_deprecated(),{[s]:m,titleField:v,name:x}=i,P=[{dataIndex:["uiSchema","rawTitle"],title:u("Field display name"),render:w=>a.jsx("div",{style:{marginLeft:1},children:t(w)})},{dataIndex:"name",title:u("Field name")},{dataIndex:"interface",title:u("Field interface"),render:w=>{var h;return a.jsx(S.Tag,{children:t((h=o(w))==null?void 0:h.title)})}},{dataIndex:"titleField",title:u("Title field"),render(w,h){const b=y=>{p(h),n.update({filterByTk:m,values:{titleField:y?h.name:"id"}}).then(()=>I(this,null,function*(){yield e.refreshAsync(),p(null),c()})).catch(d=>{p(null),console.error(d)})};return g(h)?a.jsx(S.Tooltip,{title:u(wo),placement:"right",overlayInnerStyle:{textAlign:"center"},children:a.jsx(S.Switch,{size:"small",loading:h.name===(l==null?void 0:l.name),checked:h.name===(v||"id"),onChange:b})}):null}},{dataIndex:"actions",title:u("Actions"),render:function(h,b){const y={type:"primary",currentCollection:x},d={type:"primary"};return a.jsx(r.RecordProvider,{record:b,parent:i,children:a.jsxs(S.Space,{children:[a.jsx(r.OverridingCollectionField,F({},y)),a.jsx(r.ViewCollectionField,F({},d))]})})}}];return a.jsx(S.Table,{rowKey:"name",columns:P,showHeader:!1,pagination:!1,dataSource:e.fields.filter(w=>w.interface)})},_o=()=>{const e=r.useCompile(),t=C.useField(),{name:o,template:n}=r.useRecord(),{data:{database:s}}=r.useCurrentAppInfo(),{getInterface:i,getInheritCollections:l,getCollection:p,getCurrentCollectionFields:u,getTemplate:c}=r.useCollectionManager_deprecated(),g=f.useMemo(()=>C.createForm(),[]),m=r.useAttach(g.createArrayField(K(F({},t.props),{basePath:""}))),{t:v}=j.useTranslation(),x=r.useResourceContext(),{refreshAsync:P}=f.useContext(r.ResourceActionContext),w=c(n),h=l(o),b=[{dataIndex:"title",title:v("Field display name"),render:_=>a.jsx("div",{className:r.css`
32
+ `,Fo="Default title for each record",Iy=e=>{const t=n.useCompile(),{getInterface:o}=n.useCollectionManager_deprecated(),{t:r}=j.useTranslation(),{setState:s}=n.useResourceActionContext(),{resource:i,targetKey:l}=e.collectionResource||{},p=n.useRecord(),[u,c]=f.useState(null),{refreshCM:g,isTitleField:m,getTemplate:v}=n.useCollectionManager_deprecated(),{[l]:x,titleField:P,template:w}=p,h=v(w),b=[{dataIndex:["uiSchema","rawTitle"],title:r("Field display name"),render:y=>a.jsx("div",{style:{marginLeft:7},children:t(y)})},{dataIndex:"name",title:r("Field name")},{dataIndex:"interface",title:r("Field interface"),render:y=>{var d;return a.jsx(S.Tag,{children:t((d=o(y))==null?void 0:d.title)})}},{dataIndex:"titleField",title:r("Title field"),render:function(d,A){const D=E=>{c(A),i.update({filterByTk:x,values:{titleField:E?A.name:"id"}}).then(()=>I(this,null,function*(){yield e.refreshAsync(),c(null),g()})).catch($=>{c(null),console.error($)})};return m(A)?a.jsx(S.Tooltip,{title:r(Fo),placement:"right",overlayInnerStyle:{textAlign:"center"},children:a.jsx(S.Switch,{"aria-label":`switch-title-field-${A.name}`,size:"small",loading:A.name===(u==null?void 0:u.name),checked:A.name===(P||"id"),onChange:D})}):null}},{dataIndex:"description",title:r("Descriptio "),render:y=>a.jsx(n.Input.ReadPretty,{value:y,ellipsis:!0})},{dataIndex:"actions",title:r("Actions"),render:(y,d)=>{const A={confirm:{title:r("Delete record"),content:r("Are you sure you want to delete it?")},useAction:n.useDestroyActionAndRefreshCM,disabled:n.isDeleteButtonDisabled(d)||(h==null?void 0:h.forbidDeletion),title:r("Delete")};return a.jsx(n.RecordProvider,{record:d,parent:p,children:a.jsxs(S.Space,{children:[a.jsx(n.EditCollectionField,{role:"button","aria-label":`edit-button-${d.name}`,type:"primary"}),a.jsx(n.Action.Link,F({},A))]})})}}];return a.jsx(S.Table,{rowKey:"name",columns:b,showHeader:!1,pagination:!1,dataSource:e.fields,rowSelection:{type:"checkbox",getCheckboxProps(y){return{"aria-label":`checkbox-${y.name}`}},onChange:y=>{s(d=>K(F({},d),{selectedRowKeys:y}))}},className:Py})},Oy=e=>{const t=n.useCompile(),{getInterface:o}=n.useCollectionManager_deprecated(),{resource:r,targetKey:s}=e.collectionResource||{},i=n.useRecord(),[l,p]=f.useState(null),{t:u}=j.useTranslation(),{refreshCM:c,isTitleField:g}=n.useCollectionManager_deprecated(),{[s]:m,titleField:v,name:x}=i,P=[{dataIndex:["uiSchema","rawTitle"],title:u("Field display name"),render:w=>a.jsx("div",{style:{marginLeft:1},children:t(w)})},{dataIndex:"name",title:u("Field name")},{dataIndex:"interface",title:u("Field interface"),render:w=>{var h;return a.jsx(S.Tag,{children:t((h=o(w))==null?void 0:h.title)})}},{dataIndex:"titleField",title:u("Title field"),render(w,h){const b=y=>{p(h),r.update({filterByTk:m,values:{titleField:y?h.name:"id"}}).then(()=>I(this,null,function*(){yield e.refreshAsync(),p(null),c()})).catch(d=>{p(null),console.error(d)})};return g(h)?a.jsx(S.Tooltip,{title:u(Fo),placement:"right",overlayInnerStyle:{textAlign:"center"},children:a.jsx(S.Switch,{size:"small",loading:h.name===(l==null?void 0:l.name),checked:h.name===(v||"id"),onChange:b})}):null}},{dataIndex:"actions",title:u("Actions"),render:function(h,b){const y={type:"primary",currentCollection:x},d={type:"primary"};return a.jsx(n.RecordProvider,{record:b,parent:i,children:a.jsxs(S.Space,{children:[a.jsx(n.OverridingCollectionField,F({},y)),a.jsx(n.ViewCollectionField,F({},d))]})})}}];return a.jsx(S.Table,{rowKey:"name",columns:P,showHeader:!1,pagination:!1,dataSource:e.fields.filter(w=>w.interface)})},wo=()=>{const e=n.useCompile(),t=C.useField(),{name:o,template:r}=n.useRecord(),{data:{database:s}}=n.useCurrentAppInfo(),{getInterface:i,getInheritCollections:l,getCollection:p,getCurrentCollectionFields:u,getTemplate:c}=n.useCollectionManager_deprecated(),g=f.useMemo(()=>C.createForm(),[]),m=n.useAttach(g.createArrayField(K(F({},t.props),{basePath:""}))),{t:v}=j.useTranslation(),x=n.useResourceContext(),{refreshAsync:P}=f.useContext(n.ResourceActionContext),w=c(r),h=l(o),b=[{dataIndex:"title",title:v("Field display name"),render:_=>a.jsx("div",{className:n.css`
33
33
  font-weight: 500;
34
- `,children:_})},{dataIndex:"name",title:v("Field name")},{dataIndex:"interface",title:v("Field interface")},{dataIndex:"titleField",title:v("Title field")},{dataIndex:"description",title:v("Description")},{dataIndex:"actions",title:v("Actions")}],y=u(o),d={pf:[],association:[],general:[],system:[]};y.forEach(_=>{if(_.primaryKey||_.isForeignKey)d.pf.push(_);else if(_.interface){const T=i(_.interface);(T==null?void 0:T.group)==="systemInfo"?d.system.push(_):(T==null?void 0:T.group)==="relation"?d.association.push(_):d.general.push(_)}});const A=[{key:"pf",title:v("PK & FK fields"),fields:d.pf},{key:"association",title:v("Association fields"),fields:d.association},{key:"general",title:v("General fields"),fields:d.general},{key:"system",title:v("System fields"),fields:d.system}];A.push(...h.map(_=>{const T=p(_);if(T)return{key:_,title:`${v("Inherited fields")} - `+e(T==null?void 0:T.title),inherit:!0,fields:(T==null?void 0:T.fields)||[]}}).filter(Boolean));const D={association:{sourceKey:"name",targetKey:"name"},collection:Py,request:{resource:"collections.fields",action:"list",params:{paginate:!1,filter:{$or:[{"interface.$not":null},{"options.source.$notEmpty":!0}]},sort:["sort"]}}},E=f.useMemo(()=>({useAction:r.useBulkDestroyActionAndRefreshCM,title:v("Delete"),icon:"DeleteOutlined",disabled:w==null?void 0:w.forbidDeletion,confirm:{title:v("Delete record"),content:v("Are you sure you want to delete it?")}}),[v]),$={type:"primary",database:s},B={type:"primary"};return a.jsx(r.ResourceActionProvider,K(F({},D),{children:a.jsx(C.FormContext.Provider,{value:g,children:a.jsxs(C.FieldContext.Provider,{value:m,children:[a.jsxs(S.Space,{align:"end",className:r.css`
34
+ `,children:_})},{dataIndex:"name",title:v("Field name")},{dataIndex:"interface",title:v("Field interface")},{dataIndex:"titleField",title:v("Title field")},{dataIndex:"description",title:v("Description")},{dataIndex:"actions",title:v("Actions")}],y=u(o),d={pf:[],association:[],general:[],system:[]};y.forEach(_=>{if(_.primaryKey||_.isForeignKey)d.pf.push(_);else if(_.interface){const T=i(_.interface);(T==null?void 0:T.group)==="systemInfo"?d.system.push(_):(T==null?void 0:T.group)==="relation"?d.association.push(_):d.general.push(_)}});const A=[{key:"pf",title:v("PK & FK fields"),fields:d.pf},{key:"association",title:v("Association fields"),fields:d.association},{key:"general",title:v("General fields"),fields:d.general},{key:"system",title:v("System fields"),fields:d.system}];A.push(...h.map(_=>{const T=p(_);if(T)return{key:_,title:`${v("Inherited fields")} - `+e(T==null?void 0:T.title),inherit:!0,fields:(T==null?void 0:T.fields)||[]}}).filter(Boolean));const D={association:{sourceKey:"name",targetKey:"name"},collection:_y,request:{resource:"collections.fields",action:"list",params:{paginate:!1,filter:{$or:[{"interface.$not":null},{"options.source.$notEmpty":!0}]},sort:["sort"]}}},E=f.useMemo(()=>({useAction:n.useBulkDestroyActionAndRefreshCM,title:v("Delete"),icon:"DeleteOutlined",disabled:w==null?void 0:w.forbidDeletion,confirm:{title:v("Delete record"),content:v("Are you sure you want to delete it?")}}),[v]),$={type:"primary",database:s},B={type:"primary"};return a.jsx(n.ResourceActionProvider,K(F({},D),{children:a.jsx(C.FormContext.Provider,{value:g,children:a.jsxs(C.FieldContext.Provider,{value:m,children:[a.jsxs(S.Space,{align:"end",className:n.css`
35
35
  justify-content: flex-end;
36
36
  display: flex;
37
37
  margin-bottom: 16px;
38
- `,children:[a.jsx(r.Action,F({},E)),a.jsx(r.SyncFieldsAction,F({},B)),a.jsx(r.SyncSQLFieldsAction,{refreshCMList:P}),a.jsx(r.SchemaComponent,{schema:{type:"object",properties:F({},w.configureActions)}}),a.jsx(r.AddCollectionField,F({},$))]}),a.jsx(S.Table,{rowKey:"key",columns:b,dataSource:A.filter(_=>_.fields.length),pagination:!1,className:Iy,expandable:{defaultExpandAllRows:!0,defaultExpandedRowKeys:A.map(_=>_.key),expandedRowRender:_=>_.inherit?a.jsx(Ey,{fields:_.fields,collectionResource:x,refreshAsync:P}):a.jsx(Oy,{fields:_.fields,collectionResource:x,refreshAsync:P})}})]})})}))};var Po={exports:{}};(function(e,t){(function(o,n){n()})(R,function(){function o(c,g){return typeof g=="undefined"?g={autoBom:!1}:typeof g!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),g={autoBom:!g}),g.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(c.type)?new Blob(["\uFEFF",c],{type:c.type}):c}function n(c,g,m){var v=new XMLHttpRequest;v.open("GET",c),v.responseType="blob",v.onload=function(){u(v.response,g,m)},v.onerror=function(){console.error("could not download file")},v.send()}function s(c){var g=new XMLHttpRequest;g.open("HEAD",c,!1);try{g.send()}catch(m){}return 200<=g.status&&299>=g.status}function i(c){try{c.dispatchEvent(new MouseEvent("click"))}catch(m){var g=document.createEvent("MouseEvents");g.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),c.dispatchEvent(g)}}var l=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof R=="object"&&R.global===R?R:void 0,p=l.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),u=l.saveAs||(typeof window!="object"||window!==l?function(){}:"download"in HTMLAnchorElement.prototype&&!p?function(c,g,m){var v=l.URL||l.webkitURL,x=document.createElement("a");g=g||c.name||"download",x.download=g,x.rel="noopener",typeof c=="string"?(x.href=c,x.origin===location.origin?i(x):s(x.href)?n(c,g,m):i(x,x.target="_blank")):(x.href=v.createObjectURL(c),setTimeout(function(){v.revokeObjectURL(x.href)},4e4),setTimeout(function(){i(x)},0))}:"msSaveOrOpenBlob"in navigator?function(c,g,m){if(g=g||c.name||"download",typeof c!="string")navigator.msSaveOrOpenBlob(o(c,m),g);else if(s(c))n(c,g,m);else{var v=document.createElement("a");v.href=c,v.target="_blank",setTimeout(function(){i(v)})}}:function(c,g,m,v){if(v=v||open("","_blank"),v&&(v.document.title=v.document.body.innerText="downloading..."),typeof c=="string")return n(c,g,m);var x=c.type==="application/octet-stream",P=/constructor/i.test(l.HTMLElement)||l.safari,w=/CriOS\/[\d]+/.test(navigator.userAgent);if((w||x&&P||p)&&typeof FileReader!="undefined"){var h=new FileReader;h.onloadend=function(){var d=h.result;d=w?d:d.replace(/^data:[^;]*;/,"data:attachment/file;"),v?v.location.href=d:location=d,v=null},h.readAsDataURL(c)}else{var b=l.URL||l.webkitURL,y=b.createObjectURL(c);v?v.location=y:location.href=y,v=null,setTimeout(function(){b.revokeObjectURL(y)},4e4)}});l.saveAs=u.saveAs=u,e.exports=u})})(Po);var ky=Po.exports;const Do=e=>C.Schema.compile(e,{t:r.i18n.t}),My={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"}}}}},Io={type:"object",properties:{[C.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"}}}},[C.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}=j.useTranslation();return{move(n,s){return I(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=`${Do(n.title)} - ${Do('{{ 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"}},export:{type:"void",title:'{{ t("Export") }}',"x-component":"Action.Link","x-component-props":{useAction(){const{resource:e,targetKey:t}=r.useResourceContext(),{[t]:o}=r.useRecord();return{run(){return I(this,null,function*(){const{data:s}=yield e.exportMeta({collectionName:o},{method:"get"}),i=new Blob([JSON.stringify(s.data,null,2)],{type:"application/json"});ky.saveAs(i,`${o}.json`)})}}}}},delete:{type:"void",title:'{{ t("Delete") }}',"x-component":"DeleteCollection","x-component-props":{role:"button","aria-label":'{{ "delete-button-" + $record.name }}',type:"primary",className:"tb-action-link"}}}}}}}}}},jy={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"}}}}}}}}},Ky={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"}}}}}}}}},By=(e,t)=>(o,n)=>{o.loading=!0,e(o,n,t).then(C.action.bound(s=>{o.dataSource=s,o.loading=!1})).catch(console.error)},Vy=()=>{const[e,t]=f.useState([]);return[e,t]},Ny=()=>{const e=r.useRecord(),t=C.useForm();return{run(){return I(this,null,function*(){var s,i,l;const n=(l=(i=(s=t.values)==null?void 0:s.children)==null?void 0:i.slice)==null?void 0:l.call(i);t.setValuesIn("children",n.filter(p=>p.name!==e.name))})}}},Ly=()=>({run(){return I(this,null,function*(){})}}),qy=()=>{const e=r.useRecord(),{getCollectionFields:t}=r.useCollectionManager_deprecated();return e.__parent&&e.__parent.interface==="subTable"?f.useContext(r.DataSourceContext_deprecated).dataSource:t(e.collectionName||e.name)},Gy=e=>`${e||""}${C.uid()}`,Uy=()=>{const{t:e}=j.useTranslation(),{interfaces:t,getCollections:o,getCollection:n}=r.useCollectionManager_deprecated(),{data:{database:s}}=r.useCurrentAppInfo(),i=f.useContext(r.CollectionCategroriesContext),l=r.useAPIClient(),p=l.resource("dbViews"),u=r.useCompile(),c=r.useApp(),g=(h,b,y)=>I(this,null,function*(){var E;const{targetScope:d}=b,A=((E=h.props)==null?void 0:E.name)==="inherits";return o().filter($=>{var M;if(y!=null&&y.includes($.template)||$.autoCreate&&$.isThrough||A&&$.template==="view")return!1;const _=!(d!=null&&d.template)||d.template.includes($.template),T=!(d!=null&&d[(M=h.props)==null?void 0:M.name])||d[h.props.name].includes($.name);return _&&T}).map($=>({label:u($.title),value:$.name}))}),m=()=>I(this,null,function*(){return i.data.map(h=>({label:u(h.name),value:h.id}))}),v=()=>I(this,null,function*(){return p.list().then(({data:h})=>{var b;return(b=h==null?void 0:h.data)==null?void 0:b.map(y=>{const d=y.schema;return{label:d?`${d}.${u(y.name)}`:y.name,value:d?`${d}_${y.name}`:y.name}})})}),x=h=>I(this,null,function*(){const{name:b,fields:y}=h.form.values,{fields:d}=n(b)||{};return Promise.resolve({data:d||y}).then(({data:A})=>{var D;return(D=A.filter(E=>E.interface?!!c.dataSourceManager.collectionFieldInterfaceManager.getFieldInterface(E.interface).titleUsable:!1))==null?void 0:D.map(E=>{var $;return{label:u(($=E.uiSchema)==null?void 0:$.title)||E.name,value:E.name}})})}),P=()=>I(this,null,function*(){return l.resource("storages").list().then(({data:h})=>{var b;return(b=h==null?void 0:h.data)==null?void 0:b.map(y=>({label:e(u(y.title)),value:y.name}))})}),w=f.useContext(r.SchemaComponentContext);return a.jsx(r.SchemaComponentContext.Provider,{value:K(F({},w),{designable:!1}),children:a.jsx(r.SchemaComponent,{schema:My,components:{AddSubFieldAction:r.AddSubFieldAction,EditSubFieldAction:r.EditSubFieldAction,FieldSummary:r.FieldSummary,TemplateSummay:r.TemplateSummary,CollectionFieldsTable:ef,CollectionFields:_o},scope:{loadFilterTargetKeys:x,useDestroySubField:Ny,useBulkDestroySubField:Ly,useSelectedRowKeys:Vy,useAsyncDataSource:By,loadCollections:g,loadCategories:m,loadDBViews:v,loadStorages:P,useCurrentFields:qy,useNewId:Gy,useCancelAction:r.useCancelAction,interfaces:t,enableInherits:(s==null?void 0:s.dialect)==="postgres",isPG:(s==null?void 0:s.dialect)==="postgres"}})})},zy=e=>{var t;return((t=e["x-component"])==null?void 0:t.endsWith(".Column"))>-1},Hy={body:{row:e=>a.jsx("tr",F({},e)),cell:e=>a.jsx("td",K(F({},e),{className:r.cx(e.className,r.css`
38
+ `,children:[a.jsx(n.Action,F({},E)),a.jsx(n.SyncFieldsAction,F({},B)),a.jsx(n.SyncSQLFieldsAction,{refreshCMList:P}),a.jsx(n.SchemaComponent,{schema:{type:"object",properties:F({},w.configureActions)}}),a.jsx(n.AddCollectionField,F({},$))]}),a.jsx(S.Table,{rowKey:"key",columns:b,dataSource:A.filter(_=>_.fields.length),pagination:!1,className:Dy,expandable:{defaultExpandAllRows:!0,defaultExpandedRowKeys:A.map(_=>_.key),expandedRowRender:_=>_.inherit?a.jsx(Oy,{fields:_.fields,collectionResource:x,refreshAsync:P}):a.jsx(Iy,{fields:_.fields,collectionResource:x,refreshAsync:P})}})]})})}))};var _o={exports:{}};(function(e,t){(function(o,r){r()})(R,function(){function o(c,g){return typeof g=="undefined"?g={autoBom:!1}:typeof g!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),g={autoBom:!g}),g.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(c.type)?new Blob(["\uFEFF",c],{type:c.type}):c}function r(c,g,m){var v=new XMLHttpRequest;v.open("GET",c),v.responseType="blob",v.onload=function(){u(v.response,g,m)},v.onerror=function(){console.error("could not download file")},v.send()}function s(c){var g=new XMLHttpRequest;g.open("HEAD",c,!1);try{g.send()}catch(m){}return 200<=g.status&&299>=g.status}function i(c){try{c.dispatchEvent(new MouseEvent("click"))}catch(m){var g=document.createEvent("MouseEvents");g.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),c.dispatchEvent(g)}}var l=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof R=="object"&&R.global===R?R:void 0,p=l.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),u=l.saveAs||(typeof window!="object"||window!==l?function(){}:"download"in HTMLAnchorElement.prototype&&!p?function(c,g,m){var v=l.URL||l.webkitURL,x=document.createElement("a");g=g||c.name||"download",x.download=g,x.rel="noopener",typeof c=="string"?(x.href=c,x.origin===location.origin?i(x):s(x.href)?r(c,g,m):i(x,x.target="_blank")):(x.href=v.createObjectURL(c),setTimeout(function(){v.revokeObjectURL(x.href)},4e4),setTimeout(function(){i(x)},0))}:"msSaveOrOpenBlob"in navigator?function(c,g,m){if(g=g||c.name||"download",typeof c!="string")navigator.msSaveOrOpenBlob(o(c,m),g);else if(s(c))r(c,g,m);else{var v=document.createElement("a");v.href=c,v.target="_blank",setTimeout(function(){i(v)})}}:function(c,g,m,v){if(v=v||open("","_blank"),v&&(v.document.title=v.document.body.innerText="downloading..."),typeof c=="string")return r(c,g,m);var x=c.type==="application/octet-stream",P=/constructor/i.test(l.HTMLElement)||l.safari,w=/CriOS\/[\d]+/.test(navigator.userAgent);if((w||x&&P||p)&&typeof FileReader!="undefined"){var h=new FileReader;h.onloadend=function(){var d=h.result;d=w?d:d.replace(/^data:[^;]*;/,"data:attachment/file;"),v?v.location.href=d:location=d,v=null},h.readAsDataURL(c)}else{var b=l.URL||l.webkitURL,y=b.createObjectURL(c);v?v.location=y:location.href=y,v=null,setTimeout(function(){b.revokeObjectURL(y)},4e4)}});l.saveAs=u.saveAs=u,e.exports=u})})(_o);var Ey=_o.exports;const Po=e=>C.Schema.compile(e,{t:n.i18n.t}),ky={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"}}}}},Do={type:"object",properties:{[C.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"}}}},[C.uid()]:{type:"void","x-uid":"input","x-component":"Table.Void","x-component-props":{rowKey:"name",rowSelection:{type:"checkbox"},useDataSource:"{{ cm.useDataSourceFromRAC }}",useAction(){const e=n.useAPIClient(),{t}=j.useTranslation();return{move(r,s){return I(this,null,function*(){yield e.resource("collections").move({sourceId:r.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":n.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":n.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],r=e.form.getValuesIn(`${o}.${t}`);r&&(e.title=`${Po(r.title)} - ${Po('{{ 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"}},export:{type:"void",title:'{{ t("Export") }}',"x-component":"Action.Link","x-component-props":{useAction(){const{resource:e,targetKey:t}=n.useResourceContext(),{[t]:o}=n.useRecord();return{run(){return I(this,null,function*(){const{data:s}=yield e.exportMeta({collectionName:o},{method:"get"}),i=new Blob([JSON.stringify(s.data,null,2)],{type:"application/json"});Ey.saveAs(i,`${o}.json`)})}}}}},delete:{type:"void",title:'{{ t("Delete") }}',"x-component":"DeleteCollection","x-component-props":{role:"button","aria-label":'{{ "delete-button-" + $record.name }}',type:"primary",className:"tb-action-link"}}}}}}}}}},My={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"}}}}}}}}},Ky=(e,t)=>(o,r)=>{o.loading=!0,e(o,r,t).then(C.action.bound(s=>{o.dataSource=s,o.loading=!1})).catch(console.error)},By=()=>{const[e,t]=f.useState([]);return[e,t]},Vy=()=>{const e=n.useRecord(),t=C.useForm();return{run(){return I(this,null,function*(){var s,i,l;const r=(l=(i=(s=t.values)==null?void 0:s.children)==null?void 0:i.slice)==null?void 0:l.call(i);t.setValuesIn("children",r.filter(p=>p.name!==e.name))})}}},Ny=()=>({run(){return I(this,null,function*(){})}}),Ly=()=>{const e=n.useRecord(),{getCollectionFields:t}=n.useCollectionManager_deprecated();return e.__parent&&e.__parent.interface==="subTable"?f.useContext(n.DataSourceContext_deprecated).dataSource:t(e.collectionName||e.name)},qy=e=>`${e||""}${C.uid()}`,Gy=()=>{const{t:e}=j.useTranslation(),{interfaces:t,getCollections:o,getCollection:r}=n.useCollectionManager_deprecated(),{data:{database:s}}=n.useCurrentAppInfo(),i=f.useContext(n.CollectionCategroriesContext),l=n.useAPIClient(),p=l.resource("dbViews"),u=n.useCompile(),c=n.useApp(),g=(h,b,y)=>I(this,null,function*(){var E;const{targetScope:d}=b,A=((E=h.props)==null?void 0:E.name)==="inherits";return o().filter($=>{var k;if(y!=null&&y.includes($.template)||$.autoCreate&&$.isThrough||A&&$.template==="view")return!1;const _=!(d!=null&&d.template)||d.template.includes($.template),T=!(d!=null&&d[(k=h.props)==null?void 0:k.name])||d[h.props.name].includes($.name);return _&&T}).map($=>({label:u($.title),value:$.name}))}),m=()=>I(this,null,function*(){return i.data.map(h=>({label:u(h.name),value:h.id}))}),v=()=>I(this,null,function*(){return p.list().then(({data:h})=>{var b;return(b=h==null?void 0:h.data)==null?void 0:b.map(y=>{const d=y.schema;return{label:d?`${d}.${u(y.name)}`:y.name,value:d?`${d}_${y.name}`:y.name}})})}),x=h=>I(this,null,function*(){const{name:b,fields:y}=h.form.values,{fields:d}=r(b)||{};return Promise.resolve({data:d||y}).then(({data:A})=>{var D;return(D=A.filter(E=>E.interface?!!c.dataSourceManager.collectionFieldInterfaceManager.getFieldInterface(E.interface).titleUsable:!1))==null?void 0:D.map(E=>{var $;return{label:u(($=E.uiSchema)==null?void 0:$.title)||E.name,value:E.name}})})}),P=()=>I(this,null,function*(){return l.resource("storages").list().then(({data:h})=>{var b;return(b=h==null?void 0:h.data)==null?void 0:b.map(y=>({label:e(u(y.title)),value:y.name}))})}),w=f.useContext(n.SchemaComponentContext);return a.jsx(n.SchemaComponentContext.Provider,{value:K(F({},w),{designable:!1}),children:a.jsx(n.SchemaComponent,{schema:ky,components:{AddSubFieldAction:n.AddSubFieldAction,EditSubFieldAction:n.EditSubFieldAction,FieldSummary:n.FieldSummary,TemplateSummay:n.TemplateSummary,CollectionFieldsTable:Ry,CollectionFields:wo},scope:{loadFilterTargetKeys:x,useDestroySubField:Vy,useBulkDestroySubField:Ny,useSelectedRowKeys:By,useAsyncDataSource:Ky,loadCollections:g,loadCategories:m,loadDBViews:v,loadStorages:P,useCurrentFields:Ly,useNewId:qy,useCancelAction:n.useCancelAction,interfaces:t,enableInherits:(s==null?void 0:s.dialect)==="postgres",isPG:(s==null?void 0:s.dialect)==="postgres"}})})},Uy=e=>{var t;return((t=e["x-component"])==null?void 0:t.endsWith(".Column"))>-1},zy={body:{row:e=>a.jsx("tr",F({},e)),cell:e=>a.jsx("td",K(F({},e),{className:n.cx(e.className,n.css`
39
39
  max-width: 300px;
40
40
  overflow: hidden;
41
41
  text-overflow: ellipsis;
42
42
  white-space: nowrap;
43
- `)}))}},Wy=()=>{const[e,t]=f.useState([]);return[e,t]},Qy=(e,t)=>{const o=C.useField();return r.useRequest(()=>Promise.resolve({data:o.value}),e)},Zy=[{dataIndex:"name",key:"name"}],Jy=new Map([["primaryAndForeignKey","PK & FK fields"],["relation","Association fields"],["systemInfo","System fields"],["basic","General fields"]]),Xy=C.observer(e=>{const t=["primaryAndForeignKey","relation","basic","systemInfo"],o=C.useField(),n=r.useRecord(),{name:s}=n,{t:i}=j.useTranslation(),l=r.useCompile(),{getInterface:p,getInheritCollections:u,getCollection:c,getCurrentCollectionFields:g,getInheritedFields:m}=r.useCollectionManager_deprecated(),T=e,{showIndex:v=!0,useSelectedRowKeys:x=Wy,useDataSource:P=Qy,onChange:w}=T,h=Ee(T,["showIndex","useSelectedRowKeys","useDataSource","onChange"]),[b,y]=x(),[d,A]=f.useState([]),[D,E]=f.useState(b),$=u(s);P({onSuccess(M){o.value=(M==null?void 0:M.data)||[];const V=[],H=new Map,G=(O,z)=>{let N=H.get(O);N||(N=[]),N.push(z),H.set(O,N)};o.value.forEach(O=>{const z=p(O==null?void 0:O.interface);if(O!=null&&O.primaryKey||O.isForeignKey){G("primaryAndForeignKey",O);return}const N=z==null?void 0:z.group;switch(N){case"systemInfo":case"relation":G(N,O);break;default:G("basic",O)}}),$&&$.forEach(O=>{t.push(O),c(O).fields.map(N=>{N.interface&&(G(O,new Proxy(N,{})),o.value.push(new Proxy(N,{})))})}),t.forEach(O=>{var z;if(((z=H.get(O))==null?void 0:z.length)>0){const N=c(O);V.push({key:O,name:i(Jy.get(O))||i("Parent collection fields")+`(${l(N.title)})`,data:H.get(O)})}}),E(t),A(V)}});const B=()=>{const M=C.useFieldSchema(),{exists:V,render:H}=r.useSchemaInitializerRender(M["x-initializer"],M["x-initializer-props"]),G=M.reduceProperties((O,z)=>{if(zy(z))return O.concat([z])},[]).map(O=>({title:a.jsx(C.RecursionField,{name:O.name,schema:O,onlyRenderSelf:!0}),dataIndex:O.name,key:O.name,render:(z,N)=>{const Y=Q.findIndex(o.value,N);return a.jsx(r.RecordIndexProvider,{index:Y,children:a.jsx(r.RecordProvider,{record:N,parent:n,children:a.jsx(C.RecursionField,{schema:O,name:Y,onlyRenderProperties:!0})})})}}));return V?G.concat({title:H(),dataIndex:"TABLE_COLUMN_INITIALIZER",key:"TABLE_COLUMN_INITIALIZER"}):G},_=(M,V,H,G)=>{const O=B();if(!e.loading){$.includes(M.key)&&(O.pop(),O.push({title:a.jsx(C.RecursionField,{name:"column4",schema:Fo,onlyRenderSelf:!0}),dataIndex:"column4",key:"column4",render:(N,Y)=>{const ee=Q.findIndex(o.value,Y);return a.jsx(r.RecordIndexProvider,{index:ee,children:a.jsx(r.RecordProvider,{record:Y,parent:n,children:a.jsx(r.SchemaComponent,{scope:{currentCollection:s},schema:Fo,name:ee,onlyRenderProperties:!0})})})}}));const z={rowSelection:e.rowSelection&&!$.includes(M.key)?F({type:"checkbox",selectedRowKeys:b,onChange(N){y(N)}},e.rowSelection):void 0};return a.jsx(S.Table,K(F(F({},h),z),{components:Hy,showHeader:!0,columns:O,dataSource:M.data,pagination:!1}))}};return a.jsx("div",{className:r.css`
43
+ `)}))}},Hy=()=>{const[e,t]=f.useState([]);return[e,t]},Wy=(e,t)=>{const o=C.useField();return n.useRequest(()=>Promise.resolve({data:o.value}),e)},Qy=[{dataIndex:"name",key:"name"}],Zy=new Map([["primaryAndForeignKey","PK & FK fields"],["relation","Association fields"],["systemInfo","System fields"],["basic","General fields"]]),Jy=C.observer(e=>{const t=["primaryAndForeignKey","relation","basic","systemInfo"],o=C.useField(),r=n.useRecord(),{name:s}=r,{t:i}=j.useTranslation(),l=n.useCompile(),{getInterface:p,getInheritCollections:u,getCollection:c,getCurrentCollectionFields:g,getInheritedFields:m}=n.useCollectionManager_deprecated(),T=e,{showIndex:v=!0,useSelectedRowKeys:x=Hy,useDataSource:P=Wy,onChange:w}=T,h=Ee(T,["showIndex","useSelectedRowKeys","useDataSource","onChange"]),[b,y]=x(),[d,A]=f.useState([]),[D,E]=f.useState(b),$=u(s);P({onSuccess(k){o.value=(k==null?void 0:k.data)||[];const V=[],H=new Map,G=(O,z)=>{let N=H.get(O);N||(N=[]),N.push(z),H.set(O,N)};o.value.forEach(O=>{const z=p(O==null?void 0:O.interface);if(O!=null&&O.primaryKey||O.isForeignKey){G("primaryAndForeignKey",O);return}const N=z==null?void 0:z.group;switch(N){case"systemInfo":case"relation":G(N,O);break;default:G("basic",O)}}),$&&$.forEach(O=>{t.push(O),c(O).fields.map(N=>{N.interface&&(G(O,new Proxy(N,{})),o.value.push(new Proxy(N,{})))})}),t.forEach(O=>{var z;if(((z=H.get(O))==null?void 0:z.length)>0){const N=c(O);V.push({key:O,name:i(Zy.get(O))||i("Parent collection fields")+`(${l(N.title)})`,data:H.get(O)})}}),E(t),A(V)}});const B=()=>{const k=C.useFieldSchema(),{exists:V,render:H}=n.useSchemaInitializerRender(k["x-initializer"],k["x-initializer-props"]),G=k.reduceProperties((O,z)=>{if(Uy(z))return O.concat([z])},[]).map(O=>({title:a.jsx(C.RecursionField,{name:O.name,schema:O,onlyRenderSelf:!0}),dataIndex:O.name,key:O.name,render:(z,N)=>{const Y=Q.findIndex(o.value,N);return a.jsx(n.RecordIndexProvider,{index:Y,children:a.jsx(n.RecordProvider,{record:N,parent:r,children:a.jsx(C.RecursionField,{schema:O,name:Y,onlyRenderProperties:!0})})})}}));return V?G.concat({title:H(),dataIndex:"TABLE_COLUMN_INITIALIZER",key:"TABLE_COLUMN_INITIALIZER"}):G},_=(k,V,H,G)=>{const O=B();if(!e.loading){$.includes(k.key)&&(O.pop(),O.push({title:a.jsx(C.RecursionField,{name:"column4",schema:To,onlyRenderSelf:!0}),dataIndex:"column4",key:"column4",render:(N,Y)=>{const ee=Q.findIndex(o.value,Y);return a.jsx(n.RecordIndexProvider,{index:ee,children:a.jsx(n.RecordProvider,{record:Y,parent:r,children:a.jsx(n.SchemaComponent,{scope:{currentCollection:s},schema:To,name:ee,onlyRenderProperties:!0})})})}}));const z={rowSelection:e.rowSelection&&!$.includes(k.key)?F({type:"checkbox",selectedRowKeys:b,onChange(N){y(N)}},e.rowSelection):void 0};return a.jsx(S.Table,K(F(F({},h),z),{components:zy,showHeader:!0,columns:O,dataSource:k.data,pagination:!1}))}};return a.jsx("div",{className:n.css`
44
44
  .ant-table {
45
45
  overflow-x: auto;
46
46
  overflow-y: hidden;
47
47
  }
48
- `,children:a.jsx(S.Table,{showHeader:!1,loading:e==null?void 0:e.loading,columns:Zy,dataSource:d,pagination:!1,expandable:{expandedRowRender:_,expandedRowKeys:D},onExpand:(M,V)=>{let H=[];M?H=D.concat([V.key]):H=D.filter(G=>G!==V.key),E(H)}})})},{displayName:"CollectionFieldsTableArray"}),Yy=()=>{var t;const e=r.useAsyncData();return[(t=e==null?void 0:e.state)==null?void 0:t.selectedRowKeys,o=>{var n;return(n=e==null?void 0:e.setState)==null?void 0:n.call(e,{selectedRowKeys:o})}]},Ry=(e,t)=>{const{request:o,dataSource:n}=t,s=r.useRequest(o(t),K(F({},e),{manual:!0}));return o?(s.run(),s):Promise.resolve({data:n})},ef=C.observer(e=>{const{rowKey:t="id",useDataSource:o=Ry,useSelectedRowKeys:n=Yy}=e,s=C.useField(),i=C.useFieldSchema(),l=f.useMemo(()=>C.createForm(),[]),p=C.useAttach(l.createArrayField(K(F({},s.props),{basePath:""}))),u=o({uid:i["x-uid"],onSuccess(c){l.setValues({[i.name]:c==null?void 0:c.data})}},e);return a.jsx(r.AsyncDataProvider,{value:u,children:a.jsx(C.FormContext.Provider,{value:l,children:a.jsx(C.FieldContext.Provider,{value:p,children:a.jsx(Xy,K(F({},e),{rowKey:t,loading:u==null?void 0:u.loading,useSelectedRowKeys:n,pagination:!1}))})})})},{displayName:"CollectionFieldsTable"});function tf(e){const{attributes:t,listeners:o,setNodeRef:n}=Z.useDraggable({id:e.id,data:e.data});return a.jsx("div",K(F(F({ref:n},o),t),{children:a.jsx("div",{children:e.children})}))}function of(e){const{isOver:t,setNodeRef:o}=Z.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 nf=C.observer(({item:e})=>a.jsx(of,{id:e.id.toString(),data:e,children:a.jsx("div",{children:a.jsx(tf,{id:e.id.toString(),data:e,children:a.jsx(Oo,{item:e})})})}),{displayName:"TabTitle"}),Oo=({item:e})=>{const{t}=j.useTranslation(),o=r.useCompile();return a.jsxs(S.Space,{children:[a.jsx(S.Badge,{color:e.color}),t(o(e.name))]})},rf=C.observer(e=>{const[t,o]=f.useState(null),{refresh:n}=f.useContext(r.CollectionCategroriesContext),{refresh:s}=r.useResourceActionContext(),i=r.useAPIClient(),l=g=>I(this,null,function*(){const{active:m,over:v}=g;setTimeout(()=>{o(null)}),v&&v.id!==m.id&&(yield i.resource("collectionCategories").move({sourceId:m.id,targetId:v.id}),yield n(),yield s())});function p(g){var m;o((m=g.active)==null?void 0:m.data.current)}const u=Z.useSensor(Z.MouseSensor,{activationConstraint:{distance:10}}),c=Z.useSensors(u);return a.jsxs(Z.DndContext,{sensors:c,onDragEnd:l,onDragStart:p,children:[e.children,a.jsx(Z.DragOverlay,{children:t?a.jsx("span",{style:{whiteSpace:"nowrap"},children:a.jsx(Oo,{item:t})}):null})]})},{displayName:"DndProvider"}),af=()=>{const{t:e}=j.useTranslation(),{data:t,refresh:o}=f.useContext(r.CollectionCategroriesContext),{refresh:n,run:s,defaultRequest:i,setState:l}=r.useResourceActionContext(),[p,u]=f.useState({tab:"all"}),[c,g]=f.useState(p.tab),m=r.useCompile(),v=r.useAPIClient(),{modal:x}=S.App.useApp(),P=f.useMemo(()=>{if(!t)return[];const d=t.sort((A,D)=>D.sort-A.sort).concat().map(A=>K(F({},A),{schema:Io}));return!d.find(A=>A.id==="all")&&d.unshift({name:'{{t("All collections")}}',id:"all",sort:0,closable:!1,schema:Io}),d},[t]);f.useEffect(()=>{p.tab!=="all"&&w(p.tab)},[]);const w=d=>{var A;if(u({tab:d}),g(C.uid()),d!=="all"){const E={$and:[(A=i==null?void 0:i.params)==null?void 0:A.filter,{"category.id":d}]};s({filter:E}),l==null||l({category:[+d],params:[{filter:E}]})}else s(),l==null||l({category:[],params:[]})},h=d=>{x.confirm({title:m("{{t('Delete category')}}"),content:m("{{t('Are you sure you want to delete it?')}}"),onOk:()=>I(this,null,function*(){yield v.resource("collectionCategories").destroy({filter:{id:d}}),d===+p.tab&&u({tab:"all"}),yield o(),yield n()})})},b=()=>I(this,null,function*(){return t.map(d=>({label:e(m(d.name)),value:d.id}))}),y=Q.memoize(d=>({items:[{key:"edit",label:a.jsx(r.SchemaComponent,{schema:{type:"void",properties:{[C.uid()]:{"x-component":"EditCategory","x-component-props":{item:d}}}}})},{key:"delete",label:m("{{t('Delete category')}}"),onClick:()=>h(d.id)}]}));return t?a.jsx(rf,{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:w,defaultActiveKey:p.tab||"all",type:"editable-card",destroyInactiveTabPane:!0,tabBarStyle:{marginBottom:"0px"},items:P.map(d=>({label:d.id!=="all"?a.jsx("div",{"data-no-dnd":"true",children:a.jsx(nf,{item:d})}):m(d.name),key:String(d.id),closable:d.closable,closeIcon:a.jsx(S.Dropdown,{menu:y(d),children:a.jsx(J.MenuOutlined,{role:"button","aria-label":m(d.name),style:{padding:8,margin:"-8px"}})}),children:a.jsx(S.Card,{bordered:!1,children:a.jsx(r.SchemaComponentOptions,{components:{CollectionFields:_o},inherit:!0,scope:{loadCategories:b,categoryVisible:d.id==="all",categoryId:d.id},children:a.jsx(C.RecursionField,{name:c,schema:d.schema,onlyRenderProperties:!0})})})}))})}):null},sf=()=>{const e=C.useForm(),t=r.useActionContext(),{refresh:o}=f.useContext(r.CollectionCategroriesContext),n=r.useAPIClient();return{run(){return I(this,null,function*(){yield e.submit();const i=Q.cloneDeep(e.values);yield n.resource("collectionCategories").create({values:F({},i)}),t.setVisible(!1),yield e.reset(),yield o()})}}},lf=e=>a.jsx(Eo,F({},e)),Eo=e=>{const{scope:t,getContainer:o,children:n}=e,[s,i]=f.useState(!1),{t:l}=j.useTranslation();return a.jsxs(r.ActionContextProvider,{value:{visible:s,setVisible:i},children:[a.jsx("div",{onClick:()=>i(!0),title:l("Add category"),children:n||a.jsx(J.PlusOutlined,{})}),a.jsx(r.SchemaComponent,{schema:jy,components:{CollectionCategory:r.CollectionCategory,CollectionTemplateTag:r.CollectionTemplateTag},scope:F({getContainer:o,useCancelAction:r.useCancelAction,createOnly:!0,useCreateCategry:sf},t)})]})},cf=()=>{const e=C.useForm(),t=r.useActionContext(),{refresh:o}=f.useContext(r.CollectionCategroriesContext),{refresh:n}=r.useResourceActionContext(),s=r.useAPIClient(),{id:i}=r.useRecord();return{run(){return I(this,null,function*(){yield e.submit();const p=Q.cloneDeep(e.values);yield s.resource("collectionCategories").update({filter:{id:i},values:F({},p)}),t.setVisible(!1),yield e.reset(),yield o(),yield n()})}}},pf=e=>{const t=r.useRecord(),o=r.useRequest(()=>Promise.resolve({data:Q.cloneDeep(t)}),K(F({},e),{manual:!0})),n=r.useActionContext();return f.useEffect(()=>{n.visible&&o.run()},[n.visible]),o},uf=e=>a.jsx(ko,F({},e)),ko=e=>{const{scope:t,getContainer:o,item:n,children:s}=e,[i,l]=f.useState(!1),p=r.useCompile();return a.jsx(r.RecordProvider,{record:n,children:a.jsxs(r.ActionContextProvider,{value:{visible:i,setVisible:l},children:[a.jsx(a.Fragment,{children:s||a.jsx("span",{onClick:()=>l(!0),children:p('{{ t("Edit category") }}')})}),a.jsx(r.SchemaComponent,{schema:Ky,scope:F({getContainer:o,useCancelAction:r.useCancelAction,createOnly:!0,useEditCategry:cf,useValuesFromRecord:pf},t)})]})})};C.registerValidateFormats({uid:/^[a-zA-Z][a-zA-Z0-9_-]*$/});const df={type:"object",properties:{[C.uid()]:{"x-component":"ConfigurationTable"}}},mf=()=>a.jsx(r.SchemaComponent,{schema:df,components:{CollectionCategroriesProvider:r.CollectionCategroriesProvider,ConfigurationTable:Uy,ConfigurationTabs:af,AddFieldAction:r.AddFieldAction,AddCollectionField:r.AddCollectionField,AddCollection:r.AddCollection,AddCollectionAction:r.AddCollectionAction,AddCategoryAction:Eo,AddCategory:lf,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:uf,EditCategoryAction:ko,SyncFieldsAction:r.SyncFieldsAction,SyncFieldsActionCom:r.SyncFieldsActionCom,SyncSQLFieldsAction:r.SyncSQLFieldsAction}}),he=f.createContext(null);he.displayName="PermissionContext";const yf=e=>{const t=r.useAPIClient(),o=r.useRecord(),{t:n}=j.useTranslation(),s=f.useContext(be),{snippets:i}=s;i==null||i.forEach(u=>{s[u]=!0});const[l,p]=f.useState(s);return f.useEffect(()=>{p(s)},[s]),a.jsx(he.Provider,{value:{currentDataSource:o,currentRecord:l,update:(u,c)=>I(this,null,function*(){yield t.request({url:`dataSources/${o.key}/roles:update`,data:c.values,method:"post",params:{filterByTk:c.values.roleName}}),p(F(F({},l),c.values)),S.message.success(n("Saved successfully"))})},children:e.children})},ff=e=>{const t=f.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})})},gf=r.withDynamicSchemaProps(e=>{const h=e,{showIndex:t,dragSort:o,rowKey:n,fieldNames:s,collection:i,service:l}=h,p=Ee(h,["showIndex","dragSort","rowKey","fieldNames","collection","service"]),u=C.useField(),c=r.useTableBlockParams(e),g=C.useFieldSchema(),{treeTable:m}=(g==null?void 0:g["x-decorator-props"])||{},[v,x]=f.useState(!!s);let P="children";if(i!=null&&i.tree&&m!==!1){const b=i.fields.find(y=>y.treeChildren);b&&(P=b.name),c.tree=!0}const w=f.useMemo(()=>C.createForm(),[m]);return a.jsx(r.SchemaComponentOptions,{scope:{treeTable:m},children:a.jsx(C.FormContext.Provider,{value:w,children:a.jsx(r.BlockProvider,K(F({name:e.name||"table"},e),{params:c,runWhenParamsChanged:!0,children:a.jsx(r.FixedBlockWrapper,{children:a.jsx(r.TableBlockContext.Provider,{value:K(F({},p),{field:u,service:l,params:c,showIndex:t,dragSort:o,rowKey:n,expandFlag:v,childrenColumnName:P,setExpandFlag:()=>x(!v)}),children:a.jsx(r.RenderChildrenWithAssociationFilter,F({},e))})})}))})})}),vf=e=>{const t=r.useCollectionRecordData(),{visible:o}=r.useActionContext(),{currentDataSource:n}=f.useContext(he),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}}},K(F({},e),{manual:!0}));return f.useEffect(()=>{if(!t.exists){e.onSuccess({data:{}});return}o&&s.run()},[o,t.exists]),s},Cf={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:{}}]},hf={type:"void","x-decorator":"RoleRecordProvider",properties:{block:{type:"void","x-decorator":"RoleCollectionTableBlockProvider","x-component":"CardItem","x-use-decorator-props":"useRoleCollectionServiceProps",properties:{[C.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":"useFilterActionProps","x-component-props":{icon:"FilterOutlined"},"x-align":"left"}}},table1:{type:"array","x-uid":"input","x-component":"TableV2","x-use-component-props":"useTableBlockProps","x-component-props":{rowKey:"name"},properties:{column0:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column",properties:{title:{type:"number","x-component":"CollectionField","x-read-pretty":!0}}},column2:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column",properties:{name:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},column3:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column",properties:{usingConfig:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},column4:{type:"void",title:'{{t("Actions")}}',"x-component":"TableV2.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-use-component-props":"useCancelActionProps"},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary"},"x-use-component-props":"useSaveRoleResourceAction"}}}}}}}}}}}}}}}}},bf=e=>{const{uid:t}=e,o=r.useCollectionRecordData(),n=o.name,s=r.useRequest({resource:"roles.dataSourcesCollections",action:"list",resourceOf:n,params:{pageSize:20,filter:{hidden:{$isFalsy:!0},dataSourceKey:o.key},sort:["sort"],appends:["fields"]}},{uid:t});return F({service:s,collection:Cf,params:{pageSize:20,filter:{hidden:{$isFalsy:!0},dataSourceKey:o.key},sort:["sort"],appends:["fields"]}},e)},xf=()=>{var n,s;const e=f.useContext(r.CollectionContext),t=r.useFilterFieldOptions(e.fields),{service:o}=r.useTableBlockContext();return r.useFilterFieldProps({options:t,params:((s=(n=o.state)==null?void 0:n.params)==null?void 0:s[0])||o.params,service:o})},Sf={type:"void",properties:{block1:{type:"void","x-decorator":"TableBlockProvider","x-component":"CardItem","x-decorator-props":{collection:{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}}]},action:"list",params:{pageSize:50,showAnonymous:!0,appends:[]}},properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:16}},properties:{}},table:{type:"array","x-uid":"input","x-component":"TableV2","x-use-component-props":"useTableBlockProps","x-component-props":{rowKey:"name",rowSelection:{type:"checkbox"}},properties:{column1:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column",properties:{displayName:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},column2:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column",properties:{key:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},column4:{type:"void",title:'{{t("Actions")}}',"x-component":"TableV2.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:hf}}}}}}}}}}}}}}}}}},Af=()=>{const e=C.useForm(),t=r.useAPIClient(),o=r.useCollectionRecordData(),n=r.useActionContext(),{service:s}=r.useTableBlockContext(),{currentDataSource:i}=f.useContext(he);return{onClick(){return I(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:K(F({},e.values),{name:o.name,dataSourceKey:i.key})}),n.setVisible(!1),s==null||s.refresh()})}}},st=f.createContext([]);st.displayName="AvailableActionsContext";const $f=e=>{const{data:t,loading:o}=r.useRequest({resource:"availableActions",action:"list"});return o?a.jsx(S.Spin,{}):a.jsx(st.Provider,{value:t==null?void 0:t.data,children:e.children})},Mo=()=>f.useContext(st),Tf=()=>{const e=r.useRecord();return a.jsx("div",{children:a.jsx(r.SchemaComponentContext.Provider,{value:{designable:!1},children:a.jsx($f,{children:a.jsx(r.SchemaComponent,{schema:Sf,components:{SettingCenterPermissionProvider:r.SettingCenterPermissionProvider,PermissionProvider:yf,RoleCollectionTableBlockProvider:gf},scope:{dataSourceKey:e.key,useSaveRoleResourceAction:Af,useFilterActionProps:xf,useRoleCollectionServiceProps:bf}})})})})},Ff=()=>{const{update:e}=f.useContext(he),{t}=j.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=f.useContext(be);return r.useRequest(()=>s.resource(`dataSources/${o}/roles`).get({filterByTk:i.name}).then(l=>{var u,c;const p=(u=l==null?void 0:l.data)==null?void 0:u.data;return(c=p.snippets)==null||c.forEach(g=>{p[g]=!0}),{data:p}}),n)},effects(){C.onFieldChange("*",(n,s)=>I(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"}}}})},wf=(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}}]}),_f=()=>{const{name:e}=f.useContext(me),t=r.useFormBlockContext();return f.useEffect(()=>{t.form.setInitialValues({resourceName:e})},[e]),{form:t.form}},Pf=e=>{const t=wf(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:"tb-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:f.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:"tb-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":_f,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=f.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:"tb-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=f.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"}}}}}}}}}}}}},jo=f.createContext(null);jo.displayName="RolesResourcesScopesSelectedRowKeysContext";const Df=e=>{const[t,o]=f.useState([]);return a.jsx(jo.Provider,{value:[t,o],children:e.children})},If=e=>{const t=f.useMemo(()=>C.createForm({values:{scope:e.value}}),[]),{key:o}=r.useRecord(),n=Pf(o);return a.jsx(r.FormProvider,{form:t,children:a.jsx(r.SchemaComponent,{components:{RolesResourcesScopesSelectedRowKeysProvider:Df},scope:{onChange(s){var i;(i=e==null?void 0:e.onChange)==null||i.call(e,s)}},schema:n})})},Of=r.createStyles(({css:e})=>e`
48
+ `,children:a.jsx(S.Table,{showHeader:!1,loading:e==null?void 0:e.loading,columns:Qy,dataSource:d,pagination:!1,expandable:{expandedRowRender:_,expandedRowKeys:D},onExpand:(k,V)=>{let H=[];k?H=D.concat([V.key]):H=D.filter(G=>G!==V.key),E(H)}})})},{displayName:"CollectionFieldsTableArray"}),Xy=()=>{var t;const e=n.useAsyncData();return[(t=e==null?void 0:e.state)==null?void 0:t.selectedRowKeys,o=>{var r;return(r=e==null?void 0:e.setState)==null?void 0:r.call(e,{selectedRowKeys:o})}]},Yy=(e,t)=>{const{request:o,dataSource:r}=t,s=n.useRequest(o(t),K(F({},e),{manual:!0}));return o?(s.run(),s):Promise.resolve({data:r})},Ry=C.observer(e=>{const{rowKey:t="id",useDataSource:o=Yy,useSelectedRowKeys:r=Xy}=e,s=C.useField(),i=C.useFieldSchema(),l=f.useMemo(()=>C.createForm(),[]),p=C.useAttach(l.createArrayField(K(F({},s.props),{basePath:""}))),u=o({uid:i["x-uid"],onSuccess(c){l.setValues({[i.name]:c==null?void 0:c.data})}},e);return a.jsx(n.AsyncDataProvider,{value:u,children:a.jsx(C.FormContext.Provider,{value:l,children:a.jsx(C.FieldContext.Provider,{value:p,children:a.jsx(Jy,K(F({},e),{rowKey:t,loading:u==null?void 0:u.loading,useSelectedRowKeys:r,pagination:!1}))})})})},{displayName:"CollectionFieldsTable"});function ef(e){const{attributes:t,listeners:o,setNodeRef:r}=Z.useDraggable({id:e.id,data:e.data});return a.jsx("div",K(F(F({ref:r},o),t),{children:a.jsx("div",{children:e.children})}))}function tf(e){const{isOver:t,setNodeRef:o}=Z.useDroppable({id:e.id,data:e.data}),r=t?{color:"green"}:void 0;return a.jsx("div",{ref:o,style:r,children:e.children})}const of=C.observer(({item:e})=>a.jsx(tf,{id:e.id.toString(),data:e,children:a.jsx("div",{children:a.jsx(ef,{id:e.id.toString(),data:e,children:a.jsx(Io,{item:e})})})}),{displayName:"TabTitle"}),Io=({item:e})=>{const{t}=j.useTranslation(),o=n.useCompile();return a.jsxs(S.Space,{children:[a.jsx(S.Badge,{color:e.color}),t(o(e.name))]})},nf=C.observer(e=>{const[t,o]=f.useState(null),{refresh:r}=f.useContext(n.CollectionCategroriesContext),{refresh:s}=n.useResourceActionContext(),i=n.useAPIClient(),l=g=>I(this,null,function*(){const{active:m,over:v}=g;setTimeout(()=>{o(null)}),v&&v.id!==m.id&&(yield i.resource("collectionCategories").move({sourceId:m.id,targetId:v.id}),yield r(),yield s())});function p(g){var m;o((m=g.active)==null?void 0:m.data.current)}const u=Z.useSensor(Z.MouseSensor,{activationConstraint:{distance:10}}),c=Z.useSensors(u);return a.jsxs(Z.DndContext,{sensors:c,onDragEnd:l,onDragStart:p,children:[e.children,a.jsx(Z.DragOverlay,{children:t?a.jsx("span",{style:{whiteSpace:"nowrap"},children:a.jsx(Io,{item:t})}):null})]})},{displayName:"DndProvider"}),rf=()=>{const{t:e}=j.useTranslation(),{data:t,refresh:o}=f.useContext(n.CollectionCategroriesContext),{refresh:r,run:s,defaultRequest:i,setState:l}=n.useResourceActionContext(),[p,u]=f.useState({tab:"all"}),[c,g]=f.useState(p.tab),m=n.useCompile(),v=n.useAPIClient(),{modal:x}=S.App.useApp(),P=f.useMemo(()=>{if(!t)return[];const d=t.sort((A,D)=>D.sort-A.sort).concat().map(A=>K(F({},A),{schema:Do}));return!d.find(A=>A.id==="all")&&d.unshift({name:'{{t("All collections")}}',id:"all",sort:0,closable:!1,schema:Do}),d},[t]);f.useEffect(()=>{p.tab!=="all"&&w(p.tab)},[]);const w=d=>{var A;if(u({tab:d}),g(C.uid()),d!=="all"){const E={$and:[(A=i==null?void 0:i.params)==null?void 0:A.filter,{"category.id":d}]};s({filter:E}),l==null||l({category:[+d],params:[{filter:E}]})}else s(),l==null||l({category:[],params:[]})},h=d=>{x.confirm({title:m("{{t('Delete category')}}"),content:m("{{t('Are you sure you want to delete it?')}}"),onOk:()=>I(this,null,function*(){yield v.resource("collectionCategories").destroy({filter:{id:d}}),d===+p.tab&&u({tab:"all"}),yield o(),yield r()})})},b=()=>I(this,null,function*(){return t.map(d=>({label:e(m(d.name)),value:d.id}))}),y=Q.memoize(d=>({items:[{key:"edit",label:a.jsx(n.SchemaComponent,{schema:{type:"void",properties:{[C.uid()]:{"x-component":"EditCategory","x-component-props":{item:d}}}}})},{key:"delete",label:m("{{t('Delete category')}}"),onClick:()=>h(d.id)}]}));return t?a.jsx(nf,{children:a.jsx(S.Tabs,{addIcon:a.jsx(n.SchemaComponent,{schema:{type:"void",properties:{addCategories:{type:"void",title:'{{ t("Add category") }}',"x-component":"AddCategory","x-component-props":{type:"primary"}}}}}),onChange:w,defaultActiveKey:p.tab||"all",type:"editable-card",destroyInactiveTabPane:!0,tabBarStyle:{marginBottom:"0px"},items:P.map(d=>({label:d.id!=="all"?a.jsx("div",{"data-no-dnd":"true",children:a.jsx(of,{item:d})}):m(d.name),key:String(d.id),closable:d.closable,closeIcon:a.jsx(S.Dropdown,{menu:y(d),children:a.jsx(J.MenuOutlined,{role:"button","aria-label":m(d.name),style:{padding:8,margin:"-8px"}})}),children:a.jsx(S.Card,{bordered:!1,children:a.jsx(n.SchemaComponentOptions,{components:{CollectionFields:wo},inherit:!0,scope:{loadCategories:b,categoryVisible:d.id==="all",categoryId:d.id},children:a.jsx(C.RecursionField,{name:c,schema:d.schema,onlyRenderProperties:!0})})})}))})}):null},af=()=>{const e=C.useForm(),t=n.useActionContext(),{refresh:o}=f.useContext(n.CollectionCategroriesContext),r=n.useAPIClient();return{run(){return I(this,null,function*(){yield e.submit();const i=Q.cloneDeep(e.values);yield r.resource("collectionCategories").create({values:F({},i)}),t.setVisible(!1),yield e.reset(),yield o()})}}},sf=e=>a.jsx(Oo,F({},e)),Oo=e=>{const{scope:t,getContainer:o,children:r}=e,[s,i]=f.useState(!1),{t:l}=j.useTranslation();return a.jsxs(n.ActionContextProvider,{value:{visible:s,setVisible:i},children:[a.jsx("div",{onClick:()=>i(!0),title:l("Add category"),children:r||a.jsx(J.PlusOutlined,{})}),a.jsx(n.SchemaComponent,{schema:My,components:{CollectionCategory:n.CollectionCategory,CollectionTemplateTag:n.CollectionTemplateTag},scope:F({getContainer:o,useCancelAction:n.useCancelAction,createOnly:!0,useCreateCategry:af},t)})]})},lf=()=>{const e=C.useForm(),t=n.useActionContext(),{refresh:o}=f.useContext(n.CollectionCategroriesContext),{refresh:r}=n.useResourceActionContext(),s=n.useAPIClient(),{id:i}=n.useRecord();return{run(){return I(this,null,function*(){yield e.submit();const p=Q.cloneDeep(e.values);yield s.resource("collectionCategories").update({filter:{id:i},values:F({},p)}),t.setVisible(!1),yield e.reset(),yield o(),yield r()})}}},cf=e=>{const t=n.useRecord(),o=n.useRequest(()=>Promise.resolve({data:Q.cloneDeep(t)}),K(F({},e),{manual:!0})),r=n.useActionContext();return f.useEffect(()=>{r.visible&&o.run()},[r.visible]),o},pf=e=>a.jsx(Eo,F({},e)),Eo=e=>{const{scope:t,getContainer:o,item:r,children:s}=e,[i,l]=f.useState(!1),p=n.useCompile();return a.jsx(n.RecordProvider,{record:r,children:a.jsxs(n.ActionContextProvider,{value:{visible:i,setVisible:l},children:[a.jsx(a.Fragment,{children:s||a.jsx("span",{onClick:()=>l(!0),children:p('{{ t("Edit category") }}')})}),a.jsx(n.SchemaComponent,{schema:jy,scope:F({getContainer:o,useCancelAction:n.useCancelAction,createOnly:!0,useEditCategry:lf,useValuesFromRecord:cf},t)})]})})};C.registerValidateFormats({uid:/^[a-zA-Z][a-zA-Z0-9_-]*$/});const uf={type:"object",properties:{[C.uid()]:{"x-component":"ConfigurationTable"}}},df=()=>a.jsx(n.SchemaComponent,{schema:uf,components:{CollectionCategroriesProvider:n.CollectionCategroriesProvider,ConfigurationTable:Gy,ConfigurationTabs:rf,AddFieldAction:n.AddFieldAction,AddCollectionField:n.AddCollectionField,AddCollection:n.AddCollection,AddCollectionAction:n.AddCollectionAction,AddCategoryAction:Oo,AddCategory:sf,EditCollection:n.EditCollection,EditCollectionAction:n.EditCollectionAction,DeleteCollection:n.DeleteCollection,DeleteCollectionAction:n.DeleteCollectionAction,EditFieldAction:n.EditFieldAction,EditCollectionField:n.EditCollectionField,OverridingCollectionField:n.OverridingCollectionField,OverridingFieldAction:n.OverridingFieldAction,ViewCollectionField:n.ViewCollectionField,ViewFieldAction:n.ViewFieldAction,EditCategory:pf,EditCategoryAction:Eo,SyncFieldsAction:n.SyncFieldsAction,SyncFieldsActionCom:n.SyncFieldsActionCom,SyncSQLFieldsAction:n.SyncSQLFieldsAction}}),he=f.createContext(null);he.displayName="PermissionContext";const mf=e=>{const t=n.useAPIClient(),o=n.useRecord(),{t:r}=j.useTranslation(),s=f.useContext(be),{snippets:i}=s;i==null||i.forEach(u=>{s[u]=!0});const[l,p]=f.useState(s);return f.useEffect(()=>{p(s)},[s]),a.jsx(he.Provider,{value:{currentDataSource:o,currentRecord:l,update:(u,c)=>I(this,null,function*(){yield t.request({url:`dataSources/${o.key}/roles:update`,data:c.values,method:"post",params:{filterByTk:c.values.roleName}}),p(F(F({},l),c.values)),S.message.success(r("Saved successfully"))})},children:e.children})},yf=e=>{const t=f.useContext(be),o=n.useRecord();return a.jsx(n.RecordContext_deprecated.Provider,{value:F({},t),children:a.jsx(n.SchemaComponentOptions,{scope:{dataSourceKey:o.key},children:e.children})})},ff=n.withDynamicSchemaProps(e=>{const h=e,{showIndex:t,dragSort:o,rowKey:r,fieldNames:s,collection:i,service:l}=h,p=Ee(h,["showIndex","dragSort","rowKey","fieldNames","collection","service"]),u=C.useField(),c=n.useTableBlockParams(e),g=C.useFieldSchema(),{treeTable:m}=(g==null?void 0:g["x-decorator-props"])||{},[v,x]=f.useState(!!s);let P="children";if(i!=null&&i.tree&&m!==!1){const b=i.fields.find(y=>y.treeChildren);b&&(P=b.name),c.tree=!0}const w=f.useMemo(()=>C.createForm(),[m]);return a.jsx(n.SchemaComponentOptions,{scope:{treeTable:m},children:a.jsx(C.FormContext.Provider,{value:w,children:a.jsx(n.BlockProvider,K(F({name:e.name||"table"},e),{params:c,runWhenParamsChanged:!0,children:a.jsx(n.FixedBlockWrapper,{children:a.jsx(n.TableBlockContext.Provider,{value:K(F({},p),{field:u,service:l,params:c,showIndex:t,dragSort:o,rowKey:r,expandFlag:v,childrenColumnName:P,setExpandFlag:()=>x(!v)}),children:a.jsx(n.RenderChildrenWithAssociationFilter,F({},e))})})}))})})}),gf=e=>{const t=n.useCollectionRecordData(),{visible:o}=n.useActionContext(),{currentDataSource:r}=f.useContext(he),s=n.useRequest({resource:"roles.dataSourceResources",resourceOf:t.roleName,action:"get",params:{appends:["actions","actions.scope"],filterByTk:t.name,filter:{dataSourceKey:r.key,name:t.name}}},K(F({},e),{manual:!0}));return f.useEffect(()=>{if(!t.exists){e.onSuccess({data:{}});return}o&&s.run()},[o,t.exists]),s},vf={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:{}}]},Cf={type:"void","x-decorator":"RoleRecordProvider",properties:{block:{type:"void","x-decorator":"RoleCollectionTableBlockProvider","x-component":"CardItem","x-use-decorator-props":"useRoleCollectionServiceProps",properties:{[C.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":"useFilterActionProps","x-component-props":{icon:"FilterOutlined"},"x-align":"left"}}},table1:{type:"array","x-uid":"input","x-component":"TableV2","x-use-component-props":"useTableBlockProps","x-component-props":{rowKey:"name"},properties:{column0:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column",properties:{title:{type:"number","x-component":"CollectionField","x-read-pretty":!0}}},column2:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column",properties:{name:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},column3:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column",properties:{usingConfig:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},column4:{type:"void",title:'{{t("Actions")}}',"x-component":"TableV2.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:gf},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-use-component-props":"useCancelActionProps"},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary"},"x-use-component-props":"useSaveRoleResourceAction"}}}}}}}}}}}}}}}}},hf=e=>{const{uid:t}=e,o=n.useCollectionRecordData(),r=o.name,s=n.useRequest({resource:"roles.dataSourcesCollections",action:"list",resourceOf:r,params:{pageSize:20,filter:{hidden:{$isFalsy:!0},dataSourceKey:o.key},sort:["sort"],appends:["fields"]}},{uid:t});return F({service:s,collection:vf,params:{pageSize:20,filter:{hidden:{$isFalsy:!0},dataSourceKey:o.key},sort:["sort"],appends:["fields"]}},e)},bf=()=>{var r,s;const e=f.useContext(n.CollectionContext),t=n.useFilterFieldOptions(e.fields),{service:o}=n.useTableBlockContext();return n.useFilterFieldProps({options:t,params:((s=(r=o.state)==null?void 0:r.params)==null?void 0:s[0])||o.params,service:o})},xf={type:"void",properties:{block1:{type:"void","x-decorator":"TableBlockProvider","x-component":"CardItem","x-decorator-props":{collection:{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}}]},action:"list",params:{pageSize:50,showAnonymous:!0,appends:[]}},properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:16}},properties:{}},table:{type:"array","x-uid":"input","x-component":"TableV2","x-use-component-props":"useTableBlockProps","x-component-props":{rowKey:"name",rowSelection:{type:"checkbox"}},properties:{column1:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column",properties:{displayName:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},column2:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column",properties:{key:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},column4:{type:"void",title:'{{t("Actions")}}',"x-component":"TableV2.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-reactions":e=>{e.visible=e.record.status==="loaded"},"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:Cf}}}}}}}}}}}}}}}}}},Sf=()=>{const e=C.useForm(),t=n.useAPIClient(),o=n.useCollectionRecordData(),r=n.useActionContext(),{service:s}=n.useTableBlockContext(),{currentDataSource:i}=f.useContext(he);return{onClick(){return I(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:K(F({},e.values),{name:o.name,dataSourceKey:i.key})}),r.setVisible(!1),s==null||s.refresh()})}}},st=f.createContext([]);st.displayName="AvailableActionsContext";const Af=e=>{const{data:t,loading:o}=n.useRequest({resource:"availableActions",action:"list"});return o?a.jsx(S.Spin,{}):a.jsx(st.Provider,{value:t==null?void 0:t.data,children:e.children})},ko=()=>f.useContext(st),$f=()=>{const e=n.useRecord();return a.jsx("div",{children:a.jsx(n.SchemaComponentContext.Provider,{value:{designable:!1},children:a.jsx(Af,{children:a.jsx(n.SchemaComponent,{schema:xf,components:{SettingCenterPermissionProvider:n.SettingCenterPermissionProvider,PermissionProvider:mf,RoleCollectionTableBlockProvider:ff},scope:{dataSourceKey:e.key,useSaveRoleResourceAction:Sf,useFilterActionProps:bf,useRoleCollectionServiceProps:hf}})})})})},Tf=()=>{const{update:e}=f.useContext(he),{t}=j.useTranslation(),{key:o}=n.useRecord();return a.jsx(n.SchemaComponent,{schema:{type:"void",name:"form","x-component":"Form","x-component-props":{useValues:r=>{const s=n.useAPIClient(),i=f.useContext(be);return n.useRequest(()=>s.resource(`dataSources/${o}/roles`).get({filterByTk:i.name}).then(l=>{var u,c;const p=(u=l==null?void 0:l.data)==null?void 0:u.data;return(c=p.snippets)==null||c.forEach(g=>{p[g]=!0}),{data:p}}),r)},effects(){C.onFieldChange("*",(r,s)=>I(this,null,function*(){s.modified&&(yield e(r,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="main")=>({name:`dataSources/${e}/rolesResourcesScopes`,fields:[{type:"string",name:"name",interface:"input",uiSchema:{title:'{{t("Scope name")}}',type:"string","x-component":"Input",required:!0}}]}),wf=()=>{const{name:e}=f.useContext(me),t=n.useFormBlockContext();return f.useEffect(()=>{t.form.setInitialValues({resourceName:e})},[e]),{form:t.form}},_f=e=>{const t=Ff(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:"tb-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:f.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:"tb-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":wf,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=f.useContext(me);return{options:n.useFilterFieldOptions(o.fields)}},"x-component-props":{dynamicComponent:n.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:"tb-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=f.useContext(me);return{options:n.useFilterFieldOptions(o.fields)}},"x-component-props":{dynamicComponent:n.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"}}}}}}}}}}}}},Mo=f.createContext(null);Mo.displayName="RolesResourcesScopesSelectedRowKeysContext";const Pf=e=>{const[t,o]=f.useState([]);return a.jsx(Mo.Provider,{value:[t,o],children:e.children})},Df=e=>{const t=f.useMemo(()=>C.createForm({values:{scope:e.value}}),[]),{key:o}=n.useRecord(),r=_f(o);return a.jsx(n.FormProvider,{form:t,children:a.jsx(n.SchemaComponent,{components:{RolesResourcesScopesSelectedRowKeysProvider:Pf},scope:{onChange(s){var i;(i=e==null?void 0:e.onChange)==null||i.call(e,s)}},schema:r})})},If=n.createStyles(({css:e})=>e`
49
49
  .ant-table-cell {
50
50
  > .ant-space-horizontal {
51
51
  .ant-space-item-split:has(+ .ant-space-item:empty) {
@@ -53,4 +53,4 @@
53
53
  }
54
54
  }
55
55
  }
56
- `),Ef=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=Q.isEmpty(n.scope)?null:n.scope)}),t},me=f.createContext({});me.displayName="RoleResourceCollectionContext";const kf=C.connect(e=>{var h,b;const{styles:t}=Of(),o=y=>{const d=y.map(A=>K(F({},A),{scope:Q.isEmpty(A.scope)?null:A.scope}));e.onChange(d)},n=r.useRecord(),s=Mo(),i=n.fields,l=r.useCompile(),{t:p}=j.useTranslation(),u=C.useField(),c=Ef(u.value||[]),g=(y,d)=>{var D;const A=c==null?void 0:c[y];return A?(D=A==null?void 0:A.fields)==null?void 0:D.includes(d):!1},m=s.filter(y=>y.allowConfigureFields),v=i==null?void 0:i.map(y=>{const d=F({},y);for(const A of m)d[A.name]=g(A.name,y.name);return d}),x=y=>{var d,A;c[y]?delete c[y]:c[y]={name:y,fields:(A=(d=i==null?void 0:i.filter(D=>D.interface))==null?void 0:d.map)==null?void 0:A.call(d,D=>D.name)},o(Object.values(c))},P=(y,d)=>{c[y]?(c[y].scope=d,o(Object.values(c))):(x(y),c[y].scope=d,o(Object.values(c)))},w={};for(const y of m)w[y.name]=(i==null?void 0:i.length)===((b=(h=c==null?void 0:c[y.name])==null?void 0:h.fields)==null?void 0:b.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:p("Action permission"),children:a.jsx(S.Table,{className:t,size:"small",pagination:!1,columns:[{dataIndex:"displayName",title:p("Action display name"),render:y=>l(y)},{dataIndex:"onNewRecord",title:p("Action type"),render:y=>y?a.jsx(S.Tag,{color:"green",children:p("Action on new records")}):a.jsx(S.Tag,{color:"geekblue",children:p("Action on existing records")})},{dataIndex:"enabled",title:p("Allow"),render:(y,d)=>a.jsx(S.Checkbox,{checked:y,onChange:()=>{x(d.name)}})},{dataIndex:"scope",title:p("Data scope"),render:(y,d)=>!d.onNewRecord&&a.jsx(If,{value:y,onChange:A=>{P(d.name,A)}})}],dataSource:s==null?void 0:s.map(y=>{let d=!1,A=null;return c[y.name]&&(d=!0,y.onNewRecord||(A=c[y.name].scope)),K(F({},y),{enabled:d,scope:A})})})}),a.jsx(ae.FormItem,{label:p("Field permission"),children:a.jsx(S.Table,{className:t,pagination:!1,dataSource:v,columns:[{dataIndex:["uiSchema","title"],title:p("Field display name"),render:(y,d)=>l(y)||d.name},...m.map(y=>{const d=w==null?void 0:w[y.name];return{dataIndex:y.name,title:a.jsxs(a.Fragment,{children:[a.jsx(S.Checkbox,{checked:d,onChange:()=>{var D;const A=c[y.name]||{name:y.name};d?A.fields=[]:A.fields=(D=i==null?void 0:i.map)==null?void 0:D.call(i,E=>E.name),c[y.name]=A,o(Object.values(c))}}),l(y.displayName)]}),render:(A,D)=>a.jsx(S.Checkbox,{checked:A,onChange:()=>{const E=c[y.name]||{name:y.name},$=E.fields||[];if(A){const B=$.indexOf(D.name);$.splice(B,1)}else $.push(D.name);E.fields=$,c[y.name]=E,o(Object.values(c))}})}})]})})]})})})}),Mf=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},Ko=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},jf=C.connect(e=>{const{onChange:t}=e,o=Mo(),n=r.useCompile(),{t:s}=j.useTranslation(),i=C.useField(),l=Mf(i.value);return a.jsx("div",{children:a.jsx(S.Table,{size:"small",pagination:!1,columns:[{dataIndex:"displayName",title:s("Action display name"),render:p=>n(p)},{dataIndex:"onNewRecord",title:s("Action type"),render:p=>p?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:(p,u)=>a.jsx(S.Checkbox,{checked:p,onChange:c=>{p?delete l[u.name]:l[u.name]="all",t(Ko(l))}})},{dataIndex:"scope",title:s("Data scope"),render:(p,u)=>!u.onNewRecord&&a.jsx(S.Select,{"data-testid":"select-data-scope",popupMatchSelectWidth:!1,size:"small",value:p,options:[{label:s("All records"),value:"all"},{label:s("Own records"),value:"own"}],onChange:c=>{l[u.name]=c,t(Ko(l))}})}],dataSource:o==null?void 0:o.map(p=>{let u="all",c=!1;return l[p.name]&&(c=!0,u=l[p.name]),K(F({},p),{enabled:c,scope:u})})})})}),Kf={type:"object",properties:{[C.uid()]:{"x-component":"DataSourceTable"}}},be=f.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:Ff,RolesResourcesActions:kf,DataSourceTable:Tf,StrategyActions:jf,SettingsCenterConfigure:r.SettingsCenterConfigure,SettingCenterProvider:r.SettingCenterProvider,ResourceActionProvider:r.ResourceActionProvider,RoleRecordProvider:ff},schema:Kf})})});class ye extends r.Plugin{constructor(){super(...arguments);No(this,"types",new Map)}load(){return I(this,null,function*(){this.app.addComponents({DataSourcePermissionManager:Bf,DatasourceLink:_y}),this.app.use(Go),this.app.systemSettingsManager.add("data-modeling.collections",{title:`{{t("Collections", { ns: "${U}" })}}`,icon:"DatabaseOutlined",Component:mf,pluginKey:"collections",sort:-70}),this.app.systemSettingsManager.add(`data-modeling.${U}`,{title:`{{t("Data sources", { ns: "${U}" })}}`,icon:"ClusterOutlined",showTabs:!1,Component:wy,aclSnippet:"pm.database-connections.manager",sort:-70}),this.app.systemSettingsManager.add(`data-modeling.${U}/:name`,{title:a.jsx(Ho,{}),Component:Sy,groupKey:`data-modeling.${U}`,pluginKey:U}),this.app.dataSourceManager.addDataSources(this.getThirdDataSource.bind(this),To)})}setDataSources(){return I(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 I(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)}}k.PluginDataSourceManagerClient=ye,k.default=ye,Object.defineProperties(k,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
56
+ `),Of=e=>{var o;const t={};return(o=e==null?void 0:e.forEach)==null||o.call(e,r=>{r.name&&(t[r.name]=r,t[r.name].scope=Q.isEmpty(r.scope)?null:r.scope)}),t},me=f.createContext({});me.displayName="RoleResourceCollectionContext";const Ef=C.connect(e=>{var h,b;const{styles:t}=If(),o=y=>{const d=y.map(A=>K(F({},A),{scope:Q.isEmpty(A.scope)?null:A.scope}));e.onChange(d)},r=n.useRecord(),s=ko(),i=r.fields,l=n.useCompile(),{t:p}=j.useTranslation(),u=C.useField(),c=Of(u.value||[]),g=(y,d)=>{var D;const A=c==null?void 0:c[y];return A?(D=A==null?void 0:A.fields)==null?void 0:D.includes(d):!1},m=s.filter(y=>y.allowConfigureFields),v=i==null?void 0:i.map(y=>{const d=F({},y);for(const A of m)d[A.name]=g(A.name,y.name);return d}),x=y=>{var d,A;c[y]?delete c[y]:c[y]={name:y,fields:(A=(d=i==null?void 0:i.filter(D=>D.interface))==null?void 0:d.map)==null?void 0:A.call(d,D=>D.name)},o(Object.values(c))},P=(y,d)=>{c[y]?(c[y].scope=d,o(Object.values(c))):(x(y),c[y].scope=d,o(Object.values(c)))},w={};for(const y of m)w[y.name]=(i==null?void 0:i.length)===((b=(h=c==null?void 0:c[y.name])==null?void 0:h.fields)==null?void 0:b.length);return a.jsx("div",{children:a.jsx(me.Provider,{value:r,children:a.jsxs(ae.FormLayout,{layout:"vertical",children:[a.jsx(ae.FormItem,{label:p("Action permission"),children:a.jsx(S.Table,{className:t,size:"small",pagination:!1,columns:[{dataIndex:"displayName",title:p("Action display name"),render:y=>l(y)},{dataIndex:"onNewRecord",title:p("Action type"),render:y=>y?a.jsx(S.Tag,{color:"green",children:p("Action on new records")}):a.jsx(S.Tag,{color:"geekblue",children:p("Action on existing records")})},{dataIndex:"enabled",title:p("Allow"),render:(y,d)=>a.jsx(S.Checkbox,{checked:y,onChange:()=>{x(d.name)}})},{dataIndex:"scope",title:p("Data scope"),render:(y,d)=>!d.onNewRecord&&a.jsx(Df,{value:y,onChange:A=>{P(d.name,A)}})}],dataSource:s==null?void 0:s.map(y=>{let d=!1,A=null;return c[y.name]&&(d=!0,y.onNewRecord||(A=c[y.name].scope)),K(F({},y),{enabled:d,scope:A})})})}),a.jsx(ae.FormItem,{label:p("Field permission"),children:a.jsx(S.Table,{className:t,pagination:!1,dataSource:v,columns:[{dataIndex:["uiSchema","title"],title:p("Field display name"),render:(y,d)=>l(y)||d.name},...m.map(y=>{const d=w==null?void 0:w[y.name];return{dataIndex:y.name,title:a.jsxs(a.Fragment,{children:[a.jsx(S.Checkbox,{checked:d,onChange:()=>{var D;const A=c[y.name]||{name:y.name};d?A.fields=[]:A.fields=(D=i==null?void 0:i.map)==null?void 0:D.call(i,E=>E.name),c[y.name]=A,o(Object.values(c))}}),l(y.displayName)]}),render:(A,D)=>a.jsx(S.Checkbox,{checked:A,onChange:()=>{const E=c[y.name]||{name:y.name},$=E.fields||[];if(A){const B=$.indexOf(D.name);$.splice(B,1)}else $.push(D.name);E.fields=$,c[y.name]=E,o(Object.values(c))}})}})]})})]})})})}),kf=e=>{var o;if(!e)return{};const t={};return(o=e==null?void 0:e.forEach)==null||o.call(e,r=>{const[s,i]=r.split(":");t[s]=i||"all"}),t},jo=e=>{const t=[];for(const o in e)if(Object.prototype.hasOwnProperty.call(e,o)){const r=e[o];r==="all"?t.push(o):t.push(`${o}:${r}`)}return t},Mf=C.connect(e=>{const{onChange:t}=e,o=ko(),r=n.useCompile(),{t:s}=j.useTranslation(),i=C.useField(),l=kf(i.value);return a.jsx("div",{children:a.jsx(S.Table,{size:"small",pagination:!1,columns:[{dataIndex:"displayName",title:s("Action display name"),render:p=>r(p)},{dataIndex:"onNewRecord",title:s("Action type"),render:p=>p?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:(p,u)=>a.jsx(S.Checkbox,{checked:p,onChange:c=>{p?delete l[u.name]:l[u.name]="all",t(jo(l))}})},{dataIndex:"scope",title:s("Data scope"),render:(p,u)=>!u.onNewRecord&&a.jsx(S.Select,{"data-testid":"select-data-scope",popupMatchSelectWidth:!1,size:"small",value:p,options:[{label:s("All records"),value:"all"},{label:s("Own records"),value:"own"}],onChange:c=>{l[u.name]=c,t(jo(l))}})}],dataSource:o==null?void 0:o.map(p=>{let u="all",c=!1;return l[p.name]&&(c=!0,u=l[p.name]),K(F({},p),{enabled:c,scope:u})})})})}),jf={type:"object",properties:{[C.uid()]:{"x-component":"DataSourceTable"}}},be=f.createContext({});be.displayName="CurrentRolesContext";const Kf=({role:e})=>a.jsx(S.Card,{"data-testid":"acl-pane-card",bordered:!1,children:a.jsx(be.Provider,{value:e,children:a.jsx(n.SchemaComponent,{components:{MenuConfigure:n.MenuConfigure,RoleConfigure:Tf,RolesResourcesActions:Ef,DataSourceTable:$f,StrategyActions:Mf,SettingsCenterConfigure:n.SettingsCenterConfigure,SettingCenterProvider:n.SettingCenterProvider,ResourceActionProvider:n.ResourceActionProvider,RoleRecordProvider:yf},schema:jf})})});class ye extends n.Plugin{constructor(){super(...arguments),this.types=new Map}load(){return I(this,null,function*(){this.app.addComponents({DataSourcePermissionManager:Kf,DatasourceLink:wy}),this.app.use(qo),this.app.systemSettingsManager.add("data-modeling.collections",{title:`{{t("Collections", { ns: "${U}" })}}`,icon:"DatabaseOutlined",Component:df,pluginKey:"collections",sort:-70}),this.app.systemSettingsManager.add(`data-modeling.${U}`,{title:`{{t("Data sources", { ns: "${U}" })}}`,icon:"ClusterOutlined",showTabs:!1,Component:Fy,aclSnippet:"pm.database-connections.manager",sort:-70}),this.app.systemSettingsManager.add(`data-modeling.${U}/:name`,{title:a.jsx(zo,{}),Component:xy,groupKey:`data-modeling.${U}`,pluginKey:U}),this.app.dataSourceManager.addDataSources(this.getThirdDataSource.bind(this),$o)})}setDataSources(){return I(this,null,function*(){var o;const t=yield this.app.apiClient.request({resource:"dataSources",action:"listEnabled",params:{paginate:!1}});return(o=t==null?void 0:t.data)==null?void 0:o.data})}getThirdDataSource(){return I(this,null,function*(){var o;const t=yield this.app.apiClient.request({resource:"dataSources",action:"listEnabled",params:{paginate:!1,appends:["collections"]}});return(o=t==null?void 0:t.data)==null?void 0:o.data})}registerType(t,o){this.types.set(t,o)}}M.PluginDataSourceManagerClient=ye,M.default=ye,Object.defineProperties(M,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
@@ -1,19 +1,19 @@
1
1
  module.exports = {
2
2
  "react": "18.3.1",
3
- "@tachybase/client": "0.23.40",
4
- "@tachybase/server": "0.23.40",
3
+ "@tachybase/client": "0.23.47",
4
+ "@tachybase/server": "0.23.47",
5
5
  "lodash": "4.17.21",
6
6
  "@ant-design/icons": "5.5.2",
7
7
  "antd": "5.22.5",
8
8
  "react-router-dom": "6.28.1",
9
- "@tachybase/schema": "0.23.40",
9
+ "@tachybase/schema": "0.23.47",
10
10
  "react-i18next": "15.2.0",
11
- "@tachybase/database": "0.23.40",
12
- "@tachybase/utils": "0.23.40",
13
- "@tachybase/module-acl": "0.23.40",
14
- "@tachybase/acl": "0.23.40",
11
+ "@tachybase/database": "0.23.47",
12
+ "@tachybase/utils": "0.23.47",
13
+ "@tachybase/module-acl": "0.23.47",
14
+ "@tachybase/acl": "0.23.47",
15
15
  "sequelize": "6.37.5",
16
- "@tachybase/components": "0.23.40",
16
+ "@tachybase/components": "0.23.47",
17
17
  "@dnd-kit/core": "6.3.1",
18
18
  "ahooks": "3.8.4"
19
19
  };
@@ -55,6 +55,15 @@ var data_sources_default = (0, import_database.defineCollection)({
55
55
  name: "fixed",
56
56
  defaultValue: false
57
57
  },
58
+ {
59
+ type: "belongsToMany",
60
+ name: "roles",
61
+ target: "roles",
62
+ foreignKey: "dataSourceKey",
63
+ otherKey: "roleName",
64
+ targetKey: "name",
65
+ through: "dataSourcesRoles"
66
+ },
58
67
  {
59
68
  type: "hasMany",
60
69
  name: "collections",
@@ -23,9 +23,12 @@ module.exports = __toCommonJS(migrate_acl_resources_exports);
23
23
  var import_server = require("@tachybase/server");
24
24
  var import_utils = require("@tachybase/utils");
25
25
  class migrate_acl_resources_default extends import_server.Migration {
26
- on = "afterSync";
27
- // 'beforeLoad' or 'afterLoad'
28
- appVersion = "<0.19.0-alpha.10";
26
+ constructor() {
27
+ super(...arguments);
28
+ this.on = "afterSync";
29
+ // 'beforeLoad' or 'afterLoad'
30
+ this.appVersion = "<0.19.0-alpha.10";
31
+ }
29
32
  async up() {
30
33
  const transaction = await this.db.sequelize.transaction();
31
34
  try {
@@ -47,8 +47,11 @@ var import_data_sources_roles = __toESM(require("./resourcers/data-sources-roles
47
47
  var import_roles_data_sources_collections = require("./resourcers/roles-data-sources-collections");
48
48
  const canRefreshStatus = ["loaded", "loading-failed", "reloading-failed"];
49
49
  class PluginDataSourceManagerServer extends import_server.Plugin {
50
- dataSourceErrors = {};
51
- dataSourceStatus = {};
50
+ constructor() {
51
+ super(...arguments);
52
+ this.dataSourceErrors = {};
53
+ this.dataSourceStatus = {};
54
+ }
52
55
  async beforeLoad() {
53
56
  this.app.db.registerModels({
54
57
  DataSourcesCollectionModel: import_data_sources_collection_model.DataSourcesCollectionModel,
@@ -155,6 +158,7 @@ class PluginDataSourceManagerServer extends import_server.Plugin {
155
158
  );
156
159
  const plugin = this;
157
160
  const mapDataSourceWithCollection = (dataSourceModel, appendCollections = true) => {
161
+ var _a;
158
162
  const dataSource = app.dataSourceManager.dataSources.get(dataSourceModel.get("key"));
159
163
  const dataSourceStatus = plugin.dataSourceStatus[dataSourceModel.get("key")];
160
164
  const item = {
@@ -162,6 +166,9 @@ class PluginDataSourceManagerServer extends import_server.Plugin {
162
166
  displayName: dataSourceModel.get("displayName"),
163
167
  status: dataSourceStatus,
164
168
  type: dataSourceModel.get("type"),
169
+ options: {
170
+ baseUrl: (_a = dataSourceModel.get("options")) == null ? void 0 : _a.baseUrl
171
+ },
165
172
  // @ts-ignore
166
173
  isDBInstance: !!(dataSource == null ? void 0 : dataSource.collectionManager.db)
167
174
  };
@@ -21,8 +21,8 @@ __export(full_data_repository_exports, {
21
21
  });
22
22
  module.exports = __toCommonJS(full_data_repository_exports);
23
23
  class FullDataRepository {
24
- data = [];
25
24
  constructor(data) {
25
+ this.data = [];
26
26
  this.data = data;
27
27
  }
28
28
  async count(countOptions) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tachybase/module-data-source",
3
3
  "displayName": "Data source manager",
4
- "version": "0.23.40",
4
+ "version": "0.23.47",
5
5
  "description": "Manage data sources, including the built-in Master database, external databases, APIs, etc.",
6
6
  "keywords": [
7
7
  "Data model tools"
@@ -18,16 +18,16 @@
18
18
  "react-i18next": "^15.2.0",
19
19
  "react-router-dom": "6.28.1",
20
20
  "sequelize": "^6.37.5",
21
- "@tachybase/components": "0.23.40",
22
- "@tachybase/schema": "0.23.40"
21
+ "@tachybase/components": "0.23.47",
22
+ "@tachybase/schema": "0.23.47"
23
23
  },
24
24
  "peerDependencies": {
25
- "@tachybase/acl": "0.23.40",
26
- "@tachybase/client": "0.23.40",
27
- "@tachybase/test": "0.23.40",
28
- "@tachybase/server": "0.23.40",
29
- "@tachybase/database": "0.23.40",
30
- "@tachybase/utils": "0.23.40"
25
+ "@tachybase/acl": "0.23.47",
26
+ "@tachybase/client": "0.23.47",
27
+ "@tachybase/database": "0.23.47",
28
+ "@tachybase/server": "0.23.47",
29
+ "@tachybase/test": "0.23.47",
30
+ "@tachybase/utils": "0.23.47"
31
31
  },
32
32
  "description.zh-CN": "管理数据源,包括内置的 Master 数据库,外部的数据库、API。",
33
33
  "displayName.zh-CN": "数据源管理",