@nocobase/plugin-data-source-manager 0.20.0-alpha.9 → 0.21.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.txt +107 -0
- package/dist/client/component/CollectionsManager/components/TitleField.d.ts +1 -1
- package/dist/client/index.js +10 -10
- package/dist/externalVersion.js +6 -6
- package/dist/locale/zh-CN.json +3 -1
- package/dist/server/plugin.js +2 -2
- package/dist/server/resourcers/data-sources-roles.js +17 -0
- package/package.json +2 -2
package/LICENSE.txt
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
Updated Date: March 30, 2024
|
|
2
|
+
|
|
3
|
+
NocoBase License Agreement
|
|
4
|
+
|
|
5
|
+
NocoBase Co., Ltd. ("The Company") https://www.nocobase.com/ issues this License Agreement ("Agreement") to you. You, as an individual or a company ("User"), will be deemed to voluntarily accept all terms of this Agreement by using NocoBase (including but not limited to obtaining NocoBase source code or installation package in any form, installing and using NocoBase, purchasing NocoBase commercial license and services, purchasing NocoBase commercial plugins). If the User does not agree to any term of this Agreement, or cannot accurately understand our interpretation of the relevant terms, please stop using it immediately.
|
|
6
|
+
|
|
7
|
+
This Agreement applies to any use, quotation, contract, invoice, and all software delivered by the Company. The User and the Company or NocoBase's agents can no longer sign a separate license agreement for the sale and delivery of the software.
|
|
8
|
+
|
|
9
|
+
The Company reserves the right to formulate and modify this Agreement from time to time as needed. If there are changes, the Company will announce them in the form of website announcements, without further individual notification. The changed Agreement will automatically take effect once it is announced, becoming part of this Agreement.
|
|
10
|
+
|
|
11
|
+
1. Definitions
|
|
12
|
+
|
|
13
|
+
1.1 "Software" refers to the NocoBase kernel and plugins placed in the same code repository as the kernel, including their source code, installation packages, images, and all their modifications, updates, and upgrades.
|
|
14
|
+
|
|
15
|
+
1.2 "Plugin Market" refers to the market provided by the Company for selling Software plugins and solutions.
|
|
16
|
+
|
|
17
|
+
1.3 "Commercial Plugin" refers to the paid plugins provided by the Plugin Market.
|
|
18
|
+
|
|
19
|
+
1.4 "Root Version" refers to the major version number before the first point in the version number. For example, from 1.0 to 1.x are all the same Root Version 1.
|
|
20
|
+
|
|
21
|
+
1.5 "Plugin Package" is the unit for batch licensing Commercial Plugins. P5, P10, and P20 Plugin Packages include installation packages for 5, 10, and 20 Commercial Plugins respectively. P5+, P10+, P20+ provide the source code of the Plugins in addition to the installation packages.
|
|
22
|
+
|
|
23
|
+
1.6 "Upper Layer Application" refers to a specific business use case application serving internal or external customers of the User, developed based on Software and Commercial Plugins, such as ERP/CRM.
|
|
24
|
+
|
|
25
|
+
1.7 "Third-Party Open Source Software" refers to open source software provided with Software and Commercial Plugins. They are licensed through various published open source software licenses or copyright notices accompanying such software.
|
|
26
|
+
|
|
27
|
+
2. Intellectual Property Protection
|
|
28
|
+
|
|
29
|
+
Except for Third-Party Open Source Software, the Company owns all copyrights, trademark rights, patent rights, trade secrets, and other intellectual property rights of the Software and Commercial Plugins, and has registered and protected them in relevant countries and regions according to the "Paris Convention" or "TRIPS Agreement", ensuring that the intellectual property rights of the Software and Commercial Plugins are internationally recognized and protected.
|
|
30
|
+
|
|
31
|
+
3. Disclaimer
|
|
32
|
+
|
|
33
|
+
3.1 Users shall not use the Software and Commercial Plugins to engage in activities that violate local laws and regulations, religious beliefs. All legal responsibilities and legal consequences arising from the use of Software and Commercial Plugins shall be borne by the User.
|
|
34
|
+
|
|
35
|
+
3.2 The Company shall not be liable for any direct, indirect, special, incidental, or consequential damages (including but not limited to loss of profits, business interruption, data loss, or business information disclosure) caused by the User's use of the Software and Commercial Plugins, even if it has been previously informed of the possibility of such damages.
|
|
36
|
+
|
|
37
|
+
4. License Type
|
|
38
|
+
|
|
39
|
+
4.1 The Software uses a dual license type of AGPL-3.0 Open Source License https://www.gnu.org/licenses/agpl-3..en.htm and Commercial License.
|
|
40
|
+
|
|
41
|
+
4.2 Commercial Plugins use Commercial License.
|
|
42
|
+
|
|
43
|
+
5. Rights and Obligations of Open Source License
|
|
44
|
+
|
|
45
|
+
5.1 The Software can be used for commercial purposes, such as developing applications for internal use within a company or for clients.
|
|
46
|
+
|
|
47
|
+
5.2 User can sell plugins developed for the Software in the Plugin Market.
|
|
48
|
+
|
|
49
|
+
5.3 Outside the Plugin Market, changes and plugins to the Software developed by User or third parties, and third-party software integrated with the Software must all be open sourced under the AGPL-3.0 license.
|
|
50
|
+
|
|
51
|
+
5.4 It is not allowed to remove or change the brand, name, link, version number, license, and other information about NocoBase on the Software interface, except for the main LOGO in the upper left corner of the page.
|
|
52
|
+
|
|
53
|
+
5.5 It is not allowed to remove or change all intellectual property statements about NocoBase in the code.
|
|
54
|
+
|
|
55
|
+
5.6 It is not allowed to provide any form of no-code, zero-code, low-code platform SaaS products to the public using the original or modified Software.
|
|
56
|
+
|
|
57
|
+
5.7 Comply with all requirements of the AGPL-3.0 agreement.
|
|
58
|
+
|
|
59
|
+
6. Rights of Commercial License
|
|
60
|
+
|
|
61
|
+
6.1 Obtain a permanent commercial license for a Root Version of the Software or Commercial Plugin.
|
|
62
|
+
|
|
63
|
+
6.2 Get 6 months of exclusive technical support.
|
|
64
|
+
|
|
65
|
+
6.3 Upgrade to the next Root Version at 50% of the contract price.
|
|
66
|
+
|
|
67
|
+
6.4 The licensed Software and Commercial Plugins can be used for commercial purposes, such as developing applications for internal use within a company or for clients, with no restrictions on the number of applications and users.
|
|
68
|
+
|
|
69
|
+
6.5 Changes and plugins to the Software, and applications integrated with the Software do not need to be open sourced.
|
|
70
|
+
|
|
71
|
+
6.6 Can remove or change the brand, name, link, version number, license, and other information about NocoBase on the Software interface.
|
|
72
|
+
|
|
73
|
+
6.7 Can sell plugins developed for Software in the Plugin Market or on User’s own website.
|
|
74
|
+
|
|
75
|
+
6.8 Can sell or provide Upper Layer Applications developed based on Software in the form of SaaS to the public.
|
|
76
|
+
|
|
77
|
+
6.9 Not restricted by the AGPL-3.0 agreement.
|
|
78
|
+
|
|
79
|
+
6.10 If there are other agreements in the contract for the above rights, the contract agreement shall prevail.
|
|
80
|
+
|
|
81
|
+
7. Obligations of Commercial License
|
|
82
|
+
|
|
83
|
+
7.1 It is not allowed to remove or change all intellectual property statements about NocoBase in the code.
|
|
84
|
+
|
|
85
|
+
7.2 It is not allowed to sell, transfer, lease, share, or give away the Commercial License.
|
|
86
|
+
|
|
87
|
+
7.3 It is not allowed to sell, transfer, lease, share, or give away any form of no-code, zero-code, low-code platform, or developer tools developed based on Software.
|
|
88
|
+
|
|
89
|
+
7.4 It is not allowed to provide any form of no-code, zero-code, low-code platform SaaS products to the public using the original or modified Software.
|
|
90
|
+
|
|
91
|
+
7.5 It is not allowed to use reverse engineering, decompilation, and other means to try to discover the source code of Commercial Plugins that have not obtained source code license.
|
|
92
|
+
|
|
93
|
+
7.6 It is not allowed to disclose the source code of Commercial Plugins to any third party.
|
|
94
|
+
|
|
95
|
+
7.7 If there is a violation of the above obligations or the terms of this Agreement, the rights owned by the User will be immediately terminated, the paid fees will not be refunded, and the Company reserves the right to pursue the User's legal responsibility.
|
|
96
|
+
|
|
97
|
+
7.8 If there are other agreements in the contract for the above obligations, the contract agreement shall prevail.
|
|
98
|
+
|
|
99
|
+
8. Legal Jurisdiction, Interpretation, and Dispute Resolution
|
|
100
|
+
|
|
101
|
+
8.1 Except for Mainland China, the interpretation, application, and all matters related to this agreement are subject to the jurisdiction of Singapore law.
|
|
102
|
+
|
|
103
|
+
8.2 Any dispute related to this Agreement should first be resolved through friendly negotiation. If the negotiation fails to resolve the dispute, the dispute should be submitted to the International Chamber of Commerce (ICC) for arbitration. The arbitration venue should be Singapore, conducted in English.
|
|
104
|
+
|
|
105
|
+
8.3 All terms and conditions of this Agreement shall be deemed enforceable to the maximum extent permitted by applicable law. If any term of this Agreement is deemed invalid by any applicable law, the invalidity of that term does not affect the validity of any other term of this Agreement, and it should be deemed that the invalid term has been modified as much as possible to make it valid and enforceable, or if the term cannot be modified, it should be deemed to have been deleted from this Agreement.
|
|
106
|
+
|
|
107
|
+
8.4 The arbitration award is final, binding on both parties, and can be enforced in any court with jurisdiction.
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
export declare const TitleField:
|
|
2
|
+
export declare const TitleField: React.FunctionComponent<any>;
|
package/dist/client/index.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
(function(M,i){typeof exports=="object"&&typeof module!="undefined"?i(exports,require("react/jsx-runtime"),require("@nocobase/client"),require("react"),require("@formily/react"),require("antd"),require("react-i18next"),require("@ant-design/icons"),require("react-router-dom"),require("@formily/shared"),require("@formily/reactive"),require("@formily/core"),require("@formily/antd-v5"),require("lodash"),require("@dnd-kit/core"),require("@emotion/css"),require("antd-style")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","@nocobase/client","react","@formily/react","antd","react-i18next","@ant-design/icons","react-router-dom","@formily/shared","@formily/reactive","@formily/core","@formily/antd-v5","lodash","@dnd-kit/core","@emotion/css","antd-style"],i):(M=typeof globalThis!="undefined"?globalThis:M||self,i(M["@nocobase/plugin-data-source-manager"]={},M.jsxRuntime,M["@nocobase/client"],M.react,M["@formily/react"],M.antd,M["react-i18next"],M["@ant-design/icons"],M["react-router-dom"],M["@formily/shared"],M["@formily/reactive"],M["@formily/core"],M["@formily/antd-v5"],M.lodash,M["@dnd-kit/core"],M["@emotion/css"],M["antd-style"]))})(this,function(M,i,n,p,A,h,V,ee,W,L,tt,ue,pe,J,R,ae,Ir){"use strict";var nv=Object.defineProperty,av=Object.defineProperties;var sv=Object.getOwnPropertyDescriptors;var Re=Object.getOwnPropertySymbols;var _r=Object.prototype.hasOwnProperty,Pr=Object.prototype.propertyIsEnumerable;var Mt=(M,i,n)=>i in M?nv(M,i,{enumerable:!0,configurable:!0,writable:!0,value:n}):M[i]=n,$=(M,i)=>{for(var n in i||(i={}))_r.call(i,n)&&Mt(M,n,i[n]);if(Re)for(var n of Re(i))Pr.call(i,n)&&Mt(M,n,i[n]);return M},k=(M,i)=>av(M,sv(i));var et=(M,i)=>{var n={};for(var p in M)_r.call(M,p)&&i.indexOf(p)<0&&(n[p]=M[p]);if(M!=null&&Re)for(var p of Re(M))i.indexOf(p)<0&&Pr.call(M,p)&&(n[p]=M[p]);return n};var Dr=(M,i,n)=>(Mt(M,typeof i!="symbol"?i+"":i,n),n);var O=(M,i,n)=>new Promise((p,A)=>{var h=W=>{try{ee(n.next(W))}catch(L){A(L)}},V=W=>{try{ee(n.throw(W))}catch(L){A(L)}},ee=W=>W.done?p(W.value):Promise.resolve(W.value).then(h,V);ee((n=n.apply(M,i)).next())});const N="data-source-manager";function Or(e,t={}){return n.i18n.t(e,k($({},t),{ns:N}))}const Er=e=>{const t=A.useForm(),o=n.useActionContext(),r=n.useAPIClient(),{t:a}=V.useTranslation(),s=A.useField();return s.data=s.data||{},{run(){return O(this,null,function*(){yield t.submit();try{s.data.loading=!0;const{data:l}=yield r.resource("databaseServers").create({values:$({},t.values)});s.data.loading=!1,o.setVisible(!1),yield t.reset(),e==null||e(l==null?void 0:l.data),h.message.success(a("Saved successfully"))}catch(l){s.data.loading=!1,console.log(l)}})}}},jt=()=>{const e=A.useForm(),t=n.useAPIClient(),{t:o}=V.useTranslation(),r=A.useField();return r.data=r.data||{},{run(){return O(this,null,function*(){yield e.submit();try{r.data.loading=!0,yield t.resource("dataSources").testConnection({values:$({},e.values)}),r.data.loading=!1,h.message.success(o("Connection successful",{ns:N}))}catch(s){r.data.loading=!1,console.log(s)}})}}},Mr=Object.freeze(Object.defineProperty({__proto__:null,useCreateDatabaseServer:Er,useTestConnectionAction:jt},Symbol.toStringTag,{value:"Module"})),Pe=p.createContext(null);Pe.displayName="DataSourceContext";const jr=e=>{const[t,o]=p.useState(null);return i.jsx(Pe.Provider,{value:{dataSource:t,setDataSource:o},children:i.jsx(n.SchemaComponentOptions,{scope:Mr,components:{},children:e.children})})};class kt extends n.DataSource{getDataSource(){return O(this,null,function*(){return(yield this.app.apiClient.request({url:`dataSources:get/${this.key}`,params:{appends:["collections"]}})).data.data})}}const Kt=[{value:"loading",label:`{{t("Loading",{ns:"${N}"})}}`,color:"orange"},{value:"loading-failed",label:`{{t("Failed",{ns:"${N}"})}}`,color:"red"},{value:"loaded",label:`{{t("Loaded",{ns:"${N}"})}}`,color:"green"},{value:"reloading",label:`{{t("Reloading",{ns:"${N}"})}}`,color:"orange"}],Nt={name:"collections-"+L.uid(),fields:[{type:"string",name:"key",interface:"input",uiSchema:{title:`{{t("Data source name",{ ns: "${N}" })}}`,type:"string","x-component":"Input",required:!0}},{type:"string",name:"displayName",interface:"input",uiSchema:{title:`{{t("Data source display name",{ ns: "${N}" })}}`,type:"string","x-component":"Input",required:!0}},{type:"string",name:"type",interface:"select",uiSchema:{title:`{{t("Type", { ns: "${N}" })}}`,type:"string","x-component":"Select",enum:"{{types}}"}},{type:"string",name:"status",interface:"select",uiSchema:{title:`{{t("Status", { ns: "${N}" })}}`,type:"string","x-component":"Select",enum:Kt}},{type:"boolean",name:"enabled",uiSchema:{type:"boolean",title:'{{t("Enabled")}}',"x-component":"Checkbox"}}]},kr={type:"object",properties:{[L.uid()]:{type:"void","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:Nt,resourceName:"dataSources",request:{resource:"dataSources",action:"list",params:{pageSize:50,appends:[]}}},"x-component":"CollectionProvider_deprecated","x-component-props":{collection:Nt},properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:16}},properties:{refresh:{type:"void",title:'{{ t("Refresh") }}',"x-component":"Action","x-component-props":{icon:"ReloadOutlined",useProps:"{{ useRefreshActionProps }}"}},delete:{type:"void",title:'{{ t("Delete") }}',"x-component":"Action","x-component-props":{icon:"DeleteOutlined",useAction:"{{ cm.useBulkDestroyAction }}",confirm:{title:"{{t('Delete')}}",content:"{{t('Are you sure you want to delete it?')}}"},actionCallback:"{{ dataSourceDeleteCallback }}"}},create:{type:"void",title:'{{t("Add new")}}',"x-component":"CreateDatabaseConnectAction","x-component-props":{type:"primary"}}}},table:{type:"void","x-uid":"input","x-component":"Table.Void","x-component-props":{rowKey:"key",rowSelection:{type:"checkbox"},useDataSource:"{{ cm.useDataSourceFromRAC }}"},properties:{key:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{key:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},displayName:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{displayName:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},type:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{type:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},status:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{status:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},enabled:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{enabled:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},actions:{type:"void",title:'{{t("Actions")}}',"x-component":"Table.Column",properties:{actions:{type:"void","x-component":"Space","x-component-props":{},properties:{view:{type:"void",title:'{{t("View")}}',"x-component":"ViewDatabaseConnectionAction","x-component-props":{type:"primary"}},update:{type:"void",title:'{{t("Edit")}}',"x-component":"EditDatabaseConnectionAction","x-component-props":{type:"primary"},"x-reactions":["{{useIsAbleDelete($self)}}"]},delete:{type:"void",title:'{{ t("Delete") }}',"x-component":"Action.Link","x-component-props":{confirm:{title:'{{t("Delete")}}',content:'{{t("Are you sure you want to delete it?")}}'},useAction:"{{useDestroyAction}}"},"x-reactions":["{{useIsAbleDelete($self)}}"]}}}}}}}}}}},Bt=()=>{const e=n.useApp(),{name:t}=W.useParams(),o=n.useCompile(),r=n.useDataSourceManager(),{displayName:a}=r.getDataSource(t)||{},{dataSource:s}=p.useContext(Pe),c=p.useMemo(()=>s||r.getDataSource(t),[s,t]),l=p.useMemo(()=>{const d=c==null?void 0:c.status,u=Kt.find(y=>y.value===d),f=[{title:i.jsx(W.Link,{to:e.pluginSettingsManager.getRoutePath(N),children:Or("Data source manager")})}];return c&&f.push({title:i.jsxs(h.Space,{children:[i.jsx("span",{children:o(a)}),d&&i.jsx(h.Tag,{color:u==null?void 0:u.color,children:o(u==null?void 0:u.label)},d)]})}),f},[c]);return i.jsx(h.Breadcrumb,{separator:i.jsx(ee.RightOutlined,{}),items:l})},Vt=e=>A.Schema.compile(e,{t:n.i18n.t}),Kr={name:"database-"+L.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"}}]},Nr=e=>({type:"object",properties:{[L.uid()]:{type:"void","x-collection":"dataSources","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:Kr,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"}}}}}),ot={type:"object",properties:{[L.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-component-props":{icon:"FilterOutlined",useProps:"{{ cm.useFilterActionProps }}"},"x-align":"left"},refresh:{type:"void",title:'{{ t("Refresh") }}',"x-component":"Action","x-component-props":{icon:"ReloadOutlined",useProps:"{{ useRefreshActionProps }}"}},delete:{type:"void",title:'{{ t("Delete") }}',"x-component":"DeleteCollection","x-component-props":{role:"button",isBulk:!0},"x-visible":!1},create:{type:"void",title:'{{ t("Create collection") }}',"x-component":"AddCollection","x-component-props":{type:"primary"},"x-visible":!1}}},[L.uid()]:{type:"void","x-uid":"input","x-component":"Table.Void","x-component-props":{rowKey:"name",rowSelection:{type:"checkbox"},useDataSource:"{{cm.useDataSourceFromRAC }}",useAction(){const e=n.useAPIClient(),{t}=V.useTranslation();return{move(r,a){return O(this,null,function*(){yield e.resource("dataSources").move({sourceId:r.key,targetId:a.key}),h.message.success(t("Saved successfully"),.2)})}}}},properties:{column1:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{title:{"x-component":"CollectionField","x-read-pretty":!0}}},column2:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{name:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},column5:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{description:{"x-component":"CollectionField","x-read-pretty":!0,"x-component-props":{ellipsis:!0}}}},column6:{type:"void",title:'{{ t("Actions") }}',"x-component":"Table.Column",properties:{actions:{type:"void","x-component":"Space","x-component-props":{split:"|"},properties:{view:{type:"void",title:'{{ t("Configure fields") }}',"x-component":"Action.Link","x-component-props":{},properties:{drawer:{type:"void","x-component":"Action.Drawer","x-component-props":{destroyOnClose:!0,width:"70%"},"x-reactions":e=>{const t=e.path.segments[1],o=e.path.segments[0],r=e.form.getValuesIn(`${o}.${t}`);r&&(e.title=`${Vt(r.title||r.name)} - ${Vt('{{ t("Configure fields") }}')}`)},properties:{collectionFields:{type:"void","x-component":"CollectionFields"}}}}},update:{type:"void",title:'{{ t("Edit") }}',"x-component":"EditCollection","x-component-props":{role:"button","aria-label":'{{ "edit-button-" + $record.name }}',type:"primary"}},delete:{type:"void",title:'{{ t("Delete") }}',"x-visible":!1,"x-component":"DeleteCollection","x-component-props":{role:"button","aria-label":'{{ "delete-button-" + $record.name }}',type:"primary",className:"nb-action-link"}}}}}}}}}},Br={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: "${N}" })}}`,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"}}]},Vr={type:"object",properties:{[L.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"}}}},[L.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: "${N}" })}}`,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-read-pretty":!1,"x-component-props":{useProps:"{{useTitleFieldProps}}"}}}},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]) }}"}}}]}}}}}}}}},Lr=e=>{const{useProps:t}=e,{t:o}=V.useTranslation(),{isTitleField:r}=n.useCollectionManager_deprecated(),[a,s]=p.useState(null),{setTitleField:c,filterByTk:l,dataSourceKey:d}=t(),u=n.useRecord(),f=n.useAPIClient(),{refreshRM:y,titleField:g}=Tt(),S=D=>O(this,null,function*(){s(u),yield f.request({url:`dataSources/${d}/collections:update?filterByTk=${l}`,method:"post",data:{titleField:D?u.name:"id"}}),h.message.success(o("Saved successfully")),y(),c(D?u.name:"id"),s(null)});return r(u)?i.jsx(h.Tooltip,{title:o("Default title for each record"),placement:"right",overlayInnerStyle:{textAlign:"center"},children:i.jsx(h.Switch,{"aria-label":`switch-title-field-${u==null?void 0:u.name}`,size:"small",loading:(u==null?void 0:u.name)===(a==null?void 0:a.name),checked:(u==null?void 0:u.name)===(g||"id"),onChange:S})}):null},Lt=(e,t)=>{const o=[];return e.forEach(r=>{const a=r.children.filter(s=>{var c;return(c=s==null?void 0:s.availableTypes)==null?void 0:c.includes(t)});o.push({label:r.label,key:r.key,children:a})}),o.filter(r=>t==="sort"?r.key==="advanced":r.children.length>0)},qr=A.observer(e=>{var g;const{value:t,handleFieldChange:o}=e,r=n.useRecord(),{getInterface:a}=n.useCollectionManager_deprecated(),s=n.useCompile(),c=n.useFieldInterfaceOptions(),l=Lt(c,r.type),d=A.useForm(),u=A.useField(),[f,y]=p.useState(l);return["oho","obo","o2m","m2o","m2m"].includes(r.interface)?i.jsx(h.Tag,{children:s((g=c.find(S=>S.key==="relation").children.find(S=>S.name===t))==null?void 0:g.label)},t):i.jsx(h.Select,{defaultValue:t,style:{width:"100%"},popupMatchSelectWidth:!1,onChange:S=>{var C,x;const D=a(S);o({interface:S,uiSchema:$({title:(C=r==null?void 0:r.uiSchema)==null?void 0:C.title},(x=D==null?void 0:D.default)==null?void 0:x.uiSchema)},r.name)},onDropdownVisibleChange:S=>{var D,C;if(S&&(r!=null&&r.possibleTypes)){const x=(C=(D=Object.values(d.values))==null?void 0:D[0])==null?void 0:C[u.index],v=(x==null?void 0:x.type)||r.type,I=Lt(c,v);y(I)}},children:f.map(S=>i.jsx(h.Select.OptGroup,{label:s(S.label),children:S.children.map(D=>i.jsx(h.Select.Option,{value:D.name,children:s(D.label)},D.name))},S.key))})},{displayName:"CollectionFieldInterfaceSelect"}),De=["string","bigInt","integer","uuid","uid"],Gr=A.observer(e=>{var u,f;const{name:t}=W.useParams(),{collectionName:o,sourceKey:r,name:a}=n.useRecord(),s=A.useField(),c=n.useCompile(),{getCollection:l}=n.useCollectionManager_deprecated(),d=(u=l(o||a,t).fields)==null?void 0:u.filter(y=>y.primaryKey||y.unique).map(y=>{var g;return{value:y.name,label:c(((g=y.uiSchema)==null?void 0:g.title)||y.title||y.name)}});return p.useEffect(()=>{var y;s.initialValue=((y=d==null?void 0:d[0])==null?void 0:y.value)||r},[]),i.jsx("div",{children:i.jsx(h.Select,{disabled:r,options:d,defaultValue:((f=d==null?void 0:d[0])==null?void 0:f.value)||r,onChange:e==null?void 0:e.onChange,showSearch:!0})})},{displayName:"SourceKey"}),qt=A.observer(e=>{const{disabled:t}=e,o=n.useAPIClient(),[r,a]=p.useState([]),{name:s}=W.useParams(),c=n.useRecord(),l=A.useField(),{collectionName:d,target:u,type:f,through:y,name:g}=c,S=c[l.props.name],{getCollection:D}=n.useCollectionManager_deprecated(),C=n.useCompile(),x=A.useForm(),[v,I]=p.useState(S);return p.useEffect(()=>{var P;l.initialValue=null;const b=["belongsTo"].includes(f)?d:["belongsToMany"].includes(f)?y:u,m=(P=D(b||g,s))==null?void 0:P.fields;if(m){const w=m==null?void 0:m.filter(T=>De.includes(T.type)).map(T=>{var j;return{value:T.name,label:C(((j=T.uiSchema)==null?void 0:j.title)||T.title||T.name)}});if(a(w),S){const T=w.find(j=>j.value===S);I((T==null?void 0:T.label)||S)}}},[f]),p.useEffect(()=>{I(S)},[S]),i.jsx("div",{children:i.jsx(h.Select,{disabled:t,value:v,options:r,showSearch:!0,onDropdownVisibleChange:b=>O(this,null,function*(){var j;const{target:m,type:P,through:w}=x.values,T=["belongsTo"].includes(P)?d:["belongsToMany"].includes(P)?w:m;if(T&&b){const{data:F}=yield o.request({url:`dataSourcesCollections/${s}.${T}/fields:list`,params:{paginate:!1,filter:{$or:[{"interface.$not":null},{"options.source.$notEmpty":!0}]},sort:["sort"]}});a((j=F.data)==null?void 0:j.filter(_=>De.includes(_.type)).map(_=>{var K;return{value:_.name,label:C(((K=_.uiSchema)==null?void 0:K.title)||_.title||_.name)}}))}}),onChange:b=>{var m;(m=e==null?void 0:e.onChange)==null||m.call(e,b),I(b)}})})},{displayName:"ForeignKey"}),zr=A.observer(e=>{const{value:t,disabled:o}=e,{targetKey:r,target:a,type:s}=n.useRecord(),{name:c}=W.useParams(),{getCollection:l}=n.useCollectionManager_deprecated(),d=n.useAPIClient(),[u,f]=p.useState([]),[y,g]=p.useState(t||r),S=A.useForm(),D=n.useCompile(),C=A.useField();return C.required=!0,p.useEffect(()=>{var x;a&&f((x=l(a,c).fields)==null?void 0:x.filter(v=>s!=="hasMany"?v.primaryKey||v.unique:De.includes(v.type)).map(v=>{var I;return{value:v.name,label:D(((I=v==null?void 0:v.uiSchema)==null?void 0:I.title)||v.title||v.name)}}))},[]),i.jsx("div",{children:i.jsx(h.Select,{showSearch:!0,options:u,onDropdownVisibleChange:x=>O(this,null,function*(){var b;const{target:v,type:I}=S.values;if(v&&x){const{data:m}=yield d.request({url:`dataSourcesCollections/${c}.${v}/fields:list`,params:{paginate:!1,filter:{$or:[{"interface.$not":null},{"options.source.$notEmpty":!0}]},sort:["sort"]}});f((b=m.data)==null?void 0:b.filter(P=>I!=="hasMany"?P.primaryKey||P.unique:De.includes(P.type)).map(P=>{var w;return{value:P.name,label:D(((w=P.uiSchema)==null?void 0:w.title)||P.title||P.name)}}))}}),onChange:x=>{var v;(v=e==null?void 0:e.onChange)==null||v.call(e,x),g(x)},value:y,disabled:o})})},{displayName:"TargetKey"}),Ur=A.observer(()=>{const e=n.useCompile(),{targetCollection:t}=Tt();return i.jsx("div",{children:i.jsx(h.Select,{disabled:!0,showSearch:!0,popupMatchSelectWidth:!1,value:t.name,options:[{value:t.name,label:e(t.title||t.name)}]})})},{displayName:"SourceCollection"}),Hr=A.observer(e=>{const{disabled:t}=e,o=n.useCompile(),[r,a]=p.useState([]),{name:s}=W.useParams(),c=A.useField(),{getCollections:l}=n.useCollectionManager_deprecated(s),u=n.useRecord()[c.props.name],f=()=>l().filter(g=>!(g.autoCreate&&g.isThrough)).map(g=>({label:o(g.title||g.name),value:g.name}));return p.useEffect(()=>{const y=f();a(y)},[]),i.jsx("div",{children:i.jsx(h.Select,{disabled:t,showSearch:!0,popupMatchSelectWidth:!1,fieldNames:{label:"label",value:"value"},defaultValue:u,options:r,onChange:y=>{var g;(g=e==null?void 0:e.onChange)==null||g.call(e,y)}})})},{displayName:"ThroughCollection"}),Wr=(e,t,o)=>{var s;if(!e)return;const r=J.cloneDeep(e.properties);r!=null&&r.foreignKey&&(r.foreignKey["x-component"]=qt),e.hasDefaultValue===!0&&(r.defaultValue=J.cloneDeep((s=e==null?void 0:e.default)==null?void 0:s.uiSchema),r.defaultValue.required=!1,r.defaultValue.title=o('{{ t("Default value") }}'),r.defaultValue["x-decorator"]="FormItem",r.defaultValue["x-reactions"]={dependencies:["uiSchema.x-component-props.gmt","uiSchema.x-component-props.showTime","uiSchema.x-component-props.dateFormat","uiSchema.x-component-props.timeFormat"],fulfill:{state:{componentProps:{gmt:"{{$deps[0]}}",showTime:"{{$deps[1]}}",dateFormat:"{{$deps[2]}}",timeFormat:"{{$deps[3]}}"}}}});const a=k($({name:`f_${L.uid()}`},J.cloneDeep(e.default)),{interface:e.name});return a.reverseField&&(a.reverseField.name=`f_${L.uid()}`),{type:"object",properties:{[L.uid()]:{type:"void","x-component":"Action.Drawer","x-component-props":{getContainer:"{{ getContainer }}"},"x-decorator":"Form","x-decorator-props":{useValues(c){return n.useRequest(()=>Promise.resolve({data:a}),c)}},title:`${o(t.title||t.name)} - ${o('{{ t("Add field") }}')}`,properties:k($({summary:{type:"void","x-component":"FieldSummary","x-component-props":{schemaKey:e.name}}},r),{description:{type:"string",title:'{{t("Description")}}',"x-decorator":"FormItem","x-component":"Input.TextArea"},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{action1:{title:'{{ t("Cancel") }}',"x-component":"Action","x-component-props":{useAction:"{{ useCancelAction }}"}},action2:{title:'{{ t("Submit") }}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ useCreateCollectionField }}"}}}}})}}}},Yr=()=>{const e=A.useForm(),t=n.useActionContext(),{refresh:o}=n.useResourceActionContext(),r=A.useField(),a=n.useAPIClient(),s=n.useRecord(),{name:c}=W.useParams(),l=n.useDataSourceManager();return{run(){return O(this,null,function*(){yield e.submit(),r.data=r.data||{},r.data.loading=!0;const u=J.cloneDeep(e.values);u.autoCreateReverseField||delete u.reverseField,delete u.autoCreateReverseField;try{yield a.request({url:`dataSourcesCollections/${c}.${s.name}/fields:create`,method:"post",data:u}),t.setVisible(!1),l.getDataSource(c).reload(),yield e.reset(),r.data.loading=!1,o()}catch(f){r.data.loading=!1}})}}},Qr=e=>{const t=n.useRecord();return i.jsx(Zr,$({item:t},e))},Zr=e=>{const{scope:t,getContainer:o,item:r,children:a,trigger:s,align:c,database:l}=e,{getInterface:d,getTemplate:u,collections:f}=n.useCollectionManager_deprecated(),[y,g]=p.useState(!1),[S,D]=p.useState(),[C,x]=p.useState({}),v=n.useCompile(),{t:I}=V.useTranslation(),{data:{database:b}}=n.useCurrentAppInfo(),m=_=>(b==null?void 0:b.dialect)===_,P=p.useMemo(()=>f.map(_=>({label:v(_.title),value:_.name})),[]),w=n.useFieldInterfaceOptions(),T=p.useCallback(()=>{const{availableFieldInterfaces:_}=u(r.template)||{},{exclude:K,include:B}=_||{},Q=[];return w.forEach(H=>{var E;if(H.key==="relation"){let Y=[];B!=null&&B.length?B.forEach(G=>{var ne;const oe=(ne=H==null?void 0:H.children)==null?void 0:ne.find(rv=>[G,G.interface].includes(rv.value));oe&&Y.push(k($({},oe),{targetScope:G==null?void 0:G.targetScope}))}):K!=null&&K.length?Y=(E=H==null?void 0:H.children)==null?void 0:E.filter(G=>!K.includes(G.value)):Y=H==null?void 0:H.children,Y!=null&&Y.length&&Q.push(k($({},H),{children:Y}))}}),Q},[u,r]),j=p.useMemo(()=>T().map(_=>{var K;return((K=_==null?void 0:_.children)==null?void 0:K.length)===0?null:r.template==="view"?{type:"group",label:v(_.label),title:v(_.label),key:_.label,children:_.children.filter(B=>["m2o"].includes(B.name)).map(B=>({label:v(B.title),title:v(B.title),key:B.name,dataTargetScope:B.targetScope}))}:{type:"group",label:v(_.label),title:v(_.label),key:_.label,children:_==null?void 0:_.children.filter(B=>!["o2o","subTable","linkTo"].includes(B.name)).map(B=>({label:v(B.title),title:v(B.title),key:B.name,dataTargetScope:B.targetScope}))}}).filter(_=>{var K;return(K=_==null?void 0:_.children)==null?void 0:K.length}),[T]),F=p.useMemo(()=>({style:{maxHeight:"60vh",overflow:"auto"},onClick:_=>{const K=_.item.props["data-targetScope"];K&&D(K);const B=Wr(d(_.key),r,v);B&&(x(B),g(!0))},items:j}),[d,j,r]);return r.template!=="sql"&&i.jsx(n.RecordProvider,{record:r,children:i.jsxs(n.ActionContextProvider,{value:{visible:y,setVisible:g},children:[i.jsx(h.Dropdown,{getPopupContainer:o,trigger:s,align:c,menu:F,children:a||i.jsx(h.Button,{icon:i.jsx(ee.PlusOutlined,{}),type:"primary",children:I("Add field")})}),i.jsx(n.SchemaComponent,{schema:C,components:{ArrayTable:pe.ArrayTable},scope:$({getContainer:o,useCancelAction:n.useCancelAction,createOnly:!0,isOverride:!1,override:!1,useCreateCollectionField:Yr,record:r,showReverseFieldConfig:!1,targetScope:S,collections:P,isDialect:m,disabledJSONB:!1,createMainOnly:!0},t)})]})})},Jr=A.observer(e=>{const{value:t,handleFieldChange:o}=e,r=n.useRecord(),[a,s]=p.useState(t),c=u=>{s(u)},l=p.useMemo(()=>J.debounce(u=>{o({uiSchema:k($({},r==null?void 0:r.uiSchema),{title:u})},r.name)},1e3),[o,r]),d=u=>{const f=u.target.value;c(f),l(f)};return p.useEffect(()=>{s(t)},[t]),i.jsx(h.Input,{value:a,onChange:d})},{displayName:"FieldTitleInput"}),Xr=()=>{const{refresh:e}=n.useResourceActionContext(),{name:t}=W.useParams(),{name:o,collectionName:r}=n.useRecord(),a=n.useAPIClient();return{run(){return O(this,null,function*(){yield a.request({url:`dataSourcesCollections/${t}.${r}/fields:destroy?filterByTk=${o}`,method:"post"}),e()})}}},Rr=()=>{const{state:e,setState:t,refresh:o}=n.useResourceActionContext(),{t:r}=V.useTranslation(),{name:a}=W.useParams(),s=n.useAPIClient(),{name:c}=n.useRecord();return{run(){return O(this,null,function*(){var d;if(!((d=e==null?void 0:e.selectedRowKeys)!=null&&d.length))return h.message.error(r("Please select the records you want to delete"));yield s.request({url:`dataSourcesCollections/${a}.${c}/fields:destroy`,method:"post",params:{filterByTk:(e==null?void 0:e.selectedRowKeys)||[]}}),t==null||t({selectedRowKeys:[]}),o()})}}},en=()=>{const{run:e}=Rr();return{run(){return O(this,null,function*(){yield e()})}}},tn=()=>{const{run:e}=Xr();return{run(){return O(this,null,function*(){yield e()})}}};var Ie=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function be(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function on(){this.__data__=[],this.size=0}var rn=on;function nn(e,t){return e===t||e!==e&&t!==t}var Gt=nn,an=Gt;function sn(e,t){for(var o=e.length;o--;)if(an(e[o][0],t))return o;return-1}var Oe=sn,cn=Oe,ln=Array.prototype,un=ln.splice;function pn(e){var t=this.__data__,o=cn(t,e);if(o<0)return!1;var r=t.length-1;return o==r?t.pop():un.call(t,o,1),--this.size,!0}var dn=pn,mn=Oe;function fn(e){var t=this.__data__,o=mn(t,e);return o<0?void 0:t[o][1]}var yn=fn,gn=Oe;function vn(e){return gn(this.__data__,e)>-1}var hn=vn,Cn=Oe;function bn(e,t){var o=this.__data__,r=Cn(o,e);return r<0?(++this.size,o.push([e,t])):o[r][1]=t,this}var xn=bn,Sn=rn,An=dn,$n=yn,Tn=hn,Fn=xn;function de(e){var t=-1,o=e==null?0:e.length;for(this.clear();++t<o;){var r=e[t];this.set(r[0],r[1])}}de.prototype.clear=Sn,de.prototype.delete=An,de.prototype.get=$n,de.prototype.has=Tn,de.prototype.set=Fn;var Ee=de,wn=Ee;function _n(){this.__data__=new wn,this.size=0}var Pn=_n;function Dn(e){var t=this.__data__,o=t.delete(e);return this.size=t.size,o}var In=Dn;function On(e){return this.__data__.get(e)}var En=On;function Mn(e){return this.__data__.has(e)}var jn=Mn,kn=typeof Ie=="object"&&Ie&&Ie.Object===Object&&Ie,zt=kn,Kn=zt,Nn=typeof self=="object"&&self&&self.Object===Object&&self,Bn=Kn||Nn||Function("return this")(),te=Bn,Vn=te,Ln=Vn.Symbol,xe=Ln,Ut=xe,Ht=Object.prototype,qn=Ht.hasOwnProperty,Gn=Ht.toString,Se=Ut?Ut.toStringTag:void 0;function zn(e){var t=qn.call(e,Se),o=e[Se];try{e[Se]=void 0;var r=!0}catch(s){}var a=Gn.call(e);return r&&(t?e[Se]=o:delete e[Se]),a}var Un=zn,Hn=Object.prototype,Wn=Hn.toString;function Yn(e){return Wn.call(e)}var Qn=Yn,Wt=xe,Zn=Un,Jn=Qn,Xn="[object Null]",Rn="[object Undefined]",Yt=Wt?Wt.toStringTag:void 0;function ea(e){return e==null?e===void 0?Rn:Xn:Yt&&Yt in Object(e)?Zn(e):Jn(e)}var me=ea;function ta(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var fe=ta,oa=me,ra=fe,na="[object AsyncFunction]",aa="[object Function]",sa="[object GeneratorFunction]",ia="[object Proxy]";function ca(e){if(!ra(e))return!1;var t=oa(e);return t==aa||t==sa||t==na||t==ia}var Qt=ca,la=te,ua=la["__core-js_shared__"],pa=ua,rt=pa,Zt=function(){var e=/[^.]+$/.exec(rt&&rt.keys&&rt.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function da(e){return!!Zt&&Zt in e}var ma=da,fa=Function.prototype,ya=fa.toString;function ga(e){if(e!=null){try{return ya.call(e)}catch(t){}try{return e+""}catch(t){}}return""}var Jt=ga,va=Qt,ha=ma,Ca=fe,ba=Jt,xa=/[\\^$.*+?()[\]{}|]/g,Sa=/^\[object .+?Constructor\]$/,Aa=Function.prototype,$a=Object.prototype,Ta=Aa.toString,Fa=$a.hasOwnProperty,wa=RegExp("^"+Ta.call(Fa).replace(xa,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function _a(e){if(!Ca(e)||ha(e))return!1;var t=va(e)?wa:Sa;return t.test(ba(e))}var Pa=_a;function Da(e,t){return e==null?void 0:e[t]}var Ia=Da,Oa=Pa,Ea=Ia;function Ma(e,t){var o=Ea(e,t);return Oa(o)?o:void 0}var se=Ma,ja=se,ka=te,Ka=ja(ka,"Map"),nt=Ka,Na=se,Ba=Na(Object,"create"),Me=Ba,Xt=Me;function Va(){this.__data__=Xt?Xt(null):{},this.size=0}var La=Va;function qa(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Ga=qa,za=Me,Ua="__lodash_hash_undefined__",Ha=Object.prototype,Wa=Ha.hasOwnProperty;function Ya(e){var t=this.__data__;if(za){var o=t[e];return o===Ua?void 0:o}return Wa.call(t,e)?t[e]:void 0}var Qa=Ya,Za=Me,Ja=Object.prototype,Xa=Ja.hasOwnProperty;function Ra(e){var t=this.__data__;return Za?t[e]!==void 0:Xa.call(t,e)}var es=Ra,ts=Me,os="__lodash_hash_undefined__";function rs(e,t){var o=this.__data__;return this.size+=this.has(e)?0:1,o[e]=ts&&t===void 0?os:t,this}var ns=rs,as=La,ss=Ga,is=Qa,cs=es,ls=ns;function ye(e){var t=-1,o=e==null?0:e.length;for(this.clear();++t<o;){var r=e[t];this.set(r[0],r[1])}}ye.prototype.clear=as,ye.prototype.delete=ss,ye.prototype.get=is,ye.prototype.has=cs,ye.prototype.set=ls;var us=ye,Rt=us,ps=Ee,ds=nt;function ms(){this.size=0,this.__data__={hash:new Rt,map:new(ds||ps),string:new Rt}}var fs=ms;function ys(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var gs=ys,vs=gs;function hs(e,t){var o=e.__data__;return vs(t)?o[typeof t=="string"?"string":"hash"]:o.map}var je=hs,Cs=je;function bs(e){var t=Cs(this,e).delete(e);return this.size-=t?1:0,t}var xs=bs,Ss=je;function As(e){return Ss(this,e).get(e)}var $s=As,Ts=je;function Fs(e){return Ts(this,e).has(e)}var ws=Fs,_s=je;function Ps(e,t){var o=_s(this,e),r=o.size;return o.set(e,t),this.size+=o.size==r?0:1,this}var Ds=Ps,Is=fs,Os=xs,Es=$s,Ms=ws,js=Ds;function ge(e){var t=-1,o=e==null?0:e.length;for(this.clear();++t<o;){var r=e[t];this.set(r[0],r[1])}}ge.prototype.clear=Is,ge.prototype.delete=Os,ge.prototype.get=Es,ge.prototype.has=Ms,ge.prototype.set=js;var eo=ge,ks=Ee,Ks=nt,Ns=eo,Bs=200;function Vs(e,t){var o=this.__data__;if(o instanceof ks){var r=o.__data__;if(!Ks||r.length<Bs-1)return r.push([e,t]),this.size=++o.size,this;o=this.__data__=new Ns(r)}return o.set(e,t),this.size=o.size,this}var Ls=Vs,qs=Ee,Gs=Pn,zs=In,Us=En,Hs=jn,Ws=Ls;function ve(e){var t=this.__data__=new qs(e);this.size=t.size}ve.prototype.clear=Gs,ve.prototype.delete=zs,ve.prototype.get=Us,ve.prototype.has=Hs,ve.prototype.set=Ws;var Ys=ve;function Qs(e,t){for(var o=-1,r=e==null?0:e.length;++o<r&&t(e[o],o,e)!==!1;);return e}var Zs=Qs,Js=se,Xs=function(){try{var e=Js(Object,"defineProperty");return e({},"",{}),e}catch(t){}}(),to=Xs,oo=to;function Rs(e,t,o){t=="__proto__"&&oo?oo(e,t,{configurable:!0,enumerable:!0,value:o,writable:!0}):e[t]=o}var ro=Rs,ei=ro,ti=Gt,oi=Object.prototype,ri=oi.hasOwnProperty;function ni(e,t,o){var r=e[t];(!(ri.call(e,t)&&ti(r,o))||o===void 0&&!(t in e))&&ei(e,t,o)}var at=ni,ai=at,si=ro;function ii(e,t,o,r){var a=!o;o||(o={});for(var s=-1,c=t.length;++s<c;){var l=t[s],d=r?r(o[l],e[l],l,o,e):void 0;d===void 0&&(d=e[l]),a?si(o,l,d):ai(o,l,d)}return o}var Ae=ii;function ci(e,t){for(var o=-1,r=Array(e);++o<e;)r[o]=t(o);return r}var li=ci;function ui(e){return e!=null&&typeof e=="object"}var ie=ui,pi=me,di=ie,mi="[object Arguments]";function fi(e){return di(e)&&pi(e)==mi}var yi=fi,no=yi,gi=ie,ao=Object.prototype,vi=ao.hasOwnProperty,hi=ao.propertyIsEnumerable,Ci=no(function(){return arguments}())?no:function(e){return gi(e)&&vi.call(e,"callee")&&!hi.call(e,"callee")},so=Ci,bi=Array.isArray,ce=bi,ke={exports:{}};function xi(){return!1}var Si=xi;ke.exports,function(e,t){var o=te,r=Si,a=t&&!t.nodeType&&t,s=a&&!0&&e&&!e.nodeType&&e,c=s&&s.exports===a,l=c?o.Buffer:void 0,d=l?l.isBuffer:void 0,u=d||r;e.exports=u}(ke,ke.exports);var io=ke.exports,Ai=9007199254740991,$i=/^(?:0|[1-9]\d*)$/;function Ti(e,t){var o=typeof e;return t=t==null?Ai:t,!!t&&(o=="number"||o!="symbol"&&$i.test(e))&&e>-1&&e%1==0&&e<t}var co=Ti,Fi=9007199254740991;function wi(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Fi}var lo=wi,_i=me,Pi=lo,Di=ie,Ii="[object Arguments]",Oi="[object Array]",Ei="[object Boolean]",Mi="[object Date]",ji="[object Error]",ki="[object Function]",Ki="[object Map]",Ni="[object Number]",Bi="[object Object]",Vi="[object RegExp]",Li="[object Set]",qi="[object String]",Gi="[object WeakMap]",zi="[object ArrayBuffer]",Ui="[object DataView]",Hi="[object Float32Array]",Wi="[object Float64Array]",Yi="[object Int8Array]",Qi="[object Int16Array]",Zi="[object Int32Array]",Ji="[object Uint8Array]",Xi="[object Uint8ClampedArray]",Ri="[object Uint16Array]",ec="[object Uint32Array]",U={};U[Hi]=U[Wi]=U[Yi]=U[Qi]=U[Zi]=U[Ji]=U[Xi]=U[Ri]=U[ec]=!0,U[Ii]=U[Oi]=U[zi]=U[Ei]=U[Ui]=U[Mi]=U[ji]=U[ki]=U[Ki]=U[Ni]=U[Bi]=U[Vi]=U[Li]=U[qi]=U[Gi]=!1;function tc(e){return Di(e)&&Pi(e.length)&&!!U[_i(e)]}var oc=tc;function rc(e){return function(t){return e(t)}}var st=rc,Ke={exports:{}};Ke.exports,function(e,t){var o=zt,r=t&&!t.nodeType&&t,a=r&&!0&&e&&!e.nodeType&&e,s=a&&a.exports===r,c=s&&o.process,l=function(){try{var d=a&&a.require&&a.require("util").types;return d||c&&c.binding&&c.binding("util")}catch(u){}}();e.exports=l}(Ke,Ke.exports);var it=Ke.exports,nc=oc,ac=st,uo=it,po=uo&&uo.isTypedArray,sc=po?ac(po):nc,ic=sc,cc=li,lc=so,uc=ce,pc=io,dc=co,mc=ic,fc=Object.prototype,yc=fc.hasOwnProperty;function gc(e,t){var o=uc(e),r=!o&&lc(e),a=!o&&!r&&pc(e),s=!o&&!r&&!a&&mc(e),c=o||r||a||s,l=c?cc(e.length,String):[],d=l.length;for(var u in e)(t||yc.call(e,u))&&!(c&&(u=="length"||a&&(u=="offset"||u=="parent")||s&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||dc(u,d)))&&l.push(u);return l}var mo=gc,vc=Object.prototype;function hc(e){var t=e&&e.constructor,o=typeof t=="function"&&t.prototype||vc;return e===o}var ct=hc;function Cc(e,t){return function(o){return e(t(o))}}var fo=Cc,bc=fo,xc=bc(Object.keys,Object),Sc=xc,Ac=ct,$c=Sc,Tc=Object.prototype,Fc=Tc.hasOwnProperty;function wc(e){if(!Ac(e))return $c(e);var t=[];for(var o in Object(e))Fc.call(e,o)&&o!="constructor"&&t.push(o);return t}var _c=wc,Pc=Qt,Dc=lo;function Ic(e){return e!=null&&Dc(e.length)&&!Pc(e)}var yo=Ic,Oc=mo,Ec=_c,Mc=yo;function jc(e){return Mc(e)?Oc(e):Ec(e)}var lt=jc,kc=Ae,Kc=lt;function Nc(e,t){return e&&kc(t,Kc(t),e)}var Bc=Nc;function Vc(e){var t=[];if(e!=null)for(var o in Object(e))t.push(o);return t}var Lc=Vc,qc=fe,Gc=ct,zc=Lc,Uc=Object.prototype,Hc=Uc.hasOwnProperty;function Wc(e){if(!qc(e))return zc(e);var t=Gc(e),o=[];for(var r in e)r=="constructor"&&(t||!Hc.call(e,r))||o.push(r);return o}var Yc=Wc,Qc=mo,Zc=Yc,Jc=yo;function Xc(e){return Jc(e)?Qc(e,!0):Zc(e)}var ut=Xc,Rc=Ae,el=ut;function tl(e,t){return e&&Rc(t,el(t),e)}var ol=tl,Ne={exports:{}};Ne.exports,function(e,t){var o=te,r=t&&!t.nodeType&&t,a=r&&!0&&e&&!e.nodeType&&e,s=a&&a.exports===r,c=s?o.Buffer:void 0,l=c?c.allocUnsafe:void 0;function d(u,f){if(f)return u.slice();var y=u.length,g=l?l(y):new u.constructor(y);return u.copy(g),g}e.exports=d}(Ne,Ne.exports);var rl=Ne.exports;function nl(e,t){var o=-1,r=e.length;for(t||(t=Array(r));++o<r;)t[o]=e[o];return t}var al=nl;function sl(e,t){for(var o=-1,r=e==null?0:e.length,a=0,s=[];++o<r;){var c=e[o];t(c,o,e)&&(s[a++]=c)}return s}var il=sl;function cl(){return[]}var go=cl,ll=il,ul=go,pl=Object.prototype,dl=pl.propertyIsEnumerable,vo=Object.getOwnPropertySymbols,ml=vo?function(e){return e==null?[]:(e=Object(e),ll(vo(e),function(t){return dl.call(e,t)}))}:ul,pt=ml,fl=Ae,yl=pt;function gl(e,t){return fl(e,yl(e),t)}var vl=gl;function hl(e,t){for(var o=-1,r=t.length,a=e.length;++o<r;)e[a+o]=t[o];return e}var dt=hl,Cl=fo,bl=Cl(Object.getPrototypeOf,Object),mt=bl,xl=dt,Sl=mt,Al=pt,$l=go,Tl=Object.getOwnPropertySymbols,Fl=Tl?function(e){for(var t=[];e;)xl(t,Al(e)),e=Sl(e);return t}:$l,ho=Fl,wl=Ae,_l=ho;function Pl(e,t){return wl(e,_l(e),t)}var Dl=Pl,Il=dt,Ol=ce;function El(e,t,o){var r=t(e);return Ol(e)?r:Il(r,o(e))}var Co=El,Ml=Co,jl=pt,kl=lt;function Kl(e){return Ml(e,kl,jl)}var Nl=Kl,Bl=Co,Vl=ho,Ll=ut;function ql(e){return Bl(e,Ll,Vl)}var bo=ql,Gl=se,zl=te,Ul=Gl(zl,"DataView"),Hl=Ul,Wl=se,Yl=te,Ql=Wl(Yl,"Promise"),Zl=Ql,Jl=se,Xl=te,Rl=Jl(Xl,"Set"),eu=Rl,tu=se,ou=te,ru=tu(ou,"WeakMap"),nu=ru,ft=Hl,yt=nt,gt=Zl,vt=eu,ht=nu,xo=me,he=Jt,So="[object Map]",au="[object Object]",Ao="[object Promise]",$o="[object Set]",To="[object WeakMap]",Fo="[object DataView]",su=he(ft),iu=he(yt),cu=he(gt),lu=he(vt),uu=he(ht),le=xo;(ft&&le(new ft(new ArrayBuffer(1)))!=Fo||yt&&le(new yt)!=So||gt&&le(gt.resolve())!=Ao||vt&&le(new vt)!=$o||ht&&le(new ht)!=To)&&(le=function(e){var t=xo(e),o=t==au?e.constructor:void 0,r=o?he(o):"";if(r)switch(r){case su:return Fo;case iu:return So;case cu:return Ao;case lu:return $o;case uu:return To}return t});var Ct=le,pu=Object.prototype,du=pu.hasOwnProperty;function mu(e){var t=e.length,o=new e.constructor(t);return t&&typeof e[0]=="string"&&du.call(e,"index")&&(o.index=e.index,o.input=e.input),o}var fu=mu,yu=te,gu=yu.Uint8Array,vu=gu,wo=vu;function hu(e){var t=new e.constructor(e.byteLength);return new wo(t).set(new wo(e)),t}var bt=hu,Cu=bt;function bu(e,t){var o=t?Cu(e.buffer):e.buffer;return new e.constructor(o,e.byteOffset,e.byteLength)}var xu=bu,Su=/\w*$/;function Au(e){var t=new e.constructor(e.source,Su.exec(e));return t.lastIndex=e.lastIndex,t}var $u=Au,_o=xe,Po=_o?_o.prototype:void 0,Do=Po?Po.valueOf:void 0;function Tu(e){return Do?Object(Do.call(e)):{}}var Fu=Tu,wu=bt;function _u(e,t){var o=t?wu(e.buffer):e.buffer;return new e.constructor(o,e.byteOffset,e.length)}var Pu=_u,Du=bt,Iu=xu,Ou=$u,Eu=Fu,Mu=Pu,ju="[object Boolean]",ku="[object Date]",Ku="[object Map]",Nu="[object Number]",Bu="[object RegExp]",Vu="[object Set]",Lu="[object String]",qu="[object Symbol]",Gu="[object ArrayBuffer]",zu="[object DataView]",Uu="[object Float32Array]",Hu="[object Float64Array]",Wu="[object Int8Array]",Yu="[object Int16Array]",Qu="[object Int32Array]",Zu="[object Uint8Array]",Ju="[object Uint8ClampedArray]",Xu="[object Uint16Array]",Ru="[object Uint32Array]";function ep(e,t,o){var r=e.constructor;switch(t){case Gu:return Du(e);case ju:case ku:return new r(+e);case zu:return Iu(e,o);case Uu:case Hu:case Wu:case Yu:case Qu:case Zu:case Ju:case Xu:case Ru:return Mu(e,o);case Ku:return new r;case Nu:case Lu:return new r(e);case Bu:return Ou(e);case Vu:return new r;case qu:return Eu(e)}}var tp=ep,op=fe,Io=Object.create,rp=function(){function e(){}return function(t){if(!op(t))return{};if(Io)return Io(t);e.prototype=t;var o=new e;return e.prototype=void 0,o}}(),np=rp,ap=np,sp=mt,ip=ct;function cp(e){return typeof e.constructor=="function"&&!ip(e)?ap(sp(e)):{}}var lp=cp,up=Ct,pp=ie,dp="[object Map]";function mp(e){return pp(e)&&up(e)==dp}var fp=mp,yp=fp,gp=st,Oo=it,Eo=Oo&&Oo.isMap,vp=Eo?gp(Eo):yp,hp=vp,Cp=Ct,bp=ie,xp="[object Set]";function Sp(e){return bp(e)&&Cp(e)==xp}var Ap=Sp,$p=Ap,Tp=st,Mo=it,jo=Mo&&Mo.isSet,Fp=jo?Tp(jo):$p,wp=Fp,_p=Ys,Pp=Zs,Dp=at,Ip=Bc,Op=ol,Ep=rl,Mp=al,jp=vl,kp=Dl,Kp=Nl,Np=bo,Bp=Ct,Vp=fu,Lp=tp,qp=lp,Gp=ce,zp=io,Up=hp,Hp=fe,Wp=wp,Yp=lt,Qp=ut,Zp=1,Jp=2,Xp=4,ko="[object Arguments]",Rp="[object Array]",ed="[object Boolean]",td="[object Date]",od="[object Error]",Ko="[object Function]",rd="[object GeneratorFunction]",nd="[object Map]",ad="[object Number]",No="[object Object]",sd="[object RegExp]",id="[object Set]",cd="[object String]",ld="[object Symbol]",ud="[object WeakMap]",pd="[object ArrayBuffer]",dd="[object DataView]",md="[object Float32Array]",fd="[object Float64Array]",yd="[object Int8Array]",gd="[object Int16Array]",vd="[object Int32Array]",hd="[object Uint8Array]",Cd="[object Uint8ClampedArray]",bd="[object Uint16Array]",xd="[object Uint32Array]",z={};z[ko]=z[Rp]=z[pd]=z[dd]=z[ed]=z[td]=z[md]=z[fd]=z[yd]=z[gd]=z[vd]=z[nd]=z[ad]=z[No]=z[sd]=z[id]=z[cd]=z[ld]=z[hd]=z[Cd]=z[bd]=z[xd]=!0,z[od]=z[Ko]=z[ud]=!1;function Be(e,t,o,r,a,s){var c,l=t&Zp,d=t&Jp,u=t&Xp;if(o&&(c=a?o(e,r,a,s):o(e)),c!==void 0)return c;if(!Hp(e))return e;var f=Gp(e);if(f){if(c=Vp(e),!l)return Mp(e,c)}else{var y=Bp(e),g=y==Ko||y==rd;if(zp(e))return Ep(e,l);if(y==No||y==ko||g&&!a){if(c=d||g?{}:qp(e),!l)return d?kp(e,Op(c,e)):jp(e,Ip(c,e))}else{if(!z[y])return a?e:{};c=Lp(e,y,l)}}s||(s=new _p);var S=s.get(e);if(S)return S;s.set(e,c),Wp(e)?e.forEach(function(x){c.add(Be(x,t,o,x,e,s))}):Up(e)&&e.forEach(function(x,v){c.set(v,Be(x,t,o,v,e,s))});var D=u?d?Np:Kp:d?Qp:Yp,C=f?void 0:D(e);return Pp(C||e,function(x,v){C&&(v=x,x=e[v]),Dp(c,v,Be(x,t,o,v,e,s))}),c}var Bo=Be,Sd=Bo,Ad=1,$d=4;function Td(e){return Sd(e,Ad|$d)}var Fd=Td;const re=be(Fd);function wd(e,t){for(var o=-1,r=e==null?0:e.length,a=Array(r);++o<r;)a[o]=t(e[o],o,e);return a}var Vo=wd,_d=me,Pd=ie,Dd="[object Symbol]";function Id(e){return typeof e=="symbol"||Pd(e)&&_d(e)==Dd}var xt=Id,Od=ce,Ed=xt,Md=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,jd=/^\w*$/;function kd(e,t){if(Od(e))return!1;var o=typeof e;return o=="number"||o=="symbol"||o=="boolean"||e==null||Ed(e)?!0:jd.test(e)||!Md.test(e)||t!=null&&e in Object(t)}var Kd=kd,Lo=eo,Nd="Expected a function";function St(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(Nd);var o=function(){var r=arguments,a=t?t.apply(this,r):r[0],s=o.cache;if(s.has(a))return s.get(a);var c=e.apply(this,r);return o.cache=s.set(a,c)||s,c};return o.cache=new(St.Cache||Lo),o}St.Cache=Lo;var Bd=St,Vd=Bd,Ld=500;function qd(e){var t=Vd(e,function(r){return o.size===Ld&&o.clear(),r}),o=t.cache;return t}var Gd=qd,zd=Gd,Ud=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Hd=/\\(\\)?/g,Wd=zd(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(Ud,function(o,r,a,s){t.push(a?s.replace(Hd,"$1"):r||o)}),t}),Yd=Wd,qo=xe,Qd=Vo,Zd=ce,Jd=xt,Xd=1/0,Go=qo?qo.prototype:void 0,zo=Go?Go.toString:void 0;function Uo(e){if(typeof e=="string")return e;if(Zd(e))return Qd(e,Uo)+"";if(Jd(e))return zo?zo.call(e):"";var t=e+"";return t=="0"&&1/e==-Xd?"-0":t}var Rd=Uo,em=Rd;function tm(e){return e==null?"":em(e)}var om=tm,rm=ce,nm=Kd,am=Yd,sm=om;function im(e,t){return rm(e)?e:nm(e,t)?[e]:am(sm(e))}var Ve=im;function cm(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}var lm=cm,um=xt,pm=1/0;function dm(e){if(typeof e=="string"||um(e))return e;var t=e+"";return t=="0"&&1/e==-pm?"-0":t}var At=dm,mm=Ve,fm=At;function ym(e,t){t=mm(t,e);for(var o=0,r=t.length;e!=null&&o<r;)e=e[fm(t[o++])];return o&&o==r?e:void 0}var gm=ym;function vm(e,t,o){var r=-1,a=e.length;t<0&&(t=-t>a?0:a+t),o=o>a?a:o,o<0&&(o+=a),a=t>o?0:o-t>>>0,t>>>=0;for(var s=Array(a);++r<a;)s[r]=e[r+t];return s}var hm=vm,Cm=gm,bm=hm;function xm(e,t){return t.length<2?e:Cm(e,bm(t,0,-1))}var Sm=xm,Am=Ve,$m=lm,Tm=Sm,Fm=At;function wm(e,t){return t=Am(t,e),e=Tm(e,t),e==null||delete e[Fm($m(t))]}var _m=wm,Pm=me,Dm=mt,Im=ie,Om="[object Object]",Em=Function.prototype,Mm=Object.prototype,Ho=Em.toString,jm=Mm.hasOwnProperty,km=Ho.call(Object);function Km(e){if(!Im(e)||Pm(e)!=Om)return!1;var t=Dm(e);if(t===null)return!0;var o=jm.call(t,"constructor")&&t.constructor;return typeof o=="function"&&o instanceof o&&Ho.call(o)==km}var Nm=Km,Bm=Nm;function Vm(e){return Bm(e)?void 0:e}var Lm=Vm,Wo=xe,qm=so,Gm=ce,Yo=Wo?Wo.isConcatSpreadable:void 0;function zm(e){return Gm(e)||qm(e)||!!(Yo&&e&&e[Yo])}var Um=zm,Hm=dt,Wm=Um;function Qo(e,t,o,r,a){var s=-1,c=e.length;for(o||(o=Wm),a||(a=[]);++s<c;){var l=e[s];t>0&&o(l)?t>1?Qo(l,t-1,o,r,a):Hm(a,l):r||(a[a.length]=l)}return a}var Ym=Qo,Qm=Ym;function Zm(e){var t=e==null?0:e.length;return t?Qm(e,1):[]}var Jm=Zm;function Xm(e,t,o){switch(o.length){case 0:return e.call(t);case 1:return e.call(t,o[0]);case 2:return e.call(t,o[0],o[1]);case 3:return e.call(t,o[0],o[1],o[2])}return e.apply(t,o)}var Rm=Xm,ef=Rm,Zo=Math.max;function tf(e,t,o){return t=Zo(t===void 0?e.length-1:t,0),function(){for(var r=arguments,a=-1,s=Zo(r.length-t,0),c=Array(s);++a<s;)c[a]=r[t+a];a=-1;for(var l=Array(t+1);++a<t;)l[a]=r[a];return l[t]=o(c),ef(e,this,l)}}var of=tf;function rf(e){return function(){return e}}var nf=rf;function af(e){return e}var sf=af,cf=nf,Jo=to,lf=sf,uf=Jo?function(e,t){return Jo(e,"toString",{configurable:!0,enumerable:!1,value:cf(t),writable:!0})}:lf,pf=uf,df=800,mf=16,ff=Date.now;function yf(e){var t=0,o=0;return function(){var r=ff(),a=mf-(r-o);if(o=r,a>0){if(++t>=df)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var gf=yf,vf=pf,hf=gf,Cf=hf(vf),bf=Cf,xf=Jm,Sf=of,Af=bf;function $f(e){return Af(Sf(e,void 0,xf),e+"")}var Tf=$f,Ff=Vo,wf=Bo,_f=_m,Pf=Ve,Df=Ae,If=Lm,Of=Tf,Ef=bo,Mf=1,jf=2,kf=4,Kf=Of(function(e,t){var o={};if(e==null)return o;var r=!1;t=Ff(t,function(s){return s=Pf(s,e),r||(r=s.length>1),s}),Df(e,Ef(e),o),r&&(o=wf(o,Mf|jf|kf,If));for(var a=t.length;a--;)_f(o,t[a]);return o}),Nf=Kf;const Le=be(Nf);var Bf=at,Vf=Ve,Lf=co,Xo=fe,qf=At;function Gf(e,t,o,r){if(!Xo(e))return e;t=Vf(t,e);for(var a=-1,s=t.length,c=s-1,l=e;l!=null&&++a<s;){var d=qf(t[a]),u=o;if(d==="__proto__"||d==="constructor"||d==="prototype")return e;if(a!=c){var f=l[d];u=r?r(f,d,l):void 0,u===void 0&&(u=Xo(f)?f:Lf(t[a+1])?[]:{})}Bf(l,d,u),l=l[d]}return e}var zf=Gf,Uf=zf;function Hf(e,t,o){return e==null?e:Uf(e,t,o)}var Wf=Hf;const Ro=be(Wf),Yf=({schema:e,record:t,parentRecord:o,compile:r,getContainer:a})=>{if(!e)return;const s=re(e.properties);return s!=null&&s.name&&(s.name["x-disabled"]=!0),e.hasDefaultValue===!0&&(s.defaultValue=re(e.default.uiSchema)||{},s.defaultValue.required=!1,s.defaultValue.title=r('{{ t("Default value") }}'),s.defaultValue["x-decorator"]="FormItem",s.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]}}"}}}},s.defaultValue["x-disabled"]=!0),{type:"object",properties:{[L.uid()]:{type:"void","x-component":"Action.Drawer","x-component-props":{getContainer:"{{ getContainer }}"},"x-decorator":"Form","x-decorator-props":{useValues(c){return n.useRequest(()=>Promise.resolve({data:re(Le(e.default,["uiSchema.rawTitle"]))}),c)}},title:`${r((o==null?void 0:o.title)||(o==null?void 0:o.name))} - ${r('{{ t("Edit field") }}')}`,properties:k($({summary:{type:"void","x-component":"FieldSummary","x-component-props":{schemaKey:e.name}}},s),{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 }}"}}}}})}}}},Qf=()=>{const e=A.useForm(),t=n.useAPIClient(),o=n.useActionContext(),{refresh:r}=n.useResourceActionContext(),{targetCollection:a}=Tt(),{name:s}=W.useParams(),{name:c}=n.useRecord(),l=n.useDataSourceManager();return{run(){return O(this,null,function*(){yield e.submit();const u=re(e.values);u.autoCreateReverseField||delete u.reverseField,delete u.autoCreateReverseField,yield t.request({url:`dataSourcesCollections/${s}.${a.name}/fields:update?filterByTk=${c}`,method:"post",data:u}),o.setVisible(!1),l.getDataSource(s).reload(),yield e.reset(),r()})}}},Zf=e=>{const t=n.useRecord(),o=n.useCollectionParentRecordData();return i.jsx(Jf,$({item:t,parentItem:o},e))},Jf=e=>{const w=e,{scope:t,getContainer:o,item:r,parentItem:a,children:s}=w,c=et(w,["scope","getContainer","item","parentItem","children"]),{getInterface:l,collections:d,getCollection:u}=n.useCollectionManager_deprecated(),{data:{database:f}}=n.useCurrentAppInfo(),[y,g]=p.useState(!1),[S,D]=p.useState({}),C=n.useAPIClient(),{t:x}=V.useTranslation(),v=n.useCompile(),{name:I}=W.useParams(),b=T=>(f==null?void 0:f.dialect)===T,m=p.useMemo(()=>d.map(T=>({label:v(T.title),value:T.name})),[]),P=p.useMemo(()=>{var T,j;return(r==null?void 0:r.fields)||((j=(T=u(r.collectionName,I))==null?void 0:T.options)==null?void 0:j.fields.filter(F=>F.interface==="select").map(F=>{var _;return{value:F.name,label:v((_=F.uiSchema)==null?void 0:_.title)}}))},[r.name]);return i.jsx(n.RecordProvider,{record:r,parent:a,children:i.jsxs(n.ActionContextProvider,{value:{visible:y,setVisible:g},children:[i.jsx("a",k($({},c),{onClick:()=>O(this,null,function*(){var K,B,Q;const{data:T}=yield C.request({url:`dataSourcesCollections/${I}.${a.name}/fields:get?filterByTk=${r.name}`,params:{appends:["reverseField"]}}),j=l((K=T==null?void 0:T.data)==null?void 0:K.interface),F=re(T==null?void 0:T.data)||{};F!=null&&F.reverseField||(F.autoCreateReverseField=!1,F.reverseField=(B=j==null?void 0:j.default)==null?void 0:B.reverseField,Ro(F.reverseField,"name",`f_${L.uid()}`),Ro(F.reverseField,"uiSchema.title",(Q=r.__parent)==null?void 0:Q.title));const _=Yf({schema:k($({},j),{default:F}),record:r,parentRecord:a,compile:v,getContainer:o});D(_),g(!0)}),children:s||x("Edit")})),i.jsx(n.SchemaComponent,{schema:S,components:{ArrayTable:pe.ArrayTable},scope:k($({getContainer:o,useUpdateCollectionField:Qf,useCancelAction:n.useCancelAction,showReverseFieldConfig:!1,collections:m,isDialect:b,scopeKeyOptions:P,disabledJSONB:!0},t),{createOnly:!1,createMainOnly:!1})})]})})},Xf=A.observer(e=>{const{value:t,handleFieldChange:o,onChange:r}=e,a=n.useRecord(),s=a;return s!=null&&s.possibleTypes?i.jsx(h.Select,{defaultValue:t,popupMatchSelectWidth:!1,style:{width:"100%"},options:(s==null?void 0:s.possibleTypes.map(c=>({label:c,value:c})))||[],onChange:c=>{r==null||r(c),o(k($({},s),{type:c}),a.name)}}):i.jsx(h.Tag,{children:t})},{displayName:"FieldType"}),Rf=()=>{const{t:e}=V.useTranslation(),{unsupportedFields:t}=n.useRecord(),o=[{title:e("Field name"),dataIndex:"name",key:"name"},{title:e("Field database type",{ns:N}),dataIndex:"rawType",key:"rawType"}];return(t==null?void 0:t.length)>0&&i.jsxs(i.Fragment,{children:[i.jsx(h.Divider,{plain:!0,orientation:"left",orientationMargin:"0",children:i.jsx("h3",{children:e("Unknown field type",{ns:N})})}),i.jsx("div",{style:{marginBottom:"15px"},children:e("The following field types are not compatible and do not support output and display",{ns:N})}),i.jsx(h.Table,{columns:o,dataSource:t,pagination:!1})]})},$t=p.createContext({refreshRM:()=>{},titleField:null,targetCollection:null});$t.displayName="RemoteCollectionContext";const Tt=()=>p.useContext($t),er=()=>{const e=A.useField(),t=p.useMemo(()=>ue.createForm(),[]),o=n.useAttach(t.createArrayField(k($({},e.props),{basePath:""}))),{t:r}=V.useTranslation(),{name:a}=W.useParams(),s=n.useAPIClient(),c=n.useCompile(),l=p.useContext(n.ResourceActionContext),d=n.useResourceContext(),{targetKey:u}=d||{},f=n.useRecord(),{[u]:y,titleField:g,name:S}=f,[D,C]=p.useState(g),x=w=>{const T=p.useContext(n.ResourceActionContext),j=A.useField();return p.useEffect(()=>{T.loading||(w==null||w.onSuccess(T.data),j.componentProps.dragSort=!!T.dragSort)},[T.loading]),T},v={association:{sourceKey:"name",targetKey:"name"},dragSort:!1,collection:Br,request:{url:`dataSourcesCollections/${a}.${S}/fields:list`,params:{paginate:!1,filter:{$or:[{"interface.$not":null},{"options.source.$notEmpty":!0}]},sort:["sort"]}}},I=n.useDataSourceManager(),b=(w,T)=>O(this,null,function*(){yield s.request({url:`dataSourcesCollections/${a}.${S}/fields:update?filterByTk=${T}`,method:"post",data:w}),I.getDataSource(a).reload(),h.message.success(r("Saved successfully"))}),m=()=>({filterByTk:y,titleField:D,dataSourceKey:a,setTitleField:C}),P=(w,T,j)=>O(this,null,function*(){var Q,H;const{targetScope:F}=T,_=((Q=w.props)==null?void 0:Q.name)==="inherits",{data:K}=yield s.request({url:`dataSources/${a}/collections:list`,params:{paginate:!1,appends:["fields"],sort:["sort"]}});return((H=K==null?void 0:K.data)==null?void 0:H.filter(E=>{var ne;if(j!=null&&j.includes(E.template)||E.autoCreate&&E.isThrough||_&&E.template==="view")return!1;const G=!(F!=null&&F.template)||F.template.includes(E.template),oe=!(F!=null&&F[(ne=w.props)==null?void 0:ne.name])||F[w.props.name].includes(E.name);return G&&oe})).map(E=>({label:c(E.title||E.name),value:E.name}))});return i.jsxs($t.Provider,{value:{refreshRM:()=>{l.refresh()},titleField:D,targetCollection:f},children:[i.jsx(n.ResourceActionProvider,k($({},v),{children:i.jsx(A.FormContext.Provider,{value:t,children:i.jsx(A.FieldContext.Provider,{value:o,children:i.jsx(n.SchemaComponentOptions,{components:{TitleField:Lr,CollectionFieldInterfaceSelect:qr,AddCollectionField:Qr,SourceCollection:Ur,TargetKey:zr,SourceKey:Gr,FieldTitleInput:Jr,EditCollectionField:Zf,Select:n.Select,FieldType:Xf,ForeignKey:qt,ThroughCollection:Hr},inherit:!0,scope:{useDataSource:x,useTitleFieldProps:m,handleFieldChange:b,useDestroyActionAndRefreshCM:tn,useBulkDestroyActionAndRefreshCM:en,loadCollections:P},children:i.jsx(A.RecursionField,{schema:Vr,onlyRenderProperties:!0})})})})})),i.jsx(Rf,{})]})},ey=(e,t,o,r)=>{if(!e)return;const a=re(e.configurableProperties)||{title:{"x-component":"CollectionField","x-decorator":"FormItem"},name:{"x-component":"CollectionField","x-decorator":"FormItem"}};return e.hasDefaultValue===!0&&(a.defaultValue=re(e.default.uiSchema),a.defaultValue.title=o('{{ t("Default value") }}'),a.defaultValue["x-decorator"]="FormItem"),{type:"object",properties:{[L.uid()]:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{useValues:"{{ useValuesFromRecord }}"},title:'{{ t("Edit collection") }}',properties:k($({},Le(a,"category","inherits","moreOptions")),{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 }}"}}}}})}}}},ty=e=>{const t=n.useRecord(),o=n.useRequest(()=>{var a;return Promise.resolve({data:k($({},Le(re(t),["__parent","__collectionName"])),{category:(a=t==null?void 0:t.category)==null?void 0:a.map(s=>s.id)})})},k($({},e),{manual:!0})),r=n.useActionContext();return p.useEffect(()=>{r.visible&&o.run()},[r.visible]),o},oy=e=>{const{refreshCM:t}=n.useCollectionManager_deprecated(),o=A.useForm(),r=n.useActionContext(),{name:a}=W.useParams(),{refresh:s}=n.useResourceActionContext(),{resource:c,targetKey:l}=n.useResourceContext(),{[l]:d}=n.useRecord(),u=n.useAPIClient();return{run(){return O(this,null,function*(){yield o.submit(),yield u.request({url:`dataSources/${a}/collections:update?filterByTk=${d}`,method:"post",data:$({},Le(o.values,["fields","autoGenId","createdAt","updatedAt","createdBy","updatedBy","sortable"]))}),r.setVisible(!1),yield o.reset(),s(),yield t()})}}},ry=e=>{const t=n.useRecord();return i.jsx(ny,$({item:t},e))},ny=e=>{const S=e,{scope:t,getContainer:o,item:r,children:a}=S,s=et(S,["scope","getContainer","item","children"]),{getTemplate:c}=n.useCollectionManager_deprecated(),[l,d]=p.useState(!1),[u,f]=p.useState({}),{t:y}=V.useTranslation(),g=n.useCompile();return i.jsx(n.RecordProvider,{record:r,children:i.jsxs(n.ActionContextProvider,{value:{visible:l,setVisible:d},children:[i.jsx("a",k($({},s),{onClick:()=>O(this,null,function*(){const D=c(r.template),C=ey($({},D),r,g);f(C),d(!0)}),children:a||y("Edit")})),i.jsx(n.SchemaComponent,{schema:u,components:{ArrayTable:pe.ArrayTable},scope:$({getContainer:o,useValuesFromRecord:ty,useUpdateCollectionActionAndRefreshCM:oy,useCancelAction:n.useCancelAction,createOnly:!1},t)})]})})},ay=(e,t)=>(o,r)=>{o.loading=!0,e(o,r,t).then(tt.action.bound(a=>{o.dataSource=a,o.loading=!1})).catch(a=>console.log(a))},sy=()=>{const[e,t]=p.useState([]);return[e,t]},iy=()=>{const e=n.useRecord(),t=A.useForm();return{run(){return O(this,null,function*(){var a,s,c;const r=(c=(s=(a=t.values)==null?void 0:a.children)==null?void 0:s.slice)==null?void 0:c.call(s);t.setValuesIn("children",r.filter(l=>l.name!==e.name))})}}},cy=()=>({run(){return O(this,null,function*(){})}}),ly=e=>`${e||""}${L.uid()}`,uy=()=>{const{t:e}=V.useTranslation(),{interfaces:t}=n.useCollectionManager_deprecated(),{data:{database:o}}=n.useCurrentAppInfo(),r=n.useDataSourceManager(),a=p.useContext(n.SchemaComponentContext),{name:s}=W.useParams(),c=p.useContext(n.CollectionCategroriesContext),l=n.useAPIClient(),d=l.resource("dbViews"),u=n.useCompile(),f=()=>O(this,null,function*(){return c.data.map(C=>({label:u(C.name),value:C.id}))}),y=()=>O(this,null,function*(){return d.list().then(({data:C})=>{var x;return(x=C==null?void 0:C.data)==null?void 0:x.map(v=>{const I=v.schema;return{label:I?`${I}.${u(v.name)}`:v.name,value:I?`${I}_${v.name}`:v.name}})})}),g=()=>O(this,null,function*(){return l.resource("storages").list().then(({data:C})=>{var x;return(x=C==null?void 0:C.data)==null?void 0:x.map(v=>({label:e(u(v.title)),value:v.name}))})}),S=()=>{const C=p.useContext(n.ResourceActionContext),x=n.useAPIClient(),v=A.useField(),{name:I}=W.useParams();v.data=v.data||{};const{setDataSource:b,dataSource:m}=p.useContext(Pe);return{onClick(){return O(this,null,function*(){var w,T,j;v.data.loading=!0;try{const{data:F}=yield x.request({url:`dataSources:refresh?filterByTk=${I}&clientStatus=${(m==null?void 0:m.status)||"loaded"}`,method:"post"});v.data.loading=!1,b(F==null?void 0:F.data),((w=F==null?void 0:F.data)==null?void 0:w.status)==="reloading"?h.message.warning(e("Data source synchronization in progress")):((T=F==null?void 0:F.data)==null?void 0:T.status)==="loaded"&&(h.message.success(e("Data source synchronization successful")),(j=C==null?void 0:C.refresh)==null||j.call(C)),yield r.getDataSource(I).reload()}catch(F){v.data.loading=!1}})}}},D=p.useMemo(()=>Nr(s),[s]);return i.jsx(n.SchemaComponentContext.Provider,{value:k($({},a),{designable:!1}),children:i.jsx(n.SchemaComponent,{schema:D,components:{EditCollection:ry,AddSubFieldAction:n.AddSubFieldAction,EditSubFieldAction:n.EditSubFieldAction,FieldSummary:n.FieldSummary,TemplateSummay:n.TemplateSummary,CollectionFields:er},scope:{useRefreshActionProps:S,useDestroySubField:iy,useBulkDestroySubField:cy,useSelectedRowKeys:sy,useAsyncDataSource:ay,loadCategories:f,loadDBViews:y,loadStorages:g,useNewId:ly,useCancelAction:n.useCancelAction,interfaces:t,enableInherits:(o==null?void 0:o.dialect)==="postgres",isPG:(o==null?void 0:o.dialect)==="postgres"}})})};var tr={exports:{}};/*!
|
|
1
|
+
(function(O,s){typeof exports=="object"&&typeof module!="undefined"?s(exports,require("react/jsx-runtime"),require("@nocobase/client"),require("react"),require("@formily/react"),require("antd"),require("react-i18next"),require("@ant-design/icons"),require("react-router-dom"),require("@formily/shared"),require("@formily/reactive"),require("@formily/core"),require("@formily/antd-v5"),require("lodash"),require("@dnd-kit/core"),require("@emotion/css"),require("antd-style")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","@nocobase/client","react","@formily/react","antd","react-i18next","@ant-design/icons","react-router-dom","@formily/shared","@formily/reactive","@formily/core","@formily/antd-v5","lodash","@dnd-kit/core","@emotion/css","antd-style"],s):(O=typeof globalThis!="undefined"?globalThis:O||self,s(O["@nocobase/plugin-data-source-manager"]={},O.jsxRuntime,O["@nocobase/client"],O.react,O["@formily/react"],O.antd,O["react-i18next"],O["@ant-design/icons"],O["react-router-dom"],O["@formily/shared"],O["@formily/reactive"],O["@formily/core"],O["@formily/antd-v5"],O.lodash,O["@dnd-kit/core"],O["@emotion/css"],O["antd-style"]))})(this,function(O,s,r,d,$,S,V,ee,W,L,tt,ue,pe,J,R,ae,On){"use strict";var rv=Object.defineProperty,av=Object.defineProperties;var sv=Object.getOwnPropertyDescriptors;var Re=Object.getOwnPropertySymbols;var Pn=Object.prototype.hasOwnProperty,Dn=Object.prototype.propertyIsEnumerable;var Mt=(O,s,r)=>s in O?rv(O,s,{enumerable:!0,configurable:!0,writable:!0,value:r}):O[s]=r,T=(O,s)=>{for(var r in s||(s={}))Pn.call(s,r)&&Mt(O,r,s[r]);if(Re)for(var r of Re(s))Dn.call(s,r)&&Mt(O,r,s[r]);return O},j=(O,s)=>av(O,sv(s));var et=(O,s)=>{var r={};for(var d in O)Pn.call(O,d)&&s.indexOf(d)<0&&(r[d]=O[d]);if(O!=null&&Re)for(var d of Re(O))s.indexOf(d)<0&&Dn.call(O,d)&&(r[d]=O[d]);return r};var In=(O,s,r)=>(Mt(O,typeof s!="symbol"?s+"":s,r),r);var D=(O,s,r)=>new Promise((d,$)=>{var S=W=>{try{ee(r.next(W))}catch(L){$(L)}},V=W=>{try{ee(r.throw(W))}catch(L){$(L)}},ee=W=>W.done?d(W.value):Promise.resolve(W.value).then(S,V);ee((r=r.apply(O,s)).next())});const K="data-source-manager";function En(e,t={}){return r.i18n.t(e,j(T({},t),{ns:K}))}const Mn=e=>{const t=$.useForm(),o=r.useActionContext(),n=r.useAPIClient(),{t:a}=V.useTranslation(),i=$.useField();return i.data=i.data||{},{run(){return D(this,null,function*(){yield t.submit();try{i.data.loading=!0;const{data:l}=yield n.resource("databaseServers").create({values:T({},t.values)});i.data.loading=!1,o.setVisible(!1),yield t.reset(),e==null||e(l==null?void 0:l.data),S.message.success(a("Saved successfully"))}catch(l){i.data.loading=!1,console.log(l)}})}}},jt=()=>{const e=$.useForm(),t=r.useAPIClient(),{t:o}=V.useTranslation(),n=$.useField();return n.data=n.data||{},{run(){return D(this,null,function*(){yield e.submit();try{n.data.loading=!0,yield t.resource("dataSources").testConnection({values:T({},e.values)}),n.data.loading=!1,S.message.success(o("Connection successful",{ns:K}))}catch(i){n.data.loading=!1,console.log(i)}})}}},jn=Object.freeze(Object.defineProperty({__proto__:null,useCreateDatabaseServer:Mn,useTestConnectionAction:jt},Symbol.toStringTag,{value:"Module"})),Pe=d.createContext(null);Pe.displayName="DataSourceContext";const kn=e=>{const[t,o]=d.useState(null);return s.jsx(Pe.Provider,{value:{dataSource:t,setDataSource:o},children:s.jsx(r.SchemaComponentOptions,{scope:jn,components:{},children:e.children})})};class kt 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 Kt=[{value:"loading",label:`{{t("Loading",{ns:"${K}"})}}`,color:"orange"},{value:"loading-failed",label:`{{t("Failed",{ns:"${K}"})}}`,color:"red"},{value:"loaded",label:`{{t("Loaded",{ns:"${K}"})}}`,color:"green"},{value:"reloading",label:`{{t("Reloading",{ns:"${K}"})}}`,color:"orange"}],Nt={name:"collections-"+L.uid(),fields:[{type:"string",name:"key",interface:"input",uiSchema:{title:`{{t("Data source name",{ ns: "${K}" })}}`,type:"string","x-component":"Input",required:!0}},{type:"string",name:"displayName",interface:"input",uiSchema:{title:`{{t("Data source display name",{ ns: "${K}" })}}`,type:"string","x-component":"Input",required:!0}},{type:"string",name:"type",interface:"select",uiSchema:{title:`{{t("Type", { ns: "${K}" })}}`,type:"string","x-component":"Select",enum:"{{types}}"}},{type:"string",name:"status",interface:"select",uiSchema:{title:`{{t("Status", { ns: "${K}" })}}`,type:"string","x-component":"Select",enum:Kt}},{type:"boolean",name:"enabled",uiSchema:{type:"boolean",title:'{{t("Enabled")}}',"x-component":"Checkbox"}}]},Kn={type:"object",properties:{[L.uid()]:{type:"void","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:Nt,resourceName:"dataSources",request:{resource:"dataSources",action:"list",params:{pageSize:50,appends:[]}}},"x-component":"CollectionProvider_deprecated","x-component-props":{collection:Nt},properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:16}},properties:{refresh:{type:"void",title:'{{ t("Refresh") }}',"x-component":"Action","x-use-component-props":"useRefreshActionProps","x-component-props":{icon:"ReloadOutlined"}},delete:{type:"void",title:'{{ t("Delete") }}',"x-component":"Action","x-component-props":{icon:"DeleteOutlined",useAction:"{{ cm.useBulkDestroyAction }}",confirm:{title:"{{t('Delete')}}",content:"{{t('Are you sure you want to delete it?')}}"},actionCallback:"{{ dataSourceDeleteCallback }}"}},create:{type:"void",title:'{{t("Add new")}}',"x-component":"CreateDatabaseConnectAction","x-component-props":{type:"primary"}}}},table:{type:"void","x-uid":"input","x-component":"Table.Void","x-component-props":{rowKey:"key",rowSelection:{type:"checkbox"},useDataSource:"{{ cm.useDataSourceFromRAC }}"},properties:{key:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{key:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},displayName:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{displayName:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},type:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{type:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},status:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{status:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},enabled:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{enabled:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},actions:{type:"void",title:'{{t("Actions")}}',"x-component":"Table.Column",properties:{actions:{type:"void","x-component":"Space","x-component-props":{},properties:{view:{type:"void",title:'{{t("View")}}',"x-component":"ViewDatabaseConnectionAction","x-component-props":{type:"primary"}},update:{type:"void",title:'{{t("Edit")}}',"x-component":"EditDatabaseConnectionAction","x-component-props":{type:"primary"},"x-reactions":["{{useIsAbleDelete($self)}}"]},delete:{type:"void",title:'{{ t("Delete") }}',"x-component":"Action.Link","x-component-props":{confirm:{title:'{{t("Delete")}}',content:'{{t("Are you sure you want to delete it?")}}'},useAction:"{{useDestroyAction}}"},"x-reactions":["{{useIsAbleDelete($self)}}"]}}}}}}}}}}},Bt=()=>{const e=r.useApp(),{name:t}=W.useParams(),o=r.useCompile(),n=r.useDataSourceManager(),{displayName:a}=n.getDataSource(t)||{},{dataSource:i}=d.useContext(Pe),c=d.useMemo(()=>i||n.getDataSource(t),[i,t]),l=d.useMemo(()=>{const u=c==null?void 0:c.status,p=Kt.find(g=>g.value===u),m=[{title:s.jsx(W.Link,{to:e.pluginSettingsManager.getRoutePath(K),children:En("Data source manager")})}];return c&&m.push({title:s.jsxs(S.Space,{children:[s.jsx("span",{children:o(a)}),u&&s.jsx(S.Tag,{color:p==null?void 0:p.color,children:o(p==null?void 0:p.label)},u)]})}),m},[c]);return s.jsx(S.Breadcrumb,{separator:s.jsx(ee.RightOutlined,{}),items:l})},Vt=e=>$.Schema.compile(e,{t:r.i18n.t}),Nn={name:"database-"+L.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"}}]},Bn=e=>({type:"object",properties:{[L.uid()]:{type:"void","x-collection":"dataSources","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:Nn,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"}}}}}),ot={type:"object",properties:{[L.uid()]:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:16}},properties:{filter:{type:"void",title:'{{ t("Filter") }}',default:{$and:[{title:{$includes:""}},{name:{$includes:""}}]},"x-action":"filter","x-component":"Filter.Action","x-use-component-props":"cm.useFilterActionProps","x-component-props":{icon:"FilterOutlined"},"x-align":"left"},refresh:{type:"void",title:'{{ t("Refresh") }}',"x-component":"Action","x-use-component-props":"useRefreshActionProps","x-component-props":{icon:"ReloadOutlined"}},delete:{type:"void",title:'{{ t("Delete") }}',"x-component":"DeleteCollection","x-component-props":{role:"button",isBulk:!0},"x-visible":!1},create:{type:"void",title:'{{ t("Create collection") }}',"x-component":"AddCollection","x-component-props":{type:"primary"},"x-visible":!1}}},[L.uid()]:{type:"void","x-uid":"input","x-component":"Table.Void","x-component-props":{rowKey:"name",rowSelection:{type:"checkbox"},useDataSource:"{{cm.useDataSourceFromRAC }}",useAction(){const e=r.useAPIClient(),{t}=V.useTranslation();return{move(n,a){return D(this,null,function*(){yield e.resource("dataSources").move({sourceId:n.key,targetId:a.key}),S.message.success(t("Saved successfully"),.2)})}}}},properties:{column1:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{title:{"x-component":"CollectionField","x-read-pretty":!0}}},column2:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{name:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},column5:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{description:{"x-component":"CollectionField","x-read-pretty":!0,"x-component-props":{ellipsis:!0}}}},column6:{type:"void",title:'{{ t("Actions") }}',"x-component":"Table.Column",properties:{actions:{type:"void","x-component":"Space","x-component-props":{split:"|"},properties:{view:{type:"void",title:'{{ t("Configure fields") }}',"x-component":"Action.Link","x-component-props":{},properties:{drawer:{type:"void","x-component":"Action.Drawer","x-component-props":{destroyOnClose:!0,width:"70%"},"x-reactions":e=>{const t=e.path.segments[1],o=e.path.segments[0],n=e.form.getValuesIn(`${o}.${t}`);n&&(e.title=`${Vt(n.title||n.name)} - ${Vt('{{ t("Configure fields") }}')}`)},properties:{collectionFields:{type:"void","x-component":"CollectionFields"}}}}},update:{type:"void",title:'{{ t("Edit") }}',"x-component":"EditCollection","x-component-props":{role:"button","aria-label":'{{ "edit-button-" + $record.name }}',type:"primary"}},delete:{type:"void",title:'{{ t("Delete") }}',"x-visible":!1,"x-component":"DeleteCollection","x-component-props":{role:"button","aria-label":'{{ "delete-button-" + $record.name }}',type:"primary",className:"nb-action-link"}}}}}}}}}},Vn={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: "${K}" })}}`,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"}}]},Ln={type:"object",properties:{[L.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"}}}},[L.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: "${K}" })}}`,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]) }}"}}}]}}}}}}}}},qn=r.withDynamicSchemaProps(e=>{const{t}=V.useTranslation(),{isTitleField:o}=r.useCollectionManager_deprecated(),[n,a]=d.useState(null),{setTitleField:i,filterByTk:c,dataSourceKey:l}=r.useProps(e),u=r.useRecord(),p=r.useAPIClient(),{refreshRM:m,titleField:g}=Tt(),v=A=>D(this,null,function*(){a(u),yield p.request({url:`dataSources/${l}/collections:update?filterByTk=${c}`,method:"post",data:{titleField:A?u.name:"id"}}),S.message.success(t("Saved successfully")),m(),i(A?u.name:"id"),a(null)});return o(u)?s.jsx(S.Tooltip,{title:t("Default title for each record"),placement:"right",overlayInnerStyle:{textAlign:"center"},children:s.jsx(S.Switch,{"aria-label":`switch-title-field-${u==null?void 0:u.name}`,size:"small",loading:(u==null?void 0:u.name)===(n==null?void 0:n.name),checked:(u==null?void 0:u.name)===(g||"id"),onChange:v})}):null},{displayName:"TitleField"}),Lt=(e,t)=>{const o=[];return e.forEach(n=>{const a=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:a})}),o.filter(n=>t==="sort"?n.key==="advanced":n.children.length>0)},Gn=$.observer(e=>{var v;const{value:t,handleFieldChange:o}=e,n=r.useRecord(),{getInterface:a}=r.useCollectionManager_deprecated(),i=r.useCompile(),c=r.useFieldInterfaceOptions(),l=Lt(c,n.type),u=$.useForm(),p=$.useField(),[m,g]=d.useState(l);return["oho","obo","o2m","m2o","m2m"].includes(n.interface)?s.jsx(S.Tag,{children:i((v=c.find(A=>A.key==="relation").children.find(A=>A.name===t))==null?void 0:v.label)},t):s.jsx(S.Select,{"aria-label":`field-interface-${n==null?void 0:n.type}`,role:"button",defaultValue:t,style:{width:"100%"},popupMatchSelectWidth:!1,onChange:A=>{var b,C;const _=a(A);o({interface:A,uiSchema:T({title:(b=n==null?void 0:n.uiSchema)==null?void 0:b.title},(C=_==null?void 0:_.default)==null?void 0:C.uiSchema)},n.name)},onDropdownVisibleChange:A=>{var _,b;if(A&&(n!=null&&n.possibleTypes)){const C=(b=(_=Object.values(u.values))==null?void 0:_[0])==null?void 0:b[p.index],h=(C==null?void 0:C.type)||n.type,y=Lt(c,h);g(y)}},children:m.map(A=>s.jsx(S.Select.OptGroup,{label:i(A.label),children:A.children.map(_=>s.jsx(S.Select.Option,{value:_.name,children:i(_.label)},_.name))},A.key))})},{displayName:"CollectionFieldInterfaceSelect"}),De=["string","bigInt","integer","uuid","uid"],zn=$.observer(e=>{var p,m;const{name:t}=W.useParams(),{collectionName:o,sourceKey:n,name:a}=r.useRecord(),i=$.useField(),c=r.useCompile(),{getCollection:l}=r.useCollectionManager_deprecated(),u=(p=l(o||a,t).fields)==null?void 0:p.filter(g=>g.primaryKey||g.unique).map(g=>{var v;return{value:g.name,label:c(((v=g.uiSchema)==null?void 0:v.title)||g.title||g.name)}});return d.useEffect(()=>{var g;i.initialValue=((g=u==null?void 0:u[0])==null?void 0:g.value)||n},[]),s.jsx("div",{children:s.jsx(S.Select,{disabled:n,options:u,defaultValue:((m=u==null?void 0:u[0])==null?void 0:m.value)||n,onChange:e==null?void 0:e.onChange,showSearch:!0})})},{displayName:"SourceKey"}),qt=$.observer(e=>{const{disabled:t}=e,o=r.useAPIClient(),[n,a]=d.useState([]),{name:i}=W.useParams(),c=r.useRecord(),l=$.useField(),{collectionName:u,target:p,type:m,through:g,name:v}=c,A=c[l.props.name],{getCollection:_}=r.useCollectionManager_deprecated(),b=r.useCompile(),C=$.useForm(),[h,y]=d.useState(A);return d.useEffect(()=>{var E;l.initialValue=null;const f=["belongsTo"].includes(m)?u:["belongsToMany"].includes(m)?g:p,x=(E=_(f,i))==null?void 0:E.fields;if(x){const M=x==null?void 0:x.filter(w=>De.includes(w.type)).map(w=>{var N;return{value:w.name,label:b(((N=w.uiSchema)==null?void 0:N.title)||w.title||w.name)}});if(a(M),A){const w=M.find(N=>N.value===A);y((w==null?void 0:w.label)||A)}}},[m]),d.useEffect(()=>{y(A)},[A]),s.jsx("div",{children:s.jsx(S.Select,{disabled:t,value:h,options:n,showSearch:!0,onDropdownVisibleChange:f=>D(this,null,function*(){var N;const{target:x,type:E,through:M}=C.values,w=["belongsTo"].includes(E)?u||v:["belongsToMany"].includes(E)?M:x;if(w&&f){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"]}});a((N=F.data)==null?void 0:N.filter(P=>De.includes(P.type)).map(P=>{var k;return{value:P.name,label:b(((k=P.uiSchema)==null?void 0:k.title)||P.title||P.name)}}))}}),onChange:f=>{var x;(x=e==null?void 0:e.onChange)==null||x.call(e,f),y(f)}})})},{displayName:"ForeignKey"}),Un=$.observer(e=>{const{value:t,disabled:o}=e,{targetKey:n,target:a,type:i}=r.useRecord(),{name:c}=W.useParams(),{getCollection:l}=r.useCollectionManager_deprecated(),u=r.useAPIClient(),[p,m]=d.useState([]),[g,v]=d.useState(t||n),A=$.useForm(),_=r.useCompile(),b=$.useField();return b.required=!0,d.useEffect(()=>{var C;a&&m((C=l(a,c).fields)==null?void 0:C.filter(h=>i!=="hasMany"?h.primaryKey||h.unique:De.includes(h.type)).map(h=>{var y;return{value:h.name,label:_(((y=h==null?void 0:h.uiSchema)==null?void 0:y.title)||h.title||h.name)}}))},[]),s.jsx("div",{children:s.jsx(S.Select,{showSearch:!0,options:p,onDropdownVisibleChange:C=>D(this,null,function*(){var f;const{target:h,type:y}=A.values;if(h&&C){const{data:x}=yield u.request({url:`dataSourcesCollections/${c}.${h}/fields:list`,params:{paginate:!1,filter:{$or:[{"interface.$not":null},{"options.source.$notEmpty":!0}]},sort:["sort"]}});m((f=x.data)==null?void 0:f.filter(E=>y!=="hasMany"?E.primaryKey||E.unique:De.includes(E.type)).map(E=>{var M;return{value:E.name,label:_(((M=E.uiSchema)==null?void 0:M.title)||E.title||E.name)}}))}}),onChange:C=>{var h;(h=e==null?void 0:e.onChange)==null||h.call(e,C),v(C)},value:g,disabled:o})})},{displayName:"TargetKey"}),Hn=$.observer(()=>{const e=r.useCompile(),{targetCollection:t}=Tt();return s.jsx("div",{children:s.jsx(S.Select,{disabled:!0,showSearch:!0,popupMatchSelectWidth:!1,value:t.name,options:[{value:t.name,label:e(t.title||t.name)}]})})},{displayName:"SourceCollection"}),Wn=$.observer(e=>{const{disabled:t}=e,o=r.useCompile(),[n,a]=d.useState([]),{name:i}=W.useParams(),c=$.useField(),{getCollections:l}=r.useCollectionManager_deprecated(i),p=r.useRecord()[c.props.name],m=()=>l().filter(v=>!(v.autoCreate&&v.isThrough)).map(v=>({label:o(v.title||v.name),value:v.name}));return d.useEffect(()=>{const g=m();a(g)},[]),s.jsx("div",{children:s.jsx(S.Select,{disabled:t,showSearch:!0,popupMatchSelectWidth:!1,fieldNames:{label:"label",value:"value"},defaultValue:p,options:n,onChange:g=>{var v;(v=e==null?void 0:e.onChange)==null||v.call(e,g)}})})},{displayName:"ThroughCollection"}),Yn=(e,t,o)=>{var i;if(!e)return;const n=J.cloneDeep(e.properties);n!=null&&n.foreignKey&&(n.foreignKey["x-component"]=qt),e.hasDefaultValue===!0&&(n.defaultValue=J.cloneDeep((i=e==null?void 0:e.default)==null?void 0:i.uiSchema),n.defaultValue.required=!1,n.defaultValue.title=o('{{ t("Default value") }}'),n.defaultValue["x-decorator"]="FormItem",n.defaultValue["x-reactions"]={dependencies:["uiSchema.x-component-props.gmt","uiSchema.x-component-props.showTime","uiSchema.x-component-props.dateFormat","uiSchema.x-component-props.timeFormat"],fulfill:{state:{componentProps:{gmt:"{{$deps[0]}}",showTime:"{{$deps[1]}}",dateFormat:"{{$deps[2]}}",timeFormat:"{{$deps[3]}}"}}}});const a=j(T({name:`f_${L.uid()}`},J.cloneDeep(e.default)),{interface:e.name});return a.reverseField&&(a.reverseField.name=`f_${L.uid()}`),{type:"object",properties:{[L.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:a}),c)}},title:`${o(t.title||t.name)} - ${o('{{ t("Add field") }}')}`,properties:j(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 }}"}}}}})}}}},Qn=()=>{const e=$.useForm(),t=r.useActionContext(),{refresh:o}=r.useResourceActionContext(),n=$.useField(),a=r.useAPIClient(),i=r.useRecord(),{name:c}=W.useParams(),l=r.useDataSourceManager();return{run(){return D(this,null,function*(){yield e.submit(),n.data=n.data||{},n.data.loading=!0;const p=J.cloneDeep(e.values);p.autoCreateReverseField||delete p.reverseField,delete p.autoCreateReverseField;try{yield a.request({url:`dataSourcesCollections/${c}.${i.name}/fields:create`,method:"post",data:p}),t.setVisible(!1),l.getDataSource(c).reload(),yield e.reset(),n.data.loading=!1,o()}catch(m){n.data.loading=!1}})}}},Zn=e=>{const t=r.useRecord();return s.jsx(Jn,T({item:t},e))},Jn=e=>{const{scope:t,getContainer:o,item:n,children:a,trigger:i,align:c,database:l}=e,{getInterface:u,getTemplate:p,collections:m}=r.useCollectionManager_deprecated(),[g,v]=d.useState(!1),[A,_]=d.useState(),[b,C]=d.useState({}),h=r.useCompile(),{t:y}=V.useTranslation(),{data:{database:f}}=r.useCurrentAppInfo(),x=P=>(f==null?void 0:f.dialect)===P,E=d.useMemo(()=>m.map(P=>({label:h(P.title),value:P.name})),[]),M=r.useFieldInterfaceOptions(),w=d.useCallback(()=>{const{availableFieldInterfaces:P}=p(n.template)||{},{exclude:k,include:B}=P||{},Q=[];return M.forEach(H=>{var I;if(H.key==="relation"){let Y=[];B!=null&&B.length?B.forEach(G=>{var re;const oe=(re=H==null?void 0:H.children)==null?void 0:re.find(nv=>[G,G.interface].includes(nv.value));oe&&Y.push(j(T({},oe),{targetScope:G==null?void 0:G.targetScope}))}):k!=null&&k.length?Y=(I=H==null?void 0:H.children)==null?void 0:I.filter(G=>!k.includes(G.value)):Y=H==null?void 0:H.children,Y!=null&&Y.length&&Q.push(j(T({},H),{children:Y}))}}),Q},[p,n]),N=d.useMemo(()=>w().map(P=>{var k;return((k=P==null?void 0:P.children)==null?void 0:k.length)===0?null:n.template==="view"?{type:"group",label:h(P.label),title:h(P.label),key:P.label,children:P.children.filter(B=>["m2o"].includes(B.name)).map(B=>({label:h(B.title),title:h(B.title),key:B.name,dataTargetScope:B.targetScope}))}:{type:"group",label:h(P.label),title:h(P.label),key:P.label,children:P==null?void 0:P.children.filter(B=>!["o2o","subTable","linkTo"].includes(B.name)).map(B=>({label:h(B.title),title:h(B.title),key:B.name,dataTargetScope:B.targetScope}))}}).filter(P=>{var k;return(k=P==null?void 0:P.children)==null?void 0:k.length}),[w]),F=d.useMemo(()=>({style:{maxHeight:"60vh",overflow:"auto"},onClick:P=>{const k=P.item.props["data-targetScope"];k&&_(k);const B=Yn(u(P.key),n,h);B&&(C(B),v(!0))},items:N}),[u,N,n]);return n.template!=="sql"&&s.jsx(r.RecordProvider,{record:n,children:s.jsxs(r.ActionContextProvider,{value:{visible:g,setVisible:v},children:[s.jsx(S.Dropdown,{getPopupContainer:o,trigger:i,align:c,menu:F,children:a||s.jsx(S.Button,{icon:s.jsx(ee.PlusOutlined,{}),type:"primary",children:y("Add field")})}),s.jsx(r.SchemaComponent,{schema:b,components:{ArrayTable:pe.ArrayTable},scope:T({getContainer:o,useCancelAction:r.useCancelAction,createOnly:!0,isOverride:!1,override:!1,useCreateCollectionField:Qn,record:n,showReverseFieldConfig:!1,targetScope:A,collections:E,isDialect:x,disabledJSONB:!1,createMainOnly:!0},t)})]})})},Xn=$.observer(e=>{const{value:t,handleFieldChange:o}=e,n=r.useRecord(),[a,i]=d.useState(t),c=p=>{i(p)},l=d.useMemo(()=>J.debounce(p=>{o({uiSchema:j(T({},n==null?void 0:n.uiSchema),{title:p})},n.name)},1e3),[o,n]),u=p=>{const m=p.target.value;c(m),l(m)};return d.useEffect(()=>{i(t)},[t]),s.jsx(S.Input,{value:a,onChange:u,style:{minWidth:"100px"},"aria-label":"field-title-input"})},{displayName:"FieldTitleInput"}),Rn=()=>{const{refresh:e}=r.useResourceActionContext(),{name:t}=W.useParams(),{name:o,collectionName:n}=r.useRecord(),a=r.useAPIClient();return{run(){return D(this,null,function*(){yield a.request({url:`dataSourcesCollections/${t}.${n}/fields:destroy?filterByTk=${o}`,method:"post"}),e()})}}},er=()=>{const{state:e,setState:t,refresh:o}=r.useResourceActionContext(),{t:n}=V.useTranslation(),{name:a}=W.useParams(),i=r.useAPIClient(),{name:c}=r.useRecord();return{run(){return D(this,null,function*(){var u;if(!((u=e==null?void 0:e.selectedRowKeys)!=null&&u.length))return S.message.error(n("Please select the records you want to delete"));yield i.request({url:`dataSourcesCollections/${a}.${c}/fields:destroy`,method:"post",params:{filterByTk:(e==null?void 0:e.selectedRowKeys)||[]}}),t==null||t({selectedRowKeys:[]}),o()})}}},tr=()=>{const{run:e}=er();return{run(){return D(this,null,function*(){yield e()})}}},or=()=>{const{run:e}=Rn();return{run(){return D(this,null,function*(){yield e()})}}};var Ie=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function be(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function nr(){this.__data__=[],this.size=0}var rr=nr;function ar(e,t){return e===t||e!==e&&t!==t}var Gt=ar,sr=Gt;function ir(e,t){for(var o=e.length;o--;)if(sr(e[o][0],t))return o;return-1}var Oe=ir,cr=Oe,lr=Array.prototype,ur=lr.splice;function pr(e){var t=this.__data__,o=cr(t,e);if(o<0)return!1;var n=t.length-1;return o==n?t.pop():ur.call(t,o,1),--this.size,!0}var dr=pr,mr=Oe;function fr(e){var t=this.__data__,o=mr(t,e);return o<0?void 0:t[o][1]}var yr=fr,gr=Oe;function vr(e){return gr(this.__data__,e)>-1}var hr=vr,Cr=Oe;function br(e,t){var o=this.__data__,n=Cr(o,e);return n<0?(++this.size,o.push([e,t])):o[n][1]=t,this}var xr=br,Sr=rr,Ar=dr,$r=yr,Tr=hr,Fr=xr;function de(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])}}de.prototype.clear=Sr,de.prototype.delete=Ar,de.prototype.get=$r,de.prototype.has=Tr,de.prototype.set=Fr;var Ee=de,wr=Ee;function _r(){this.__data__=new wr,this.size=0}var Pr=_r;function Dr(e){var t=this.__data__,o=t.delete(e);return this.size=t.size,o}var Ir=Dr;function Or(e){return this.__data__.get(e)}var Er=Or;function Mr(e){return this.__data__.has(e)}var jr=Mr,kr=typeof Ie=="object"&&Ie&&Ie.Object===Object&&Ie,zt=kr,Kr=zt,Nr=typeof self=="object"&&self&&self.Object===Object&&self,Br=Kr||Nr||Function("return this")(),te=Br,Vr=te,Lr=Vr.Symbol,xe=Lr,Ut=xe,Ht=Object.prototype,qr=Ht.hasOwnProperty,Gr=Ht.toString,Se=Ut?Ut.toStringTag:void 0;function zr(e){var t=qr.call(e,Se),o=e[Se];try{e[Se]=void 0;var n=!0}catch(i){}var a=Gr.call(e);return n&&(t?e[Se]=o:delete e[Se]),a}var Ur=zr,Hr=Object.prototype,Wr=Hr.toString;function Yr(e){return Wr.call(e)}var Qr=Yr,Wt=xe,Zr=Ur,Jr=Qr,Xr="[object Null]",Rr="[object Undefined]",Yt=Wt?Wt.toStringTag:void 0;function ea(e){return e==null?e===void 0?Rr:Xr:Yt&&Yt in Object(e)?Zr(e):Jr(e)}var me=ea;function ta(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var fe=ta,oa=me,na=fe,ra="[object AsyncFunction]",aa="[object Function]",sa="[object GeneratorFunction]",ia="[object Proxy]";function ca(e){if(!na(e))return!1;var t=oa(e);return t==aa||t==sa||t==ra||t==ia}var Qt=ca,la=te,ua=la["__core-js_shared__"],pa=ua,nt=pa,Zt=function(){var e=/[^.]+$/.exec(nt&&nt.keys&&nt.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function da(e){return!!Zt&&Zt in e}var ma=da,fa=Function.prototype,ya=fa.toString;function ga(e){if(e!=null){try{return ya.call(e)}catch(t){}try{return e+""}catch(t){}}return""}var Jt=ga,va=Qt,ha=ma,Ca=fe,ba=Jt,xa=/[\\^$.*+?()[\]{}|]/g,Sa=/^\[object .+?Constructor\]$/,Aa=Function.prototype,$a=Object.prototype,Ta=Aa.toString,Fa=$a.hasOwnProperty,wa=RegExp("^"+Ta.call(Fa).replace(xa,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function _a(e){if(!Ca(e)||ha(e))return!1;var t=va(e)?wa:Sa;return t.test(ba(e))}var Pa=_a;function Da(e,t){return e==null?void 0:e[t]}var Ia=Da,Oa=Pa,Ea=Ia;function Ma(e,t){var o=Ea(e,t);return Oa(o)?o:void 0}var se=Ma,ja=se,ka=te,Ka=ja(ka,"Map"),rt=Ka,Na=se,Ba=Na(Object,"create"),Me=Ba,Xt=Me;function Va(){this.__data__=Xt?Xt(null):{},this.size=0}var La=Va;function qa(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Ga=qa,za=Me,Ua="__lodash_hash_undefined__",Ha=Object.prototype,Wa=Ha.hasOwnProperty;function Ya(e){var t=this.__data__;if(za){var o=t[e];return o===Ua?void 0:o}return Wa.call(t,e)?t[e]:void 0}var Qa=Ya,Za=Me,Ja=Object.prototype,Xa=Ja.hasOwnProperty;function Ra(e){var t=this.__data__;return Za?t[e]!==void 0:Xa.call(t,e)}var es=Ra,ts=Me,os="__lodash_hash_undefined__";function ns(e,t){var o=this.__data__;return this.size+=this.has(e)?0:1,o[e]=ts&&t===void 0?os:t,this}var rs=ns,as=La,ss=Ga,is=Qa,cs=es,ls=rs;function ye(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])}}ye.prototype.clear=as,ye.prototype.delete=ss,ye.prototype.get=is,ye.prototype.has=cs,ye.prototype.set=ls;var us=ye,Rt=us,ps=Ee,ds=rt;function ms(){this.size=0,this.__data__={hash:new Rt,map:new(ds||ps),string:new Rt}}var fs=ms;function ys(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var gs=ys,vs=gs;function hs(e,t){var o=e.__data__;return vs(t)?o[typeof t=="string"?"string":"hash"]:o.map}var je=hs,Cs=je;function bs(e){var t=Cs(this,e).delete(e);return this.size-=t?1:0,t}var xs=bs,Ss=je;function As(e){return Ss(this,e).get(e)}var $s=As,Ts=je;function Fs(e){return Ts(this,e).has(e)}var ws=Fs,_s=je;function Ps(e,t){var o=_s(this,e),n=o.size;return o.set(e,t),this.size+=o.size==n?0:1,this}var Ds=Ps,Is=fs,Os=xs,Es=$s,Ms=ws,js=Ds;function ge(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])}}ge.prototype.clear=Is,ge.prototype.delete=Os,ge.prototype.get=Es,ge.prototype.has=Ms,ge.prototype.set=js;var eo=ge,ks=Ee,Ks=rt,Ns=eo,Bs=200;function Vs(e,t){var o=this.__data__;if(o instanceof ks){var n=o.__data__;if(!Ks||n.length<Bs-1)return n.push([e,t]),this.size=++o.size,this;o=this.__data__=new Ns(n)}return o.set(e,t),this.size=o.size,this}var Ls=Vs,qs=Ee,Gs=Pr,zs=Ir,Us=Er,Hs=jr,Ws=Ls;function ve(e){var t=this.__data__=new qs(e);this.size=t.size}ve.prototype.clear=Gs,ve.prototype.delete=zs,ve.prototype.get=Us,ve.prototype.has=Hs,ve.prototype.set=Ws;var Ys=ve;function Qs(e,t){for(var o=-1,n=e==null?0:e.length;++o<n&&t(e[o],o,e)!==!1;);return e}var Zs=Qs,Js=se,Xs=function(){try{var e=Js(Object,"defineProperty");return e({},"",{}),e}catch(t){}}(),to=Xs,oo=to;function Rs(e,t,o){t=="__proto__"&&oo?oo(e,t,{configurable:!0,enumerable:!0,value:o,writable:!0}):e[t]=o}var no=Rs,ei=no,ti=Gt,oi=Object.prototype,ni=oi.hasOwnProperty;function ri(e,t,o){var n=e[t];(!(ni.call(e,t)&&ti(n,o))||o===void 0&&!(t in e))&&ei(e,t,o)}var at=ri,ai=at,si=no;function ii(e,t,o,n){var a=!o;o||(o={});for(var i=-1,c=t.length;++i<c;){var l=t[i],u=n?n(o[l],e[l],l,o,e):void 0;u===void 0&&(u=e[l]),a?si(o,l,u):ai(o,l,u)}return o}var Ae=ii;function ci(e,t){for(var o=-1,n=Array(e);++o<e;)n[o]=t(o);return n}var li=ci;function ui(e){return e!=null&&typeof e=="object"}var ie=ui,pi=me,di=ie,mi="[object Arguments]";function fi(e){return di(e)&&pi(e)==mi}var yi=fi,ro=yi,gi=ie,ao=Object.prototype,vi=ao.hasOwnProperty,hi=ao.propertyIsEnumerable,Ci=ro(function(){return arguments}())?ro:function(e){return gi(e)&&vi.call(e,"callee")&&!hi.call(e,"callee")},so=Ci,bi=Array.isArray,ce=bi,ke={exports:{}};function xi(){return!1}var Si=xi;ke.exports,function(e,t){var o=te,n=Si,a=t&&!t.nodeType&&t,i=a&&!0&&e&&!e.nodeType&&e,c=i&&i.exports===a,l=c?o.Buffer:void 0,u=l?l.isBuffer:void 0,p=u||n;e.exports=p}(ke,ke.exports);var io=ke.exports,Ai=9007199254740991,$i=/^(?:0|[1-9]\d*)$/;function Ti(e,t){var o=typeof e;return t=t==null?Ai:t,!!t&&(o=="number"||o!="symbol"&&$i.test(e))&&e>-1&&e%1==0&&e<t}var co=Ti,Fi=9007199254740991;function wi(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Fi}var lo=wi,_i=me,Pi=lo,Di=ie,Ii="[object Arguments]",Oi="[object Array]",Ei="[object Boolean]",Mi="[object Date]",ji="[object Error]",ki="[object Function]",Ki="[object Map]",Ni="[object Number]",Bi="[object Object]",Vi="[object RegExp]",Li="[object Set]",qi="[object String]",Gi="[object WeakMap]",zi="[object ArrayBuffer]",Ui="[object DataView]",Hi="[object Float32Array]",Wi="[object Float64Array]",Yi="[object Int8Array]",Qi="[object Int16Array]",Zi="[object Int32Array]",Ji="[object Uint8Array]",Xi="[object Uint8ClampedArray]",Ri="[object Uint16Array]",ec="[object Uint32Array]",U={};U[Hi]=U[Wi]=U[Yi]=U[Qi]=U[Zi]=U[Ji]=U[Xi]=U[Ri]=U[ec]=!0,U[Ii]=U[Oi]=U[zi]=U[Ei]=U[Ui]=U[Mi]=U[ji]=U[ki]=U[Ki]=U[Ni]=U[Bi]=U[Vi]=U[Li]=U[qi]=U[Gi]=!1;function tc(e){return Di(e)&&Pi(e.length)&&!!U[_i(e)]}var oc=tc;function nc(e){return function(t){return e(t)}}var st=nc,Ke={exports:{}};Ke.exports,function(e,t){var o=zt,n=t&&!t.nodeType&&t,a=n&&!0&&e&&!e.nodeType&&e,i=a&&a.exports===n,c=i&&o.process,l=function(){try{var u=a&&a.require&&a.require("util").types;return u||c&&c.binding&&c.binding("util")}catch(p){}}();e.exports=l}(Ke,Ke.exports);var it=Ke.exports,rc=oc,ac=st,uo=it,po=uo&&uo.isTypedArray,sc=po?ac(po):rc,ic=sc,cc=li,lc=so,uc=ce,pc=io,dc=co,mc=ic,fc=Object.prototype,yc=fc.hasOwnProperty;function gc(e,t){var o=uc(e),n=!o&&lc(e),a=!o&&!n&&pc(e),i=!o&&!n&&!a&&mc(e),c=o||n||a||i,l=c?cc(e.length,String):[],u=l.length;for(var p in e)(t||yc.call(e,p))&&!(c&&(p=="length"||a&&(p=="offset"||p=="parent")||i&&(p=="buffer"||p=="byteLength"||p=="byteOffset")||dc(p,u)))&&l.push(p);return l}var mo=gc,vc=Object.prototype;function hc(e){var t=e&&e.constructor,o=typeof t=="function"&&t.prototype||vc;return e===o}var ct=hc;function Cc(e,t){return function(o){return e(t(o))}}var fo=Cc,bc=fo,xc=bc(Object.keys,Object),Sc=xc,Ac=ct,$c=Sc,Tc=Object.prototype,Fc=Tc.hasOwnProperty;function wc(e){if(!Ac(e))return $c(e);var t=[];for(var o in Object(e))Fc.call(e,o)&&o!="constructor"&&t.push(o);return t}var _c=wc,Pc=Qt,Dc=lo;function Ic(e){return e!=null&&Dc(e.length)&&!Pc(e)}var yo=Ic,Oc=mo,Ec=_c,Mc=yo;function jc(e){return Mc(e)?Oc(e):Ec(e)}var lt=jc,kc=Ae,Kc=lt;function Nc(e,t){return e&&kc(t,Kc(t),e)}var Bc=Nc;function Vc(e){var t=[];if(e!=null)for(var o in Object(e))t.push(o);return t}var Lc=Vc,qc=fe,Gc=ct,zc=Lc,Uc=Object.prototype,Hc=Uc.hasOwnProperty;function Wc(e){if(!qc(e))return zc(e);var t=Gc(e),o=[];for(var n in e)n=="constructor"&&(t||!Hc.call(e,n))||o.push(n);return o}var Yc=Wc,Qc=mo,Zc=Yc,Jc=yo;function Xc(e){return Jc(e)?Qc(e,!0):Zc(e)}var ut=Xc,Rc=Ae,el=ut;function tl(e,t){return e&&Rc(t,el(t),e)}var ol=tl,Ne={exports:{}};Ne.exports,function(e,t){var o=te,n=t&&!t.nodeType&&t,a=n&&!0&&e&&!e.nodeType&&e,i=a&&a.exports===n,c=i?o.Buffer:void 0,l=c?c.allocUnsafe:void 0;function u(p,m){if(m)return p.slice();var g=p.length,v=l?l(g):new p.constructor(g);return p.copy(v),v}e.exports=u}(Ne,Ne.exports);var nl=Ne.exports;function rl(e,t){var o=-1,n=e.length;for(t||(t=Array(n));++o<n;)t[o]=e[o];return t}var al=rl;function sl(e,t){for(var o=-1,n=e==null?0:e.length,a=0,i=[];++o<n;){var c=e[o];t(c,o,e)&&(i[a++]=c)}return i}var il=sl;function cl(){return[]}var go=cl,ll=il,ul=go,pl=Object.prototype,dl=pl.propertyIsEnumerable,vo=Object.getOwnPropertySymbols,ml=vo?function(e){return e==null?[]:(e=Object(e),ll(vo(e),function(t){return dl.call(e,t)}))}:ul,pt=ml,fl=Ae,yl=pt;function gl(e,t){return fl(e,yl(e),t)}var vl=gl;function hl(e,t){for(var o=-1,n=t.length,a=e.length;++o<n;)e[a+o]=t[o];return e}var dt=hl,Cl=fo,bl=Cl(Object.getPrototypeOf,Object),mt=bl,xl=dt,Sl=mt,Al=pt,$l=go,Tl=Object.getOwnPropertySymbols,Fl=Tl?function(e){for(var t=[];e;)xl(t,Al(e)),e=Sl(e);return t}:$l,ho=Fl,wl=Ae,_l=ho;function Pl(e,t){return wl(e,_l(e),t)}var Dl=Pl,Il=dt,Ol=ce;function El(e,t,o){var n=t(e);return Ol(e)?n:Il(n,o(e))}var Co=El,Ml=Co,jl=pt,kl=lt;function Kl(e){return Ml(e,kl,jl)}var Nl=Kl,Bl=Co,Vl=ho,Ll=ut;function ql(e){return Bl(e,Ll,Vl)}var bo=ql,Gl=se,zl=te,Ul=Gl(zl,"DataView"),Hl=Ul,Wl=se,Yl=te,Ql=Wl(Yl,"Promise"),Zl=Ql,Jl=se,Xl=te,Rl=Jl(Xl,"Set"),eu=Rl,tu=se,ou=te,nu=tu(ou,"WeakMap"),ru=nu,ft=Hl,yt=rt,gt=Zl,vt=eu,ht=ru,xo=me,he=Jt,So="[object Map]",au="[object Object]",Ao="[object Promise]",$o="[object Set]",To="[object WeakMap]",Fo="[object DataView]",su=he(ft),iu=he(yt),cu=he(gt),lu=he(vt),uu=he(ht),le=xo;(ft&&le(new ft(new ArrayBuffer(1)))!=Fo||yt&&le(new yt)!=So||gt&&le(gt.resolve())!=Ao||vt&&le(new vt)!=$o||ht&&le(new ht)!=To)&&(le=function(e){var t=xo(e),o=t==au?e.constructor:void 0,n=o?he(o):"";if(n)switch(n){case su:return Fo;case iu:return So;case cu:return Ao;case lu:return $o;case uu:return To}return t});var Ct=le,pu=Object.prototype,du=pu.hasOwnProperty;function mu(e){var t=e.length,o=new e.constructor(t);return t&&typeof e[0]=="string"&&du.call(e,"index")&&(o.index=e.index,o.input=e.input),o}var fu=mu,yu=te,gu=yu.Uint8Array,vu=gu,wo=vu;function hu(e){var t=new e.constructor(e.byteLength);return new wo(t).set(new wo(e)),t}var bt=hu,Cu=bt;function bu(e,t){var o=t?Cu(e.buffer):e.buffer;return new e.constructor(o,e.byteOffset,e.byteLength)}var xu=bu,Su=/\w*$/;function Au(e){var t=new e.constructor(e.source,Su.exec(e));return t.lastIndex=e.lastIndex,t}var $u=Au,_o=xe,Po=_o?_o.prototype:void 0,Do=Po?Po.valueOf:void 0;function Tu(e){return Do?Object(Do.call(e)):{}}var Fu=Tu,wu=bt;function _u(e,t){var o=t?wu(e.buffer):e.buffer;return new e.constructor(o,e.byteOffset,e.length)}var Pu=_u,Du=bt,Iu=xu,Ou=$u,Eu=Fu,Mu=Pu,ju="[object Boolean]",ku="[object Date]",Ku="[object Map]",Nu="[object Number]",Bu="[object RegExp]",Vu="[object Set]",Lu="[object String]",qu="[object Symbol]",Gu="[object ArrayBuffer]",zu="[object DataView]",Uu="[object Float32Array]",Hu="[object Float64Array]",Wu="[object Int8Array]",Yu="[object Int16Array]",Qu="[object Int32Array]",Zu="[object Uint8Array]",Ju="[object Uint8ClampedArray]",Xu="[object Uint16Array]",Ru="[object Uint32Array]";function ep(e,t,o){var n=e.constructor;switch(t){case Gu:return Du(e);case ju:case ku:return new n(+e);case zu:return Iu(e,o);case Uu:case Hu:case Wu:case Yu:case Qu:case Zu:case Ju:case Xu:case Ru:return Mu(e,o);case Ku:return new n;case Nu:case Lu:return new n(e);case Bu:return Ou(e);case Vu:return new n;case qu:return Eu(e)}}var tp=ep,op=fe,Io=Object.create,np=function(){function e(){}return function(t){if(!op(t))return{};if(Io)return Io(t);e.prototype=t;var o=new e;return e.prototype=void 0,o}}(),rp=np,ap=rp,sp=mt,ip=ct;function cp(e){return typeof e.constructor=="function"&&!ip(e)?ap(sp(e)):{}}var lp=cp,up=Ct,pp=ie,dp="[object Map]";function mp(e){return pp(e)&&up(e)==dp}var fp=mp,yp=fp,gp=st,Oo=it,Eo=Oo&&Oo.isMap,vp=Eo?gp(Eo):yp,hp=vp,Cp=Ct,bp=ie,xp="[object Set]";function Sp(e){return bp(e)&&Cp(e)==xp}var Ap=Sp,$p=Ap,Tp=st,Mo=it,jo=Mo&&Mo.isSet,Fp=jo?Tp(jo):$p,wp=Fp,_p=Ys,Pp=Zs,Dp=at,Ip=Bc,Op=ol,Ep=nl,Mp=al,jp=vl,kp=Dl,Kp=Nl,Np=bo,Bp=Ct,Vp=fu,Lp=tp,qp=lp,Gp=ce,zp=io,Up=hp,Hp=fe,Wp=wp,Yp=lt,Qp=ut,Zp=1,Jp=2,Xp=4,ko="[object Arguments]",Rp="[object Array]",ed="[object Boolean]",td="[object Date]",od="[object Error]",Ko="[object Function]",nd="[object GeneratorFunction]",rd="[object Map]",ad="[object Number]",No="[object Object]",sd="[object RegExp]",id="[object Set]",cd="[object String]",ld="[object Symbol]",ud="[object WeakMap]",pd="[object ArrayBuffer]",dd="[object DataView]",md="[object Float32Array]",fd="[object Float64Array]",yd="[object Int8Array]",gd="[object Int16Array]",vd="[object Int32Array]",hd="[object Uint8Array]",Cd="[object Uint8ClampedArray]",bd="[object Uint16Array]",xd="[object Uint32Array]",z={};z[ko]=z[Rp]=z[pd]=z[dd]=z[ed]=z[td]=z[md]=z[fd]=z[yd]=z[gd]=z[vd]=z[rd]=z[ad]=z[No]=z[sd]=z[id]=z[cd]=z[ld]=z[hd]=z[Cd]=z[bd]=z[xd]=!0,z[od]=z[Ko]=z[ud]=!1;function Be(e,t,o,n,a,i){var c,l=t&Zp,u=t&Jp,p=t&Xp;if(o&&(c=a?o(e,n,a,i):o(e)),c!==void 0)return c;if(!Hp(e))return e;var m=Gp(e);if(m){if(c=Vp(e),!l)return Mp(e,c)}else{var g=Bp(e),v=g==Ko||g==nd;if(zp(e))return Ep(e,l);if(g==No||g==ko||v&&!a){if(c=u||v?{}:qp(e),!l)return u?kp(e,Op(c,e)):jp(e,Ip(c,e))}else{if(!z[g])return a?e:{};c=Lp(e,g,l)}}i||(i=new _p);var A=i.get(e);if(A)return A;i.set(e,c),Wp(e)?e.forEach(function(C){c.add(Be(C,t,o,C,e,i))}):Up(e)&&e.forEach(function(C,h){c.set(h,Be(C,t,o,h,e,i))});var _=p?u?Np:Kp:u?Qp:Yp,b=m?void 0:_(e);return Pp(b||e,function(C,h){b&&(h=C,C=e[h]),Dp(c,h,Be(C,t,o,h,e,i))}),c}var Bo=Be,Sd=Bo,Ad=1,$d=4;function Td(e){return Sd(e,Ad|$d)}var Fd=Td;const ne=be(Fd);function wd(e,t){for(var o=-1,n=e==null?0:e.length,a=Array(n);++o<n;)a[o]=t(e[o],o,e);return a}var Vo=wd,_d=me,Pd=ie,Dd="[object Symbol]";function Id(e){return typeof e=="symbol"||Pd(e)&&_d(e)==Dd}var xt=Id,Od=ce,Ed=xt,Md=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,jd=/^\w*$/;function kd(e,t){if(Od(e))return!1;var o=typeof e;return o=="number"||o=="symbol"||o=="boolean"||e==null||Ed(e)?!0:jd.test(e)||!Md.test(e)||t!=null&&e in Object(t)}var Kd=kd,Lo=eo,Nd="Expected a function";function St(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(Nd);var o=function(){var n=arguments,a=t?t.apply(this,n):n[0],i=o.cache;if(i.has(a))return i.get(a);var c=e.apply(this,n);return o.cache=i.set(a,c)||i,c};return o.cache=new(St.Cache||Lo),o}St.Cache=Lo;var Bd=St,Vd=Bd,Ld=500;function qd(e){var t=Vd(e,function(n){return o.size===Ld&&o.clear(),n}),o=t.cache;return t}var Gd=qd,zd=Gd,Ud=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Hd=/\\(\\)?/g,Wd=zd(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(Ud,function(o,n,a,i){t.push(a?i.replace(Hd,"$1"):n||o)}),t}),Yd=Wd,qo=xe,Qd=Vo,Zd=ce,Jd=xt,Xd=1/0,Go=qo?qo.prototype:void 0,zo=Go?Go.toString:void 0;function Uo(e){if(typeof e=="string")return e;if(Zd(e))return Qd(e,Uo)+"";if(Jd(e))return zo?zo.call(e):"";var t=e+"";return t=="0"&&1/e==-Xd?"-0":t}var Rd=Uo,em=Rd;function tm(e){return e==null?"":em(e)}var om=tm,nm=ce,rm=Kd,am=Yd,sm=om;function im(e,t){return nm(e)?e:rm(e,t)?[e]:am(sm(e))}var Ve=im;function cm(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}var lm=cm,um=xt,pm=1/0;function dm(e){if(typeof e=="string"||um(e))return e;var t=e+"";return t=="0"&&1/e==-pm?"-0":t}var At=dm,mm=Ve,fm=At;function ym(e,t){t=mm(t,e);for(var o=0,n=t.length;e!=null&&o<n;)e=e[fm(t[o++])];return o&&o==n?e:void 0}var gm=ym;function vm(e,t,o){var n=-1,a=e.length;t<0&&(t=-t>a?0:a+t),o=o>a?a:o,o<0&&(o+=a),a=t>o?0:o-t>>>0,t>>>=0;for(var i=Array(a);++n<a;)i[n]=e[n+t];return i}var hm=vm,Cm=gm,bm=hm;function xm(e,t){return t.length<2?e:Cm(e,bm(t,0,-1))}var Sm=xm,Am=Ve,$m=lm,Tm=Sm,Fm=At;function wm(e,t){return t=Am(t,e),e=Tm(e,t),e==null||delete e[Fm($m(t))]}var _m=wm,Pm=me,Dm=mt,Im=ie,Om="[object Object]",Em=Function.prototype,Mm=Object.prototype,Ho=Em.toString,jm=Mm.hasOwnProperty,km=Ho.call(Object);function Km(e){if(!Im(e)||Pm(e)!=Om)return!1;var t=Dm(e);if(t===null)return!0;var o=jm.call(t,"constructor")&&t.constructor;return typeof o=="function"&&o instanceof o&&Ho.call(o)==km}var Nm=Km,Bm=Nm;function Vm(e){return Bm(e)?void 0:e}var Lm=Vm,Wo=xe,qm=so,Gm=ce,Yo=Wo?Wo.isConcatSpreadable:void 0;function zm(e){return Gm(e)||qm(e)||!!(Yo&&e&&e[Yo])}var Um=zm,Hm=dt,Wm=Um;function Qo(e,t,o,n,a){var i=-1,c=e.length;for(o||(o=Wm),a||(a=[]);++i<c;){var l=e[i];t>0&&o(l)?t>1?Qo(l,t-1,o,n,a):Hm(a,l):n||(a[a.length]=l)}return a}var Ym=Qo,Qm=Ym;function Zm(e){var t=e==null?0:e.length;return t?Qm(e,1):[]}var Jm=Zm;function Xm(e,t,o){switch(o.length){case 0:return e.call(t);case 1:return e.call(t,o[0]);case 2:return e.call(t,o[0],o[1]);case 3:return e.call(t,o[0],o[1],o[2])}return e.apply(t,o)}var Rm=Xm,ef=Rm,Zo=Math.max;function tf(e,t,o){return t=Zo(t===void 0?e.length-1:t,0),function(){for(var n=arguments,a=-1,i=Zo(n.length-t,0),c=Array(i);++a<i;)c[a]=n[t+a];a=-1;for(var l=Array(t+1);++a<t;)l[a]=n[a];return l[t]=o(c),ef(e,this,l)}}var of=tf;function nf(e){return function(){return e}}var rf=nf;function af(e){return e}var sf=af,cf=rf,Jo=to,lf=sf,uf=Jo?function(e,t){return Jo(e,"toString",{configurable:!0,enumerable:!1,value:cf(t),writable:!0})}:lf,pf=uf,df=800,mf=16,ff=Date.now;function yf(e){var t=0,o=0;return function(){var n=ff(),a=mf-(n-o);if(o=n,a>0){if(++t>=df)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var gf=yf,vf=pf,hf=gf,Cf=hf(vf),bf=Cf,xf=Jm,Sf=of,Af=bf;function $f(e){return Af(Sf(e,void 0,xf),e+"")}var Tf=$f,Ff=Vo,wf=Bo,_f=_m,Pf=Ve,Df=Ae,If=Lm,Of=Tf,Ef=bo,Mf=1,jf=2,kf=4,Kf=Of(function(e,t){var o={};if(e==null)return o;var n=!1;t=Ff(t,function(i){return i=Pf(i,e),n||(n=i.length>1),i}),Df(e,Ef(e),o),n&&(o=wf(o,Mf|jf|kf,If));for(var a=t.length;a--;)_f(o,t[a]);return o}),Nf=Kf;const Le=be(Nf);var Bf=at,Vf=Ve,Lf=co,Xo=fe,qf=At;function Gf(e,t,o,n){if(!Xo(e))return e;t=Vf(t,e);for(var a=-1,i=t.length,c=i-1,l=e;l!=null&&++a<i;){var u=qf(t[a]),p=o;if(u==="__proto__"||u==="constructor"||u==="prototype")return e;if(a!=c){var m=l[u];p=n?n(m,u,l):void 0,p===void 0&&(p=Xo(m)?m:Lf(t[a+1])?[]:{})}Bf(l,u,p),l=l[u]}return e}var zf=Gf,Uf=zf;function Hf(e,t,o){return e==null?e:Uf(e,t,o)}var Wf=Hf;const Ro=be(Wf),Yf=({schema:e,record:t,parentRecord:o,compile:n,getContainer:a})=>{if(!e)return;const i=ne(e.properties);return i!=null&&i.name&&(i.name["x-disabled"]=!0),e.hasDefaultValue===!0&&(i.defaultValue=ne(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:{[L.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:ne(Le(e.default,["uiSchema.rawTitle"]))}),c)}},title:`${n((o==null?void 0:o.title)||(o==null?void 0:o.name))} - ${n('{{ t("Edit field") }}')}`,properties:j(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 }}"}}}}})}}}},Qf=()=>{const e=$.useForm(),t=r.useAPIClient(),o=r.useActionContext(),{refresh:n}=r.useResourceActionContext(),{targetCollection:a}=Tt(),{name:i}=W.useParams(),{name:c}=r.useRecord(),l=r.useDataSourceManager();return{run(){return D(this,null,function*(){yield e.submit();const p=ne(e.values);p.autoCreateReverseField||delete p.reverseField,delete p.autoCreateReverseField,yield t.request({url:`dataSourcesCollections/${i}.${a.name}/fields:update?filterByTk=${c}`,method:"post",data:p}),o.setVisible(!1),l.getDataSource(i).reload(),yield e.reset(),n()})}}},Zf=e=>{const t=r.useRecord(),o=r.useCollectionParentRecordData();return s.jsx(Jf,T({item:t,parentItem:o},e))},Jf=e=>{const M=e,{scope:t,getContainer:o,item:n,parentItem:a,children:i}=M,c=et(M,["scope","getContainer","item","parentItem","children"]),{getInterface:l,collections:u,getCollection:p}=r.useCollectionManager_deprecated(),{data:{database:m}}=r.useCurrentAppInfo(),[g,v]=d.useState(!1),[A,_]=d.useState({}),b=r.useAPIClient(),{t:C}=V.useTranslation(),h=r.useCompile(),{name:y}=W.useParams(),f=w=>(m==null?void 0:m.dialect)===w,x=d.useMemo(()=>u.map(w=>({label:h(w.title),value:w.name})),[]),E=d.useMemo(()=>{var w,N;return(n==null?void 0:n.fields)||((N=(w=p(n.collectionName,y))==null?void 0:w.options)==null?void 0:N.fields.filter(F=>F.interface==="select").map(F=>{var P;return{value:F.name,label:h((P=F.uiSchema)==null?void 0:P.title)}}))},[n.name]);return s.jsx(r.RecordProvider,{record:n,parent:a,children:s.jsxs(r.ActionContextProvider,{value:{visible:g,setVisible:v},children:[s.jsx("a",j(T({},c),{onClick:()=>D(this,null,function*(){var k,B,Q;const{data:w}=yield b.request({url:`dataSourcesCollections/${y}.${a.name}/fields:get?filterByTk=${n.name}`,params:{appends:["reverseField"]}}),N=l((k=w==null?void 0:w.data)==null?void 0:k.interface),F=ne(w==null?void 0:w.data)||{};F!=null&&F.reverseField||(F.autoCreateReverseField=!1,F.reverseField=(B=N==null?void 0:N.default)==null?void 0:B.reverseField,Ro(F.reverseField,"name",`f_${L.uid()}`),Ro(F.reverseField,"uiSchema.title",(Q=n.__parent)==null?void 0:Q.title));const P=Yf({schema:j(T({},N),{default:F}),record:n,parentRecord:a,compile:h,getContainer:o});_(P),v(!0)}),children:i||C("Edit")})),s.jsx(r.SchemaComponent,{schema:A,components:{ArrayTable:pe.ArrayTable},scope:j(T({getContainer:o,useUpdateCollectionField:Qf,useCancelAction:r.useCancelAction,showReverseFieldConfig:!1,collections:x,isDialect:f,scopeKeyOptions:E,disabledJSONB:!0},t),{createOnly:!1,createMainOnly:!1})})]})})},Xf=$.observer(e=>{const{value:t,handleFieldChange:o,onChange:n}=e,a=r.useRecord(),i=a;return i!=null&&i.possibleTypes?s.jsx(S.Select,{"aria-label":`field-type-${t}`,role:"button",defaultValue:t,popupMatchSelectWidth:!1,style:{width:"100%"},options:(i==null?void 0:i.possibleTypes.map(c=>({label:c,value:c})))||[],onChange:c=>{n==null||n(c),o(j(T({},i),{type:c}),a.name)}}):s.jsx(S.Tag,{children:t})},{displayName:"FieldType"}),Rf=()=>{const{t:e}=V.useTranslation(),{unsupportedFields:t}=r.useRecord(),o=[{title:e("Field name"),dataIndex:"name",key:"name"},{title:e("Field database type",{ns:K}),dataIndex:"rawType",key:"rawType"}];return(t==null?void 0:t.length)>0&&s.jsxs(s.Fragment,{children:[s.jsx(S.Divider,{plain:!0,orientation:"left",orientationMargin:"0",children:s.jsx("h3",{children:e("Unknown field type",{ns:K})})}),s.jsx("div",{style:{marginBottom:"15px"},children:e("The following field types are not compatible and do not support output and display",{ns:K})}),s.jsx(S.Table,{columns:o,dataSource:t,pagination:!1})]})},$t=d.createContext({refreshRM:()=>{},titleField:null,targetCollection:null});$t.displayName="RemoteCollectionContext";const Tt=()=>d.useContext($t),en=()=>{const e=$.useField(),t=d.useMemo(()=>ue.createForm(),[]),o=r.useAttach(t.createArrayField(j(T({},e.props),{basePath:""}))),{t:n}=V.useTranslation(),{name:a}=W.useParams(),i=r.useAPIClient(),c=r.useCompile(),l=d.useContext(r.ResourceActionContext),u=r.useResourceContext(),{targetKey:p}=u||{},m=r.useRecord(),{[p]:g,titleField:v,name:A}=m,[_,b]=d.useState(v),C=M=>{const w=d.useContext(r.ResourceActionContext),N=$.useField();return d.useEffect(()=>{w.loading||(M==null||M.onSuccess(w.data),N.componentProps.dragSort=!!w.dragSort)},[w.loading]),w},h={association:{sourceKey:"name",targetKey:"name"},dragSort:!1,collection:Vn,request:{url:`dataSourcesCollections/${a}.${A}/fields:list`,params:{paginate:!1,filter:{$or:[{"interface.$not":null},{"options.source.$notEmpty":!0}]},sort:["sort"]}}},y=r.useDataSourceManager(),f=(M,w)=>D(this,null,function*(){yield i.request({url:`dataSourcesCollections/${a}.${A}/fields:update?filterByTk=${w}`,method:"post",data:M}),y.getDataSource(a).reload(),S.message.success(n("Saved successfully"))}),x=()=>({filterByTk:g,titleField:_,dataSourceKey:a,setTitleField:b}),E=(M,w,N)=>D(this,null,function*(){var Q,H;const{targetScope:F}=w,P=((Q=M.props)==null?void 0:Q.name)==="inherits",{data:k}=yield i.request({url:`dataSources/${a}/collections:list`,params:{paginate:!1,appends:["fields"],sort:["sort"]}});return((H=k==null?void 0:k.data)==null?void 0:H.filter(I=>{var re;if(N!=null&&N.includes(I.template)||I.autoCreate&&I.isThrough||P&&I.template==="view")return!1;const G=!(F!=null&&F.template)||F.template.includes(I.template),oe=!(F!=null&&F[(re=M.props)==null?void 0:re.name])||F[M.props.name].includes(I.name);return G&&oe})).map(I=>({label:c(I.title||I.name),value:I.name}))});return s.jsxs($t.Provider,{value:{refreshRM:()=>{l.refresh()},titleField:_,targetCollection:m},children:[s.jsx(r.ResourceActionProvider,j(T({},h),{children:s.jsx($.FormContext.Provider,{value:t,children:s.jsx($.FieldContext.Provider,{value:o,children:s.jsx(r.SchemaComponentOptions,{components:{TitleField:qn,CollectionFieldInterfaceSelect:Gn,AddCollectionField:Zn,SourceCollection:Hn,TargetKey:Un,SourceKey:zn,FieldTitleInput:Xn,EditCollectionField:Zf,Select:r.Select,FieldType:Xf,ForeignKey:qt,ThroughCollection:Wn},inherit:!0,scope:{useDataSource:C,useTitleFieldProps:x,handleFieldChange:f,useDestroyActionAndRefreshCM:or,useBulkDestroyActionAndRefreshCM:tr,loadCollections:E},children:s.jsx($.RecursionField,{schema:Ln,onlyRenderProperties:!0})})})})})),s.jsx(Rf,{})]})},ey=(e,t,o,n)=>{if(!e)return;const a=ne(e.configurableProperties)||{title:{"x-component":"CollectionField","x-decorator":"FormItem"},name:{"x-component":"CollectionField","x-decorator":"FormItem"}};return e.hasDefaultValue===!0&&(a.defaultValue=ne(e.default.uiSchema),a.defaultValue.title=o('{{ t("Default value") }}'),a.defaultValue["x-decorator"]="FormItem"),{type:"object",properties:{[L.uid()]:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{useValues:"{{ useValuesFromRecord }}"},title:'{{ t("Edit collection") }}',properties:j(T({},Le(a,"category","inherits","moreOptions")),{filterTargetKey:{title:`{{ t("Filter target key",{ ns: "${K}" }) }}`,type:"single",description:r.tval("Filter data based on the specific field, with the requirement that the field value must be unique.",{ns:K}),"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 }}"}}}}})}}}},ty=e=>{const t=r.useRecord(),o=r.useRequest(()=>{var a;return Promise.resolve({data:j(T({},Le(ne(t),["__parent","__collectionName"])),{category:(a=t==null?void 0:t.category)==null?void 0:a.map(i=>i.id)})})},j(T({},e),{manual:!0})),n=r.useActionContext();return d.useEffect(()=>{n.visible&&o.run()},[n.visible]),o},oy=e=>{const{refreshCM:t}=r.useCollectionManager_deprecated(),o=$.useForm(),n=r.useActionContext(),{name:a}=W.useParams(),{refresh:i}=r.useResourceActionContext(),{resource:c,targetKey:l}=r.useResourceContext(),{[l]:u}=r.useRecord(),p=r.useAPIClient(),m=r.useDataSourceManager();return{run(){return D(this,null,function*(){yield o.submit(),yield p.request({url:`dataSources/${a}/collections:update?filterByTk=${u}`,method:"post",data:T({},Le(o.values,["fields","autoGenId","createdAt","updatedAt","createdBy","updatedBy","sortable"]))}),yield m.getDataSource(a).reload(),n.setVisible(!1),yield o.reset(),i(),yield t()})}}},ny=e=>{const t=r.useRecord();return s.jsx(ry,T({item:t},e))},ry=e=>{var b;const _=e,{scope:t,getContainer:o,item:n,children:a}=_,i=et(_,["scope","getContainer","item","children"]),{getTemplate:c}=r.useCollectionManager_deprecated(),[l,u]=d.useState(!1),[p,m]=d.useState({}),{t:g}=V.useTranslation(),v=r.useCompile(),A=(b=n.fields)==null?void 0:b.map(C=>{var h;return{label:(h=C.uiSchema)!=null&&h.title?v(C.uiSchema.title):C.name,value:C.name}});return s.jsx(r.RecordProvider,{record:n,children:s.jsxs(r.ActionContextProvider,{value:{visible:l,setVisible:u},children:[s.jsx("a",j(T({},i),{onClick:()=>D(this,null,function*(){const C=c(n.template),h=ey(T({},C),n,v);m(h),u(!0)}),children:a||g("Edit")})),s.jsx(r.SchemaComponent,{schema:p,components:{ArrayTable:pe.ArrayTable},scope:T({getContainer:o,useValuesFromRecord:ty,useUpdateCollectionActionAndRefreshCM:oy,useCancelAction:r.useCancelAction,createOnly:!1,filterTargetKeyOptions:A,isView:n.view},t)})]})})},ay=(e,t)=>(o,n)=>{o.loading=!0,e(o,n,t).then(tt.action.bound(a=>{o.dataSource=a,o.loading=!1})).catch(a=>console.log(a))},sy=()=>{const[e,t]=d.useState([]);return[e,t]},iy=()=>{const e=r.useRecord(),t=$.useForm();return{run(){return D(this,null,function*(){var a,i,c;const n=(c=(i=(a=t.values)==null?void 0:a.children)==null?void 0:i.slice)==null?void 0:c.call(i);t.setValuesIn("children",n.filter(l=>l.name!==e.name))})}}},cy=()=>({run(){return D(this,null,function*(){})}}),ly=e=>`${e||""}${L.uid()}`,uy=()=>{const{t:e}=V.useTranslation(),{interfaces:t}=r.useCollectionManager_deprecated(),{data:{database:o}}=r.useCurrentAppInfo(),n=r.useDataSourceManager(),a=d.useContext(r.SchemaComponentContext),{name:i}=W.useParams(),c=d.useContext(r.CollectionCategroriesContext),l=r.useAPIClient(),u=l.resource("dbViews"),p=r.useCompile(),m=()=>D(this,null,function*(){return c.data.map(b=>({label:p(b.name),value:b.id}))}),g=()=>D(this,null,function*(){return u.list().then(({data:b})=>{var C;return(C=b==null?void 0:b.data)==null?void 0:C.map(h=>{const y=h.schema;return{label:y?`${y}.${p(h.name)}`:h.name,value:y?`${y}_${h.name}`:h.name}})})}),v=()=>D(this,null,function*(){return l.resource("storages").list().then(({data:b})=>{var C;return(C=b==null?void 0:b.data)==null?void 0:C.map(h=>({label:e(p(h.title)),value:h.name}))})}),A=()=>{const b=d.useContext(r.ResourceActionContext),C=r.useAPIClient(),h=$.useField(),{name:y}=W.useParams();h.data=h.data||{};const{setDataSource:f,dataSource:x}=d.useContext(Pe);return{onClick(){return D(this,null,function*(){var M,w,N;h.data.loading=!0;try{const{data:F}=yield C.request({url:`dataSources:refresh?filterByTk=${y}&clientStatus=${(x==null?void 0:x.status)||"loaded"}`,method:"post"});h.data.loading=!1,f(F==null?void 0:F.data),((M=F==null?void 0:F.data)==null?void 0:M.status)==="reloading"?S.message.warning(e("Data source synchronization in progress")):((w=F==null?void 0:F.data)==null?void 0:w.status)==="loaded"&&(S.message.success(e("Data source synchronization successful")),(N=b==null?void 0:b.refresh)==null||N.call(b)),yield n.getDataSource(y).reload()}catch(F){h.data.loading=!1}})}}},_=d.useMemo(()=>Bn(i),[i]);return s.jsx(r.SchemaComponentContext.Provider,{value:j(T({},a),{designable:!1}),children:s.jsx(r.SchemaComponent,{schema:_,components:{EditCollection:ny,AddSubFieldAction:r.AddSubFieldAction,EditSubFieldAction:r.EditSubFieldAction,FieldSummary:r.FieldSummary,TemplateSummay:r.TemplateSummary,CollectionFields:en},scope:{useRefreshActionProps:A,useDestroySubField:iy,useBulkDestroySubField:cy,useSelectedRowKeys:sy,useAsyncDataSource:ay,loadCategories:m,loadDBViews:g,loadStorages:v,useNewId:ly,useCancelAction:r.useCancelAction,interfaces:t,enableInherits:(o==null?void 0:o.dialect)==="postgres",isPG:(o==null?void 0:o.dialect)==="postgres"}})})};var tn={exports:{}};/*!
|
|
2
2
|
Copyright (c) 2018 Jed Watson.
|
|
3
3
|
Licensed under the MIT License (MIT), see
|
|
4
4
|
http://jedwatson.github.io/classnames
|
|
5
|
-
*/(function(e){(function(){var t={}.hasOwnProperty;function o(){for(var
|
|
5
|
+
*/(function(e){(function(){var t={}.hasOwnProperty;function o(){for(var n=[],a=0;a<arguments.length;a++){var i=arguments[a];if(i){var c=typeof i;if(c==="string"||c==="number")n.push(i);else if(Array.isArray(i)){if(i.length){var l=o.apply(null,i);l&&n.push(l)}}else if(c==="object"){if(i.toString!==Object.prototype.toString&&!i.toString.toString().includes("[native code]")){n.push(i.toString());continue}for(var u in i)t.call(i,u)&&i[u]&&n.push(u)}}}return n.join(" ")}e.exports?(o.default=o,e.exports=o):window.classNames=o})()})(tn);var py=tn.exports;const on=be(py);var dy=function(e,t){var o;if("ConfigContext"in S.ConfigProvider){var n=d.useContext(S.ConfigProvider.ConfigContext).getPrefixCls;return n(e,t==null?void 0:t.prefixCls)}else{var a=(o=t==null?void 0:t.prefixCls)!==null&&o!==void 0?o:"ant-";return"".concat(a).concat(e!=null?e:"")}};const my=e=>{const t=dy("description-input",e),{data:{name:o,tableName:n}}=r.useCollectionRecord();return s.jsx("div",{className:on(t,e.className),style:e.style,children:o!==n?s.jsxs(s.Fragment,{children:[o," ",s.jsxs("span",{style:{color:"GrayText"},children:["(",n,")"]})]}):e.value})},fy=Object.assign($.connect(S.Input,$.mapProps((e,t)=>j(T({},e),{suffix:s.jsx("span",{children:t!=null&&t.loading||t!=null&&t.validating?s.jsx(ee.LoadingOutlined,{}):e.suffix})})),$.mapReadPretty(my))),yy=({item:e})=>{const{t}=V.useTranslation(),o=r.useCompile();return s.jsxs(S.Space,{children:[s.jsx(S.Badge,{color:e.color}),t(o(e.name))]})},gy=$.observer(e=>{const[t,o]=d.useState(null),{refresh:n}=d.useContext(r.CollectionCategroriesContext),{refresh:a}=r.useResourceActionContext(),i=r.useAPIClient(),c=m=>D(this,null,function*(){const{active:g,over:v}=m;setTimeout(()=>{o(null)}),v&&v.id!==g.id&&(yield i.resource("collectionCategories").move({sourceId:g.id,targetId:v.id}),yield n(),yield a())});function l(m){var g;o((g=m.active)==null?void 0:g.data.current)}const u=R.useSensor(R.MouseSensor,{activationConstraint:{distance:10}}),p=R.useSensors(u);return s.jsxs(R.DndContext,{sensors:p,onDragEnd:c,onDragStart:l,children:[e.children,s.jsx(R.DragOverlay,{children:t?s.jsx("span",{style:{whiteSpace:"nowrap"},children:s.jsx(yy,{item:t})}):null})]})},{displayName:"DndProvider"}),vy=()=>{const{t:e}=V.useTranslation(),{data:t}=d.useContext(r.CollectionCategroriesContext),o=r.useCompile();if(!t)return null;const n=t.sort((i,c)=>c.sort-i.sort).concat().map(i=>j(T({},i),{schema:ot}));!n.find(i=>i.id==="all")&&n.unshift({name:'{{t("All collections")}}',id:"all",sort:0,closable:!1,schema:ot});const a=()=>D(this,null,function*(){return t.map(i=>({label:e(o(i.name)),value:i.id}))});return s.jsx(gy,{children:s.jsx(S.Card,{bordered:!1,children:s.jsx(r.SchemaComponentOptions,{components:{CollectionFields:en,CollectionName:fy},inherit:!0,scope:{loadCategories:a},children:s.jsx($.RecursionField,{schema:ot,onlyRenderProperties:!0})})})})},hy={type:"object",properties:{[L.uid()]:{"x-component":"ConfigurationTable"}}},Cy=()=>s.jsx(r.SchemaComponent,{schema:hy,components:{CollectionCategroriesProvider:r.CollectionCategroriesProvider,ConfigurationTable:uy,ConfigurationTabs:vy,AddFieldAction:r.AddFieldAction,AddCollectionField:r.AddCollectionField,AddCollection:r.AddCollection,AddCollectionAction:r.AddCollectionAction,EditCollection:r.EditCollection,EditCollectionAction:r.EditCollectionAction,DeleteCollection:r.DeleteCollection,DeleteCollectionAction:r.DeleteCollectionAction,EditFieldAction:r.EditFieldAction,EditCollectionField:r.EditCollectionField,OverridingCollectionField:r.OverridingCollectionField,OverridingFieldAction:r.OverridingFieldAction,ViewCollectionField:r.ViewCollectionField,ViewFieldAction:r.ViewFieldAction,SyncFieldsAction:r.SyncFieldsAction,SyncFieldsActionCom:r.SyncFieldsActionCom,SyncSQLFieldsAction:r.SyncSQLFieldsAction}}),by=()=>{const[e,t]=d.useState({}),o=r.usePlugin(_e),n=r.useCompile(),[a,i]=d.useState(!1),{t:c}=V.useTranslation(),[l,u]=d.useState(null),p=r.useAPIClient(),m=g=>{const v=[...o.types.keys()].map(A=>{const _=o.types.get(A);return{value:_.name,label:n(_.label)}});g.dataSource=v};return s.jsx("div",{children:s.jsxs(r.ActionContext.Provider,{value:{visible:a,setVisible:i},children:[s.jsx(S.Dropdown,{menu:{onClick(g){if(g.key==="__empty__")return;const v=o.types.get(g.key);u(g.key),i(!0),t({type:"object",properties:{[L.uid()]:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{initialValue:{type:g.key}},title:n("{{t('Add new')}}")+" - "+n(v.label),properties:{body:{type:"void","x-component":v.DataSourceSettingsForm},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{testConnectiion:{title:`{{ t("Test Connection",{ ns: "${K}" }) }}`,"x-component":"Action","x-component-props":{useAction:"{{ useTestConnectionAction }}"}},cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ cm.useCreateAction }}",actionCallback:"{{ dataSourceCreateCallback }}"}}}}}}}})},items:[o.types.size?null:{key:"__empty__",label:s.jsx(S.Empty,{image:S.Empty.PRESENTED_IMAGE_SIMPLE,description:s.jsxs(s.Fragment,{children:[c("No external data source plugin installed",{ns:K}),s.jsx("br",{})," ",s.jsx("a",{target:"_blank",href:p.auth.locale==="zh-CN"?"https://docs-cn.nocobase.com/handbook/data-source-manager":"https://docs.nocobase.com/handbook/data-source-manager",rel:"noreferrer",children:c("View documentation",{ns:K})})]})})}].filter(Boolean).concat([...o.types.keys()].map(g=>{const v=o.types.get(g);return{key:g,label:n(v==null?void 0:v.label)}}))},children:s.jsxs(S.Button,{type:"primary",icon:s.jsx(ee.PlusOutlined,{}),children:[c("Add new")," ",s.jsx(ee.DownOutlined,{})]})}),s.jsx(r.SchemaComponent,{scope:{createOnly:!1,useTestConnectionAction:jt,dialect:l,useDialectDataSource:m},schema:e})]})})},xy=()=>{const e=r.useRecord(),[t,o]=d.useState({}),n=r.usePlugin(_e),a=r.useCompile(),[i,c]=d.useState(!1),{t:l}=V.useTranslation(),u=r.useDataSourceManager(),p=()=>{const m=$.useField(),g=$.useForm(),v=r.useActionContext(),{refresh:A}=r.useResourceActionContext(),{resource:_}=r.useResourceContext(),{key:b}=r.useRecord();return{run(){return D(this,null,function*(){yield g.submit(),m.data=m.data||{},m.data.loading=!0;try{yield _.update({filterByTk:b,values:g.values}),v.setVisible(!1),u.getDataSource(b).setOptions(g.values),u.getDataSource(b).reload(),yield g.reset(),A()}catch(h){console.log(h)}finally{m.data.loading=!1}})}}};return s.jsx("div",{children:s.jsxs(r.ActionContext.Provider,{value:{visible:i,setVisible:c},children:[e.key!=="main"&&s.jsx("a",{onClick:()=>{c(!0);const m=n.types.get(e.type);o({type:"object",properties:{[L.uid()]:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{initialValue:e},title:a("{{t('Edit')}}")+" - "+a(e.displayName),properties:{body:{type:"void","x-component":m.DataSourceSettingsForm},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},testConnectiion:{title:`{{ t("Test Connection",{ ns: "${K}" }) }}`,"x-component":"Action","x-component-props":{useAction:"{{ useTestConnectionAction }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ useUpdateAction }}"}}}}}}}})},children:l("Edit")}),s.jsx(r.SchemaComponent,{scope:{createOnly:!0,useUpdateAction:p},schema:t})]})})},Sy=e=>`/admin/settings/data-source-manager/${e}/collections`,Ay=()=>{const e=r.useRecord(),t=W.useNavigate(),{t:o}=V.useTranslation();return s.jsx("div",{className:e.enabled?void 0:ae.css`
|
|
6
6
|
.ant-btn-link {
|
|
7
7
|
&:hover {
|
|
8
8
|
color: rgba(0, 0, 0, 0.25) !important;
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
|
-
`,children:
|
|
11
|
+
`,children:s.jsx(S.Button,{type:"link",style:{padding:"0px"},disabled:!e.enabled,onClick:()=>{t(Sy(e.key))},role:"button","aria-label":`${e==null?void 0:e.key}-Configure`,children:o("Configure")})})},$y=()=>{const{t:e}=V.useTranslation(),t=r.usePlugin(_e),o=[...t.types.keys()].map(m=>{const g=t.types.get(m);return{value:m,label:e(g==null?void 0:g.label)}}).concat([{value:"main",label:e("Main")}]),n=r.useDataSourceManager(),a=d.useRef([]);d.useEffect(()=>()=>{n.getDataSources().forEach(m=>{a.current.includes(m.key)&&m.reload()})},[a]);const i=d.useCallback(m=>{n.removeDataSources(m)},[n]),c=d.useCallback(m=>{n.addDataSource(kt,m),a.current=[...a.current,m.key]},[]),l=()=>{const m=r.useResourceActionContext();return{onClick(){return D(this,null,function*(){var A,_;const v=(A=m==null?void 0:m.data)==null?void 0:A.data.filter(b=>b.status!=="loaded");if(v!=null&&v.length){const b=n.getDataSources(),C=v.map(y=>y.key),h=b.filter(y=>C.includes(y.key));yield Promise.all(h.map(y=>y.reload()))}(_=m==null?void 0:m.refresh)==null||_.call(m)})}}},u=()=>{const{refresh:m}=r.useResourceActionContext(),{resource:g}=r.useResourceContext(),{key:v}=r.useRecord();return{run(){return D(this,null,function*(){yield g.destroy({filterByTk:v}),i([v]),m()})}}},p=m=>{const{key:g}=r.useRecord();m.visible=g!=="main"};return s.jsx(S.Card,{bordered:!1,children:s.jsx(r.SchemaComponent,{components:{CreateDatabaseConnectAction:by,EditDatabaseConnectionAction:xy,ViewDatabaseConnectionAction:Ay},scope:{useNewId:m=>`${m}${L.uid()}`,types:o,useRefreshActionProps:l,useDestroyAction:u,dataSourceDeleteCallback:i,dataSourceCreateCallback:c,useIsAbleDelete:p},schema:Kn})})},Ty={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"}}]},nn={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"}}}}}},Fy=ae.css`
|
|
12
12
|
.ant-table {
|
|
13
13
|
margin-left: -16px !important;
|
|
14
14
|
}
|
|
@@ -33,30 +33,30 @@
|
|
|
33
33
|
min-width: 50px;
|
|
34
34
|
flex: 0;
|
|
35
35
|
}
|
|
36
|
-
`,
|
|
36
|
+
`,rn="Default title for each record",_y=e=>{const t=r.useCompile(),{getInterface:o}=r.useCollectionManager_deprecated(),{t:n}=V.useTranslation(),{setState:a}=r.useResourceActionContext(),{resource:i,targetKey:c}=e.collectionResource||{},l=r.useRecord(),[u,p]=d.useState(null),{refreshCM:m,isTitleField:g,getTemplate:v}=r.useCollectionManager_deprecated(),{[c]:A,titleField:_,template:b}=l,C=v(b),h=[{dataIndex:["uiSchema","rawTitle"],title:n("Field display name"),render:y=>s.jsx("div",{style:{marginLeft:7},children:t(y)})},{dataIndex:"name",title:n("Field name")},{dataIndex:"interface",title:n("Field interface"),render:y=>{var f;return s.jsx(S.Tag,{children:t((f=o(y))==null?void 0:f.title)})}},{dataIndex:"titleField",title:n("Title field"),render:function(f,x){const E=M=>{p(x),i.update({filterByTk:A,values:{titleField:M?x.name:"id"}}).then(()=>D(this,null,function*(){yield e.refreshAsync(),p(null),m()})).catch(w=>{p(null),console.error(w)})};return g(x)?s.jsx(S.Tooltip,{title:n(rn),placement:"right",overlayInnerStyle:{textAlign:"center"},children:s.jsx(S.Switch,{"aria-label":`switch-title-field-${x.name}`,size:"small",loading:x.name===(u==null?void 0:u.name),checked:x.name===(_||"id"),onChange:E})}):null}},{dataIndex:"description",title:n("Descriptio "),render:y=>s.jsx(r.Input.ReadPretty,{value:y,ellipsis:!0})},{dataIndex:"actions",title:n("Actions"),render:(y,f)=>{const x={confirm:{title:n("Delete record"),content:n("Are you sure you want to delete it?")},useAction:r.useDestroyActionAndRefreshCM,disabled:r.isDeleteButtonDisabled(f)||(C==null?void 0:C.forbidDeletion),title:n("Delete")};return s.jsx(r.RecordProvider,{record:f,parent:l,children:s.jsxs(S.Space,{children:[s.jsx(r.EditCollectionField,{role:"button","aria-label":`edit-button-${f.name}`,type:"primary"}),s.jsx(r.Action.Link,T({},x))]})})}}];return s.jsx(S.Table,{rowKey:"name",columns:h,showHeader:!1,pagination:!1,dataSource:e.fields,rowSelection:{type:"checkbox",getCheckboxProps(y){return{"aria-label":`checkbox-${y.name}`}},onChange:y=>{a(f=>j(T({},f),{selectedRowKeys:y}))}},className:Fy})},Py=e=>{const t=r.useCompile(),{getInterface:o}=r.useCollectionManager_deprecated(),{resource:n,targetKey:a}=e.collectionResource||{},i=r.useRecord(),[c,l]=d.useState(null),{t:u}=V.useTranslation(),{refreshCM:p,isTitleField:m}=r.useCollectionManager_deprecated(),{[a]:g,titleField:v,name:A}=i,_=[{dataIndex:["uiSchema","rawTitle"],title:u("Field display name"),render:b=>s.jsx("div",{style:{marginLeft:1},children:t(b)})},{dataIndex:"name",title:u("Field name")},{dataIndex:"interface",title:u("Field interface"),render:b=>{var C;return s.jsx(S.Tag,{children:t((C=o(b))==null?void 0:C.title)})}},{dataIndex:"titleField",title:u("Title field"),render(b,C){const h=y=>{l(C),n.update({filterByTk:g,values:{titleField:y?C.name:"id"}}).then(()=>D(this,null,function*(){yield e.refreshAsync(),l(null),p()})).catch(f=>{l(null),console.error(f)})};return m(C)?s.jsx(S.Tooltip,{title:u(rn),placement:"right",overlayInnerStyle:{textAlign:"center"},children:s.jsx(S.Switch,{size:"small",loading:C.name===(c==null?void 0:c.name),checked:C.name===(v||"id"),onChange:h})}):null}},{dataIndex:"actions",title:u("Actions"),render:function(C,h){const y={type:"primary",currentCollection:A},f={type:"primary"};return s.jsx(r.RecordProvider,{record:h,parent:i,children:s.jsxs(S.Space,{children:[s.jsx(r.OverridingCollectionField,T({},y)),s.jsx(r.ViewCollectionField,T({},f))]})})}}];return s.jsx(S.Table,{rowKey:"name",columns:_,showHeader:!1,pagination:!1,dataSource:e.fields.filter(b=>b.interface)})},an=()=>{const e=r.useCompile(),t=$.useField(),{name:o,template:n}=r.useRecord(),{data:{database:a}}=r.useCurrentAppInfo(),{getInterface:i,getInheritCollections:c,getCollection:l,getCurrentCollectionFields:u,getTemplate:p}=r.useCollectionManager_deprecated(),m=d.useMemo(()=>ue.createForm(),[]),g=r.useAttach(m.createArrayField(j(T({},t.props),{basePath:""}))),{t:v}=V.useTranslation(),A=r.useResourceContext(),{refreshAsync:_}=d.useContext(r.ResourceActionContext),b=p(n),C=c(o),h=[{dataIndex:"title",title:v("Field display name"),render:F=>s.jsx("div",{className:ae.css`
|
|
37
37
|
font-weight: 500;
|
|
38
|
-
`,children:F})},{dataIndex:"name",title:
|
|
38
|
+
`,children:F})},{dataIndex:"name",title:v("Field name")},{dataIndex:"interface",title:v("Field interface")},{dataIndex:"titleField",title:v("Title field")},{dataIndex:"description",title:v("Description")},{dataIndex:"actions",title:v("Actions")}],y=u(o),f={pf:[],association:[],general:[],system:[]};y.forEach(F=>{if(F.primaryKey||F.isForeignKey)f.pf.push(F);else if(F.interface){const P=i(F.interface);(P==null?void 0:P.group)==="systemInfo"?f.system.push(F):(P==null?void 0:P.group)==="relation"?f.association.push(F):f.general.push(F)}});const x=[{key:"pf",title:v("PK & FK fields"),fields:f.pf},{key:"association",title:v("Association fields"),fields:f.association},{key:"general",title:v("General fields"),fields:f.general},{key:"system",title:v("System fields"),fields:f.system}];x.push(...C.map(F=>{const P=l(F);if(P)return{key:F,title:`${v("Inherited fields")} - `+e(P==null?void 0:P.title),inherit:!0,fields:(P==null?void 0:P.fields)||[]}}).filter(Boolean));const E={association:{sourceKey:"name",targetKey:"name"},collection:Ty,request:{resource:"collections.fields",action:"list",params:{paginate:!1,filter:{$or:[{"interface.$not":null},{"options.source.$notEmpty":!0}]},sort:["sort"]}}},M=d.useMemo(()=>({useAction:r.useBulkDestroyActionAndRefreshCM,title:v("Delete"),icon:"DeleteOutlined",disabled:b==null?void 0:b.forbidDeletion,confirm:{title:v("Delete record"),content:v("Are you sure you want to delete it?")}}),[v]),w={type:"primary",database:a},N={type:"primary"};return s.jsx(r.ResourceActionProvider,j(T({},E),{children:s.jsx($.FormContext.Provider,{value:m,children:s.jsxs($.FieldContext.Provider,{value:g,children:[s.jsxs(S.Space,{align:"end",className:ae.css`
|
|
39
39
|
justify-content: flex-end;
|
|
40
40
|
display: flex;
|
|
41
41
|
margin-bottom: 16px;
|
|
42
|
-
`,children:[
|
|
42
|
+
`,children:[s.jsx(r.Action,T({},M)),s.jsx(r.SyncFieldsAction,T({},N)),s.jsx(r.SyncSQLFieldsAction,{refreshCMList:_}),s.jsx(r.SchemaComponent,{schema:{type:"object",properties:T({},b.configureActions)}}),s.jsx(r.AddCollectionField,T({},w))]}),s.jsx(S.Table,{rowKey:"key",columns:h,dataSource:x.filter(F=>F.fields.length),pagination:!1,className:wy,expandable:{defaultExpandAllRows:!0,defaultExpandedRowKeys:x.map(F=>F.key),expandedRowRender:F=>F.inherit?s.jsx(Py,{fields:F.fields,collectionResource:A,refreshAsync:_}):s.jsx(_y,{fields:F.fields,collectionResource:A,refreshAsync:_})}})]})})}))},sn=e=>$.Schema.compile(e,{t:r.i18n.t}),Dy={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"}}}}},cn={type:"object",properties:{[L.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"}}}},[L.uid()]:{type:"void","x-uid":"input","x-component":"Table.Void","x-component-props":{rowKey:"name",rowSelection:{type:"checkbox"},useDataSource:"{{ cm.useDataSourceFromRAC }}",useAction(){const e=r.useAPIClient(),{t}=V.useTranslation();return{move(n,a){return D(this,null,function*(){yield e.resource("collections").move({sourceId:n.key,targetId:a.key}),S.message.success(t("Saved successfully"),.2)})}}}},properties:{column1:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{title:{"x-component":"CollectionField","x-read-pretty":!0}}},column2:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{name:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},column3:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",title:'{{t("Collection template")}}',properties:{template:{"x-component":r.CollectionTemplateTag,"x-read-pretty":!0}}},column4:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column","x-visible":"categoryVisible",title:'{{t("Collection category")}}',properties:{category:{"x-component":r.CollectionCategory,"x-read-pretty":!0}}},column5:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{description:{"x-component":"CollectionField","x-read-pretty":!0,"x-component-props":{ellipsis:!0}}}},column6:{type:"void",title:'{{ t("Actions") }}',"x-component":"Table.Column",properties:{actions:{type:"void","x-component":"Space","x-component-props":{split:"|"},properties:{view:{type:"void",title:'{{ t("Configure fields") }}',"x-component":"Action.Link","x-component-props":{},properties:{drawer:{type:"void","x-component":"Action.Drawer","x-component-props":{destroyOnClose:!0,width:"70%"},"x-reactions":e=>{const t=e.path.segments[1],o=e.path.segments[0],n=e.form.getValuesIn(`${o}.${t}`);n&&(e.title=`${sn(n.title)} - ${sn('{{ t("Configure fields") }}')}`)},properties:{collectionFieldSchema:{type:"void","x-component":"CollectionFields"}}}}},update:{type:"void",title:'{{ t("Edit") }}',"x-component":"EditCollection","x-component-props":{role:"button","aria-label":'{{ "edit-button-" + $record.name }}',type:"primary"}},delete:{type:"void",title:'{{ t("Delete") }}',"x-component":"DeleteCollection","x-component-props":{role:"button","aria-label":'{{ "delete-button-" + $record.name }}',type:"primary",className:"nb-action-link"}}}}}}}}}},Iy={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"}}}}}}}}},Oy={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"}}}}}}}}},Ey=(e,t)=>(o,n)=>{o.loading=!0,e(o,n,t).then(tt.action.bound(a=>{o.dataSource=a,o.loading=!1})).catch(console.error)},My=()=>{const[e,t]=d.useState([]);return[e,t]},jy=()=>{const e=r.useRecord(),t=$.useForm();return{run(){return D(this,null,function*(){var a,i,c;const n=(c=(i=(a=t.values)==null?void 0:a.children)==null?void 0:i.slice)==null?void 0:c.call(i);t.setValuesIn("children",n.filter(l=>l.name!==e.name))})}}},ky=()=>({run(){return D(this,null,function*(){})}}),Ky=()=>{const e=r.useRecord(),{getCollectionFields:t}=r.useCollectionManager_deprecated();return e.__parent&&e.__parent.interface==="subTable"?d.useContext(r.DataSourceContext_deprecated).dataSource:t(e.collectionName||e.name)},Ny=e=>`${e||""}${L.uid()}`,By=()=>{const{t:e}=V.useTranslation(),{interfaces:t,getCollections:o}=r.useCollectionManager_deprecated(),{data:{database:n}}=r.useCurrentAppInfo(),a=d.useContext(r.CollectionCategroriesContext),i=r.useAPIClient(),c=i.resource("dbViews"),l=r.useCompile(),u=(A,_,b)=>D(this,null,function*(){var f;const{targetScope:C}=_,h=((f=A.props)==null?void 0:f.name)==="inherits";return o().filter(x=>{var N;if(b!=null&&b.includes(x.template)||x.autoCreate&&x.isThrough||h&&x.template==="view")return!1;const M=!(C!=null&&C.template)||C.template.includes(x.template),w=!(C!=null&&C[(N=A.props)==null?void 0:N.name])||C[A.props.name].includes(x.name);return M&&w}).map(x=>({label:l(x.title),value:x.name}))}),p=()=>D(this,null,function*(){return a.data.map(A=>({label:l(A.name),value:A.id}))}),m=()=>D(this,null,function*(){return c.list().then(({data:A})=>{var _;return(_=A==null?void 0:A.data)==null?void 0:_.map(b=>{const C=b.schema;return{label:C?`${C}.${l(b.name)}`:b.name,value:C?`${C}_${b.name}`:b.name}})})}),g=()=>D(this,null,function*(){return i.resource("storages").list().then(({data:A})=>{var _;return(_=A==null?void 0:A.data)==null?void 0:_.map(b=>({label:e(l(b.title)),value:b.name}))})}),v=d.useContext(r.SchemaComponentContext);return s.jsx(r.SchemaComponentContext.Provider,{value:j(T({},v),{designable:!1}),children:s.jsx(r.SchemaComponent,{schema:Dy,components:{AddSubFieldAction:r.AddSubFieldAction,EditSubFieldAction:r.EditSubFieldAction,FieldSummary:r.FieldSummary,TemplateSummay:r.TemplateSummary,CollectionFieldsTable:Ag,CollectionFields:an},scope:{useDestroySubField:jy,useBulkDestroySubField:ky,useSelectedRowKeys:My,useAsyncDataSource:Ey,loadCollections:u,loadCategories:p,loadDBViews:m,loadStorages:g,useCurrentFields:Ky,useNewId:Ny,useCancelAction:r.useCancelAction,interfaces:t,enableInherits:(n==null?void 0:n.dialect)==="postgres",isPG:(n==null?void 0:n.dialect)==="postgres"}})})};var ln={exports:{}},q={};/** @license React v16.13.1
|
|
43
43
|
* react-is.production.min.js
|
|
44
44
|
*
|
|
45
45
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
46
46
|
*
|
|
47
47
|
* This source code is licensed under the MIT license found in the
|
|
48
48
|
* LICENSE file in the root directory of this source tree.
|
|
49
|
-
*/var Z=typeof Symbol=="function"&&Symbol.for,Ft=Z?Symbol.for("react.element"):60103,wt=Z?Symbol.for("react.portal"):60106,qe=Z?Symbol.for("react.fragment"):60107,Ge=Z?Symbol.for("react.strict_mode"):60108,ze=Z?Symbol.for("react.profiler"):60114,Ue=Z?Symbol.for("react.provider"):60109,He=Z?Symbol.for("react.context"):60110,_t=Z?Symbol.for("react.async_mode"):60111,We=Z?Symbol.for("react.concurrent_mode"):60111,Ye=Z?Symbol.for("react.forward_ref"):60112,Qe=Z?Symbol.for("react.suspense"):60113,Vy=Z?Symbol.for("react.suspense_list"):60120,Ze=Z?Symbol.for("react.memo"):60115,Je=Z?Symbol.for("react.lazy"):60116,Ly=Z?Symbol.for("react.block"):60121,qy=Z?Symbol.for("react.fundamental"):60117,Gy=Z?Symbol.for("react.responder"):60118,zy=Z?Symbol.for("react.scope"):60119;function X(e){if(typeof e=="object"&&e!==null){var t=e.$$typeof;switch(t){case Ft:switch(e=e.type,e){case _t:case We:case qe:case ze:case Ge:case Qe:return e;default:switch(e=e&&e.$$typeof,e){case He:case Ye:case Je:case Ze:case Ue:return e;default:return t}}case wt:return t}}}function
|
|
49
|
+
*/var Z=typeof Symbol=="function"&&Symbol.for,Ft=Z?Symbol.for("react.element"):60103,wt=Z?Symbol.for("react.portal"):60106,qe=Z?Symbol.for("react.fragment"):60107,Ge=Z?Symbol.for("react.strict_mode"):60108,ze=Z?Symbol.for("react.profiler"):60114,Ue=Z?Symbol.for("react.provider"):60109,He=Z?Symbol.for("react.context"):60110,_t=Z?Symbol.for("react.async_mode"):60111,We=Z?Symbol.for("react.concurrent_mode"):60111,Ye=Z?Symbol.for("react.forward_ref"):60112,Qe=Z?Symbol.for("react.suspense"):60113,Vy=Z?Symbol.for("react.suspense_list"):60120,Ze=Z?Symbol.for("react.memo"):60115,Je=Z?Symbol.for("react.lazy"):60116,Ly=Z?Symbol.for("react.block"):60121,qy=Z?Symbol.for("react.fundamental"):60117,Gy=Z?Symbol.for("react.responder"):60118,zy=Z?Symbol.for("react.scope"):60119;function X(e){if(typeof e=="object"&&e!==null){var t=e.$$typeof;switch(t){case Ft:switch(e=e.type,e){case _t:case We:case qe:case ze:case Ge:case Qe:return e;default:switch(e=e&&e.$$typeof,e){case He:case Ye:case Je:case Ze:case Ue:return e;default:return t}}case wt:return t}}}function un(e){return X(e)===We}q.AsyncMode=_t,q.ConcurrentMode=We,q.ContextConsumer=He,q.ContextProvider=Ue,q.Element=Ft,q.ForwardRef=Ye,q.Fragment=qe,q.Lazy=Je,q.Memo=Ze,q.Portal=wt,q.Profiler=ze,q.StrictMode=Ge,q.Suspense=Qe,q.isAsyncMode=function(e){return un(e)||X(e)===_t},q.isConcurrentMode=un,q.isContextConsumer=function(e){return X(e)===He},q.isContextProvider=function(e){return X(e)===Ue},q.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===Ft},q.isForwardRef=function(e){return X(e)===Ye},q.isFragment=function(e){return X(e)===qe},q.isLazy=function(e){return X(e)===Je},q.isMemo=function(e){return X(e)===Ze},q.isPortal=function(e){return X(e)===wt},q.isProfiler=function(e){return X(e)===ze},q.isStrictMode=function(e){return X(e)===Ge},q.isSuspense=function(e){return X(e)===Qe},q.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===qe||e===We||e===ze||e===Ge||e===Qe||e===Vy||typeof e=="object"&&e!==null&&(e.$$typeof===Je||e.$$typeof===Ze||e.$$typeof===Ue||e.$$typeof===He||e.$$typeof===Ye||e.$$typeof===qy||e.$$typeof===Gy||e.$$typeof===zy||e.$$typeof===Ly)},q.typeOf=X,ln.exports=q;var Uy=ln.exports,Pt=Uy,Hy={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},Wy={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},Yy={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},pn={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},Dt={};Dt[Pt.ForwardRef]=Yy,Dt[Pt.Memo]=pn;function dn(e){return Pt.isMemo(e)?pn:Dt[e.$$typeof]||Hy}var Qy=Object.defineProperty,Zy=Object.getOwnPropertyNames,mn=Object.getOwnPropertySymbols,Jy=Object.getOwnPropertyDescriptor,Xy=Object.getPrototypeOf,fn=Object.prototype;function yn(e,t,o){if(typeof t!="string"){if(fn){var n=Xy(t);n&&n!==fn&&yn(e,n,o)}var a=Zy(t);mn&&(a=a.concat(mn(t)));for(var i=dn(e),c=dn(t),l=0;l<a.length;++l){var u=a[l];if(!Wy[u]&&!(o&&o[u])&&!(c&&c[u])&&!(i&&i[u])){var p=Jy(t,u);try{Qy(e,u,p)}catch(m){}}}}return e}var Ry=yn;const eg=be(Ry);var gn=typeof document!="undefined"?d.useLayoutEffect:d.useEffect;function tg(){try{if(typeof self!="undefined")return self}catch(e){}try{if(typeof window!="undefined")return window}catch(e){}try{if(typeof global!="undefined")return global}catch(e){}return Function("return this")()}var vn=tg(),Xe=vn.FinalizationRegistry&&new vn.FinalizationRegistry(function(e){var t;return(t=e==null?void 0:e.clean)===null||t===void 0?void 0:t.call(e)}),og=function(){function e(t,o){o===void 0&&(o=1e4),this.token={clean:t},this.expireTime=o}return e.prototype.open=function(t){var o=this;Xe?Xe.register(t,this.token,this.token):this.request=setTimeout(function(){var n,a;(a=(n=o.token)===null||n===void 0?void 0:n.clean)===null||a===void 0||a.call(n)},this.expireTime)},e.prototype.close=function(){Xe?Xe.unregister(this.token):clearTimeout(this.request)},e}(),hn=function(e){var t=!1;return Promise.resolve(0).then(function(){if(t){t=!1;return}e()}),function(){t=!0}},ng=function(e){var t=d.useRef(null);t.current=hn(e),gn(function(){t.current(),e()})},rg=function(e,t){var o=typeof Symbol=="function"&&e[Symbol.iterator];if(!o)return e;var n=o.call(e),a,i=[],c;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)i.push(a.value)}catch(l){c={error:l}}finally{try{a&&!a.done&&(o=n.return)&&o.call(n)}finally{if(c)throw c.error}}return i},It=[],$e={value:0},Ot=new Set;function ag(){var e=rg(d.useState([]),2),t=e[1],o=d.useRef(!1),n=d.useRef(!1);gn(function(){return o.current=!0,n.current&&(t([]),n.current=!1),function(){o.current=!1}},It);var a=d.useCallback(function(){t([])},It),i=d.useCallback(function(){if(!o.current){n.current=!0;return}$e.value===0?a():Ot.add(a)},It);return $e.value++,ng(function(){$e.value>0&&$e.value--,$e.value===0&&Ot.forEach(function(c){Ot.delete(c),c()})}),i}var Cn=Array.isArray,sg=function(e,t){var o=Cn(e),n=Cn(t);return o!==n?!1:o?e.length!==t.length?!1:e.every(function(a,i){return a===t[i]}):e===t},bn=function(e,t){var o=d.useRef(null),n=d.useRef(!1);d.useEffect(function(){n.current=!0;var a=e();return function(){if(n.current=!1,!sg(o.current,t)){a&&a();return}hn(function(){n.current||a&&a()})}},t),o.current=t},ig=function(e,t){var o=typeof Symbol=="function"&&e[Symbol.iterator];if(!o)return e;var n=o.call(e),a,i=[],c;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)i.push(a.value)}catch(l){c={error:l}}finally{try{a&&!a.done&&(o=n.return)&&o.call(n)}finally{if(c)throw c.error}}return i},cg=function(){function e(){}return e}();function lg(){return new cg}var ug=function(e){var t=d.useRef(null),o=d.useRef(),n=ig(d.useState(lg),1),a=n[0];return t.current||(t.current=e()),o.current||(o.current=new og(function(){t.current&&t.current.dispose()}),o.current.open(a)),bn(function(){return o.current.close(),function(){t.current&&(t.current.dispose(),t.current=null)}},[]),t.current},xn=function(e,t){var o=ag(),n=ug(function(){return new tt.Tracker(function(){typeof(t==null?void 0:t.scheduler)=="function"?t.scheduler(o):o()},t==null?void 0:t.displayName)});return n.track(e)},Te=function(){return Te=Object.assign||function(e){for(var t,o=1,n=arguments.length;o<n;o++){t=arguments[o];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},Te.apply(this,arguments)};function pg(e,t){var o=Te({forwardRef:!1},t),n=o.forwardRef?d.forwardRef(function(i,c){return xn(function(){return e(Te(Te({},i),{ref:c}))},o)}):function(i){return xn(function(){return e(i)},o)},a=d.memo(n);return eg(a,e),o.displayName&&(a.displayName=o.displayName),a}pg(function(e){var t=typeof e.children=="function"?e.children():e.children;return d.createElement(d.Fragment,{},t)});var dg=bn,mg=function(e){return dg(function(){return e.onMount(),function(){return e.onUnmount()}},[e]),e};const fg=e=>{var t;return((t=e["x-component"])==null?void 0:t.endsWith(".Column"))>-1},yg={body:{row:e=>s.jsx("tr",T({},e)),cell:e=>s.jsx("td",j(T({},e),{className:on(e.className,ae.css`
|
|
50
50
|
max-width: 300px;
|
|
51
51
|
overflow: hidden;
|
|
52
52
|
text-overflow: ellipsis;
|
|
53
53
|
white-space: nowrap;
|
|
54
|
-
`)}))}},gg=()=>{const[e,t]=
|
|
54
|
+
`)}))}},gg=()=>{const[e,t]=d.useState([]);return[e,t]},vg=(e,t)=>{const o=$.useField();return r.useRequest(()=>Promise.resolve({data:o.value}),e)},hg=[{dataIndex:"name",key:"name"}],Cg=new Map([["primaryAndForeignKey","PK & FK fields"],["relation","Association fields"],["systemInfo","System fields"],["basic","General fields"]]),bg=$.observer(e=>{const t=["primaryAndForeignKey","relation","basic","systemInfo"],o=$.useField(),n=r.useRecord(),{name:a}=n,{t:i}=V.useTranslation(),c=r.useCompile(),{getInterface:l,getInheritCollections:u,getCollection:p,getCurrentCollectionFields:m,getInheritedFields:g}=r.useCollectionManager_deprecated(),P=e,{showIndex:v=!0,useSelectedRowKeys:A=gg,useDataSource:_=vg,onChange:b}=P,C=et(P,["showIndex","useSelectedRowKeys","useDataSource","onChange"]),[h,y]=A(),[f,x]=d.useState([]),[E,M]=d.useState(h),w=u(a);_({onSuccess(k){o.value=(k==null?void 0:k.data)||[];const B=[],Q=new Map,H=(I,Y)=>{let G=Q.get(I);G||(G=[]),G.push(Y),Q.set(I,G)};o.value.forEach(I=>{const Y=l(I==null?void 0:I.interface);if(I!=null&&I.primaryKey||I.isForeignKey){H("primaryAndForeignKey",I);return}const G=Y==null?void 0:Y.group;switch(G){case"systemInfo":case"relation":H(G,I);break;default:H("basic",I)}}),w&&w.forEach(I=>{t.push(I),p(I).fields.map(G=>{G.interface&&(H(I,new Proxy(G,{})),o.value.push(new Proxy(G,{})))})}),t.forEach(I=>{var Y;if(((Y=Q.get(I))==null?void 0:Y.length)>0){const G=p(I);B.push({key:I,name:i(Cg.get(I))||i("Parent collection fields")+`(${c(G.title)})`,data:Q.get(I)})}}),M(t),x(B)}});const N=()=>{const k=$.useFieldSchema(),{exists:B,render:Q}=r.useSchemaInitializerRender(k["x-initializer"],k["x-initializer-props"]),H=k.reduceProperties((I,Y)=>{if(fg(Y))return I.concat([Y])},[]).map(I=>({title:s.jsx($.RecursionField,{name:I.name,schema:I,onlyRenderSelf:!0}),dataIndex:I.name,key:I.name,render:(Y,G)=>{const oe=J.findIndex(o.value,G);return s.jsx(r.RecordIndexProvider,{index:oe,children:s.jsx(r.RecordProvider,{record:G,parent:n,children:s.jsx($.RecursionField,{schema:I,name:oe,onlyRenderProperties:!0})})})}}));return B?H.concat({title:Q(),dataIndex:"TABLE_COLUMN_INITIALIZER",key:"TABLE_COLUMN_INITIALIZER"}):H},F=(k,B,Q,H)=>{const I=N();if(!e.loading){w.includes(k.key)&&(I.pop(),I.push({title:s.jsx($.RecursionField,{name:"column4",schema:nn,onlyRenderSelf:!0}),dataIndex:"column4",key:"column4",render:(G,oe)=>{const re=J.findIndex(o.value,oe);return s.jsx(r.RecordIndexProvider,{index:re,children:s.jsx(r.RecordProvider,{record:oe,parent:n,children:s.jsx(r.SchemaComponent,{scope:{currentCollection:a},schema:nn,name:re,onlyRenderProperties:!0})})})}}));const Y={rowSelection:e.rowSelection&&!w.includes(k.key)?T({type:"checkbox",selectedRowKeys:h,onChange(G){y(G)}},e.rowSelection):void 0};return s.jsx(S.Table,j(T(T({},C),Y),{components:yg,showHeader:!0,columns:I,dataSource:k.data,pagination:!1}))}};return s.jsx("div",{className:ae.css`
|
|
55
55
|
.ant-table {
|
|
56
56
|
overflow-x: auto;
|
|
57
57
|
overflow-y: hidden;
|
|
58
58
|
}
|
|
59
|
-
`,children:i.jsx(h.Table,{showHeader:!1,loading:e==null?void 0:e.loading,columns:hg,dataSource:b,pagination:!1,expandable:{expandedRowRender:F,expandedRowKeys:P},onExpand:(K,B)=>{let Q=[];K?Q=P.concat([B.key]):Q=P.filter(H=>H!==B.key),w(Q)}})})},{displayName:"CollectionFieldsTableArray"}),xg=()=>{var t;const e=n.useAsyncData();return[(t=e==null?void 0:e.state)==null?void 0:t.selectedRowKeys,o=>{var r;return(r=e==null?void 0:e.setState)==null?void 0:r.call(e,{selectedRowKeys:o})}]},Sg=(e,t)=>{const{request:o,dataSource:r}=t,a=n.useRequest(o(t),k($({},e),{manual:!0}));return o?(a.run(),a):Promise.resolve({data:r})},Ag=A.observer(e=>{const{rowKey:t="id",useDataSource:o=Sg,useSelectedRowKeys:r=xg}=e,a=A.useField(),s=A.useFieldSchema(),c=p.useMemo(()=>ue.createForm(),[]),l=mg(c.createArrayField(k($({},a.props),{basePath:""}))),d=o({uid:s["x-uid"],onSuccess(u){c.setValues({[s.name]:u==null?void 0:u.data})}},e);return i.jsx(n.AsyncDataProvider,{value:d,children:i.jsx(A.FormContext.Provider,{value:c,children:i.jsx(A.FieldContext.Provider,{value:l,children:i.jsx(bg,k($({},e),{rowKey:t,loading:d==null?void 0:d.loading,useSelectedRowKeys:r,pagination:!1}))})})})},{displayName:"CollectionFieldsTable"});function $g(e){const{attributes:t,listeners:o,setNodeRef:r}=R.useDraggable({id:e.id,data:e.data});return i.jsx("div",k($($({ref:r},o),t),{children:i.jsx("div",{children:e.children})}))}function Tg(e){const{isOver:t,setNodeRef:o}=R.useDroppable({id:e.id,data:e.data}),r=t?{color:"green"}:void 0;return i.jsx("div",{ref:o,style:r,children:e.children})}const Fg=A.observer(({item:e})=>i.jsx(Tg,{id:e.id.toString(),data:e,children:i.jsx("div",{children:i.jsx($g,{id:e.id.toString(),data:e,children:i.jsx(xr,{item:e})})})}),{displayName:"TabTitle"}),xr=({item:e})=>{const{t}=V.useTranslation(),o=n.useCompile();return i.jsxs(h.Space,{children:[i.jsx(h.Badge,{color:e.color}),t(o(e.name))]})},wg=A.observer(e=>{const[t,o]=p.useState(null),{refresh:r}=p.useContext(n.CollectionCategroriesContext),{refresh:a}=n.useResourceActionContext(),s=n.useAPIClient(),c=f=>O(this,null,function*(){const{active:y,over:g}=f;setTimeout(()=>{o(null)}),g&&g.id!==y.id&&(yield s.resource("collectionCategories").move({sourceId:y.id,targetId:g.id}),yield r(),yield a())});function l(f){var y;o((y=f.active)==null?void 0:y.data.current)}const d=R.useSensor(R.MouseSensor,{activationConstraint:{distance:10}}),u=R.useSensors(d);return i.jsxs(R.DndContext,{sensors:u,onDragEnd:c,onDragStart:l,children:[e.children,i.jsx(R.DragOverlay,{children:t?i.jsx("span",{style:{whiteSpace:"nowrap"},children:i.jsx(xr,{item:t})}):null})]})},{displayName:"DndProvider"}),_g=()=>{const{t:e}=V.useTranslation(),{data:t,refresh:o}=p.useContext(n.CollectionCategroriesContext),{refresh:r,run:a,defaultRequest:s,setState:c}=n.useResourceActionContext(),[l,d]=p.useState({tab:"all"}),[u,f]=p.useState(l.tab),y=n.useCompile(),g=n.useAPIClient(),{modal:S}=h.App.useApp(),D=p.useMemo(()=>{if(!t)return[];const b=t.sort((m,P)=>P.sort-m.sort).concat().map(m=>k($({},m),{schema:ir}));return!b.find(m=>m.id==="all")&&b.unshift({name:'{{t("All collections")}}',id:"all",sort:0,closable:!1,schema:ir}),b},[t]);p.useEffect(()=>{l.tab!=="all"&&C(l.tab)},[]);const C=b=>{var m;if(d({tab:b}),f(L.uid()),b!=="all"){const w={$and:[(m=s==null?void 0:s.params)==null?void 0:m.filter,{"category.id":b}]};a({filter:w}),c==null||c({category:[+b],params:[{filter:w}]})}else a(),c==null||c({category:[],params:[]})},x=b=>{S.confirm({title:y("{{t('Delete category')}}"),content:y("{{t('Are you sure you want to delete it?')}}"),onOk:()=>O(this,null,function*(){yield g.resource("collectionCategories").destroy({filter:{id:b}}),b===+l.tab&&d({tab:"all"}),yield o(),yield r()})})},v=()=>O(this,null,function*(){return t.map(b=>({label:e(y(b.name)),value:b.id}))}),I=J.memoize(b=>({items:[{key:"edit",label:i.jsx(n.SchemaComponent,{schema:{type:"void",properties:{[L.uid()]:{"x-component":"EditCategory","x-component-props":{item:b}}}}})},{key:"delete",label:y("{{t('Delete category')}}"),onClick:()=>x(b.id)}]}));return t?i.jsx(wg,{children:i.jsx(h.Tabs,{addIcon:i.jsx(n.SchemaComponent,{schema:{type:"void",properties:{addCategories:{type:"void",title:'{{ t("Add category") }}',"x-component":"AddCategory","x-component-props":{type:"primary"}}}}}),onChange:C,defaultActiveKey:l.tab||"all",type:"editable-card",destroyInactiveTabPane:!0,tabBarStyle:{marginBottom:"0px"},items:D.map(b=>({label:b.id!=="all"?i.jsx("div",{"data-no-dnd":"true",children:i.jsx(Fg,{item:b})}):y(b.name),key:String(b.id),closable:b.closable,closeIcon:i.jsx(h.Dropdown,{menu:I(b),children:i.jsx(ee.MenuOutlined,{role:"button","aria-label":y(b.name),style:{padding:8,margin:"-8px"}})}),children:i.jsx(h.Card,{bordered:!1,children:i.jsx(n.SchemaComponentOptions,{components:{CollectionFields:ar},inherit:!0,scope:{loadCategories:v,categoryVisible:b.id==="all",categoryId:b.id},children:i.jsx(A.RecursionField,{name:u,schema:b.schema,onlyRenderProperties:!0})})})}))})}):null},Pg=()=>{const e=A.useForm(),t=n.useActionContext(),{refresh:o}=p.useContext(n.CollectionCategroriesContext),r=n.useAPIClient();return{run(){return O(this,null,function*(){yield e.submit();const s=J.cloneDeep(e.values);yield r.resource("collectionCategories").create({values:$({},s)}),t.setVisible(!1),yield e.reset(),yield o()})}}},Dg=e=>i.jsx(Sr,$({},e)),Sr=e=>{const{scope:t,getContainer:o,children:r}=e,[a,s]=p.useState(!1),{t:c}=V.useTranslation();return i.jsxs(n.ActionContextProvider,{value:{visible:a,setVisible:s},children:[i.jsx("div",{onClick:()=>s(!0),title:c("Add category"),children:r||i.jsx(ee.PlusOutlined,{})}),i.jsx(n.SchemaComponent,{schema:Iy,components:{CollectionCategory:n.CollectionCategory,CollectionTemplateTag:n.CollectionTemplateTag},scope:$({getContainer:o,useCancelAction:n.useCancelAction,createOnly:!0,useCreateCategry:Pg},t)})]})},Ig=()=>{const e=A.useForm(),t=n.useActionContext(),{refresh:o}=p.useContext(n.CollectionCategroriesContext),{refresh:r}=n.useResourceActionContext(),a=n.useAPIClient(),{id:s}=n.useRecord();return{run(){return O(this,null,function*(){yield e.submit();const l=J.cloneDeep(e.values);yield a.resource("collectionCategories").update({filter:{id:s},values:$({},l)}),t.setVisible(!1),yield e.reset(),yield o(),yield r()})}}},Og=e=>{const t=n.useRecord(),o=n.useRequest(()=>Promise.resolve({data:J.cloneDeep(t)}),k($({},e),{manual:!0})),r=n.useActionContext();return p.useEffect(()=>{r.visible&&o.run()},[r.visible]),o},Eg=e=>i.jsx(Ar,$({},e)),Ar=e=>{const{scope:t,getContainer:o,item:r,children:a}=e,[s,c]=p.useState(!1),l=n.useCompile();return i.jsx(n.RecordProvider,{record:r,children:i.jsxs(n.ActionContextProvider,{value:{visible:s,setVisible:c},children:[i.jsx(i.Fragment,{children:a||i.jsx("span",{onClick:()=>c(!0),children:l('{{ t("Edit category") }}')})}),i.jsx(n.SchemaComponent,{schema:Oy,scope:$({getContainer:o,useCancelAction:n.useCancelAction,createOnly:!0,useEditCategry:Ig,useValuesFromRecord:Og},t)})]})})};ue.registerValidateFormats({uid:/^[a-zA-Z][a-zA-Z0-9_-]*$/});const Mg={type:"object",properties:{[L.uid()]:{"x-component":"ConfigurationTable"}}},jg=()=>i.jsx(n.SchemaComponent,{schema:Mg,components:{CollectionCategroriesProvider:n.CollectionCategroriesProvider,ConfigurationTable:By,ConfigurationTabs:_g,AddFieldAction:n.AddFieldAction,AddCollectionField:n.AddCollectionField,AddCollection:n.AddCollection,AddCollectionAction:n.AddCollectionAction,AddCategoryAction:Sr,AddCategory:Dg,EditCollection:n.EditCollection,EditCollectionAction:n.EditCollectionAction,DeleteCollection:n.DeleteCollection,DeleteCollectionAction:n.DeleteCollectionAction,EditFieldAction:n.EditFieldAction,EditCollectionField:n.EditCollectionField,OverridingCollectionField:n.OverridingCollectionField,OverridingFieldAction:n.OverridingFieldAction,ViewCollectionField:n.ViewCollectionField,ViewFieldAction:n.ViewFieldAction,EditCategory:Eg,EditCategoryAction:Ar,SyncFieldsAction:n.SyncFieldsAction,SyncFieldsActionCom:n.SyncFieldsActionCom,SyncSQLFieldsAction:n.SyncSQLFieldsAction}}),Fe=p.createContext(null);Fe.displayName="PermissionContext";const kg=e=>{const t=n.useAPIClient(),o=n.useRecord(),{t:r}=V.useTranslation(),a=p.useContext(we),{snippets:s}=a;s==null||s.forEach(d=>{a[d]=!0});const[c,l]=p.useState(a);return p.useEffect(()=>{l(a)},[a]),i.jsx(Fe.Provider,{value:{currentDataSource:o,currentRecord:c,update:(d,u)=>O(this,null,function*(){yield t.request({url:`dataSources/${o.key}/roles:update`,data:u.values,method:"post",params:{filterByTk:u.values.roleName}}),l($($({},c),u.values)),h.message.success(r("Saved successfully"))})},children:e.children})},Kg=e=>{const t=p.useContext(we),o=n.useRecord();return i.jsx(n.RecordContext_deprecated.Provider,{value:$({},t),children:i.jsx(n.SchemaComponentOptions,{scope:{dataSourceKey:o.key},children:e.children})})},Ng=e=>{const t=n.useRecord(),{visible:o}=n.useActionContext(),{currentDataSource:r}=p.useContext(Fe),a=n.useRequest({resource:"roles.dataSourceResources",resourceOf:t.roleName,action:"get",params:{appends:["actions","actions.scope"],filterByTk:t.name,filter:{dataSourceKey:r.key,name:t.name}}},k($({},e),{manual:!0}));return p.useEffect(()=>{if(!t.exists){e.onSuccess({data:{}});return}o&&a.run()},[o,t.exists]),a},Bg=()=>{const e=A.useForm(),t=n.useAPIClient(),o=n.useRecord(),r=n.useActionContext(),{refresh:a}=n.useResourceActionContext(),{currentDataSource:s}=p.useContext(Fe);return{run(){return O(this,null,function*(){yield t.resource("roles.dataSourceResources",o.roleName)[o.exists?"update":"create"]({filterByTk:o.name,filter:{dataSourceKey:s.key,name:o.name},values:k($({},e.values),{name:o.name,dataSourceKey:s.key})}),r.setVisible(!1),a()})}}},Vg={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:{[L.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-component-props":{icon:"FilterOutlined",useProps:"{{ cm.useFilterActionProps }}"},"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:Ng},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:Bg}}}}}}}}}}}}}}}}}},$r={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}}]},Lg={type:"object",properties:{block1:{type:"void","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:$r,resourceName:"dataSources",request:{resource:"dataSources",action:"list",params:{pageSize:50,showAnonymous:!0,appends:[]}}},"x-component":"CollectionProvider_deprecated","x-component-props":{collection:$r},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:Vg}}}}}}}}}}}}}}}}}},Et=p.createContext([]);Et.displayName="AvailableActionsContext";const qg=e=>{const{data:t,loading:o}=n.useRequest({resource:"availableActions",action:"list"});return o?i.jsx(h.Spin,{}):i.jsx(Et.Provider,{value:t==null?void 0:t.data,children:e.children})},Tr=()=>p.useContext(Et),Gg=()=>{const e=n.useRecord();return i.jsx("div",{children:i.jsx(n.SchemaComponentContext.Provider,{value:{designable:!1},children:i.jsx(qg,{children:i.jsx(n.SchemaComponent,{schema:Lg,components:{SettingCenterPermissionProvider:n.SettingCenterPermissionProvider,PermissionProvider:kg},scope:{dataSourceKey:e.key}})})})})},zg=()=>{const{update:e}=p.useContext(Fe),{t}=V.useTranslation(),{key:o}=n.useRecord();return i.jsx(n.SchemaComponent,{schema:{type:"void",name:"form","x-component":"Form","x-component-props":{useValues:r=>{const a=n.useAPIClient(),s=p.useContext(we);return n.useRequest(()=>a.resource(`dataSources/${o}/roles`).get({filterByTk:s.name}).then(c=>{var d,u;const l=(d=c==null?void 0:c.data)==null?void 0:d.data;return(u=l.snippets)==null||u.forEach(f=>{l[f]=!0}),{data:l}}),r)},effects(){ue.onFieldChange("*",(r,a)=>O(this,null,function*(){a.modified&&(yield e(r,a))}))}},properties:{"strategy.actions":{description:t("All collections use general action permissions by default; permission configured individually will override the default one."),"x-component":"StrategyActions"}}}})},Ug=e=>{var o;if(!e)return{};const t={};return(o=e==null?void 0:e.forEach)==null||o.call(e,r=>{const[a,s]=r.split(":");t[a]=s||"all"}),t},Fr=e=>{const t=[];for(const o in e)if(Object.prototype.hasOwnProperty.call(e,o)){const r=e[o];r==="all"?t.push(o):t.push(`${o}:${r}`)}return t},Hg=A.connect(e=>{const{onChange:t}=e,o=Tr(),r=n.useCompile(),{t:a}=V.useTranslation(),s=A.useField(),c=Ug(s.value);return i.jsx("div",{children:i.jsx(h.Table,{size:"small",pagination:!1,columns:[{dataIndex:"displayName",title:a("Action display name"),render:l=>r(l)},{dataIndex:"onNewRecord",title:a("Action type"),render:l=>l?i.jsx(h.Tag,{color:"green",children:a("Action on new records")}):i.jsx(h.Tag,{color:"geekblue",children:a("Action on existing records")})},{dataIndex:"enabled",title:a("Allow"),render:(l,d)=>i.jsx(h.Checkbox,{checked:l,onChange:u=>{l?delete c[d.name]:c[d.name]="all",t(Fr(c))}})},{dataIndex:"scope",title:a("Data scope"),render:(l,d)=>!d.onNewRecord&&i.jsx(h.Select,{"data-testid":"select-data-scope",popupMatchSelectWidth:!1,size:"small",value:l,options:[{label:a("All records"),value:"all"},{label:a("Own records"),value:"own"}],onChange:u=>{c[d.name]=u,t(Fr(c))}})}],dataSource:o==null?void 0:o.map(l=>{let d="all",u=!1;return c[l.name]&&(u=!0,d=c[l.name]),k($({},l),{enabled:u,scope:d})})})})}),Wg=Ir.createStyles(({css:e})=>e`
|
|
59
|
+
`,children:s.jsx(S.Table,{showHeader:!1,loading:e==null?void 0:e.loading,columns:hg,dataSource:f,pagination:!1,expandable:{expandedRowRender:F,expandedRowKeys:E},onExpand:(k,B)=>{let Q=[];k?Q=E.concat([B.key]):Q=E.filter(H=>H!==B.key),M(Q)}})})},{displayName:"CollectionFieldsTableArray"}),xg=()=>{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})}]},Sg=(e,t)=>{const{request:o,dataSource:n}=t,a=r.useRequest(o(t),j(T({},e),{manual:!0}));return o?(a.run(),a):Promise.resolve({data:n})},Ag=$.observer(e=>{const{rowKey:t="id",useDataSource:o=Sg,useSelectedRowKeys:n=xg}=e,a=$.useField(),i=$.useFieldSchema(),c=d.useMemo(()=>ue.createForm(),[]),l=mg(c.createArrayField(j(T({},a.props),{basePath:""}))),u=o({uid:i["x-uid"],onSuccess(p){c.setValues({[i.name]:p==null?void 0:p.data})}},e);return s.jsx(r.AsyncDataProvider,{value:u,children:s.jsx($.FormContext.Provider,{value:c,children:s.jsx($.FieldContext.Provider,{value:l,children:s.jsx(bg,j(T({},e),{rowKey:t,loading:u==null?void 0:u.loading,useSelectedRowKeys:n,pagination:!1}))})})})},{displayName:"CollectionFieldsTable"});function $g(e){const{attributes:t,listeners:o,setNodeRef:n}=R.useDraggable({id:e.id,data:e.data});return s.jsx("div",j(T(T({ref:n},o),t),{children:s.jsx("div",{children:e.children})}))}function Tg(e){const{isOver:t,setNodeRef:o}=R.useDroppable({id:e.id,data:e.data}),n=t?{color:"green"}:void 0;return s.jsx("div",{ref:o,style:n,children:e.children})}const Fg=$.observer(({item:e})=>s.jsx(Tg,{id:e.id.toString(),data:e,children:s.jsx("div",{children:s.jsx($g,{id:e.id.toString(),data:e,children:s.jsx(Sn,{item:e})})})}),{displayName:"TabTitle"}),Sn=({item:e})=>{const{t}=V.useTranslation(),o=r.useCompile();return s.jsxs(S.Space,{children:[s.jsx(S.Badge,{color:e.color}),t(o(e.name))]})},wg=$.observer(e=>{const[t,o]=d.useState(null),{refresh:n}=d.useContext(r.CollectionCategroriesContext),{refresh:a}=r.useResourceActionContext(),i=r.useAPIClient(),c=m=>D(this,null,function*(){const{active:g,over:v}=m;setTimeout(()=>{o(null)}),v&&v.id!==g.id&&(yield i.resource("collectionCategories").move({sourceId:g.id,targetId:v.id}),yield n(),yield a())});function l(m){var g;o((g=m.active)==null?void 0:g.data.current)}const u=R.useSensor(R.MouseSensor,{activationConstraint:{distance:10}}),p=R.useSensors(u);return s.jsxs(R.DndContext,{sensors:p,onDragEnd:c,onDragStart:l,children:[e.children,s.jsx(R.DragOverlay,{children:t?s.jsx("span",{style:{whiteSpace:"nowrap"},children:s.jsx(Sn,{item:t})}):null})]})},{displayName:"DndProvider"}),_g=()=>{const{t:e}=V.useTranslation(),{data:t,refresh:o}=d.useContext(r.CollectionCategroriesContext),{refresh:n,run:a,defaultRequest:i,setState:c}=r.useResourceActionContext(),[l,u]=d.useState({tab:"all"}),[p,m]=d.useState(l.tab),g=r.useCompile(),v=r.useAPIClient(),{modal:A}=S.App.useApp(),_=d.useMemo(()=>{if(!t)return[];const f=t.sort((x,E)=>E.sort-x.sort).concat().map(x=>j(T({},x),{schema:cn}));return!f.find(x=>x.id==="all")&&f.unshift({name:'{{t("All collections")}}',id:"all",sort:0,closable:!1,schema:cn}),f},[t]);d.useEffect(()=>{l.tab!=="all"&&b(l.tab)},[]);const b=f=>{var x;if(u({tab:f}),m(L.uid()),f!=="all"){const M={$and:[(x=i==null?void 0:i.params)==null?void 0:x.filter,{"category.id":f}]};a({filter:M}),c==null||c({category:[+f],params:[{filter:M}]})}else a(),c==null||c({category:[],params:[]})},C=f=>{A.confirm({title:g("{{t('Delete category')}}"),content:g("{{t('Are you sure you want to delete it?')}}"),onOk:()=>D(this,null,function*(){yield v.resource("collectionCategories").destroy({filter:{id:f}}),f===+l.tab&&u({tab:"all"}),yield o(),yield n()})})},h=()=>D(this,null,function*(){return t.map(f=>({label:e(g(f.name)),value:f.id}))}),y=J.memoize(f=>({items:[{key:"edit",label:s.jsx(r.SchemaComponent,{schema:{type:"void",properties:{[L.uid()]:{"x-component":"EditCategory","x-component-props":{item:f}}}}})},{key:"delete",label:g("{{t('Delete category')}}"),onClick:()=>C(f.id)}]}));return t?s.jsx(wg,{children:s.jsx(S.Tabs,{addIcon:s.jsx(r.SchemaComponent,{schema:{type:"void",properties:{addCategories:{type:"void",title:'{{ t("Add category") }}',"x-component":"AddCategory","x-component-props":{type:"primary"}}}}}),onChange:b,defaultActiveKey:l.tab||"all",type:"editable-card",destroyInactiveTabPane:!0,tabBarStyle:{marginBottom:"0px"},items:_.map(f=>({label:f.id!=="all"?s.jsx("div",{"data-no-dnd":"true",children:s.jsx(Fg,{item:f})}):g(f.name),key:String(f.id),closable:f.closable,closeIcon:s.jsx(S.Dropdown,{menu:y(f),children:s.jsx(ee.MenuOutlined,{role:"button","aria-label":g(f.name),style:{padding:8,margin:"-8px"}})}),children:s.jsx(S.Card,{bordered:!1,children:s.jsx(r.SchemaComponentOptions,{components:{CollectionFields:an},inherit:!0,scope:{loadCategories:h,categoryVisible:f.id==="all",categoryId:f.id},children:s.jsx($.RecursionField,{name:p,schema:f.schema,onlyRenderProperties:!0})})})}))})}):null},Pg=()=>{const e=$.useForm(),t=r.useActionContext(),{refresh:o}=d.useContext(r.CollectionCategroriesContext),n=r.useAPIClient();return{run(){return D(this,null,function*(){yield e.submit();const i=J.cloneDeep(e.values);yield n.resource("collectionCategories").create({values:T({},i)}),t.setVisible(!1),yield e.reset(),yield o()})}}},Dg=e=>s.jsx(An,T({},e)),An=e=>{const{scope:t,getContainer:o,children:n}=e,[a,i]=d.useState(!1),{t:c}=V.useTranslation();return s.jsxs(r.ActionContextProvider,{value:{visible:a,setVisible:i},children:[s.jsx("div",{onClick:()=>i(!0),title:c("Add category"),children:n||s.jsx(ee.PlusOutlined,{})}),s.jsx(r.SchemaComponent,{schema:Iy,components:{CollectionCategory:r.CollectionCategory,CollectionTemplateTag:r.CollectionTemplateTag},scope:T({getContainer:o,useCancelAction:r.useCancelAction,createOnly:!0,useCreateCategry:Pg},t)})]})},Ig=()=>{const e=$.useForm(),t=r.useActionContext(),{refresh:o}=d.useContext(r.CollectionCategroriesContext),{refresh:n}=r.useResourceActionContext(),a=r.useAPIClient(),{id:i}=r.useRecord();return{run(){return D(this,null,function*(){yield e.submit();const l=J.cloneDeep(e.values);yield a.resource("collectionCategories").update({filter:{id:i},values:T({},l)}),t.setVisible(!1),yield e.reset(),yield o(),yield n()})}}},Og=e=>{const t=r.useRecord(),o=r.useRequest(()=>Promise.resolve({data:J.cloneDeep(t)}),j(T({},e),{manual:!0})),n=r.useActionContext();return d.useEffect(()=>{n.visible&&o.run()},[n.visible]),o},Eg=e=>s.jsx($n,T({},e)),$n=e=>{const{scope:t,getContainer:o,item:n,children:a}=e,[i,c]=d.useState(!1),l=r.useCompile();return s.jsx(r.RecordProvider,{record:n,children:s.jsxs(r.ActionContextProvider,{value:{visible:i,setVisible:c},children:[s.jsx(s.Fragment,{children:a||s.jsx("span",{onClick:()=>c(!0),children:l('{{ t("Edit category") }}')})}),s.jsx(r.SchemaComponent,{schema:Oy,scope:T({getContainer:o,useCancelAction:r.useCancelAction,createOnly:!0,useEditCategry:Ig,useValuesFromRecord:Og},t)})]})})};ue.registerValidateFormats({uid:/^[a-zA-Z][a-zA-Z0-9_-]*$/});const Mg={type:"object",properties:{[L.uid()]:{"x-component":"ConfigurationTable"}}},jg=()=>s.jsx(r.SchemaComponent,{schema:Mg,components:{CollectionCategroriesProvider:r.CollectionCategroriesProvider,ConfigurationTable:By,ConfigurationTabs:_g,AddFieldAction:r.AddFieldAction,AddCollectionField:r.AddCollectionField,AddCollection:r.AddCollection,AddCollectionAction:r.AddCollectionAction,AddCategoryAction:An,AddCategory:Dg,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:Eg,EditCategoryAction:$n,SyncFieldsAction:r.SyncFieldsAction,SyncFieldsActionCom:r.SyncFieldsActionCom,SyncSQLFieldsAction:r.SyncSQLFieldsAction}}),Fe=d.createContext(null);Fe.displayName="PermissionContext";const kg=e=>{const t=r.useAPIClient(),o=r.useRecord(),{t:n}=V.useTranslation(),a=d.useContext(we),{snippets:i}=a;i==null||i.forEach(u=>{a[u]=!0});const[c,l]=d.useState(a);return d.useEffect(()=>{l(a)},[a]),s.jsx(Fe.Provider,{value:{currentDataSource:o,currentRecord:c,update:(u,p)=>D(this,null,function*(){yield t.request({url:`dataSources/${o.key}/roles:update`,data:p.values,method:"post",params:{filterByTk:p.values.roleName}}),l(T(T({},c),p.values)),S.message.success(n("Saved successfully"))})},children:e.children})},Kg=e=>{const t=d.useContext(we),o=r.useRecord();return s.jsx(r.RecordContext_deprecated.Provider,{value:T({},t),children:s.jsx(r.SchemaComponentOptions,{scope:{dataSourceKey:o.key},children:e.children})})},Ng=e=>{const t=r.useRecord(),{visible:o}=r.useActionContext(),{currentDataSource:n}=d.useContext(Fe),a=r.useRequest({resource:"roles.dataSourceResources",resourceOf:t.roleName,action:"get",params:{appends:["actions","actions.scope"],filterByTk:t.name,filter:{dataSourceKey:n.key,name:t.name}}},j(T({},e),{manual:!0}));return d.useEffect(()=>{if(!t.exists){e.onSuccess({data:{}});return}o&&a.run()},[o,t.exists]),a},Bg=()=>{const e=$.useForm(),t=r.useAPIClient(),o=r.useRecord(),n=r.useActionContext(),{refresh:a}=r.useResourceActionContext(),{currentDataSource:i}=d.useContext(Fe);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:j(T({},e.values),{name:o.name,dataSourceKey:i.key})}),n.setVisible(!1),a()})}}},Vg={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:{[L.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:Ng},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:Bg}}}}}}}}}}}}}}}}}},Tn={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}}]},Lg={type:"object",properties:{block1:{type:"void","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:Tn,resourceName:"dataSources",request:{resource:"dataSources",action:"list",params:{pageSize:50,showAnonymous:!0,appends:[]}}},"x-component":"CollectionProvider_deprecated","x-component-props":{collection:Tn},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:Vg}}}}}}}}}}}}}}}}}},Et=d.createContext([]);Et.displayName="AvailableActionsContext";const qg=e=>{const{data:t,loading:o}=r.useRequest({resource:"availableActions",action:"list"});return o?s.jsx(S.Spin,{}):s.jsx(Et.Provider,{value:t==null?void 0:t.data,children:e.children})},Fn=()=>d.useContext(Et),Gg=()=>{const e=r.useRecord();return s.jsx("div",{children:s.jsx(r.SchemaComponentContext.Provider,{value:{designable:!1},children:s.jsx(qg,{children:s.jsx(r.SchemaComponent,{schema:Lg,components:{SettingCenterPermissionProvider:r.SettingCenterPermissionProvider,PermissionProvider:kg},scope:{dataSourceKey:e.key}})})})})},zg=()=>{const{update:e}=d.useContext(Fe),{t}=V.useTranslation(),{key:o}=r.useRecord();return s.jsx(r.SchemaComponent,{schema:{type:"void",name:"form","x-component":"Form","x-component-props":{useValues:n=>{const a=r.useAPIClient(),i=d.useContext(we);return r.useRequest(()=>a.resource(`dataSources/${o}/roles`).get({filterByTk:i.name}).then(c=>{var u,p;const l=(u=c==null?void 0:c.data)==null?void 0:u.data;return(p=l.snippets)==null||p.forEach(m=>{l[m]=!0}),{data:l}}),n)},effects(){ue.onFieldChange("*",(n,a)=>D(this,null,function*(){a.modified&&(yield e(n,a))}))}},properties:{"strategy.actions":{description:t("All collections use general action permissions by default; permission configured individually will override the default one."),"x-component":"StrategyActions"}}}})},Ug=e=>{var o;if(!e)return{};const t={};return(o=e==null?void 0:e.forEach)==null||o.call(e,n=>{const[a,i]=n.split(":");t[a]=i||"all"}),t},wn=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},Hg=$.connect(e=>{const{onChange:t}=e,o=Fn(),n=r.useCompile(),{t:a}=V.useTranslation(),i=$.useField(),c=Ug(i.value);return s.jsx("div",{children:s.jsx(S.Table,{size:"small",pagination:!1,columns:[{dataIndex:"displayName",title:a("Action display name"),render:l=>n(l)},{dataIndex:"onNewRecord",title:a("Action type"),render:l=>l?s.jsx(S.Tag,{color:"green",children:a("Action on new records")}):s.jsx(S.Tag,{color:"geekblue",children:a("Action on existing records")})},{dataIndex:"enabled",title:a("Allow"),render:(l,u)=>s.jsx(S.Checkbox,{checked:l,onChange:p=>{l?delete c[u.name]:c[u.name]="all",t(wn(c))}})},{dataIndex:"scope",title:a("Data scope"),render:(l,u)=>!u.onNewRecord&&s.jsx(S.Select,{"data-testid":"select-data-scope",popupMatchSelectWidth:!1,size:"small",value:l,options:[{label:a("All records"),value:"all"},{label:a("Own records"),value:"own"}],onChange:p=>{c[u.name]=p,t(wn(c))}})}],dataSource:o==null?void 0:o.map(l=>{let u="all",p=!1;return c[l.name]&&(p=!0,u=c[l.name]),j(T({},l),{enabled:p,scope:u})})})})}),Wg=On.createStyles(({css:e})=>e`
|
|
60
60
|
.ant-table-cell {
|
|
61
61
|
> .ant-space-horizontal {
|
|
62
62
|
.ant-space-item-split:has(+ .ant-space-item:empty) {
|
|
@@ -64,4 +64,4 @@
|
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
|
-
`),Yg=(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}}]}),Qg=()=>{const{name:e}=p.useContext(Ce),t=n.useFormBlockContext();return p.useEffect(()=>{t.form.setInitialValues({resourceName:e})},[e]),{form:t.form}},Zg=e=>{const t=Yg(e);return{type:"object",properties:{scope:{"x-component":"RecordPicker","x-component-props":{size:"small",fieldNames:{label:"name",value:"id"},multiple:!1,association:{target:"rolesResourcesScopes"},onChange:"{{ onChange }}"},properties:{selector:{type:"void",title:'{{ t("Select record") }}',"x-component":"RecordPicker.Selector","x-component-props":{className:"nb-record-picker-selector"},properties:{tableBlock:{type:"void","x-decorator":"TableSelectorProvider","x-decorator-props":{collection:t,resource:`dataSources/${e}/rolesResourcesScopes`,action:"list",params:{pageSize:20},useParams(){return{filter:{$or:[{resourceName:p.useContext(Ce).name},{resourceName:null}]}}},rowKey:"id"},"x-component":"BlockItem",properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:16}},properties:{create:{type:"void",title:'{{ t("Add new") }}',"x-action":"create","x-component":"Action","x-component-props":{icon:"PlusOutlined",openMode:"drawer",type:"primary"},properties:{drawer:{type:"void",title:'{{ t("Add record") }}',"x-component":"Action.Container","x-component-props":{className:"nb-action-popup"},properties:{formBlock:{type:"void","x-decorator":"FormBlockProvider","x-decorator-props":{resource:`dataSources/${e}/rolesResourcesScopes`,collection:t},"x-component":"CardItem",properties:{form:{type:"void","x-component":"FormV2","x-component-props":{useProps:Qg},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-component-props":{dynamicComponent:n.VariableInput,useProps(){const o=p.useContext(Ce);return{options:n.useFilterFieldOptions(o.fields)}}}},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-component-props":{type:"primary",htmlType:"submit",useProps:"{{ useCreateActionProps }}"}}}}}}}}}}}}}},value:{type:"array","x-component":"TableV2.Selector","x-component-props":{rowKey:"id",rowSelection:{type:"checkbox"},useProps:"{{ useTableSelectorProps }}"},properties:{column1:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column",properties:{name:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},actions:{type:"void",title:'{{ t("Actions") }}',"x-action-column":"actions","x-component":"TableV2.Column",properties:{actions:{type:"void","x-decorator":"DndContext","x-component":"Space","x-component-props":{split:"|"},properties:{edit:{type:"void",title:'{{ t("Edit") }}',"x-action":"update","x-decorator":"ACLActionProvider","x-component":"Action.Link","x-component-props":{openMode:"drawer",icon:"EditOutlined"},properties:{drawer:{type:"void",title:'{{ t("Edit record") }}',"x-component":"Action.Container","x-component-props":{className:"nb-action-popup"},properties:{formBlock:{type:"void","x-decorator":"FormBlockProvider","x-decorator-props":{resource:`dataSources/${e}/rolesResourcesScopes`,collection:t,action:"get",useParams:"{{ useParamsFromRecord }}"},"x-component":"CardItem",properties:{form:{type:"void","x-component":"FormV2","x-component-props":{useProps:"{{ 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-component-props":{dynamicComponent:n.VariableInput,useProps(){const o=p.useContext(Ce);return{options:n.useFilterFieldOptions(o.fields)}}}},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-component-props":{type:"primary",htmlType:"submit",useProps:"{{ useUpdateActionProps }}"}}}}}}}}}}}},destroy:{title:'{{ t("Delete") }}',"x-action":"destroy","x-decorator":"ACLActionProvider","x-component":"Action.Link","x-component-props":{icon:"DeleteOutlined",confirm:{title:"{{t('Delete record')}}",content:"{{t('Are you sure you want to delete it?')}}"},useProps:"{{ useDestroyActionProps }}"}}}}}}}}}},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-component-props":{type:"primary",htmlType:"submit",useProps:"{{ usePickActionProps }}"}}}}}}}}}}}}},wr=p.createContext(null);wr.displayName="RolesResourcesScopesSelectedRowKeysContext";const Jg=e=>{const[t,o]=p.useState([]);return i.jsx(wr.Provider,{value:[t,o],children:e.children})},Xg=e=>{const t=p.useMemo(()=>ue.createForm({values:{scope:e.value}}),[]),{key:o}=n.useRecord(),r=Zg(o);return i.jsx(n.FormProvider,{form:t,children:i.jsx(n.SchemaComponent,{components:{RolesResourcesScopesSelectedRowKeysProvider:Jg},scope:{onChange(a){var s;(s=e==null?void 0:e.onChange)==null||s.call(e,a)}},schema:r})})},Rg=e=>{var o;const t={};return(o=e==null?void 0:e.forEach)==null||o.call(e,r=>{r.name&&(t[r.name]=r,t[r.name].scope=J.isEmpty(r.scope)?null:r.scope)}),t},Ce=p.createContext({});Ce.displayName="RoleResourceCollectionContext";const ev=A.connect(e=>{var x,v,I,b;const{styles:t}=Wg(),o=m=>{const P=m.map(w=>k($({},w),{scope:J.isEmpty(w.scope)?null:w.scope}));e.onChange(P)},r=n.useRecord(),a=Tr(),s=r.fields,c=n.useCompile(),{t:l}=V.useTranslation(),d=A.useField(),u=Rg(d.value||[]),f=(m,P)=>{var T;const w=u==null?void 0:u[m];return w?(T=w==null?void 0:w.fields)==null?void 0:T.includes(P):!1},y=a.filter(m=>m.allowConfigureFields),g=(x=s==null?void 0:s.filter(m=>m.interface))==null?void 0:x.map(m=>{const P=$({},m);for(const w of y)P[w.name]=f(w.name,m.name);return P}),S=m=>{var P,w;u[m]?delete u[m]:u[m]={name:m,fields:(w=(P=s==null?void 0:s.filter(T=>T.interface))==null?void 0:P.map)==null?void 0:w.call(P,T=>T.name)},o(Object.values(u))},D=(m,P)=>{u[m]?(u[m].scope=P,o(Object.values(u))):(S(m),u[m].scope=P,o(Object.values(u)))},C={};for(const m of y)C[m.name]=((v=s==null?void 0:s.filter(P=>P.interface))==null?void 0:v.length)===((b=(I=u==null?void 0:u[m.name])==null?void 0:I.fields)==null?void 0:b.length);return i.jsx("div",{children:i.jsx(Ce.Provider,{value:r,children:i.jsxs(pe.FormLayout,{layout:"vertical",children:[i.jsx(pe.FormItem,{label:l("Action permission"),children:i.jsx(h.Table,{className:t,size:"small",pagination:!1,columns:[{dataIndex:"displayName",title:l("Action display name"),render:m=>c(m)},{dataIndex:"onNewRecord",title:l("Action type"),render:m=>m?i.jsx(h.Tag,{color:"green",children:l("Action on new records")}):i.jsx(h.Tag,{color:"geekblue",children:l("Action on existing records")})},{dataIndex:"enabled",title:l("Allow"),render:(m,P)=>i.jsx(h.Checkbox,{checked:m,onChange:()=>{S(P.name)}})},{dataIndex:"scope",title:l("Data scope"),render:(m,P)=>!P.onNewRecord&&i.jsx(Xg,{value:m,onChange:w=>{D(P.name,w)}})}],dataSource:a==null?void 0:a.map(m=>{let P=!1,w=null;return u[m.name]&&(P=!0,m.onNewRecord||(w=u[m.name].scope)),k($({},m),{enabled:P,scope:w})})})}),i.jsx(pe.FormItem,{label:l("Field permission"),children:i.jsx(h.Table,{className:t,pagination:!1,dataSource:g,columns:[{dataIndex:["uiSchema","title"],title:l("Field display name"),render:m=>c(m)},...y.map(m=>{const P=C==null?void 0:C[m.name];return{dataIndex:m.name,title:i.jsxs(i.Fragment,{children:[i.jsx(h.Checkbox,{checked:P,onChange:()=>{var T;const w=u[m.name]||{name:m.name};P?w.fields=[]:w.fields=(T=s==null?void 0:s.map)==null?void 0:T.call(s,j=>j.name),u[m.name]=w,o(Object.values(u))}})," ",c(m.displayName)]}),render:(w,T)=>i.jsx(h.Checkbox,{checked:w,onChange:()=>{const j=u[m.name]||{name:m.name},F=j.fields||[];if(w){const _=F.indexOf(T.name);F.splice(_,1)}else F.push(T.name);j.fields=F,u[m.name]=j,o(Object.values(u))}})}})]})})]})})})}),tv={type:"object",properties:{[L.uid()]:{"x-component":"DataSourceTable"}}},we=p.createContext({});we.displayName="CurrentRolesContext";const ov=({role:e})=>i.jsx(h.Card,{"data-testid":"acl-pane-card",bordered:!1,children:i.jsx(we.Provider,{value:e,children:i.jsx(n.SchemaComponent,{components:{MenuConfigure:n.MenuConfigure,RoleConfigure:zg,RolesResourcesActions:ev,DataSourceTable:Gg,StrategyActions:Hg,SettingsCenterConfigure:n.SettingsCenterConfigure,SettingCenterProvider:n.SettingCenterProvider,ResourceActionProvider:n.ResourceActionProvider,RoleRecordProvider:Kg},schema:tv})})});class _e extends n.Plugin{constructor(){super(...arguments);Dr(this,"types",new Map)}load(){return O(this,null,function*(){this.app.addComponents({DataSourcePermissionManager:ov}),this.app.use(jr),this.app.pluginSettingsManager.add(N,{title:`{{t("Data sources", { ns: "${N}" })}}`,icon:"ClusterOutlined",showTabs:!1,aclSnippet:"pm.database-connections.manager"}),this.app.pluginSettingsManager.add(`${N}.list`,{title:`{{t("Data sources", { ns: "${N}" })}}`,Component:$y,sort:1}),this.app.pluginSettingsManager.add(`${N}/:name`,{title:i.jsx(Bt,{}),icon:"ClusterOutlined",isTopLevel:!1,sort:100}),this.app.pluginSettingsManager.add(`${N}/main`,{title:i.jsx(Bt,{}),icon:"ClusterOutlined",isTopLevel:!1,sort:100}),this.app.pluginSettingsManager.add(`${N}/main.collections`,{title:`{{t("Collections", { ns: "${N}" })}}`,Component:jg,topLevelName:`${N}/main`,pluginKey:N}),this.app.pluginSettingsManager.add(`${N}/:name.collections`,{title:`{{t("Collections", { ns: "${N}" })}}`,Component:Cy,topLevelName:`${N}/:name`,pluginKey:N}),this.app.dataSourceManager.addDataSources(this.getThirdDataSource.bind(this),kt)})}setDataSources(){return O(this,null,function*(){var r;const o=yield this.app.apiClient.request({resource:"dataSources",action:"listEnabled",params:{paginate:!1}});return(r=o==null?void 0:o.data)==null?void 0:r.data})}getThirdDataSource(){return O(this,null,function*(){var r;const o=yield this.app.apiClient.request({resource:"dataSources",action:"listEnabled",params:{paginate:!1,appends:["collections"]}});return(r=o==null?void 0:o.data)==null?void 0:r.data})}registerType(o,r){this.types.set(o,r)}}M.PluginDataSourceManagerClient=_e,M.default=_e,Object.defineProperties(M,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
|
67
|
+
`),Yg=(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}}]}),Qg=()=>{const{name:e}=d.useContext(Ce),t=r.useFormBlockContext();return d.useEffect(()=>{t.form.setInitialValues({resourceName:e})},[e]),{form:t.form}},Zg=e=>{const t=Yg(e);return{type:"object",properties:{scope:{"x-component":"RecordPicker","x-component-props":{size:"small",fieldNames:{label:"name",value:"id"},multiple:!1,association:{target:"rolesResourcesScopes"},onChange:"{{ onChange }}"},properties:{selector:{type:"void",title:'{{ t("Select record") }}',"x-component":"RecordPicker.Selector","x-component-props":{className:"nb-record-picker-selector"},properties:{tableBlock:{type:"void","x-decorator":"TableSelectorProvider","x-decorator-props":{collection:t,resource:`dataSources/${e}/rolesResourcesScopes`,action:"list",params:{pageSize:20},useParams(){return{filter:{$or:[{resourceName:d.useContext(Ce).name},{resourceName:null}]}}},rowKey:"id"},"x-component":"BlockItem",properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:16}},properties:{create:{type:"void",title:'{{ t("Add new") }}',"x-action":"create","x-component":"Action","x-component-props":{icon:"PlusOutlined",openMode:"drawer",type:"primary"},properties:{drawer:{type:"void",title:'{{ t("Add record") }}',"x-component":"Action.Container","x-component-props":{className:"nb-action-popup"},properties:{formBlock:{type:"void","x-decorator":"FormBlockProvider","x-decorator-props":{resource:`dataSources/${e}/rolesResourcesScopes`,collection:t},"x-component":"CardItem",properties:{form:{type:"void","x-component":"FormV2","x-use-component-props":Qg,properties:{name:{type:"string","x-component":"CollectionField","x-decorator":"FormItem"},scope:{type:"object",title:'{{t("Data scope")}}',name:"filter","x-decorator":"FormItem","x-component":"Filter","x-use-component-props":()=>{const o=d.useContext(Ce);return{options:r.useFilterFieldOptions(o.fields)}},"x-component-props":{dynamicComponent:r.VariableInput}},actions:{type:"void","x-component":"ActionBar","x-component-props":{layout:"one-column",style:{marginTop:24}},properties:{create:{title:'{{ t("Submit") }}',"x-action":"submit","x-component":"Action","x-use-component-props":"useCreateActionProps","x-component-props":{type:"primary",htmlType:"submit"}}}}}}}}}}}}}},value:{type:"array","x-component":"TableV2.Selector","x-use-component-props":"useTableSelectorProps","x-component-props":{rowKey:"id",rowSelection:{type:"checkbox"}},properties:{column1:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column",properties:{name:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},actions:{type:"void",title:'{{ t("Actions") }}',"x-action-column":"actions","x-component":"TableV2.Column",properties:{actions:{type:"void","x-decorator":"DndContext","x-component":"Space","x-component-props":{split:"|"},properties:{edit:{type:"void",title:'{{ t("Edit") }}',"x-action":"update","x-decorator":"ACLActionProvider","x-component":"Action.Link","x-component-props":{openMode:"drawer",icon:"EditOutlined"},properties:{drawer:{type:"void",title:'{{ t("Edit record") }}',"x-component":"Action.Container","x-component-props":{className:"nb-action-popup"},properties:{formBlock:{type:"void","x-decorator":"FormBlockProvider","x-decorator-props":{resource:`dataSources/${e}/rolesResourcesScopes`,collection:t,action:"get",useParams:"{{ useParamsFromRecord }}"},"x-component":"CardItem",properties:{form:{type:"void","x-component":"FormV2","x-use-component-props":"useFormBlockProps",properties:{name:{type:"string","x-component":"CollectionField","x-decorator":"FormItem"},scope:{type:"object",title:'{{t("Data scope")}}',name:"filter","x-decorator":"FormItem","x-component":"Filter","x-use-component-props":()=>{const o=d.useContext(Ce);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"}}}}}}}}}}}}},_n=d.createContext(null);_n.displayName="RolesResourcesScopesSelectedRowKeysContext";const Jg=e=>{const[t,o]=d.useState([]);return s.jsx(_n.Provider,{value:[t,o],children:e.children})},Xg=e=>{const t=d.useMemo(()=>ue.createForm({values:{scope:e.value}}),[]),{key:o}=r.useRecord(),n=Zg(o);return s.jsx(r.FormProvider,{form:t,children:s.jsx(r.SchemaComponent,{components:{RolesResourcesScopesSelectedRowKeysProvider:Jg},scope:{onChange(a){var i;(i=e==null?void 0:e.onChange)==null||i.call(e,a)}},schema:n})})},Rg=e=>{var o;const t={};return(o=e==null?void 0:e.forEach)==null||o.call(e,n=>{n.name&&(t[n.name]=n,t[n.name].scope=J.isEmpty(n.scope)?null:n.scope)}),t},Ce=d.createContext({});Ce.displayName="RoleResourceCollectionContext";const ev=$.connect(e=>{var C,h;const{styles:t}=Wg(),o=y=>{const f=y.map(x=>j(T({},x),{scope:J.isEmpty(x.scope)?null:x.scope}));e.onChange(f)},n=r.useRecord(),a=Fn(),i=n.fields,c=r.useCompile(),{t:l}=V.useTranslation(),u=$.useField(),p=Rg(u.value||[]),m=(y,f)=>{var E;const x=p==null?void 0:p[y];return x?(E=x==null?void 0:x.fields)==null?void 0:E.includes(f):!1},g=a.filter(y=>y.allowConfigureFields),v=i==null?void 0:i.map(y=>{const f=T({},y);for(const x of g)f[x.name]=m(x.name,y.name);return f}),A=y=>{var f,x;p[y]?delete p[y]:p[y]={name:y,fields:(x=(f=i==null?void 0:i.filter(E=>E.interface))==null?void 0:f.map)==null?void 0:x.call(f,E=>E.name)},o(Object.values(p))},_=(y,f)=>{p[y]?(p[y].scope=f,o(Object.values(p))):(A(y),p[y].scope=f,o(Object.values(p)))},b={};for(const y of g)b[y.name]=(i==null?void 0:i.length)===((h=(C=p==null?void 0:p[y.name])==null?void 0:C.fields)==null?void 0:h.length);return s.jsx("div",{children:s.jsx(Ce.Provider,{value:n,children:s.jsxs(pe.FormLayout,{layout:"vertical",children:[s.jsx(pe.FormItem,{label:l("Action permission"),children:s.jsx(S.Table,{className:t,size:"small",pagination:!1,columns:[{dataIndex:"displayName",title:l("Action display name"),render:y=>c(y)},{dataIndex:"onNewRecord",title:l("Action type"),render:y=>y?s.jsx(S.Tag,{color:"green",children:l("Action on new records")}):s.jsx(S.Tag,{color:"geekblue",children:l("Action on existing records")})},{dataIndex:"enabled",title:l("Allow"),render:(y,f)=>s.jsx(S.Checkbox,{checked:y,onChange:()=>{A(f.name)}})},{dataIndex:"scope",title:l("Data scope"),render:(y,f)=>!f.onNewRecord&&s.jsx(Xg,{value:y,onChange:x=>{_(f.name,x)}})}],dataSource:a==null?void 0:a.map(y=>{let f=!1,x=null;return p[y.name]&&(f=!0,y.onNewRecord||(x=p[y.name].scope)),j(T({},y),{enabled:f,scope:x})})})}),s.jsx(pe.FormItem,{label:l("Field permission"),children:s.jsx(S.Table,{className:t,pagination:!1,dataSource:v,columns:[{dataIndex:["uiSchema","title"],title:l("Field display name"),render:(y,f)=>c(y)||f.name},...g.map(y=>{const f=b==null?void 0:b[y.name];return{dataIndex:y.name,title:s.jsxs(s.Fragment,{children:[s.jsx(S.Checkbox,{checked:f,onChange:()=>{var E;const x=p[y.name]||{name:y.name};f?x.fields=[]:x.fields=(E=i==null?void 0:i.map)==null?void 0:E.call(i,M=>M.name),p[y.name]=x,o(Object.values(p))}}),c(y.displayName)]}),render:(x,E)=>s.jsx(S.Checkbox,{checked:x,onChange:()=>{const M=p[y.name]||{name:y.name},w=M.fields||[];if(x){const N=w.indexOf(E.name);w.splice(N,1)}else w.push(E.name);M.fields=w,p[y.name]=M,o(Object.values(p))}})}})]})})]})})})}),tv={type:"object",properties:{[L.uid()]:{"x-component":"DataSourceTable"}}},we=d.createContext({});we.displayName="CurrentRolesContext";const ov=({role:e})=>s.jsx(S.Card,{"data-testid":"acl-pane-card",bordered:!1,children:s.jsx(we.Provider,{value:e,children:s.jsx(r.SchemaComponent,{components:{MenuConfigure:r.MenuConfigure,RoleConfigure:zg,RolesResourcesActions:ev,DataSourceTable:Gg,StrategyActions:Hg,SettingsCenterConfigure:r.SettingsCenterConfigure,SettingCenterProvider:r.SettingCenterProvider,ResourceActionProvider:r.ResourceActionProvider,RoleRecordProvider:Kg},schema:tv})})});class _e extends r.Plugin{constructor(){super(...arguments);In(this,"types",new Map)}load(){return D(this,null,function*(){this.app.addComponents({DataSourcePermissionManager:ov}),this.app.use(kn),this.app.pluginSettingsManager.add(K,{title:`{{t("Data sources", { ns: "${K}" })}}`,icon:"ClusterOutlined",showTabs:!1,aclSnippet:"pm.database-connections.manager"}),this.app.pluginSettingsManager.add(`${K}.list`,{title:`{{t("Data sources", { ns: "${K}" })}}`,Component:$y,sort:1}),this.app.pluginSettingsManager.add(`${K}/:name`,{title:s.jsx(Bt,{}),icon:"ClusterOutlined",isTopLevel:!1,sort:100}),this.app.pluginSettingsManager.add(`${K}/main`,{title:s.jsx(Bt,{}),icon:"ClusterOutlined",isTopLevel:!1,sort:100}),this.app.pluginSettingsManager.add(`${K}/main.collections`,{title:`{{t("Collections", { ns: "${K}" })}}`,Component:jg,topLevelName:`${K}/main`,pluginKey:K}),this.app.pluginSettingsManager.add(`${K}/:name.collections`,{title:`{{t("Collections", { ns: "${K}" })}}`,Component:Cy,topLevelName:`${K}/:name`,pluginKey:K}),this.app.dataSourceManager.addDataSources(this.getThirdDataSource.bind(this),kt)})}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)}}O.PluginDataSourceManagerClient=_e,O.default=_e,Object.defineProperties(O,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
package/dist/externalVersion.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
module.exports = {
|
|
2
|
-
"@nocobase/client": "0.
|
|
2
|
+
"@nocobase/client": "0.21.0-alpha.2",
|
|
3
3
|
"react": "18.2.0",
|
|
4
|
-
"@nocobase/server": "0.
|
|
4
|
+
"@nocobase/server": "0.21.0-alpha.2",
|
|
5
5
|
"lodash": "4.17.21",
|
|
6
6
|
"@ant-design/icons": "5.2.6",
|
|
7
7
|
"antd": "5.12.8",
|
|
@@ -10,10 +10,10 @@ module.exports = {
|
|
|
10
10
|
"react-i18next": "11.18.6",
|
|
11
11
|
"@formily/react": "2.3.0",
|
|
12
12
|
"@emotion/css": "11.11.2",
|
|
13
|
-
"@nocobase/database": "0.
|
|
14
|
-
"@nocobase/utils": "0.
|
|
15
|
-
"@nocobase/plugin-acl": "0.
|
|
16
|
-
"@nocobase/acl": "0.
|
|
13
|
+
"@nocobase/database": "0.21.0-alpha.2",
|
|
14
|
+
"@nocobase/utils": "0.21.0-alpha.2",
|
|
15
|
+
"@nocobase/plugin-acl": "0.21.0-alpha.2",
|
|
16
|
+
"@nocobase/acl": "0.21.0-alpha.2",
|
|
17
17
|
"sequelize": "6.35.2",
|
|
18
18
|
"@formily/antd-v5": "1.1.9",
|
|
19
19
|
"@formily/core": "2.3.0",
|
package/dist/locale/zh-CN.json
CHANGED
|
@@ -29,5 +29,7 @@
|
|
|
29
29
|
"Loaded": "已加载",
|
|
30
30
|
"Reloading": "加载中",
|
|
31
31
|
"Data source synchronization in progress": "数据源同步中",
|
|
32
|
-
"Data source synchronization successful": "数据源同步成功"
|
|
32
|
+
"Data source synchronization successful": "数据源同步成功",
|
|
33
|
+
"Filter target key":"筛选目标键",
|
|
34
|
+
"Filter data based on the specific field, with the requirement that the field value must be unique.": "根据特定的字段筛选数据,字段值必须具备唯一性。"
|
|
33
35
|
}
|
package/dist/server/plugin.js
CHANGED
|
@@ -154,13 +154,13 @@ class PluginDataSourceManagerServer extends import_server.Plugin {
|
|
|
154
154
|
const mapDataSourceWithCollection = (dataSourceModel, appendCollections = true) => {
|
|
155
155
|
const dataSource = app.dataSourceManager.dataSources.get(dataSourceModel.get("key"));
|
|
156
156
|
const dataSourceStatus = plugin.dataSourceStatus[dataSourceModel.get("key")];
|
|
157
|
-
const isDBInstance = !!dataSource.collectionManager.db;
|
|
158
157
|
const item = {
|
|
159
158
|
key: dataSourceModel.get("key"),
|
|
160
159
|
displayName: dataSourceModel.get("displayName"),
|
|
161
160
|
status: dataSourceStatus,
|
|
162
161
|
type: dataSourceModel.get("type"),
|
|
163
|
-
|
|
162
|
+
// @ts-ignore
|
|
163
|
+
isDBInstance: !!(dataSource == null ? void 0 : dataSource.collectionManager.db)
|
|
164
164
|
};
|
|
165
165
|
if (dataSourceStatus === "loading-failed" || dataSourceStatus === "reloading-failed") {
|
|
166
166
|
item["errorMessage"] = plugin.dataSourceErrors[dataSourceModel.get("key")].message;
|
|
@@ -45,6 +45,23 @@ var data_sources_roles_default = {
|
|
|
45
45
|
...params.values
|
|
46
46
|
});
|
|
47
47
|
}
|
|
48
|
+
if (params.values.resources) {
|
|
49
|
+
await ctx.db.getRepository("dataSourcesRolesResources").destroy({
|
|
50
|
+
filter: {
|
|
51
|
+
roleName: name,
|
|
52
|
+
dataSourceKey
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
for (const resource of params.values.resources) {
|
|
56
|
+
await ctx.db.getRepository("dataSourcesRolesResources").create({
|
|
57
|
+
values: {
|
|
58
|
+
...resource,
|
|
59
|
+
roleName: name,
|
|
60
|
+
dataSourceKey
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
48
65
|
ctx.body = connectionRoleRecord.toJSON();
|
|
49
66
|
await next();
|
|
50
67
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nocobase/plugin-data-source-manager",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.21.0-alpha.2",
|
|
4
4
|
"main": "dist/server/index.js",
|
|
5
5
|
"displayName": "Data source manager",
|
|
6
6
|
"displayName.zh-CN": "数据源管理",
|
|
@@ -16,5 +16,5 @@
|
|
|
16
16
|
"keywords": [
|
|
17
17
|
"Data model tools"
|
|
18
18
|
],
|
|
19
|
-
"gitHead": "
|
|
19
|
+
"gitHead": "90628f2e2da846208fb2d7966ddb4e467d187ffb"
|
|
20
20
|
}
|