@tachybase/module-data-source 0.23.22 → 0.23.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/component/PermissionManager/PermisionProvider.d.ts +1 -0
- package/dist/client/component/PermissionManager/hooks.d.ts +6 -0
- package/dist/client/component/PermissionManager/schemas/dataSourceTable.d.ts +1 -0
- package/dist/client/component/PermissionManager/schemas/roleCollections.d.ts +24 -0
- package/dist/client/component/PermissionManager/schemas/useSaveRoleResourceAction.d.ts +1 -1
- package/dist/client/index.js +9 -9
- package/dist/externalVersion.js +8 -8
- package/package.json +9 -9
|
@@ -3,3 +3,4 @@ export declare const SettingCenterPermissionProvider: (props: any) => import("re
|
|
|
3
3
|
export declare const PermissionContext: React.Context<any>;
|
|
4
4
|
export declare const PermissionProvider: (props: any) => import("react/jsx-runtime").JSX.Element;
|
|
5
5
|
export declare const RoleRecordProvider: (props: any) => import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export declare const RoleCollectionTableBlockProvider: React.FunctionComponent<any>;
|
|
@@ -1,2 +1,26 @@
|
|
|
1
1
|
import { ISchema } from '@tachybase/schema';
|
|
2
|
+
export declare const roleCollection: {
|
|
3
|
+
name: string;
|
|
4
|
+
targetKey: string;
|
|
5
|
+
filterTargetKey: string;
|
|
6
|
+
fields: ({
|
|
7
|
+
type: string;
|
|
8
|
+
name: string;
|
|
9
|
+
interface: string;
|
|
10
|
+
uiSchema: ISchema;
|
|
11
|
+
target?: undefined;
|
|
12
|
+
collectionName?: undefined;
|
|
13
|
+
sourceKey?: undefined;
|
|
14
|
+
targetKey?: undefined;
|
|
15
|
+
} | {
|
|
16
|
+
type: string;
|
|
17
|
+
name: string;
|
|
18
|
+
target: string;
|
|
19
|
+
collectionName: string;
|
|
20
|
+
sourceKey: string;
|
|
21
|
+
targetKey: string;
|
|
22
|
+
uiSchema: {};
|
|
23
|
+
interface?: undefined;
|
|
24
|
+
})[];
|
|
25
|
+
};
|
|
2
26
|
export declare const roleCollectionsSchema: ISchema;
|
package/dist/client/index.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
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,r,f,J,S,W,C,k,Q,Z,ae){"use strict";var Kf=Object.defineProperty,Nf=Object.defineProperties;var Bf=Object.getOwnPropertyDescriptors;var Oe=Object.getOwnPropertySymbols;var Bo=Object.prototype.hasOwnProperty,Vo=Object.prototype.propertyIsEnumerable;var st=(M,a,r)=>a in M?Kf(M,a,{enumerable:!0,configurable:!0,writable:!0,value:r}):M[a]=r,F=(M,a)=>{for(var r in a||(a={}))Bo.call(a,r)&&st(M,r,a[r]);if(Oe)for(var r of Oe(a))Vo.call(a,r)&&st(M,r,a[r]);return M},B=(M,a)=>Nf(M,Bf(a));var it=(M,a)=>{var r={};for(var f in M)Bo.call(M,f)&&a.indexOf(f)<0&&(r[f]=M[f]);if(M!=null&&Oe)for(var f of Oe(M))a.indexOf(f)<0&&Vo.call(M,f)&&(r[f]=M[f]);return r};var Lo=(M,a,r)=>st(M,typeof a!="symbol"?a+"":a,r);var D=(M,a,r)=>new Promise((f,J)=>{var S=k=>{try{C(r.next(k))}catch(Q){J(Q)}},W=k=>{try{C(r.throw(k))}catch(Q){J(Q)}},C=k=>k.done?f(k.value):Promise.resolve(k.value).then(S,W);C((r=r.apply(M,a)).next())});const U="data-source",qo=e=>r.useTranslation([U,"core"],e),Ee=()=>{const e=C.useForm(),t=r.useAPIClient(),{t:o}=k.useTranslation(),n=C.useField();return n.data=n.data||{},{onClick(){return D(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}})}}},ct=()=>{const e=C.useForm(),t=C.useField(),o=r.useActionContext(),n=r.useDataBlockRequest(),s=r.useDataBlockResource();return{onClick(){return D(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(c){t.data&&(t.data.loading=!1)}})}}},Go=Object.freeze(Object.defineProperty({__proto__:null,useCreateDatabaseConnectionAction:ct,useTestConnectionAction:Ee},Symbol.toStringTag,{value:"Module"})),xe=f.createContext(null);xe.displayName="DataSourceContext";const Uo=e=>{const[t,o]=f.useState(null);return a.jsx(xe.Provider,{value:{dataSource:t,setDataSource:o},children:a.jsx(r.SchemaComponentOptions,{scope:Go,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"}],zo={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"}}]},Ho={type:"void",properties:{[C.uid()]:{type:"void","x-component":"CardItem","x-decorator":"TableBlockProvider","x-decorator-props":{collection:zo,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)}}"]}}}}}}}}}}},Wo=()=>{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]),c=f.useMemo(()=>{const p=i==null?void 0:i.status,u=lt.find(g=>g.value===p),l=[];return i&&l.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)]})}),l},[i]);return a.jsx(S.Breadcrumb,{separator:a.jsx(J.RightOutlined,{}),items:c})},Se=["string","bigInt","integer","uuid","uid"],Qo=C.observer(e=>{var l,g;const{name:t}=W.useParams(),{collectionName:o,sourceKey:n,name:s}=r.useRecord(),i=C.useField(),c=r.useCompile(),{getCollection:p}=r.useCollectionManager_deprecated(),u=(l=p(o||s,t).fields)==null?void 0:l.filter(y=>y.primaryKey||y.unique).map(y=>{var v;return{value:y.name,label:c(((v=y.uiSchema)==null?void 0:v.title)||y.title||y.name)}});return f.useEffect(()=>{var y;i.initialValue=((y=u==null?void 0:u[0])==null?void 0:y.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(),c=r.useRecord(),p=C.useField(),{collectionName:u,target:l,type:g,through:y,name:v}=c,x=c[p.props.name],{getCollection:I}=r.useCollectionManager_deprecated(),w=r.useCompile(),h=C.useForm(),[b,m]=f.useState(x);return f.useEffect(()=>{var P;p.initialValue=null;const d=["belongsTo"].includes(g)?u:["belongsToMany"].includes(g)?y:l,A=(P=I(d,i))==null?void 0:P.fields;if(A){const E=A==null?void 0:A.filter($=>Se.includes($.type)).map($=>{var K;return{value:$.name,label:w(((K=$.uiSchema)==null?void 0:K.title)||$.title||$.name)}});if(s(E),x){const $=E.find(K=>K.value===x);m(($==null?void 0:$.label)||x)}}},[g]),f.useEffect(()=>{m(x)},[x]),a.jsx("div",{children:a.jsx(S.Select,{disabled:t,value:b,options:n,showSearch:!0,onDropdownVisibleChange:d=>D(this,null,function*(){var K;const{target:A,type:P,through:E}=h.values,$=["belongsTo"].includes(P)?u||v:["belongsToMany"].includes(P)?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((K=_.data)==null?void 0:K.filter(T=>Se.includes(T.type)).map(T=>{var j;return{value:T.name,label:w(((j=T.uiSchema)==null?void 0:j.title)||T.title||T.name)}}))}}),onChange:d=>{var A;(A=e==null?void 0:e.onChange)==null||A.call(e,d),m(d)}})})},{displayName:"ForeignKey"}),Zo=C.observer(e=>{const{value:t,disabled:o}=e,{targetKey:n,target:s,type:i}=r.useRecord(),{name:c}=W.useParams(),{getCollection:p}=r.useCollectionManager_deprecated(),u=r.useAPIClient(),[l,g]=f.useState([]),[y,v]=f.useState(t||n),x=C.useForm(),I=r.useCompile(),w=C.useField();return w.required=!0,f.useEffect(()=>{var h;s&&g((h=p(s,c).fields)==null?void 0:h.filter(b=>i!=="hasMany"?b.primaryKey||b.unique:Se.includes(b.type)).map(b=>{var m;return{value:b.name,label:I(((m=b==null?void 0:b.uiSchema)==null?void 0:m.title)||b.title||b.name)}}))},[]),a.jsx("div",{children:a.jsx(S.Select,{showSearch:!0,options:l,onDropdownVisibleChange:h=>D(this,null,function*(){var d;const{target:b,type:m}=x.values;if(b&&h){const{data:A}=yield u.request({url:`dataSourcesCollections/${c}.${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(P=>m!=="hasMany"?P.primaryKey||P.unique:Se.includes(P.type)).map(P=>{var E;return{value:P.name,label:I(((E=P.uiSchema)==null?void 0:E.title)||P.title||P.name)}}))}}),onChange:h=>{var b;(b=e==null?void 0:e.onChange)==null||b.call(e,h),v(h)},value:y,disabled:o})})},{displayName:"TargetKey"}),Jo=C.observer(()=>{const e=r.useCompile(),{targetCollection:t}=nt();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"}),Xo=C.observer(e=>{const{disabled:t}=e,o=r.useCompile(),[n,s]=f.useState([]),{name:i}=W.useParams(),c=C.useField(),{getCollections:p}=r.useCollectionManager_deprecated(i),l=r.useRecord()[c.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 y=g();s(y)},[]),a.jsx("div",{children:a.jsx(S.Select,{disabled:t,showSearch:!0,popupMatchSelectWidth:!1,fieldNames:{label:"label",value:"value"},defaultValue:l,options:n,onChange:y=>{var v;(v=e==null?void 0:e.onChange)==null||v.call(e,y)}})})},{displayName:"ThroughCollection"}),Yo=(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=B(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(c){return r.useRequest(()=>Promise.resolve({data:s}),c)}},title:`${o(t.title||t.name)} - ${o('{{ t("Add field") }}')}`,properties:B(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 }}"}}}}})}}}},Ro=()=>{const e=C.useForm(),t=r.useActionContext(),{refresh:o}=r.useResourceActionContext(),n=C.useField(),s=r.useAPIClient(),i=r.useRecord(),{name:c}=W.useParams(),p=r.useDataSourceManager();return{run(){return D(this,null,function*(){yield e.submit(),n.data=n.data||{},n.data.loading=!0;const l=Q.cloneDeep(e.values);l.autoCreateReverseField||delete l.reverseField,delete l.autoCreateReverseField;try{yield s.request({url:`dataSourcesCollections/${c}.${i.name}/fields:create`,method:"post",data:l}),t.setVisible(!1),p.getDataSource(c).reload(),yield e.reset(),n.data.loading=!1,o()}catch(g){n.data.loading=!1}})}}},en=e=>{const t=r.useRecord();return a.jsx(tn,F({item:t},e))},tn=e=>{const{scope:t,getContainer:o,item:n,children:s,trigger:i,align:c,database:p}=e,{getInterface:u,getTemplate:l,collections:g}=r.useCollectionManager_deprecated(),[y,v]=f.useState(!1),[x,I]=f.useState(),[w,h]=f.useState({}),b=r.useCompile(),{t:m}=k.useTranslation(),{data:{database:d}}=r.useCurrentAppInfo(),A=T=>(d==null?void 0:d.dialect)===T,P=f.useMemo(()=>g.map(T=>({label:b(T.title),value:T.name})),[]),E=r.useFieldInterfaceOptions(),$=f.useCallback(()=>{const{availableFieldInterfaces:T}=l(n.template)||{},{exclude:j,include:N}=T||{},H=[];return E.forEach(G=>{var O;if(G.key==="relation"){let z=[];N!=null&&N.length?N.forEach(V=>{var ee;const Y=(ee=G==null?void 0:G.children)==null?void 0:ee.find(kf=>[V,V.interface].includes(kf.value));Y&&z.push(B(F({},Y),{targetScope:V==null?void 0:V.targetScope}))}):j!=null&&j.length?z=(O=G==null?void 0:G.children)==null?void 0:O.filter(V=>!j.includes(V.value)):z=G==null?void 0:G.children,z!=null&&z.length&&H.push(B(F({},G),{children:z}))}}),H},[l,n]),K=f.useMemo(()=>$().map(T=>{var j;return((j=T==null?void 0:T.children)==null?void 0:j.length)===0?null:n.template==="view"?{type:"group",label:b(T.label),title:b(T.label),key:T.label,children:T.children.filter(N=>["m2o"].includes(N.name)).map(N=>({label:b(N.title),title:b(N.title),key:N.name,dataTargetScope:N.targetScope}))}:{type:"group",label:b(T.label),title:b(T.label),key:T.label,children:T==null?void 0:T.children.filter(N=>!["o2o","subTable","linkTo"].includes(N.name)).map(N=>({label:b(N.title),title:b(N.title),key:N.name,dataTargetScope:N.targetScope}))}}).filter(T=>{var j;return(j=T==null?void 0:T.children)==null?void 0:j.length}),[$]),_=f.useMemo(()=>({style:{maxHeight:"60vh",overflow:"auto"},onClick:T=>{const j=T.item.props["data-targetScope"];j&&I(j);const N=Yo(u(T.key),n,b);N&&(h(N),v(!0))},items:K}),[u,K,n]);return n.template!=="sql"&&a.jsx(r.RecordProvider,{record:n,children:a.jsxs(r.ActionContextProvider,{value:{visible:y,setVisible:v},children:[a.jsx(S.Dropdown,{getPopupContainer:o,trigger:i,align:c,menu:_,children:s||a.jsx(S.Button,{icon:a.jsx(J.PlusOutlined,{}),type:"primary",children:m("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:Ro,record:n,showReverseFieldConfig:!1,targetScope:x,collections:P,isDialect:A,disabledJSONB:!1,createMainOnly:!0},t)})]})})},ut=(e,t)=>{const o=[];return e.forEach(n=>{const s=n.children.filter(i=>{var c;return(c=i==null?void 0:i.availableTypes)==null?void 0:c.includes(t)});o.push({label:n.label,key:n.key,children:s})}),o.filter(n=>t==="sort"?n.key==="advanced":n.children.length>0)},on=C.observer(e=>{var v;const{value:t,handleFieldChange:o}=e,n=r.useRecord(),{getInterface:s}=r.useCollectionManager_deprecated(),i=r.useCompile(),c=r.useFieldInterfaceOptions(),p=ut(c,n.type),u=C.useForm(),l=C.useField(),[g,y]=f.useState(p);return["oho","obo","o2m","m2o","m2m"].includes(n.interface)?a.jsx(S.Tag,{children:i((v=c.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 I=s(x);o({interface:x,uiSchema:F({title:(w=n==null?void 0:n.uiSchema)==null?void 0:w.title},(h=I==null?void 0:I.default)==null?void 0:h.uiSchema)},n.name)},onDropdownVisibleChange:x=>{var I,w;if(x&&(n!=null&&n.possibleTypes)){const h=(w=(I=Object.values(u.values))==null?void 0:I[0])==null?void 0:w[l.index],b=(h==null?void 0:h.type)||n.type,m=ut(c,b);y(m)}},children:g.map(x=>a.jsx(S.Select.OptGroup,{label:i(x.label),children:x.children.map(I=>a.jsx(S.Select.Option,{value:I.name,children:i(I.label)},I.name))},x.key))})},{displayName:"CollectionFieldInterfaceSelect"}),nn=C.observer(e=>{const{value:t,handleFieldChange:o}=e,n=r.useRecord(),[s,i]=f.useState(t),c=l=>{i(l)},p=f.useMemo(()=>Q.debounce(l=>{o({uiSchema:B(F({},n==null?void 0:n.uiSchema),{title:l})},n.name)},1e3),[o,n]),u=l=>{const g=l.target.value;c(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"}),rn=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(c=>({label:c,value:c})))||[],onChange:c=>{n==null||n(c),o(B(F({},i),{type:c}),s.name)}}):a.jsx(S.Tag,{children:t})},{displayName:"FieldType"}),an=r.withDynamicSchemaProps(e=>{const{t}=k.useTranslation(),{isTitleField:o}=r.useCollectionManager_deprecated(),[n,s]=f.useState(null),{setTitleField:i,filterByTk:c,dataSourceKey:p}=r.useProps(e),u=r.useRecord(),l=r.useAPIClient(),{refreshRM:g,titleField:y}=nt(),v=x=>D(this,null,function*(){s(u),yield l.request({url:`dataSources/${p}/collections:update?filterByTk=${c}`,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)===(y||"id"),onChange:v})}):null},{displayName:"TitleField"}),sn=()=>{const{t:e}=k.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 cn(){this.__data__=[],this.size=0}var ln=cn;function pn(e,t){return e===t||e!==e&&t!==t}var dt=pn,un=dt;function dn(e,t){for(var o=e.length;o--;)if(un(e[o][0],t))return o;return-1}var Ae=dn,mn=Ae,yn=Array.prototype,fn=yn.splice;function gn(e){var t=this.__data__,o=mn(t,e);if(o<0)return!1;var n=t.length-1;return o==n?t.pop():fn.call(t,o,1),--this.size,!0}var vn=gn,Cn=Ae;function hn(e){var t=this.__data__,o=Cn(t,e);return o<0?void 0:t[o][1]}var bn=hn,xn=Ae;function Sn(e){return xn(this.__data__,e)>-1}var An=Sn,$n=Ae;function Tn(e,t){var o=this.__data__,n=$n(o,e);return n<0?(++this.size,o.push([e,t])):o[n][1]=t,this}var Fn=Tn,wn=ln,_n=vn,Pn=bn,Dn=An,In=Fn;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=wn,se.prototype.delete=_n,se.prototype.get=Pn,se.prototype.has=Dn,se.prototype.set=In;var $e=se,On=$e;function En(){this.__data__=new On,this.size=0}var Mn=En;function jn(e){var t=this.__data__,o=t.delete(e);return this.size=t.size,o}var kn=jn;function Kn(e){return this.__data__.get(e)}var Nn=Kn;function Bn(e){return this.__data__.has(e)}var Vn=Bn,Ln=typeof R=="object"&&R&&R.Object===Object&&R,mt=Ln,qn=mt,Gn=typeof self=="object"&&self&&self.Object===Object&&self,Un=qn||Gn||Function("return this")(),X=Un,zn=X,Hn=zn.Symbol,fe=Hn,yt=fe,ft=Object.prototype,Wn=ft.hasOwnProperty,Qn=ft.toString,ge=yt?yt.toStringTag:void 0;function Zn(e){var t=Wn.call(e,ge),o=e[ge];try{e[ge]=void 0;var n=!0}catch(i){}var s=Qn.call(e);return n&&(t?e[ge]=o:delete e[ge]),s}var Jn=Zn,Xn=Object.prototype,Yn=Xn.toString;function Rn(e){return Yn.call(e)}var er=Rn,gt=fe,tr=Jn,or=er,nr="[object Null]",rr="[object Undefined]",vt=gt?gt.toStringTag:void 0;function ar(e){return e==null?e===void 0?rr:nr:vt&&vt in Object(e)?tr(e):or(e)}var ie=ar;function sr(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var ce=sr,ir=ie,cr=ce,lr="[object AsyncFunction]",pr="[object Function]",ur="[object GeneratorFunction]",dr="[object Proxy]";function mr(e){if(!cr(e))return!1;var t=ir(e);return t==pr||t==ur||t==lr||t==dr}var Ct=mr,yr=X,fr=yr["__core-js_shared__"],gr=fr,je=gr,ht=function(){var e=/[^.]+$/.exec(je&&je.keys&&je.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function vr(e){return!!ht&&ht in e}var Cr=vr,hr=Function.prototype,br=hr.toString;function xr(e){if(e!=null){try{return br.call(e)}catch(t){}try{return e+""}catch(t){}}return""}var bt=xr,Sr=Ct,Ar=Cr,$r=ce,Tr=bt,Fr=/[\\^$.*+?()[\]{}|]/g,wr=/^\[object .+?Constructor\]$/,_r=Function.prototype,Pr=Object.prototype,Dr=_r.toString,Ir=Pr.hasOwnProperty,Or=RegExp("^"+Dr.call(Ir).replace(Fr,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Er(e){if(!$r(e)||Ar(e))return!1;var t=Sr(e)?Or:wr;return t.test(Tr(e))}var Mr=Er;function jr(e,t){return e==null?void 0:e[t]}var kr=jr,Kr=Mr,Nr=kr;function Br(e,t){var o=Nr(e,t);return Kr(o)?o:void 0}var te=Br,Vr=te,Lr=X,qr=Vr(Lr,"Map"),ke=qr,Gr=te,Ur=Gr(Object,"create"),Te=Ur,xt=Te;function zr(){this.__data__=xt?xt(null):{},this.size=0}var Hr=zr;function Wr(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Qr=Wr,Zr=Te,Jr="__lodash_hash_undefined__",Xr=Object.prototype,Yr=Xr.hasOwnProperty;function Rr(e){var t=this.__data__;if(Zr){var o=t[e];return o===Jr?void 0:o}return Yr.call(t,e)?t[e]:void 0}var ea=Rr,ta=Te,oa=Object.prototype,na=oa.hasOwnProperty;function ra(e){var t=this.__data__;return ta?t[e]!==void 0:na.call(t,e)}var aa=ra,sa=Te,ia="__lodash_hash_undefined__";function ca(e,t){var o=this.__data__;return this.size+=this.has(e)?0:1,o[e]=sa&&t===void 0?ia:t,this}var la=ca,pa=Hr,ua=Qr,da=ea,ma=aa,ya=la;function le(e){var t=-1,o=e==null?0:e.length;for(this.clear();++t<o;){var n=e[t];this.set(n[0],n[1])}}le.prototype.clear=pa,le.prototype.delete=ua,le.prototype.get=da,le.prototype.has=ma,le.prototype.set=ya;var fa=le,St=fa,ga=$e,va=ke;function Ca(){this.size=0,this.__data__={hash:new St,map:new(va||ga),string:new St}}var ha=Ca;function ba(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var xa=ba,Sa=xa;function Aa(e,t){var o=e.__data__;return Sa(t)?o[typeof t=="string"?"string":"hash"]:o.map}var Fe=Aa,$a=Fe;function Ta(e){var t=$a(this,e).delete(e);return this.size-=t?1:0,t}var Fa=Ta,wa=Fe;function _a(e){return wa(this,e).get(e)}var Pa=_a,Da=Fe;function Ia(e){return Da(this,e).has(e)}var Oa=Ia,Ea=Fe;function Ma(e,t){var o=Ea(this,e),n=o.size;return o.set(e,t),this.size+=o.size==n?0:1,this}var ja=Ma,ka=ha,Ka=Fa,Na=Pa,Ba=Oa,Va=ja;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=ka,pe.prototype.delete=Ka,pe.prototype.get=Na,pe.prototype.has=Ba,pe.prototype.set=Va;var At=pe,La=$e,qa=ke,Ga=At,Ua=200;function za(e,t){var o=this.__data__;if(o instanceof La){var n=o.__data__;if(!qa||n.length<Ua-1)return n.push([e,t]),this.size=++o.size,this;o=this.__data__=new Ga(n)}return o.set(e,t),this.size=o.size,this}var Ha=za,Wa=$e,Qa=Mn,Za=kn,Ja=Nn,Xa=Vn,Ya=Ha;function ue(e){var t=this.__data__=new Wa(e);this.size=t.size}ue.prototype.clear=Qa,ue.prototype.delete=Za,ue.prototype.get=Ja,ue.prototype.has=Xa,ue.prototype.set=Ya;var Ra=ue;function es(e,t){for(var o=-1,n=e==null?0:e.length;++o<n&&t(e[o],o,e)!==!1;);return e}var ts=es,os=te,ns=function(){try{var e=os(Object,"defineProperty");return e({},"",{}),e}catch(t){}}(),$t=ns,Tt=$t;function rs(e,t,o){t=="__proto__"&&Tt?Tt(e,t,{configurable:!0,enumerable:!0,value:o,writable:!0}):e[t]=o}var Ft=rs,as=Ft,ss=dt,is=Object.prototype,cs=is.hasOwnProperty;function ls(e,t,o){var n=e[t];(!(cs.call(e,t)&&ss(n,o))||o===void 0&&!(t in e))&&as(e,t,o)}var Ke=ls,ps=Ke,us=Ft;function ds(e,t,o,n){var s=!o;o||(o={});for(var i=-1,c=t.length;++i<c;){var p=t[i],u=n?n(o[p],e[p],p,o,e):void 0;u===void 0&&(u=e[p]),s?us(o,p,u):ps(o,p,u)}return o}var ve=ds;function ms(e,t){for(var o=-1,n=Array(e);++o<e;)n[o]=t(o);return n}var ys=ms;function fs(e){return e!=null&&typeof e=="object"}var oe=fs,gs=ie,vs=oe,Cs="[object Arguments]";function hs(e){return vs(e)&&gs(e)==Cs}var bs=hs,wt=bs,xs=oe,_t=Object.prototype,Ss=_t.hasOwnProperty,As=_t.propertyIsEnumerable,$s=wt(function(){return arguments}())?wt:function(e){return xs(e)&&Ss.call(e,"callee")&&!As.call(e,"callee")},Pt=$s,Ts=Array.isArray,ne=Ts,we={exports:{}};function Fs(){return!1}var ws=Fs;we.exports,function(e,t){var o=X,n=ws,s=t&&!t.nodeType&&t,i=s&&!0&&e&&!e.nodeType&&e,c=i&&i.exports===s,p=c?o.Buffer:void 0,u=p?p.isBuffer:void 0,l=u||n;e.exports=l}(we,we.exports);var Dt=we.exports,_s=9007199254740991,Ps=/^(?:0|[1-9]\d*)$/;function Ds(e,t){var o=typeof e;return t=t==null?_s:t,!!t&&(o=="number"||o!="symbol"&&Ps.test(e))&&e>-1&&e%1==0&&e<t}var It=Ds,Is=9007199254740991;function Os(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Is}var Ot=Os,Es=ie,Ms=Ot,js=oe,ks="[object Arguments]",Ks="[object Array]",Ns="[object Boolean]",Bs="[object Date]",Vs="[object Error]",Ls="[object Function]",qs="[object Map]",Gs="[object Number]",Us="[object Object]",zs="[object RegExp]",Hs="[object Set]",Ws="[object String]",Qs="[object WeakMap]",Zs="[object ArrayBuffer]",Js="[object DataView]",Xs="[object Float32Array]",Ys="[object Float64Array]",Rs="[object Int8Array]",ei="[object Int16Array]",ti="[object Int32Array]",oi="[object Uint8Array]",ni="[object Uint8ClampedArray]",ri="[object Uint16Array]",ai="[object Uint32Array]",q={};q[Xs]=q[Ys]=q[Rs]=q[ei]=q[ti]=q[oi]=q[ni]=q[ri]=q[ai]=!0,q[ks]=q[Ks]=q[Zs]=q[Ns]=q[Js]=q[Bs]=q[Vs]=q[Ls]=q[qs]=q[Gs]=q[Us]=q[zs]=q[Hs]=q[Ws]=q[Qs]=!1;function si(e){return js(e)&&Ms(e.length)&&!!q[Es(e)]}var ii=si;function ci(e){return function(t){return e(t)}}var Ne=ci,_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,c=i&&o.process,p=function(){try{var u=s&&s.require&&s.require("util").types;return u||c&&c.binding&&c.binding("util")}catch(l){}}();e.exports=p}(_e,_e.exports);var Be=_e.exports,li=ii,pi=Ne,Et=Be,Mt=Et&&Et.isTypedArray,ui=Mt?pi(Mt):li,di=ui,mi=ys,yi=Pt,fi=ne,gi=Dt,vi=It,Ci=di,hi=Object.prototype,bi=hi.hasOwnProperty;function xi(e,t){var o=fi(e),n=!o&&yi(e),s=!o&&!n&&gi(e),i=!o&&!n&&!s&&Ci(e),c=o||n||s||i,p=c?mi(e.length,String):[],u=p.length;for(var l in e)(t||bi.call(e,l))&&!(c&&(l=="length"||s&&(l=="offset"||l=="parent")||i&&(l=="buffer"||l=="byteLength"||l=="byteOffset")||vi(l,u)))&&p.push(l);return p}var jt=xi,Si=Object.prototype;function Ai(e){var t=e&&e.constructor,o=typeof t=="function"&&t.prototype||Si;return e===o}var Ve=Ai;function $i(e,t){return function(o){return e(t(o))}}var kt=$i,Ti=kt,Fi=Ti(Object.keys,Object),wi=Fi,_i=Ve,Pi=wi,Di=Object.prototype,Ii=Di.hasOwnProperty;function Oi(e){if(!_i(e))return Pi(e);var t=[];for(var o in Object(e))Ii.call(e,o)&&o!="constructor"&&t.push(o);return t}var Ei=Oi,Mi=Ct,ji=Ot;function ki(e){return e!=null&&ji(e.length)&&!Mi(e)}var Kt=ki,Ki=jt,Ni=Ei,Bi=Kt;function Vi(e){return Bi(e)?Ki(e):Ni(e)}var Le=Vi,Li=ve,qi=Le;function Gi(e,t){return e&&Li(t,qi(t),e)}var Ui=Gi;function zi(e){var t=[];if(e!=null)for(var o in Object(e))t.push(o);return t}var Hi=zi,Wi=ce,Qi=Ve,Zi=Hi,Ji=Object.prototype,Xi=Ji.hasOwnProperty;function Yi(e){if(!Wi(e))return Zi(e);var t=Qi(e),o=[];for(var n in e)n=="constructor"&&(t||!Xi.call(e,n))||o.push(n);return o}var Ri=Yi,ec=jt,tc=Ri,oc=Kt;function nc(e){return oc(e)?ec(e,!0):tc(e)}var qe=nc,rc=ve,ac=qe;function sc(e,t){return e&&rc(t,ac(t),e)}var ic=sc,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,c=i?o.Buffer:void 0,p=c?c.allocUnsafe:void 0;function u(l,g){if(g)return l.slice();var y=l.length,v=p?p(y):new l.constructor(y);return l.copy(v),v}e.exports=u}(Pe,Pe.exports);var cc=Pe.exports;function lc(e,t){var o=-1,n=e.length;for(t||(t=Array(n));++o<n;)t[o]=e[o];return t}var pc=lc;function uc(e,t){for(var o=-1,n=e==null?0:e.length,s=0,i=[];++o<n;){var c=e[o];t(c,o,e)&&(i[s++]=c)}return i}var dc=uc;function mc(){return[]}var Nt=mc,yc=dc,fc=Nt,gc=Object.prototype,vc=gc.propertyIsEnumerable,Bt=Object.getOwnPropertySymbols,Cc=Bt?function(e){return e==null?[]:(e=Object(e),yc(Bt(e),function(t){return vc.call(e,t)}))}:fc,Ge=Cc,hc=ve,bc=Ge;function xc(e,t){return hc(e,bc(e),t)}var Sc=xc;function Ac(e,t){for(var o=-1,n=t.length,s=e.length;++o<n;)e[s+o]=t[o];return e}var Ue=Ac,$c=kt,Tc=$c(Object.getPrototypeOf,Object),ze=Tc,Fc=Ue,wc=ze,_c=Ge,Pc=Nt,Dc=Object.getOwnPropertySymbols,Ic=Dc?function(e){for(var t=[];e;)Fc(t,_c(e)),e=wc(e);return t}:Pc,Vt=Ic,Oc=ve,Ec=Vt;function Mc(e,t){return Oc(e,Ec(e),t)}var jc=Mc,kc=Ue,Kc=ne;function Nc(e,t,o){var n=t(e);return Kc(e)?n:kc(n,o(e))}var Lt=Nc,Bc=Lt,Vc=Ge,Lc=Le;function qc(e){return Bc(e,Lc,Vc)}var Gc=qc,Uc=Lt,zc=Vt,Hc=qe;function Wc(e){return Uc(e,Hc,zc)}var qt=Wc,Qc=te,Zc=X,Jc=Qc(Zc,"DataView"),Xc=Jc,Yc=te,Rc=X,el=Yc(Rc,"Promise"),tl=el,ol=te,nl=X,rl=ol(nl,"Set"),al=rl,sl=te,il=X,cl=sl(il,"WeakMap"),ll=cl,He=Xc,We=ke,Qe=tl,Ze=al,Je=ll,Gt=ie,de=bt,Ut="[object Map]",pl="[object Object]",zt="[object Promise]",Ht="[object Set]",Wt="[object WeakMap]",Qt="[object DataView]",ul=de(He),dl=de(We),ml=de(Qe),yl=de(Ze),fl=de(Je),re=Gt;(He&&re(new He(new ArrayBuffer(1)))!=Qt||We&&re(new We)!=Ut||Qe&&re(Qe.resolve())!=zt||Ze&&re(new Ze)!=Ht||Je&&re(new Je)!=Wt)&&(re=function(e){var t=Gt(e),o=t==pl?e.constructor:void 0,n=o?de(o):"";if(n)switch(n){case ul:return Qt;case dl:return Ut;case ml:return zt;case yl:return Ht;case fl:return Wt}return t});var Xe=re,gl=Object.prototype,vl=gl.hasOwnProperty;function Cl(e){var t=e.length,o=new e.constructor(t);return t&&typeof e[0]=="string"&&vl.call(e,"index")&&(o.index=e.index,o.input=e.input),o}var hl=Cl,bl=X,xl=bl.Uint8Array,Sl=xl,Zt=Sl;function Al(e){var t=new e.constructor(e.byteLength);return new Zt(t).set(new Zt(e)),t}var Ye=Al,$l=Ye;function Tl(e,t){var o=t?$l(e.buffer):e.buffer;return new e.constructor(o,e.byteOffset,e.byteLength)}var Fl=Tl,wl=/\w*$/;function _l(e){var t=new e.constructor(e.source,wl.exec(e));return t.lastIndex=e.lastIndex,t}var Pl=_l,Jt=fe,Xt=Jt?Jt.prototype:void 0,Yt=Xt?Xt.valueOf:void 0;function Dl(e){return Yt?Object(Yt.call(e)):{}}var Il=Dl,Ol=Ye;function El(e,t){var o=t?Ol(e.buffer):e.buffer;return new e.constructor(o,e.byteOffset,e.length)}var Ml=El,jl=Ye,kl=Fl,Kl=Pl,Nl=Il,Bl=Ml,Vl="[object Boolean]",Ll="[object Date]",ql="[object Map]",Gl="[object Number]",Ul="[object RegExp]",zl="[object Set]",Hl="[object String]",Wl="[object Symbol]",Ql="[object ArrayBuffer]",Zl="[object DataView]",Jl="[object Float32Array]",Xl="[object Float64Array]",Yl="[object Int8Array]",Rl="[object Int16Array]",ep="[object Int32Array]",tp="[object Uint8Array]",op="[object Uint8ClampedArray]",np="[object Uint16Array]",rp="[object Uint32Array]";function ap(e,t,o){var n=e.constructor;switch(t){case Ql:return jl(e);case Vl:case Ll:return new n(+e);case Zl:return kl(e,o);case Jl:case Xl:case Yl:case Rl:case ep:case tp:case op:case np:case rp:return Bl(e,o);case ql:return new n;case Gl:case Hl:return new n(e);case Ul:return Kl(e);case zl:return new n;case Wl:return Nl(e)}}var sp=ap,ip=ce,Rt=Object.create,cp=function(){function e(){}return function(t){if(!ip(t))return{};if(Rt)return Rt(t);e.prototype=t;var o=new e;return e.prototype=void 0,o}}(),lp=cp,pp=lp,up=ze,dp=Ve;function mp(e){return typeof e.constructor=="function"&&!dp(e)?pp(up(e)):{}}var yp=mp,fp=Xe,gp=oe,vp="[object Map]";function Cp(e){return gp(e)&&fp(e)==vp}var hp=Cp,bp=hp,xp=Ne,eo=Be,to=eo&&eo.isMap,Sp=to?xp(to):bp,Ap=Sp,$p=Xe,Tp=oe,Fp="[object Set]";function wp(e){return Tp(e)&&$p(e)==Fp}var _p=wp,Pp=_p,Dp=Ne,oo=Be,no=oo&&oo.isSet,Ip=no?Dp(no):Pp,Op=Ip,Ep=Ra,Mp=ts,jp=Ke,kp=Ui,Kp=ic,Np=cc,Bp=pc,Vp=Sc,Lp=jc,qp=Gc,Gp=qt,Up=Xe,zp=hl,Hp=sp,Wp=yp,Qp=ne,Zp=Dt,Jp=Ap,Xp=ce,Yp=Op,Rp=Le,eu=qe,tu=1,ou=2,nu=4,ro="[object Arguments]",ru="[object Array]",au="[object Boolean]",su="[object Date]",iu="[object Error]",ao="[object Function]",cu="[object GeneratorFunction]",lu="[object Map]",pu="[object Number]",so="[object Object]",uu="[object RegExp]",du="[object Set]",mu="[object String]",yu="[object Symbol]",fu="[object WeakMap]",gu="[object ArrayBuffer]",vu="[object DataView]",Cu="[object Float32Array]",hu="[object Float64Array]",bu="[object Int8Array]",xu="[object Int16Array]",Su="[object Int32Array]",Au="[object Uint8Array]",$u="[object Uint8ClampedArray]",Tu="[object Uint16Array]",Fu="[object Uint32Array]",L={};L[ro]=L[ru]=L[gu]=L[vu]=L[au]=L[su]=L[Cu]=L[hu]=L[bu]=L[xu]=L[Su]=L[lu]=L[pu]=L[so]=L[uu]=L[du]=L[mu]=L[yu]=L[Au]=L[$u]=L[Tu]=L[Fu]=!0,L[iu]=L[ao]=L[fu]=!1;function De(e,t,o,n,s,i){var c,p=t&tu,u=t&ou,l=tνif(o&&(c=s?o(e,n,s,i):o(e)),c!==void 0)return c;if(!Xp(e))return e;var g=Qp(e);if(g){if(c=zp(e),!p)return Bp(e,c)}else{var y=Up(e),v=y==ao||y==cu;if(Zp(e))return Np(e,p);if(y==so||y==ro||v&&!s){if(c=u||v?{}:Wp(e),!p)return u?Lp(e,Kp(c,e)):Vp(e,kp(c,e))}else{if(!L[y])return s?e:{};c=Hp(e,y,p)}}i||(i=new Ep);var x=i.get(e);if(x)return x;i.set(e,c),Yp(e)?e.forEach(function(h){c.add(De(h,t,o,h,e,i))}):Jp(e)&&e.forEach(function(h,b){c.set(b,De(h,t,o,b,e,i))});var I=l?u?Gp:qp:u?eu:Rp,w=g?void 0:I(e);return Mp(w||e,function(h,b){w&&(b=h,h=e[b]),jp(c,b,De(h,t,o,b,e,i))}),c}var io=De,wu=io,_u=1,Pu=4;function Du(e){return wu(e,_u|Pu)}var Iu=Du;const Ce=Me(Iu);function Ou(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 co=Ou,Eu=ie,Mu=oe,ju="[object Symbol]";function ku(e){return typeof e=="symbol"||Mu(e)&&Eu(e)==ju}var Re=ku,Ku=ne,Nu=Re,Bu=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Vu=/^\w*$/;function Lu(e,t){if(Ku(e))return!1;var o=typeof e;return o=="number"||o=="symbol"||o=="boolean"||e==null||Nu(e)?!0:Vu.test(e)||!Bu.test(e)||t!=null&&e in Object(t)}var qu=Lu,lo=At,Gu="Expected a function";function et(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(Gu);var o=function(){var n=arguments,s=t?t.apply(this,n):n[0],i=o.cache;if(i.has(s))return i.get(s);var c=e.apply(this,n);return o.cache=i.set(s,c)||i,c};return o.cache=new(et.Cache||lo),o}et.Cache=lo;var Uu=et,zu=Uu,Hu=500;function Wu(e){var t=zu(e,function(n){return o.size===Hu&&o.clear(),n}),o=t.cache;return t}var Qu=Wu,Zu=Qu,Ju=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Xu=/\\(\\)?/g,Yu=Zu(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(Ju,function(o,n,s,i){t.push(s?i.replace(Xu,"$1"):n||o)}),t}),Ru=Yu,po=fe,ed=co,td=ne,od=Re,nd=1/0,uo=po?po.prototype:void 0,mo=uo?uo.toString:void 0;function yo(e){if(typeof e=="string")return e;if(td(e))return ed(e,yo)+"";if(od(e))return mo?mo.call(e):"";var t=e+"";return t=="0"&&1/e==-nd?"-0":t}var rd=yo,ad=rd;function sd(e){return e==null?"":ad(e)}var id=sd,cd=ne,ld=qu,pd=Ru,ud=id;function dd(e,t){return cd(e)?e:ld(e,t)?[e]:pd(ud(e))}var Ie=dd;function md(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}var yd=md,fd=Re,gd=1/0;function vd(e){if(typeof e=="string"||fd(e))return e;var t=e+"";return t=="0"&&1/e==-gd?"-0":t}var tt=vd,Cd=Ie,hd=tt;function bd(e,t){t=Cd(t,e);for(var o=0,n=t.length;e!=null&&o<n;)e=e[hd(t[o++])];return o&&o==n?e:void 0}var xd=bd;function Sd(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 Ad=Sd,$d=xd,Td=Ad;function Fd(e,t){return t.length<2?e:$d(e,Td(t,0,-1))}var wd=Fd,_d=Ie,Pd=yd,Dd=wd,Id=tt;function Od(e,t){return t=_d(t,e),e=Dd(e,t),e==null||delete e[Id(Pd(t))]}var Ed=Od,Md=ie,jd=ze,kd=oe,Kd="[object Object]",Nd=Function.prototype,Bd=Object.prototype,fo=Nd.toString,Vd=Bd.hasOwnProperty,Ld=fo.call(Object);function qd(e){if(!kd(e)||Md(e)!=Kd)return!1;var t=jd(e);if(t===null)return!0;var o=Vd.call(t,"constructor")&&t.constructor;return typeof o=="function"&&o instanceof o&&fo.call(o)==Ld}var Gd=qd,Ud=Gd;function zd(e){return Ud(e)?void 0:e}var Hd=zd,go=fe,Wd=Pt,Qd=ne,vo=go?go.isConcatSpreadable:void 0;function Zd(e){return Qd(e)||Wd(e)||!!(vo&&e&&e[vo])}var Jd=Zd,Xd=Ue,Yd=Jd;function Co(e,t,o,n,s){var i=-1,c=e.length;for(o||(o=Yd),s||(s=[]);++i<c;){var p=e[i];t>0&&o(p)?t>1?Co(p,t-1,o,n,s):Xd(s,p):n||(s[s.length]=p)}return s}var Rd=Co,em=Rd;function tm(e){var t=e==null?0:e.length;return t?em(e,1):[]}var om=tm;function nm(e,t,o){switch(o.length){case 0:return e.call(t);case 1:return e.call(t,o[0]);case 2:return e.call(t,o[0],o[1]);case 3:return e.call(t,o[0],o[1],o[2])}return e.apply(t,o)}var rm=nm,am=rm,ho=Math.max;function sm(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),c=Array(i);++s<i;)c[s]=n[t+s];s=-1;for(var p=Array(t+1);++s<t;)p[s]=n[s];return p[t]=o(c),am(e,this,p)}}var im=sm;function cm(e){return function(){return e}}var lm=cm;function pm(e){return e}var um=pm,dm=lm,bo=$t,mm=um,ym=bo?function(e,t){return bo(e,"toString",{configurable:!0,enumerable:!1,value:dm(t),writable:!0})}:mm,fm=ym,gm=800,vm=16,Cm=Date.now;function hm(e){var t=0,o=0;return function(){var n=Cm(),s=vm-(n-o);if(o=n,s>0){if(++t>=gm)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var bm=hm,xm=fm,Sm=bm,Am=Sm(xm),$m=Am,Tm=om,Fm=im,wm=$m;function _m(e){return wm(Fm(e,void 0,Tm),e+"")}var Pm=_m,Dm=co,Im=io,Om=Ed,Em=Ie,Mm=ve,jm=Hd,km=Pm,Km=qt,Nm=1,Bm=2,Vm=4,Lm=km(function(e,t){var o={};if(e==null)return o;var n=!1;t=Dm(t,function(i){return i=Em(i,e),n||(n=i.length>1),i}),Mm(e,Km(e),o),n&&(o=Im(o,Nm|Bm|Vm,jm));for(var s=t.length;s--;)Om(o,t[s]);return o}),qm=Lm;const Gm=Me(qm);var Um=Ke,zm=Ie,Hm=It,xo=ce,Wm=tt;function Qm(e,t,o,n){if(!xo(e))return e;t=zm(t,e);for(var s=-1,i=t.length,c=i-1,p=e;p!=null&&++s<i;){var u=Wm(t[s]),l=o;if(u==="__proto__"||u==="constructor"||u==="prototype")return e;if(s!=c){var g=p[u];l=n?n(g,u,p):void 0,l===void 0&&(l=xo(g)?g:Hm(t[s+1])?[]:{})}Um(p,u,l),p=p[u]}return e}var Zm=Qm,Jm=Zm;function Xm(e,t,o){return e==null?e:Jm(e,t,o)}var Ym=Xm;const So=Me(Ym),Rm=({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(c){return r.useRequest(()=>Promise.resolve({data:Ce(Gm(e.default,["uiSchema.rawTitle"]))}),c)}},title:`${n((o==null?void 0:o.title)||(o==null?void 0:o.name))} - ${n('{{ t("Edit field") }}')}`,properties:B(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 }}"}}}}})}}}},ey=()=>{const e=C.useForm(),t=r.useAPIClient(),o=r.useActionContext(),{refresh:n}=r.useResourceActionContext(),{targetCollection:s}=nt(),{name:i}=W.useParams(),{name:c}=r.useRecord(),p=r.useDataSourceManager();return{run(){return D(this,null,function*(){yield e.submit();const l=Ce(e.values);l.autoCreateReverseField||delete l.reverseField,delete l.autoCreateReverseField,yield t.request({url:`dataSourcesCollections/${i}.${s.name}/fields:update?filterByTk=${c}`,method:"post",data:l}),o.setVisible(!1),p.getDataSource(i).reload(),yield e.reset(),n()})}}},ty=e=>{const t=r.useRecord(),o=r.useCollectionParentRecordData();return a.jsx(oy,F({item:t,parentItem:o},e))},oy=e=>{const E=e,{scope:t,getContainer:o,item:n,parentItem:s,children:i}=E,c=it(E,["scope","getContainer","item","parentItem","children"]),{getInterface:p,collections:u,getCollection:l}=r.useCollectionManager_deprecated(),{data:{database:g}}=r.useCurrentAppInfo(),[y,v]=f.useState(!1),[x,I]=f.useState({}),w=r.useAPIClient(),{t:h}=k.useTranslation(),b=r.useCompile(),{name:m}=W.useParams(),d=$=>(g==null?void 0:g.dialect)===$,A=f.useMemo(()=>u.map($=>({label:b($.title),value:$.name})),[]),P=f.useMemo(()=>{var $,K;return(n==null?void 0:n.fields)||((K=($=l(n.collectionName,m))==null?void 0:$.options)==null?void 0:K.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:y,setVisible:v},children:[a.jsx("a",B(F({},c),{onClick:()=>D(this,null,function*(){var j,N,H;const{data:$}=yield w.request({url:`dataSourcesCollections/${m}.${s.name}/fields:get?filterByTk=${n.name}`,params:{appends:["reverseField"]}}),K=p((j=$==null?void 0:$.data)==null?void 0:j.interface),_=Ce($==null?void 0:$.data)||{};_!=null&&_.reverseField||(_.autoCreateReverseField=!1,_.reverseField=(N=K==null?void 0:K.default)==null?void 0:N.reverseField,So(_.reverseField,"name",`f_${C.uid()}`),So(_.reverseField,"uiSchema.title",(H=n.__parent)==null?void 0:H.title));const T=Rm({schema:B(F({},K),{default:_}),record:n,parentRecord:s,compile:b,getContainer:o});I(T),v(!0)}),children:i||h("Edit")})),a.jsx(r.SchemaComponent,{schema:x,components:{ArrayTable:ae.ArrayTable},scope:B(F({getContainer:o,useUpdateCollectionField:ey,useCancelAction:r.useCancelAction,showReverseFieldConfig:!1,collections:A,isDialect:d,scopeKeyOptions:P,disabledJSONB:!0},t),{createOnly:!1,createMainOnly:!1})})]})})},ny=()=>{const{refresh:e}=r.useResourceActionContext(),{name:t}=W.useParams(),{name:o,collectionName:n}=r.useRecord(),s=r.useAPIClient();return{run(){return D(this,null,function*(){yield s.request({url:`dataSourcesCollections/${t}.${n}/fields:destroy?filterByTk=${o}`,method:"post"}),e()})}}},ry=()=>{const{state:e,setState:t,refresh:o}=r.useResourceActionContext(),{t:n}=k.useTranslation(),{name:s}=W.useParams(),i=r.useAPIClient(),{name:c}=r.useRecord();return{run(){return D(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}.${c}/fields:destroy`,method:"post",params:{filterByTk:(e==null?void 0:e.selectedRowKeys)||[]}}),t==null||t({selectedRowKeys:[]}),o()})}}},ay=()=>{const{run:e}=ry();return{run(){return D(this,null,function*(){yield e()})}}},sy=()=>{const{run:e}=ny();return{run(){return D(this,null,function*(){yield e()})}}},iy={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"}}]},cy={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]) }}"}}}]}}}}}}}}},ot=f.createContext({refreshRM:()=>{},titleField:null,targetCollection:null});ot.displayName="RemoteCollectionContext";const nt=()=>f.useContext(ot),Ao=()=>{const e=C.useField(),t=f.useMemo(()=>C.createForm(),[]),o=r.useAttach(t.createArrayField(B(F({},e.props),{basePath:""}))),{t:n}=k.useTranslation(),{name:s}=W.useParams(),i=r.useAPIClient(),c=r.useCompile(),p=f.useContext(r.ResourceActionContext),u=r.useResourceContext(),{targetKey:l}=u||{},g=r.useRecord(),{[l]:y,titleField:v,name:x}=g,[I,w]=f.useState(v),h=E=>{const $=f.useContext(r.ResourceActionContext),K=C.useField();return f.useEffect(()=>{$.loading||(E==null||E.onSuccess($.data),K.componentProps.dragSort=!!$.dragSort)},[$.loading]),$},b={association:{sourceKey:"name",targetKey:"name"},dragSort:!1,collection:iy,request:{url:`dataSourcesCollections/${s}.${x}/fields:list`,params:{paginate:!1,filter:{$or:[{"interface.$not":null},{"options.source.$notEmpty":!0}]},sort:["sort"]}}},m=r.useDataSourceManager(),d=(E,$)=>D(this,null,function*(){yield i.request({url:`dataSourcesCollections/${s}.${x}/fields:update?filterByTk=${$}`,method:"post",data:E}),m.getDataSource(s).reload(),S.message.success(n("Saved successfully"))}),A=()=>({filterByTk:y,titleField:I,dataSourceKey:s,setTitleField:w}),P=(E,$,K)=>D(this,null,function*(){var H,G;const{targetScope:_}=$,T=((H=E.props)==null?void 0:H.name)==="inherits",{data:j}=yield i.request({url:`dataSources/${s}/collections:list`,params:{paginate:!1,appends:["fields"],sort:["sort"]}});return((G=j==null?void 0:j.data)==null?void 0:G.filter(O=>{var ee;if(K!=null&&K.includes(O.template)||O.autoCreate&&O.isThrough||T&&O.template==="view")return!1;const V=!(_!=null&&_.template)||_.template.includes(O.template),Y=!(_!=null&&_[(ee=E.props)==null?void 0:ee.name])||_[E.props.name].includes(O.name);return V&&Y})).map(O=>({label:c(O.title||O.name),value:O.name}))});return a.jsxs(ot.Provider,{value:{refreshRM:()=>{p.refresh()},titleField:I,targetCollection:g},children:[a.jsx(r.ResourceActionProvider,B(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:an,CollectionFieldInterfaceSelect:on,AddCollectionField:en,SourceCollection:Jo,TargetKey:Zo,SourceKey:Qo,FieldTitleInput:nn,EditCollectionField:ty,Select:r.Select,FieldType:rn,ForeignKey:pt,ThroughCollection:Xo},inherit:!0,scope:{useDataSource:h,useTitleFieldProps:A,handleFieldChange:d,useDestroyActionAndRefreshCM:sy,useBulkDestroyActionAndRefreshCM:ay,loadCollections:P},children:a.jsx(C.RecursionField,{schema:cy,onlyRenderProperties:!0})})})})})),a.jsx(sn,{})]})},$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"}}]},py=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"}}}}}),rt={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}=k.useTranslation();return{move(n,s){return D(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"}}}}}}}}}},uy=(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))},dy=()=>{const[e,t]=f.useState([]);return[e,t]},my=()=>{const e=r.useRecord(),t=C.useForm();return{run(){return D(this,null,function*(){var s,i,c;const n=(c=(i=(s=t.values)==null?void 0:s.children)==null?void 0:i.slice)==null?void 0:c.call(i);t.setValuesIn("children",n.filter(p=>p.name!==e.name))})}}},yy=()=>({run(){return D(this,null,function*(){})}}),fy=e=>`${e||""}${C.uid()}`,gy=()=>{const{t:e}=k.useTranslation(),{interfaces:t}=r.useCollectionManager_deprecated(),{data:{database:o}}=r.useCurrentAppInfo(),n=r.useDataSourceManager(),s=f.useContext(r.SchemaComponentContext),{name:i}=W.useParams(),c=f.useContext(r.CollectionCategroriesContext),p=r.useAPIClient(),u=p.resource("dbViews"),l=r.useCompile(),g=()=>D(this,null,function*(){return c.data.map(h=>({label:l(h.name),value:h.id}))}),y=()=>D(this,null,function*(){return u.list().then(({data:h})=>{var b;return(b=h==null?void 0:h.data)==null?void 0:b.map(m=>{const d=m.schema;return{label:d?`${d}.${l(m.name)}`:m.name,value:d?`${d}_${m.name}`:m.name}})})}),v=()=>D(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(m=>({label:e(l(m.title)),value:m.name}))})}),x=()=>{const h=f.useContext(r.ResourceActionContext),b=r.useAPIClient(),m=C.useField(),{name:d}=W.useParams();m.data=m.data||{};const{setDataSource:A,dataSource:P}=f.useContext(xe);return{onClick(){return D(this,null,function*(){var $,K,_;m.data.loading=!0;try{const{data:T}=yield b.request({url:`dataSources:refresh?filterByTk=${d}&clientStatus=${(P==null?void 0:P.status)||"loaded"}`,method:"post"});m.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")):((K=T==null?void 0:T.data)==null?void 0:K.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){m.data.loading=!1}})}}},I=h=>D(this,null,function*(){const{fields:b}=h.form.values;return Promise.resolve({data:b}).then(({data:m})=>m==null?void 0:m.map(d=>{var A;return{label:l((A=d.uiSchema)==null?void 0:A.title)||d.name,value:d.name}}))}),w=f.useMemo(()=>py(i),[i]);return a.jsx(r.SchemaComponentContext.Provider,{value:B(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:my,useBulkDestroySubField:yy,useSelectedRowKeys:dy,useAsyncDataSource:uy,loadFilterTargetKeys:I,loadCategories:g,loadDBViews:y,loadStorages:v,useNewId:fy,useCancelAction:r.useCancelAction,interfaces:t,enableInherits:(o==null?void 0:o.dialect)==="postgres",isPG:(o==null?void 0:o.dialect)==="postgres"}})})},vy=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})},Cy=Object.assign(C.connect(S.Input,C.mapProps((e,t)=>B(F({},e),{suffix:a.jsx("span",{children:t!=null&&t.loading||t!=null&&t.validating?a.jsx(J.LoadingOutlined,{}):e.suffix})})),C.mapReadPretty(vy))),hy=({item:e})=>{const{t}=k.useTranslation(),o=r.useCompile();return a.jsxs(S.Space,{children:[a.jsx(S.Badge,{color:e.color}),t(o(e.name))]})},by=C.observer(e=>{const[t,o]=f.useState(null),{refresh:n}=f.useContext(r.CollectionCategroriesContext),{refresh:s}=r.useResourceActionContext(),i=r.useAPIClient(),c=g=>D(this,null,function*(){const{active:y,over:v}=g;setTimeout(()=>{o(null)}),v&&v.id!==y.id&&(yield i.resource("collectionCategories").move({sourceId:y.id,targetId:v.id}),yield n(),yield s())});function p(g){var y;o((y=g.active)==null?void 0:y.data.current)}const u=Z.useSensor(Z.MouseSensor,{activationConstraint:{distance:10}}),l=Z.useSensors(u);return a.jsxs(Z.DndContext,{sensors:l,onDragEnd:c,onDragStart:p,children:[e.children,a.jsx(Z.DragOverlay,{children:t?a.jsx("span",{style:{whiteSpace:"nowrap"},children:a.jsx(hy,{item:t})}):null})]})},{displayName:"DndProvider"}),xy=()=>{const{t:e}=k.useTranslation(),{data:t}=f.useContext(r.CollectionCategroriesContext),o=r.useCompile();if(!t)return null;const n=t.sort((i,c)=>c.sort-i.sort).concat().map(i=>B(F({},i),{schema:rt}));!n.find(i=>i.id==="all")&&n.unshift({name:'{{t("All collections")}}',id:"all",sort:0,closable:!1,schema:rt});const s=()=>D(this,null,function*(){return t.map(i=>({label:e(o(i.name)),value:i.id}))});return a.jsx(by,{children:a.jsx(S.Card,{bordered:!1,children:a.jsx(r.SchemaComponentOptions,{components:{CollectionFields:Ao,CollectionName:Cy},inherit:!0,scope:{loadCategories:s},children:a.jsx(C.RecursionField,{schema:rt,onlyRenderProperties:!0})})})})},Sy={type:"object",properties:{[C.uid()]:{"x-component":"ConfigurationTable"}}},Ay=()=>{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:Sy,components:{CollectionCategroriesProvider:r.CollectionCategroriesProvider,ConfigurationTable:gy,ConfigurationTabs:xy,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 D(this,null,function*(){return(yield this.app.apiClient.request({url:`dataSources:get/${this.key}`,params:{appends:["collections"]}})).data.data})}}const $y=()=>{const[e,t]=f.useState({}),o=r.usePlugin(ye),n=r.useCompile(),[s,i]=f.useState(!1),{t:c}=k.useTranslation(),[p,u]=f.useState(null);r.useAPIClient();const l=g=>{const y=[...o.types.keys()].map(v=>{const x=o.types.get(v);return{value:x.name,label:n(x.label)}});g.dataSource=y};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 y=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:y},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:c("No external data source plugin installed",{ns:U})})})}].filter(Boolean).concat([...o.types.keys()].map(g=>{const y=o.types.get(g);return{key:g,label:n(y==null?void 0:y.label)}}))},children:a.jsxs(S.Button,{type:"primary",icon:a.jsx(J.PlusOutlined,{}),children:[c("Add new")," ",a.jsx(J.DownOutlined,{})]})}),a.jsx(r.SchemaComponent,{scope:{createOnly:!1,useTestConnectionAction:Ee,dialect:p,useDialectDataSource:l,useCreateDatabaseConnectionAction:ct,useCancelActionProps:r.useCancelActionProps},schema:e})]})})},Ty=()=>{const e=r.useCollectionRecordData(),[t,o]=f.useState({}),n=r.usePlugin(ye),s=r.useCompile(),[i,c]=f.useState(!1),{t:p}=r.useTranslation(),u=r.useDataSourceManager(),l=()=>{const g=C.useField(),y=C.useForm(),v=r.useActionContext(),{refresh:x}=r.useDataBlockRequest(),I=r.useDataBlockResource(),{key:w}=r.useCollectionRecordData();return{run(){return D(this,null,function*(){yield y.submit(),g.data=g.data||{},g.data.loading=!0;try{yield I.update({filterByTk:w,values:y.values}),v.setVisible(!1),u.getDataSource(w).setOptions(y.values),u.getDataSource(w).reload(),yield y.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:c},children:[e.key!=="main"&&a.jsx("a",{onClick:()=>{c(!0);const g=C.createForm({initialValues:e}),y=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":y.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:l,useTestConnectionAction:Ee,useCancelActionProps:r.useCancelActionProps},schema:t})]})})},Fy=({key:e,type:t})=>`/_admin/data-modeling/data-source/${e}?type=${t}`,wy=()=>{const e=r.useRecord(),t=W.useNavigate(),{t:o}=k.useTranslation();return a.jsx("div",{className:e.enabled?void 0:r.css`
|
|
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`
|
|
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(
|
|
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`
|
|
8
8
|
.ant-table {
|
|
9
9
|
margin-left: -16px !important;
|
|
10
10
|
}
|
|
11
|
-
`,
|
|
11
|
+
`,Iy=r.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",
|
|
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`
|
|
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")}],
|
|
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`
|
|
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({},K)),a.jsx(r.SyncSQLFieldsAction,{refreshCMList:I}),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:Oy,expandable:{defaultExpandAllRows:!0,defaultExpandedRowKeys:A.map(_=>_.key),expandedRowRender:_=>_.inherit?a.jsx(My,{fields:_.fields,collectionResource:x,refreshAsync:I}):a.jsx(Ey,{fields:_.fields,collectionResource:x,refreshAsync:I})}})]})})}))};var Po={exports:{}};(function(e,t){(function(o,n){n()})(R,function(){function o(l,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(l.type)?new Blob(["\uFEFF",l],{type:l.type}):l}function n(l,g,y){var v=new XMLHttpRequest;v.open("GET",l),v.responseType="blob",v.onload=function(){u(v.response,g,y)},v.onerror=function(){console.error("could not download file")},v.send()}function s(l){var g=new XMLHttpRequest;g.open("HEAD",l,!1);try{g.send()}catch(y){}return 200<=g.status&&299>=g.status}function i(l){try{l.dispatchEvent(new MouseEvent("click"))}catch(y){var g=document.createEvent("MouseEvents");g.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),l.dispatchEvent(g)}}var c=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof R=="object"&&R.global===R?R:void 0,p=c.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),u=c.saveAs||(typeof window!="object"||window!==c?function(){}:"download"in HTMLAnchorElement.prototype&&!p?function(l,g,y){var v=c.URL||c.webkitURL,x=document.createElement("a");g=g||l.name||"download",x.download=g,x.rel="noopener",typeof l=="string"?(x.href=l,x.origin===location.origin?i(x):s(x.href)?n(l,g,y):i(x,x.target="_blank")):(x.href=v.createObjectURL(l),setTimeout(function(){v.revokeObjectURL(x.href)},4e4),setTimeout(function(){i(x)},0))}:"msSaveOrOpenBlob"in navigator?function(l,g,y){if(g=g||l.name||"download",typeof l!="string")navigator.msSaveOrOpenBlob(o(l,y),g);else if(s(l))n(l,g,y);else{var v=document.createElement("a");v.href=l,v.target="_blank",setTimeout(function(){i(v)})}}:function(l,g,y,v){if(v=v||open("","_blank"),v&&(v.document.title=v.document.body.innerText="downloading..."),typeof l=="string")return n(l,g,y);var x=l.type==="application/octet-stream",I=/constructor/i.test(c.HTMLElement)||c.safari,w=/CriOS\/[\d]+/.test(navigator.userAgent);if((w||x&&I||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(l)}else{var b=c.URL||c.webkitURL,m=b.createObjectURL(l);v?v.location=m:location.href=m,v=null,setTimeout(function(){b.revokeObjectURL(m)},4e4)}});c.saveAs=u.saveAs=u,e.exports=u})})(Po);var jy=Po.exports;const Do=e=>C.Schema.compile(e,{t:r.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"}}}}},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}=k.useTranslation();return{move(n,s){return D(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 D(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"});jy.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"}}}}}}}}}},Ky={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"}}}}}}}}},Ny={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]},Ly=()=>{const e=r.useRecord(),t=C.useForm();return{run(){return D(this,null,function*(){var s,i,c;const n=(c=(i=(s=t.values)==null?void 0:s.children)==null?void 0:i.slice)==null?void 0:c.call(i);t.setValuesIn("children",n.filter(p=>p.name!==e.name))})}}},qy=()=>({run(){return D(this,null,function*(){})}}),Gy=()=>{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)},Uy=e=>`${e||""}${C.uid()}`,zy=()=>{const{t:e}=k.useTranslation(),{interfaces:t,getCollections:o,getCollection:n}=r.useCollectionManager_deprecated(),{data:{database:s}}=r.useCurrentAppInfo(),i=f.useContext(r.CollectionCategroriesContext),c=r.useAPIClient(),p=c.resource("dbViews"),u=r.useCompile(),l=r.useApp(),g=(h,b,m)=>D(this,null,function*(){var E;const{targetScope:d}=b,A=((E=h.props)==null?void 0:E.name)==="inherits";return o().filter($=>{var j;if(m!=null&&m.includes($.template)||$.autoCreate&&$.isThrough||A&&$.template==="view")return!1;const _=!(d!=null&&d.template)||d.template.includes($.template),T=!(d!=null&&d[(j=h.props)==null?void 0:j.name])||d[h.props.name].includes($.name);return _&&T}).map($=>({label:u($.title),value:$.name}))}),y=()=>D(this,null,function*(){return i.data.map(h=>({label:u(h.name),value:h.id}))}),v=()=>D(this,null,function*(){return p.list().then(({data:h})=>{var b;return(b=h==null?void 0:h.data)==null?void 0:b.map(m=>{const d=m.schema;return{label:d?`${d}.${u(m.name)}`:m.name,value:d?`${d}_${m.name}`:m.name}})})}),x=h=>D(this,null,function*(){const{name:b,fields:m}=h.form.values,{fields:d}=n(b)||{};return Promise.resolve({data:d||m}).then(({data:A})=>{var P;return(P=A.filter(E=>E.interface?!!l.dataSourceManager.collectionFieldInterfaceManager.getFieldInterface(E.interface).titleUsable:!1))==null?void 0:P.map(E=>{var $;return{label:u(($=E.uiSchema)==null?void 0:$.title)||E.name,value:E.name}})})}),I=()=>D(this,null,function*(){return c.resource("storages").list().then(({data:h})=>{var b;return(b=h==null?void 0:h.data)==null?void 0:b.map(m=>({label:e(u(m.title)),value:m.name}))})}),w=f.useContext(r.SchemaComponentContext);return a.jsx(r.SchemaComponentContext.Provider,{value:B(F({},w),{designable:!1}),children:a.jsx(r.SchemaComponent,{schema:ky,components:{AddSubFieldAction:r.AddSubFieldAction,EditSubFieldAction:r.EditSubFieldAction,FieldSummary:r.FieldSummary,TemplateSummay:r.TemplateSummary,CollectionFieldsTable:tf,CollectionFields:_o},scope:{loadFilterTargetKeys:x,useDestroySubField:Ly,useBulkDestroySubField:qy,useSelectedRowKeys:Vy,useAsyncDataSource:By,loadCollections:g,loadCategories:y,loadDBViews:v,loadStorages:I,useCurrentFields:Gy,useNewId:Uy,useCancelAction:r.useCancelAction,interfaces:t,enableInherits:(s==null?void 0:s.dialect)==="postgres",isPG:(s==null?void 0:s.dialect)==="postgres"}})})},Hy=e=>{var t;return((t=e["x-component"])==null?void 0:t.endsWith(".Column"))>-1},Wy={body:{row:e=>a.jsx("tr",F({},e)),cell:e=>a.jsx("td",B(F({},e),{className:r.cx(e.className,r.css`
|
|
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`
|
|
39
39
|
max-width: 300px;
|
|
40
40
|
overflow: hidden;
|
|
41
41
|
text-overflow: ellipsis;
|
|
42
42
|
white-space: nowrap;
|
|
43
|
-
`)}))}},
|
|
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`
|
|
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:Jy,dataSource:d,pagination:!1,expandable:{expandedRowRender:_,expandedRowKeys:P},onExpand:(j,N)=>{let H=[];j?H=P.concat([N.key]):H=P.filter(G=>G!==N.key),E(H)}})})},{displayName:"CollectionFieldsTableArray"}),Ry=()=>{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})}]},ef=(e,t)=>{const{request:o,dataSource:n}=t,s=r.useRequest(o(t),B(F({},e),{manual:!0}));return o?(s.run(),s):Promise.resolve({data:n})},tf=C.observer(e=>{const{rowKey:t="id",useDataSource:o=ef,useSelectedRowKeys:n=Ry}=e,s=C.useField(),i=C.useFieldSchema(),c=f.useMemo(()=>C.createForm(),[]),p=C.useAttach(c.createArrayField(B(F({},s.props),{basePath:""}))),u=o({uid:i["x-uid"],onSuccess(l){c.setValues({[i.name]:l==null?void 0:l.data})}},e);return a.jsx(r.AsyncDataProvider,{value:u,children:a.jsx(C.FormContext.Provider,{value:c,children:a.jsx(C.FieldContext.Provider,{value:p,children:a.jsx(Yy,B(F({},e),{rowKey:t,loading:u==null?void 0:u.loading,useSelectedRowKeys:n,pagination:!1}))})})})},{displayName:"CollectionFieldsTable"});function of(e){const{attributes:t,listeners:o,setNodeRef:n}=Z.useDraggable({id:e.id,data:e.data});return a.jsx("div",B(F(F({ref:n},o),t),{children:a.jsx("div",{children:e.children})}))}function nf(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 rf=C.observer(({item:e})=>a.jsx(nf,{id:e.id.toString(),data:e,children:a.jsx("div",{children:a.jsx(of,{id:e.id.toString(),data:e,children:a.jsx(Oo,{item:e})})})}),{displayName:"TabTitle"}),Oo=({item:e})=>{const{t}=k.useTranslation(),o=r.useCompile();return a.jsxs(S.Space,{children:[a.jsx(S.Badge,{color:e.color}),t(o(e.name))]})},af=C.observer(e=>{const[t,o]=f.useState(null),{refresh:n}=f.useContext(r.CollectionCategroriesContext),{refresh:s}=r.useResourceActionContext(),i=r.useAPIClient(),c=g=>D(this,null,function*(){const{active:y,over:v}=g;setTimeout(()=>{o(null)}),v&&v.id!==y.id&&(yield i.resource("collectionCategories").move({sourceId:y.id,targetId:v.id}),yield n(),yield s())});function p(g){var y;o((y=g.active)==null?void 0:y.data.current)}const u=Z.useSensor(Z.MouseSensor,{activationConstraint:{distance:10}}),l=Z.useSensors(u);return a.jsxs(Z.DndContext,{sensors:l,onDragEnd:c,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"}),sf=()=>{const{t:e}=k.useTranslation(),{data:t,refresh:o}=f.useContext(r.CollectionCategroriesContext),{refresh:n,run:s,defaultRequest:i,setState:c}=r.useResourceActionContext(),[p,u]=f.useState({tab:"all"}),[l,g]=f.useState(p.tab),y=r.useCompile(),v=r.useAPIClient(),{modal:x}=S.App.useApp(),I=f.useMemo(()=>{if(!t)return[];const d=t.sort((A,P)=>P.sort-A.sort).concat().map(A=>B(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}),c==null||c({category:[+d],params:[{filter:E}]})}else s(),c==null||c({category:[],params:[]})},h=d=>{x.confirm({title:y("{{t('Delete category')}}"),content:y("{{t('Are you sure you want to delete it?')}}"),onOk:()=>D(this,null,function*(){yield v.resource("collectionCategories").destroy({filter:{id:d}}),d===+p.tab&&u({tab:"all"}),yield o(),yield n()})})},b=()=>D(this,null,function*(){return t.map(d=>({label:e(y(d.name)),value:d.id}))}),m=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:y("{{t('Delete category')}}"),onClick:()=>h(d.id)}]}));return t?a.jsx(af,{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:I.map(d=>({label:d.id!=="all"?a.jsx("div",{"data-no-dnd":"true",children:a.jsx(rf,{item:d})}):y(d.name),key:String(d.id),closable:d.closable,closeIcon:a.jsx(S.Dropdown,{menu:m(d),children:a.jsx(J.MenuOutlined,{role:"button","aria-label":y(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:l,schema:d.schema,onlyRenderProperties:!0})})})}))})}):null},cf=()=>{const e=C.useForm(),t=r.useActionContext(),{refresh:o}=f.useContext(r.CollectionCategroriesContext),n=r.useAPIClient();return{run(){return D(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:c}=k.useTranslation();return a.jsxs(r.ActionContextProvider,{value:{visible:s,setVisible:i},children:[a.jsx("div",{onClick:()=>i(!0),title:c("Add category"),children:n||a.jsx(J.PlusOutlined,{})}),a.jsx(r.SchemaComponent,{schema:Ky,components:{CollectionCategory:r.CollectionCategory,CollectionTemplateTag:r.CollectionTemplateTag},scope:F({getContainer:o,useCancelAction:r.useCancelAction,createOnly:!0,useCreateCategry:cf},t)})]})},pf=()=>{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 D(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()})}}},uf=e=>{const t=r.useRecord(),o=r.useRequest(()=>Promise.resolve({data:Q.cloneDeep(t)}),B(F({},e),{manual:!0})),n=r.useActionContext();return f.useEffect(()=>{n.visible&&o.run()},[n.visible]),o},df=e=>a.jsx(Mo,F({},e)),Mo=e=>{const{scope:t,getContainer:o,item:n,children:s}=e,[i,c]=f.useState(!1),p=r.useCompile();return a.jsx(r.RecordProvider,{record:n,children:a.jsxs(r.ActionContextProvider,{value:{visible:i,setVisible:c},children:[a.jsx(a.Fragment,{children:s||a.jsx("span",{onClick:()=>c(!0),children:p('{{ t("Edit category") }}')})}),a.jsx(r.SchemaComponent,{schema:Ny,scope:F({getContainer:o,useCancelAction:r.useCancelAction,createOnly:!0,useEditCategry:pf,useValuesFromRecord:uf},t)})]})})};C.registerValidateFormats({uid:/^[a-zA-Z][a-zA-Z0-9_-]*$/});const mf={type:"object",properties:{[C.uid()]:{"x-component":"ConfigurationTable"}}},yf=()=>a.jsx(r.SchemaComponent,{schema:mf,components:{CollectionCategroriesProvider:r.CollectionCategroriesProvider,ConfigurationTable:zy,ConfigurationTabs:sf,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:df,EditCategoryAction:Mo,SyncFieldsAction:r.SyncFieldsAction,SyncFieldsActionCom:r.SyncFieldsActionCom,SyncSQLFieldsAction:r.SyncSQLFieldsAction}}),he=f.createContext(null);he.displayName="PermissionContext";const ff=e=>{const t=r.useAPIClient(),o=r.useRecord(),{t:n}=k.useTranslation(),s=f.useContext(be),{snippets:i}=s;i==null||i.forEach(u=>{s[u]=!0});const[c,p]=f.useState(s);return f.useEffect(()=>{p(s)},[s]),a.jsx(he.Provider,{value:{currentDataSource:o,currentRecord:c,update:(u,l)=>D(this,null,function*(){yield t.request({url:`dataSources/${o.key}/roles:update`,data:l.values,method:"post",params:{filterByTk:l.values.roleName}}),p(F(F({},c),l.values)),S.message.success(n("Saved successfully"))})},children:e.children})},gf=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})})},vf=e=>{const t=r.useRecord(),{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}}},B(F({},e),{manual:!0}));return f.useEffect(()=>{if(!t.exists){e.onSuccess({data:{}});return}o&&s.run()},[o,t.exists]),s},Cf=()=>{const e=C.useForm(),t=r.useAPIClient(),o=r.useRecord(),n=r.useActionContext(),{refresh:s}=r.useResourceActionContext(),{currentDataSource:i}=f.useContext(he);return{run(){return D(this,null,function*(){yield t.resource("roles.dataSourceResources",o.roleName)[o.exists?"update":"create"]({filterByTk:o.name,filter:{dataSourceKey:i.key,name:o.name},values:B(F({},e.values),{name:o.name,dataSourceKey:i.key})}),n.setVisible(!1),s()})}}},hf={type:"void","x-decorator":"RoleRecordProvider",properties:{block:{type:"void","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:{name:"dataSourcesCollections",targetKey:"name",filterTargetKey:"name",fields:[{type:"integer",name:"title",interface:"input",uiSchema:{title:'{{t("Collection display name")}}',type:"number","x-component":"Input",required:!0}},{type:"string",name:"name",interface:"input",uiSchema:{title:'{{t("Collection name")}}',type:"string","x-component":"Input"}},{type:"string",name:"type",interface:"input",uiSchema:{title:'{{t("Resource type")}}',type:"string","x-component":"Select",enum:[{label:'{{t("Collection")}}',value:"collection",color:"green"},{label:'{{t("Association")}}',value:"association",color:"blue"}]}},{type:"string",name:"usingConfig",interface:"input",uiSchema:{title:'{{t("Permission policy")}}',type:"string","x-component":"Select",enum:[{label:'{{t("Individual")}}',value:"resourceAction",color:"orange"},{label:'{{t("General")}}',value:"strategy",color:"default"}]}},{type:"hasMany",name:"fields",target:"fields",collectionName:"collections",sourceKey:"name",targetKey:"name",uiSchema:{}}]},association:{sourceKey:"name",targetKey:"name"},resourceName:"roles.dataSourcesCollections",request:{resource:"roles.dataSourcesCollections",action:"list",params:{pageSize:20,filter:{hidden:{$isFalsy:!0},dataSourceKey:"{{dataSourceKey}}"},sort:["sort"],appends:["fields"]}}},properties:{[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"}}},table1:{type:"void","x-uid":"input","x-component":"Table.Void","x-component-props":{rowKey:"name",useDataSource:"{{ cm.useDataSourceFromRAC }}"},properties:{column0:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{title:{type:"number","x-component":"CollectionField","x-read-pretty":!0}}},column2:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{name:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},column3:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{usingConfig:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},column4:{type:"void",title:'{{t("Actions")}}',"x-component":"Table.Column",properties:{actions:{type:"void","x-component":"Space","x-component-props":{split:"|"},properties:{configure:{type:"void",title:'{{t("Configure")}}',"x-component":"Action.Link","x-component-props":{type:"primary"},properties:{drawer:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{useValues:vf},title:'{{t("Configure permission")}}',properties:{usingActionsConfig:{title:'{{t("Permission policy")}}',"x-component":"Radio.Group","x-decorator":"FormItem",default:!1,enum:[{value:!1,label:'{{t("General")}}'},{value:!0,label:'{{t("Individual")}}'}],"x-reactions":{target:"actions",fulfill:{state:{hidden:"{{!$self.value}}"}}}},actions:{"x-component":"RolesResourcesActions","x-decorator":"FormItem"},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:Cf}}}}}}}}}}}}}}}}}},jo={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}}]},bf={type:"object",properties:{block1:{type:"void","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:jo,resourceName:"dataSources",request:{resource:"dataSources",action:"list",params:{pageSize:50,showAnonymous:!0,appends:[]}}},"x-component":"CollectionProvider_deprecated","x-component-props":{collection:jo},properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:16}},properties:{}},table:{type:"void","x-uid":"input","x-component":"Table.Void","x-component-props":{rowKey:"name",rowSelection:{type:"checkbox"},useDataSource:"{{ cm.useDataSourceFromRAC }}"},properties:{column1:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{displayName:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},column2:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{key:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},column4:{type:"void",title:'{{t("Actions")}}',"x-component":"Table.Column",properties:{actions:{type:"void","x-component":"Space","x-component-props":{split:"|"},properties:{view:{type:"void",title:'{{t("Configure")}}',"x-component":"Action.Link","x-decorator":"ACLActionProvider","x-acl-action":"roles:update","x-component-props":{},properties:{drawer:{type:"void","x-component":"Action.Drawer","x-decorator":"PermissionProvider",title:'{{t("Configure permissions")}}',properties:{tabs1:{type:"void","x-component":"Tabs","x-component-props":{},properties:{tab1:{type:"void",title:'{{t("General action permissions")}}',"x-component":"Tabs.TabPane","x-component-props":{},properties:{role:{"x-component":"RoleConfigure"}}},tab2:{type:"void",title:'{{t("Action permissions")}}',"x-component":"Tabs.TabPane","x-component-props":{},properties:{roleCollectionsSchema:hf}}}}}}}}}}}}}}}}}},at=f.createContext([]);at.displayName="AvailableActionsContext";const xf=e=>{const{data:t,loading:o}=r.useRequest({resource:"availableActions",action:"list"});return o?a.jsx(S.Spin,{}):a.jsx(at.Provider,{value:t==null?void 0:t.data,children:e.children})},ko=()=>f.useContext(at),Sf=()=>{const e=r.useRecord();return a.jsx("div",{children:a.jsx(r.SchemaComponentContext.Provider,{value:{designable:!1},children:a.jsx(xf,{children:a.jsx(r.SchemaComponent,{schema:bf,components:{SettingCenterPermissionProvider:r.SettingCenterPermissionProvider,PermissionProvider:ff},scope:{dataSourceKey:e.key}})})})})},Af=()=>{const{update:e}=f.useContext(he),{t}=k.useTranslation(),{key:o}=r.useRecord();return a.jsx(r.SchemaComponent,{schema:{type:"void",name:"form","x-component":"Form","x-component-props":{useValues:n=>{const s=r.useAPIClient(),i=f.useContext(be);return r.useRequest(()=>s.resource(`dataSources/${o}/roles`).get({filterByTk:i.name}).then(c=>{var u,l;const p=(u=c==null?void 0:c.data)==null?void 0:u.data;return(l=p.snippets)==null||l.forEach(g=>{p[g]=!0}),{data:p}}),n)},effects(){C.onFieldChange("*",(n,s)=>D(this,null,function*(){s.modified&&(yield e(n,s))}))}},properties:{"strategy.actions":{description:t("All collections use general action permissions by default; permission configured individually will override the default one."),"x-component":"StrategyActions"}}}})},$f=(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}}]}),Tf=()=>{const{name:e}=f.useContext(me),t=r.useFormBlockContext();return f.useEffect(()=>{t.form.setInitialValues({resourceName:e})},[e]),{form:t.form}},Ff=e=>{const t=$f(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":Tf,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"}}}}}}}}}}}}},Ko=f.createContext(null);Ko.displayName="RolesResourcesScopesSelectedRowKeysContext";const wf=e=>{const[t,o]=f.useState([]);return a.jsx(Ko.Provider,{value:[t,o],children:e.children})},_f=e=>{const t=f.useMemo(()=>C.createForm({values:{scope:e.value}}),[]),{key:o}=r.useRecord(),n=Ff(o);return a.jsx(r.FormProvider,{form:t,children:a.jsx(r.SchemaComponent,{components:{RolesResourcesScopesSelectedRowKeysProvider:wf},scope:{onChange(s){var i;(i=e==null?void 0:e.onChange)==null||i.call(e,s)}},schema:n})})},Pf=r.createStyles(({css:e})=>e`
|
|
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`
|
|
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
|
-
`),
|
|
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"}})});
|
package/dist/externalVersion.js
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
module.exports = {
|
|
2
2
|
"react": "18.3.1",
|
|
3
|
-
"@tachybase/client": "0.23.
|
|
4
|
-
"@tachybase/server": "0.23.
|
|
3
|
+
"@tachybase/client": "0.23.40",
|
|
4
|
+
"@tachybase/server": "0.23.40",
|
|
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.
|
|
9
|
+
"@tachybase/schema": "0.23.40",
|
|
10
10
|
"react-i18next": "15.2.0",
|
|
11
|
-
"@tachybase/database": "0.23.
|
|
12
|
-
"@tachybase/utils": "0.23.
|
|
13
|
-
"@tachybase/module-acl": "0.23.
|
|
14
|
-
"@tachybase/acl": "0.23.
|
|
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",
|
|
15
15
|
"sequelize": "6.37.5",
|
|
16
|
-
"@tachybase/components": "0.23.
|
|
16
|
+
"@tachybase/components": "0.23.40",
|
|
17
17
|
"@dnd-kit/core": "6.3.1",
|
|
18
18
|
"ahooks": "3.8.4"
|
|
19
19
|
};
|
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.
|
|
4
|
+
"version": "0.23.40",
|
|
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.
|
|
22
|
-
"@tachybase/schema": "0.23.
|
|
21
|
+
"@tachybase/components": "0.23.40",
|
|
22
|
+
"@tachybase/schema": "0.23.40"
|
|
23
23
|
},
|
|
24
24
|
"peerDependencies": {
|
|
25
|
-
"@tachybase/acl": "0.23.
|
|
26
|
-
"@tachybase/client": "0.23.
|
|
27
|
-
"@tachybase/
|
|
28
|
-
"@tachybase/
|
|
29
|
-
"@tachybase/
|
|
30
|
-
"@tachybase/utils": "0.23.
|
|
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"
|
|
31
31
|
},
|
|
32
32
|
"description.zh-CN": "管理数据源,包括内置的 Master 数据库,外部的数据库、API。",
|
|
33
33
|
"displayName.zh-CN": "数据源管理",
|