@nocobase/plugin-data-source-manager 2.1.0-beta.8 → 2.2.0-alpha.1

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.
Files changed (96) hide show
  1. package/client-v2.d.ts +2 -0
  2. package/client-v2.js +1 -0
  3. package/dist/ai/ai-employees/orin/ignored.d.ts +10 -0
  4. package/dist/ai/ai-employees/orin/ignored.js +59 -0
  5. package/dist/ai/ai-employees/orin/skills/data-modeling/SKILLS.md +245 -0
  6. package/dist/ai/{tools → ai-employees/orin/skills/data-modeling/tools}/defineCollections.js +47 -1
  7. package/dist/ai/{tools → ai-employees/orin/skills/data-modeling/tools}/intentRouter.js +1 -1
  8. package/dist/ai/{tools/data-query → common}/common.js +63 -11
  9. package/dist/ai/{tools/data-query → common}/utils.d.ts +1 -0
  10. package/dist/ai/{tools/data-query → common}/utils.js +15 -0
  11. package/dist/ai/skills/data-metadata/SKILLS.md +108 -0
  12. package/dist/ai/{tools → skills/data-metadata/tools}/getCollectionMetadata.js +2 -2
  13. package/dist/ai/{tools → skills/data-metadata/tools}/getCollectionNames.js +2 -2
  14. package/dist/ai/{tools → skills/data-metadata/tools}/getDataSources.js +2 -2
  15. package/dist/ai/{tools → skills/data-metadata/tools}/searchFieldMetadata.js +2 -2
  16. package/dist/ai/skills/data-query/SKILLS.md +245 -0
  17. package/dist/ai/skills/data-query/tools/dataQuery.js +282 -0
  18. package/dist/ai/{tools/data-query → skills/data-query/tools}/dataSourceCounting.js +12 -4
  19. package/dist/ai/skills/data-query/tools/dataSourceQuery.d.ts +10 -0
  20. package/dist/ai/{tools/data-query → skills/data-query/tools}/dataSourceQuery.js +12 -5
  21. package/dist/client/271.1374702d84646fff.js +10 -0
  22. package/dist/client/369.342f1e0231dbe482.js +10 -0
  23. package/dist/client/397.c8c6659cf3f7ac1c.js +10 -0
  24. package/dist/client/416.197712b8b93033c5.js +10 -0
  25. package/dist/client/420.a37695bbfc3bec7a.js +10 -0
  26. package/dist/client/603.d6022bceb934f5b0.js +10 -0
  27. package/dist/client/644.b98e4b39058e9c32.js +10 -0
  28. package/dist/client/936.d5ab7aecb4eb6004.js +10 -0
  29. package/dist/client/index.js +1 -1
  30. package/dist/client-v2/167.52e683be46f9cfc7.js +10 -0
  31. package/dist/client-v2/426.53e3eaee8d9dbca0.js +10 -0
  32. package/dist/client-v2/907.a0ab273516f45ac3.js +10 -0
  33. package/dist/client-v2/components/DataSourceForm.d.ts +17 -0
  34. package/dist/client-v2/field-interfaces/index.d.ts +13 -0
  35. package/dist/client-v2/index.d.ts +12 -0
  36. package/dist/client-v2/index.js +10 -0
  37. package/dist/client-v2/locale.d.ts +12 -0
  38. package/dist/client-v2/pages/DataSourceCollectionsPage.d.ts +10 -0
  39. package/dist/client-v2/pages/DataSourcesPage.d.ts +10 -0
  40. package/dist/client-v2/pages/components/CollectionsPage.d.ts +27 -0
  41. package/dist/client-v2/pages/components/FieldForm.d.ts +19 -0
  42. package/dist/client-v2/pages/components/FieldsPage.d.ts +16 -0
  43. package/dist/client-v2/pages/components/ViewCollectionConfigure.d.ts +27 -0
  44. package/dist/client-v2/pages/components/collectionFieldApi.d.ts +11 -0
  45. package/dist/client-v2/pages/components/collectionTemplateFieldInterfaces.d.ts +18 -0
  46. package/dist/client-v2/pages/permissions/DataSourcePermissionsTab.d.ts +15 -0
  47. package/dist/client-v2/pages/permissions/PermissionEditors.d.ts +45 -0
  48. package/dist/client-v2/pages/permissions/ScopeSelect.d.ts +21 -0
  49. package/dist/client-v2/pages/permissions/permissionRequests.d.ts +33 -0
  50. package/dist/client-v2/pages/permissions/types.d.ts +55 -0
  51. package/dist/client-v2/plugin.d.ts +243 -0
  52. package/dist/client-v2/registries.d.ts +36 -0
  53. package/dist/client-v2/runtime.d.ts +12 -0
  54. package/dist/client-v2/utils/compileLegacyTemplate.d.ts +16 -0
  55. package/dist/client-v2/utils/error.d.ts +11 -0
  56. package/dist/externalVersion.js +17 -13
  57. package/dist/locale/en-US.json +275 -3
  58. package/dist/locale/zh-CN.json +275 -3
  59. package/dist/node_modules/zod/index.cjs +1 -1
  60. package/dist/node_modules/zod/package.json +1 -1
  61. package/dist/server/collections/data-sources-collections.js +1 -0
  62. package/dist/server/collections/data-sources-fields.js +1 -0
  63. package/dist/server/collections/data-sources-roles-resources-actions.js +1 -0
  64. package/dist/server/collections/data-sources-roles-resources-scopes.js +1 -0
  65. package/dist/server/collections/data-sources-roles-resources.js +1 -0
  66. package/dist/server/collections/data-sources-roles.js +1 -0
  67. package/dist/server/collections/data-sources.js +1 -0
  68. package/dist/server/mcp-post-processors.d.ts +24 -0
  69. package/dist/server/mcp-post-processors.js +158 -0
  70. package/dist/server/models/data-source.js +3 -13
  71. package/dist/server/plugin.js +7 -2
  72. package/dist/server/resourcers/data-sources-collections-fields.d.ts +1 -0
  73. package/dist/server/resourcers/data-sources-collections-fields.js +19 -0
  74. package/dist/server/services/external-field-apply.d.ts +23 -0
  75. package/dist/server/services/external-field-apply.js +208 -0
  76. package/dist/server/utils.js +11 -3
  77. package/dist/swagger/index.d.ts +326 -0
  78. package/dist/swagger/index.js +385 -0
  79. package/package.json +4 -2
  80. package/dist/client/1a8cce8035a89dd9.js +0 -10
  81. package/dist/client/276bcf3de74bebd1.js +0 -10
  82. package/dist/client/2f7a418e7935984d.js +0 -10
  83. package/dist/client/689d3bec33ad2ec3.js +0 -10
  84. package/dist/client/d33eb40009bd7ec6.js +0 -10
  85. package/dist/client/dbf5ddf434ab29c0.js +0 -10
  86. package/dist/client/f528b165e77e3608.js +0 -10
  87. package/dist/client/fdae18574fda07af.js +0 -10
  88. /package/dist/ai/{tools → ai-employees/orin/skills/data-modeling/tools}/defineCollections.d.ts +0 -0
  89. /package/dist/ai/{tools → ai-employees/orin/skills/data-modeling/tools}/intentRouter.d.ts +0 -0
  90. /package/dist/ai/{tools/data-query → common}/common.d.ts +0 -0
  91. /package/dist/ai/{tools → skills/data-metadata/tools}/getCollectionMetadata.d.ts +0 -0
  92. /package/dist/ai/{tools → skills/data-metadata/tools}/getCollectionNames.d.ts +0 -0
  93. /package/dist/ai/{tools → skills/data-metadata/tools}/getDataSources.d.ts +0 -0
  94. /package/dist/ai/{tools → skills/data-metadata/tools}/searchFieldMetadata.d.ts +0 -0
  95. /package/dist/ai/{tools/data-query/dataSourceCounting.d.ts → skills/data-query/tools/dataQuery.d.ts} +0 -0
  96. /package/dist/ai/{tools/data-query/dataSourceQuery.d.ts → skills/data-query/tools/dataSourceCounting.d.ts} +0 -0
