@tachybase/module-data-source 0.23.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +14 -0
- package/LICENSE +201 -0
- package/README.md +1 -0
- package/client.d.ts +2 -0
- package/client.js +1 -0
- package/dist/client/DatabaseConnectionProvider.d.ts +3 -0
- package/dist/client/ThridDataSource.d.ts +4 -0
- package/dist/client/component/BreadcumbTitle.d.ts +2 -0
- package/dist/client/component/CollectionsManager/AddFieldAction.d.ts +5 -0
- package/dist/client/component/CollectionsManager/CollectionFields.d.ts +8 -0
- package/dist/client/component/CollectionsManager/ConfigurationTable.d.ts +2 -0
- package/dist/client/component/CollectionsManager/ConfigurationTabs.d.ts +2 -0
- package/dist/client/component/CollectionsManager/EditCollectionAction.d.ts +6 -0
- package/dist/client/component/CollectionsManager/EditFieldAction.d.ts +2 -0
- package/dist/client/component/CollectionsManager/components/CollectionFieldInterfaceSelect.d.ts +2 -0
- package/dist/client/component/CollectionsManager/components/CollectionName.d.ts +1 -0
- package/dist/client/component/CollectionsManager/components/FieldTitleInput.d.ts +2 -0
- package/dist/client/component/CollectionsManager/components/FieldType.d.ts +2 -0
- package/dist/client/component/CollectionsManager/components/TitleField.d.ts +2 -0
- package/dist/client/component/CollectionsManager/components/UnSupportFields.d.ts +2 -0
- package/dist/client/component/CollectionsManager/components/index.d.ts +6 -0
- package/dist/client/component/CollectionsManager/hooks.d.ts +12 -0
- package/dist/client/component/CollectionsManager/index.d.ts +2 -0
- package/dist/client/component/CollectionsManager/schema/collectionFields.d.ts +4 -0
- package/dist/client/component/CollectionsManager/schema/collections.d.ts +8 -0
- package/dist/client/component/CreateDatabaseConnectAction.d.ts +2 -0
- package/dist/client/component/DatabaseConnectionManager.d.ts +2 -0
- package/dist/client/component/DatasourceLink.d.ts +2 -0
- package/dist/client/component/EditDatabaseConnectionAction.d.ts +2 -0
- package/dist/client/component/MainDataSourceManager/Configuration/AddCategoryAction.d.ts +3 -0
- package/dist/client/component/MainDataSourceManager/Configuration/CollectionFields.d.ts +2 -0
- package/dist/client/component/MainDataSourceManager/Configuration/CollectionFieldsTable.d.ts +15 -0
- package/dist/client/component/MainDataSourceManager/Configuration/CollectionFieldsTableArray.d.ts +8 -0
- package/dist/client/component/MainDataSourceManager/Configuration/ConfigurationTable.d.ts +2 -0
- package/dist/client/component/MainDataSourceManager/Configuration/ConfigurationTabs.d.ts +2 -0
- package/dist/client/component/MainDataSourceManager/Configuration/EditCategoryAction.d.ts +3 -0
- package/dist/client/component/MainDataSourceManager/Configuration/index.d.ts +6 -0
- package/dist/client/component/MainDataSourceManager/Configuration/interfaces.d.ts +16 -0
- package/dist/client/component/MainDataSourceManager/Configuration/schemas/collectionFields.d.ts +5 -0
- package/dist/client/component/MainDataSourceManager/Configuration/schemas/collections.d.ts +7 -0
- package/dist/client/component/MainDataSourceManager/index.d.ts +2 -0
- package/dist/client/component/PermissionManager/DataSourceTable.d.ts +3 -0
- package/dist/client/component/PermissionManager/PermisionProvider.d.ts +5 -0
- package/dist/client/component/PermissionManager/RoleConfigure.d.ts +2 -0
- package/dist/client/component/PermissionManager/RolesResourcesActions.d.ts +3 -0
- package/dist/client/component/PermissionManager/ScopeSelect.d.ts +3 -0
- package/dist/client/component/PermissionManager/StrategyActions.d.ts +2 -0
- package/dist/client/component/PermissionManager/index.d.ts +3 -0
- package/dist/client/component/PermissionManager/schemas/dataSourceTable.d.ts +2 -0
- package/dist/client/component/PermissionManager/schemas/roleCollections.d.ts +2 -0
- package/dist/client/component/PermissionManager/schemas/scopes.d.ts +11 -0
- package/dist/client/component/PermissionManager/schemas/useRoleResourceValues.d.ts +8 -0
- package/dist/client/component/PermissionManager/schemas/useSaveRoleResourceAction.d.ts +3 -0
- package/dist/client/component/PermissionManager/style.d.ts +1 -0
- package/dist/client/component/ViewDatabaseConnectionAction.d.ts +2 -0
- package/dist/client/constant.d.ts +4 -0
- package/dist/client/hooks/index.d.ts +6 -0
- package/dist/client/index.d.ts +9 -0
- package/dist/client/index.js +56 -0
- package/dist/client/locale/index.d.ts +3 -0
- package/dist/client/schema/index.d.ts +7 -0
- package/dist/externalVersion.js +19 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +39 -0
- package/dist/locale/zh-CN.json +35 -0
- package/dist/server/collections/data-sources-collections.d.ts +2 -0
- package/dist/server/collections/data-sources-collections.js +66 -0
- package/dist/server/collections/data-sources-fields.d.ts +2 -0
- package/dist/server/collections/data-sources-fields.js +87 -0
- package/dist/server/collections/data-sources-roles-resources-actions.d.ts +2 -0
- package/dist/server/collections/data-sources-roles-resources-actions.js +52 -0
- package/dist/server/collections/data-sources-roles-resources-scopes.d.ts +2 -0
- package/dist/server/collections/data-sources-roles-resources-scopes.js +56 -0
- package/dist/server/collections/data-sources-roles-resources.d.ts +2 -0
- package/dist/server/collections/data-sources-roles-resources.js +62 -0
- package/dist/server/collections/data-sources-roles.d.ts +2 -0
- package/dist/server/collections/data-sources-roles.js +54 -0
- package/dist/server/collections/data-sources.d.ts +2 -0
- package/dist/server/collections/data-sources.js +71 -0
- package/dist/server/errors/type-infer-error.d.ts +2 -0
- package/dist/server/errors/type-infer-error.js +28 -0
- package/dist/server/index.d.ts +2 -0
- package/dist/server/index.js +39 -0
- package/dist/server/migrations/20240301164024-migrate-acl-resources.d.ts +7 -0
- package/dist/server/migrations/20240301164024-migrate-acl-resources.js +117 -0
- package/dist/server/models/connections-roles-resources-action.d.ts +3 -0
- package/dist/server/models/connections-roles-resources-action.js +29 -0
- package/dist/server/models/connections-roles-resources.d.ts +3 -0
- package/dist/server/models/connections-roles-resources.js +29 -0
- package/dist/server/models/data-source.d.ts +18 -0
- package/dist/server/models/data-source.js +170 -0
- package/dist/server/models/data-sources-collection-model.d.ts +7 -0
- package/dist/server/models/data-sources-collection-model.js +37 -0
- package/dist/server/models/data-sources-field-model.d.ts +10 -0
- package/dist/server/models/data-sources-field-model.js +54 -0
- package/dist/server/models/data-sources-roles-model.d.ts +13 -0
- package/dist/server/models/data-sources-roles-model.js +58 -0
- package/dist/server/plugin.d.ts +13 -0
- package/dist/server/plugin.js +448 -0
- package/dist/server/resourcers/data-sources-collections-fields.d.ts +11 -0
- package/dist/server/resourcers/data-sources-collections-fields.js +131 -0
- package/dist/server/resourcers/data-sources-collections.d.ts +8 -0
- package/dist/server/resourcers/data-sources-collections.js +106 -0
- package/dist/server/resourcers/data-sources-resources.d.ts +9 -0
- package/dist/server/resourcers/data-sources-resources.js +88 -0
- package/dist/server/resourcers/data-sources-roles.d.ts +8 -0
- package/dist/server/resourcers/data-sources-roles.js +89 -0
- package/dist/server/resourcers/roles-data-sources-collections.d.ts +7 -0
- package/dist/server/resourcers/roles-data-sources-collections.js +102 -0
- package/dist/server/services/collection-manager.d.ts +6 -0
- package/dist/server/services/collection-manager.js +33 -0
- package/dist/server/services/database-introspector.d.ts +70 -0
- package/dist/server/services/database-introspector.js +235 -0
- package/dist/server/services/full-data-repository.d.ts +8 -0
- package/dist/server/services/full-data-repository.js +51 -0
- package/dist/server/services/type-interface-map.d.ts +183 -0
- package/dist/server/services/type-interface-map.js +243 -0
- package/dist/server/utils.d.ts +1 -0
- package/dist/server/utils.js +38 -0
- package/package.json +36 -0
- package/server.d.ts +2 -0
- package/server.js +1 -0
|
@@ -0,0 +1,56 @@
|
|
|
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`
|
|
2
|
+
.ant-btn-link {
|
|
3
|
+
&:hover {
|
|
4
|
+
color: rgba(0, 0, 0, 0.25) !important;
|
|
5
|
+
}
|
|
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`
|
|
8
|
+
.ant-table {
|
|
9
|
+
margin-left: -16px !important;
|
|
10
|
+
}
|
|
11
|
+
`,Ky=r.css`
|
|
12
|
+
tr {
|
|
13
|
+
display: flex;
|
|
14
|
+
}
|
|
15
|
+
td,
|
|
16
|
+
th {
|
|
17
|
+
flex: 2;
|
|
18
|
+
width: 0;
|
|
19
|
+
&:nth-child(5) {
|
|
20
|
+
flex: 1.2;
|
|
21
|
+
}
|
|
22
|
+
&:last-child {
|
|
23
|
+
flex: 1.8;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
.ant-table-selection-column,
|
|
27
|
+
.ant-table-row-expand-icon-cell {
|
|
28
|
+
flex-basis: 50px !important;
|
|
29
|
+
min-width: 50px;
|
|
30
|
+
flex: 0;
|
|
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`
|
|
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`
|
|
35
|
+
justify-content: flex-end;
|
|
36
|
+
display: flex;
|
|
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`
|
|
39
|
+
max-width: 300px;
|
|
40
|
+
overflow: hidden;
|
|
41
|
+
text-overflow: ellipsis;
|
|
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`
|
|
44
|
+
.ant-table {
|
|
45
|
+
overflow-x: auto;
|
|
46
|
+
overflow-y: hidden;
|
|
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`
|
|
49
|
+
.ant-table-cell {
|
|
50
|
+
> .ant-space-horizontal {
|
|
51
|
+
.ant-space-item-split:has(+ .ant-space-item:empty) {
|
|
52
|
+
display: none;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
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"}})});
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
"react": "18.3.1",
|
|
3
|
+
"@tachybase/client": "0.23.8",
|
|
4
|
+
"@tachybase/server": "0.23.8",
|
|
5
|
+
"lodash": "4.17.21",
|
|
6
|
+
"@ant-design/icons": "5.5.2",
|
|
7
|
+
"antd": "5.22.5",
|
|
8
|
+
"react-router-dom": "6.28.1",
|
|
9
|
+
"@tachybase/schema": "0.23.8",
|
|
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",
|
|
15
|
+
"sequelize": "6.37.5",
|
|
16
|
+
"@tachybase/components": "0.23.8",
|
|
17
|
+
"@dnd-kit/core": "6.3.1",
|
|
18
|
+
"ahooks": "3.8.4"
|
|
19
|
+
};
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var src_exports = {};
|
|
30
|
+
__export(src_exports, {
|
|
31
|
+
default: () => import_server.default
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(src_exports);
|
|
34
|
+
__reExport(src_exports, require("./server"), module.exports);
|
|
35
|
+
var import_server = __toESM(require("./server"));
|
|
36
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
37
|
+
0 && (module.exports = {
|
|
38
|
+
...require("./server")
|
|
39
|
+
});
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Allow adding and modifying collection": "允许添加和修改数据表结构",
|
|
3
|
+
"Collections": "数据表",
|
|
4
|
+
"Connection successful": "连接成功",
|
|
5
|
+
"Data source display name": "数据源名称",
|
|
6
|
+
"Data source manager": "数据源管理",
|
|
7
|
+
"Data source name": "数据源标识",
|
|
8
|
+
"Data source synchronization in progress": "数据源同步中",
|
|
9
|
+
"Data source synchronization successful": "数据源同步成功",
|
|
10
|
+
"Data sources": "数据源",
|
|
11
|
+
"Database": "数据库",
|
|
12
|
+
"Description": "描述",
|
|
13
|
+
"Display name": "名称",
|
|
14
|
+
"Failed": "加载失败",
|
|
15
|
+
"Field database type": "字段数据库类型",
|
|
16
|
+
"Field interface": "UI类型",
|
|
17
|
+
"Filter data based on the specific field, with the requirement that the field value must be unique.": "根据特定的字段筛选数据,字段值必须具备唯一性。",
|
|
18
|
+
"Filter target key": "筛选目标键",
|
|
19
|
+
"Host": "服务器地址",
|
|
20
|
+
"Loaded": "已加载",
|
|
21
|
+
"Loading": "加载中",
|
|
22
|
+
"No external data source plugin installed": "未安装外部数据源",
|
|
23
|
+
"Password": "密码",
|
|
24
|
+
"Permissions": "权限",
|
|
25
|
+
"Port": "端口",
|
|
26
|
+
"Reloading": "加载中",
|
|
27
|
+
"Status": "状态",
|
|
28
|
+
"Storage": "文件地址",
|
|
29
|
+
"Test Connection": "测试连接",
|
|
30
|
+
"The following field types are not compatible and do not support output and display": "以下字段类型未适配,不支持输出和显示",
|
|
31
|
+
"Type": "类型",
|
|
32
|
+
"Unknown field type": "未知字段类型",
|
|
33
|
+
"Username": "用户名",
|
|
34
|
+
"View documentation": "查看文档"
|
|
35
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var data_sources_collections_exports = {};
|
|
19
|
+
__export(data_sources_collections_exports, {
|
|
20
|
+
default: () => data_sources_collections_default
|
|
21
|
+
});
|
|
22
|
+
module.exports = __toCommonJS(data_sources_collections_exports);
|
|
23
|
+
var import_database = require("@tachybase/database");
|
|
24
|
+
var data_sources_collections_default = (0, import_database.defineCollection)({
|
|
25
|
+
name: "dataSourcesCollections",
|
|
26
|
+
model: "DataSourcesCollectionModel",
|
|
27
|
+
dumpRules: "required",
|
|
28
|
+
shared: true,
|
|
29
|
+
autoGenId: false,
|
|
30
|
+
timestamps: false,
|
|
31
|
+
indexes: [
|
|
32
|
+
{
|
|
33
|
+
unique: true,
|
|
34
|
+
fields: ["name", "dataSourceKey"]
|
|
35
|
+
}
|
|
36
|
+
],
|
|
37
|
+
fields: [
|
|
38
|
+
{
|
|
39
|
+
type: "uid",
|
|
40
|
+
name: "key",
|
|
41
|
+
primaryKey: true
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
type: "string",
|
|
45
|
+
name: "name"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
type: "belongsTo",
|
|
49
|
+
name: "dataSources",
|
|
50
|
+
foreignKey: "dataSourceKey",
|
|
51
|
+
onDelete: "CASCADE"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
type: "json",
|
|
55
|
+
name: "options"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
type: "hasMany",
|
|
59
|
+
name: "fields",
|
|
60
|
+
target: "dataSourcesFields",
|
|
61
|
+
sourceKey: "key",
|
|
62
|
+
targetKey: "key",
|
|
63
|
+
foreignKey: "collectionKey"
|
|
64
|
+
}
|
|
65
|
+
]
|
|
66
|
+
});
|