@tachybase/module-data-source 0.23.8 → 0.23.16

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