@nocobase/plugin-data-source-manager 2.1.0-alpha.4 → 2.1.0-alpha.45

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 (85) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +79 -10
  3. package/client-v2.d.ts +2 -0
  4. package/client-v2.js +1 -0
  5. package/dist/ai/ai-employees/orin/ignored.d.ts +10 -0
  6. package/dist/ai/ai-employees/orin/ignored.js +59 -0
  7. package/dist/ai/ai-employees/orin/skills/data-modeling/SKILLS.md +245 -0
  8. package/dist/ai/{tools → ai-employees/orin/skills/data-modeling/tools}/defineCollections.js +47 -1
  9. package/dist/ai/{tools → ai-employees/orin/skills/data-modeling/tools}/intentRouter.js +1 -1
  10. package/dist/ai/{tools/data-query → common}/common.js +63 -11
  11. package/dist/ai/{tools/data-query → common}/utils.d.ts +1 -0
  12. package/dist/ai/{tools/data-query → common}/utils.js +15 -0
  13. package/dist/ai/skills/data-metadata/SKILLS.md +108 -0
  14. package/dist/ai/{tools → skills/data-metadata/tools}/getCollectionMetadata.js +2 -2
  15. package/dist/ai/{tools → skills/data-metadata/tools}/getCollectionNames.js +2 -2
  16. package/dist/ai/{tools → skills/data-metadata/tools}/getDataSources.js +2 -2
  17. package/dist/ai/{tools → skills/data-metadata/tools}/searchFieldMetadata.js +2 -2
  18. package/dist/ai/skills/data-query/SKILLS.md +246 -0
  19. package/dist/ai/skills/data-query/tools/dataQuery.js +282 -0
  20. package/dist/ai/{tools/data-query → skills/data-query/tools}/dataSourceCounting.js +12 -4
  21. package/dist/ai/skills/data-query/tools/dataSourceQuery.d.ts +10 -0
  22. package/dist/ai/{tools/data-query → skills/data-query/tools}/dataSourceQuery.js +12 -5
  23. package/dist/client/271.b3c0013cf976adf0.js +10 -0
  24. package/dist/client/369.6025f2112454fab1.js +10 -0
  25. package/dist/client/397.c8c6659cf3f7ac1c.js +10 -0
  26. package/dist/client/416.197712b8b93033c5.js +10 -0
  27. package/dist/client/420.0c3e3c9888e0ba31.js +10 -0
  28. package/dist/client/603.d6022bceb934f5b0.js +10 -0
  29. package/dist/client/644.b98e4b39058e9c32.js +10 -0
  30. package/dist/client/936.d5ab7aecb4eb6004.js +10 -0
  31. package/dist/client/index.js +1 -1
  32. package/dist/client-v2/167.c72713810e2d0526.js +10 -0
  33. package/dist/client-v2/426.3cd9f994a3145829.js +10 -0
  34. package/dist/client-v2/components/DataSourceForm.d.ts +17 -0
  35. package/dist/client-v2/field-interfaces/index.d.ts +13 -0
  36. package/dist/client-v2/index.d.ts +12 -0
  37. package/dist/client-v2/index.js +10 -0
  38. package/dist/client-v2/locale.d.ts +11 -0
  39. package/dist/client-v2/pages/DataSourceCollectionsPage.d.ts +10 -0
  40. package/dist/client-v2/pages/DataSourcesPage.d.ts +10 -0
  41. package/dist/client-v2/pages/components/CollectionsPage.d.ts +15 -0
  42. package/dist/client-v2/pages/components/FieldForm.d.ts +19 -0
  43. package/dist/client-v2/pages/components/FieldsPage.d.ts +15 -0
  44. package/dist/client-v2/pages/components/SqlCollectionConfigure.d.ts +62 -0
  45. package/dist/client-v2/pages/components/ViewCollectionConfigure.d.ts +27 -0
  46. package/dist/client-v2/pages/components/collectionFieldApi.d.ts +11 -0
  47. package/dist/client-v2/pages/components/collectionTemplateFieldInterfaces.d.ts +18 -0
  48. package/dist/client-v2/plugin.d.ts +188 -0
  49. package/dist/client-v2/runtime.d.ts +12 -0
  50. package/dist/client-v2/utils/compileLegacyTemplate.d.ts +13 -0
  51. package/dist/externalVersion.js +17 -13
  52. package/dist/locale/en-US.json +270 -3
  53. package/dist/locale/zh-CN.json +270 -3
  54. package/dist/node_modules/zod/index.cjs +1 -1
  55. package/dist/node_modules/zod/package.json +1 -1
  56. package/dist/server/mcp-post-processors.d.ts +24 -0
  57. package/dist/server/mcp-post-processors.js +158 -0
  58. package/dist/server/models/data-source.js +3 -13
  59. package/dist/server/plugin.js +2 -0
  60. package/dist/server/resourcers/data-sources-collections-fields.d.ts +1 -0
  61. package/dist/server/resourcers/data-sources-collections-fields.js +9 -0
  62. package/dist/server/services/external-field-apply.d.ts +23 -0
  63. package/dist/server/services/external-field-apply.js +208 -0
  64. package/dist/server/utils.js +6 -1
  65. package/dist/swagger/index.d.ts +326 -0
  66. package/dist/swagger/index.js +385 -0
  67. package/package.json +5 -2
  68. package/LICENSE.txt +0 -172
  69. package/dist/client/1a8cce8035a89dd9.js +0 -10
  70. package/dist/client/276bcf3de74bebd1.js +0 -10
  71. package/dist/client/2f7a418e7935984d.js +0 -10
  72. package/dist/client/689d3bec33ad2ec3.js +0 -10
  73. package/dist/client/d33eb40009bd7ec6.js +0 -10
  74. package/dist/client/dbf5ddf434ab29c0.js +0 -10
  75. package/dist/client/f528b165e77e3608.js +0 -10
  76. package/dist/client/fdae18574fda07af.js +0 -10
  77. /package/dist/ai/{tools → ai-employees/orin/skills/data-modeling/tools}/defineCollections.d.ts +0 -0
  78. /package/dist/ai/{tools → ai-employees/orin/skills/data-modeling/tools}/intentRouter.d.ts +0 -0
  79. /package/dist/ai/{tools/data-query → common}/common.d.ts +0 -0
  80. /package/dist/ai/{tools → skills/data-metadata/tools}/getCollectionMetadata.d.ts +0 -0
  81. /package/dist/ai/{tools → skills/data-metadata/tools}/getCollectionNames.d.ts +0 -0
  82. /package/dist/ai/{tools → skills/data-metadata/tools}/getDataSources.d.ts +0 -0
  83. /package/dist/ai/{tools → skills/data-metadata/tools}/searchFieldMetadata.d.ts +0 -0
  84. /package/dist/ai/{tools/data-query/dataSourceCounting.d.ts → skills/data-query/tools/dataQuery.d.ts} +0 -0
  85. /package/dist/ai/{tools/data-query/dataSourceQuery.d.ts → skills/data-query/tools/dataSourceCounting.d.ts} +0 -0
