@nocobase/plugin-data-source-manager 0.20.0-alpha.9 → 0.21.0-alpha.10
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 +122 -0
- package/dist/client/component/CollectionsManager/components/TitleField.d.ts +1 -1
- package/dist/client/component/MainDataSourceManager/Configuration/index.d.ts +0 -1
- package/dist/client/component/MainDataSourceManager/Configuration/schemas/collectionFields.d.ts +0 -3
- package/dist/client/index.js +11 -28
- package/dist/externalVersion.js +7 -8
- package/dist/locale/zh-CN.json +3 -1
- package/dist/server/migrations/20240414103927-update-snippet-name.d.ts +6 -0
- package/dist/server/migrations/20240414103927-update-snippet-name.js +51 -0
- package/dist/server/plugin.js +19 -9
- package/dist/server/resourcers/data-sources-roles.js +17 -0
- package/package.json +2 -2
- package/dist/client/component/MainDataSourceManager/Configuration/CollectionFieldsTable.d.ts +0 -15
- package/dist/client/component/MainDataSourceManager/Configuration/CollectionFieldsTableArray.d.ts +0 -8
package/LICENSE.txt
ADDED
|
@@ -0,0 +1,122 @@
|
|
|
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
|
+
==============
|
|
12
|
+
1. Definitions
|
|
13
|
+
==============
|
|
14
|
+
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.
|
|
15
|
+
|
|
16
|
+
1.2 "Plugin Market" refers to the market provided by the Company for selling Software plugins and solutions.
|
|
17
|
+
|
|
18
|
+
1.3 "Commercial Plugin" refers to the paid plugins provided by the Plugin Market.
|
|
19
|
+
|
|
20
|
+
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.
|
|
21
|
+
|
|
22
|
+
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.
|
|
23
|
+
|
|
24
|
+
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.
|
|
25
|
+
|
|
26
|
+
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.
|
|
27
|
+
|
|
28
|
+
===================================
|
|
29
|
+
2. Intellectual Property Protection
|
|
30
|
+
===================================
|
|
31
|
+
|
|
32
|
+
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.
|
|
33
|
+
|
|
34
|
+
=============
|
|
35
|
+
3. Disclaimer
|
|
36
|
+
=============
|
|
37
|
+
|
|
38
|
+
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.
|
|
39
|
+
|
|
40
|
+
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.
|
|
41
|
+
|
|
42
|
+
===============
|
|
43
|
+
4. License Type
|
|
44
|
+
===============
|
|
45
|
+
|
|
46
|
+
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.
|
|
47
|
+
|
|
48
|
+
4.2 Commercial Plugins use Commercial License.
|
|
49
|
+
|
|
50
|
+
================================================
|
|
51
|
+
5. Rights and Obligations of Open Source License
|
|
52
|
+
================================================
|
|
53
|
+
|
|
54
|
+
5.1 The Software can be used for commercial purposes, such as developing applications for internal use within a company or for clients.
|
|
55
|
+
|
|
56
|
+
5.2 User can sell plugins developed for the Software in the Plugin Market.
|
|
57
|
+
|
|
58
|
+
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.
|
|
59
|
+
|
|
60
|
+
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.
|
|
61
|
+
|
|
62
|
+
5.5 It is not allowed to remove or change all intellectual property statements about NocoBase in the code.
|
|
63
|
+
|
|
64
|
+
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.
|
|
65
|
+
|
|
66
|
+
5.7 Comply with all requirements of the AGPL-3.0 agreement.
|
|
67
|
+
|
|
68
|
+
===============================
|
|
69
|
+
6. Rights of Commercial License
|
|
70
|
+
===============================
|
|
71
|
+
|
|
72
|
+
6.1 Obtain a permanent commercial license for a Root Version of the Software or Commercial Plugin.
|
|
73
|
+
|
|
74
|
+
6.2 Get 6 months of exclusive technical support.
|
|
75
|
+
|
|
76
|
+
6.3 Upgrade to the next Root Version at 50% of the contract price.
|
|
77
|
+
|
|
78
|
+
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.
|
|
79
|
+
|
|
80
|
+
6.5 Changes and plugins to the Software, and applications integrated with the Software do not need to be open sourced.
|
|
81
|
+
|
|
82
|
+
6.6 Can remove or change the brand, name, link, version number, license, and other information about NocoBase on the Software interface.
|
|
83
|
+
|
|
84
|
+
6.7 Can sell plugins developed for Software in the Plugin Market or on User’s own website.
|
|
85
|
+
|
|
86
|
+
6.8 Can sell or provide Upper Layer Applications developed based on Software in the form of SaaS to the public.
|
|
87
|
+
|
|
88
|
+
6.9 Not restricted by the AGPL-3.0 agreement.
|
|
89
|
+
|
|
90
|
+
6.10 If there are other agreements in the contract for the above rights, the contract agreement shall prevail.
|
|
91
|
+
|
|
92
|
+
====================================
|
|
93
|
+
7. Obligations of Commercial License
|
|
94
|
+
====================================
|
|
95
|
+
|
|
96
|
+
7.1 It is not allowed to remove or change all intellectual property statements about NocoBase in the code.
|
|
97
|
+
|
|
98
|
+
7.2 It is not allowed to sell, transfer, lease, share, or give away the Commercial License.
|
|
99
|
+
|
|
100
|
+
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.
|
|
101
|
+
|
|
102
|
+
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.
|
|
103
|
+
|
|
104
|
+
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.
|
|
105
|
+
|
|
106
|
+
7.6 It is not allowed to disclose the source code of Commercial Plugins to any third party.
|
|
107
|
+
|
|
108
|
+
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.
|
|
109
|
+
|
|
110
|
+
7.8 If there are other agreements in the contract for the above obligations, the contract agreement shall prevail.
|
|
111
|
+
|
|
112
|
+
=============================================================
|
|
113
|
+
8. Legal Jurisdiction, Interpretation, and Dispute Resolution
|
|
114
|
+
=============================================================
|
|
115
|
+
|
|
116
|
+
8.1 Except for Mainland China, the interpretation, application, and all matters related to this agreement are subject to the jurisdiction of Singapore law.
|
|
117
|
+
|
|
118
|
+
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.
|
|
119
|
+
|
|
120
|
+
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.
|
|
121
|
+
|
|
122
|
+
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,18 +1,18 @@
|
|
|
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(j,a){typeof exports=="object"&&typeof module!="undefined"?a(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"],a):(j=typeof globalThis!="undefined"?globalThis:j||self,a(j["@nocobase/plugin-data-source-manager"]={},j.jsxRuntime,j["@nocobase/client"],j.react,j["@formily/react"],j.antd,j["react-i18next"],j["@ant-design/icons"],j["react-router-dom"],j["@formily/shared"],j["@formily/reactive"],j["@formily/core"],j["@formily/antd-v5"],j.lodash,j["@dnd-kit/core"],j["@emotion/css"],j["antd-style"]))})(this,function(j,a,r,d,T,x,V,Y,U,B,pt,me,re,J,Q,ye,Qo){"use strict";var Vf=Object.defineProperty,Bf=Object.defineProperties;var Lf=Object.getOwnPropertyDescriptors;var Ke=Object.getOwnPropertySymbols;var zo=Object.prototype.hasOwnProperty,Ho=Object.prototype.propertyIsEnumerable;var lt=(j,a,r)=>a in j?Vf(j,a,{enumerable:!0,configurable:!0,writable:!0,value:r}):j[a]=r,A=(j,a)=>{for(var r in a||(a={}))zo.call(a,r)&<(j,r,a[r]);if(Ke)for(var r of Ke(a))Ho.call(a,r)&<(j,r,a[r]);return j},N=(j,a)=>Bf(j,Lf(a));var ut=(j,a)=>{var r={};for(var d in j)zo.call(j,d)&&a.indexOf(d)<0&&(r[d]=j[d]);if(j!=null&&Ke)for(var d of Ke(j))a.indexOf(d)<0&&Ho.call(j,d)&&(r[d]=j[d]);return r};var Wo=(j,a,r)=>(lt(j,typeof a!="symbol"?a+"":a,r),r);var D=(j,a,r)=>new Promise((d,T)=>{var x=U=>{try{Y(r.next(U))}catch(B){T(B)}},V=U=>{try{Y(r.throw(U))}catch(B){T(B)}},Y=U=>U.done?d(U.value):Promise.resolve(U.value).then(x,V);Y((r=r.apply(j,a)).next())});const E="data-source-manager";function Yo(e,t={}){return r.i18n.t(e,N(A({},t),{ns:E}))}const Jo=e=>{const t=T.useForm(),o=r.useActionContext(),n=r.useAPIClient(),{t:s}=V.useTranslation(),i=T.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:A({},t.values)});i.data.loading=!1,o.setVisible(!1),yield t.reset(),e==null||e(l==null?void 0:l.data),x.message.success(s("Saved successfully"))}catch(l){i.data.loading=!1,console.log(l)}})}}},dt=()=>{const e=T.useForm(),t=r.useAPIClient(),{t:o}=V.useTranslation(),n=T.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:A({},e.values)}),n.data.loading=!1,x.message.success(o("Connection successful",{ns:E}))}catch(i){n.data.loading=!1,console.log(i)}})}}},Zo=Object.freeze(Object.defineProperty({__proto__:null,useCreateDatabaseServer:Jo,useTestConnectionAction:dt},Symbol.toStringTag,{value:"Module"})),Se=d.createContext(null);Se.displayName="DataSourceContext";const Xo=e=>{const[t,o]=d.useState(null);return a.jsx(Se.Provider,{value:{dataSource:t,setDataSource:o},children:a.jsx(r.SchemaComponentOptions,{scope:Zo,components:{},children:e.children})})};class mt 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 yt=[{value:"loading",label:`{{t("Loading",{ns:"${E}"})}}`,color:"orange"},{value:"loading-failed",label:`{{t("Failed",{ns:"${E}"})}}`,color:"red"},{value:"loaded",label:`{{t("Loaded",{ns:"${E}"})}}`,color:"green"},{value:"reloading",label:`{{t("Reloading",{ns:"${E}"})}}`,color:"orange"}],ft={name:"collections-"+B.uid(),fields:[{type:"string",name:"key",interface:"input",uiSchema:{title:`{{t("Data source name",{ ns: "${E}" })}}`,type:"string","x-component":"Input",required:!0}},{type:"string",name:"displayName",interface:"input",uiSchema:{title:`{{t("Data source display name",{ ns: "${E}" })}}`,type:"string","x-component":"Input",required:!0}},{type:"string",name:"type",interface:"select",uiSchema:{title:`{{t("Type", { ns: "${E}" })}}`,type:"string","x-component":"Select",enum:"{{types}}"}},{type:"string",name:"status",interface:"select",uiSchema:{title:`{{t("Status", { ns: "${E}" })}}`,type:"string","x-component":"Select",enum:yt}},{type:"boolean",name:"enabled",uiSchema:{type:"boolean",title:'{{t("Enabled")}}',"x-component":"Checkbox"}}]},Ro={type:"object",properties:{[B.uid()]:{type:"void","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:ft,resourceName:"dataSources",request:{resource:"dataSources",action:"list",params:{pageSize:50,appends:[]}}},"x-component":"CollectionProvider_deprecated","x-component-props":{collection:ft},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)}}"]}}}}}}}}}}},gt=()=>{const e=r.useApp(),{name:t}=U.useParams(),o=r.useCompile(),n=r.useDataSourceManager(),{displayName:s}=n.getDataSource(t)||{},{dataSource:i}=d.useContext(Se),c=d.useMemo(()=>i||n.getDataSource(t),[i,t]),l=d.useMemo(()=>{const p=c==null?void 0:c.status,u=yt.find(g=>g.value===p),y=[{title:a.jsx(U.Link,{to:e.pluginSettingsManager.getRoutePath(E),children:Yo("Data source manager")})}];return c&&y.push({title:a.jsxs(x.Space,{children:[a.jsx("span",{children:o(s)}),p&&a.jsx(x.Tag,{color:u==null?void 0:u.color,children:o(u==null?void 0:u.label)},p)]})}),y},[c]);return a.jsx(x.Breadcrumb,{separator:a.jsx(Y.RightOutlined,{}),items:l})},ht=e=>T.Schema.compile(e,{t:r.i18n.t}),en={name:"database-"+B.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"}}]},tn=e=>({type:"object",properties:{[B.uid()]:{type:"void","x-collection":"dataSources","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:en,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"}}}}}),Ne={type:"object",properties:{[B.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}}},[B.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,s){return D(this,null,function*(){yield e.resource("dataSources").move({sourceId:n.key,targetId:s.key}),x.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=`${ht(n.title||n.name)} - ${ht('{{ 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"}}}}}}}}}},on={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: "${E}" })}}`,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:"object",properties:{[B.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"}}}},[B.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: "${E}" })}}`,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]) }}"}}}]}}}}}}}}},rn=r.withDynamicSchemaProps(e=>{const{t}=V.useTranslation(),{isTitleField:o}=r.useCollectionManager_deprecated(),[n,s]=d.useState(null),{setTitleField:i,filterByTk:c,dataSourceKey:l}=r.useProps(e),p=r.useRecord(),u=r.useAPIClient(),{refreshRM:y,titleField:g}=it(),C=I=>D(this,null,function*(){s(p),yield u.request({url:`dataSources/${l}/collections:update?filterByTk=${c}`,method:"post",data:{titleField:I?p.name:"id"}}),x.message.success(t("Saved successfully")),y(),i(I?p.name:"id"),s(null)});return o(p)?a.jsx(x.Tooltip,{title:t("Default title for each record"),placement:"right",overlayInnerStyle:{textAlign:"center"},children:a.jsx(x.Switch,{"aria-label":`switch-title-field-${p==null?void 0:p.name}`,size:"small",loading:(p==null?void 0:p.name)===(n==null?void 0:n.name),checked:(p==null?void 0:p.name)===(g||"id"),onChange:C})}):null},{displayName:"TitleField"}),Ct=(e,t)=>{const o=[];return e.forEach(n=>{const s=n.children.filter(i=>{var c;return(c=i==null?void 0:i.availableTypes)==null?void 0:c.includes(t)});o.push({label:n.label,key:n.key,children:s})}),o.filter(n=>t==="sort"?n.key==="advanced":n.children.length>0)},an=(e,t)=>t==null?void 0:t.some(o=>{var n,s;return(s=(n=o.children)==null?void 0:n.some)==null?void 0:s.call(n,i=>i.name===e)}),sn=T.observer(e=>{var b,h,f;const{value:t,handleFieldChange:o}=e,n=r.useRecord(),{getInterface:s}=r.useCollectionManager_deprecated(),i=r.useCompile(),c=r.useFieldInterfaceOptions(),l=Ct(c,n.type),p=T.useForm(),u=T.useField(),[y,g]=d.useState(t),[C,I]=d.useState(l),$=(h=(b=Object.values(p.values))==null?void 0:b[0])==null?void 0:h[u.index],S=($==null?void 0:$.type)||n.type;return d.useEffect(()=>{var m,v,F,M,O,k,K,w,P,_,W,z;if(C.length===1&&((v=(m=C[0])==null?void 0:m.children)==null?void 0:v.length)===1){const G=(O=(M=(F=C[0])==null?void 0:F.children)==null?void 0:M[0])==null?void 0:O.name;if(G!==y){const H=s(G);o({interface:G,uiSchema:A({title:(k=n==null?void 0:n.uiSchema)==null?void 0:k.title},(K=H==null?void 0:H.default)==null?void 0:K.uiSchema)},n.name,!1),g(G)}}else if(y&&!an(y,C)){const G=(_=(P=(w=C[0])==null?void 0:w.children)==null?void 0:P[0])==null?void 0:_.name,H=s(G);o({interface:G,uiSchema:A({title:(W=n==null?void 0:n.uiSchema)==null?void 0:W.title},(z=H==null?void 0:H.default)==null?void 0:z.uiSchema)},n.name,!1),g(G)}},[C]),d.useEffect(()=>{var m,v;if(n!=null&&n.possibleTypes){const F=(v=(m=Object.values(p.values))==null?void 0:m[0])==null?void 0:v[u.index],M=(F==null?void 0:F.type)||n.type,O=Ct(c,M);I(O)}},[S]),["oho","obo","o2m","m2o","m2m"].includes(n.interface)?a.jsx(x.Tag,{children:i((f=c.find(m=>m.key==="relation").children.find(m=>m.name===t))==null?void 0:f.label)},t):a.jsx(x.Select,{"aria-label":`field-interface-${n==null?void 0:n.type}`,role:"button",value:y,style:{width:"100%"},popupMatchSelectWidth:!1,onChange:m=>{var F,M;const v=s(m);o({interface:m,uiSchema:A({title:(F=n==null?void 0:n.uiSchema)==null?void 0:F.title},(M=v==null?void 0:v.default)==null?void 0:M.uiSchema)},n.name),g(m)},children:C.map(m=>a.jsx(x.Select.OptGroup,{label:i(m.label),children:m.children.map(v=>a.jsx(x.Select.Option,{value:v.name,children:i(v.label)},v.name))},m.key))})},{displayName:"CollectionFieldInterfaceSelect"}),Ae=["string","bigInt","integer","uuid","uid"],cn=T.observer(e=>{var u,y;const{name:t}=U.useParams(),{collectionName:o,sourceKey:n,name:s}=r.useRecord(),i=T.useField(),c=r.useCompile(),{getCollection:l}=r.useCollectionManager_deprecated(),p=(u=l(o||s,t).fields)==null?void 0:u.filter(g=>g.primaryKey||g.unique).map(g=>{var C;return{value:g.name,label:c(((C=g.uiSchema)==null?void 0:C.title)||g.title||g.name)}});return d.useEffect(()=>{var g;i.initialValue=((g=p==null?void 0:p[0])==null?void 0:g.value)||n},[]),a.jsx("div",{children:a.jsx(x.Select,{disabled:n,options:p,defaultValue:((y=p==null?void 0:p[0])==null?void 0:y.value)||n,onChange:e==null?void 0:e.onChange,showSearch:!0})})},{displayName:"SourceKey"}),vt=T.observer(e=>{const{disabled:t}=e,o=r.useAPIClient(),[n,s]=d.useState([]),{name:i}=U.useParams(),c=r.useRecord(),l=T.useField(),{collectionName:p,target:u,type:y,through:g,name:C}=c,I=c[l.props.name],{getCollection:$}=r.useCollectionManager_deprecated(),S=r.useCompile(),b=T.useForm(),[h,f]=d.useState(I);return d.useEffect(()=>{var F;l.initialValue=null;const m=["belongsTo"].includes(y)?p:["belongsToMany"].includes(y)?g:u,v=(F=$(m,i))==null?void 0:F.fields;if(v){const M=v==null?void 0:v.filter(O=>Ae.includes(O.type)).map(O=>{var k;return{value:O.name,label:S(((k=O.uiSchema)==null?void 0:k.title)||O.title||O.name)}});if(s(M),I){const O=M.find(k=>k.value===I);f((O==null?void 0:O.label)||I)}}},[y]),d.useEffect(()=>{f(I)},[I]),a.jsx("div",{children:a.jsx(x.Select,{disabled:t,value:h,options:n,showSearch:!0,onDropdownVisibleChange:m=>D(this,null,function*(){var k;const{target:v,type:F,through:M}=b.values,O=["belongsTo"].includes(F)?p||C:["belongsToMany"].includes(F)?M:v;if(O&&m){const{data:K}=yield o.request({url:`dataSourcesCollections/${i}.${O}/fields:list`,params:{paginate:!1,filter:{$or:[{"interface.$not":null},{"options.source.$notEmpty":!0}]},sort:["sort"]}});s((k=K.data)==null?void 0:k.filter(w=>Ae.includes(w.type)).map(w=>{var P;return{value:w.name,label:S(((P=w.uiSchema)==null?void 0:P.title)||w.title||w.name)}}))}}),onChange:m=>{var v;(v=e==null?void 0:e.onChange)==null||v.call(e,m),f(m)}})})},{displayName:"ForeignKey"}),ln=T.observer(e=>{const{value:t,disabled:o}=e,{targetKey:n,target:s,type:i}=r.useRecord(),{name:c}=U.useParams(),{getCollection:l}=r.useCollectionManager_deprecated(),p=r.useAPIClient(),[u,y]=d.useState([]),[g,C]=d.useState(t||n),I=T.useForm(),$=r.useCompile(),S=T.useField();return S.required=!0,d.useEffect(()=>{var b;s&&y((b=l(s,c).fields)==null?void 0:b.filter(h=>i!=="hasMany"?h.primaryKey||h.unique:Ae.includes(h.type)).map(h=>{var f;return{value:h.name,label:$(((f=h==null?void 0:h.uiSchema)==null?void 0:f.title)||h.title||h.name)}}))},[]),a.jsx("div",{children:a.jsx(x.Select,{showSearch:!0,options:u,onDropdownVisibleChange:b=>D(this,null,function*(){var m;const{target:h,type:f}=I.values;if(h&&b){const{data:v}=yield p.request({url:`dataSourcesCollections/${c}.${h}/fields:list`,params:{paginate:!1,filter:{$or:[{"interface.$not":null},{"options.source.$notEmpty":!0}]},sort:["sort"]}});y((m=v.data)==null?void 0:m.filter(F=>f!=="hasMany"?F.primaryKey||F.unique:Ae.includes(F.type)).map(F=>{var M;return{value:F.name,label:$(((M=F.uiSchema)==null?void 0:M.title)||F.title||F.name)}}))}}),onChange:b=>{var h;(h=e==null?void 0:e.onChange)==null||h.call(e,b),C(b)},value:g,disabled:o})})},{displayName:"TargetKey"}),un=T.observer(()=>{const e=r.useCompile(),{targetCollection:t}=it();return a.jsx("div",{children:a.jsx(x.Select,{disabled:!0,showSearch:!0,popupMatchSelectWidth:!1,value:t.name,options:[{value:t.name,label:e(t.title||t.name)}]})})},{displayName:"SourceCollection"}),pn=T.observer(e=>{const{disabled:t}=e,o=r.useCompile(),[n,s]=d.useState([]),{name:i}=U.useParams(),c=T.useField(),{getCollections:l}=r.useCollectionManager_deprecated(i),u=r.useRecord()[c.props.name],y=()=>l().filter(C=>!(C.autoCreate&&C.isThrough)).map(C=>({label:o(C.title||C.name),value:C.name}));return d.useEffect(()=>{const g=y();s(g)},[]),a.jsx("div",{children:a.jsx(x.Select,{disabled:t,showSearch:!0,popupMatchSelectWidth:!1,fieldNames:{label:"label",value:"value"},defaultValue:u,options:n,onChange:g=>{var C;(C=e==null?void 0:e.onChange)==null||C.call(e,g)}})})},{displayName:"ThroughCollection"}),dn=(e,t,o)=>{var i;if(!e)return;const n=J.cloneDeep(e.properties);n!=null&&n.foreignKey&&(n.foreignKey["x-component"]=vt),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 s=N(A({name:`f_${B.uid()}`},J.cloneDeep(e.default)),{interface:e.name});return s.reverseField&&(s.reverseField.name=`f_${B.uid()}`),{type:"object",properties:{[B.uid()]:{type:"void","x-component":"Action.Drawer","x-component-props":{getContainer:"{{ getContainer }}"},"x-decorator":"Form","x-decorator-props":{useValues(c){return r.useRequest(()=>Promise.resolve({data:s}),c)}},title:`${o(t.title||t.name)} - ${o('{{ t("Add field") }}')}`,properties:N(A({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 }}"}}}}})}}}},mn=()=>{const e=T.useForm(),t=r.useActionContext(),{refresh:o}=r.useResourceActionContext(),n=T.useField(),s=r.useAPIClient(),i=r.useRecord(),{name:c}=U.useParams(),l=r.useDataSourceManager();return{run(){return D(this,null,function*(){yield e.submit(),n.data=n.data||{},n.data.loading=!0;const u=J.cloneDeep(e.values);u.autoCreateReverseField||delete u.reverseField,delete u.autoCreateReverseField;try{yield s.request({url:`dataSourcesCollections/${c}.${i.name}/fields:create`,method:"post",data:u}),t.setVisible(!1),l.getDataSource(c).reload(),yield e.reset(),n.data.loading=!1,o()}catch(y){n.data.loading=!1}})}}},yn=e=>{const t=r.useRecord();return a.jsx(fn,A({item:t},e))},fn=e=>{const{scope:t,getContainer:o,item:n,children:s,trigger:i,align:c,database:l}=e,{getInterface:p,getTemplate:u,collections:y}=r.useCollectionManager_deprecated(),[g,C]=d.useState(!1),[I,$]=d.useState(),[S,b]=d.useState({}),h=r.useCompile(),{t:f}=V.useTranslation(),{data:{database:m}}=r.useCurrentAppInfo(),v=w=>(m==null?void 0:m.dialect)===w,F=d.useMemo(()=>y.map(w=>({label:h(w.title),value:w.name})),[]),M=r.useFieldInterfaceOptions(),O=d.useCallback(()=>{const{availableFieldInterfaces:w}=u(n.template)||{},{exclude:P,include:_}=w||{},W=[];return M.forEach(z=>{var G;if(z.key==="relation"){let H=[];_!=null&&_.length?_.forEach(X=>{var xe;const ke=(xe=z==null?void 0:z.children)==null?void 0:xe.find(Nf=>[X,X.interface].includes(Nf.value));ke&&H.push(N(A({},ke),{targetScope:X==null?void 0:X.targetScope}))}):P!=null&&P.length?H=(G=z==null?void 0:z.children)==null?void 0:G.filter(X=>!P.includes(X.value)):H=z==null?void 0:z.children,H!=null&&H.length&&W.push(N(A({},z),{children:H}))}}),W},[u,n]),k=d.useMemo(()=>O().map(w=>{var P;return((P=w==null?void 0:w.children)==null?void 0:P.length)===0?null:n.template==="view"?{type:"group",label:h(w.label),title:h(w.label),key:w.label,children:w.children.filter(_=>["m2o"].includes(_.name)).map(_=>({label:h(_.title),title:h(_.title),key:_.name,dataTargetScope:_.targetScope}))}:{type:"group",label:h(w.label),title:h(w.label),key:w.label,children:w==null?void 0:w.children.filter(_=>!["o2o","subTable","linkTo"].includes(_.name)).map(_=>({label:h(_.title),title:h(_.title),key:_.name,dataTargetScope:_.targetScope}))}}).filter(w=>{var P;return(P=w==null?void 0:w.children)==null?void 0:P.length}),[O]),K=d.useMemo(()=>({style:{maxHeight:"60vh",overflow:"auto"},onClick:w=>{const P=w.item.props["data-targetScope"];P&&$(P);const _=dn(p(w.key),n,h);_&&(b(_),C(!0))},items:k}),[p,k,n]);return n.template!=="sql"&&a.jsx(r.RecordProvider,{record:n,children:a.jsxs(r.ActionContextProvider,{value:{visible:g,setVisible:C},children:[a.jsx(x.Dropdown,{getPopupContainer:o,trigger:i,align:c,menu:K,children:s||a.jsx(x.Button,{icon:a.jsx(Y.PlusOutlined,{}),type:"primary",children:f("Add field")})}),a.jsx(r.SchemaComponent,{schema:S,components:{ArrayTable:re.ArrayTable},scope:A({getContainer:o,useCancelAction:r.useCancelAction,createOnly:!0,isOverride:!1,override:!1,useCreateCollectionField:mn,record:n,showReverseFieldConfig:!1,targetScope:I,collections:F,isDialect:v,disabledJSONB:!1,createMainOnly:!0},t)})]})})},gn=T.observer(e=>{const{value:t,handleFieldChange:o}=e,n=r.useRecord(),[s,i]=d.useState(t),c=u=>{i(u)},l=d.useMemo(()=>J.debounce(u=>{o({uiSchema:N(A({},n==null?void 0:n.uiSchema),{title:u})},n.name)},1e3),[o,n]),p=u=>{const y=u.target.value;c(y),l(y)};return d.useEffect(()=>{i(t)},[t]),a.jsx(x.Input,{value:s,onChange:p,style:{minWidth:"100px"},"aria-label":"field-title-input"})},{displayName:"FieldTitleInput"}),hn=()=>{const{refresh:e}=r.useResourceActionContext(),{name:t}=U.useParams(),{name:o,collectionName:n}=r.useRecord(),s=r.useAPIClient();return{run(){return D(this,null,function*(){yield s.request({url:`dataSourcesCollections/${t}.${n}/fields:destroy?filterByTk=${o}`,method:"post"}),e()})}}},Cn=()=>{const{state:e,setState:t,refresh:o}=r.useResourceActionContext(),{t:n}=V.useTranslation(),{name:s}=U.useParams(),i=r.useAPIClient(),{name:c}=r.useRecord();return{run(){return D(this,null,function*(){var p;if(!((p=e==null?void 0:e.selectedRowKeys)!=null&&p.length))return x.message.error(n("Please select the records you want to delete"));yield i.request({url:`dataSourcesCollections/${s}.${c}/fields:destroy`,method:"post",params:{filterByTk:(e==null?void 0:e.selectedRowKeys)||[]}}),t==null||t({selectedRowKeys:[]}),o()})}}},vn=()=>{const{run:e}=Cn();return{run(){return D(this,null,function*(){yield e()})}}},bn=()=>{const{run:e}=hn();return{run(){return D(this,null,function*(){yield e()})}}};var $e=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function Te(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function xn(){this.__data__=[],this.size=0}var Sn=xn;function An(e,t){return e===t||e!==e&&t!==t}var bt=An,$n=bt;function Tn(e,t){for(var o=e.length;o--;)if($n(e[o][0],t))return o;return-1}var Fe=Tn,Fn=Fe,wn=Array.prototype,_n=wn.splice;function Pn(e){var t=this.__data__,o=Fn(t,e);if(o<0)return!1;var n=t.length-1;return o==n?t.pop():_n.call(t,o,1),--this.size,!0}var Dn=Pn,In=Fe;function On(e){var t=this.__data__,o=In(t,e);return o<0?void 0:t[o][1]}var Mn=On,jn=Fe;function En(e){return jn(this.__data__,e)>-1}var kn=En,Kn=Fe;function Nn(e,t){var o=this.__data__,n=Kn(o,e);return n<0?(++this.size,o.push([e,t])):o[n][1]=t,this}var Vn=Nn,Bn=Sn,Ln=Dn,qn=Mn,Gn=kn,Un=Vn;function ae(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])}}ae.prototype.clear=Bn,ae.prototype.delete=Ln,ae.prototype.get=qn,ae.prototype.has=Gn,ae.prototype.set=Un;var we=ae,zn=we;function Hn(){this.__data__=new zn,this.size=0}var Wn=Hn;function Qn(e){var t=this.__data__,o=t.delete(e);return this.size=t.size,o}var Yn=Qn;function Jn(e){return this.__data__.get(e)}var Zn=Jn;function Xn(e){return this.__data__.has(e)}var Rn=Xn,er=typeof $e=="object"&&$e&&$e.Object===Object&&$e,xt=er,tr=xt,or=typeof self=="object"&&self&&self.Object===Object&&self,nr=tr||or||Function("return this")(),Z=nr,rr=Z,ar=rr.Symbol,fe=ar,St=fe,At=Object.prototype,sr=At.hasOwnProperty,ir=At.toString,ge=St?St.toStringTag:void 0;function cr(e){var t=sr.call(e,ge),o=e[ge];try{e[ge]=void 0;var n=!0}catch(i){}var s=ir.call(e);return n&&(t?e[ge]=o:delete e[ge]),s}var lr=cr,ur=Object.prototype,pr=ur.toString;function dr(e){return pr.call(e)}var mr=dr,$t=fe,yr=lr,fr=mr,gr="[object Null]",hr="[object Undefined]",Tt=$t?$t.toStringTag:void 0;function Cr(e){return e==null?e===void 0?hr:gr:Tt&&Tt in Object(e)?yr(e):fr(e)}var se=Cr;function vr(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var ie=vr,br=se,xr=ie,Sr="[object AsyncFunction]",Ar="[object Function]",$r="[object GeneratorFunction]",Tr="[object Proxy]";function Fr(e){if(!xr(e))return!1;var t=br(e);return t==Ar||t==$r||t==Sr||t==Tr}var Ft=Fr,wr=Z,_r=wr["__core-js_shared__"],Pr=_r,Ve=Pr,wt=function(){var e=/[^.]+$/.exec(Ve&&Ve.keys&&Ve.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Dr(e){return!!wt&&wt in e}var Ir=Dr,Or=Function.prototype,Mr=Or.toString;function jr(e){if(e!=null){try{return Mr.call(e)}catch(t){}try{return e+""}catch(t){}}return""}var _t=jr,Er=Ft,kr=Ir,Kr=ie,Nr=_t,Vr=/[\\^$.*+?()[\]{}|]/g,Br=/^\[object .+?Constructor\]$/,Lr=Function.prototype,qr=Object.prototype,Gr=Lr.toString,Ur=qr.hasOwnProperty,zr=RegExp("^"+Gr.call(Ur).replace(Vr,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Hr(e){if(!Kr(e)||kr(e))return!1;var t=Er(e)?zr:Br;return t.test(Nr(e))}var Wr=Hr;function Qr(e,t){return e==null?void 0:e[t]}var Yr=Qr,Jr=Wr,Zr=Yr;function Xr(e,t){var o=Zr(e,t);return Jr(o)?o:void 0}var ee=Xr,Rr=ee,ea=Z,ta=Rr(ea,"Map"),Be=ta,oa=ee,na=oa(Object,"create"),_e=na,Pt=_e;function ra(){this.__data__=Pt?Pt(null):{},this.size=0}var aa=ra;function sa(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var ia=sa,ca=_e,la="__lodash_hash_undefined__",ua=Object.prototype,pa=ua.hasOwnProperty;function da(e){var t=this.__data__;if(ca){var o=t[e];return o===la?void 0:o}return pa.call(t,e)?t[e]:void 0}var ma=da,ya=_e,fa=Object.prototype,ga=fa.hasOwnProperty;function ha(e){var t=this.__data__;return ya?t[e]!==void 0:ga.call(t,e)}var Ca=ha,va=_e,ba="__lodash_hash_undefined__";function xa(e,t){var o=this.__data__;return this.size+=this.has(e)?0:1,o[e]=va&&t===void 0?ba:t,this}var Sa=xa,Aa=aa,$a=ia,Ta=ma,Fa=Ca,wa=Sa;function ce(e){var t=-1,o=e==null?0:e.length;for(this.clear();++t<o;){var n=e[t];this.set(n[0],n[1])}}ce.prototype.clear=Aa,ce.prototype.delete=$a,ce.prototype.get=Ta,ce.prototype.has=Fa,ce.prototype.set=wa;var _a=ce,Dt=_a,Pa=we,Da=Be;function Ia(){this.size=0,this.__data__={hash:new Dt,map:new(Da||Pa),string:new Dt}}var Oa=Ia;function Ma(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var ja=Ma,Ea=ja;function ka(e,t){var o=e.__data__;return Ea(t)?o[typeof t=="string"?"string":"hash"]:o.map}var Pe=ka,Ka=Pe;function Na(e){var t=Ka(this,e).delete(e);return this.size-=t?1:0,t}var Va=Na,Ba=Pe;function La(e){return Ba(this,e).get(e)}var qa=La,Ga=Pe;function Ua(e){return Ga(this,e).has(e)}var za=Ua,Ha=Pe;function Wa(e,t){var o=Ha(this,e),n=o.size;return o.set(e,t),this.size+=o.size==n?0:1,this}var Qa=Wa,Ya=Oa,Ja=Va,Za=qa,Xa=za,Ra=Qa;function le(e){var t=-1,o=e==null?0:e.length;for(this.clear();++t<o;){var n=e[t];this.set(n[0],n[1])}}le.prototype.clear=Ya,le.prototype.delete=Ja,le.prototype.get=Za,le.prototype.has=Xa,le.prototype.set=Ra;var It=le,es=we,ts=Be,os=It,ns=200;function rs(e,t){var o=this.__data__;if(o instanceof es){var n=o.__data__;if(!ts||n.length<ns-1)return n.push([e,t]),this.size=++o.size,this;o=this.__data__=new os(n)}return o.set(e,t),this.size=o.size,this}var as=rs,ss=we,is=Wn,cs=Yn,ls=Zn,us=Rn,ps=as;function ue(e){var t=this.__data__=new ss(e);this.size=t.size}ue.prototype.clear=is,ue.prototype.delete=cs,ue.prototype.get=ls,ue.prototype.has=us,ue.prototype.set=ps;var ds=ue;function ms(e,t){for(var o=-1,n=e==null?0:e.length;++o<n&&t(e[o],o,e)!==!1;);return e}var ys=ms,fs=ee,gs=function(){try{var e=fs(Object,"defineProperty");return e({},"",{}),e}catch(t){}}(),Ot=gs,Mt=Ot;function hs(e,t,o){t=="__proto__"&&Mt?Mt(e,t,{configurable:!0,enumerable:!0,value:o,writable:!0}):e[t]=o}var jt=hs,Cs=jt,vs=bt,bs=Object.prototype,xs=bs.hasOwnProperty;function Ss(e,t,o){var n=e[t];(!(xs.call(e,t)&&vs(n,o))||o===void 0&&!(t in e))&&Cs(e,t,o)}var Le=Ss,As=Le,$s=jt;function Ts(e,t,o,n){var s=!o;o||(o={});for(var i=-1,c=t.length;++i<c;){var l=t[i],p=n?n(o[l],e[l],l,o,e):void 0;p===void 0&&(p=e[l]),s?$s(o,l,p):As(o,l,p)}return o}var he=Ts;function Fs(e,t){for(var o=-1,n=Array(e);++o<e;)n[o]=t(o);return n}var ws=Fs;function _s(e){return e!=null&&typeof e=="object"}var te=_s,Ps=se,Ds=te,Is="[object Arguments]";function Os(e){return Ds(e)&&Ps(e)==Is}var Ms=Os,Et=Ms,js=te,kt=Object.prototype,Es=kt.hasOwnProperty,ks=kt.propertyIsEnumerable,Ks=Et(function(){return arguments}())?Et:function(e){return js(e)&&Es.call(e,"callee")&&!ks.call(e,"callee")},Kt=Ks,Ns=Array.isArray,oe=Ns,De={exports:{}};function Vs(){return!1}var Bs=Vs;De.exports,function(e,t){var o=Z,n=Bs,s=t&&!t.nodeType&&t,i=s&&!0&&e&&!e.nodeType&&e,c=i&&i.exports===s,l=c?o.Buffer:void 0,p=l?l.isBuffer:void 0,u=p||n;e.exports=u}(De,De.exports);var Nt=De.exports,Ls=9007199254740991,qs=/^(?:0|[1-9]\d*)$/;function Gs(e,t){var o=typeof e;return t=t==null?Ls:t,!!t&&(o=="number"||o!="symbol"&&qs.test(e))&&e>-1&&e%1==0&&e<t}var Vt=Gs,Us=9007199254740991;function zs(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Us}var Bt=zs,Hs=se,Ws=Bt,Qs=te,Ys="[object Arguments]",Js="[object Array]",Zs="[object Boolean]",Xs="[object Date]",Rs="[object Error]",ei="[object Function]",ti="[object Map]",oi="[object Number]",ni="[object Object]",ri="[object RegExp]",ai="[object Set]",si="[object String]",ii="[object WeakMap]",ci="[object ArrayBuffer]",li="[object DataView]",ui="[object Float32Array]",pi="[object Float64Array]",di="[object Int8Array]",mi="[object Int16Array]",yi="[object Int32Array]",fi="[object Uint8Array]",gi="[object Uint8ClampedArray]",hi="[object Uint16Array]",Ci="[object Uint32Array]",q={};q[ui]=q[pi]=q[di]=q[mi]=q[yi]=q[fi]=q[gi]=q[hi]=q[Ci]=!0,q[Ys]=q[Js]=q[ci]=q[Zs]=q[li]=q[Xs]=q[Rs]=q[ei]=q[ti]=q[oi]=q[ni]=q[ri]=q[ai]=q[si]=q[ii]=!1;function vi(e){return Qs(e)&&Ws(e.length)&&!!q[Hs(e)]}var bi=vi;function xi(e){return function(t){return e(t)}}var qe=xi,Ie={exports:{}};Ie.exports,function(e,t){var o=xt,n=t&&!t.nodeType&&t,s=n&&!0&&e&&!e.nodeType&&e,i=s&&s.exports===n,c=i&&o.process,l=function(){try{var p=s&&s.require&&s.require("util").types;return p||c&&c.binding&&c.binding("util")}catch(u){}}();e.exports=l}(Ie,Ie.exports);var Ge=Ie.exports,Si=bi,Ai=qe,Lt=Ge,qt=Lt&&Lt.isTypedArray,$i=qt?Ai(qt):Si,Ti=$i,Fi=ws,wi=Kt,_i=oe,Pi=Nt,Di=Vt,Ii=Ti,Oi=Object.prototype,Mi=Oi.hasOwnProperty;function ji(e,t){var o=_i(e),n=!o&&wi(e),s=!o&&!n&&Pi(e),i=!o&&!n&&!s&&Ii(e),c=o||n||s||i,l=c?Fi(e.length,String):[],p=l.length;for(var u in e)(t||Mi.call(e,u))&&!(c&&(u=="length"||s&&(u=="offset"||u=="parent")||i&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||Di(u,p)))&&l.push(u);return l}var Gt=ji,Ei=Object.prototype;function ki(e){var t=e&&e.constructor,o=typeof t=="function"&&t.prototype||Ei;return e===o}var Ue=ki;function Ki(e,t){return function(o){return e(t(o))}}var Ut=Ki,Ni=Ut,Vi=Ni(Object.keys,Object),Bi=Vi,Li=Ue,qi=Bi,Gi=Object.prototype,Ui=Gi.hasOwnProperty;function zi(e){if(!Li(e))return qi(e);var t=[];for(var o in Object(e))Ui.call(e,o)&&o!="constructor"&&t.push(o);return t}var Hi=zi,Wi=Ft,Qi=Bt;function Yi(e){return e!=null&&Qi(e.length)&&!Wi(e)}var zt=Yi,Ji=Gt,Zi=Hi,Xi=zt;function Ri(e){return Xi(e)?Ji(e):Zi(e)}var ze=Ri,ec=he,tc=ze;function oc(e,t){return e&&ec(t,tc(t),e)}var nc=oc;function rc(e){var t=[];if(e!=null)for(var o in Object(e))t.push(o);return t}var ac=rc,sc=ie,ic=Ue,cc=ac,lc=Object.prototype,uc=lc.hasOwnProperty;function pc(e){if(!sc(e))return cc(e);var t=ic(e),o=[];for(var n in e)n=="constructor"&&(t||!uc.call(e,n))||o.push(n);return o}var dc=pc,mc=Gt,yc=dc,fc=zt;function gc(e){return fc(e)?mc(e,!0):yc(e)}var He=gc,hc=he,Cc=He;function vc(e,t){return e&&hc(t,Cc(t),e)}var bc=vc,Oe={exports:{}};Oe.exports,function(e,t){var o=Z,n=t&&!t.nodeType&&t,s=n&&!0&&e&&!e.nodeType&&e,i=s&&s.exports===n,c=i?o.Buffer:void 0,l=c?c.allocUnsafe:void 0;function p(u,y){if(y)return u.slice();var g=u.length,C=l?l(g):new u.constructor(g);return u.copy(C),C}e.exports=p}(Oe,Oe.exports);var xc=Oe.exports;function Sc(e,t){var o=-1,n=e.length;for(t||(t=Array(n));++o<n;)t[o]=e[o];return t}var Ac=Sc;function $c(e,t){for(var o=-1,n=e==null?0:e.length,s=0,i=[];++o<n;){var c=e[o];t(c,o,e)&&(i[s++]=c)}return i}var Tc=$c;function Fc(){return[]}var Ht=Fc,wc=Tc,_c=Ht,Pc=Object.prototype,Dc=Pc.propertyIsEnumerable,Wt=Object.getOwnPropertySymbols,Ic=Wt?function(e){return e==null?[]:(e=Object(e),wc(Wt(e),function(t){return Dc.call(e,t)}))}:_c,We=Ic,Oc=he,Mc=We;function jc(e,t){return Oc(e,Mc(e),t)}var Ec=jc;function kc(e,t){for(var o=-1,n=t.length,s=e.length;++o<n;)e[s+o]=t[o];return e}var Qe=kc,Kc=Ut,Nc=Kc(Object.getPrototypeOf,Object),Ye=Nc,Vc=Qe,Bc=Ye,Lc=We,qc=Ht,Gc=Object.getOwnPropertySymbols,Uc=Gc?function(e){for(var t=[];e;)Vc(t,Lc(e)),e=Bc(e);return t}:qc,Qt=Uc,zc=he,Hc=Qt;function Wc(e,t){return zc(e,Hc(e),t)}var Qc=Wc,Yc=Qe,Jc=oe;function Zc(e,t,o){var n=t(e);return Jc(e)?n:Yc(n,o(e))}var Yt=Zc,Xc=Yt,Rc=We,el=ze;function tl(e){return Xc(e,el,Rc)}var ol=tl,nl=Yt,rl=Qt,al=He;function sl(e){return nl(e,al,rl)}var Jt=sl,il=ee,cl=Z,ll=il(cl,"DataView"),ul=ll,pl=ee,dl=Z,ml=pl(dl,"Promise"),yl=ml,fl=ee,gl=Z,hl=fl(gl,"Set"),Cl=hl,vl=ee,bl=Z,xl=vl(bl,"WeakMap"),Sl=xl,Je=ul,Ze=Be,Xe=yl,Re=Cl,et=Sl,Zt=se,pe=_t,Xt="[object Map]",Al="[object Object]",Rt="[object Promise]",eo="[object Set]",to="[object WeakMap]",oo="[object DataView]",$l=pe(Je),Tl=pe(Ze),Fl=pe(Xe),wl=pe(Re),_l=pe(et),ne=Zt;(Je&&ne(new Je(new ArrayBuffer(1)))!=oo||Ze&&ne(new Ze)!=Xt||Xe&&ne(Xe.resolve())!=Rt||Re&&ne(new Re)!=eo||et&&ne(new et)!=to)&&(ne=function(e){var t=Zt(e),o=t==Al?e.constructor:void 0,n=o?pe(o):"";if(n)switch(n){case $l:return oo;case Tl:return Xt;case Fl:return Rt;case wl:return eo;case _l:return to}return t});var tt=ne,Pl=Object.prototype,Dl=Pl.hasOwnProperty;function Il(e){var t=e.length,o=new e.constructor(t);return t&&typeof e[0]=="string"&&Dl.call(e,"index")&&(o.index=e.index,o.input=e.input),o}var Ol=Il,Ml=Z,jl=Ml.Uint8Array,El=jl,no=El;function kl(e){var t=new e.constructor(e.byteLength);return new no(t).set(new no(e)),t}var ot=kl,Kl=ot;function Nl(e,t){var o=t?Kl(e.buffer):e.buffer;return new e.constructor(o,e.byteOffset,e.byteLength)}var Vl=Nl,Bl=/\w*$/;function Ll(e){var t=new e.constructor(e.source,Bl.exec(e));return t.lastIndex=e.lastIndex,t}var ql=Ll,ro=fe,ao=ro?ro.prototype:void 0,so=ao?ao.valueOf:void 0;function Gl(e){return so?Object(so.call(e)):{}}var Ul=Gl,zl=ot;function Hl(e,t){var o=t?zl(e.buffer):e.buffer;return new e.constructor(o,e.byteOffset,e.length)}var Wl=Hl,Ql=ot,Yl=Vl,Jl=ql,Zl=Ul,Xl=Wl,Rl="[object Boolean]",eu="[object Date]",tu="[object Map]",ou="[object Number]",nu="[object RegExp]",ru="[object Set]",au="[object String]",su="[object Symbol]",iu="[object ArrayBuffer]",cu="[object DataView]",lu="[object Float32Array]",uu="[object Float64Array]",pu="[object Int8Array]",du="[object Int16Array]",mu="[object Int32Array]",yu="[object Uint8Array]",fu="[object Uint8ClampedArray]",gu="[object Uint16Array]",hu="[object Uint32Array]";function Cu(e,t,o){var n=e.constructor;switch(t){case iu:return Ql(e);case Rl:case eu:return new n(+e);case cu:return Yl(e,o);case lu:case uu:case pu:case du:case mu:case yu:case fu:case gu:case hu:return Xl(e,o);case tu:return new n;case ou:case au:return new n(e);case nu:return Jl(e);case ru:return new n;case su:return Zl(e)}}var vu=Cu,bu=ie,io=Object.create,xu=function(){function e(){}return function(t){if(!bu(t))return{};if(io)return io(t);e.prototype=t;var o=new e;return e.prototype=void 0,o}}(),Su=xu,Au=Su,$u=Ye,Tu=Ue;function Fu(e){return typeof e.constructor=="function"&&!Tu(e)?Au($u(e)):{}}var wu=Fu,_u=tt,Pu=te,Du="[object Map]";function Iu(e){return Pu(e)&&_u(e)==Du}var Ou=Iu,Mu=Ou,ju=qe,co=Ge,lo=co&&co.isMap,Eu=lo?ju(lo):Mu,ku=Eu,Ku=tt,Nu=te,Vu="[object Set]";function Bu(e){return Nu(e)&&Ku(e)==Vu}var Lu=Bu,qu=Lu,Gu=qe,uo=Ge,po=uo&&uo.isSet,Uu=po?Gu(po):qu,zu=Uu,Hu=ds,Wu=ys,Qu=Le,Yu=nc,Ju=bc,Zu=xc,Xu=Ac,Ru=Ec,ep=Qc,tp=ol,op=Jt,np=tt,rp=Ol,ap=vu,sp=wu,ip=oe,cp=Nt,lp=ku,up=ie,pp=zu,dp=ze,mp=He,yp=1,fp=2,gp=4,mo="[object Arguments]",hp="[object Array]",Cp="[object Boolean]",vp="[object Date]",bp="[object Error]",yo="[object Function]",xp="[object GeneratorFunction]",Sp="[object Map]",Ap="[object Number]",fo="[object Object]",$p="[object RegExp]",Tp="[object Set]",Fp="[object String]",wp="[object Symbol]",_p="[object WeakMap]",Pp="[object ArrayBuffer]",Dp="[object DataView]",Ip="[object Float32Array]",Op="[object Float64Array]",Mp="[object Int8Array]",jp="[object Int16Array]",Ep="[object Int32Array]",kp="[object Uint8Array]",Kp="[object Uint8ClampedArray]",Np="[object Uint16Array]",Vp="[object Uint32Array]",L={};L[mo]=L[hp]=L[Pp]=L[Dp]=L[Cp]=L[vp]=L[Ip]=L[Op]=L[Mp]=L[jp]=L[Ep]=L[Sp]=L[Ap]=L[fo]=L[$p]=L[Tp]=L[Fp]=L[wp]=L[kp]=L[Kp]=L[Np]=L[Vp]=!0,L[bp]=L[yo]=L[_p]=!1;function Me(e,t,o,n,s,i){var c,l=t&yp,p=t&fp,u=t&gp;if(o&&(c=s?o(e,n,s,i):o(e)),c!==void 0)return c;if(!up(e))return e;var y=ip(e);if(y){if(c=rp(e),!l)return Xu(e,c)}else{var g=np(e),C=g==yo||g==xp;if(cp(e))return Zu(e,l);if(g==fo||g==mo||C&&!s){if(c=p||C?{}:sp(e),!l)return p?ep(e,Ju(c,e)):Ru(e,Yu(c,e))}else{if(!L[g])return s?e:{};c=ap(e,g,l)}}i||(i=new Hu);var I=i.get(e);if(I)return I;i.set(e,c),pp(e)?e.forEach(function(b){c.add(Me(b,t,o,b,e,i))}):lp(e)&&e.forEach(function(b,h){c.set(h,Me(b,t,o,h,e,i))});var $=u?p?op:tp:p?mp:dp,S=y?void 0:$(e);return Wu(S||e,function(b,h){S&&(h=b,b=e[h]),Qu(c,h,Me(b,t,o,h,e,i))}),c}var go=Me,Bp=go,Lp=1,qp=4;function Gp(e){return Bp(e,Lp|qp)}var Up=Gp;const R=Te(Up);function zp(e,t){for(var o=-1,n=e==null?0:e.length,s=Array(n);++o<n;)s[o]=t(e[o],o,e);return s}var ho=zp,Hp=se,Wp=te,Qp="[object Symbol]";function Yp(e){return typeof e=="symbol"||Wp(e)&&Hp(e)==Qp}var nt=Yp,Jp=oe,Zp=nt,Xp=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Rp=/^\w*$/;function ed(e,t){if(Jp(e))return!1;var o=typeof e;return o=="number"||o=="symbol"||o=="boolean"||e==null||Zp(e)?!0:Rp.test(e)||!Xp.test(e)||t!=null&&e in Object(t)}var td=ed,Co=It,od="Expected a function";function rt(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(od);var o=function(){var n=arguments,s=t?t.apply(this,n):n[0],i=o.cache;if(i.has(s))return i.get(s);var c=e.apply(this,n);return o.cache=i.set(s,c)||i,c};return o.cache=new(rt.Cache||Co),o}rt.Cache=Co;var nd=rt,rd=nd,ad=500;function sd(e){var t=rd(e,function(n){return o.size===ad&&o.clear(),n}),o=t.cache;return t}var id=sd,cd=id,ld=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ud=/\\(\\)?/g,pd=cd(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(ld,function(o,n,s,i){t.push(s?i.replace(ud,"$1"):n||o)}),t}),dd=pd,vo=fe,md=ho,yd=oe,fd=nt,gd=1/0,bo=vo?vo.prototype:void 0,xo=bo?bo.toString:void 0;function So(e){if(typeof e=="string")return e;if(yd(e))return md(e,So)+"";if(fd(e))return xo?xo.call(e):"";var t=e+"";return t=="0"&&1/e==-gd?"-0":t}var hd=So,Cd=hd;function vd(e){return e==null?"":Cd(e)}var bd=vd,xd=oe,Sd=td,Ad=dd,$d=bd;function Td(e,t){return xd(e)?e:Sd(e,t)?[e]:Ad($d(e))}var je=Td;function Fd(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}var wd=Fd,_d=nt,Pd=1/0;function Dd(e){if(typeof e=="string"||_d(e))return e;var t=e+"";return t=="0"&&1/e==-Pd?"-0":t}var at=Dd,Id=je,Od=at;function Md(e,t){t=Id(t,e);for(var o=0,n=t.length;e!=null&&o<n;)e=e[Od(t[o++])];return o&&o==n?e:void 0}var jd=Md;function Ed(e,t,o){var n=-1,s=e.length;t<0&&(t=-t>s?0:s+t),o=o>s?s:o,o<0&&(o+=s),s=t>o?0:o-t>>>0,t>>>=0;for(var i=Array(s);++n<s;)i[n]=e[n+t];return i}var kd=Ed,Kd=jd,Nd=kd;function Vd(e,t){return t.length<2?e:Kd(e,Nd(t,0,-1))}var Bd=Vd,Ld=je,qd=wd,Gd=Bd,Ud=at;function zd(e,t){return t=Ld(t,e),e=Gd(e,t),e==null||delete e[Ud(qd(t))]}var Hd=zd,Wd=se,Qd=Ye,Yd=te,Jd="[object Object]",Zd=Function.prototype,Xd=Object.prototype,Ao=Zd.toString,Rd=Xd.hasOwnProperty,em=Ao.call(Object);function tm(e){if(!Yd(e)||Wd(e)!=Jd)return!1;var t=Qd(e);if(t===null)return!0;var o=Rd.call(t,"constructor")&&t.constructor;return typeof o=="function"&&o instanceof o&&Ao.call(o)==em}var om=tm,nm=om;function rm(e){return nm(e)?void 0:e}var am=rm,$o=fe,sm=Kt,im=oe,To=$o?$o.isConcatSpreadable:void 0;function cm(e){return im(e)||sm(e)||!!(To&&e&&e[To])}var lm=cm,um=Qe,pm=lm;function Fo(e,t,o,n,s){var i=-1,c=e.length;for(o||(o=pm),s||(s=[]);++i<c;){var l=e[i];t>0&&o(l)?t>1?Fo(l,t-1,o,n,s):um(s,l):n||(s[s.length]=l)}return s}var dm=Fo,mm=dm;function ym(e){var t=e==null?0:e.length;return t?mm(e,1):[]}var fm=ym;function gm(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 hm=gm,Cm=hm,wo=Math.max;function vm(e,t,o){return t=wo(t===void 0?e.length-1:t,0),function(){for(var n=arguments,s=-1,i=wo(n.length-t,0),c=Array(i);++s<i;)c[s]=n[t+s];s=-1;for(var l=Array(t+1);++s<t;)l[s]=n[s];return l[t]=o(c),Cm(e,this,l)}}var bm=vm;function xm(e){return function(){return e}}var Sm=xm;function Am(e){return e}var $m=Am,Tm=Sm,_o=Ot,Fm=$m,wm=_o?function(e,t){return _o(e,"toString",{configurable:!0,enumerable:!1,value:Tm(t),writable:!0})}:Fm,_m=wm,Pm=800,Dm=16,Im=Date.now;function Om(e){var t=0,o=0;return function(){var n=Im(),s=Dm-(n-o);if(o=n,s>0){if(++t>=Pm)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var Mm=Om,jm=_m,Em=Mm,km=Em(jm),Km=km,Nm=fm,Vm=bm,Bm=Km;function Lm(e){return Bm(Vm(e,void 0,Nm),e+"")}var qm=Lm,Gm=ho,Um=go,zm=Hd,Hm=je,Wm=he,Qm=am,Ym=qm,Jm=Jt,Zm=1,Xm=2,Rm=4,ey=Ym(function(e,t){var o={};if(e==null)return o;var n=!1;t=Gm(t,function(i){return i=Hm(i,e),n||(n=i.length>1),i}),Wm(e,Jm(e),o),n&&(o=Um(o,Zm|Xm|Rm,Qm));for(var s=t.length;s--;)zm(o,t[s]);return o}),ty=ey;const Ee=Te(ty);var oy=Le,ny=je,ry=Vt,Po=ie,ay=at;function sy(e,t,o,n){if(!Po(e))return e;t=ny(t,e);for(var s=-1,i=t.length,c=i-1,l=e;l!=null&&++s<i;){var p=ay(t[s]),u=o;if(p==="__proto__"||p==="constructor"||p==="prototype")return e;if(s!=c){var y=l[p];u=n?n(y,p,l):void 0,u===void 0&&(u=Po(y)?y:ry(t[s+1])?[]:{})}oy(l,p,u),l=l[p]}return e}var iy=sy,cy=iy;function ly(e,t,o){return e==null?e:cy(e,t,o)}var uy=ly;const Do=Te(uy),py=({schema:e,record:t,parentRecord:o,compile:n,getContainer:s})=>{if(!e)return;const i=R(e.properties);return i!=null&&i.name&&(i.name["x-disabled"]=!0),e.hasDefaultValue===!0&&(i.defaultValue=R(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:{[B.uid()]:{type:"void","x-component":"Action.Drawer","x-component-props":{getContainer:"{{ getContainer }}"},"x-decorator":"Form","x-decorator-props":{useValues(c){return r.useRequest(()=>{var l;return Promise.resolve({data:N(A({},R(Ee(e.default,["uiSchema.rawTitle"]))),{autoFill:((l=e.default)==null?void 0:l.autoFill)!==!1})})},c)}},title:`${n((o==null?void 0:o.title)||(o==null?void 0:o.name))} - ${n('{{ t("Edit field") }}')}`,properties:N(A({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 }}"}}}}})}}}},dy=()=>{const e=T.useForm(),t=r.useAPIClient(),o=r.useActionContext(),{refresh:n}=r.useResourceActionContext(),{targetCollection:s}=it(),{name:i}=U.useParams(),{name:c}=r.useRecord(),l=r.useDataSourceManager();return{run(){return D(this,null,function*(){yield e.submit();const u=R(e.values);u.autoCreateReverseField||delete u.reverseField,delete u.autoCreateReverseField,yield t.request({url:`dataSourcesCollections/${i}.${s.name}/fields:update?filterByTk=${c}`,method:"post",data:u}),o.setVisible(!1),l.getDataSource(i).reload(),yield e.reset(),n()})}}},my=e=>{const t=r.useRecord(),o=r.useCollectionParentRecordData();return a.jsx(yy,A({item:t,parentItem:o},e))},yy=e=>{var k,K;const O=e,{scope:t,getContainer:o,item:n,parentItem:s,children:i}=O,c=ut(O,["scope","getContainer","item","parentItem","children"]),{getInterface:l,collections:p,getCollection:u}=r.useCollectionManager_deprecated(),{data:{database:y}}=r.useCurrentAppInfo(),[g,C]=d.useState(!1),[I,$]=d.useState({}),S=r.useAPIClient(),{t:b}=V.useTranslation(),h=r.useCompile(),{name:f}=U.useParams(),m=w=>(y==null?void 0:y.dialect)===w,v=(n==null?void 0:n.fields)||((K=(k=u(n.collectionName,f))==null?void 0:k.options)==null?void 0:K.fields),F=d.useMemo(()=>p.map(w=>({label:h(w.title),value:w.name})),[]),M=d.useMemo(()=>{var w,P;return(n==null?void 0:n.fields)||((P=(w=u(n.collectionName,f))==null?void 0:w.options)==null?void 0:P.fields.filter(_=>["string","bigInt","integer"].includes(_.type)).map(_=>{var W;return{value:_.name,label:h((W=_.uiSchema)==null?void 0:W.title)}}))},[n.name,v]);return a.jsx(r.RecordProvider,{record:n,parent:s,children:a.jsxs(r.ActionContextProvider,{value:{visible:g,setVisible:C},children:[a.jsx("a",N(A({},c),{onClick:()=>D(this,null,function*(){var z,G,H;const{data:w}=yield S.request({url:`dataSourcesCollections/${f}.${s.name}/fields:get?filterByTk=${n.name}`,params:{appends:["reverseField"]}}),P=l((z=w==null?void 0:w.data)==null?void 0:z.interface),_=R(w==null?void 0:w.data)||{};_!=null&&_.reverseField||(_.autoCreateReverseField=!1,_.reverseField=(G=P==null?void 0:P.default)==null?void 0:G.reverseField,Do(_.reverseField,"name",`f_${B.uid()}`),Do(_.reverseField,"uiSchema.title",(H=n.__parent)==null?void 0:H.title));const W=py({schema:N(A({},P),{default:_}),record:n,parentRecord:s,compile:h,getContainer:o});$(W),C(!0)}),children:i||b("Edit")})),a.jsx(r.SchemaComponent,{schema:I,components:{ArrayTable:re.ArrayTable},scope:N(A({getContainer:o,useUpdateCollectionField:dy,useCancelAction:r.useCancelAction,showReverseFieldConfig:!1,collections:F,isDialect:m,scopeKeyOptions:M,disabledJSONB:!0},t),{createOnly:!1,createMainOnly:!1,editMainOnly:!0})})]})})},fy=T.observer(e=>{const{value:t,handleFieldChange:o,onChange:n}=e,s=r.useRecord(),i=s;return i!=null&&i.possibleTypes?a.jsx(x.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(N(A({},i),{type:c}),s.name)}}):a.jsx(x.Tag,{children:t})},{displayName:"FieldType"}),gy=()=>{const{t:e}=V.useTranslation(),{unsupportedFields:t}=r.useRecord(),o=[{title:e("Field name"),dataIndex:"name",key:"name"},{title:e("Field database type",{ns:E}),dataIndex:"rawType",key:"rawType"}];return(t==null?void 0:t.length)>0&&a.jsxs(a.Fragment,{children:[a.jsx(x.Divider,{plain:!0,orientation:"left",orientationMargin:"0",children:a.jsx("h3",{children:e("Unknown field type",{ns:E})})}),a.jsx("div",{style:{marginBottom:"15px"},children:e("The following field types are not compatible and do not support output and display",{ns:E})}),a.jsx(x.Table,{columns:o,dataSource:t,pagination:!1})]})},st=d.createContext({refreshRM:()=>{},titleField:null,targetCollection:null});st.displayName="RemoteCollectionContext";const it=()=>d.useContext(st),Io=()=>{const e=T.useField(),t=d.useMemo(()=>me.createForm(),[]),o=r.useAttach(t.createArrayField(N(A({},e.props),{basePath:""}))),{t:n}=V.useTranslation(),{name:s}=U.useParams(),i=r.useAPIClient(),c=r.useCompile(),l=d.useContext(r.ResourceActionContext),p=r.useResourceContext(),{targetKey:u}=p||{},y=r.useRecord(),{[u]:g,titleField:C,name:I}=y,[$,S]=d.useState(C),b=M=>{const O=d.useContext(r.ResourceActionContext),k=T.useField();return d.useEffect(()=>{O.loading||(M==null||M.onSuccess(O.data),k.componentProps.dragSort=!!O.dragSort)},[O.loading]),O},h={association:{sourceKey:"name",targetKey:"name"},dragSort:!1,collection:on,request:{url:`dataSourcesCollections/${s}.${I}/fields:list`,params:{paginate:!1,filter:{$or:[{"interface.$not":null},{"options.source.$notEmpty":!0}]},sort:["sort"]}}},f=r.useDataSourceManager(),m=(M,O,k=!0)=>D(this,null,function*(){yield i.request({url:`dataSourcesCollections/${s}.${I}/fields:update?filterByTk=${O}`,method:"post",data:M}),f.getDataSource(s).reload(),k&&x.message.success(n("Saved successfully"))}),v=()=>({filterByTk:g,titleField:$,dataSourceKey:s,setTitleField:S}),F=(M,O,k)=>D(this,null,function*(){var W,z;const{targetScope:K}=O,w=((W=M.props)==null?void 0:W.name)==="inherits",{data:P}=yield i.request({url:`dataSources/${s}/collections:list`,params:{paginate:!1,appends:["fields"],sort:["sort"]}});return((z=P==null?void 0:P.data)==null?void 0:z.filter(G=>{var xe;if(k!=null&&k.includes(G.template)||G.autoCreate&&G.isThrough||w&&G.template==="view")return!1;const X=!(K!=null&&K.template)||K.template.includes(G.template),ke=!(K!=null&&K[(xe=M.props)==null?void 0:xe.name])||K[M.props.name].includes(G.name);return X&&ke})).map(G=>({label:c(G.title||G.name),value:G.name}))});return a.jsxs(st.Provider,{value:{refreshRM:()=>{l.refresh()},titleField:$,targetCollection:y},children:[a.jsx(r.ResourceActionProvider,N(A({},h),{children:a.jsx(T.FormContext.Provider,{value:t,children:a.jsx(T.FieldContext.Provider,{value:o,children:a.jsx(r.SchemaComponentOptions,{components:{TitleField:rn,CollectionFieldInterfaceSelect:sn,AddCollectionField:yn,SourceCollection:un,TargetKey:ln,SourceKey:cn,FieldTitleInput:gn,EditCollectionField:my,Select:r.Select,FieldType:fy,ForeignKey:vt,ThroughCollection:pn},inherit:!0,scope:{useDataSource:b,useTitleFieldProps:v,handleFieldChange:m,useDestroyActionAndRefreshCM:bn,useBulkDestroyActionAndRefreshCM:vn,loadCollections:F},children:a.jsx(T.RecursionField,{schema:nn,onlyRenderProperties:!0})})})})})),a.jsx(gy,{})]})},hy=(e,t,o,n)=>{if(!e)return;const s=R(e.configurableProperties)||{title:{"x-component":"CollectionField","x-decorator":"FormItem"},name:{"x-component":"CollectionField","x-decorator":"FormItem"}};return e.hasDefaultValue===!0&&(s.defaultValue=R(e.default.uiSchema),s.defaultValue.title=o('{{ t("Default value") }}'),s.defaultValue["x-decorator"]="FormItem"),{type:"object",properties:{[B.uid()]:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{useValues:"{{ useValuesFromRecord }}"},title:'{{ t("Edit collection") }}',properties:N(A({},Ee(s,"category","inherits","moreOptions")),{filterTargetKey:{title:`{{ t("Filter target key",{ ns: "${E}" }) }}`,type:"single",description:r.tval("Filter data based on the specific field, with the requirement that the field value must be unique.",{ns:E}),"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 }}"}}}}})}}}},Cy=e=>{const t=r.useRecord(),o=r.useRequest(()=>{var s;return Promise.resolve({data:N(A({},Ee(R(t),["__parent","__collectionName"])),{category:(s=t==null?void 0:t.category)==null?void 0:s.map(i=>i.id)})})},N(A({},e),{manual:!0})),n=r.useActionContext();return d.useEffect(()=>{n.visible&&o.run()},[n.visible]),o},vy=e=>{const{refreshCM:t}=r.useCollectionManager_deprecated(),o=T.useForm(),n=r.useActionContext(),{name:s}=U.useParams(),{refresh:i}=r.useResourceActionContext(),{resource:c,targetKey:l}=r.useResourceContext(),{[l]:p}=r.useRecord(),u=r.useAPIClient(),y=r.useDataSourceManager();return{run(){return D(this,null,function*(){yield o.submit(),yield u.request({url:`dataSources/${s}/collections:update?filterByTk=${p}`,method:"post",data:A({},Ee(o.values,["fields","autoGenId","createdAt","updatedAt","createdBy","updatedBy","sortable"]))}),yield y.getDataSource(s).reload(),n.setVisible(!1),yield o.reset(),i(),yield t()})}}},by=e=>{const t=r.useRecord();return a.jsx(xy,A({item:t},e))},xy=e=>{var S;const $=e,{scope:t,getContainer:o,item:n,children:s}=$,i=ut($,["scope","getContainer","item","children"]),{getTemplate:c}=r.useCollectionManager_deprecated(),[l,p]=d.useState(!1),[u,y]=d.useState({}),{t:g}=V.useTranslation(),C=r.useCompile(),I=(S=n.fields)==null?void 0:S.map(b=>{var h;return{label:(h=b.uiSchema)!=null&&h.title?C(b.uiSchema.title):b.name,value:b.name}});return a.jsx(r.RecordProvider,{record:n,children:a.jsxs(r.ActionContextProvider,{value:{visible:l,setVisible:p},children:[a.jsx("a",N(A({},i),{onClick:()=>D(this,null,function*(){const b=c(n.template),h=hy(A({},b),n,C);y(h),p(!0)}),children:s||g("Edit")})),a.jsx(r.SchemaComponent,{schema:u,components:{ArrayTable:re.ArrayTable},scope:A({getContainer:o,useValuesFromRecord:Cy,useUpdateCollectionActionAndRefreshCM:vy,useCancelAction:r.useCancelAction,createOnly:!1,filterTargetKeyOptions:I,isView:n.view},t)})]})})},Sy=(e,t)=>(o,n)=>{o.loading=!0,e(o,n,t).then(pt.action.bound(s=>{o.dataSource=s,o.loading=!1})).catch(s=>console.log(s))},Ay=()=>{const[e,t]=d.useState([]);return[e,t]},$y=()=>{const e=r.useRecord(),t=T.useForm();return{run(){return D(this,null,function*(){var s,i,c;const n=(c=(i=(s=t.values)==null?void 0:s.children)==null?void 0:i.slice)==null?void 0:c.call(i);t.setValuesIn("children",n.filter(l=>l.name!==e.name))})}}},Ty=()=>({run(){return D(this,null,function*(){})}}),Fy=e=>`${e||""}${B.uid()}`,wy=()=>{const{t:e}=V.useTranslation(),{interfaces:t}=r.useCollectionManager_deprecated(),{data:{database:o}}=r.useCurrentAppInfo(),n=r.useDataSourceManager(),s=d.useContext(r.SchemaComponentContext),{name:i}=U.useParams(),c=d.useContext(r.CollectionCategroriesContext),l=r.useAPIClient(),p=l.resource("dbViews"),u=r.useCompile(),y=()=>D(this,null,function*(){return c.data.map(S=>({label:u(S.name),value:S.id}))}),g=()=>D(this,null,function*(){return p.list().then(({data:S})=>{var b;return(b=S==null?void 0:S.data)==null?void 0:b.map(h=>{const f=h.schema;return{label:f?`${f}.${u(h.name)}`:h.name,value:f?`${f}_${h.name}`:h.name}})})}),C=()=>D(this,null,function*(){return l.resource("storages").list().then(({data:S})=>{var b;return(b=S==null?void 0:S.data)==null?void 0:b.map(h=>({label:e(u(h.title)),value:h.name}))})}),I=()=>{const S=d.useContext(r.ResourceActionContext),b=r.useAPIClient(),h=T.useField(),{name:f}=U.useParams();h.data=h.data||{};const{setDataSource:m,dataSource:v}=d.useContext(Se);return{onClick(){return D(this,null,function*(){var M,O,k;h.data.loading=!0;try{const{data:K}=yield b.request({url:`dataSources:refresh?filterByTk=${f}&clientStatus=${(v==null?void 0:v.status)||"loaded"}`,method:"post"});h.data.loading=!1,m(K==null?void 0:K.data),((M=K==null?void 0:K.data)==null?void 0:M.status)==="reloading"?x.message.warning(e("Data source synchronization in progress")):((O=K==null?void 0:K.data)==null?void 0:O.status)==="loaded"&&(x.message.success(e("Data source synchronization successful")),(k=S==null?void 0:S.refresh)==null||k.call(S)),yield n.getDataSource(f).reload()}catch(K){h.data.loading=!1}})}}},$=d.useMemo(()=>tn(i),[i]);return a.jsx(r.SchemaComponentContext.Provider,{value:N(A({},s),{designable:!1}),children:a.jsx(r.SchemaComponent,{schema:$,components:{EditCollection:by,AddSubFieldAction:r.AddSubFieldAction,EditSubFieldAction:r.EditSubFieldAction,FieldSummary:r.FieldSummary,TemplateSummay:r.TemplateSummary,CollectionFields:Io},scope:{useRefreshActionProps:I,useDestroySubField:$y,useBulkDestroySubField:Ty,useSelectedRowKeys:Ay,useAsyncDataSource:Sy,loadCategories:y,loadDBViews:g,loadStorages:C,useNewId:Fy,useCancelAction:r.useCancelAction,interfaces:t,enableInherits:(o==null?void 0:o.dialect)==="postgres",isPG:(o==null?void 0:o.dialect)==="postgres"}})})};var Oo={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=[],s=0;s<arguments.length;s++){var i=arguments[s];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 p in i)t.call(i,p)&&i[p]&&n.push(p)}}}return n.join(" ")}e.exports?(o.default=o,e.exports=o):window.classNames=o})()})(Oo);var _y=Oo.exports;const Py=Te(_y);var Dy=function(e,t){var o;if("ConfigContext"in x.ConfigProvider){var n=d.useContext(x.ConfigProvider.ConfigContext).getPrefixCls;return n(e,t==null?void 0:t.prefixCls)}else{var s=(o=t==null?void 0:t.prefixCls)!==null&&o!==void 0?o:"ant-";return"".concat(s).concat(e!=null?e:"")}};const Iy=e=>{const t=Dy("description-input",e),{data:{name:o,tableName:n}}=r.useCollectionRecord();return a.jsx("div",{className:Py(t,e.className),style:e.style,children:o!==n?a.jsxs(a.Fragment,{children:[o," ",a.jsxs("span",{style:{color:"GrayText"},children:["(",n,")"]})]}):e.value})},Oy=Object.assign(T.connect(x.Input,T.mapProps((e,t)=>N(A({},e),{suffix:a.jsx("span",{children:t!=null&&t.loading||t!=null&&t.validating?a.jsx(Y.LoadingOutlined,{}):e.suffix})})),T.mapReadPretty(Iy))),My=({item:e})=>{const{t}=V.useTranslation(),o=r.useCompile();return a.jsxs(x.Space,{children:[a.jsx(x.Badge,{color:e.color}),t(o(e.name))]})},jy=T.observer(e=>{const[t,o]=d.useState(null),{refresh:n}=d.useContext(r.CollectionCategroriesContext),{refresh:s}=r.useResourceActionContext(),i=r.useAPIClient(),c=y=>D(this,null,function*(){const{active:g,over:C}=y;setTimeout(()=>{o(null)}),C&&C.id!==g.id&&(yield i.resource("collectionCategories").move({sourceId:g.id,targetId:C.id}),yield n(),yield s())});function l(y){var g;o((g=y.active)==null?void 0:g.data.current)}const p=Q.useSensor(Q.MouseSensor,{activationConstraint:{distance:10}}),u=Q.useSensors(p);return a.jsxs(Q.DndContext,{sensors:u,onDragEnd:c,onDragStart:l,children:[e.children,a.jsx(Q.DragOverlay,{children:t?a.jsx("span",{style:{whiteSpace:"nowrap"},children:a.jsx(My,{item:t})}):null})]})},{displayName:"DndProvider"}),Ey=()=>{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=>N(A({},i),{schema:Ne}));!n.find(i=>i.id==="all")&&n.unshift({name:'{{t("All collections")}}',id:"all",sort:0,closable:!1,schema:Ne});const s=()=>D(this,null,function*(){return t.map(i=>({label:e(o(i.name)),value:i.id}))});return a.jsx(jy,{children:a.jsx(x.Card,{bordered:!1,children:a.jsx(r.SchemaComponentOptions,{components:{CollectionFields:Io,CollectionName:Oy},inherit:!0,scope:{loadCategories:s},children:a.jsx(T.RecursionField,{schema:Ne,onlyRenderProperties:!0})})})})},ky={type:"object",properties:{[B.uid()]:{"x-component":"ConfigurationTable"}}},Ky=()=>a.jsx(r.SchemaComponent,{schema:ky,components:{CollectionCategroriesProvider:r.CollectionCategroriesProvider,ConfigurationTable:wy,ConfigurationTabs:Ey,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}}),Ny=()=>{const[e,t]=d.useState({}),o=r.usePlugin(be),n=r.useCompile(),[s,i]=d.useState(!1),{t:c}=V.useTranslation(),[l,p]=d.useState(null),u=r.useAPIClient(),y=g=>{const C=[...o.types.keys()].map(I=>{const $=o.types.get(I);return{value:$.name,label:n($.label)}});g.dataSource=C};return a.jsx("div",{children:a.jsxs(r.ActionContext.Provider,{value:{visible:s,setVisible:i},children:[a.jsx(x.Dropdown,{menu:{onClick(g){if(g.key==="__empty__")return;const C=o.types.get(g.key);p(g.key),i(!0),t({type:"object",properties:{[B.uid()]:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{initialValue:{type:g.key}},title:n("{{t('Add new')}}")+" - "+n(C.label),properties:{body:{type:"void","x-component":C.DataSourceSettingsForm},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{testConnectiion:{title:`{{ t("Test Connection",{ ns: "${E}" }) }}`,"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:a.jsx(x.Empty,{image:x.Empty.PRESENTED_IMAGE_SIMPLE,description:a.jsxs(a.Fragment,{children:[c("No external data source plugin installed",{ns:E}),a.jsx("br",{})," ",a.jsx("a",{target:"_blank",href:u.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:E})})]})})}].filter(Boolean).concat([...o.types.keys()].map(g=>{const C=o.types.get(g);return{key:g,label:n(C==null?void 0:C.label)}}))},children:a.jsxs(x.Button,{type:"primary",icon:a.jsx(Y.PlusOutlined,{}),children:[c("Add new")," ",a.jsx(Y.DownOutlined,{})]})}),a.jsx(r.SchemaComponent,{scope:{createOnly:!1,useTestConnectionAction:dt,dialect:l,useDialectDataSource:y},schema:e})]})})},Vy=()=>{const e=r.useRecord(),[t,o]=d.useState({}),n=r.usePlugin(be),s=r.useCompile(),[i,c]=d.useState(!1),{t:l}=V.useTranslation(),p=r.useDataSourceManager(),u=()=>{const y=T.useField(),g=T.useForm(),C=r.useActionContext(),{refresh:I}=r.useResourceActionContext(),{resource:$}=r.useResourceContext(),{key:S}=r.useRecord();return{run(){return D(this,null,function*(){yield g.submit(),y.data=y.data||{},y.data.loading=!0;try{yield $.update({filterByTk:S,values:g.values}),C.setVisible(!1),p.getDataSource(S).setOptions(g.values),p.getDataSource(S).reload(),yield g.reset(),I()}catch(h){console.log(h)}finally{y.data.loading=!1}})}}};return a.jsx("div",{children:a.jsxs(r.ActionContext.Provider,{value:{visible:i,setVisible:c},children:[e.key!=="main"&&a.jsx("a",{onClick:()=>{c(!0);const y=n.types.get(e.type);o({type:"object",properties:{[B.uid()]:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{initialValue:e},title:s("{{t('Edit')}}")+" - "+s(e.displayName),properties:{body:{type:"void","x-component":y.DataSourceSettingsForm},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},testConnectiion:{title:`{{ t("Test Connection",{ ns: "${E}" }) }}`,"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")}),a.jsx(r.SchemaComponent,{scope:{createOnly:!0,useUpdateAction:u},schema:t})]})})},By=e=>`/admin/settings/data-source-manager/${e}/collections`,Ly=()=>{const e=r.useRecord(),t=U.useNavigate(),{t:o}=V.useTranslation();return a.jsx("div",{className:e.enabled?void 0:ye.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:a.jsx(x.Button,{type:"link",style:{padding:"0px"},disabled:!e.enabled,onClick:()=>{t(By(e.key))},role:"button","aria-label":`${e==null?void 0:e.key}-Configure`,children:o("Configure")})})},qy=()=>{const{t:e}=V.useTranslation(),t=r.usePlugin(be),o=[...t.types.keys()].map(y=>{const g=t.types.get(y);return{value:y,label:e(g==null?void 0:g.label)}}).concat([{value:"main",label:e("Main")}]),n=r.useDataSourceManager(),s=d.useRef([]);d.useEffect(()=>()=>{n.getDataSources().forEach(y=>{s.current.includes(y.key)&&y.reload()})},[s]);const i=d.useCallback(y=>{n.removeDataSources(y)},[n]),c=d.useCallback(y=>{n.addDataSource(mt,y),s.current=[...s.current,y.key]},[]),l=()=>{const y=r.useResourceActionContext();return{onClick(){return D(this,null,function*(){var I,$;const C=(I=y==null?void 0:y.data)==null?void 0:I.data.filter(S=>S.status!=="loaded");if(C!=null&&C.length){const S=n.getDataSources(),b=C.map(f=>f.key),h=S.filter(f=>b.includes(f.key));yield Promise.all(h.map(f=>f.reload()))}($=y==null?void 0:y.refresh)==null||$.call(y)})}}},p=()=>{const{refresh:y}=r.useResourceActionContext(),{resource:g}=r.useResourceContext(),{key:C}=r.useRecord();return{run(){return D(this,null,function*(){yield g.destroy({filterByTk:C}),i([C]),y()})}}},u=y=>{const{key:g}=r.useRecord();y.visible=g!=="main"};return a.jsx(x.Card,{bordered:!1,children:a.jsx(r.SchemaComponent,{components:{CreateDatabaseConnectAction:Ny,EditDatabaseConnectionAction:Vy,ViewDatabaseConnectionAction:Ly},scope:{useNewId:y=>`${y}${B.uid()}`,types:o,useRefreshActionProps:l,useDestroyAction:p,dataSourceDeleteCallback:i,dataSourceCreateCallback:c,useIsAbleDelete:u},schema:Ro})})},Gy={association:{sourceKey:"name",targetKey:"name"},collection:{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"}}]},request:{resource:"collections.fields",action:"list",params:{paginate:!1,filter:{$or:[{"interface.$not":null},{"options.source.$notEmpty":!0}]},sort:["sort"]}}},Uy=ye.css`
|
|
12
12
|
.ant-table {
|
|
13
13
|
margin-left: -16px !important;
|
|
14
14
|
}
|
|
15
|
-
`,
|
|
15
|
+
`,zy=ye.css`
|
|
16
16
|
tr {
|
|
17
17
|
display: flex;
|
|
18
18
|
}
|
|
@@ -33,30 +33,13 @@
|
|
|
33
33
|
min-width: 50px;
|
|
34
34
|
flex: 0;
|
|
35
35
|
}
|
|
36
|
-
`,
|
|
36
|
+
`,Mo="Default title for each record",jo=d.createContext(null),Hy=e=>{const t=r.useCompile(),{getInterface:o}=r.useCollectionManager_deprecated(),{t:n}=V.useTranslation(),{setState:s}=r.useResourceActionContext(),{resource:i,targetKey:c}=e.collectionResource||{},l=r.useRecord(),[p,u]=d.useState(null),{refreshCM:y,isTitleField:g,getTemplate:C}=r.useCollectionManager_deprecated(),{[c]:I,titleField:$,template:S}=l,b=C(S),h=[{dataIndex:["uiSchema","rawTitle"],title:n("Field display name"),render:f=>a.jsx("div",{style:{marginLeft:7},children:t(f)})},{dataIndex:"name",title:n("Field name")},{dataIndex:"interface",title:n("Field interface"),render:f=>{var m;return a.jsx(x.Tag,{children:t((m=o(f))==null?void 0:m.title)})}},{dataIndex:"titleField",title:n("Title field"),render:function(m,v){const F=M=>{u(v),i.update({filterByTk:I,values:{titleField:M?v.name:"id"}}).then(()=>D(this,null,function*(){yield e.refreshAsync(),u(null),y()})).catch(O=>{u(null),console.error(O)})};return g(v)?a.jsx(x.Tooltip,{title:n(Mo),placement:"right",overlayInnerStyle:{textAlign:"center"},children:a.jsx(x.Switch,{"aria-label":`switch-title-field-${v.name}`,size:"small",loading:v.name===(p==null?void 0:p.name),checked:v.name===($||"id"),onChange:F})}):null}},{dataIndex:"description",title:n("Descriptio "),render:f=>a.jsx(r.Input.ReadPretty,{value:f,ellipsis:!0})},{dataIndex:"actions",title:n("Actions"),render:(f,m)=>{const v={confirm:{title:n("Delete record"),content:n("Are you sure you want to delete it?")},useAction:r.useDestroyActionAndRefreshCM,disabled:r.isDeleteButtonDisabled(m)||(b==null?void 0:b.forbidDeletion),title:n("Delete")};return a.jsx(r.RecordProvider,{record:m,parent:l,children:a.jsxs(x.Space,{children:[a.jsx(r.EditCollectionField,{role:"button","aria-label":`edit-button-${m.name}`,type:"primary"}),a.jsx(r.Action.Link,A({},v))]})})}}];return a.jsx(x.Table,{rowKey:"name",columns:h,showHeader:!1,pagination:!1,dataSource:e.fields,rowSelection:{type:"checkbox",getCheckboxProps(f){return{"aria-label":`checkbox-${f.name}`}},onChange:f=>{s(m=>N(A({},m),{selectedRowKeys:f}))}},className:Uy})},Wy=e=>{const t=r.useCompile(),{getInterface:o}=r.useCollectionManager_deprecated(),{resource:n,targetKey:s}=e.collectionResource||{},i=r.useRecord(),[c,l]=d.useState(null),{t:p}=V.useTranslation(),{refreshCM:u,isTitleField:y}=r.useCollectionManager_deprecated(),{[s]:g,titleField:C,name:I}=i,$=[{dataIndex:["uiSchema","rawTitle"],title:p("Field display name"),render:S=>a.jsx("div",{style:{marginLeft:1},children:t(S)})},{dataIndex:"name",title:p("Field name")},{dataIndex:"interface",title:p("Field interface"),render:S=>{var b;return a.jsx(x.Tag,{children:t((b=o(S))==null?void 0:b.title)})}},{dataIndex:"titleField",title:p("Title field"),render(S,b){const h=f=>{l(b),n.update({filterByTk:g,values:{titleField:f?b.name:"id"}}).then(()=>D(this,null,function*(){yield e.refreshAsync(),l(null),u()})).catch(m=>{l(null),console.error(m)})};return y(b)?a.jsx(x.Tooltip,{title:p(Mo),placement:"right",overlayInnerStyle:{textAlign:"center"},children:a.jsx(x.Switch,{size:"small",loading:b.name===(c==null?void 0:c.name),checked:b.name===(C||"id"),onChange:h})}):null}},{dataIndex:"actions",title:p("Actions"),render:function(b,h){const{handleRefresh:f}=d.useContext(jo),m={type:"primary",currentCollection:I,handleRefresh:f},v={type:"primary"};return a.jsx(r.RecordProvider,{record:h,parent:i,children:a.jsxs(x.Space,{children:[a.jsx(r.OverridingCollectionField,A({},m)),a.jsx(r.ViewCollectionField,A({},v))]})})}}];return a.jsx(x.Table,{rowKey:"name",columns:$,showHeader:!1,pagination:!1,dataSource:e.fields.filter(S=>S.interface)})},Eo=()=>{const e=r.useCompile(),t=T.useField(),{name:o,template:n}=r.useRecord(),{data:{database:s}}=r.useCurrentAppInfo(),{getInterface:i,getInheritCollections:c,getCollection:l,getCurrentCollectionFields:p,getTemplate:u}=r.useCollectionManager_deprecated(),y=d.useMemo(()=>me.createForm(),[]),g=r.useAttach(y.createArrayField(N(A({},t.props),{basePath:""}))),{t:C}=V.useTranslation(),I=r.useResourceContext(),{refreshAsync:$}=d.useContext(r.ResourceActionContext),S=u(n),b=c(o),h=[{dataIndex:"title",title:C("Field display name"),render:P=>a.jsx("div",{className:ye.css`
|
|
37
37
|
font-weight: 500;
|
|
38
|
-
`,children:
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
`,children:[i.jsx(n.Action,$({},w)),i.jsx(n.SyncFieldsAction,$({},j)),i.jsx(n.SyncSQLFieldsAction,{refreshCMList:D}),i.jsx(n.SchemaComponent,{schema:{type:"object",properties:$({},C.configureActions)}}),i.jsx(n.AddCollectionField,$({},T))]}),i.jsx(h.Table,{rowKey:"key",columns:v,dataSource:m.filter(F=>F.fields.length),pagination:!1,className:wy,expandable:{defaultExpandAllRows:!0,defaultExpandedRowKeys:m.map(F=>F.key),expandedRowRender:F=>F.inherit?i.jsx(Py,{fields:F.fields,collectionResource:S,refreshAsync:D}):i.jsx(_y,{fields:F.fields,collectionResource:S,refreshAsync:D})}})]})})}))},sr=e=>A.Schema.compile(e,{t:n.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"}}}}},ir={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"},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=n.useAPIClient(),{t}=V.useTranslation();return{move(r,a){return O(this,null,function*(){yield e.resource("collections").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}}},column3:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",title:'{{t("Collection template")}}',properties:{template:{"x-component":n.CollectionTemplateTag,"x-read-pretty":!0}}},column4:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column","x-visible":"categoryVisible",title:'{{t("Collection category")}}',properties:{category:{"x-component":n.CollectionCategory,"x-read-pretty":!0}}},column5:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{description:{"x-component":"CollectionField","x-read-pretty":!0,"x-component-props":{ellipsis:!0}}}},column6:{type:"void",title:'{{ t("Actions") }}',"x-component":"Table.Column",properties:{actions:{type:"void","x-component":"Space","x-component-props":{split:"|"},properties:{view:{type:"void",title:'{{ t("Configure fields") }}',"x-component":"Action.Link","x-component-props":{},properties:{drawer:{type:"void","x-component":"Action.Drawer","x-component-props":{destroyOnClose:!0,width:"70%"},"x-reactions":e=>{const t=e.path.segments[1],o=e.path.segments[0],r=e.form.getValuesIn(`${o}.${t}`);r&&(e.title=`${sr(r.title)} - ${sr('{{ 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,r)=>{o.loading=!0,e(o,r,t).then(tt.action.bound(a=>{o.dataSource=a,o.loading=!1})).catch(console.error)},My=()=>{const[e,t]=p.useState([]);return[e,t]},jy=()=>{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))})}}},ky=()=>({run(){return O(this,null,function*(){})}}),Ky=()=>{const e=n.useRecord(),{getCollectionFields:t}=n.useCollectionManager_deprecated();return e.__parent&&e.__parent.interface==="subTable"?p.useContext(n.DataSourceContext_deprecated).dataSource:t(e.collectionName||e.name)},Ny=e=>`${e||""}${L.uid()}`,By=()=>{const{t:e}=V.useTranslation(),{interfaces:t,getCollections:o}=n.useCollectionManager_deprecated(),{data:{database:r}}=n.useCurrentAppInfo(),a=p.useContext(n.CollectionCategroriesContext),s=n.useAPIClient(),c=s.resource("dbViews"),l=n.useCompile(),d=(S,D,C)=>O(this,null,function*(){var b;const{targetScope:x}=D,v=((b=S.props)==null?void 0:b.name)==="inherits";return o().filter(m=>{var j;if(C!=null&&C.includes(m.template)||m.autoCreate&&m.isThrough||v&&m.template==="view")return!1;const w=!(x!=null&&x.template)||x.template.includes(m.template),T=!(x!=null&&x[(j=S.props)==null?void 0:j.name])||x[S.props.name].includes(m.name);return w&&T}).map(m=>({label:l(m.title),value:m.name}))}),u=()=>O(this,null,function*(){return a.data.map(S=>({label:l(S.name),value:S.id}))}),f=()=>O(this,null,function*(){return c.list().then(({data:S})=>{var D;return(D=S==null?void 0:S.data)==null?void 0:D.map(C=>{const x=C.schema;return{label:x?`${x}.${l(C.name)}`:C.name,value:x?`${x}_${C.name}`:C.name}})})}),y=()=>O(this,null,function*(){return s.resource("storages").list().then(({data:S})=>{var D;return(D=S==null?void 0:S.data)==null?void 0:D.map(C=>({label:e(l(C.title)),value:C.name}))})}),g=p.useContext(n.SchemaComponentContext);return i.jsx(n.SchemaComponentContext.Provider,{value:k($({},g),{designable:!1}),children:i.jsx(n.SchemaComponent,{schema:Dy,components:{AddSubFieldAction:n.AddSubFieldAction,EditSubFieldAction:n.EditSubFieldAction,FieldSummary:n.FieldSummary,TemplateSummay:n.TemplateSummary,CollectionFieldsTable:Ag,CollectionFields:ar},scope:{useDestroySubField:jy,useBulkDestroySubField:ky,useSelectedRowKeys:My,useAsyncDataSource:Ey,loadCollections:d,loadCategories:u,loadDBViews:f,loadStorages:y,useCurrentFields:Ky,useNewId:Ny,useCancelAction:n.useCancelAction,interfaces:t,enableInherits:(r==null?void 0:r.dialect)==="postgres",isPG:(r==null?void 0:r.dialect)==="postgres"}})})};var cr={exports:{}},q={};/** @license React v16.13.1
|
|
43
|
-
* react-is.production.min.js
|
|
44
|
-
*
|
|
45
|
-
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
46
|
-
*
|
|
47
|
-
* This source code is licensed under the MIT license found in the
|
|
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 lr(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 lr(e)||X(e)===_t},q.isConcurrentMode=lr,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,cr.exports=q;var Uy=cr.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},ur={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},Dt={};Dt[Pt.ForwardRef]=Yy,Dt[Pt.Memo]=ur;function pr(e){return Pt.isMemo(e)?ur:Dt[e.$$typeof]||Hy}var Qy=Object.defineProperty,Zy=Object.getOwnPropertyNames,dr=Object.getOwnPropertySymbols,Jy=Object.getOwnPropertyDescriptor,Xy=Object.getPrototypeOf,mr=Object.prototype;function fr(e,t,o){if(typeof t!="string"){if(mr){var r=Xy(t);r&&r!==mr&&fr(e,r,o)}var a=Zy(t);dr&&(a=a.concat(dr(t)));for(var s=pr(e),c=pr(t),l=0;l<a.length;++l){var d=a[l];if(!Wy[d]&&!(o&&o[d])&&!(c&&c[d])&&!(s&&s[d])){var u=Jy(t,d);try{Qy(e,d,u)}catch(f){}}}}return e}var Ry=fr;const eg=be(Ry);var yr=typeof document!="undefined"?p.useLayoutEffect:p.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 gr=tg(),Xe=gr.FinalizationRegistry&&new gr.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 r,a;(a=(r=o.token)===null||r===void 0?void 0:r.clean)===null||a===void 0||a.call(r)},this.expireTime)},e.prototype.close=function(){Xe?Xe.unregister(this.token):clearTimeout(this.request)},e}(),vr=function(e){var t=!1;return Promise.resolve(0).then(function(){if(t){t=!1;return}e()}),function(){t=!0}},rg=function(e){var t=p.useRef(null);t.current=vr(e),yr(function(){t.current(),e()})},ng=function(e,t){var o=typeof Symbol=="function"&&e[Symbol.iterator];if(!o)return e;var r=o.call(e),a,s=[],c;try{for(;(t===void 0||t-- >0)&&!(a=r.next()).done;)s.push(a.value)}catch(l){c={error:l}}finally{try{a&&!a.done&&(o=r.return)&&o.call(r)}finally{if(c)throw c.error}}return s},It=[],$e={value:0},Ot=new Set;function ag(){var e=ng(p.useState([]),2),t=e[1],o=p.useRef(!1),r=p.useRef(!1);yr(function(){return o.current=!0,r.current&&(t([]),r.current=!1),function(){o.current=!1}},It);var a=p.useCallback(function(){t([])},It),s=p.useCallback(function(){if(!o.current){r.current=!0;return}$e.value===0?a():Ot.add(a)},It);return $e.value++,rg(function(){$e.value>0&&$e.value--,$e.value===0&&Ot.forEach(function(c){Ot.delete(c),c()})}),s}var hr=Array.isArray,sg=function(e,t){var o=hr(e),r=hr(t);return o!==r?!1:o?e.length!==t.length?!1:e.every(function(a,s){return a===t[s]}):e===t},Cr=function(e,t){var o=p.useRef(null),r=p.useRef(!1);p.useEffect(function(){r.current=!0;var a=e();return function(){if(r.current=!1,!sg(o.current,t)){a&&a();return}vr(function(){r.current||a&&a()})}},t),o.current=t},ig=function(e,t){var o=typeof Symbol=="function"&&e[Symbol.iterator];if(!o)return e;var r=o.call(e),a,s=[],c;try{for(;(t===void 0||t-- >0)&&!(a=r.next()).done;)s.push(a.value)}catch(l){c={error:l}}finally{try{a&&!a.done&&(o=r.return)&&o.call(r)}finally{if(c)throw c.error}}return s},cg=function(){function e(){}return e}();function lg(){return new cg}var ug=function(e){var t=p.useRef(null),o=p.useRef(),r=ig(p.useState(lg),1),a=r[0];return t.current||(t.current=e()),o.current||(o.current=new og(function(){t.current&&t.current.dispose()}),o.current.open(a)),Cr(function(){return o.current.close(),function(){t.current&&(t.current.dispose(),t.current=null)}},[]),t.current},br=function(e,t){var o=ag(),r=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 r.track(e)},Te=function(){return Te=Object.assign||function(e){for(var t,o=1,r=arguments.length;o<r;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),r=o.forwardRef?p.forwardRef(function(s,c){return br(function(){return e(Te(Te({},s),{ref:c}))},o)}):function(s){return br(function(){return e(s)},o)},a=p.memo(r);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 p.createElement(p.Fragment,{},t)});var dg=Cr,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=>i.jsx("tr",$({},e)),cell:e=>i.jsx("td",k($({},e),{className:or(e.className,ae.css`
|
|
50
|
-
max-width: 300px;
|
|
51
|
-
overflow: hidden;
|
|
52
|
-
text-overflow: ellipsis;
|
|
53
|
-
white-space: nowrap;
|
|
54
|
-
`)}))}},gg=()=>{const[e,t]=p.useState([]);return[e,t]},vg=(e,t)=>{const o=A.useField();return n.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=A.observer(e=>{const t=["primaryAndForeignKey","relation","basic","systemInfo"],o=A.useField(),r=n.useRecord(),{name:a}=r,{t:s}=V.useTranslation(),c=n.useCompile(),{getInterface:l,getInheritCollections:d,getCollection:u,getCurrentCollectionFields:f,getInheritedFields:y}=n.useCollectionManager_deprecated(),_=e,{showIndex:g=!0,useSelectedRowKeys:S=gg,useDataSource:D=vg,onChange:C}=_,x=et(_,["showIndex","useSelectedRowKeys","useDataSource","onChange"]),[v,I]=S(),[b,m]=p.useState([]),[P,w]=p.useState(v),T=d(a);D({onSuccess(K){o.value=(K==null?void 0:K.data)||[];const B=[],Q=new Map,H=(E,Y)=>{let G=Q.get(E);G||(G=[]),G.push(Y),Q.set(E,G)};o.value.forEach(E=>{const Y=l(E==null?void 0:E.interface);if(E!=null&&E.primaryKey||E.isForeignKey){H("primaryAndForeignKey",E);return}const G=Y==null?void 0:Y.group;switch(G){case"systemInfo":case"relation":H(G,E);break;default:H("basic",E)}}),T&&T.forEach(E=>{t.push(E),u(E).fields.map(G=>{G.interface&&(H(E,new Proxy(G,{})),o.value.push(new Proxy(G,{})))})}),t.forEach(E=>{var Y;if(((Y=Q.get(E))==null?void 0:Y.length)>0){const G=u(E);B.push({key:E,name:s(Cg.get(E))||s("Parent collection fields")+`(${c(G.title)})`,data:Q.get(E)})}}),w(t),m(B)}});const j=()=>{const K=A.useFieldSchema(),{exists:B,render:Q}=n.useSchemaInitializerRender(K["x-initializer"],K["x-initializer-props"]),H=K.reduceProperties((E,Y)=>{if(fg(Y))return E.concat([Y])},[]).map(E=>({title:i.jsx(A.RecursionField,{name:E.name,schema:E,onlyRenderSelf:!0}),dataIndex:E.name,key:E.name,render:(Y,G)=>{const oe=J.findIndex(o.value,G);return i.jsx(n.RecordIndexProvider,{index:oe,children:i.jsx(n.RecordProvider,{record:G,parent:r,children:i.jsx(A.RecursionField,{schema:E,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 E=j();if(!e.loading){T.includes(K.key)&&(E.pop(),E.push({title:i.jsx(A.RecursionField,{name:"column4",schema:rr,onlyRenderSelf:!0}),dataIndex:"column4",key:"column4",render:(G,oe)=>{const ne=J.findIndex(o.value,oe);return i.jsx(n.RecordIndexProvider,{index:ne,children:i.jsx(n.RecordProvider,{record:oe,parent:r,children:i.jsx(n.SchemaComponent,{scope:{currentCollection:a},schema:rr,name:ne,onlyRenderProperties:!0})})})}}));const Y={rowSelection:e.rowSelection&&!T.includes(K.key)?$({type:"checkbox",selectedRowKeys:v,onChange(G){I(G)}},e.rowSelection):void 0};return i.jsx(h.Table,k($($({},x),Y),{components:yg,showHeader:!0,columns:E,dataSource:K.data,pagination:!1}))}};return i.jsx("div",{className:ae.css`
|
|
55
|
-
.ant-table {
|
|
56
|
-
overflow-x: auto;
|
|
57
|
-
overflow-y: hidden;
|
|
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`
|
|
38
|
+
`,children:P})},{dataIndex:"name",title:C("Field name")},{dataIndex:"interface",title:C("Field interface")},{dataIndex:"titleField",title:C("Title field")},{dataIndex:"description",title:C("Description")},{dataIndex:"actions",title:C("Actions")}],f=p(o),m={pf:[],association:[],general:[],system:[]};f.forEach(P=>{if(P.primaryKey||P.isForeignKey)m.pf.push(P);else if(P.interface){const _=i(P.interface);(_==null?void 0:_.group)==="systemInfo"?m.system.push(P):(_==null?void 0:_.group)==="relation"?m.association.push(P):m.general.push(P)}});const v=[{key:"pf",title:C("PK & FK fields"),fields:m.pf},{key:"association",title:C("Association fields"),fields:m.association},{key:"general",title:C("General fields"),fields:m.general},{key:"system",title:C("System fields"),fields:m.system}];v.push(...b.map(P=>{const _=l(P);if(_)return{key:P,title:`${C("Inherited fields")} - `+e(_==null?void 0:_.title),inherit:!0,fields:(_==null?void 0:_.fields)||[]}}).filter(Boolean));const F=d.useMemo(()=>({useAction:r.useBulkDestroyActionAndRefreshCM,title:C("Delete"),icon:"DeleteOutlined",disabled:S==null?void 0:S.forbidDeletion,confirm:{title:C("Delete record"),content:C("Are you sure you want to delete it?")}}),[C]),M={type:"primary",database:s},O={type:"primary"},[k,K]=d.useState(!1),w=()=>{K(!k)};return a.jsx(jo.Provider,{value:{refresh:k,handleRefresh:w},children:a.jsx(r.ResourceActionProvider,N(A({},Gy),{children:a.jsx(T.FormContext.Provider,{value:y,children:a.jsxs(T.FieldContext.Provider,{value:g,children:[a.jsxs(x.Space,{align:"end",className:ye.css`
|
|
39
|
+
justify-content: flex-end;
|
|
40
|
+
display: flex;
|
|
41
|
+
margin-bottom: 16px;
|
|
42
|
+
`,children:[a.jsx(r.Action,A({},F)),a.jsx(r.SyncFieldsAction,A({},O)),a.jsx(r.SyncSQLFieldsAction,{refreshCMList:$}),a.jsx(r.SchemaComponent,{schema:{type:"object",properties:A({},S.configureActions)}}),a.jsx(r.AddCollectionField,A({},M))]}),a.jsx(x.Table,{rowKey:"key",columns:h,dataSource:v.filter(P=>P.fields.length),pagination:!1,className:zy,expandable:{defaultExpandAllRows:!0,defaultExpandedRowKeys:v.map(P=>P.key),expandedRowRender:P=>P.inherit?a.jsx(Wy,{fields:P.fields,collectionResource:I,refreshAsync:$}):a.jsx(Hy,{fields:P.fields,collectionResource:I,refreshAsync:$})}})]})})}))})},ko=e=>T.Schema.compile(e,{t:r.i18n.t}),Qy={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"}}}}},Ko={type:"object",properties:{[B.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"}}}},[B.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,s){return D(this,null,function*(){yield e.resource("collections").move({sourceId:n.key,targetId:s.key}),x.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=`${ko(n.title)} - ${ko('{{ 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"}}}}}}}}}},Yy={type:"object",properties:{form:{type:"void","x-decorator":"Form","x-component":"Action.Modal",title:'{{ t("Add category") }}',"x-component-props":{width:520,getContainer:"{{ getContainer }}"},properties:{name:{type:"string",title:'{{t("Category name")}}',required:!0,"x-disabled":"{{ !createOnly }}","x-decorator":"FormItem","x-component":"Input"},color:{type:"string",title:'{{t("Color")}}',required:!1,"x-decorator":"FormItem","x-component":"ColorSelect"},footer:{type:"void","x-component":"Action.Modal.Footer",properties:{action1:{title:'{{ t("Cancel") }}',"x-component":"Action","x-component-props":{useAction:"{{ useCancelAction }}"}},action2:{title:'{{ t("Submit") }}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ useCreateCategry }}",style:{marginLeft:"8px"}}}}}}}}},Jy={type:"object",properties:{form:{type:"void","x-decorator":"Form","x-decorator-props":{useValues:"{{ useValuesFromRecord }}"},"x-component":"Action.Modal",title:'{{ t("Edit category") }}',"x-component-props":{width:520,getContainer:"{{ getContainer }}"},properties:{name:{type:"string",title:'{{t("Category name")}}',required:!0,"x-disabled":"{{ !createOnly }}","x-decorator":"FormItem","x-component":"Input"},color:{type:"string",title:'{{t("Color")}}',required:!1,"x-decorator":"FormItem","x-component":"ColorSelect"},footer:{type:"void","x-component":"Action.Modal.Footer",properties:{action1:{title:'{{ t("Cancel") }}',"x-component":"Action","x-component-props":{useAction:"{{ useCancelAction }}"}},action2:{title:'{{ t("Submit") }}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ useEditCategry }}",style:{marginLeft:"8px"}}}}}}}}},Zy=(e,t)=>(o,n)=>{o.loading=!0,e(o,n,t).then(pt.action.bound(s=>{o.dataSource=s,o.loading=!1})).catch(console.error)},Xy=()=>{const[e,t]=d.useState([]);return[e,t]},Ry=()=>{const e=r.useRecord(),t=T.useForm();return{run(){return D(this,null,function*(){var s,i,c;const n=(c=(i=(s=t.values)==null?void 0:s.children)==null?void 0:i.slice)==null?void 0:c.call(i);t.setValuesIn("children",n.filter(l=>l.name!==e.name))})}}},ef=()=>({run(){return D(this,null,function*(){})}}),tf=()=>{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)},of=e=>`${e||""}${B.uid()}`,nf=()=>{const{t:e}=V.useTranslation(),{interfaces:t,getCollections:o}=r.useCollectionManager_deprecated(),{data:{database:n}}=r.useCurrentAppInfo(),s=d.useContext(r.CollectionCategroriesContext),i=r.useAPIClient(),c=i.resource("dbViews"),l=r.useCompile();T.useForm();const p=($,S,b)=>D(this,null,function*(){var v;const{targetScope:h}=S,f=((v=$.props)==null?void 0:v.name)==="inherits";return o().filter(F=>{var K;if(b!=null&&b.includes(F.template)||F.autoCreate&&F.isThrough||f&&F.template==="view")return!1;const O=!(h!=null&&h.template)||h.template.includes(F.template),k=!(h!=null&&h[(K=$.props)==null?void 0:K.name])||h[$.props.name].includes(F.name);return O&&k}).map(F=>({label:l(F.title),value:F.name}))}),u=()=>D(this,null,function*(){return s.data.map($=>({label:l($.name),value:$.id}))}),y=()=>D(this,null,function*(){return c.list().then(({data:$})=>{var S;return(S=$==null?void 0:$.data)==null?void 0:S.map(b=>{const h=b.schema;return{label:h?`${h}.${l(b.name)}`:b.name,value:h?`${h}_${b.name}`:b.name}})})}),g=$=>D(this,null,function*(){const{fields:S}=$.form.values;return Promise.resolve({data:S}).then(({data:b})=>b==null?void 0:b.map(h=>{var f;return{label:l((f=h.uiSchema)==null?void 0:f.title)||h.name,value:h.name}}))}),C=()=>D(this,null,function*(){return i.resource("storages").list().then(({data:$})=>{var S;return(S=$==null?void 0:$.data)==null?void 0:S.map(b=>({label:e(l(b.title)),value:b.name}))})}),I=d.useContext(r.SchemaComponentContext);return a.jsx(r.SchemaComponentContext.Provider,{value:N(A({},I),{designable:!1}),children:a.jsx(r.SchemaComponent,{schema:Qy,components:{AddSubFieldAction:r.AddSubFieldAction,EditSubFieldAction:r.EditSubFieldAction,FieldSummary:r.FieldSummary,TemplateSummay:r.TemplateSummary,CollectionFields:Eo},scope:{loadFilterTargetKeys:g,useDestroySubField:Ry,useBulkDestroySubField:ef,useSelectedRowKeys:Xy,useAsyncDataSource:Zy,loadCollections:p,loadCategories:u,loadDBViews:y,loadStorages:C,useCurrentFields:tf,useNewId:of,useCancelAction:r.useCancelAction,interfaces:t,enableInherits:(n==null?void 0:n.dialect)==="postgres",isPG:(n==null?void 0:n.dialect)==="postgres"}})})};function rf(e){const{attributes:t,listeners:o,setNodeRef:n}=Q.useDraggable({id:e.id,data:e.data});return a.jsx("div",N(A(A({ref:n},o),t),{children:a.jsx("div",{children:e.children})}))}function af(e){const{isOver:t,setNodeRef:o}=Q.useDroppable({id:e.id,data:e.data}),n=t?{color:"green"}:void 0;return a.jsx("div",{ref:o,style:n,children:e.children})}const sf=T.observer(({item:e})=>a.jsx(af,{id:e.id.toString(),data:e,children:a.jsx("div",{children:a.jsx(rf,{id:e.id.toString(),data:e,children:a.jsx(No,{item:e})})})}),{displayName:"TabTitle"}),No=({item:e})=>{const{t}=V.useTranslation(),o=r.useCompile();return a.jsxs(x.Space,{children:[a.jsx(x.Badge,{color:e.color}),t(o(e.name))]})},cf=T.observer(e=>{const[t,o]=d.useState(null),{refresh:n}=d.useContext(r.CollectionCategroriesContext),{refresh:s}=r.useResourceActionContext(),i=r.useAPIClient(),c=y=>D(this,null,function*(){const{active:g,over:C}=y;setTimeout(()=>{o(null)}),C&&C.id!==g.id&&(yield i.resource("collectionCategories").move({sourceId:g.id,targetId:C.id}),yield n(),yield s())});function l(y){var g;o((g=y.active)==null?void 0:g.data.current)}const p=Q.useSensor(Q.MouseSensor,{activationConstraint:{distance:10}}),u=Q.useSensors(p);return a.jsxs(Q.DndContext,{sensors:u,onDragEnd:c,onDragStart:l,children:[e.children,a.jsx(Q.DragOverlay,{children:t?a.jsx("span",{style:{whiteSpace:"nowrap"},children:a.jsx(No,{item:t})}):null})]})},{displayName:"DndProvider"}),lf=()=>{const{t:e}=V.useTranslation(),{data:t,refresh:o}=d.useContext(r.CollectionCategroriesContext),{refresh:n,run:s,defaultRequest:i,setState:c}=r.useResourceActionContext(),[l,p]=d.useState({tab:"all"}),[u,y]=d.useState(l.tab),g=r.useCompile(),C=r.useAPIClient(),{modal:I}=x.App.useApp(),$=d.useMemo(()=>{if(!t)return[];const m=t.sort((v,F)=>F.sort-v.sort).concat().map(v=>N(A({},v),{schema:Ko}));return!m.find(v=>v.id==="all")&&m.unshift({name:'{{t("All collections")}}',id:"all",sort:0,closable:!1,schema:Ko}),m},[t]);d.useEffect(()=>{l.tab!=="all"&&S(l.tab)},[]);const S=m=>{var v;if(p({tab:m}),y(B.uid()),m!=="all"){const M={$and:[(v=i==null?void 0:i.params)==null?void 0:v.filter,{"category.id":m}]};s({filter:M}),c==null||c({category:[+m],params:[{filter:M}]})}else s(),c==null||c({category:[],params:[]})},b=m=>{I.confirm({title:g("{{t('Delete category')}}"),content:g("{{t('Are you sure you want to delete it?')}}"),onOk:()=>D(this,null,function*(){yield C.resource("collectionCategories").destroy({filter:{id:m}}),m===+l.tab&&p({tab:"all"}),yield o(),yield n()})})},h=()=>D(this,null,function*(){return t.map(m=>({label:e(g(m.name)),value:m.id}))}),f=J.memoize(m=>({items:[{key:"edit",label:a.jsx(r.SchemaComponent,{schema:{type:"void",properties:{[B.uid()]:{"x-component":"EditCategory","x-component-props":{item:m}}}}})},{key:"delete",label:g("{{t('Delete category')}}"),onClick:()=>b(m.id)}]}));return t?a.jsx(cf,{children:a.jsx(x.Tabs,{addIcon:a.jsx(r.SchemaComponent,{schema:{type:"void",properties:{addCategories:{type:"void",title:'{{ t("Add category") }}',"x-component":"AddCategory","x-component-props":{type:"primary"}}}}}),onChange:S,defaultActiveKey:l.tab||"all",type:"editable-card",destroyInactiveTabPane:!0,tabBarStyle:{marginBottom:"0px"},items:$.map(m=>({label:m.id!=="all"?a.jsx("div",{"data-no-dnd":"true",children:a.jsx(sf,{item:m})}):g(m.name),key:String(m.id),closable:m.closable,closeIcon:a.jsx(x.Dropdown,{menu:f(m),children:a.jsx(Y.MenuOutlined,{role:"button","aria-label":g(m.name),style:{padding:8,margin:"-8px"}})}),children:a.jsx(x.Card,{bordered:!1,children:a.jsx(r.SchemaComponentOptions,{components:{CollectionFields:Eo},inherit:!0,scope:{loadCategories:h,categoryVisible:m.id==="all",categoryId:m.id},children:a.jsx(T.RecursionField,{name:u,schema:m.schema,onlyRenderProperties:!0})})})}))})}):null},uf=()=>{const e=T.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:A({},i)}),t.setVisible(!1),yield e.reset(),yield o()})}}},pf=e=>a.jsx(Vo,A({},e)),Vo=e=>{const{scope:t,getContainer:o,children:n}=e,[s,i]=d.useState(!1),{t:c}=V.useTranslation();return a.jsxs(r.ActionContextProvider,{value:{visible:s,setVisible:i},children:[a.jsx("div",{onClick:()=>i(!0),title:c("Add category"),children:n||a.jsx(Y.PlusOutlined,{})}),a.jsx(r.SchemaComponent,{schema:Yy,components:{CollectionCategory:r.CollectionCategory,CollectionTemplateTag:r.CollectionTemplateTag},scope:A({getContainer:o,useCancelAction:r.useCancelAction,createOnly:!0,useCreateCategry:uf},t)})]})},df=()=>{const e=T.useForm(),t=r.useActionContext(),{refresh:o}=d.useContext(r.CollectionCategroriesContext),{refresh:n}=r.useResourceActionContext(),s=r.useAPIClient(),{id:i}=r.useRecord();return{run(){return D(this,null,function*(){yield e.submit();const l=J.cloneDeep(e.values);yield s.resource("collectionCategories").update({filter:{id:i},values:A({},l)}),t.setVisible(!1),yield e.reset(),yield o(),yield n()})}}},mf=e=>{const t=r.useRecord(),o=r.useRequest(()=>Promise.resolve({data:J.cloneDeep(t)}),N(A({},e),{manual:!0})),n=r.useActionContext();return d.useEffect(()=>{n.visible&&o.run()},[n.visible]),o},yf=e=>a.jsx(Bo,A({},e)),Bo=e=>{const{scope:t,getContainer:o,item:n,children:s}=e,[i,c]=d.useState(!1),l=r.useCompile();return a.jsx(r.RecordProvider,{record:n,children:a.jsxs(r.ActionContextProvider,{value:{visible:i,setVisible:c},children:[a.jsx(a.Fragment,{children:s||a.jsx("span",{onClick:()=>c(!0),children:l('{{ t("Edit category") }}')})}),a.jsx(r.SchemaComponent,{schema:Jy,scope:A({getContainer:o,useCancelAction:r.useCancelAction,createOnly:!0,useEditCategry:df,useValuesFromRecord:mf},t)})]})})};me.registerValidateFormats({uid:/^[a-zA-Z][a-zA-Z0-9_-]*$/});const ff={type:"object",properties:{[B.uid()]:{"x-component":"ConfigurationTable"}}},gf=()=>a.jsx(r.SchemaComponent,{schema:ff,components:{CollectionCategroriesProvider:r.CollectionCategroriesProvider,ConfigurationTable:nf,ConfigurationTabs:lf,AddFieldAction:r.AddFieldAction,AddCollectionField:r.AddCollectionField,AddCollection:r.AddCollection,AddCollectionAction:r.AddCollectionAction,AddCategoryAction:Vo,AddCategory:pf,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:yf,EditCategoryAction:Bo,SyncFieldsAction:r.SyncFieldsAction,SyncFieldsActionCom:r.SyncFieldsActionCom,SyncSQLFieldsAction:r.SyncSQLFieldsAction}}),Ce=d.createContext(null);Ce.displayName="PermissionContext";const hf=e=>{const t=r.useAPIClient(),o=r.useRecord(),{t:n}=V.useTranslation(),s=d.useContext(ve),{snippets:i}=s;i==null||i.forEach(p=>{s[p]=!0});const[c,l]=d.useState(s);return d.useEffect(()=>{l(s)},[s]),a.jsx(Ce.Provider,{value:{currentDataSource:o,currentRecord:c,update:(p,u)=>D(this,null,function*(){yield t.request({url:`dataSources/${o.key}/roles:update`,data:u.values,method:"post",params:{filterByTk:u.values.roleName}}),l(A(A({},c),u.values)),x.message.success(n("Saved successfully"))})},children:e.children})},Cf=e=>{const t=d.useContext(ve),o=r.useRecord();return a.jsx(r.RecordContext_deprecated.Provider,{value:A({},t),children:a.jsx(r.SchemaComponentOptions,{scope:{dataSourceKey:o.key},children:e.children})})},vf=e=>{const t=r.useRecord(),{visible:o}=r.useActionContext(),{currentDataSource:n}=d.useContext(Ce),s=r.useRequest({resource:"roles.dataSourceResources",resourceOf:t.roleName,action:"get",params:{appends:["actions","actions.scope"],filterByTk:t.name,filter:{dataSourceKey:n.key,name:t.name}}},N(A({},e),{manual:!0}));return d.useEffect(()=>{if(!t.exists){e.onSuccess({data:{}});return}o&&s.run()},[o,t.exists]),s},bf=()=>{const e=T.useForm(),t=r.useAPIClient(),o=r.useRecord(),n=r.useActionContext(),{refresh:s}=r.useResourceActionContext(),{currentDataSource:i}=d.useContext(Ce);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:N(A({},e.values),{name:o.name,dataSourceKey:i.key})}),n.setVisible(!1),s()})}}},xf={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:{[B.uid()]:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:16}},properties:{filter:{type:"void",title:'{{ t("Filter") }}',default:{$and:[{title:{$includes:""}},{name:{$includes:""}}]},"x-action":"filter","x-component":"Filter.Action","x-use-component-props":"cm.useFilterActionProps","x-component-props":{icon:"FilterOutlined"},"x-align":"left"}}},table1:{type:"void","x-uid":"input","x-component":"Table.Void","x-component-props":{rowKey:"name",useDataSource:"{{ cm.useDataSourceFromRAC }}"},properties:{column0:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{title:{type:"number","x-component":"CollectionField","x-read-pretty":!0}}},column2:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{name:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},column3:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{usingConfig:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},column4:{type:"void",title:'{{t("Actions")}}',"x-component":"Table.Column",properties:{actions:{type:"void","x-component":"Space","x-component-props":{split:"|"},properties:{configure:{type:"void",title:'{{t("Configure")}}',"x-component":"Action.Link","x-component-props":{type:"primary"},properties:{drawer:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{useValues:vf},title:'{{t("Configure permission")}}',properties:{usingActionsConfig:{title:'{{t("Permission policy")}}',"x-component":"Radio.Group","x-decorator":"FormItem",default:!1,enum:[{value:!1,label:'{{t("General")}}'},{value:!0,label:'{{t("Individual")}}'}],"x-reactions":{target:"actions",fulfill:{state:{hidden:"{{!$self.value}}"}}}},actions:{"x-component":"RolesResourcesActions","x-decorator":"FormItem"},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:bf}}}}}}}}}}}}}}}}}},Lo={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}}]},Sf={type:"object",properties:{block1:{type:"void","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:Lo,resourceName:"dataSources",request:{resource:"dataSources",action:"list",params:{pageSize:50,showAnonymous:!0,appends:[]}}},"x-component":"CollectionProvider_deprecated","x-component-props":{collection:Lo},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:xf}}}}}}}}}}}}}}}}}},ct=d.createContext([]);ct.displayName="AvailableActionsContext";const Af=e=>{const{data:t,loading:o}=r.useRequest({resource:"availableActions",action:"list"});return o?a.jsx(x.Spin,{}):a.jsx(ct.Provider,{value:t==null?void 0:t.data,children:e.children})},qo=()=>d.useContext(ct),$f=()=>{const e=r.useRecord();return a.jsx("div",{children:a.jsx(r.SchemaComponentContext.Provider,{value:{designable:!1},children:a.jsx(Af,{children:a.jsx(r.SchemaComponent,{schema:Sf,components:{SettingCenterPermissionProvider:r.SettingCenterPermissionProvider,PermissionProvider:hf},scope:{dataSourceKey:e.key}})})})})},Tf=()=>{const{update:e}=d.useContext(Ce),{t}=V.useTranslation(),{key:o}=r.useRecord();return a.jsx(r.SchemaComponent,{schema:{type:"void",name:"form","x-component":"Form","x-component-props":{useValues:n=>{const s=r.useAPIClient(),i=d.useContext(ve);return r.useRequest(()=>s.resource(`dataSources/${o}/roles`).get({filterByTk:i.name}).then(c=>{var p,u;const l=(p=c==null?void 0:c.data)==null?void 0:p.data;return(u=l.snippets)==null||u.forEach(y=>{l[y]=!0}),{data:l}}),n)},effects(){me.onFieldChange("*",(n,s)=>D(this,null,function*(){s.modified&&(yield e(n,s))}))}},properties:{"strategy.actions":{description:t("All collections use general action permissions by default; permission configured individually will override the default one."),"x-component":"StrategyActions"}}}})},Ff=e=>{var o;if(!e)return{};const t={};return(o=e==null?void 0:e.forEach)==null||o.call(e,n=>{const[s,i]=n.split(":");t[s]=i||"all"}),t},Go=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},wf=T.connect(e=>{const{onChange:t}=e,o=qo(),n=r.useCompile(),{t:s}=V.useTranslation(),i=T.useField(),c=Ff(i.value);return a.jsx("div",{children:a.jsx(x.Table,{size:"small",pagination:!1,columns:[{dataIndex:"displayName",title:s("Action display name"),render:l=>n(l)},{dataIndex:"onNewRecord",title:s("Action type"),render:l=>l?a.jsx(x.Tag,{color:"green",children:s("Action on new records")}):a.jsx(x.Tag,{color:"geekblue",children:s("Action on existing records")})},{dataIndex:"enabled",title:s("Allow"),render:(l,p)=>a.jsx(x.Checkbox,{checked:l,onChange:u=>{l?delete c[p.name]:c[p.name]="all",t(Go(c))}})},{dataIndex:"scope",title:s("Data scope"),render:(l,p)=>!p.onNewRecord&&a.jsx(x.Select,{"data-testid":"select-data-scope",popupMatchSelectWidth:!1,size:"small",value:l,options:[{label:s("All records"),value:"all"},{label:s("Own records"),value:"own"}],onChange:u=>{c[p.name]=u,t(Go(c))}})}],dataSource:o==null?void 0:o.map(l=>{let p="all",u=!1;return c[l.name]&&(u=!0,p=c[l.name]),N(A({},l),{enabled:u,scope:p})})})})}),_f=Qo.createStyles(({css:e})=>e`
|
|
60
43
|
.ant-table-cell {
|
|
61
44
|
> .ant-space-horizontal {
|
|
62
45
|
.ant-space-item-split:has(+ .ant-space-item:empty) {
|
|
@@ -64,4 +47,4 @@
|
|
|
64
47
|
}
|
|
65
48
|
}
|
|
66
49
|
}
|
|
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"}})});
|
|
50
|
+
`),Pf=(e="main")=>({name:`dataSources/${e}/rolesResourcesScopes`,fields:[{type:"string",name:"name",interface:"input",uiSchema:{title:'{{t("Scope name")}}',type:"string","x-component":"Input",required:!0}}]}),Df=()=>{const{name:e}=d.useContext(de),t=r.useFormBlockContext();return d.useEffect(()=>{t.form.setInitialValues({resourceName:e})},[e]),{form:t.form}},If=e=>{const t=Pf(e);return{type:"object",properties:{scope:{"x-component":"RecordPicker","x-component-props":{size:"small",fieldNames:{label:"name",value:"id"},multiple:!1,association:{target:"rolesResourcesScopes"},onChange:"{{ onChange }}"},properties:{selector:{type:"void",title:'{{ t("Select record") }}',"x-component":"RecordPicker.Selector","x-component-props":{className:"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(de).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":Df,properties:{name:{type:"string","x-component":"CollectionField","x-decorator":"FormItem"},scope:{type:"object",title:'{{t("Data scope")}}',name:"filter","x-decorator":"FormItem","x-component":"Filter","x-use-component-props":()=>{const o=d.useContext(de);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(de);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"}}}}}}}}}}}}},Uo=d.createContext(null);Uo.displayName="RolesResourcesScopesSelectedRowKeysContext";const Of=e=>{const[t,o]=d.useState([]);return a.jsx(Uo.Provider,{value:[t,o],children:e.children})},Mf=e=>{const t=d.useMemo(()=>me.createForm({values:{scope:e.value}}),[]),{key:o}=r.useRecord(),n=If(o);return a.jsx(r.FormProvider,{form:t,children:a.jsx(r.SchemaComponent,{components:{RolesResourcesScopesSelectedRowKeysProvider:Of},scope:{onChange(s){var i;(i=e==null?void 0:e.onChange)==null||i.call(e,s)}},schema:n})})},jf=e=>{var o;const t={};return(o=e==null?void 0:e.forEach)==null||o.call(e,n=>{n.name&&(t[n.name]=n,t[n.name].scope=J.isEmpty(n.scope)?null:n.scope)}),t},de=d.createContext({});de.displayName="RoleResourceCollectionContext";const Ef=T.connect(e=>{var b,h;const{styles:t}=_f(),o=f=>{const m=f.map(v=>N(A({},v),{scope:J.isEmpty(v.scope)?null:v.scope}));e.onChange(m)},n=r.useRecord(),s=qo(),i=n.fields,c=r.useCompile(),{t:l}=V.useTranslation(),p=T.useField(),u=jf(p.value||[]),y=(f,m)=>{var F;const v=u==null?void 0:u[f];return v?(F=v==null?void 0:v.fields)==null?void 0:F.includes(m):!1},g=s.filter(f=>f.allowConfigureFields),C=i==null?void 0:i.map(f=>{const m=A({},f);for(const v of g)m[v.name]=y(v.name,f.name);return m}),I=f=>{var m;u[f]?delete u[f]:u[f]={name:f,fields:(m=i==null?void 0:i.map)==null?void 0:m.call(i,v=>v.name)},o(Object.values(u))},$=(f,m)=>{u[f]?(u[f].scope=m,o(Object.values(u))):(I(f),u[f].scope=m,o(Object.values(u)))},S={};for(const f of g)S[f.name]=(i==null?void 0:i.length)===((h=(b=u==null?void 0:u[f.name])==null?void 0:b.fields)==null?void 0:h.length);return a.jsx("div",{children:a.jsx(de.Provider,{value:n,children:a.jsxs(re.FormLayout,{layout:"vertical",children:[a.jsx(re.FormItem,{label:l("Action permission"),children:a.jsx(x.Table,{className:t,size:"small",pagination:!1,columns:[{dataIndex:"displayName",title:l("Action display name"),render:f=>c(f)},{dataIndex:"onNewRecord",title:l("Action type"),render:f=>f?a.jsx(x.Tag,{color:"green",children:l("Action on new records")}):a.jsx(x.Tag,{color:"geekblue",children:l("Action on existing records")})},{dataIndex:"enabled",title:l("Allow"),render:(f,m)=>a.jsx(x.Checkbox,{checked:f,onChange:()=>{I(m.name)}})},{dataIndex:"scope",title:l("Data scope"),render:(f,m)=>!m.onNewRecord&&a.jsx(Mf,{value:f,onChange:v=>{$(m.name,v)}})}],dataSource:s==null?void 0:s.map(f=>{let m=!1,v=null;return u[f.name]&&(m=!0,f.onNewRecord||(v=u[f.name].scope)),N(A({},f),{enabled:m,scope:v})})})}),a.jsx(re.FormItem,{label:l("Field permission"),children:a.jsx(x.Table,{className:t,pagination:!1,dataSource:C,columns:[{dataIndex:["uiSchema","title"],title:l("Field display name"),render:(f,m)=>c(f)||m.name},...g.map(f=>{const m=S==null?void 0:S[f.name];return{dataIndex:f.name,title:a.jsxs(a.Fragment,{children:[a.jsx(x.Checkbox,{checked:m,onChange:()=>{var F;const v=u[f.name]||{name:f.name};m?v.fields=[]:v.fields=(F=i==null?void 0:i.map)==null?void 0:F.call(i,M=>M.name),u[f.name]=v,o(Object.values(u))}}),c(f.displayName)]}),render:(v,F)=>a.jsx(x.Checkbox,{checked:v,onChange:()=>{const M=u[f.name]||{name:f.name},O=M.fields||[];if(v){const k=O.indexOf(F.name);O.splice(k,1)}else O.push(F.name);M.fields=O,u[f.name]=M,o(Object.values(u))}})}})]})})]})})})}),kf={type:"object",properties:{[B.uid()]:{"x-component":"DataSourceTable"}}},ve=d.createContext({});ve.displayName="CurrentRolesContext";const Kf=({role:e})=>a.jsx(x.Card,{"data-testid":"acl-pane-card",bordered:!1,children:a.jsx(ve.Provider,{value:e,children:a.jsx(r.SchemaComponent,{components:{MenuConfigure:r.MenuConfigure,RoleConfigure:Tf,RolesResourcesActions:Ef,DataSourceTable:$f,StrategyActions:wf,SettingsCenterConfigure:r.SettingsCenterConfigure,SettingCenterProvider:r.SettingCenterProvider,ResourceActionProvider:r.ResourceActionProvider,RoleRecordProvider:Cf},schema:kf})})});class be extends r.Plugin{constructor(){super(...arguments);Wo(this,"types",new Map)}load(){return D(this,null,function*(){this.app.addComponents({DataSourcePermissionManager:Kf}),this.app.use(Xo),this.app.pluginSettingsManager.add(E,{title:`{{t("Data sources", { ns: "${E}" })}}`,icon:"ClusterOutlined",showTabs:!1,aclSnippet:"pm.data-source-manager*"}),this.app.pluginSettingsManager.add(`${E}.list`,{title:`{{t("Data sources", { ns: "${E}" })}}`,Component:qy,sort:1,skipAclConfigure:!0,aclSnippet:"pm.data-source-manager"}),this.app.pluginSettingsManager.add(`${E}/:name`,{title:a.jsx(gt,{}),icon:"ClusterOutlined",isTopLevel:!1,sort:100,skipAclConfigure:!0,aclSnippet:"pm.data-source-manager"}),this.app.pluginSettingsManager.add(`${E}/main`,{title:a.jsx(gt,{}),icon:"ClusterOutlined",isTopLevel:!1,sort:100,skipAclConfigure:!0,aclSnippet:"pm.data-source-manager.data-source-main"}),this.app.pluginSettingsManager.add(`${E}/main.collections`,{title:`{{t("Collections", { ns: "${E}" })}}`,Component:gf,topLevelName:`${E}/main`,pluginKey:E,skipAclConfigure:!0,aclSnippet:"pm.data-source-manager.data-source-main"}),this.app.pluginSettingsManager.add(`${E}/:name.collections`,{title:`{{t("Collections", { ns: "${E}" })}}`,Component:Ky,topLevelName:`${E}/:name`,pluginKey:E,skipAclConfigure:!0,aclSnippet:"pm.data-source-manager.data-source-main"}),this.app.dataSourceManager.addDataSources(this.getThirdDataSource.bind(this),mt)})}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)}}j.PluginDataSourceManagerClient=be,j.default=be,Object.defineProperties(j,{__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.10",
|
|
3
3
|
"react": "18.2.0",
|
|
4
|
-
"@nocobase/server": "0.
|
|
4
|
+
"@nocobase/server": "0.21.0-alpha.10",
|
|
5
5
|
"lodash": "4.17.21",
|
|
6
6
|
"@ant-design/icons": "5.2.6",
|
|
7
7
|
"antd": "5.12.8",
|
|
@@ -10,15 +10,14 @@ 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.10",
|
|
14
|
+
"@nocobase/utils": "0.21.0-alpha.10",
|
|
15
|
+
"@nocobase/plugin-acl": "0.21.0-alpha.10",
|
|
16
|
+
"@nocobase/acl": "0.21.0-alpha.10",
|
|
17
17
|
"sequelize": "6.35.2",
|
|
18
18
|
"@formily/antd-v5": "1.1.9",
|
|
19
19
|
"@formily/core": "2.3.0",
|
|
20
20
|
"@formily/reactive": "2.3.0",
|
|
21
21
|
"@dnd-kit/core": "5.0.3",
|
|
22
|
-
"antd-style": "3.4.5"
|
|
23
|
-
"ahooks": "3.7.8"
|
|
22
|
+
"antd-style": "3.4.5"
|
|
24
23
|
};
|
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
|
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var update_snippet_name_exports = {};
|
|
19
|
+
__export(update_snippet_name_exports, {
|
|
20
|
+
default: () => update_snippet_name_default
|
|
21
|
+
});
|
|
22
|
+
module.exports = __toCommonJS(update_snippet_name_exports);
|
|
23
|
+
var import_server = require("@nocobase/server");
|
|
24
|
+
class update_snippet_name_default extends import_server.Migration {
|
|
25
|
+
on = "afterLoad";
|
|
26
|
+
// 'beforeLoad' or 'afterLoad'
|
|
27
|
+
appVersion = "<0.21.0-alpha.8";
|
|
28
|
+
async up() {
|
|
29
|
+
const roles = await this.db.getRepository("roles").find();
|
|
30
|
+
for (const role of roles) {
|
|
31
|
+
const snippets = await role.get("snippets");
|
|
32
|
+
let roleNeedsUpdate = false;
|
|
33
|
+
for (let i = 0; i < snippets.length; i++) {
|
|
34
|
+
if (snippets[i].includes("pm.database-connections.manager")) {
|
|
35
|
+
snippets[i] = snippets[i].replace("pm.database-connections.manager", "pm.data-source-manager");
|
|
36
|
+
roleNeedsUpdate = true;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
if (roleNeedsUpdate) {
|
|
40
|
+
await this.db.getRepository("roles").update({
|
|
41
|
+
filter: {
|
|
42
|
+
name: role.get("name")
|
|
43
|
+
},
|
|
44
|
+
values: {
|
|
45
|
+
snippets: JSON.parse(JSON.stringify(snippets))
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
package/dist/server/plugin.js
CHANGED
|
@@ -131,6 +131,9 @@ class PluginDataSourceManagerServer extends import_server.Plugin {
|
|
|
131
131
|
dataPath = "body.data";
|
|
132
132
|
}
|
|
133
133
|
const items = import_lodash.default.get(ctx, dataPath);
|
|
134
|
+
if (!Array.isArray(items)) {
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
134
137
|
import_lodash.default.set(
|
|
135
138
|
ctx,
|
|
136
139
|
dataPath,
|
|
@@ -154,13 +157,13 @@ class PluginDataSourceManagerServer extends import_server.Plugin {
|
|
|
154
157
|
const mapDataSourceWithCollection = (dataSourceModel, appendCollections = true) => {
|
|
155
158
|
const dataSource = app.dataSourceManager.dataSources.get(dataSourceModel.get("key"));
|
|
156
159
|
const dataSourceStatus = plugin.dataSourceStatus[dataSourceModel.get("key")];
|
|
157
|
-
const isDBInstance = !!dataSource.collectionManager.db;
|
|
158
160
|
const item = {
|
|
159
161
|
key: dataSourceModel.get("key"),
|
|
160
162
|
displayName: dataSourceModel.get("displayName"),
|
|
161
163
|
status: dataSourceStatus,
|
|
162
164
|
type: dataSourceModel.get("type"),
|
|
163
|
-
|
|
165
|
+
// @ts-ignore
|
|
166
|
+
isDBInstance: !!(dataSource == null ? void 0 : dataSource.collectionManager.db)
|
|
164
167
|
};
|
|
165
168
|
if (dataSourceStatus === "loading-failed" || dataSourceStatus === "reloading-failed") {
|
|
166
169
|
item["errorMessage"] = plugin.dataSourceErrors[dataSourceModel.get("key")].message;
|
|
@@ -343,6 +346,16 @@ class PluginDataSourceManagerServer extends import_server.Plugin {
|
|
|
343
346
|
acl: dataSource.acl,
|
|
344
347
|
transaction
|
|
345
348
|
});
|
|
349
|
+
await this.app.db.getRepository("roles").update({
|
|
350
|
+
filter: {
|
|
351
|
+
name: model.get("roleName")
|
|
352
|
+
},
|
|
353
|
+
values: {
|
|
354
|
+
strategy: model.get("strategy")
|
|
355
|
+
},
|
|
356
|
+
hooks: false,
|
|
357
|
+
transaction
|
|
358
|
+
});
|
|
346
359
|
});
|
|
347
360
|
this.app.on("acl:writeResources", async ({ roleName, transaction }) => {
|
|
348
361
|
const dataSource = this.app.dataSourceManager.dataSources.get("main");
|
|
@@ -398,15 +411,12 @@ class PluginDataSourceManagerServer extends import_server.Plugin {
|
|
|
398
411
|
}
|
|
399
412
|
});
|
|
400
413
|
this.app.acl.registerSnippet({
|
|
401
|
-
name: `pm
|
|
414
|
+
name: `pm.data-source-manager`,
|
|
402
415
|
actions: [
|
|
403
416
|
"dataSources:*",
|
|
404
|
-
"
|
|
405
|
-
"
|
|
406
|
-
"
|
|
407
|
-
"dbViews:*",
|
|
408
|
-
"collectionCategories:*",
|
|
409
|
-
"sqlCollection:*"
|
|
417
|
+
"dataSources.collections:*",
|
|
418
|
+
"dataSourcesCollections.fields:*",
|
|
419
|
+
"roles.dataSourceResources"
|
|
410
420
|
]
|
|
411
421
|
});
|
|
412
422
|
this.app.acl.allow("dataSources", "listEnabled", "loggedIn");
|
|
@@ -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.10",
|
|
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": "98adf5ec996a4f359c6ca1c4a6ac837c43b6e268"
|
|
20
20
|
}
|
package/dist/client/component/MainDataSourceManager/Configuration/CollectionFieldsTable.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { Options, Result } from 'ahooks/es/useRequest/src/types';
|
|
2
|
-
import { TableProps } from 'antd';
|
|
3
|
-
import React from 'react';
|
|
4
|
-
type TableVoidProps = TableProps<any> & {
|
|
5
|
-
request?: any;
|
|
6
|
-
useSelectedRowKeys?: any;
|
|
7
|
-
useDataSource?: (options?: Options<any, any> & {
|
|
8
|
-
uid?: string;
|
|
9
|
-
}, props?: any) => Result<any, any> & {
|
|
10
|
-
state?: any;
|
|
11
|
-
setState?: any;
|
|
12
|
-
};
|
|
13
|
-
};
|
|
14
|
-
export declare const CollectionFieldsTable: React.FC<TableVoidProps>;
|
|
15
|
-
export {};
|