@@ -0,0 +1,385 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+
10
+ var __defProp = Object.defineProperty;
11
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
12
+ var __getOwnPropNames = Object.getOwnPropertyNames;
13
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
14
+ var __export = (target, all) => {
15
+ for (var name in all)
16
+ __defProp(target, name, { get: all[name], enumerable: true });
17
+ };
18
+ var __copyProps = (to, from, except, desc) => {
19
+ if (from && typeof from === "object" || typeof from === "function") {
20
+ for (let key of __getOwnPropNames(from))
21
+ if (!__hasOwnProp.call(to, key) && key !== except)
22
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
23
+ }
24
+ return to;
25
+ };
26
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
27
+ var swagger_exports = {};
28
+ __export(swagger_exports, {
29
+ default: () => swagger_default
30
+ });
31
+ module.exports = __toCommonJS(swagger_exports);
32
+ var swagger_default = {
33
+ openapi: "3.0.2",
34
+ info: {
35
+ title: "NocoBase API - Data source manager plugin"
36
+ },
37
+ paths: {
38
+ "/dataSources:listEnabled": {
39
+ get: {
40
+ tags: ["dataSources"],
41
+ summary: "List enabled external data sources",
42
+ description: "Return enabled non-main data sources, optionally including loaded collections.",
43
+ parameters: [
44
+ {
45
+ name: "appends",
46
+ in: "query",
47
+ description: "Append related data, for example `collections`.",
48
+ required: false,
49
+ schema: {
50
+ type: "string"
51
+ }
52
+ }
53
+ ],
54
+ responses: {
55
+ 200: {
56
+ description: "OK",
57
+ content: {
58
+ "application/json": {
59
+ schema: {
60
+ type: "object",
61
+ properties: {
62
+ data: {
63
+ type: "array",
64
+ items: {
65
+ $ref: "#/components/schemas/DataSourceInfo"
66
+ }
67
+ },
68
+ meta: {
69
+ type: "object",
70
+ additionalProperties: true
71
+ }
72
+ }
73
+ }
74
+ }
75
+ }
76
+ }
77
+ }
78
+ }
79
+ },
80
+ "/dataSources/{associatedIndex}/collections:list": {
81
+ get: {
82
+ tags: ["dataSources.collections"],
83
+ summary: "List external data source collections",
84
+ description: [
85
+ "List loaded collections in one external data source, including field metadata.",
86
+ "",
87
+ "Use this endpoint to discover external table names before applying relation field metadata."
88
+ ].join("\n"),
89
+ parameters: [
90
+ {
91
+ name: "associatedIndex",
92
+ in: "path",
93
+ required: true,
94
+ description: "External data source key, for example `external`.",
95
+ schema: {
96
+ type: "string"
97
+ }
98
+ },
99
+ {
100
+ name: "filter",
101
+ in: "query",
102
+ required: false,
103
+ description: "Filter object matched against collection options.",
104
+ schema: {
105
+ type: "object",
106
+ additionalProperties: true
107
+ }
108
+ },
109
+ {
110
+ name: "page",
111
+ in: "query",
112
+ required: false,
113
+ schema: {
114
+ type: "integer"
115
+ }
116
+ },
117
+ {
118
+ name: "pageSize",
119
+ in: "query",
120
+ required: false,
121
+ schema: {
122
+ type: "integer"
123
+ }
124
+ },
125
+ {
126
+ name: "paginate",
127
+ in: "query",
128
+ required: false,
129
+ schema: {
130
+ type: "boolean"
131
+ }
132
+ }
133
+ ],
134
+ responses: {
135
+ 200: {
136
+ description: "OK",
137
+ content: {
138
+ "application/json": {
139
+ schema: {
140
+ type: "object",
141
+ properties: {
142
+ data: {
143
+ type: "array",
144
+ items: {
145
+ $ref: "#/components/schemas/DataSourceCollectionInfo"
146
+ }
147
+ },
148
+ meta: {
149
+ type: "object",
150
+ additionalProperties: true
151
+ }
152
+ }
153
+ }
154
+ }
155
+ }
156
+ }
157
+ }
158
+ }
159
+ },
160
+ "/dataSourcesCollections/{associatedIndex}/fields:list": {
161
+ get: {
162
+ tags: ["dataSourcesCollections.fields"],
163
+ summary: "List external data source collection fields",
164
+ description: [
165
+ "List loaded field metadata for one external data source collection.",
166
+ "",
167
+ "The associatedIndex path parameter is `<dataSourceKey>.<collectionName>`."
168
+ ].join("\n"),
169
+ parameters: [
170
+ {
171
+ name: "associatedIndex",
172
+ in: "path",
173
+ required: true,
174
+ description: "External data source collection locator, for example `external.orders`.",
175
+ schema: {
176
+ type: "string"
177
+ }
178
+ }
179
+ ],
180
+ responses: {
181
+ 200: {
182
+ description: "OK",
183
+ content: {
184
+ "application/json": {
185
+ schema: {
186
+ type: "array",
187
+ items: {
188
+ type: "object",
189
+ additionalProperties: true
190
+ }
191
+ }
192
+ }
193
+ }
194
+ }
195
+ }
196
+ }
197
+ },
198
+ "/dataSourcesCollections/{associatedIndex}/fields:apply": {
199
+ post: {
200
+ tags: ["dataSourcesCollections.fields"],
201
+ summary: "Create or update an external data source field",
202
+ description: [
203
+ "Upsert one external data source field from a compact request body.",
204
+ "",
205
+ "Use this endpoint for external data source field metadata, including relation fields.",
206
+ "The associatedIndex path parameter is `<dataSourceKey>.<collectionName>`.",
207
+ "",
208
+ "Relation fields may use compact interfaces such as `m2o`, `o2m`, `oho`, and `m2m`.",
209
+ "The server fills readable relation key defaults when explicit keys are omitted."
210
+ ].join("\n"),
211
+ parameters: [
212
+ {
213
+ name: "associatedIndex",
214
+ in: "path",
215
+ required: true,
216
+ description: "External data source collection locator, for example `external.orders`.",
217
+ schema: {
218
+ type: "string"
219
+ }
220
+ }
221
+ ],
222
+ requestBody: {
223
+ content: {
224
+ "application/json": {
225
+ schema: { $ref: "#/components/schemas/DataSourceFieldApplyInput" }
226
+ }
227
+ }
228
+ },
229
+ responses: {
230
+ 200: {
231
+ description: "OK",
232
+ content: {
233
+ "application/json": {
234
+ schema: {
235
+ type: "object",
236
+ properties: {
237
+ data: {
238
+ $ref: "#/components/schemas/DataSourceFieldApplyResult"
239
+ }
240
+ }
241
+ }
242
+ }
243
+ }
244
+ }
245
+ }
246
+ }
247
+ }
248
+ },
249
+ components: {
250
+ schemas: {
251
+ DataSourceInfo: {
252
+ type: "object",
253
+ properties: {
254
+ key: {
255
+ type: "string"
256
+ },
257
+ displayName: {
258
+ type: "string"
259
+ },
260
+ status: {
261
+ type: "string"
262
+ },
263
+ type: {
264
+ type: "string"
265
+ },
266
+ isDBInstance: {
267
+ type: "boolean"
268
+ },
269
+ options: {
270
+ type: "object",
271
+ additionalProperties: true
272
+ },
273
+ errorMessage: {
274
+ type: "string"
275
+ },
276
+ collections: {
277
+ type: "array",
278
+ items: {
279
+ $ref: "#/components/schemas/DataSourceCollectionInfo"
280
+ }
281
+ }
282
+ },
283
+ additionalProperties: true
284
+ },
285
+ DataSourceCollectionInfo: {
286
+ type: "object",
287
+ properties: {
288
+ name: {
289
+ type: "string"
290
+ },
291
+ title: {
292
+ type: "string"
293
+ },
294
+ fields: {
295
+ type: "array",
296
+ items: {
297
+ type: "object",
298
+ additionalProperties: true
299
+ }
300
+ },
301
+ availableActions: {
302
+ type: "object",
303
+ additionalProperties: true
304
+ },
305
+ unavailableActions: {
306
+ type: "object",
307
+ additionalProperties: true
308
+ }
309
+ },
310
+ additionalProperties: true
311
+ },
312
+ DataSourceFieldApplyInput: {
313
+ type: "object",
314
+ required: ["name"],
315
+ properties: {
316
+ dataSourceKey: {
317
+ type: "string",
318
+ description: "Optional when the path associatedIndex supplies the data source key."
319
+ },
320
+ collectionName: {
321
+ type: "string",
322
+ description: "Optional when the path associatedIndex supplies the collection name."
323
+ },
324
+ name: {
325
+ type: "string"
326
+ },
327
+ title: {
328
+ type: "string"
329
+ },
330
+ interface: {
331
+ type: "string",
332
+ description: "Compact field interface, for example `input`, `m2o`, `o2m`, `oho`, or `m2m`."
333
+ },
334
+ type: {
335
+ type: "string",
336
+ description: "Raw field type. Relation types include `belongsTo`, `hasMany`, `hasOne`, and `belongsToMany`."
337
+ },
338
+ target: {
339
+ type: "string"
340
+ },
341
+ foreignKey: {
342
+ type: "string"
343
+ },
344
+ sourceKey: {
345
+ type: "string"
346
+ },
347
+ targetKey: {
348
+ type: "string"
349
+ },
350
+ through: {
351
+ type: "string"
352
+ },
353
+ otherKey: {
354
+ type: "string"
355
+ },
356
+ targetTitleField: {
357
+ type: "string"
358
+ },
359
+ titleField: {
360
+ type: "string"
361
+ },
362
+ uiSchema: {
363
+ type: "object",
364
+ additionalProperties: true
365
+ },
366
+ settings: {
367
+ type: "object",
368
+ additionalProperties: true
369
+ }
370
+ },
371
+ additionalProperties: true
372
+ },
373
+ DataSourceFieldApplyResult: {
374
+ type: "object",
375
+ properties: {
376
+ data: {
377
+ type: "object",
378
+ additionalProperties: true
379
+ }
380
+ },
381
+ additionalProperties: true
382
+ }
383
+ }
384
+ }
385
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nocobase/plugin-data-source-manager",
3
- "version": "2.1.0-beta.8",
3
+ "version": "2.2.0-alpha.1",
4
4
  "main": "dist/server/index.js",
5
5
  "displayName": "Data source manager",
6
6
  "displayName.ru-RU": "Менеджер управления источниками данных",
@@ -13,6 +13,8 @@
13
13
  "homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/data-source-manager",
14
14
  "peerDependencies": {
15
15
  "@nocobase/client": "2.x",
16
+ "@nocobase/client-v2": "2.x",
17
+ "@nocobase/flow-engine": "2.x",
16
18
  "@nocobase/plugin-acl": "2.x",
17
19
  "@nocobase/server": "2.x",
18
20
  "@nocobase/test": "2.x"
@@ -20,6 +22,6 @@
20
22
  "keywords": [
21
23
  "Data model tools"
22
24
  ],
23
- "gitHead": "5099d561c5467292414c1e77ad6bad3730d97344",
25
+ "gitHead": "303663aba6c6eefa27e6a6435b4c0352074ec40f",
24
26
  "license": "Apache-2.0"
25
27
  }
@@ -1,10 +0,0 @@
1
- /**
2
- * This file is part of the NocoBase (R) project.
3
- * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
- * Authors: NocoBase Team.
5
- *
6
- * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
- * For more information, please refer to: https://www.nocobase.com/agreement.
8
- */
9
-
10
- "use strict";(self.webpackChunk_nocobase_plugin_data_source_manager=self.webpackChunk_nocobase_plugin_data_source_manager||[]).push([["746"],{93:function(e,t,r){r.r(t),r.d(t,{CollectionMainProvider:function(){return i}});var n=r(156),a=r.n(n),o=r(772),u=r(128);function l(e,t,r,n,a,o,u){try{var l=e[o](u),i=l.value}catch(e){r(e);return}l.done?t(i):Promise.resolve(i).then(n,a)}var i=function(e){var t,r=(0,o.useAPIClient)(),i={url:"collectionCategories:list",params:{paginate:!1,sort:["sort"]}},c=(0,o.useRequest)(i),s=(0,n.useCallback)((t=function(){var e;return function(e,t){var r,n,a,o,u={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return o={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function l(o){return function(l){var i=[o,l];if(r)throw TypeError("Generator is already executing.");for(;u;)try{if(r=1,n&&(a=2&i[0]?n.return:i[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,i[1])).done)return a;switch(n=0,a&&(i=[2&i[0],a.value]),i[0]){case 0:case 1:a=i;break;case 4:return u.label++,{value:i[1],done:!1};case 5:u.label++,n=i[1],i=[0];continue;case 7:i=u.ops.pop(),u.trys.pop();continue;default:if(!(a=(a=u.trys).length>0&&a[a.length-1])&&(6===i[0]||2===i[0])){u=0;continue}if(3===i[0]&&(!a||i[1]>a[0]&&i[1]<a[3])){u.label=i[1];break}if(6===i[0]&&u.label<a[1]){u.label=a[1],a=i;break}if(a&&u.label<a[2]){u.label=a[2],u.ops.push(i);break}a[2]&&u.ops.pop(),u.trys.pop();continue}i=t.call(e,u)}catch(e){i=[6,e],n=0}finally{r=a=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}}}(this,function(t){switch(t.label){case 0:return[4,r.request(i)];case 1:return e=t.sent().data,c.mutate(e),[2,(null==e?void 0:e.data)||[]]}})},function(){var e=this,r=arguments;return new Promise(function(n,a){var o=t.apply(e,r);function u(e){l(o,n,a,u,i,"next",e)}function i(e){l(o,n,a,u,i,"throw",e)}u(void 0)})}),[c]);return a().createElement(o.CollectionCategoriesProvider,{service:c,refreshCategory:s},a().createElement(u.Outlet,null))}}}]);
@@ -1,10 +0,0 @@
1
- /**
2
- * This file is part of the NocoBase (R) project.
3
- * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
- * Authors: NocoBase Team.
5
- *
6
- * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
- * For more information, please refer to: https://www.nocobase.com/agreement.
8
- */
9
-
10
- "use strict";(self.webpackChunk_nocobase_plugin_data_source_manager=self.webpackChunk_nocobase_plugin_data_source_manager||[]).push([["674"],{937:function(e,t,r){r.r(t),r.d(t,{DataSourcePermissionManager:function(){return ep},CurrentRolesContext:function(){return es}});var n,o,a,c,i=r(875),l=r(772),u=r(721),s=r(156),p=r.n(s),m=r(329),d=r(238);function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function y(e,t,r,n,o,a,c){try{var i=e[a](c),l=i.value}catch(e){r(e);return}i.done?t(l):Promise.resolve(l).then(n,o)}function b(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}var v=(0,s.createContext)(null);v.displayName="PermissionContext";var x=function(e){var t,r,n,o=(0,l.useAPIClient)(),a=(0,l.useRecord)(),c=(0,d.useTranslation)().t,i=(0,s.useContext)(es),m=i.snippets;null==m||m.forEach(function(e){i[e]=!0});var x=(t=(0,s.useState)(i),function(e){if(Array.isArray(e))return e}(t)||function(e,t){var r,n,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],c=!0,i=!1;try{for(o=o.call(e);!(c=(r=o.next()).done)&&(a.push(r.value),a.length!==t);c=!0);}catch(e){i=!0,n=e}finally{try{c||null==o.return||o.return()}finally{if(i)throw n}}return a}}(t,2)||function(e,t){if(e){if("string"==typeof e)return f(e,2);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return f(e,t)}}(t,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),g=x[0],h=x[1];return(0,s.useEffect)(function(){h(i)},[i]),p().createElement(v.Provider,{value:{currentDataSource:a,currentRecord:g,update:(r=function(e,t){return function(e,t){var r,n,o,a,c={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(a){return function(i){var l=[a,i];if(r)throw TypeError("Generator is already executing.");for(;c;)try{if(r=1,n&&(o=2&l[0]?n.return:l[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,l[1])).done)return o;switch(n=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return c.label++,{value:l[1],done:!1};case 5:c.label++,n=l[1],l=[0];continue;case 7:l=c.ops.pop(),c.trys.pop();continue;default:if(!(o=(o=c.trys).length>0&&o[o.length-1])&&(6===l[0]||2===l[0])){c=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){c.label=l[1];break}if(6===l[0]&&c.label<o[1]){c.label=o[1],o=l;break}if(o&&c.label<o[2]){c.label=o[2],c.ops.push(l);break}o[2]&&c.ops.pop(),c.trys.pop();continue}l=t.call(e,c)}catch(e){l=[6,e],n=0}finally{r=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}(this,function(e){switch(e.label){case 0:return[4,o.request({url:"dataSources/".concat(a.key,"/roles:update"),data:t.values,method:"post",params:{filterByTk:t.values.roleName}})];case 1:return e.sent(),h(b({},g,t.values)),u.message.success(c("Saved successfully")),[2]}})},n=function(){var e=this,t=arguments;return new Promise(function(n,o){var a=r.apply(e,t);function c(e){y(a,n,o,c,i,"next",e)}function i(e){y(a,n,o,c,i,"throw",e)}c(void 0)})},function(e,t){return n.apply(this,arguments)})}},e.children)},g=(0,s.createContext)({dataSourceKey:"main"}),h=function(e){var t=(0,s.useContext)(es),r=(0,l.useRecord)();return p().createElement(l.RecordContext_deprecated.Provider,{value:b({},t)},p().createElement(g.Provider,{value:{dataSourceKey:r.key}},p().createElement(l.SchemaComponentOptions,{scope:{dataSourceKey:r.key}},e.children)))},O=r(505);function S(e,t,r,n,o,a,c){try{var i=e[a](c),l=i.value}catch(e){r(e);return}i.done?t(l):Promise.resolve(l).then(n,o)}function P(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function w(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function C(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var j={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:{}}]},A={type:"void","x-decorator":"RoleRecordProvider",properties:C({},(0,i.uid)(),{type:"void","x-decorator":function(e){var t=(0,s.useContext)(g).dataSourceKey;console.log(e,(0,l.useRecord)().key,t);var r=w(P({},e.request),{params:w(P({},e.request.params),{filter:w(P({},e.request.params.filter),{dataSourceKey:t})})});return p().createElement(l.ResourceActionProvider,w(P({},e),{request:r}),e.children)},"x-decorator-props":{collection:j,association:{sourceKey:"name",targetKey:"name"},resourceName:"roles.dataSourcesCollections",request:{resource:"roles.dataSourcesCollections",action:"list",params:{pageSize:20,filter:{hidden:{$isFalsy:!0},dataSourceKey:"{{dataSourceKey}}"},sort:["sort"],appends:["fields"]}}},properties:(C(c={},(0,i.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"}}}),C(c,"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:function(e){var t,r,n=(0,l.useRecord)(),o=(0,l.useActionContext)().visible,a=(0,s.useContext)(v).currentDataSource,c=(0,l.useRequest)({resource:"roles.dataSourceResources",resourceOf:n.roleName,action:"get",params:{appends:["actions","actions.scope"],filterByTk:n.name,filter:{dataSourceKey:a.key,name:n.name}}},(t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e),r=r={manual:!0},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t));return(0,s.useEffect)(function(){if(!n.exists)return void e.onSuccess({data:{}});o&&c.run()},[o,n.exists]),c}},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:function(){var e=(0,O.useForm)(),t=(0,l.useAPIClient)(),r=(0,l.useRecord)(),n=(0,l.useActionContext)(),o=(0,l.useResourceActionContext)().refresh,a=(0,s.useContext)(v).currentDataSource;return{run:function(){var c;return(c=function(){return function(e,t){var r,n,o,a,c={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(a){return function(i){var l=[a,i];if(r)throw TypeError("Generator is already executing.");for(;c;)try{if(r=1,n&&(o=2&l[0]?n.return:l[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,l[1])).done)return o;switch(n=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return c.label++,{value:l[1],done:!1};case 5:c.label++,n=l[1],l=[0];continue;case 7:l=c.ops.pop(),c.trys.pop();continue;default:if(!(o=(o=c.trys).length>0&&o[o.length-1])&&(6===l[0]||2===l[0])){c=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){c.label=l[1];break}if(6===l[0]&&c.label<o[1]){c.label=o[1],o=l;break}if(o&&c.label<o[2]){c.label=o[2],c.ops.push(l);break}o[2]&&c.ops.pop(),c.trys.pop();continue}l=t.call(e,c)}catch(e){l=[6,e],n=0}finally{r=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}(this,function(c){switch(c.label){case 0:var i,l;return[4,t.resource("roles.dataSourceResources",r.roleName)[r.exists?"update":"create"]({filterByTk:r.name,filter:{dataSourceKey:a.key,name:r.name},values:(i=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e.values),l=l={name:r.name,dataSourceKey:a.key},Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(l)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(l)).forEach(function(e){Object.defineProperty(i,e,Object.getOwnPropertyDescriptor(l,e))}),i)})];case 1:return c.sent(),n.setVisible(!1),o(),[2]}})},function(){var e=this,t=arguments;return new Promise(function(r,n){var o=c.apply(e,t);function a(e){S(o,r,n,a,i,"next",e)}function i(e){S(o,r,n,a,i,"throw",e)}a(void 0)})})()}}}}}}}}}}}}}}}}}),c)})},E={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}}]},k=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{type:"object",properties:{block1:{type:"void","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:E,resourceName:"dataSources",request:{resource:"dataSources",action:"list",params:{pageSize:50,showAnonymous:!0,appends:[]}}},"x-component":"CollectionProvider_deprecated","x-component-props":{collection:E},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:"key",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:function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({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:A}}},e)}}}}}}}}}}}}}}}},R=(0,s.createContext)([]);R.displayName="AvailableActionsContext";var D=function(e){var t=(0,l.useRequest)({resource:"availableActions",action:"list"}),r=t.data;return t.loading?p().createElement(u.Spin,null):p().createElement(R.Provider,{value:null==r?void 0:r.data},e.children)},T=function(){return(0,s.useContext)(R)},F={designable:!1},I=function(){var e=(0,l.useRecord)(),t=(0,l.usePlugin)(m.default);return p().createElement("div",null,p().createElement(l.SchemaComponentContext.Provider,{value:F},p().createElement(D,null,p().createElement(l.SchemaComponent,{schema:k(t.getExtendedTabs()),components:{SettingCenterPermissionProvider:l.SettingCenterPermissionProvider,PermissionProvider:x},scope:{dataSourceKey:e.key}}))))},N=r(563);function K(e,t,r,n,o,a,c){try{var i=e[a](c),l=i.value}catch(e){r(e);return}i.done?t(l):Promise.resolve(l).then(n,o)}var B=function(){var e=(0,s.useContext)(v).update,t=(0,d.useTranslation)().t,r=(0,l.useRecord)().key;return p().createElement(l.SchemaComponent,{schema:{type:"void",name:"form","x-component":"Form","x-component-props":{useValues:function(e){var t=(0,l.useAPIClient)(),n=(0,s.useContext)(es);return(0,l.useRequest)(function(){return t.resource("dataSources/".concat(r,"/roles")).get({filterByTk:n.name}).then(function(e){var t,r,n=null==e||null==(t=e.data)?void 0:t.data;return null==(r=n.snippets)||r.forEach(function(e){n[e]=!0}),{data:n}})},e)},effects:function(){var t,r;(0,N.onFieldChange)("*",(t=function(t,r){return function(e,t){var r,n,o,a,c={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(a){return function(i){var l=[a,i];if(r)throw TypeError("Generator is already executing.");for(;c;)try{if(r=1,n&&(o=2&l[0]?n.return:l[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,l[1])).done)return o;switch(n=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return c.label++,{value:l[1],done:!1};case 5:c.label++,n=l[1],l=[0];continue;case 7:l=c.ops.pop(),c.trys.pop();continue;default:if(!(o=(o=c.trys).length>0&&o[o.length-1])&&(6===l[0]||2===l[0])){c=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){c.label=l[1];break}if(6===l[0]&&c.label<o[1]){c.label=o[1],o=l;break}if(o&&c.label<o[2]){c.label=o[2],c.ops.push(l);break}o[2]&&c.ops.pop(),c.trys.pop();continue}l=t.call(e,c)}catch(e){l=[6,e],n=0}finally{r=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}(this,function(n){switch(n.label){case 0:if(!r.modified)return[2];return[4,e(t,r)];case 1:return n.sent(),[2]}})},r=function(){var e=this,r=arguments;return new Promise(function(n,o){var a=t.apply(e,r);function c(e){K(a,n,o,c,i,"next",e)}function i(e){K(a,n,o,c,i,"throw",e)}c(void 0)})},function(e,t){return r.apply(this,arguments)}))}},properties:{"strategy.actions":{description:t("All collections use general action permissions by default; permission configured individually will override the default one."),"x-component":"StrategyActions"}}}})},V=r(632),q=r(467);function M(){var e,t,r=(e=["\n .ant-table-cell {\n > .ant-space-horizontal {\n .ant-space-item-split:has(+ .ant-space-item:empty) {\n display: none;\n }\n }\n }\n "],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return M=function(){return r},r}var _=(0,r(933).createStyles)(function(e){return(0,e.css)(M())});function z(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function $(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}var L=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"main";return{name:"dataSources/".concat(e,"/rolesResourcesScopes"),fields:[{type:"string",name:"name",interface:"input",uiSchema:{title:'{{t("Scope name")}}',type:"string","x-component":"Input",required:!0}}]}},G=function(){var e=(0,s.useContext)(en).name,t=(0,l.useFormBlockContext)();return(0,s.useEffect)(function(){t.form.setInitialValues({resourceName:e})},[e]),{form:t.form}},U=function(e){var t=((0,l.useCollectionRecord)().data||{}).id,r=$(z({},e),{disabled:[1,2].includes(t)});return p().createElement(l.Action.Link,r)},W=function(e){var t=((0,l.useCollectionRecord)().data||{}).id,r=$(z({},e,(0,l.useDestroyActionProps)()),{disabled:[1,2].includes(t)});return p().createElement(l.Action.Link,r)},H=function(e){var t=L(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/".concat(e,"/rolesResourcesScopes"),action:"list",params:{pageSize:20},useParams:function(){return{filter:{$or:[{resourceName:(0,s.useContext)(en).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/".concat(e,"/rolesResourcesScopes"),collection:t},"x-component":"CardItem",properties:{form:{type:"void","x-component":"FormV2","x-use-component-props":G,properties:{name:{type:"string","x-component":"CollectionField","x-decorator":"FormItem"},scope:{type:"object",title:'{{t("Data scope")}}',name:"filter","x-decorator":"FormItem","x-component":(0,l.withDynamicSchemaProps)(function(e){return p().createElement(l.FlagProvider,{isVariableParsedInOtherContext:!0},p().createElement(l.Filter,e))}),"x-use-component-props":function(){var e=(0,s.useContext)(en);return{options:(0,l.useFilterFieldOptions)(e.fields)}},"x-component-props":{dynamicComponent:l.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":U,"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/".concat(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":(0,l.withDynamicSchemaProps)(function(e){return p().createElement(l.FlagProvider,{isVariableParsedInOtherContext:!0},p().createElement(l.Filter,e))}),"x-use-component-props":function(){var e=(0,s.useContext)(en);return{options:(0,l.useFilterFieldOptions)(e.fields)}},"x-component-props":{dynamicComponent:l.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-props":{icon:"DeleteOutlined",confirm:{title:"{{t('Delete record')}}",content:"{{t('Are you sure you want to delete it?')}}"}},"x-component":W}}}}}}}}},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"}}}}}}}}}}}}};function J(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var Q=(0,s.createContext)(null);Q.displayName="RolesResourcesScopesSelectedRowKeysContext";var X=function(e){var t,r=(t=(0,s.useState)([]),function(e){if(Array.isArray(e))return e}(t)||function(e,t){var r,n,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],c=!0,i=!1;try{for(o=o.call(e);!(c=(r=o.next()).done)&&(a.push(r.value),a.length!==t);c=!0);}catch(e){i=!0,n=e}finally{try{c||null==o.return||o.return()}finally{if(i)throw n}}return a}}(t,2)||function(e,t){if(e){if("string"==typeof e)return J(e,2);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return J(e,t)}}(t,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),n=r[0],o=r[1];return p().createElement(Q.Provider,{value:[n,o]},e.children)},Y=function(e){var t,r=(0,s.useMemo)(function(){return(0,N.createForm)({values:{scope:e.value}})},[]),n=H(((null==(t=(0,l.useCollectionRecord)())?void 0:t.parentRecord.data)||{}).key);return p().createElement(l.FormProvider,{form:r},p().createElement(l.SchemaComponent,{components:{RolesResourcesScopesSelectedRowKeysProvider:X},scope:{onChange:function(t){var r;null==e||null==(r=e.onChange)||r.call(e,t)}},schema:n}))};function Z(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function ee(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function et(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}var er=function(e){var t,r={};return null==e||null==(t=e.forEach)||t.call(e,function(e){e.name&&(r[e.name]=e,r[e.name].scope=(0,q.isEmpty)(e.scope)?null:e.scope)}),r},en=(0,s.createContext)({});en.displayName="RoleResourceCollectionContext";var eo=(0,O.connect)(function(e){var t,r=_().styles,n=function(t){var r=t.map(function(e){return et(ee({},e),{scope:(0,q.isEmpty)(e.scope)?null:e.scope})});e.onChange(r)},o=(0,l.useRecord)(),a=T(),c=o.fields,i=(0,l.useCompile)(),s=(0,d.useTranslation)().t,m=er((0,O.useField)().value||[]),f=function(e,t){var r,n=null==m?void 0:m[e];return!!n&&(null==n||null==(r=n.fields)?void 0:r.includes(t))},y=a.filter(function(e){return e.allowConfigureFields}),b=null==c?void 0:c.map(function(e){var t=ee({},e),r=!0,n=!1,o=void 0;try{for(var a,c=y[Symbol.iterator]();!(r=(a=c.next()).done);r=!0){var i=a.value;t[i.name]=f(i.name,e.name)}}catch(e){n=!0,o=e}finally{try{r||null==c.return||c.return()}finally{if(n)throw o}}return t}),v=function(e){if(m[e])delete m[e];else{var t;m[e]={name:e,fields:null==c||null==(t=c.map)?void 0:t.call(c,function(e){return e.name})}}n(Object.values(m))},x=function(e,t){m[e]||v(e),m[e].scope=t,n(Object.values(m))},g={},h=!0,S=!1,P=void 0;try{for(var w,C=y[Symbol.iterator]();!(h=(w=C.next()).done);h=!0){var j,A,E=w.value;g[E.name]=(null==c?void 0:c.length)===(null==m||null==(A=m[E.name])||null==(j=A.fields)?void 0:j.length)}}catch(e){S=!0,P=e}finally{try{h||null==C.return||C.return()}finally{if(S)throw P}}return p().createElement("div",null,p().createElement(en.Provider,{value:o},p().createElement(V.FormLayout,{layout:"vertical"},p().createElement(V.FormItem,{label:s("Action permission")},p().createElement(u.Table,{className:r,size:"small",pagination:!1,columns:[{dataIndex:"displayName",title:s("Action display name"),render:function(e){return i(e)}},{dataIndex:"onNewRecord",title:s("Action type"),render:function(e){return e?p().createElement(u.Tag,{color:"green"},s("Action on new records")):p().createElement(u.Tag,{color:"geekblue"},s("Action on existing records"))}},{dataIndex:"enabled",title:s("Allow"),render:function(e,t){return p().createElement(u.Checkbox,{checked:e,onChange:function(){v(t.name)}})}},{dataIndex:"scope",title:s("Data scope"),render:function(e,t){return!t.onNewRecord&&p().createElement(Y,{value:e,onChange:function(e){x(t.name,e)}})}}],dataSource:null==a?void 0:a.map(function(e){var t=!1,r=null;return m[e.name]&&(t=!0,e.onNewRecord||(r=m[e.name].scope)),et(ee({},e),{enabled:t,scope:r})})})),p().createElement(V.FormItem,{label:s("Field permission")},p().createElement(u.Table,{className:r,pagination:!1,dataSource:b,columns:[{dataIndex:["uiSchema","title"],title:s("Field display name"),render:function(e,t){return i(e)||t.name}}].concat(function(e){if(Array.isArray(e))return Z(e)}(t=y.map(function(e){var t=null==g?void 0:g[e.name];return{dataIndex:e.name,title:p().createElement(p().Fragment,null,p().createElement(u.Checkbox,{checked:t,onChange:function(){var r,o=m[e.name]||{name:e.name};t?o.fields=[]:o.fields=null==c||null==(r=c.map)?void 0:r.call(c,function(e){return e.name}),m[e.name]=o,n(Object.values(m))}}),i(e.displayName)),render:function(t,r){return p().createElement(u.Checkbox,{checked:t,onChange:function(){var o=m[e.name]||{name:e.name},a=o.fields||[];if(t){var c=a.indexOf(r.name);a.splice(c,1)}else a.push(r.name);o.fields=a,m[e.name]=o,n(Object.values(m))}})}}}))||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(t)||function(e,t){if(e){if("string"==typeof e)return Z(e,void 0);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Z(e,t)}}(t)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())})))))});function ea(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var ec=function(e){if(!e)return{};var t,r={};return null==e||null==(t=e.forEach)||t.call(e,function(e){var t,n=(t=e.split(":"),function(e){if(Array.isArray(e))return e}(t)||function(e,t){var r,n,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],c=!0,i=!1;try{for(o=o.call(e);!(c=(r=o.next()).done)&&(a.push(r.value),a.length!==t);c=!0);}catch(e){i=!0,n=e}finally{try{c||null==o.return||o.return()}finally{if(i)throw n}}return a}}(t,2)||function(e,t){if(e){if("string"==typeof e)return ea(e,2);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return ea(e,t)}}(t,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),o=n[0],a=n[1];r[o]=a||"all"}),r},ei=function(e){var t=[];for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){var n=e[r];"all"===n?t.push(r):t.push("".concat(r,":").concat(n))}return t},el=(0,O.connect)(function(e){var t=e.onChange,r=T(),n=(0,l.useCompile)(),o=(0,d.useTranslation)().t,a=ec((0,O.useField)().value);return p().createElement("div",null,p().createElement(u.Table,{size:"small",pagination:!1,rowKey:"name",columns:[{dataIndex:"displayName",title:o("Action display name"),render:function(e){return n(e)}},{dataIndex:"onNewRecord",title:o("Action type"),render:function(e){return e?p().createElement(u.Tag,{color:"green"},o("Action on new records")):p().createElement(u.Tag,{color:"geekblue"},o("Action on existing records"))}},{dataIndex:"enabled",title:o("Allow"),render:function(e,r){return p().createElement(u.Checkbox,{checked:e,onChange:function(n){e?delete a[r.name]:a[r.name]="all",t(ei(a))}})}},{dataIndex:"scope",title:o("Data scope"),render:function(e,r){return!r.onNewRecord&&p().createElement(u.Select,{"data-testid":"select-data-scope",popupMatchSelectWidth:!1,size:"small",value:e,options:[{label:o("All records"),value:"all"},{label:o("Own records"),value:"own"}],onChange:function(e){a[r.name]=e,t(ei(a))}})}}],dataSource:null==r?void 0:r.map(function(e){var t,r,n="all",o=!1;return a[e.name]&&(o=!0,n=a[e.name]),t=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e),r=r={enabled:o,scope:n},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t})}))}),eu={type:"object",properties:(n={},o=(0,i.uid)(),a={"x-component":"DataSourceTable"},o in n?Object.defineProperty(n,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):n[o]=a,n)},es=(0,s.createContext)({});es.displayName="CurrentRolesContext";var ep=function(e){var t=e.role;return p().createElement(u.Card,{"data-testid":"acl-pane-card",bordered:!1},p().createElement(es.Provider,{value:t},p().createElement(l.SchemaComponent,{components:{MenuConfigure:l.MenuConfigure,RoleConfigure:B,RolesResourcesActions:eo,DataSourceTable:I,StrategyActions:el,SettingsCenterConfigure:l.SettingsCenterConfigure,SettingCenterProvider:l.SettingCenterProvider,ResourceActionProvider:l.ResourceActionProvider,RoleRecordProvider:h},schema:eu})))}}}]);
@@ -1,10 +0,0 @@
1
- /**
2
- * This file is part of the NocoBase (R) project.
3
- * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
- * Authors: NocoBase Team.
5
- *
6
- * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
- * For more information, please refer to: https://www.nocobase.com/agreement.
8
- */
9
-
10
- "use strict";(self.webpackChunk_nocobase_plugin_data_source_manager=self.webpackChunk_nocobase_plugin_data_source_manager||[]).push([["398"],{593:function(e,t,n){n.d(t,{E:function(){return s}});var r=n(482),l=n(772),i=n(505),a=n(721),o=n(156),c=n.n(o),u=n(973),s=function(e){var t=(0,l.useCollectionRecordData)()||{},n=(0,l.useCompile)();return(0,i.useField)().editable?c().createElement(l.Input,e):(null==t?void 0:t.filterTargetKey)?n(t.title):c().createElement("div",{style:{display:"inline"}},c().createElement(a.Popover,{trigger:["click"],content:c().createElement(u.L,{size:"small",style:{width:"20em"}})},c().createElement(r.ExclamationCircleTwoTone,{style:{marginRight:"0.3em"},twoToneColor:"#faad14"})),n(t.title))}},202:function(e,t,n){n.d(t,{a:function(){return u}});var r=n(772),l=n(721),i=n(156),a=n.n(i),o=n(128),c=n(973),u=function(e){var t=e.collectionName,n=(0,r.useApp)(),u=(0,o.useParams)().name,s=void 0===u?"main":u,d=(0,i.useMemo)(function(){return n.getCollectionManager(s).getCollection(t)},[n,s,t]);return!(null==d?void 0:d.filterTargetKey)&&a().createElement(l.Alert,{style:{marginBottom:16},type:"warning",message:a().createElement(c.L,null)})}},973:function(e,t,n){n.d(t,{L:function(){return p}});var r=n(772),l=n(721),i=n(156),a=n.n(i),o=n(128),c=n(551),u=n(642);function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function d(e,t,n,r,l,i,a){try{var o=e[i](a),c=o.value}catch(e){n(e);return}o.done?t(c):Promise.resolve(c).then(r,l)}function f(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,l=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var i=[],a=!0,o=!1;try{for(l=l.call(e);!(a=(n=l.next()).done)&&(i.push(n.value),!t||i.length!==t);a=!0);}catch(e){o=!0,r=e}finally{try{a||null==l.return||l.return()}finally{if(o)throw r}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return s(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return s(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var p=function(e){var t,n=e.size,s=e.style,p=(0,r.useAPIClient)(),m=(0,o.useParams)().name,h=void 0===m?"main":m,y=(0,r.useCollectionRecordData)(),v=(0,r.useApp)(),b=f((0,i.useState)(),2),g=b[0],x=b[1],w=f((0,i.useState)(),2),S=w[0],E=w[1],C=(0,r.useCompile)(),A=(0,i.useMemo)(function(){return v.getCollectionManager(h).getCollection(y.name)},[v,h,y.name]),F=(0,i.useMemo)(function(){return v.getCollectionManager(h).getCollectionFields(y.name).filter(function(e){if(!e.interface)return!1;var t=v.dataSourceManager.collectionFieldInterfaceManager.getFieldInterface(e.interface);return null!=t&&!!t.titleUsable}).map(function(e){var t;return{label:C(null==(t=e.uiSchema)?void 0:t.title),value:e.name}})},[v,C,h,y.name]),I=(0,r.useResourceActionContext)().refresh,T=(0,i.useContext)(u.I),k=(0,c.EL)().t;return a().createElement("div",{style:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},s)},k("If a collection lacks a primary key, you must configure a unique record key to locate row records within a block, failure to configure this will prevent the creation of data blocks for the collection."),"small"===n?a().createElement("br",null):" ",a().createElement(l.Space.Compact,{style:{marginTop:5}},a().createElement(l.Select,{onChange:function(e,t){console.log(e,t),x(e),E(t.map(function(e){return e.label}).join(","))},placeholder:k("Select field"),size:"small",options:F,mode:"multiple",style:{width:"200px"}}),a().createElement(l.Popconfirm,{placement:"bottom",title:a().createElement("div",{style:{width:"15em"}},S?k('Are you sure you want to set the "{{title}}" field as a record unique key? This setting cannot be changed after it\'s been set.',{title:S}):k("Please select a field.")),onConfirm:(t=function(){var e;return function(e,t){var n,r,l,i,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]};return i={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function o(i){return function(o){var c=[i,o];if(n)throw TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(l=2&c[0]?r.return:c[0]?r.throw||((l=r.return)&&l.call(r),0):r.next)&&!(l=l.call(r,c[1])).done)return l;switch(r=0,l&&(c=[2&c[0],l.value]),c[0]){case 0:case 1:l=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!l||c[1]>l[0]&&c[1]<l[3])){a.label=c[1];break}if(6===c[0]&&a.label<l[1]){a.label=l[1],l=c;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(c);break}l[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=l=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(t){switch(t.label){case 0:if(!g)return[2];if("main"!==h)return[3,2];return[4,p.request({url:"collections:update",method:"post",params:{filterByTk:y.name},data:{filterTargetKey:g}})];case 1:return t.sent(),[3,4];case 2:return[4,p.request({url:"dataSources/".concat(h,"/collections:update"),method:"post",params:{filterByTk:y.name},data:{filterTargetKey:g}})];case 3:t.sent(),t.label=4;case 4:return null==T||null==(e=T.refresh)||e.call(T),I(),[4,v.dataSourceManager.getDataSource(h).reload()];case 5:return t.sent(),A.setOption("filterTargetKey",g),[2]}})},function(){var e=this,n=arguments;return new Promise(function(r,l){var i=t.apply(e,n);function a(e){d(i,r,l,a,o,"next",e)}function o(e){d(i,r,l,a,o,"throw",e)}a(void 0)})})},a().createElement(l.Button,{type:"primary",size:"small"},k("OK")))))}},642:function(e,t,n){n.d(t,{I:function(){return R},f:function(){return U}});var r=n(964),l=n(563),i=n(505),a=n(772),o=n(721),c=n(156),u=n.n(c),s=n(238),d=n(467),f=n(202),p={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"}}]},m=n(482),h=n(551);function y(e,t,n,r,l,i,a){try{var o=e[i](a),c=o.value}catch(e){n(e);return}o.done?t(c):Promise.resolve(c).then(r,l)}var v=function(){var e,t=(0,h.EL)().t,n=(0,a.useAPIClient)(),r=(0,a.useCollectionRecordData)(),l=(0,a.useDataSource)(),i=(0,a.useResourceActionContext)().refresh;return"db2cm"===r.from||"view"===r.template||"sql"===r.template?null:u().createElement(o.Button,{icon:u().createElement(m.SyncOutlined,null),onClick:(e=function(){return function(e,t){var n,r,l,i,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]};return i={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function o(i){return function(o){var c=[i,o];if(n)throw TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(l=2&c[0]?r.return:c[0]?r.throw||((l=r.return)&&l.call(r),0):r.next)&&!(l=l.call(r,c[1])).done)return l;switch(r=0,l&&(c=[2&c[0],l.value]),c[0]){case 0:case 1:l=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!l||c[1]>l[0]&&c[1]<l[3])){a.label=c[1];break}if(6===c[0]&&a.label<l[1]){a.label=l[1],l=c;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(c);break}l[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=l=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(e){switch(e.label){case 0:return[4,n.resource("mainDataSource").syncFields({values:{collections:[r.name]}})];case 1:return e.sent(),i(),l.reload(),o.message.success(t("Sync successfully")),[2]}})},function(){var t=this,n=arguments;return new Promise(function(r,l){var i=e.apply(t,n);function a(e){y(i,r,l,a,o,"next",e)}function o(e){y(i,r,l,a,o,"throw",e)}a(void 0)})})},t("Sync from database"))};function b(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function g(e,t,n,r,l,i,a){try{var o=e[i](a),c=o.value}catch(e){n(e);return}o.done?t(c):Promise.resolve(c).then(r,l)}function x(e){return function(){var t=this,n=arguments;return new Promise(function(r,l){var i=e.apply(t,n);function a(e){g(i,r,l,a,o,"next",e)}function o(e){g(i,r,l,a,o,"throw",e)}a(void 0)})}}function w(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function S(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){w(e,t,n[t])})}return e}function E(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function C(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,l=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var i=[],a=!0,o=!1;try{for(l=l.call(e);!(a=(n=l.next()).done)&&(i.push(n.value),!t||i.length!==t);a=!0);}catch(e){o=!0,r=e}finally{try{a||null==l.return||l.return()}finally{if(o)throw r}}return i}}(e,t)||F(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function A(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function F(e,t){if(e){if("string"==typeof e)return b(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return b(e,t)}}function I(e,t){var n,r,l,i,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]};return i={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function o(i){return function(o){var c=[i,o];if(n)throw TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(l=2&c[0]?r.return:c[0]?r.throw||((l=r.return)&&l.call(r),0):r.next)&&!(l=l.call(r,c[1])).done)return l;switch(r=0,l&&(c=[2&c[0],l.value]),c[0]){case 0:case 1:l=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!l||c[1]>l[0]&&c[1]<l[3])){a.label=c[1];break}if(6===c[0]&&a.label<l[1]){a.label=l[1],l=c;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(c);break}l[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=l=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}function T(){var e=A(["\n tr {\n display: flex;\n }\n td,\n th {\n flex: 2;\n width: 0;\n min-width: 120px;\n\n /* Field display name */\n &:nth-child(2) {\n flex: 2.5;\n min-width: 150px;\n }\n\n /* Field name */\n &:nth-child(3) {\n flex: 2;\n min-width: 120px;\n }\n\n /* Field interface - 需要更多空间 */\n &:nth-child(4) {\n flex: 2.5;\n min-width: 180px;\n }\n\n /* Field type */\n &:nth-child(5) {\n flex: 1.8;\n min-width: 120px;\n }\n\n /* Title field */\n &:nth-child(6) {\n flex: 1.2;\n min-width: 100px;\n }\n\n /* Description */\n &:nth-child(7) {\n flex: 2;\n min-width: 120px;\n }\n\n /* Actions */\n &:last-child {\n flex: 1.5;\n min-width: 120px;\n }\n }\n .ant-table-selection-column,\n .ant-table-row-expand-icon-cell {\n flex-basis: 50px !important;\n min-width: 50px;\n flex: 0;\n }\n"]);return T=function(){return e},e}function k(){var e=A(["\n tr {\n display: flex;\n }\n td,\n th {\n flex: 2;\n width: 0;\n min-width: 120px;\n\n /* Title column for inherited fields - 需要更多空间显示完整标题 */\n &:nth-child(2) {\n flex: 4;\n min-width: 300px;\n white-space: nowrap;\n }\n\n /* Field display name */\n &:nth-child(3) {\n flex: 2.5;\n min-width: 150px;\n }\n\n /* Field name */\n &:nth-child(4) {\n flex: 2;\n min-width: 120px;\n }\n\n /* Field interface */\n &:nth-child(5) {\n flex: 2.5;\n min-width: 180px;\n }\n\n /* Field type */\n &:nth-child(6) {\n flex: 1.8;\n min-width: 120px;\n }\n\n /* Title field */\n &:nth-child(7) {\n flex: 1.2;\n min-width: 100px;\n }\n\n /* Actions */\n &:last-child {\n flex: 1.5;\n min-width: 120px;\n }\n }\n .ant-table-selection-column,\n .ant-table-row-expand-icon-cell {\n flex-basis: 50px !important;\n min-width: 50px;\n flex: 0;\n }\n"]);return k=function(){return e},e}function O(){var e=A(["\n tr {\n display: flex;\n }\n td,\n th {\n flex: 2;\n width: 0;\n min-width: 100px;\n\n /* Field display name */\n &:nth-child(1) {\n flex: 2.5;\n min-width: 150px;\n }\n\n /* Field name - 减少宽度 */\n &:nth-child(2) {\n flex: 1.5;\n min-width: 100px;\n }\n\n /* Field interface */\n &:nth-child(3) {\n flex: 2;\n min-width: 150px;\n }\n\n /* Field type */\n &:nth-child(4) {\n flex: 1.5;\n min-width: 100px;\n }\n\n /* Title field */\n &:nth-child(5) {\n flex: 1.2;\n min-width: 80px;\n }\n\n /* Description */\n &:nth-child(6) {\n flex: 2;\n min-width: 120px;\n }\n\n /* Actions */\n &:last-child {\n flex: 1.8;\n min-width: 140px;\n }\n }\n"]);return O=function(){return e},e}function P(){var e=A(["\n font-weight: 500;\n white-space: nowrap;\n min-width: 300px;\n "]);return P=function(){return e},e}function j(){var e=A(["\n justify-content: flex-end;\n display: flex;\n margin-bottom: 16px;\n "]);return j=function(){return e},e}var D={association:{sourceKey:"name",targetKey:"name"},collection:p,request:{resource:"collections.fields",action:"list",params:{paginate:!1,filter:{$or:[{"interface.$not":null},{"options.source.$notEmpty":!0}]},sort:["sort"]}}},R=(0,c.createContext)(null),M=function(e){return u().createElement(R.Provider,{value:(0,a.useResourceActionContext)()},u().createElement(a.ResourceActionProvider,D,e.children))},_=(0,r.css)(T()),K=(0,r.css)(k()),B=(0,r.css)(O()),q="Default title for each record",L=function(e,t){var n=[];return e.forEach(function(e){var r=e.children.filter(function(e){var n;return null==e||null==(n=e.availableTypes)?void 0:n.includes(t)});n.push({label:e.label,key:e.key,children:r})}),n.filter(function(e){return"sort"===t?"advanced"===e.key:e.children.length>0})},N=function(e){var t,n,r,l,i,s,d=e.value,f=e.record,p=e.updateFieldHandler,m=e.isPresetField,h=void 0!==m&&m,y=(0,a.useCompile)(),v=(0,a.useCollectionManager_deprecated)().getInterface,b=(0,a.useFieldInterfaceOptions)(),g=C((0,c.useState)(d),2),w=g[0],E=g[1],A=C((0,c.useState)([]),2),F=A[0],T=A[1],k=f.type,O=(0,c.useCallback)((t=x(function(e){var t,n,r;return I(this,function(l){switch(l.label){case 0:return r=v(e),E(e),[4,p(f,{interface:e,uiSchema:S({title:null==f||null==(t=f.uiSchema)?void 0:t.title},null==r||null==(n=r.default)?void 0:n.uiSchema)},!1)];case 1:return l.sent(),[2]}})}),function(e){return t.apply(this,arguments)}),[f]);return((0,c.useEffect)(function(){!h&&((null==f?void 0:f.possibleTypes)||k)&&T(L(b,k))},[f,h,k,b]),(0,c.useEffect)(function(){if(!h&&F.length){var e,t,n,r,l,i=null==(n=F[0])||null==(t=n.children)||null==(e=t[0])?void 0:e.name;i&&((1!==F.length||(null==(l=F[0])||null==(r=l.children)?void 0:r.length)!==1||w===i)&&(!w||(null==F?void 0:F.some(function(e){var t,n;return null==(n=e.children)||null==(t=n.some)?void 0:t.call(n,function(e){return e.name===w})})))||O(i))}},[w,h,F,O]),["oho","obo","o2m","m2o","m2m"].includes(f.interface))?u().createElement(o.Tag,null,y(null==(i=b.find(function(e){return"relation"===e.key}))||null==(l=i.children)||null==(r=l.find(function(e){return e.name===d}))?void 0:r.label)):!F.length||F.every(function(e){return!e.children.length})?u().createElement(o.Tag,null,y(null==(s=v(d))?void 0:s.title)):u().createElement(o.Select,{"aria-label":"field-interface-".concat(null==f?void 0:f.interface),value:w,style:{width:"100%"},popupMatchSelectWidth:!1,disabled:h,onChange:(n=x(function(e){var t,n,r;return I(this,function(l){switch(l.label){case 0:if(h)return[2];return r=v(e),E(e),[4,p(f,{interface:e,uiSchema:S({title:null==f||null==(t=f.uiSchema)?void 0:t.title},null==r||null==(n=r.default)?void 0:n.uiSchema)})];case 1:return l.sent(),[2]}})}),function(e){return n.apply(this,arguments)})},F.map(function(e){return u().createElement(o.Select.OptGroup,{key:e.key,label:y(e.label)},e.children.map(function(e){return u().createElement(o.Select.Option,{key:e.name,value:e.name},y(e.label))}))}))},z=function(e){var t,n=e.value,r=e.record,l=e.updateFieldHandler,i=e.isPresetField,a=(0,d.omit)(r,["__parent","__collectionName"]),c=(null==a?void 0:a.possibleTypes)||[];return Array.isArray(null==a?void 0:a.possibleTypes)&&!(void 0!==i&&i)&&c.includes(n)?u().createElement(o.Select,{"aria-label":"field-type-".concat(n),defaultValue:n,popupMatchSelectWidth:!1,style:{width:"100%"},options:(null==a?void 0:a.possibleTypes.map(function(e){return{label:e,value:e}}))||[],onChange:(t=x(function(e){return I(this,function(t){switch(t.label){case 0:return[4,l(r,{type:e})];case 1:return t.sent(),[2]}})}),function(e){return t.apply(this,arguments)})}):u().createElement(o.Tag,null,n)},H=function(e){var t,n=(0,a.useCompile)();(0,a.useCollectionManager_deprecated)().getInterface;var r=(0,s.useTranslation)().t,l=(0,a.useResourceActionContext)().setState,i=e.collectionResource||{},d=i.targetKey,f=i.resource,p=(0,a.useRecord)(),m=C(u().useState(null),2),h=m[0],y=m[1],v=(0,a.useCollectionManager_deprecated)(),b=v.refreshCM,g=v.isTitleField,A=v.getTemplate,F=p[d],T=p.titleField,k=A(p.template),O=(0,a.useAPIClient)(),P=(0,c.useContext)(R),j=e.collectionInfo,D=(0,a.useApp)(),M=o.App.useApp().modal,K=D.pm.get("data-source-main").getCollectionPresetFields().map(function(e){var t;return null==(t=e.value)?void 0:t.interface}).filter(function(e){return e}),B=(t=x(function(t,n){var l,i,a=arguments;return I(this,function(c){switch(c.label){case 0:var u;if(l=!(a.length>2)||void 0===a[2]||a[2],u=x(function(){return I(this,function(l){switch(l.label){case 0:return l.trys.push([0,3,,4]),[4,f.update({filterByTk:t.name,values:E(S({},n),{collectionName:t.collectionName})})];case 1:return l.sent(),[4,e.refreshAsync()];case 2:return l.sent(),o.message.success(r("Saved successfully")),b(),[3,4];case 3:return console.error("Failed to update field:",l.sent()),o.message.error(r("Save failed")),[3,4];case 4:return[2]}})}),i=function(){return u.apply(this,arguments)},!l)return[3,1];return M.confirm({title:r("Save"),content:r("Are you sure you want to save it?"),onOk:i}),[3,3];case 1:return[4,i()];case 2:c.sent(),c.label=3;case 3:return[2]}})}),function(e,n){return t.apply(this,arguments)}),L=[{dataIndex:["uiSchema","title"],title:r("Field display name"),render:function(e){return u().createElement("div",{style:{marginLeft:7}},n(e))}},{dataIndex:"name",title:r("Field name")},{dataIndex:"type",title:r("Field type"),render:function(e,t){return u().createElement(z,{value:e,record:t,updateFieldHandler:B,isPresetField:"db2cm"===j.from||K.includes(t.interface)})}},{dataIndex:"interface",title:r("Field interface"),render:function(e,t){return u().createElement(N,{value:e,record:t,updateFieldHandler:B,isPresetField:"db2cm"===j.from||K.includes(t.interface)})}},{dataIndex:"titleField",title:r("Title field"),render:function(t,n){var l,i=(l=x(function(t){var l;return I(this,function(i){switch(i.label){case 0:return y(n),[4,O.request({url:"collections:update",method:"post",params:{filterByTk:F},data:{titleField:t?n.name:"id"}})];case 1:return i.sent(),null==P||null==(l=P.refresh)||l.call(P),[4,e.refreshAsync()];case 2:return i.sent(),y(null),b(),o.message.success(r("Saved successfully")),[2]}})}),function(e){return l.apply(this,arguments)});return g(n)?u().createElement(o.Tooltip,{title:r(q),placement:"right",overlayInnerStyle:{textAlign:"center"}},u().createElement(o.Switch,{"aria-label":"switch-title-field-".concat(n.name),size:"small",loading:n.name===(null==h?void 0:h.name),checked:n.name===(T||"id"),onChange:i})):null}},{dataIndex:"description",title:r("Description"),render:function(e){return u().createElement(a.Input.ReadPretty,{value:e,ellipsis:!0})}},{dataIndex:"actions",title:r("Actions"),render:function(e,t){var n={confirm:{title:r("Delete record"),content:r("Are you sure you want to delete it?")},useAction:a.useDestroyActionAndRefreshCM,disabled:(0,a.isDeleteButtonDisabled)(t)||(null==k?void 0:k.forbidDeletion),title:r("Delete")};return u().createElement(a.RecordProvider,{record:t,parent:p},u().createElement(o.Space,{size:"middle"},u().createElement(a.EditCollectionField,{role:"button","aria-label":"edit-button-".concat(t.name),type:"primary"}),u().createElement(a.Action.Link,n)))}}];return u().createElement(o.Table,{rowKey:"name",columns:L,showHeader:!0,pagination:!1,dataSource:e.fields,className:_,rowSelection:{type:"checkbox",getCheckboxProps:function(e){return{"aria-label":"checkbox-".concat(e.name)}},onChange:function(t){l(function(n){return E(S({},n),w({},e.type,t))})}}})},$=function(e){var t=(0,a.useCompile)(),n=(0,a.useCollectionManager_deprecated)().getInterface,r=(e.collectionResource||{}).targetKey,l=(0,a.useRecord)(),i=C(u().useState(null),2),d=i[0],f=i[1],p=(0,s.useTranslation)().t,m=(0,a.useCollectionManager_deprecated)(),h=m.refreshCM,y=m.isTitleField,v=l[r],b=l.titleField,g=l.name,w=(0,c.useContext)(R),S=(0,a.useAPIClient)(),E=[{dataIndex:["uiSchema","rawTitle"],title:p("Field display name"),render:function(e){return u().createElement("div",{style:{marginLeft:1}},t(e))}},{dataIndex:"name",title:p("Field name")},{dataIndex:"interface",title:p("Field interface"),render:function(e){var r;return u().createElement(o.Tag,null,t(null==(r=n(e))?void 0:r.title))}},{dataIndex:"type",title:p("Field type"),render:function(e,t){return u().createElement(o.Tag,null,e)}},{dataIndex:"titleField",title:p("Title field"),render:function(t,n){var r,l=(r=x(function(t){var r;return I(this,function(l){switch(l.label){case 0:return f(n),[4,S.request({url:"collections:update",method:"post",params:{filterByTk:v},data:{titleField:t?n.name:"id"}})];case 1:return l.sent(),null==w||null==(r=w.refresh)||r.call(w),[4,e.refreshAsync()];case 2:return l.sent(),f(null),h(),o.message.success(p("Saved successfully")),[2]}})}),function(e){return r.apply(this,arguments)});return y(n)?u().createElement(o.Tooltip,{title:p(q),placement:"right",overlayInnerStyle:{textAlign:"center"}},u().createElement(o.Switch,{size:"small",loading:n.name===(null==d?void 0:d.name),checked:n.name===(b||"id"),onChange:l})):null}},{dataIndex:"description",title:p("Description"),render:function(e){return u().createElement(a.Input.ReadPretty,{value:e,ellipsis:!0})}},{dataIndex:"actions",title:p("Actions"),render:function(e,t){return u().createElement(a.RecordProvider,{record:t,parent:l},u().createElement(o.Space,null,u().createElement(a.OverridingCollectionField,{type:"primary",currentCollection:g}),u().createElement(a.ViewCollectionField,{type:"primary"})))}}];return u().createElement(o.Table,{rowKey:"name",columns:E,showHeader:!1,pagination:!1,dataSource:e.fields.filter(function(e){return e.interface}),className:B})},G=function(){var e,t=(0,a.useCompile)(),n=(0,i.useField)(),d=(0,a.useRecord)(),p=d.name,m=d.template,h=((0,a.useCurrentAppInfo)()||{data:{database:{}}}).data.database,y=(0,a.useCollectionManager_deprecated)(),g=(y.getInterface,y.getInheritCollections),x=y.getCollection,w=y.getTemplate,C=(0,c.useMemo)(function(){return(0,l.createForm)()},[]),A=(0,a.useAttach)(C.createArrayField(E(S({},n.props),{basePath:""}))),I=(0,s.useTranslation)().t,T=(0,a.useResourceContext)(),k=(0,c.useContext)(a.ResourceActionContext),O=k.refreshAsync,D=k.data,R=w(m),M=g(p),_=[{dataIndex:"title",title:I("Field display name"),render:function(e){return u().createElement("div",{className:(0,r.css)(P())},e)}},{dataIndex:"name",title:I("Field name")},{dataIndex:"interface",title:I("Field interface")},{dataIndex:"type",title:I("Field type")},{dataIndex:"titleField",title:I("Title field")},{dataIndex:"actions",title:I("Actions")}],B=((null==D?void 0:D.data)||[]).filter(function(e){return e.interface||e.primaryKey||e.isForeignKey}),q=[];q.push.apply(q,function(e){if(Array.isArray(e))return b(e)}(e=M.map(function(e){var n=x(e);if(n)return{key:e,title:"".concat(I("Inherited fields")," - ")+t(null==n?void 0:n.title),inherit:!0,fields:(null==n?void 0:n.fields)||[]}}).filter(Boolean))||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||F(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}());var L=(0,c.useMemo)(function(){return{useAction:function(){return(0,a.useBulkDestroyActionAndRefreshCM)(!0)},title:I("Delete"),icon:"DeleteOutlined",disabled:null==R?void 0:R.forbidDeletion,confirm:{title:I("Delete record"),content:I("Are you sure you want to delete it?")}}},[I]);return u().createElement(i.FormContext.Provider,{value:C},u().createElement(i.FieldContext.Provider,{value:A},u().createElement(f.a,{collectionName:p}),u().createElement(o.Space,{align:"end",className:(0,r.css)(j())},u().createElement(a.Action,L),u().createElement(a.SyncFieldsAction,{type:"primary"}),u().createElement(a.SyncSQLFieldsAction,{refreshCMList:O}),u().createElement(v,null),u().createElement(a.SchemaComponent,{schema:{type:"object",properties:S({},null==R?void 0:R.configureActions)}}),u().createElement(a.AddCollectionField,{type:"primary",database:h})),B.length>0&&u().createElement("div",null,u().createElement(H,{fields:B,collectionInfo:n.record,collectionResource:T,refreshAsync:O,type:"all"})),q.filter(function(e){return e.fields.length}).length>0&&u().createElement(o.Table,{rowKey:"key",columns:_,dataSource:q.filter(function(e){return e.fields.length}),pagination:!1,showHeader:!1,className:K,expandable:{defaultExpandAllRows:!0,defaultExpandedRowKeys:q.map(function(e){return e.key}),expandedRowRender:function(e){return u().createElement($,{fields:e.fields,collectionResource:T,refreshAsync:O})}}})))},U=function(){return u().createElement(M,null,u().createElement(G,null))}}}]);