@@ -0,0 +1,282 @@
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 __create = Object.create;
11
+ var __defProp = Object.defineProperty;
12
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
13
+ var __getOwnPropNames = Object.getOwnPropertyNames;
14
+ var __getProtoOf = Object.getPrototypeOf;
15
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
16
+ var __export = (target, all) => {
17
+ for (var name in all)
18
+ __defProp(target, name, { get: all[name], enumerable: true });
19
+ };
20
+ var __copyProps = (to, from, except, desc) => {
21
+ if (from && typeof from === "object" || typeof from === "function") {
22
+ for (let key of __getOwnPropNames(from))
23
+ if (!__hasOwnProp.call(to, key) && key !== except)
24
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
25
+ }
26
+ return to;
27
+ };
28
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
29
+ // If the importer is in node compatibility mode or this is not an ESM
30
+ // file that has been converted to a CommonJS file using a Babel-
31
+ // compatible transform (i.e. "__esModule" has not been set), then set
32
+ // "default" to the CommonJS "module.exports" for node compatibility.
33
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
34
+ mod
35
+ ));
36
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
37
+ var dataQuery_exports = {};
38
+ __export(dataQuery_exports, {
39
+ default: () => dataQuery_default
40
+ });
41
+ module.exports = __toCommonJS(dataQuery_exports);
42
+ var import_acl = require("@nocobase/acl");
43
+ var import_ai = require("@nocobase/ai");
44
+ var import_plugin_acl = require("@nocobase/plugin-acl");
45
+ var import_utils = require("../../../common/utils");
46
+ var import_package = __toESM(require("../../../../../package.json"));
47
+ const queryFieldSchema = {
48
+ anyOf: [
49
+ { type: "string" },
50
+ {
51
+ type: "array",
52
+ items: { type: "string" },
53
+ minItems: 1
54
+ }
55
+ ]
56
+ };
57
+ const queryMeasureSchema = {
58
+ type: "object",
59
+ additionalProperties: true,
60
+ required: ["field"],
61
+ properties: {
62
+ field: queryFieldSchema,
63
+ type: {
64
+ type: "string",
65
+ description: "Optional field type hint."
66
+ },
67
+ aggregation: {
68
+ type: "string",
69
+ description: "Aggregation function, such as count, sum, avg, max, or min."
70
+ },
71
+ alias: {
72
+ type: "string",
73
+ description: "Output field alias."
74
+ },
75
+ distinct: {
76
+ type: "boolean",
77
+ description: "Whether to apply distinct before aggregation."
78
+ }
79
+ }
80
+ };
81
+ const queryDimensionSchema = {
82
+ type: "object",
83
+ additionalProperties: true,
84
+ required: ["field"],
85
+ properties: {
86
+ field: queryFieldSchema,
87
+ type: {
88
+ type: "string",
89
+ description: "Optional field type hint."
90
+ },
91
+ alias: {
92
+ type: "string",
93
+ description: "Output field alias."
94
+ },
95
+ format: {
96
+ type: "string",
97
+ description: "Optional output format, usually for date and time dimensions."
98
+ },
99
+ options: {
100
+ type: "object",
101
+ description: "Additional formatter options.",
102
+ additionalProperties: true
103
+ }
104
+ }
105
+ };
106
+ const queryOrderSchema = {
107
+ type: "object",
108
+ additionalProperties: true,
109
+ required: ["field"],
110
+ properties: {
111
+ field: queryFieldSchema,
112
+ alias: {
113
+ type: "string",
114
+ description: "Alias to sort by when the selected field is projected with an alias."
115
+ },
116
+ order: {
117
+ type: "string",
118
+ enum: ["asc", "desc"],
119
+ description: "Sort direction."
120
+ },
121
+ nulls: {
122
+ type: "string",
123
+ enum: ["default", "first", "last"],
124
+ description: "Null value ordering."
125
+ }
126
+ }
127
+ };
128
+ const AggregateQuerySchema = {
129
+ type: "object",
130
+ additionalProperties: false,
131
+ required: ["collectionName"],
132
+ properties: {
133
+ dataSource: {
134
+ type: "string",
135
+ description: "Data source key. Defaults to main."
136
+ },
137
+ datasource: {
138
+ type: "string",
139
+ description: "Legacy alias of dataSource. Defaults to main."
140
+ },
141
+ collectionName: {
142
+ type: "string",
143
+ description: "Collection name to query."
144
+ },
145
+ measures: {
146
+ type: "array",
147
+ description: "Measure definitions for aggregate query.",
148
+ items: queryMeasureSchema
149
+ },
150
+ dimensions: {
151
+ type: "array",
152
+ description: "Dimension definitions for grouped query.",
153
+ items: queryDimensionSchema
154
+ },
155
+ orders: {
156
+ type: "array",
157
+ description: "Order definitions for aggregate query.",
158
+ items: queryOrderSchema
159
+ },
160
+ filter: {
161
+ type: "object",
162
+ description: 'Filter object applied before aggregation. Pass a structured object, not a JSON string. Follow the frontend NocoBase date filter contract: use only $dateOn, $dateNotOn, $dateBefore, $dateAfter, $dateNotBefore, $dateNotAfter, $dateBetween, $empty, and $notEmpty for calendar-style date filtering; prefer YYYY-MM-DD, YYYY-MM, YYYY, relative period objects, or ["start","end"] date ranges; do not expand month/day queries into UTC boundary timestamps.',
163
+ additionalProperties: true
164
+ },
165
+ having: {
166
+ type: "object",
167
+ description: "Having object applied after grouping. Pass a structured object, not a JSON string. Reference selected measure aliases or selected field paths here, for example { count: { $gt: 10 } }.",
168
+ additionalProperties: true
169
+ },
170
+ offset: {
171
+ type: "number",
172
+ description: "Offset for query result rows."
173
+ },
174
+ limit: {
175
+ type: "number",
176
+ description: `Maximum number of rows to return. Defaults to 50 and is capped at ${import_utils.MAX_QUERY_LIMIT}.`
177
+ }
178
+ }
179
+ };
180
+ function getDataSourceKey(args) {
181
+ return args.dataSource || args.datasource || "main";
182
+ }
183
+ function getTimezone(ctx, args) {
184
+ var _a, _b, _c, _d, _e, _f, _g;
185
+ const value = ((_a = ctx.get) == null ? void 0 : _a.call(ctx, "x-timezone")) || ((_c = (_b = ctx.request) == null ? void 0 : _b.get) == null ? void 0 : _c.call(_b, "x-timezone")) || ((_e = (_d = ctx.request) == null ? void 0 : _d.header) == null ? void 0 : _e["x-timezone"]) || ((_g = (_f = ctx.req) == null ? void 0 : _f.headers) == null ? void 0 : _g["x-timezone"]);
186
+ return Array.isArray(value) ? value[0] : value;
187
+ }
188
+ var dataQuery_default = (0, import_ai.defineTools)({
189
+ scope: "SPECIFIED",
190
+ defaultPermission: "ALLOW",
191
+ introduction: {
192
+ title: `{{t("ai.tools.dataQuery.title", { ns: "${import_package.default.name}" })}}`,
193
+ about: `{{t("ai.tools.dataQuery.about", { ns: "${import_package.default.name}" })}}`
194
+ },
195
+ definition: {
196
+ name: "dataQuery",
197
+ description: "Run the repository query action on a collection with measures, dimensions, orders, filter, and having.",
198
+ schema: AggregateQuerySchema
199
+ },
200
+ invoke: async (ctx, args) => {
201
+ var _a, _b, _c, _d, _e;
202
+ const filterError = (0, import_utils.getStructuredQueryArgError)("filter", args.filter);
203
+ if (filterError) {
204
+ return {
205
+ status: "error",
206
+ content: filterError
207
+ };
208
+ }
209
+ const havingError = (0, import_utils.getStructuredQueryArgError)("having", args.having);
210
+ if (havingError) {
211
+ return {
212
+ status: "error",
213
+ content: havingError
214
+ };
215
+ }
216
+ const dataSourceKey = getDataSourceKey(args);
217
+ const ds = ctx.app.dataSourceManager.get(dataSourceKey);
218
+ if (!ds) {
219
+ return {
220
+ status: "error",
221
+ content: `Data source "${dataSourceKey}" not found`
222
+ };
223
+ }
224
+ const collection = ds.collectionManager.getCollection(args.collectionName);
225
+ if (!collection) {
226
+ return {
227
+ status: "error",
228
+ content: `Collection "${args.collectionName}" not found in data source "${dataSourceKey}"`
229
+ };
230
+ }
231
+ const { limit, offset } = (0, import_utils.normalizeLimitOffset)(args, { defaultLimit: 50, maxLimit: import_utils.MAX_QUERY_LIMIT });
232
+ const timezone = getTimezone(ctx, args);
233
+ if (!((_a = args.measures) == null ? void 0 : _a.length) && !((_b = args.dimensions) == null ? void 0 : _b.length)) {
234
+ return {
235
+ status: "error",
236
+ content: "Aggregate query requires at least one measure or dimension"
237
+ };
238
+ }
239
+ try {
240
+ const db = ds.collectionManager.db || ctx.db;
241
+ const result = await (0, import_plugin_acl.applyQueryPermission)({
242
+ acl: ds.acl || ctx.app.acl,
243
+ db,
244
+ resourceName: args.collectionName,
245
+ query: {
246
+ measures: args.measures,
247
+ dimensions: args.dimensions,
248
+ orders: args.orders,
249
+ filter: args.filter,
250
+ having: args.having,
251
+ limit,
252
+ offset
253
+ },
254
+ currentUser: (_c = ctx.state) == null ? void 0 : _c.currentUser,
255
+ currentRole: (_d = ctx.state) == null ? void 0 : _d.currentRole,
256
+ currentRoles: (_e = ctx.state) == null ? void 0 : _e.currentRoles,
257
+ timezone,
258
+ state: ctx.state
259
+ });
260
+ const queryResult = await db.getRepository(args.collectionName).query({
261
+ ...result.query,
262
+ context: ctx,
263
+ timezone
264
+ });
265
+ return {
266
+ status: "success",
267
+ content: JSON.stringify((0, import_utils.truncateLongStrings)(queryResult))
268
+ };
269
+ } catch (error) {
270
+ if (error instanceof import_acl.NoPermissionError) {
271
+ return {
272
+ status: "error",
273
+ content: "No permissions"
274
+ };
275
+ }
276
+ return {
277
+ status: "error",
278
+ content: (error == null ? void 0 : error.message) || "Aggregate query failed"
279
+ };
280
+ }
281
+ }
282
+ });
@@ -40,10 +40,11 @@ __export(dataSourceCounting_exports, {
40
40
  });
41
41
  module.exports = __toCommonJS(dataSourceCounting_exports);
42
42
  var import_ai = require("@nocobase/ai");
43
- var import_common = require("./common");
44
- var import_package = __toESM(require("../../../../package.json"));
43
+ var import_common = require("../../../common/common");
44
+ var import_utils = require("../../../common/utils");
45
+ var import_package = __toESM(require("../../../../../package.json"));
45
46
  var dataSourceCounting_default = (0, import_ai.defineTools)({
46
- scope: "GENERAL",
47
+ scope: "SPECIFIED",
47
48
  defaultPermission: "ALLOW",
48
49
  introduction: {
49
50
  title: `{{t("ai.tools.dataSourceCounting.title", { ns: "${import_package.default.name}" })}}`,
@@ -51,10 +52,17 @@ var dataSourceCounting_default = (0, import_ai.defineTools)({
51
52
  },
52
53
  definition: {
53
54
  name: "dataSourceCounting",
54
- description: "Use dataSource, collectionName, and collection fields to query data from the database, get total count of records",
55
+ description: "Use dataSource, collectionName, and collection fields to query data from the database, get total count of records. The filter argument must be a structured object, not a JSON string.",
55
56
  schema: import_common.ArgSchema
56
57
  },
57
58
  invoke: async (ctx, args) => {
59
+ const filterError = (0, import_utils.getStructuredQueryArgError)("filter", args.filter);
60
+ if (filterError) {
61
+ return {
62
+ status: "error",
63
+ content: filterError
64
+ };
65
+ }
58
66
  const plugin = ctx.app.pm.get("ai");
59
67
  const content = await plugin.aiContextDatasourceManager.query(ctx, { ...args, offset: 0, limit: 1 });
60
68
  return {
@@ -0,0 +1,10 @@
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
+ declare const _default: import("@nocobase/ai").ToolsOptions;
10
+ export default _default;
@@ -40,11 +40,11 @@ __export(dataSourceQuery_exports, {
40
40
  });
41
41
  module.exports = __toCommonJS(dataSourceQuery_exports);
42
42
  var import_ai = require("@nocobase/ai");
43
- var import_common = require("./common");
44
- var import_utils = require("./utils");
45
- var import_package = __toESM(require("../../../../package.json"));
43
+ var import_common = require("../../../common/common");
44
+ var import_utils = require("../../../common/utils");
45
+ var import_package = __toESM(require("../../../../../package.json"));
46
46
  var dataSourceQuery_default = (0, import_ai.defineTools)({
47
- scope: "GENERAL",
47
+ scope: "SPECIFIED",
48
48
  defaultPermission: "ALLOW",
49
49
  introduction: {
50
50
  title: `{{t("ai.tools.dataSourceQuery.title", { ns: "${import_package.default.name}" })}}`,
@@ -52,10 +52,17 @@ var dataSourceQuery_default = (0, import_ai.defineTools)({
52
52
  },
53
53
  definition: {
54
54
  name: "dataSourceQuery",
55
- description: "Use dataSource, collectionName, and collection fields to query data from the database",
55
+ description: "Use dataSource, collectionName, and collection fields to query data from the database. The filter argument must be a structured object, not a JSON string.",
56
56
  schema: import_common.ArgSchema
57
57
  },
58
58
  invoke: async (ctx, args) => {
59
+ const filterError = (0, import_utils.getStructuredQueryArgError)("filter", args.filter);
60
+ if (filterError) {
61
+ return {
62
+ status: "error",
63
+ content: filterError
64
+ };
65
+ }
59
66
  const plugin = ctx.app.pm.get("ai");
60
67
  const { limit, offset } = (0, import_utils.normalizeLimitOffset)(args, { defaultLimit: 50, maxLimit: import_utils.MAX_QUERY_LIMIT });
61
68
  const content = await plugin.aiContextDatasourceManager.query(ctx, {
@@ -0,0 +1,10 @@
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([["271"],{61:function(e,t,n){n.r(t),n.d(t,{DatabaseConnectionManagerPane:function(){return J}});var r=n(166),o=n(342),a=n(59),l=n(155),i=n.n(l),c=n(953),u=n(719),s=n(221),p=n(135),f=n(375),d=n(230),m=n(691),y=n(872),b=n(694);function v(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 h(e,t,n,r,o,a,l){try{var i=e[a](l),c=i.value}catch(e){n(e);return}i.done?t(c):Promise.resolve(c).then(r,o)}function g(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}function C(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function x(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],l=!0,i=!1;try{for(o=o.call(e);!(l=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);l=!0);}catch(e){i=!0,r=e}finally{try{l||null==o.return||o.return()}finally{if(i)throw r}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return v(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 v(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 S=(0,b.observer)(function(e){var t,n,r,c,u,s,p,d,m,y,b=(0,o.useAPIClient)(),v=x((0,l.useState)(!1),2),S=v[0],w=v[1],A=x((0,l.useState)(""),2),k=A[0],O=A[1],P=x((0,l.useState)([]),2),E=P[0],j=P[1],D=x((0,l.useState)(new Map),2),T=D[0],I=D[1],M=x((0,l.useState)(!1),2),q=M[0],R=M[1],V=(0,l.useRef)(),_=e.NAMESPACE,F=e.t,U=(null==(n=e.formValues)||null==(t=n.options)?void 0:t.addAllCollections)===void 0||(null==(c=e.formValues)||null==(r=c.options)?void 0:r.addAllCollections),$=x((0,l.useState)(U),2),L=$[0],N=$[1],z=(0,l.useMemo)(function(){var t=e.value&&e.value.length>0?e.value:E;return k.trim()&&(t=t.filter(function(e){var t;return null==(t=e.name)?void 0:t.toLowerCase().includes(k.toLowerCase())})),t},[e.value,E,k]),B=(0,l.useMemo)(function(){return e.value&&e.value.length>0?e.value:E},[e.value,E]),W=(0,l.useMemo)(function(){var t,n=null==(t=e.options)?void 0:t.tablePrefix;return z.map(function(e){var t,r=!1;return e.required||q?r=!0:T.get(e.name)&&(!n||!n.trim()||(null==(t=e.name)?void 0:t.startsWith(n.trim())))&&(r=!0),C(g({},e),{selected:r})})},[z,T,q,null==(u=e.options)?void 0:u.tablePrefix]),K=(0,l.useRef)(null==(s=e.options)?void 0:s.tablePrefix);(0,l.useEffect)(function(){var t=null==(n=e.options)?void 0:n.tablePrefix;if(K.current!==t&&E.length>0){K.current=t;var n,r,o=E.map(function(e){var n,r=!1;return e.required?r=!0:T.get(e.name)&&(!t||!t.trim()||(null==(n=e.name)?void 0:n.startsWith(t.trim())))&&(r=!0),C(g({},e),{selected:r})});null==(r=e.onChange)||r.call(e,o)}},[null==(p=e.options)?void 0:p.tablePrefix,E.length,T]),(0,l.useEffect)(function(){if(B.length>0){var e=new Map;B.forEach(function(t){t.selected&&e.set(t.name,!0)}),I(e),R(!1)}},[B.length]);var G=(0,l.useCallback)(function(t){N(t),e.formSetValues&&e.formSetValues("options.addAllCollections",t)},[e.formSetValues]),H=(0,l.useCallback)(function(){var t;return(t=function(){var t,n,r,o,l,i,c,u,s,p,f,d,m;return function(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},l=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(l,"next",{value:c(0)}),i(l,"throw",{value:c(1)}),i(l,"return",{value:c(2)}),"function"==typeof Symbol&&i(l,Symbol.iterator,{value:function(){return this}}),l;function c(i){return function(c){var u=[i,c];if(n)throw TypeError("Generator is already executing.");for(;l&&(l=0,u[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&u[0]?r.return:u[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,u[1])).done)return o;switch(r=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,r=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){a.label=u[1];break}if(6===u[0]&&a.label<o[1]){a.label=o[1],o=u;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(u);break}o[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],r=0}finally{n=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(y){switch(y.label){case 0:if(t=e.dataSourceKey,n=e.formValues,r=e.onChange,o=e.from,l=(null==n?void 0:n.options)||{},i=F("is required"),"oracle"!==n.type){if(!t)return a.message.error(F("Data source name",{ns:_})+i),[2];if(!l.host)return a.message.error(F("Host",{ns:_})+i),[2];if(!l.port)return a.message.error(F("Port",{ns:_})+i),[2];if(!l.database)return a.message.error(F("Database",{ns:_})+i),[2];if(!l.username)return a.message.error(F("Username",{ns:_})+i),[2]}w(!0),y.label=1;case 1:return y.trys.push([1,3,4,5]),[4,b.resource("dataSources").readTables({values:g({dataSourceKey:t},"create"===o?{dbOptions:C(g({},l),{type:n.type||"mysql"})}:{})})];case 2:return j(u=((null==(c=y.sent())?void 0:c.data)||{}).data||[]),s=0===T.size&&e.value&&e.value.length>0,p=T,s&&(f=new Map,e.value.forEach(function(e){e.selected&&f.set(e.name,!0)}),I(f),p=f),d=l.tablePrefix,m=u.map(function(e){var t,n=!1;return e.required?n=!0:p.get(e.name)&&(!d||!d.trim()||(null==(t=e.name)?void 0:t.startsWith(d.trim())))&&(n=!0),C(g({},e),{selected:n})}),r&&r(m),[3,5];case 3:return console.error("Error loading collections:",y.sent()),a.message.error(F("Failed to load collections",{ns:_})),[3,5];case 4:return w(!1),[7];case 5:return[2]}})},function(){var e=this,n=arguments;return new Promise(function(r,o){var a=t.apply(e,n);function l(e){h(a,r,o,l,i,"next",e)}function i(e){h(a,r,o,l,i,"throw",e)}l(void 0)})})()},[e.dataSourceKey,e.formValues,e.options,e.from,e.tablePrefix,b,F,_]),J=(0,l.useCallback)(function(e){V.current&&clearTimeout(V.current),V.current=setTimeout(function(){O(e)},300)},[]);(0,l.useEffect)(function(){return function(){V.current&&clearTimeout(V.current)}},[]);var Q=(0,l.useMemo)(function(){var t,n=null==(t=e.options)?void 0:t.tablePrefix,r=B.filter(function(e){var t;return!!e.required||!!T.get(e.name)&&!!(!n||!n.trim()||(null==(t=e.name)?void 0:t.startsWith(n.trim())))}).length,o=W.filter(function(e){return!e.required}),a=W.filter(function(e){return e.selected||e.required}).length;return{isAllSelected:o.length>0&&a===W.length,isIndeterminate:a>0&&a<W.length,selectedCount:r,isAtLimit:r>=500}},[W,B,T,null==(d=e.options)?void 0:d.tablePrefix]),X=Q.isAllSelected,Y=Q.isIndeterminate,Z=Q.selectedCount,ee=Q.isAtLimit,et=(0,l.useCallback)(function(t){var n,r=null==(n=e.options)?void 0:n.tablePrefix;if(t){var o=B.filter(function(e){var t;return!!e.required||!!T.get(e.name)&&!!(!r||!r.trim()||(null==(t=e.name)?void 0:t.startsWith(r.trim())))}).length,l=z.filter(function(e){return!e.required&&!T.get(e.name)}).length;if(o>=500)return;l>500-o&&a.message.warning(F("Maximum selection limit exceeded. To ensure system performance, you can select up to {{limit}} collections.",{ns:_,limit:500}))}R(t);var i=function(){var n,o=new Map(T),a=0,l=500-B.filter(function(e){var t;return!!e.required||!!T.get(e.name)&&!!(!r||!r.trim()||(null==(t=e.name)?void 0:t.startsWith(r.trim())))}).length;z.forEach(function(e){!e.required&&(t?a<l&&!T.get(e.name)&&(o.set(e.name,!0),a++):o.delete(e.name))}),I(o);var i=B.map(function(e){var t,n=!1;return e.required?n=!0:o.get(e.name)&&(!r||!r.trim()||(null==(t=e.name)?void 0:t.startsWith(r.trim())))&&(n=!0),C(g({},e),{selected:n})});null==(n=e.onChange)||n.call(e,i),R(!1)};if("u">typeof MessageChannel){var c=new MessageChannel;c.port2.onmessage=function(){return i()},c.port1.postMessage(null)}else setTimeout(i,0)},[z,B,T,e.onChange,null==(m=e.options)?void 0:m.tablePrefix,F,_]),en=(0,l.useCallback)(function(t,n){var r=W[t];if(r&&r.selected!==n){if(n){var o,l=null==(o=e.options)?void 0:o.tablePrefix,i=B.filter(function(e){var t;return!!e.required||!!T.get(e.name)&&!!(!l||!l.trim()||(null==(t=e.name)?void 0:t.startsWith(l.trim())))}).length;if(i>=500)return;i+1===500&&a.message.warning(F("Maximum selection limit reached. To ensure system performance, you can select up to {{limit}} collections at once.",{ns:_,limit:500}))}var c=new Map(T);n?c.set(r.name,!0):(c.delete(r.name),R(!1)),I(c),setTimeout(function(){var t,n,r=null==(t=e.options)?void 0:t.tablePrefix,o=B.map(function(e){var t,n=!1;return e.required?n=!0:c.get(e.name)&&(!r||!r.trim()||(null==(t=e.name)?void 0:t.startsWith(r.trim())))&&(n=!0),C(g({},e),{selected:n})});null==(n=e.onChange)||n.call(e,o)},0)}},[W,B,T,e.onChange,null==(y=e.options)?void 0:y.tablePrefix,F,_]),er=(0,l.useCallback)(function(e){J(e)},[J]),eo=(0,l.useCallback)(function(){O(""),V.current&&clearTimeout(V.current)},[]),ea=(0,l.useCallback)(function(){I(new Map),R(!1);var t,n=B.map(function(e){return C(g({},e),{selected:e.required||!1})});null==(t=e.onChange)||t.call(e,n)},[B,e.onChange]),el=(0,l.useMemo)(function(){var e=i().memo(function(e){var t=e.selected,n=e.required,r=e.index,o=e.onChange,l=(e.name,e.disabled);return i().createElement(a.Checkbox,{checked:n||t,disabled:n||l,onChange:function(e){return o(r,e.target.checked)}})}),t=i().memo(function(e){var t=e.text;return i().createElement("span",{style:{paddingLeft:"40px"}},t)}),n=[{title:i().createElement("div",{style:{textAlign:"center"}},F("Display name",{ns:_})),dataIndex:"name",key:"name",align:"left",width:"50%",render:function(e){return i().createElement(t,{text:e})}}];if(!L){var r=Z>=450,o=B.filter(function(e){return T.get(e.name)||e.required}).length,l=W.filter(function(e){return!e.selected&&!e.required}).length;n.push({title:i().createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",gap:4}},i().createElement(a.Checkbox,{checked:X,indeterminate:Y,disabled:ee&&!X&&!(o+l<=500),onChange:function(e){return et(e.target.checked)}}),i().createElement("span",{style:r?{color:"#ff7a00"}:{}},F("Add",{ns:_})," (",Z,"/",B.length,")"),Z>0&&i().createElement(a.Tooltip,{title:F("Reset selection",{ns:_})},i().createElement(a.Button,{type:"text",size:"small",icon:i().createElement(f.ClearOutlined,null),onClick:ea,style:{padding:"0 4px",height:"16px",minWidth:"16px",fontSize:"12px",color:"#666"}}))),dataIndex:"selected",key:"selected",align:"center",width:"30%",render:function(t,n,r){var o=ee&&!t&&!n.required;return i().createElement(e,{selected:t,required:n.required,index:r,name:n.name,disabled:o,onChange:en})}})}return n},[F,X,Y,et,en,L,_,Z,B.length,ee,T,W,ea]);return i().createElement("div",null,i().createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",margin:"8px 0"}},i().createElement("div",null,i().createElement(a.Checkbox,{checked:L,onChange:function(e){return G(e.target.checked)}},F("Add all collections",{ns:_}))),i().createElement(a.Input.Search,{placeholder:F("Search collection name",{ns:_}),allowClear:!0,style:{width:250},onSearch:er,onChange:function(e){return er(e.target.value)},onClear:eo}),i().createElement(a.Button,{icon:i().createElement(f.ReloadOutlined,null),onClick:function(){return H()},loading:S},F("Load Collections",{ns:_}))),i().createElement(a.Table,{columns:el,dataSource:W,loading:S,pagination:!1,scroll:{x:L?300:550,y:400},virtual:!0,bordered:!0,rowKey:"name",size:"small"}))}),w=function(e){var t=e.NAMESPACE,n=e.t;return{CollectionsTable:function(e){return i().createElement(S,C(g({},e),{NAMESPACE:t,t:n}))},createCollectionsSchema:function(e,n){return{type:"array",title:'{{t("Collections",{ ns: "'.concat(t,'" })}}'),"x-decorator":"FormItem","x-component":"CollectionsTable","x-component-props":{from:e,loadCollections:n,formValues:"{{$form.values}}",options:"{{$form.values.options}}",formSetValues:"{{$form.setValuesIn}}"},"x-reactions":[{dependencies:["..key","..options","..addAllCollections"],fulfill:{schema:{"x-component-props.dataSourceKey":"{{$deps[0]}}","x-component-props.options":"{{$deps[1]}}","x-component-props.addAllCollectionsValue":"{{$deps[2]}}"}}},{dependencies:["..options.tablePrefix"],fulfill:{run:"\n $self.forceUpdate && $self.forceUpdate();\n "}},{dependencies:["..key"],fulfill:{run:"\n if ($deps[0] && from === 'edit' && loadCollections) {\n (async () => {\n const {data} = await loadCollections($deps[0]);\n $self.value = data || [];\n $form.setValuesIn('collections', data || []);\n })();\n }\n "}}]}},Text:(0,b.observer)(function(e){return i().createElement("span",null,e.value)}),addAllCollectionsSchema:{type:"boolean","x-component":"Checkbox","x-display":"hidden",default:!0}}};function A(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 k(e,t,n,r,o,a,l){try{var i=e[a](l),c=i.value}catch(e){n(e);return}i.done?t(c):Promise.resolve(c).then(r,o)}function O(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function P(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],l=!0,i=!1;try{for(o=o.call(e);!(l=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);l=!0);}catch(e){i=!0,r=e}finally{try{l||null==o.return||o.return()}finally{if(i)throw r}}return a}}(e,t)||j(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 E(e){return function(e){if(Array.isArray(e))return A(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||j(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.")}()}function j(e,t){if(e){if("string"==typeof e)return A(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 A(e,t)}}var D=function(e){var t=(0,d.useForm)(),n=(0,d.useField)(),r=(0,o.useActionContext)(),a=(0,o.useResourceActionContext)().refresh,l=(0,o.useResourceContext)().resource;return{run:function(){var o;return(o=function(){var o,i,c;return function(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},l=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(l,"next",{value:c(0)}),i(l,"throw",{value:c(1)}),i(l,"return",{value:c(2)}),"function"==typeof Symbol&&i(l,Symbol.iterator,{value:function(){return this}}),l;function c(i){return function(c){var u=[i,c];if(n)throw TypeError("Generator is already executing.");for(;l&&(l=0,u[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&u[0]?r.return:u[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,u[1])).done)return o;switch(r=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,r=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){a.label=u[1];break}if(6===u[0]&&a.label<o[1]){a.label=o[1],o=u;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(u);break}o[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],r=0}finally{n=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(u){switch(u.label){case 0:return u.trys.push([0,4,,5]),[4,t.submit()];case 1:var s,p;return u.sent(),n.data=n.data||{},n.data.loading=!0,i=t.values.collections||[],[4,l.create({values:(s=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){O(e,t,n[t])})}return e}({},t.values),p=p={collections:i.filter(function(e){return e.selected}).map(function(e){return e.name})},Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(p)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(p)).forEach(function(e){Object.defineProperty(s,e,Object.getOwnPropertyDescriptor(p,e))}),s)})];case 2:return c=u.sent(),r.setVisible(!1),null==e||e(null==c||null==(o=c.data)?void 0:o.data),[4,t.reset()];case 3:return u.sent(),n.data.loading=!1,a(),[3,5];case 4:return u.sent(),n.data&&(n.data.loading=!1),[3,5];case 5:return[2]}})},function(){var e=this,t=arguments;return new Promise(function(n,r){var a=o.apply(e,t);function l(e){k(a,n,r,l,i,"next",e)}function i(e){k(a,n,r,l,i,"throw",e)}l(void 0)})})()}}},T=function(){var e=P((0,l.useState)({}),2),t=e[0],n=e[1],s=(0,o.usePlugin)(u.default),p=(0,o.useCompile)(),d=P((0,l.useState)(!1),2),b=d[0],v=d[1],h=(0,c.useTranslation)().t,g=P((0,l.useState)(null),2),C=g[0],x=g[1],S=(0,o.useAPIClient)(),A=(0,m.useLoadCollections)();return i().createElement("div",null,i().createElement(o.ActionContext.Provider,{value:{visible:b,setVisible:v}},i().createElement(a.Dropdown,{menu:{onClick:function(e){if("__empty__"!==e.key){var t=s.types.get(e.key);x(e.key),v(!0),n({type:"object",properties:O({},(0,r.uid)(),{type:"void","x-component":"Action.Drawer","x-component-props":{width:650},"x-decorator":"Form","x-decorator-props":{initialValue:{type:e.key,key:"d_".concat((0,r.uid)())}},title:p("{{t('Add new')}}")+" - "+p(t.label),properties:{body:{type:"void","x-component":t.DataSourceSettingsForm.bind(null,{CollectionsTableField:w,loadCollections:A,from:"create"})},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{testConnection:{title:'{{ t("Test Connection",{ ns: "'.concat(y.CU,'" }) }}'),"x-component":"Action","x-component-props":{useAction:"{{ useTestConnectionAction }}"},"x-hidden":null==t?void 0:t.disableTestConnection},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:"{{ useCreateAction }}",actionCallback:"{{ dataSourceCreateCallback }}"}}}}}})})}},items:[s.types.size?null:{key:"__empty__",label:i().createElement(a.Empty,{image:a.Empty.PRESENTED_IMAGE_SIMPLE,description:i().createElement(i().Fragment,null,h("No external data source plugin installed",{ns:y.CU}),i().createElement("br",null)," ",i().createElement("a",{target:"_blank",href:"zh-CN"===S.auth.locale?"https://docs-cn.nocobase.com/handbook/data-source-manager":"https://docs.nocobase.com/handbook/data-source-manager",rel:"noreferrer"},h("View documentation",{ns:y.CU})))})}].filter(Boolean).concat(E(s.types.keys()).map(function(e){var t=s.types.get(e);return{key:e,label:p(null==t?void 0:t.label)}}))}},i().createElement(a.Button,{type:"primary",icon:i().createElement(f.PlusOutlined,null)},h("Add new")," ",i().createElement(f.DownOutlined,null))),i().createElement(o.SchemaComponent,{scope:{createOnly:!1,useTestConnectionAction:m.useTestConnectionAction,dialect:C,useDialectDataSource:function(e){e.dataSource=E(s.types.keys()).map(function(e){var t=s.types.get(e);return{value:t.name,label:p(t.label)}})},useCreateAction:D},schema:t})))},I=n(773),M=n.n(I);function q(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 R(e,t,n,r,o,a,l){try{var i=e[a](l),c=i.value}catch(e){n(e);return}i.done?t(c):Promise.resolve(c).then(r,o)}function V(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],l=!0,i=!1;try{for(o=o.call(e);!(l=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);l=!0);}catch(e){i=!0,r=e}finally{try{l||null==o.return||o.return()}finally{if(i)throw r}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return q(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 q(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 F=function(){var e=(0,o.useRecord)(),t=_((0,l.useState)({}),2),n=t[0],a=t[1],s=(0,o.usePlugin)(u.default),p=(0,o.useCompile)(),f=_((0,l.useState)(!1),2),b=f[0],v=f[1],h=(0,c.useTranslation)().t,g=(0,o.useDataSourceManager)(),C=(0,m.useLoadCollections)();return(0,o.useAPIClient)(),i().createElement("div",null,i().createElement(o.ActionContext.Provider,{value:{visible:b,setVisible:v}},"main"!==e.key&&i().createElement("a",{onClick:function(){v(!0);var t=s.types.get(e.type);a({type:"object",properties:V({},(0,r.uid)(),{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{initialValue:e},"x-component-props":{width:650},title:p("{{t('Edit')}}")+" - "+p(e.displayName),properties:{body:{type:"void","x-component":t.DataSourceSettingsForm.bind(null,{CollectionsTableField:w,loadCollections:C,from:"edit"})},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: "'.concat(y.CU,'" }) }}'),"x-component":"Action","x-component-props":{useAction:"{{ useTestConnectionAction }}"},"x-hidden":null==t?void 0:t.disableTestConnection},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ useUpdateAction }}"}}}}}})})}},h("Edit")),i().createElement(o.SchemaComponent,{scope:{createOnly:!0,useUpdateAction:function(){var e=(0,d.useField)(),t=(0,d.useForm)(),n=(0,o.useActionContext)(),r=(0,o.useResourceActionContext)().refresh,a=(0,o.useResourceContext)().resource,l=(0,o.useRecord)().key;return{run:function(){var o;return(o=function(){var o;return function(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},l=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(l,"next",{value:c(0)}),i(l,"throw",{value:c(1)}),i(l,"return",{value:c(2)}),"function"==typeof Symbol&&i(l,Symbol.iterator,{value:function(){return this}}),l;function c(i){return function(c){var u=[i,c];if(n)throw TypeError("Generator is already executing.");for(;l&&(l=0,u[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&u[0]?r.return:u[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,u[1])).done)return o;switch(r=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,r=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){a.label=u[1];break}if(6===u[0]&&a.label<o[1]){a.label=o[1],o=u;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(u);break}o[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],r=0}finally{n=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(i){switch(i.label){case 0:return[4,t.submit()];case 1:i.sent(),e.data=e.data||{},e.data.loading=!0,o=t.values.collections||[],i.label=2;case 2:var c,u;return i.trys.push([2,5,6,7]),[4,a.update({filterByTk:l,values:(c=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){V(e,t,n[t])})}return e}({},t.values),u=u={collections:o.filter(function(e){return e.selected}).map(function(e){return e.name})},Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(u)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(u)).forEach(function(e){Object.defineProperty(c,e,Object.getOwnPropertyDescriptor(u,e))}),c)})];case 3:return i.sent(),n.setVisible(!1),g.getDataSource(l).setOptions(M().omit(t.values,"collections")),g.getDataSource(l).reload(),[4,t.reset()];case 4:return i.sent(),r(),[3,7];case 5:return console.log(i.sent()),[3,7];case 6:return e.data.loading=!1,[7];case 7:return[2]}})},function(){var e=this,t=arguments;return new Promise(function(n,r){var a=o.apply(e,t);function l(e){R(a,n,r,l,i,"next",e)}function i(e){R(a,n,r,l,i,"throw",e)}l(void 0)})})()}}},loadCollections:C},schema:n})))},U=n(477),$=n(442),L=function(e){var t=e.key,n=e.type;return"/admin/settings/data-source-manager/".concat(t,"/collections?type=").concat(n)};function N(){var e,t,n=(e=["\n .ant-btn-link {\n &:hover {\n color: rgba(0, 0, 0, 0.25) !important;\n }\n }\n "],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return N=function(){return n},n}var z=function(){var e=(0,o.useRecord)(),t=(0,$.useNavigate)(),n=(0,c.useTranslation)().t;return i().createElement("div",{className:e.enabled?void 0:(0,U.css)(N())},i().createElement(a.Button,{type:"link",style:{padding:"0px"},disabled:!e.enabled,onClick:function(){t(L(e))},role:"button","aria-label":"".concat(null==e?void 0:e.key,"-Configure")},n("Configure")))};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 W(e,t,n,r,o,a,l){try{var i=e[a](l),c=i.value}catch(e){n(e);return}i.done?t(c):Promise.resolve(c).then(r,o)}function K(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function l(e){W(a,r,o,l,i,"next",e)}function i(e){W(a,r,o,l,i,"throw",e)}l(void 0)})}}function G(e){return function(e){if(Array.isArray(e))return B(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e){if(e){if("string"==typeof e)return B(e,void 0);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return B(e,void 0)}}(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.")}()}function H(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},l=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(l,"next",{value:c(0)}),i(l,"throw",{value:c(1)}),i(l,"return",{value:c(2)}),"function"==typeof Symbol&&i(l,Symbol.iterator,{value:function(){return this}}),l;function c(i){return function(c){var u=[i,c];if(n)throw TypeError("Generator is already executing.");for(;l&&(l=0,u[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&u[0]?r.return:u[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,u[1])).done)return o;switch(r=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,r=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){a.label=u[1];break}if(6===u[0]&&a.label<o[1]){a.label=o[1],o=u;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(u);break}o[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],r=0}finally{n=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var J=function(){var e=(0,c.useTranslation)().t,t=(0,o.usePlugin)(u.default),n=(0,o.useDataSourceManager)();(0,o.useAPIClient)();var f=(0,l.useCallback)(function(e){n.setDataSources((null==e?void 0:e.data)||[]),n.reload()},[n]),d=G(t.types.keys()).map(function(n){var r=t.types.get(n);return{value:n,label:e(null==r?void 0:r.label)}}).concat([{value:"main",label:e("Main")}]),m=i().useRef([]);(0,l.useEffect)(function(){return function(){n.getDataSources().forEach(function(e){m.current.includes(e.key)&&e.reload()})}},[m]);var y=(0,l.useCallback)(function(e){n.removeDataSources(e)},[n]),b=(0,l.useCallback)(function(e){return K(function(){return H(this,function(t){return n.addDataSource(p.J,e),m.current=G(m.current).concat([e.key]),[2]})})()},[n]);return i().createElement(a.Card,{bordered:!1},i().createElement(o.SchemaComponent,{components:{CreateDatabaseConnectAction:T,EditDatabaseConnectionAction:F,ViewDatabaseConnectionAction:z},scope:{useNewId:function(e){return"".concat(e).concat((0,r.uid)())},types:d,useRefreshActionProps:function(){var e=(0,o.useResourceActionContext)();return{onClick:function(){return K(function(){var t,r,o,a,l;return H(this,function(i){switch(i.label){case 0:if(!(null==(o=null==e||null==(t=e.data)?void 0:t.data.filter(function(e){return"loaded"!==e.status}))?void 0:o.length))return[3,2];return a=n.getDataSources(),l=o.map(function(e){return e.key}),[4,Promise.all(a.filter(function(e){return l.includes(e.key)}).map(function(e){return e.reload()}))];case 1:i.sent(),i.label=2;case 2:return null==e||null==(r=e.refresh)||r.call(e),[2]}})})()}}},useDestroyAction:function(){var e=(0,o.useResourceActionContext)().refresh,t=(0,o.useResourceContext)().resource,n=(0,o.useRecord)().key;return{run:function(){return K(function(){return H(this,function(r){switch(r.label){case 0:return[4,t.destroy({filterByTk:n})];case 1:return r.sent(),y([n]),e(),[2]}})})()}}},dataSourceDeleteCallback:y,dataSourceCreateCallback:b,dataSourceListCallback:f,useIsAbleDelete:function(e){e.visible="main"!==(0,o.useRecord)().key}},schema:s.z}))}},221:function(e,t,n){n.d(t,{m:function(){return c},z:function(){return s}});var r,o,a,l=n(166),i=n(872),c=[{value:"loading",label:'{{t("Loading",{ns:"'.concat(i.CU,'"})}}'),color:"orange"},{value:"loading-failed",label:'{{t("Failed",{ns:"'.concat(i.CU,'"})}}'),color:"red"},{value:"loaded",label:'{{t("Loaded",{ns:"'.concat(i.CU,'"})}}'),color:"green"},{value:"reloading",label:'{{t("Reloading",{ns:"'.concat(i.CU,'"})}}'),color:"orange"}],u={name:"collections-"+(0,l.uid)(),disableTranslation:!0,fields:[{type:"string",name:"key",interface:"input",uiSchema:{title:'{{t("Data source name",{ ns: "'.concat(i.CU,'" })}}'),type:"string","x-component":"Input",required:!0}},{type:"string",name:"displayName",interface:"input",uiSchema:{title:'{{t("Data source display name",{ ns: "'.concat(i.CU,'" })}}'),type:"string","x-component":"Input",required:!0}},{type:"string",name:"type",interface:"select",uiSchema:{title:'{{t("Type", { ns: "'.concat(i.CU,'" })}}'),type:"string","x-component":"Select",enum:"{{types}}"}},{type:"string",name:"status",interface:"select",uiSchema:{title:'{{t("Status", { ns: "'.concat(i.CU,'" })}}'),type:"string","x-component":"Select",enum:c}},{type:"boolean",name:"enabled",uiSchema:{type:"boolean",title:'{{t("Enabled")}}',"x-component":"Checkbox"}}]},s={type:"object",properties:(r={},o=(0,l.uid)(),a={type:"void","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:u,resourceName:"dataSources",request:{resource:"dataSources",action:"list",params:{pageSize:50,appends:[]}}},"x-component":"CollectionProvider_deprecated","x-component-props":{collection:u},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 }}",onSuccess:"{{ dataSourceListCallback }}"},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)}}"]}}}}}}}}},o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a,r)}}}]);
@@ -0,0 +1,10 @@
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([["369"],{16:function(e,t,n){n.d(t,{H:function(){return s}});var r=n(375),l=n(342),i=n(230),a=n(59),o=n(155),c=n.n(o),u=n(174),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.P,{size:"small",style:{width:"20em"}})},c().createElement(r.ExclamationCircleTwoTone,{style:{marginRight:"0.3em"},twoToneColor:"#faad14"})),n(t.title))}},536:function(e,t,n){n.d(t,{r:function(){return u}});var r=n(342),l=n(59),i=n(155),a=n.n(i),o=n(442),c=n(174),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.P,null)})}},174:function(e,t,n){n.d(t,{P:function(){return p}});var r=n(342),l=n(59),i=n(155),a=n.n(i),o=n(442),c=n(872),u=n(533);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:"u">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=e.size,n=e.style,s=(0,r.useAPIClient)(),p=(0,o.useParams)().name,m=void 0===p?"main":p,h=(0,r.useCollectionRecordData)(),y=(0,r.useApp)(),v=f((0,i.useState)(),2),b=v[0],g=v[1],x=f((0,i.useState)(),2),w=x[0],S=x[1],E=(0,r.useCompile)(),C=(0,i.useMemo)(function(){return y.getCollectionManager(m).getCollection(h.name)},[y,m,h.name]),A=(0,i.useMemo)(function(){return y.getCollectionManager(m).getCollectionFields(h.name).filter(function(e){if(!e.interface)return!1;var t=y.dataSourceManager.collectionFieldInterfaceManager.getFieldInterface(e.interface);return null!=t&&!!t.titleUsable}).map(function(e){var t;return{label:E(null==(t=e.uiSchema)?void 0:t.title),value:e.name}})},[y,E,m,h.name]),F=(0,r.useResourceActionContext)().refresh,I=(0,i.useContext)(u.m),O=(0,c.VP)().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}({},n)},O("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"===t?a().createElement("br",null):" ",a().createElement(l.Space.Compact,{style:{marginTop:5}},a().createElement(l.Select,{onChange:function(e,t){console.log(e,t),g(e),S(t.map(function(e){return e.label}).join(","))},placeholder:O("Select field"),size:"small",options:A,mode:"multiple",style:{width:"200px"}}),a().createElement(l.Popconfirm,{placement:"bottom",title:a().createElement("div",{style:{width:"15em"}},w?O('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:w}):O("Please select a field.")),onConfirm:function(){var e;return(e=function(){var e;return function(e,t){var n,r,l,i={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),o=Object.defineProperty;return o(a,"next",{value:c(0)}),o(a,"throw",{value:c(1)}),o(a,"return",{value:c(2)}),"function"==typeof Symbol&&o(a,Symbol.iterator,{value:function(){return this}}),a;function c(o){return function(c){var u=[o,c];if(n)throw TypeError("Generator is already executing.");for(;a&&(a=0,u[0]&&(i=0)),i;)try{if(n=1,r&&(l=2&u[0]?r.return:u[0]?r.throw||((l=r.return)&&l.call(r),0):r.next)&&!(l=l.call(r,u[1])).done)return l;switch(r=0,l&&(u=[2&u[0],l.value]),u[0]){case 0:case 1:l=u;break;case 4:return i.label++,{value:u[1],done:!1};case 5:i.label++,r=u[1],u=[0];continue;case 7:u=i.ops.pop(),i.trys.pop();continue;default:if(!(l=(l=i.trys).length>0&&l[l.length-1])&&(6===u[0]||2===u[0])){i=0;continue}if(3===u[0]&&(!l||u[1]>l[0]&&u[1]<l[3])){i.label=u[1];break}if(6===u[0]&&i.label<l[1]){i.label=l[1],l=u;break}if(l&&i.label<l[2]){i.label=l[2],i.ops.push(u);break}l[2]&&i.ops.pop(),i.trys.pop();continue}u=t.call(e,i)}catch(e){u=[6,e],r=0}finally{n=l=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(t){switch(t.label){case 0:if(!b)return[2];if("main"!==m)return[3,2];return[4,s.request({url:"collections:update",method:"post",params:{filterByTk:h.name},data:{filterTargetKey:b}})];case 1:return t.sent(),[3,4];case 2:return[4,s.request({url:"dataSources/".concat(m,"/collections:update"),method:"post",params:{filterByTk:h.name},data:{filterTargetKey:b}})];case 3:t.sent(),t.label=4;case 4:return null==I||null==(e=I.refresh)||e.call(I),F(),[4,y.dataSourceManager.getDataSource(m).reload()];case 5:return t.sent(),C.setOption("filterTargetKey",b),[2]}})},function(){var t=this,n=arguments;return new Promise(function(r,l){var i=e.apply(t,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"},O("OK")))))}},533:function(e,t,n){n.d(t,{m:function(){return R},o:function(){return V}});var r=n(477),l=n(452),i=n(230),a=n(342),o=n(59),c=n(155),u=n.n(c),s=n(953),d=n(773),f=n(536),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(375),h=n(872);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=(0,h.VP)().t,t=(0,a.useAPIClient)(),n=(0,a.useCollectionRecordData)(),r=(0,a.useDataSource)(),l=(0,a.useResourceActionContext)().refresh;return"db2cm"===n.from||"view"===n.template||"sql"===n.template?null:u().createElement(o.Button,{icon:u().createElement(m.SyncOutlined,null),onClick:function(){var i;return(i=function(){return function(e,t){var n,r,l,i={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),o=Object.defineProperty;return o(a,"next",{value:c(0)}),o(a,"throw",{value:c(1)}),o(a,"return",{value:c(2)}),"function"==typeof Symbol&&o(a,Symbol.iterator,{value:function(){return this}}),a;function c(o){return function(c){var u=[o,c];if(n)throw TypeError("Generator is already executing.");for(;a&&(a=0,u[0]&&(i=0)),i;)try{if(n=1,r&&(l=2&u[0]?r.return:u[0]?r.throw||((l=r.return)&&l.call(r),0):r.next)&&!(l=l.call(r,u[1])).done)return l;switch(r=0,l&&(u=[2&u[0],l.value]),u[0]){case 0:case 1:l=u;break;case 4:return i.label++,{value:u[1],done:!1};case 5:i.label++,r=u[1],u=[0];continue;case 7:u=i.ops.pop(),i.trys.pop();continue;default:if(!(l=(l=i.trys).length>0&&l[l.length-1])&&(6===u[0]||2===u[0])){i=0;continue}if(3===u[0]&&(!l||u[1]>l[0]&&u[1]<l[3])){i.label=u[1];break}if(6===u[0]&&i.label<l[1]){i.label=l[1],l=u;break}if(l&&i.label<l[2]){i.label=l[2],i.ops.push(u);break}l[2]&&i.ops.pop(),i.trys.pop();continue}u=t.call(e,i)}catch(e){u=[6,e],r=0}finally{n=l=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(i){switch(i.label){case 0:return[4,t.resource("mainDataSource").syncFields({values:{collections:[n.name]}})];case 1:return i.sent(),l(),r.reload(),o.message.success(e("Sync successfully")),[2]}})},function(){var e=this,t=arguments;return new Promise(function(n,r){var l=i.apply(e,t);function a(e){y(l,n,r,a,o,"next",e)}function o(e){y(l,n,r,a,o,"throw",e)}a(void 0)})})()}},e("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){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(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:"u">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={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),o=Object.defineProperty;return o(a,"next",{value:c(0)}),o(a,"throw",{value:c(1)}),o(a,"return",{value:c(2)}),"function"==typeof Symbol&&o(a,Symbol.iterator,{value:function(){return this}}),a;function c(o){return function(c){var u=[o,c];if(n)throw TypeError("Generator is already executing.");for(;a&&(a=0,u[0]&&(i=0)),i;)try{if(n=1,r&&(l=2&u[0]?r.return:u[0]?r.throw||((l=r.return)&&l.call(r),0):r.next)&&!(l=l.call(r,u[1])).done)return l;switch(r=0,l&&(u=[2&u[0],l.value]),u[0]){case 0:case 1:l=u;break;case 4:return i.label++,{value:u[1],done:!1};case 5:i.label++,r=u[1],u=[0];continue;case 7:u=i.ops.pop(),i.trys.pop();continue;default:if(!(l=(l=i.trys).length>0&&l[l.length-1])&&(6===u[0]||2===u[0])){i=0;continue}if(3===u[0]&&(!l||u[1]>l[0]&&u[1]<l[3])){i.label=u[1];break}if(6===u[0]&&i.label<l[1]){i.label=l[1],l=u;break}if(l&&i.label<l[2]){i.label=l[2],i.ops.push(u);break}l[2]&&i.ops.pop(),i.trys.pop();continue}u=t.call(e,i)}catch(e){u=[6,e],r=0}finally{n=l=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}function O(){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 O=function(){return e},e}function P(){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 P=function(){return e},e}function T(){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 T=function(){return e},e}function k(){var e=A(["\n font-weight: 500;\n white-space: nowrap;\n min-width: 300px;\n "]);return k=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)(O()),K=(0,r.css)(P()),B=(0,r.css)(T()),q="Default title for each record",N=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})},z=function(e){var t,n,r,l,i=e.value,s=e.record,d=e.updateFieldHandler,f=e.isPresetField,p=void 0!==f&&f,m=(0,a.useCompile)(),h=(0,a.useCollectionManager_deprecated)().getInterface,y=(0,a.useFieldInterfaceOptions)(),v=C((0,c.useState)(i),2),b=v[0],g=v[1],w=C((0,c.useState)([]),2),E=w[0],A=w[1],F=s.type,O=(0,c.useCallback)(function(e){return x(function(){var t,n,r;return I(this,function(l){switch(l.label){case 0:return r=h(e),g(e),[4,d(s,{interface:e,uiSchema:S({title:null==s||null==(t=s.uiSchema)?void 0:t.title},null==r||null==(n=r.default)?void 0:n.uiSchema)},!1)];case 1:return l.sent(),[2]}})})()},[s]);return((0,c.useEffect)(function(){!p&&((null==s?void 0:s.possibleTypes)||F)&&A(N(y,F))},[s,p,F,y]),(0,c.useEffect)(function(){if(!p&&E.length){var e,t,n,r,l,i=null==(n=E[0])||null==(t=n.children)||null==(e=t[0])?void 0:e.name;i&&((1!==E.length||(null==(l=E[0])||null==(r=l.children)?void 0:r.length)!==1||b===i)&&(!b||(null==E?void 0:E.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===b})})))||O(i))}},[b,p,E,O]),["oho","obo","o2m","m2o","m2m"].includes(s.interface))?u().createElement(o.Tag,null,m(null==(r=y.find(function(e){return"relation"===e.key}))||null==(n=r.children)||null==(t=n.find(function(e){return e.name===i}))?void 0:t.label)):!E.length||E.every(function(e){return!e.children.length})?u().createElement(o.Tag,null,m(null==(l=h(i))?void 0:l.title)):u().createElement(o.Select,{"aria-label":"field-interface-".concat(null==s?void 0:s.interface),value:b,style:{width:"100%"},popupMatchSelectWidth:!1,disabled:p,onChange:function(e){return x(function(){var t,n,r;return I(this,function(l){switch(l.label){case 0:if(p)return[2];return r=h(e),g(e),[4,d(s,{interface:e,uiSchema:S({title:null==s||null==(t=s.uiSchema)?void 0:t.title},null==r||null==(n=r.default)?void 0:n.uiSchema)})];case 1:return l.sent(),[2]}})})()}},E.map(function(e){return u().createElement(o.Select.OptGroup,{key:e.key,label:m(e.label)},e.children.map(function(e){return u().createElement(o.Select.Option,{key:e.name,value:e.name},m(e.label))}))}))},H=function(e){var t=e.value,n=e.record,r=e.updateFieldHandler,l=e.isPresetField,i=(0,d.omit)(n,["__parent","__collectionName"]),a=(null==i?void 0:i.possibleTypes)||[];return Array.isArray(null==i?void 0:i.possibleTypes)&&!(void 0!==l&&l)&&a.includes(t)?u().createElement(o.Select,{"aria-label":"field-type-".concat(t),defaultValue:t,popupMatchSelectWidth:!1,style:{width:"100%"},options:(null==i?void 0:i.possibleTypes.map(function(e){return{label:e,value:e}}))||[],onChange:function(e){return x(function(){return I(this,function(t){switch(t.label){case 0:return[4,r(n,{type:e})];case 1:return t.sent(),[2]}})})()}}):u().createElement(o.Tag,null,t)},L=function(e){var t=(0,a.useCompile)();(0,a.useCollectionManager_deprecated)().getInterface;var n=(0,s.useTranslation)().t,r=(0,a.useResourceActionContext)().setState,l=e.collectionResource||{},i=l.targetKey,d=l.resource,f=(0,a.useRecord)(),p=C(u().useState(null),2),m=p[0],h=p[1],y=(0,a.useCollectionManager_deprecated)(),v=y.refreshCM,b=y.isTitleField,g=y.getTemplate,A=f[i],F=f.titleField,O=g(f.template),P=(0,a.useAPIClient)(),T=(0,c.useContext)(R),k=e.collectionInfo,j=(0,a.useApp)(),D=o.App.useApp().modal,M=j.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}),K=function(t,r){var l=!(arguments.length>2)||void 0===arguments[2]||arguments[2];return x(function(){var i;return I(this,function(a){switch(a.label){case 0:if(i=function(){return x(function(){return I(this,function(l){switch(l.label){case 0:return l.trys.push([0,3,,4]),[4,d.update({filterByTk:t.name,values:E(S({},r),{collectionName:t.collectionName})})];case 1:return l.sent(),[4,e.refreshAsync()];case 2:return l.sent(),o.message.success(n("Saved successfully")),v(),[3,4];case 3:return console.error("Failed to update field:",l.sent()),o.message.error(n("Save failed")),[3,4];case 4:return[2]}})})()},!l)return[3,1];return D.confirm({title:n("Save"),content:n("Are you sure you want to save it?"),onOk:i}),[3,3];case 1:return[4,i()];case 2:a.sent(),a.label=3;case 3:return[2]}})})()},B=[{dataIndex:["uiSchema","title"],title:n("Field display name"),render:function(e){return u().createElement("div",{style:{marginLeft:7}},t(e))}},{dataIndex:"name",title:n("Field name")},{dataIndex:"type",title:n("Field type"),render:function(e,t){return u().createElement(H,{value:e,record:t,updateFieldHandler:K,isPresetField:"db2cm"===k.from||M.includes(t.interface)})}},{dataIndex:"interface",title:n("Field interface"),render:function(e,t){return u().createElement(z,{value:e,record:t,updateFieldHandler:K,isPresetField:"db2cm"===k.from||M.includes(t.interface)})}},{dataIndex:"titleField",title:n("Title field"),render:function(t,r){return b(r)?u().createElement(o.Tooltip,{title:n(q),placement:"right",overlayInnerStyle:{textAlign:"center"}},u().createElement(o.Switch,{"aria-label":"switch-title-field-".concat(r.name),size:"small",loading:r.name===(null==m?void 0:m.name),checked:r.name===(F||"id"),onChange:function(t){return x(function(){var l;return I(this,function(i){switch(i.label){case 0:return h(r),[4,P.request({url:"collections:update",method:"post",params:{filterByTk:A},data:{titleField:t?r.name:"id"}})];case 1:return i.sent(),null==T||null==(l=T.refresh)||l.call(T),[4,e.refreshAsync()];case 2:return i.sent(),h(null),v(),o.message.success(n("Saved successfully")),[2]}})})()}})):null}},{dataIndex:"description",title:n("Description"),render:function(e){return u().createElement(a.Input.ReadPretty,{value:e,ellipsis:!0})}},{dataIndex:"actions",title:n("Actions"),render:function(e,t){var r={confirm:{title:n("Delete record"),content:n("Are you sure you want to delete it?")},useAction:a.useDestroyActionAndRefreshCM,disabled:(0,a.isDeleteButtonDisabled)(t)||(null==O?void 0:O.forbidDeletion),title:n("Delete")};return u().createElement(a.RecordProvider,{record:t,parent:f},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,r)))}}];return u().createElement(o.Table,{rowKey:"name",columns:B,showHeader:!0,pagination:!1,dataSource:e.fields,className:_,rowSelection:{type:"checkbox",getCheckboxProps:function(e){return{"aria-label":"checkbox-".concat(e.name)}},onChange:function(t){r(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){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:function(t){return x(function(){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]}})})()}})):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,O=(0,a.useResourceContext)(),P=(0,c.useContext)(a.ResourceActionContext),T=P.refreshAsync,D=P.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)(k())},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("u">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 N=(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.r,{collectionName:p}),u().createElement(o.Space,{align:"end",className:(0,r.css)(j())},u().createElement(a.Action,N),u().createElement(a.SyncFieldsAction,{type:"primary"}),u().createElement(a.SyncSQLFieldsAction,{refreshCMList:T}),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(L,{fields:B,collectionInfo:n.record,collectionResource:O,refreshAsync:T,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:O,refreshAsync:T})}}})))},V=function(){return u().createElement(M,null,u().createElement(G,null))}}}]);
@@ -0,0 +1,10 @@
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([["397"],{620:function(e,t,o){o.r(t),o.d(t,{BreadcumbTitle:function(){return m}});var n=o(375),a=o(342),r=o(59),c=o(155),i=o.n(c),l=o(442),p=o(35),s=o(872),u=o(221),m=function(){var e,t=(0,a.useApp)(),o=(0,l.useParams)().name,m=(0,a.useCompile)(),d=(0,a.useDataSourceManager)(),y=o||"main",x=(d.getDataSource(y)||{}).displayName,b=(0,c.useContext)(p.DataSourceContext).dataSource,C=(0,c.useMemo)(function(){return b&&(null==b?void 0:b.name)===y?b:d.getDataSource(y)},[b,y,null==(e=d.getDataSource(y))?void 0:e.status]),g=(0,c.useMemo)(function(){var e=null==C?void 0:C.status,o=u.m.find(function(t){return t.value===e}),n=[{title:i().createElement(l.Link,{to:t.pluginSettingsManager.getRoutePath(s.CU)},(0,s.vV)("Data source manager"))}];return C&&n.push({title:i().createElement(r.Space,null,i().createElement("span",null,m(x)),e&&i().createElement(r.Tag,{key:e,color:null==o?void 0:o.color},m(null==o?void 0:o.label)))}),n},[C]);return i().createElement(r.Breadcrumb,{separator:i().createElement(n.RightOutlined,null),items:g})}},221:function(e,t,o){o.d(t,{m:function(){return l},z:function(){return s}});var n,a,r,c=o(166),i=o(872),l=[{value:"loading",label:'{{t("Loading",{ns:"'.concat(i.CU,'"})}}'),color:"orange"},{value:"loading-failed",label:'{{t("Failed",{ns:"'.concat(i.CU,'"})}}'),color:"red"},{value:"loaded",label:'{{t("Loaded",{ns:"'.concat(i.CU,'"})}}'),color:"green"},{value:"reloading",label:'{{t("Reloading",{ns:"'.concat(i.CU,'"})}}'),color:"orange"}],p={name:"collections-"+(0,c.uid)(),disableTranslation:!0,fields:[{type:"string",name:"key",interface:"input",uiSchema:{title:'{{t("Data source name",{ ns: "'.concat(i.CU,'" })}}'),type:"string","x-component":"Input",required:!0}},{type:"string",name:"displayName",interface:"input",uiSchema:{title:'{{t("Data source display name",{ ns: "'.concat(i.CU,'" })}}'),type:"string","x-component":"Input",required:!0}},{type:"string",name:"type",interface:"select",uiSchema:{title:'{{t("Type", { ns: "'.concat(i.CU,'" })}}'),type:"string","x-component":"Select",enum:"{{types}}"}},{type:"string",name:"status",interface:"select",uiSchema:{title:'{{t("Status", { ns: "'.concat(i.CU,'" })}}'),type:"string","x-component":"Select",enum:l}},{type:"boolean",name:"enabled",uiSchema:{type:"boolean",title:'{{t("Enabled")}}',"x-component":"Checkbox"}}]},s={type:"object",properties:(n={},a=(0,c.uid)(),r={type:"void","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:p,resourceName:"dataSources",request:{resource:"dataSources",action:"list",params:{pageSize:50,appends:[]}}},"x-component":"CollectionProvider_deprecated","x-component-props":{collection:p},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 }}",onSuccess:"{{ dataSourceListCallback }}"},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)}}"]}}}}}}}}},a in n?Object.defineProperty(n,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):n[a]=r,n)}}}]);
@@ -0,0 +1,10 @@
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([["416"],{819:function(e,t,r){r.r(t),r.d(t,{CollectionMainProvider:function(){return i}});var n=r(155),a=r.n(n),o=r(342),u=r(442);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=(0,o.useAPIClient)(),r={url:"collectionCategories:list",params:{paginate:!1,sort:["sort"]}},i=(0,o.useRequest)(r),c=(0,n.useCallback)(function(){var e;return(e=function(){var e;return function(e,t){var r,n,a,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},u=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),l=Object.defineProperty;return l(u,"next",{value:i(0)}),l(u,"throw",{value:i(1)}),l(u,"return",{value:i(2)}),"function"==typeof Symbol&&l(u,Symbol.iterator,{value:function(){return this}}),u;function i(l){return function(i){var c=[l,i];if(r)throw TypeError("Generator is already executing.");for(;u&&(u=0,c[0]&&(o=0)),o;)try{if(r=1,n&&(a=2&c[0]?n.return:c[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,c[1])).done)return a;switch(n=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return o.label++,{value:c[1],done:!1};case 5:o.label++,n=c[1],c=[0];continue;case 7:c=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){o=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){o.label=c[1];break}if(6===c[0]&&o.label<a[1]){o.label=a[1],a=c;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(c);break}a[2]&&o.ops.pop(),o.trys.pop();continue}c=t.call(e,o)}catch(e){c=[6,e],n=0}finally{r=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(n){switch(n.label){case 0:return[4,t.request(r)];case 1:return e=n.sent().data,i.mutate(e),[2,(null==e?void 0:e.data)||[]]}})},function(){var t=this,r=arguments;return new Promise(function(n,a){var o=e.apply(t,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)})})()},[i]);return a().createElement(o.CollectionCategoriesProvider,{service:i,refreshCategory:c},a().createElement(u.Outlet,null))}}}]);