@nocobase/plugin-data-source-manager 2.2.0-beta.8 → 2.3.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai/skills/data-metadata/SKILLS.md +6 -0
- package/dist/ai/skills/data-query/SKILLS.md +54 -17
- package/dist/ai/skills/data-query/tools/dataSourceQuery.js +1 -1
- package/dist/client-v2/108.691bc792ff4a51f2.js +10 -0
- package/dist/client-v2/{426.e754c9cc3a1f7c49.js → 426.e41974a6a5b5abf2.js} +1 -1
- package/dist/client-v2/{907.a0ab273516f45ac3.js → 907.27929615be9d7eac.js} +1 -1
- package/dist/client-v2/index.js +1 -1
- package/dist/client-v2/pages/components/FieldForm.d.ts +1 -0
- package/dist/client-v2/pages/components/FieldsPage.d.ts +9 -0
- package/dist/client-v2/pages/components/UnsupportedFields.d.ts +14 -0
- package/dist/client-v2/pages/components/collectionTemplateFieldInterfaces.d.ts +1 -0
- package/dist/client-v2/plugin.d.ts +4 -1
- package/dist/externalVersion.js +12 -12
- package/dist/locale/en-US.json +2 -2
- package/dist/locale/zh-CN.json +2 -2
- package/dist/node_modules/zod/package.json +1 -1
- package/package.json +2 -2
- package/dist/client-v2/108.b6d3242ab82458af.js +0 -10
|
@@ -16,6 +16,12 @@ You are a professional data model metadata assistant for NocoBase.
|
|
|
16
16
|
|
|
17
17
|
You help users explore and understand existing database schemas, including collection definitions, field metadata, and relationships.
|
|
18
18
|
|
|
19
|
+
# Mandatory Collection Resolution Gate
|
|
20
|
+
|
|
21
|
+
When the user's request names a collection, table, dataset, or business object, first compare it with collection names and titles from `getCollectionNames`.
|
|
22
|
+
|
|
23
|
+
If there is no exact match, stop and ask the user to confirm a candidate. Until confirmed, do not call `getCollectionMetadata` for candidate collections and do not use field compatibility, naming prefixes, or `searchFieldMetadata` suggested results to justify a collection choice.
|
|
24
|
+
|
|
19
25
|
# Primary Workflows
|
|
20
26
|
|
|
21
27
|
This skill focuses on reading and exploring existing data models, not creating or modifying them.
|
|
@@ -14,6 +14,37 @@ You are a professional data query assistant for NocoBase.
|
|
|
14
14
|
|
|
15
15
|
You help users inspect schemas, retrieve records, and run aggregate queries on NocoBase collections.
|
|
16
16
|
|
|
17
|
+
# Mandatory Query Safety Gates
|
|
18
|
+
|
|
19
|
+
These gates have higher priority than every workflow, example, heuristic, and tool description in this skill.
|
|
20
|
+
|
|
21
|
+
They apply before any call to `dataQuery`, `dataSourceQuery`, `dataSourceCounting`, or any chart/report tool that depends on queried data.
|
|
22
|
+
|
|
23
|
+
## Collection Resolution
|
|
24
|
+
|
|
25
|
+
Confirmed means exactly one of:
|
|
26
|
+
|
|
27
|
+
- exact match to a user-provided collection `name` from `getCollectionNames`
|
|
28
|
+
- exact match to a user-provided collection `title` from `getCollectionNames`
|
|
29
|
+
- explicit user confirmation after you list candidate collections
|
|
30
|
+
- direct user-provided internal collection name that was verified by `getCollectionNames`
|
|
31
|
+
|
|
32
|
+
Exact match may ignore case and may normalize spaces, underscores, and hyphens for comparison only. It must not use partial words, shared prefixes, synonyms, translated meanings, relation names, field compatibility, or business plausibility.
|
|
33
|
+
|
|
34
|
+
If the user's collection label has no exact match, this is a hard stop. You must ask the user to confirm the intended collection before any data query, aggregation, raw record query, counting query, chart generation, or narrative answer based on data. Do not continue even if one candidate has all required fields.
|
|
35
|
+
|
|
36
|
+
`searchFieldMetadata` results with `kind="suggested_results"` are unconfirmed candidates only. They never confirm `collectionName`.
|
|
37
|
+
|
|
38
|
+
## Fresh Data
|
|
39
|
+
|
|
40
|
+
Database query results are only valid for answering the current user message that triggered the tool call. The underlying database may change between user messages.
|
|
41
|
+
|
|
42
|
+
For every new user message that asks for records, counts, summaries, statistics, rankings, trends, charts, reports, or any answer based on current database content, you must call `dataQuery`, `dataSourceQuery`, or `dataSourceCounting` again before answering.
|
|
43
|
+
|
|
44
|
+
Do not answer a new user message from historical tool results, previous assistant messages, cached query outputs, or earlier conversation context. Historical results may only help you understand what was asked before; they must not be treated as current data.
|
|
45
|
+
|
|
46
|
+
Within one assistant response, you may use the query results you just obtained for that same user message.
|
|
47
|
+
|
|
17
48
|
# Primary Workflows
|
|
18
49
|
|
|
19
50
|
This skill focuses on safe read-only data access.
|
|
@@ -33,6 +64,8 @@ When the user does not provide an exact collection or field name, or when this i
|
|
|
33
64
|
9. Only then run a data tool.
|
|
34
65
|
10. Even if the user already mentions a collection name such as `date_boundary_cases` or a common field such as `createdAt`, verify them with the loaded `data-metadata` workflow before the first real query when the collection has not yet been confirmed in the current conversation.
|
|
35
66
|
|
|
67
|
+
The Mandatory Query Safety Gates above must be satisfied before any data tool call.
|
|
68
|
+
|
|
36
69
|
Do not guess collection names, measure aliases, or dotted relation paths.
|
|
37
70
|
|
|
38
71
|
## Raw Record Query
|
|
@@ -94,26 +127,29 @@ Use `dataSourceCounting` only for a simple total when grouped output is unnecess
|
|
|
94
127
|
4. For metrics, put aggregate definitions in `measures`.
|
|
95
128
|
5. Use aliases when the user clearly needs stable output keys.
|
|
96
129
|
6. For dotted relation fields, prefer the exact field path confirmed from metadata, such as `createdBy.nickname`.
|
|
97
|
-
7.
|
|
98
|
-
8.
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
11.
|
|
130
|
+
7. For `dataSourceQuery`, `fields` controls which values are returned. `appends` only loads relation data and does not select returned fields by itself.
|
|
131
|
+
8. When returning relation field values, put the dotted relation paths in `fields` and the root relation names in `appends`; for example, use `fields: ["plain_field", "relation_field.display_field"]` with `appends: ["relation_field"]`.
|
|
132
|
+
9. Do not put only root relation names in `appends` when the user asks for relation attributes. Without the dotted paths in `fields`, those relation attributes will not be returned.
|
|
133
|
+
10. Default row limit is 50 and the tool caps the limit at 100.
|
|
134
|
+
11. Always follow the same frontend date filter contract used by NocoBase filters.
|
|
135
|
+
11.1. `filter` and `having` must be structured objects, not JSON-encoded strings.
|
|
136
|
+
12. Supported date operators are exactly `$dateOn`, `$dateNotOn`, `$dateBefore`, `$dateAfter`, `$dateNotBefore`, `$dateNotAfter`, `$dateBetween`, `$empty`, and `$notEmpty`.
|
|
137
|
+
13. For calendar-style date filtering, do not generate `$gte`, `$gt`, `$lte`, `$lt`, or custom operator names.
|
|
138
|
+
14. Allowed value shapes are:
|
|
103
139
|
- for `$dateOn`, `$dateNotOn`, `$dateBefore`, `$dateAfter`, `$dateNotBefore`, `$dateNotAfter`: `YYYY-MM-DD`, `YYYY-MM`, `YYYY`, a relative period object, or an exact datetime string only when the user explicitly wants timestamp comparison
|
|
104
140
|
- for `$dateBetween`: `["YYYY-MM-DD", "YYYY-MM-DD"]` or a relative period object
|
|
105
141
|
- for `$empty` and `$notEmpty`: no value
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
142
|
+
15. Relative period objects must use exactly these `type` values: `today`, `yesterday`, `tomorrow`, `thisWeek`, `lastWeek`, `nextWeek`, `thisMonth`, `lastMonth`, `nextMonth`, `thisQuarter`, `lastQuarter`, `nextQuarter`, `thisYear`, `lastYear`, `nextYear`, `past`, `next`.
|
|
143
|
+
16. If `type` is `past` or `next`, the object must also include `number` as a positive integer and `unit` as one of `day`, `week`, `month`, `quarter`, `year`.
|
|
144
|
+
17. For day, week, month, quarter, year, and common relative-period queries, prefer frontend date filters such as `{ createdAt: { $dateOn: "2026-04" } }`, `{ createdAt: { $dateOn: { type: "thisMonth" } } }`, or `{ createdAt: { $dateBetween: ["2026-04-01", "2026-04-30"] } }`.
|
|
145
|
+
18. Do not expand calendar queries into UTC boundary expressions such as `createdAt >= 2026-04-01T00:00:00.000Z` and `< 2026-05-01T00:00:00.000Z`.
|
|
146
|
+
19. For fields such as `createdAt` and `updatedAt`, still prefer the frontend date operators above for calendar queries instead of UTC boundary expansion.
|
|
147
|
+
20. Only inspect field type when the user explicitly asks for an exact timestamp comparison rather than a calendar period.
|
|
148
|
+
21. If an exact timestamp comparison is required, keep the operator frontend-compatible and choose the value format that matches the field semantics:
|
|
113
149
|
- timezone-aware datetime fields: ISO 8601 timestamp strings such as `2026-04-10T12:00:00.000Z`
|
|
114
150
|
- `datetimeNoTz` fields: timezone-free local datetime strings such as `2026-04-10 12:00:00`
|
|
115
151
|
- `dateOnly` fields: date-only strings without time components
|
|
116
|
-
|
|
152
|
+
22. Do not provide a timezone parameter yourself. The runtime request timezone is already supplied by the system.
|
|
117
153
|
|
|
118
154
|
# Available Tools
|
|
119
155
|
|
|
@@ -231,9 +267,10 @@ Action: Call dataSourceCounting with collectionName="users", filter={ status: {
|
|
|
231
267
|
User: "Show monthly revenue by salesperson"
|
|
232
268
|
Action:
|
|
233
269
|
1. Call getSkill with skillName="data-metadata".
|
|
234
|
-
2. Call getCollectionNames /
|
|
235
|
-
3.
|
|
236
|
-
4. Call
|
|
270
|
+
2. Call getCollectionNames to resolve the collection by exact name/title match. If there is no exact match, ask the user to confirm a candidate before continuing.
|
|
271
|
+
3. Use searchFieldMetadata only to find candidate fields or candidate collections; suggested_results do not confirm a collection.
|
|
272
|
+
4. Call getCollectionMetadata if date or relation paths are unclear.
|
|
273
|
+
5. Call dataQuery with the confirmed collection and fields.
|
|
237
274
|
```
|
|
238
275
|
|
|
239
276
|
# Notes
|
|
@@ -52,7 +52,7 @@ var dataSourceQuery_default = (0, import_ai.defineTools)({
|
|
|
52
52
|
},
|
|
53
53
|
definition: {
|
|
54
54
|
name: "dataSourceQuery",
|
|
55
|
-
description:
|
|
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. To return relation attributes, include dotted relation paths in fields and root relation names in appends, such as fields: ["relation_field.display_field"] with appends: ["relation_field"].',
|
|
56
56
|
schema: import_common.ArgSchema
|
|
57
57
|
},
|
|
58
58
|
invoke: async (ctx, args) => {
|
|
@@ -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_client_v2=self.webpackChunk_nocobase_plugin_data_source_manager_client_v2||[]).push([["108"],{703:function(e,t,n){n.r(t),n.d(t,{default:function(){return tk}});var r=n(694),l=n(625),a=n(59),o=n(155),i=n.n(o),u=n(442),c=n(143),s=n(938),d=n(375),m=n(485),f=n(768),p=n(832),v=n(872);function y(e,t,n,r){var l="main"===e?"collections/".concat(t,"/fields:").concat(n):"dataSourcesCollections/".concat(e,".").concat(t,"/fields:").concat(n);return null==r?l:"".concat(l,"?filterByTk=").concat(encodeURIComponent(String(r)))}function g(e){return(null==e?void 0:e.fieldInterfaces)||(null==e?void 0:e.availableFieldInterfaces)}function h(e,t){return null==e?void 0:e.some(function(e){return("string"==typeof e?e:e.interface||e.name)===t})}function b(e,t,n,r){var l=g(t)||{},a=l.include,o=l.exclude,i=void 0===o?[]:o,u=Array.isArray(a)&&a.length>0;return e.filter(function(e){return"systemInfo"===e.group?"tableoid"===e.name?u?h(a,e.name):(null==r?void 0:r.databaseDialect)==="postgres":"boolean"!=typeof n[e.name]||n[e.name]:u?h(a,e.name):!i.includes(e.name)})}function S(e,t){var n=(g(t)||{}).create,r=null==n?void 0:n.include,l=(null==n?void 0:n.exclude)||[],a=Array.isArray(r)&&r.length>0;return e.filter(function(e){return!1!==e.creatable&&(a?h(r,e.name):!l.includes(e.name))})}var E=n(799),w=n(428);"u">typeof window&&void 0!==window.document&&window.document.createElement;let C=Object.freeze({Translate:{toString(e){if(!e)return;let{x:t,y:n}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;let{scaleX:t,scaleY:n}=e;return"scaleX("+t+") scaleY("+n+")"}},Transform:{toString(e){if(e)return[C.Translate.toString(e),C.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+" "+n+"ms "+r}}});var k=n(185),F=n.n(k),I=n(773);function x(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 O(e,t,n,r,l,a,o){try{var i=e[a](o),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,l)}function A(e){return function(){var t=this,n=arguments;return new Promise(function(r,l){var a=e.apply(t,n);function o(e){O(a,r,l,o,i,"next",e)}function i(e){O(a,r,l,o,i,"throw",e)}o(void 0)})}}function T(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function M(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){T(e,t,n[t])})}return e}function D(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 j(e,t){if(null==e)return{};var n,r,l,a={};if("u">typeof Reflect&&Reflect.ownKeys){for(l=0,n=Reflect.ownKeys(Object(e));l<n.length;l++)r=n[l],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r]);return a}if(a=function(e,t){if(null==e)return{};var n,r,l={},a=Object.getOwnPropertyNames(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n]);return l}(e,t),Object.getOwnPropertySymbols)for(l=0,n=Object.getOwnPropertySymbols(e);l<n.length;l++)r=n[l],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r]);return a}function P(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 a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(n=l.next()).done)&&(a.push(n.value),!t||a.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw r}}return a}}(e,t)||R(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 K(e){return function(e){if(Array.isArray(e))return x(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||R(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 R(e,t){if(e){if("string"==typeof e)return x(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 x(e,t)}}function N(e,t){var n,r,l,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(n)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(l=2&c[0]?r.return:c[0]?r.throw||((l=r.return)&&l.call(r),0):r.next)&&!(l=l.call(r,c[1])).done)return l;switch(r=0,l&&(c=[2&c[0],l.value]),c[0]){case 0:case 1:l=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!l||c[1]>l[0]&&c[1]<l[3])){a.label=c[1];break}if(6===c[0]&&a.label<l[1]){a.label=l[1],l=c;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(c);break}l[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=l=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}function q(e){return e.split(".")}var V=/^[a-zA-Z][a-zA-Z0-9_-]*$/,B="Randomly generated and can be modified. Support letters, numbers and underscores, must start with a letter.",z=new Set(["Select","CollectionSelect","RemoteSelect"]),G=new Set(["target"]),L="{{fileCollections}}",_=new Set(["sourceKey"]),U=new Set(["targetKey"]),$="validation",W={red:"Red",magenta:"Magenta",volcano:"Volcano",orange:"Orange",gold:"Gold",lime:"Lime",green:"Green",cyan:"Cyan",blue:"Blue",geekblue:"Geek blue",purple:"Purple",default:"Default"},J=[{label:"Recommended",colors:["#8BBB11","#52C41A","#13A8A8","#1677FF","#F5222D","#FADB14","#E6F4FF","#fff1f0","#F6FFED","#E6FFFB","#FA8C164D","#FADB144D","#52C41A4D","#1677FF4D","#2F54EB4D","#722ED14D"]}],X=i().createContext(null);function H(e){var t=String(e["data-row-key"]),n=(0,w.useSortable)({id:t}),r=n.attributes,l=n.isDragging,a=n.listeners,o=n.setActivatorNodeRef,u=n.setNodeRef,c=n.transform,s=n.transition,d=M(D(M({},e.style),{transform:C.Transform.toString(c),transition:s}),l?{position:"relative",zIndex:1}:null);return i().createElement(X.Provider,{value:{attributes:r,listeners:a,setActivatorNodeRef:o}},i().createElement("tr",D(M({ref:u},e),{style:d})))}function Z(e){var t=i().useContext(X);return i().createElement("span",D(M({ref:e.disabled||null==t?void 0:t.setActivatorNodeRef},e.disabled?{}:null==t?void 0:t.attributes,e.disabled?{}:null==t?void 0:t.listeners),{style:{alignItems:"center",color:"var(--ant-color-text-tertiary)",cursor:e.disabled?"not-allowed":"grab",display:"inline-flex"}}),i().createElement(d.MenuOutlined,null))}function Y(e,t){return(0,m.evaluateFieldConfigureExpression)(e,{context:t,values:t,getValue:function(e){return(0,I.get)(t,e)},setValue:function(){}})}function Q(e,t){return Array.isArray(e)?e.map(function(e){var n;return(void 0===e?"undefined":e&&"u">typeof Symbol&&e.constructor===Symbol?"symbol":typeof e)=="object"&&null!==e?{value:e.value,label:(0,s.hd)(null!=(n=e.label)?n:e.value,t)}:{value:e,label:String(e)}}):[]}function ee(e,t){t.forEach(function(t){void 0===(0,I.get)(e,t.name)&&void 0!==t.defaultValue&&(0,I.set)(e,t.name,function(e){if("string"!=typeof e)return(0,I.cloneDeep)(e);var t=e.match(/^\s*\{\{\s*useNewId\((['"])(.*?)\1\)\s*\}\}\s*$/);return t?(0,r.randomId)(t[2]):e}(t.defaultValue))})}function et(e,t,n,r){return{changedName:r,context:n,values:t,getValue:function(e){return(0,I.get)(t,e)},setValue:function(t,n){(0,I.get)(e.getFieldsValue(!0),t)!==n&&e.setFieldValue(q(t),n)}}}function en(e,t,n){if(t)return(0,I.cloneDeep)(t);var l=D(M({name:(0,r.randomId)("f_")},(0,I.cloneDeep)((null==e?void 0:e.default)||{})),{interface:null==e?void 0:e.name});return l.reverseField&&(l.reverseField.name=(0,r.randomId)("f_")),l.uiSchema&&(null==e?void 0:e.name)!=="tableoid"&&delete l.uiSchema.title,(null==e?void 0:e.name)==="tableoid"&&((0,I.set)(l,"name","__collection"),(0,I.set)(l,"uiSchema.title",(0,s.Ad)((0,I.get)(l,"uiSchema.title")||'{{t("Table OID")}}',n))),l}function er(e){return"string"==typeof e?e.replace(/[^a-zA-Z0-9_-]/g,""):""}function el(e){return[e.mode,e.dataSourceKey,e.collectionName||"",e.fieldName||"",e.interfaceName||""].join(":")}function ea(e){var t=(0,c.kj)(),n=a.Form.useFormInstance(),l=(0,E.useSensors)((0,E.useSensor)(E.PointerSensor,{activationConstraint:{distance:4}})),u=(0,o.useMemo)(function(){return Object.keys(W).map(function(e){return{value:e,label:i().createElement(a.Tag,{color:e,style:{marginInlineEnd:0}},t(W[e]||W.default))}})},[t]),s=(0,o.useCallback)(function(e){var t=n.getFieldValue("defaultValue");Array.isArray(t)?n.setFieldValue("defaultValue",t.filter(function(t){return t!==e})):t===e&&n.setFieldValue("defaultValue",void 0)},[n]);return i().createElement(a.Form.List,{name:e.name},function(o,c){var m=c.add,f=c.move,p=c.remove,v=o.map(function(e){return String(e.key)}),y=[{key:"sort",width:48,align:"center",render:function(){return i().createElement(Z,{disabled:e.disabled})}},{title:t("Option value"),dataIndex:"value",render:function(t,n){return i().createElement(a.Form.Item,{name:[n.name,"value"],rules:[{required:!0}],style:{marginBottom:0}},i().createElement(a.Input,{disabled:e.disabled}))}},{title:t("Option label"),dataIndex:"label",render:function(t,n){return i().createElement(a.Form.Item,{name:[n.name,"label"],rules:[{required:!0}],style:{marginBottom:0}},i().createElement(a.Input,{disabled:e.disabled}))}},{title:t("Color"),dataIndex:"color",width:180,render:function(t,n){return i().createElement(a.Form.Item,{name:[n.name,"color"],style:{marginBottom:0}},i().createElement(a.Select,{allowClear:!0,disabled:e.disabled,options:u}))}},{key:"actions",width:56,align:"center",render:function(r,l){return i().createElement(a.Button,{"aria-label":t("Delete"),icon:i().createElement(d.DeleteOutlined,null),disabled:e.disabled,type:"text",onClick:function(){s(n.getFieldValue(K(e.name).concat([l.name,"value"]))),p(l.name)}})}}];return i().createElement("div",{style:{border:"1px solid var(--ant-color-border)",borderRadius:6,overflow:"hidden"}},i().createElement(E.DndContext,{sensors:l,collisionDetection:E.closestCenter,onDragEnd:function(e){var t=e.active,n=e.over;if(n&&t.id!==n.id){var r=v.indexOf(String(t.id)),l=v.indexOf(String(n.id));r<0||l<0||f(r,l)}}},i().createElement(w.SortableContext,{items:v,strategy:w.verticalListSortingStrategy},i().createElement(a.Table,{columns:y,dataSource:o,pagination:!1,rowKey:function(e){return String(e.key)},size:"small",locale:{emptyText:t("No data")},components:{body:{row:H}}}))),i().createElement(a.Button,{block:!0,icon:i().createElement(d.PlusOutlined,null),disabled:e.disabled,type:"dashed",size:"small",style:{borderBlockEnd:0,borderInline:0,borderRadius:0,height:36,marginTop:-1},onClick:function(){return m({value:(0,r.randomId)(),label:""})}},t("Add option")))})}function eo(e,t){if(!e)return null;var n=(null==t?void 0:t.timeOnly)&&"string"==typeof e?"2000-01-01 ".concat(e):e,r=F()(n);return r.isValid()?r:null}function ei(e){var t=e.component,n=e.componentProps,r=e.disabled,l=e.onChange,o=e.options,u=e.value;if("Checkbox"===t)return i().createElement(a.Checkbox,{checked:!!u,disabled:r,onChange:function(e){return null==l?void 0:l(e.target.checked)}});if("Checkbox.Group"===t)return i().createElement(a.Checkbox.Group,{disabled:r,options:o,value:Array.isArray(u)?u:[],onChange:function(e){return null==l?void 0:l(e)}});if("Radio.Group"===t)return i().createElement(a.Radio.Group,{disabled:r,options:o,value:u,onChange:function(e){return null==l?void 0:l(e.target.value)}});if("Select"===t){var c=n.mode;return i().createElement(a.Select,{allowClear:!0,disabled:r,mode:c,options:o,value:u,onChange:function(e){return null==l?void 0:l(e)}})}if("InputNumber"===t||"Percent"===t||"UnixTimestamp"===t){var s=n.style,d=j(n,["style"]);return i().createElement(a.InputNumber,M({style:M({width:"100%"},s),disabled:r,value:u,onChange:function(e){return null==l?void 0:l(e)}},d))}if("DatePicker"===t){var m=n.dateFormat,p=n.dateOnly,v=n.format,y=(n.gmt,n.picker),g=void 0===y?"date":y,h=n.showTime,b=n.timeFormat,S=(n.utc,j(n,["dateFormat","dateOnly","format","gmt","picker","showTime","timeFormat","utc"])),E=v||m||(0,f.getPickerFormat)(g),w=h?"".concat(E," ").concat(void 0===b?"HH:mm:ss":b):E;return i().createElement(a.DatePicker,M({style:{width:"100%"},disabled:r,picker:g,showTime:!p&&h,format:w,value:eo(u),onChange:function(e,t){return null==l?void 0:l(t||null)}},S))}if("TimePicker"===t){var C=n.format,k=j(n,["format"]);return i().createElement(a.TimePicker,M({style:{width:"100%"},disabled:r,format:void 0===C?"HH:mm:ss":C,value:eo(u,{timeOnly:!0}),onChange:function(e,t){return null==l?void 0:l(t||null)}},k))}return"ColorPicker"===t?i().createElement(a.ColorPicker,M({allowClear:!0,disabled:r,value:u,trigger:"hover",destroyTooltipOnHide:!0,presets:J,onChange:function(e,t){return null==l?void 0:l(t)}},n)):["Input.TextArea","Markdown","RichText","Input.JSON"].includes(t||"")?i().createElement(a.Input.TextArea,{autoSize:{minRows:4,maxRows:8},disabled:r,value:u,onChange:function(e){return null==l?void 0:l(e.target.value)}}):i().createElement(a.Input,{disabled:r,value:u,onChange:function(e){return null==l?void 0:l(e.target.value)}})}function eu(e){var t=e.allowClear,n=e.autoSelectFirstOption,r=e.disabled,l=e.form,u=e.namePath,c=e.onChange,s=e.options,d=e.selectProps,m=e.showSearch,f=e.value,p=a.Form.useWatch(u,l),v=null!=f?f:p;d.allowClear,d.filterOption,d.showSearch;var y=j(d,["allowClear","filterOption","showSearch"]);return(0,o.useEffect)(function(){if(n&&(null==v||""===v)&&s.length){var e=s[0].value;l.setFieldValue(u,e),null==c||c(e,s[0])}},[n,v,l,u,c,s]),i().createElement(a.Select,D(M({allowClear:t,disabled:r,options:s,showSearch:m,value:f,onChange:c},y),{filterOption:function(e,t){return String((null==t?void 0:t.label)||"").toLowerCase().includes(e.toLowerCase())}}))}function ec(e){var t=(0,c.kj)(),n=a.theme.useToken().token,l=e.availableValidationOptions,u=e.excludeValidationOptions,f=e.onChange,p=e.type,v=e.value,y=P((0,o.useState)([]),2),g=y[0],h=y[1],b=(0,o.useMemo)(function(){return(null==v?void 0:v.rules)||[]},[null==v?void 0:v.rules]),S=(null==v?void 0:v.type)||p||"string",E=(0,o.useMemo)(function(){var e=m.fieldValidationConfigureRegistry.getGroup(S),t=(null==u?void 0:u.length)?e.filter(function(e){return!u.includes(e.key)}):e;if(null==l?void 0:l.filter(function(e){return"required"!==e}).length){var n=l.map(function(e){return t.find(function(t){return t.key===e})}).filter(Boolean);return n.length?n:t}return t},[l,u,S]),w=new Set(b.map(function(e){return e.name})),C=E.filter(function(e){return!w.has(e.key)}).map(function(e){return{key:e.key,label:(0,s.hd)(e.label,t)}}),k=(0,o.useCallback)(function(e){return E.find(function(t){return t.key===e})},[E]),I=(0,o.useCallback)(function(e,t){null==f||f({type:S,rules:b.map(function(n){return n.key===e?t(n):n})})},[f,b,S]),x=(0,o.useMemo)(function(){return{items:C,onClick:function(e){var t=e.key,n=k(String(t)),l=((null==n?void 0:n.params)||[]).reduce(function(e,t){return void 0!==t.defaultValue&&(e[t.key]=t.defaultValue),e},{});null==f||f({type:S,rules:K(b).concat([{key:(0,r.randomId)("r_"),name:String(t),args:l,paramsType:null==n?void 0:n.paramsType}])})}}},[k,C,f,b,S]),O=(0,o.useCallback)(function(e){var t=b.filter(function(t){return t.key!==e});null==f||f({type:S,rules:t})},[f,b,S]),A=(0,o.useCallback)(function(e){h(function(t){return t.includes(e)?t.filter(function(t){return t!==e}):K(t).concat([e])})},[]),j=(0,o.useCallback)(function(e,n){var r,l,o=null!=(r=null==(l=e.args)?void 0:l[n.key])?r:n.defaultValue,u=function(t){I(e.key,function(e){return D(M({},e),{args:D(M({},e.args||{}),T({},n.key,t))})})};return"checkbox"===n.componentType?i().createElement(a.Checkbox,{checked:!!o,onChange:function(e){return u(e.target.checked)}}):"radio"===n.componentType?i().createElement(a.Radio.Group,{value:o,options:(n.options||[]).map(function(e){return{label:(0,s.hd)(e.label,t),value:e.value}}),onChange:function(e){return u(e.target.value)}}):"singleSelect"===n.componentType||"multipleSelect"===n.componentType?i().createElement(a.Select,{allowClear:!0,mode:"multipleSelect"===n.componentType?"multiple":void 0,value:o,options:(n.options||[]).map(function(e){return{label:(0,s.hd)(e.label,t),value:e.value}}),onChange:u}):"inputNumber"===n.componentType?i().createElement(a.InputNumber,{style:{width:"100%"},value:o,onChange:u}):"datePicker"===n.componentType?i().createElement(a.DatePicker,{style:{width:"100%"},value:o?F()(o):null,onChange:function(e){return u(null==e?void 0:e.toISOString())}}):i().createElement(a.Input,{value:o,onChange:function(e){return u(e.target.value)}})},[t,I]);return i().createElement("div",null,b.length>0&&i().createElement("div",{style:{background:n.colorBgContainer,border:"1px solid ".concat(n.colorBorderSecondary),borderRadius:n.borderRadius,marginBottom:n.marginSM,overflow:"hidden"}},b.map(function(e,r){var l,o,u=k(e.name),c=!!((null==u?void 0:u.hasValue)&&(null==(o=u.params)?void 0:o.length)),m=g.includes(e.key);return i().createElement("div",{key:e.key,style:{borderBottom:r===b.length-1?void 0:"1px solid ".concat(n.colorBorderSecondary)}},i().createElement("div",{style:{alignItems:"center",display:"flex",justifyContent:"space-between",minHeight:40,padding:"".concat(n.paddingXS,"px ").concat(n.paddingSM,"px")}},i().createElement(a.Space,{size:n.marginXS},c?i().createElement(a.Button,{"aria-label":m?t("Collapse"):t("Expand button"),icon:m?i().createElement(d.DownOutlined,null):i().createElement(d.RightOutlined,null),size:"small",type:"text",style:{color:n.colorTextSecondary,height:18,minWidth:18,padding:0,width:18},onClick:function(){return A(e.key)}}):i().createElement("span",{style:{display:"inline-block",width:18}}),i().createElement("span",null,(null==u?void 0:u.label)?(0,s.hd)(u.label,t):(0,s.hd)((l=e.name)?"".concat(l.slice(0,1).toUpperCase()).concat(l.slice(1)):l,t))),i().createElement(a.Button,{"aria-label":t("Delete"),icon:i().createElement(d.DeleteOutlined,null),size:"small",type:"text",style:{color:n.colorTextSecondary},onClick:function(){return O(e.key)}})),c&&m?i().createElement("div",{style:{background:n.colorFillQuaternary,borderTop:"1px solid ".concat(n.colorBorderSecondary),padding:n.paddingSM}},u.params.map(function(r,l){return i().createElement(a.Form.Item,{key:r.key,label:(0,s.hd)(r.label,t),required:!!r.required,style:{marginBottom:l===u.params.length-1?0:n.marginSM}},j(e,r))})):null)})),i().createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"}},i().createElement(a.Dropdown,{menu:x,placement:"bottomLeft",disabled:!C.length},i().createElement(a.Button,{size:"small",type:"dashed",icon:i().createElement(d.PlusOutlined,null)},t("Add rule")," ",i().createElement(d.DownOutlined,null))),i().createElement("span",null,i().createElement("span",{style:{color:"var(--ant-color-text-secondary)"}},t("References"),": "),i().createElement("a",{href:"https://joi.dev/api/",target:"_blank",rel:"noreferrer"},t("Joi API")))))}function es(e){var t=a.theme.useToken().token;return e.content?i().createElement("span",{style:{background:t.colorBgTextHover,borderRadius:t.borderRadiusOuter,display:"inline-block",lineHeight:1,marginLeft:t.marginMD,padding:t.paddingXXS}},e.content):null}function ed(e){return i().createElement("span",{style:{display:"inline-flex"}},i().createElement("span",null,e.format),i().createElement(es,{content:F()().format(e.format)}))}function em(e){var t=(0,o.useMemo)(function(){return e.formats||[]},[e.formats]),n=!!e.value&&!t.includes(e.value),r=P((0,o.useState)(n?e.value:e.defaultValue||t[0]||""),2),l=r[0],u=r[1];return(0,o.useEffect)(function(){u(e.value&&!t.includes(e.value)?e.value:e.defaultValue||t[0]||"")},[t,e.defaultValue,e.value]),i().createElement(a.Radio.Group,{disabled:e.disabled,value:n?"custom":e.value,onChange:function(t){var n,r;if("custom"===t.target.value){null==(r=e.onChange)||r.call(e,l);return}null==(n=e.onChange)||n.call(e,t.target.value)}},i().createElement(a.Space,{direction:"vertical"},e.options.map(function(t){if("custom"===t.value)return i().createElement(a.Radio,{key:"custom",value:"custom",style:{display:"flex",margin:"5px 0"}},i().createElement(a.Input,{disabled:e.disabled,style:{width:150},value:l,onChange:function(t){var n,r=t.target.value;u(r),null==(n=e.onChange)||n.call(e,r||void 0)}}),i().createElement(es,{content:l?F()().format(l):null}));if(e.picker&&"date"!==e.picker)return null;var n=String(t.value);return i().createElement(a.Radio,{key:n,value:t.value,"aria-label":n,style:{display:"flex",margin:"5px 0"}},i().isValidElement(t.label)?t.label:i().createElement(ed,{format:"string"==typeof t.label?t.label:n}))})))}function ef(e){var t=e.fallbackTitle,n=e.fieldInterface,r=e.label,l=(0,c.kj)(),u=a.theme.useToken().token,d=(0,o.useMemo)(function(){return{container:{backgroundColor:u.colorFillAlter,marginBottom:u.marginLG,padding:u.paddingSM+u.paddingXXS},title:{color:u.colorText},description:{color:u.colorTextDescription,marginTop:u.marginXS},tag:{background:"none"}}},[u.colorFillAlter,u.colorText,u.colorTextDescription,u.marginLG,u.marginXS,u.paddingSM,u.paddingXXS]);return i().createElement("div",{style:d.container},i().createElement("div",{style:d.title},r,": ",i().createElement(a.Tag,{style:d.tag},(0,s.hd)((null==n?void 0:n.title)||t,l))),(null==n?void 0:n.description)?i().createElement("div",{style:d.description},(0,s.hd)(n.description,l)):null)}function ep(e,t){return e.map(function(e){return{value:e.name,label:(0,s.hd)(e.title||e.name,t)}})}function ev(e){var t=(0,c.kj)(),n=e.collection,r=e.collections,l=e.components,u=e.context,d=e.form,f=e.name,p=e.schema,v=q(f),y=null==p?void 0:p["x-component"],g=y?null==l?void 0:l[y]:void 0,h=a.Form.useWatch("target",d),b=a.Form.useWatch("autoCreateReverseField",d),S=a.Form.useWatch("inputable",d),E=a.Form.useWatch(["uiSchema","enum"],d),w=a.Form.useWatch([],d)||d.getFieldsValue(!0),C=(0,o.useRef)(),k=(0,o.useMemo)(function(){return D(M({},u),{inputable:!!S,showReverseFieldConfig:!!b||!!d.getFieldValue(["reverseField","key"])})},[b,u,d,S]),F=(0,m.getCoreFieldConfigureState)(f,w,k),x=(0,o.useMemo)(function(){return JSON.stringify([null==F?void 0:F.hasValue,null==F?void 0:F.value])},[null==F?void 0:F.hasValue,null==F?void 0:F.value]),O=null!=(er=F.disabled)?er:Y(null==p?void 0:p["x-disabled"],k),A=!!F.hidden||Y(null==p?void 0:p["x-hidden"],k)||(null==p?void 0:p["x-visible"])!==void 0&&!Y(null==p?void 0:p["x-visible"],k)||f.startsWith("reverseField.")&&!k.showReverseFieldConfig,T=null==p?void 0:p.title,K=null==p?void 0:p["x-content"],R=(0,s.hd)(T||K||f,t),N=(0,s.hd)(K||T||f,t),V=!!T&&!!K&&T!==K,B=(0,s.hd)(null==p?void 0:p.description,t),$=M({},(null==p?void 0:p["x-component-props"])||{},F.componentProps||{}),W=r.find(function(e){return e.name===n.name}),J=Array.isArray(n.fields)&&n.fields.length?n.fields:(null==W?void 0:W.fields)||[],X=r.find(function(e){return e.name===h}),H=(null==X?void 0:X.fields)||[];if((0,o.useEffect)(function(){if(!F.hasValue){C.current=void 0;return}C.current===x||(C.current=x,(0,I.get)(d.getFieldsValue(!0),v)!==F.value&&d.setFieldValue(v,F.value))},[F.hasValue,F.value,d,v,x]),A)return null;if("defaultValue"===f){var Z=Q(F.dataSource||(Array.isArray(E)?E:void 0)||(null==p?void 0:p.enum)||$.options,t);return i().createElement(a.Form.Item,{name:v,label:R,tooltip:B,rules:(null==p?void 0:p.required)?[{required:!0}]:void 0},i().createElement(ei,{component:y,componentProps:$,disabled:O,options:Z}))}if(g)return i().createElement(g,{name:f,namePath:v,schema:p,form:d,disabled:O,collection:n,collections:r,context:k,title:R,tooltip:B,componentProps:$,mode:u.createOnly?"create":"edit",fieldInterface:e.fieldInterface});if("Checkbox"===y)return V?i().createElement(a.Form.Item,{name:v,label:R,valuePropName:"checked",tooltip:B,rules:(null==p?void 0:p.required)?[{required:!0}]:void 0},i().createElement(a.Checkbox,{disabled:O},N)):i().createElement(a.Form.Item,{name:v,valuePropName:"checked",tooltip:B},i().createElement(a.Checkbox,{disabled:O},N));if("Space"===y&&(null==p?void 0:p.properties))return i().createElement(a.Form.Item,{label:R,tooltip:B},i().createElement(a.Space,{wrap:!0},Object.entries(p.properties).filter(function(e){var t=P(e,2)[1];return(null==t?void 0:t["x-component"])==="Checkbox"}).map(function(e){var n=P(e,2),r=n[0],l=n[1],o=Y(null==l?void 0:l["x-disabled"],k),u=(0,s.hd)((null==l?void 0:l.title)||(null==l?void 0:l["x-content"])||r,t);return i().createElement(a.Form.Item,{key:r,name:q(r),valuePropName:"checked",noStyle:!0},i().createElement(a.Checkbox,{disabled:o},u))})));if("InputNumber"===y)return i().createElement(a.Form.Item,{name:v,label:R,tooltip:B,rules:(null==p?void 0:p.required)?[{required:!0}]:void 0},i().createElement(a.InputNumber,M({style:{width:"100%"},disabled:O},$)));if("ExpiresRadio"===y){var ee=$.defaultValue,et=$.formats,en=$.picker;return i().createElement(a.Form.Item,{name:v,label:R,tooltip:B,rules:(null==p?void 0:p.required)?[{required:!0}]:void 0},i().createElement(em,{defaultValue:ee,disabled:O,formats:et,options:Q(null==p?void 0:p.enum,t),picker:en}))}if("Select"===y||"CollectionSelect"===y||"RemoteSelect"===y||"TargetKey"===y||"SourceKey"===y){var er,el,eo=U.has(f)?H.filter(function(e){return e.primaryKey||e.unique}).map(function(e){var n;return{value:e.name,label:(0,s.hd)((null==(n=e.uiSchema)?void 0:n.title)||e.name,t)}}):_.has(f)?J.filter(function(e){return e.primaryKey||e.unique}).map(function(e){var n;return{value:e.name,label:(0,s.hd)((null==(n=e.uiSchema)?void 0:n.title)||e.name,t)}}):G.has(f)&&z.has(y)&&!Array.isArray(null==p?void 0:p.enum)?ep(r.filter(function(e){return e.name&&e.name!==n.name}),t):(null==p?void 0:p.enum)==="{{collections}}"?ep(r,t):(null==p?void 0:p.enum)===L?ep(r.filter(function(e){var t;return e.name&&"file"===((null==e?void 0:e.template)||(null==e||null==(t=e.options)?void 0:t.template))}),t):"CollectionSelect"===y||"RemoteSelect"===y?ep(r,t):Q(null==p?void 0:p.enum,t),es=$.filter,ed=$.multiple,ef=j($,["filter","multiple"]),ev=D(M({},ef),{mode:ed?"multiple":ef.mode}),ey="function"==typeof es?eo.filter(function(e){return es(r.find(function(t){return t.name===e.value}))}):eo;return i().createElement(a.Form.Item,{name:v,label:R,tooltip:B,rules:(null==p?void 0:p.required)?[{required:!0}]:void 0},i().createElement(eu,{allowClear:"SourceKey"!==y&&(null==(el=ef.allowClear)||el),autoSelectFirstOption:"SourceKey"===y,disabled:O,form:d,namePath:v,options:ey,selectProps:ev,showSearch:"SourceKey"===y||ev.showSearch}))}return"Radio.Group"===y?i().createElement(a.Form.Item,{name:v,label:R,tooltip:B,rules:(null==p?void 0:p.required)?[{required:!0}]:void 0},i().createElement(a.Radio.Group,{disabled:O,options:Q(null==p?void 0:p.enum,t)})):"ArrayTable"===y&&"uiSchema.enum"===f?i().createElement(a.Form.Item,{label:R,tooltip:B},i().createElement(ea,{name:v,disabled:O})):"FieldValidation"===y?i().createElement(a.Form.Item,{name:v,label:R,tooltip:B},i().createElement(ec,(null==p?void 0:p["x-component-props"])||{})):"Input.TextArea"===y?i().createElement(a.Form.Item,{name:v,label:R,tooltip:B,rules:(null==p?void 0:p.required)?[{required:!0}]:void 0},i().createElement(a.Input.TextArea,{disabled:O})):"SourceCollection"===y?i().createElement(a.Form.Item,{label:R,tooltip:B},i().createElement(a.Input,{disabled:!0,value:(0,s.Ad)(n.title||n.name,t)})):i().createElement(a.Form.Item,{name:v,label:R,tooltip:B,rules:(null==p?void 0:p.required)?[{required:!0}]:void 0},i().createElement(a.Input,{disabled:O}))}function ey(e){var t=a.Form.useWatch([],e.form)||e.form.getFieldsValue(!0),n=(0,o.useMemo)(function(){return(e.item.dependencies||[e.item.name]).map(function(e){return(0,I.get)(t,e)})},[e.item.dependencies,e.item.name,t]),r=(0,o.useMemo)(function(){return JSON.stringify(n)},[n]),l=(0,o.useRef)();return(0,o.useEffect)(function(){e.item.effect&&l.current!==r&&(l.current=r,e.item.effect(et(e.form,t,e.context)))},[e.context,e.form,e.item,r,t]),null}function eg(e){var t,n,r=(0,c.kj)(),l=a.Form.useWatch([],e.form)||e.form.getFieldsValue(!0),o=et(e.form,l,e.context),u="function"==typeof e.item.hidden?e.item.hidden(o):e.item.hidden,d="function"==typeof e.item.disabled?e.item.disabled(o):e.item.disabled,f="string"==typeof d?(0,m.evaluateFieldConfigureExpression)(d,o):d,p=e.item.Component,v=D(M({},e.item.schema||{},(t=e.item,n={},void 0!==t.title&&(n.title=t.title),void 0!==t.description&&(n.description=t.description),void 0!==t.required&&(n.required=t.required),void 0!==t.options&&(n.enum=t.options),void 0!==t.defaultValue&&(n.default=t.defaultValue),void 0!==t.component&&(n["x-component"]=t.component),void 0!==t.componentProps&&(n["x-component-props"]=t.componentProps),n)),{"x-disabled":f});return("string"==typeof u?(0,m.evaluateFieldConfigureExpression)(u,o):u)?i().createElement(ey,{context:e.context,form:e.form,item:e.item}):p?i().createElement(i().Fragment,null,i().createElement(ey,{context:e.context,form:e.form,item:e.item}),i().createElement(p,{name:e.item.name,namePath:q(e.item.name),schema:v,form:e.form,disabled:f,collection:e.collection,collections:e.collections,context:e.context,title:(0,s.hd)(e.item.title,r),tooltip:(0,s.hd)(e.item.description,r),componentProps:e.item.componentProps,mode:e.context.createOnly?"create":"edit",createOnly:e.context.createOnly,editMainOnly:e.context.editMainOnly,disabledJSONB:e.context.disabledJSONB,fieldInterface:e.fieldInterface})):i().createElement(i().Fragment,null,i().createElement(ey,{context:e.context,form:e.form,item:e.item}),i().createElement(ev,{name:e.item.name,schema:v,collection:e.collection,collections:e.collections,configureProperties:e.configureProperties,fieldInterface:e.fieldInterface,form:e.form,context:e.context}))}function eh(e){for(var t=function(t){return i().createElement(eg,{key:t.name,item:t,collection:e.collection,collections:e.collections,configureProperties:[],fieldInterface:e.fieldInterface,form:e.form,context:e.context})},n=[],r=0;r<e.items.length;)!function(){var l,o,u=e.items[r],c=null==(l=u.layout)?void 0:l.row;if(!c)return n.push(t(u)),r+=1;for(var s=[];r<e.items.length&&(null==(o=e.items[r].layout)?void 0:o.row)===c;)s.push(e.items[r]),r+=1;var d=s.reduce(function(e,t){var n,r,l,a,o=(null==(r=t.layout)?void 0:r.column)||t.name,i=e.find(function(e){return e.key===o});return i?i.items.push(t):e.push({key:o,index:null!=(n=null==(l=t.layout)?void 0:l.columnIndex)?n:e.length,span:(null==(a=t.layout)?void 0:a.span)||24,items:[t]}),e},[]).sort(function(e,t){return e.index-t.index}),m=0;n.push(i().createElement(a.Row,{key:"".concat(c,"-").concat(n.length),gutter:24},d.map(function(e){var n=Math.max(e.index-m,0)*e.span;return m=e.index+1,i().createElement(a.Col,{key:e.key,xs:24,md:{span:e.span,offset:n}},e.items.map(function(e){return t(e)}))})))}();return i().createElement(i().Fragment,null,n)}function eb(e){var t,n,l,u,d,f,g,h=(0,c.kj)(),E=(0,r.useFlowContext)(),w=a.App.useApp().notification,C=(0,m.useCurrentAppInfo)(),k=E.dataSourceManager.collectionFieldInterfaceManager,F=P(a.Form.useForm(),1)[0],x=P((0,o.useState)(!1),2),O=x[0],T=x[1],j=(0,o.useRef)(),K=(0,o.useRef)(),R=E.dataSourceManager.getDataSource(e.dataSourceKey),q=(null==C||null==(t=C.database)?void 0:t.dialect)||(null==C||null==(l=C.data)||null==(n=l.database)?void 0:n.dialect),z=(0,o.useMemo)(function(){var t,n,r,l,a,o,i,u=(l=null==R||null==(i=R.options)?void 0:i.type,(null==(o=E.dataSourceManager.collectionFieldInterfaceManager)||null==(a=o.getFieldInterfaces)?void 0:a.call(o,l))||[]);return"create"!==e.mode?u:(t=e.collection,b(u,null==(r=E.app.pm.get(p.vb))||null==(n=r.getCollectionTemplate)?void 0:n.call(r,t.template||"general"),t,{databaseDialect:q}))},[q,E,null==R||null==(u=R.options)?void 0:u.type,e.collection,e.mode]),_=(0,o.useMemo)(function(){var t,n,r;return"create"===e.mode?(t=e.collection,S(z,null==(r=E.app.pm.get(p.vb))||null==(n=r.getCollectionTemplate)?void 0:n.call(r,t.template||"general"))):z},[E,z,e.collection,e.mode]),U=P((0,o.useState)((null==(d=e.field)?void 0:d.interface)||e.interfaceName||(null==(f=_[0])?void 0:f.name)),2),W=U[0],J=U[1],X=(0,o.useMemo)(function(){return z.find(function(e){return e.name===W})},[z,W]),H=(0,o.useMemo)(function(){var t;return W?null==k||null==(t=k.getFieldInterfaceConfigure)?void 0:t.call(k,W,e.collection):void 0},[k,W,e.collection]),Z=(0,o.useMemo)(function(){return X||H?D(M({},X,H),{default:(null==H?void 0:H.default)||(null==X?void 0:X.default),name:(null==H?void 0:H.name)||(null==X?void 0:X.name)}):void 0},[H,X]),Y=(0,s.hd)((null==Z?void 0:Z.title)||W||"-",h),Q=(0,s.Ad)((null==Z?void 0:Z.title)||W||"-",h),ea=(null==H?void 0:H.ConfigureForm)||(null==H?void 0:H.Component),eo=(0,o.useMemo)(function(){return(null==H?void 0:H.items)||[]},[null==H?void 0:H.items]),ei=(0,o.useMemo)(function(){return(null==Z?void 0:Z.isAssociation)?{mainConfigureItems:eo.filter(function(e){return e.name!==$}),validationConfigureItems:eo.filter(function(e){return e.name===$})}:{mainConfigureItems:eo,validationConfigureItems:[]}},[eo,null==Z?void 0:Z.isAssociation]),eu=ei.mainConfigureItems,ec=ei.validationConfigureItems,es=P((0,o.useState)([]),2),ed=es[0],em=es[1],ep=(0,o.useMemo)(function(){return eo.some(function(e){var t,n;return G.has(e.name)||(null==(t=e.schema)?void 0:t.enum)==="{{collections}}"||(null==(n=e.schema)?void 0:n.enum)===L||"CollectionSelect"===e.component||"RemoteSelect"===e.component})},[eo]),ev=(0,o.useMemo)(function(){return eo.some(function(e){return"type"===e.name})},[eo]),ey=(0,o.useMemo)(function(){var t=en(Z,e.field,h);return!e.field&&(j.current||(j.current=t.name||(0,r.randomId)("f_")),t.name=j.current,ee(t,eo),((null==X?void 0:X.isAssociation)||(null==H?void 0:H.isAssociation))&&!(0,I.get)(t,"source")&&(0,I.set)(t,"source",e.collection.name)),t},[null==H?void 0:H.isAssociation,eo,null==X?void 0:X.isAssociation,Z,e.collection.name,e.field,h]),eg=(0,o.useMemo)(function(){var t;return el({mode:e.mode,dataSourceKey:e.dataSourceKey,collectionName:e.collection.name,fieldName:null==(t=e.field)?void 0:t.name,interfaceName:W})},[W,e.collection.name,e.dataSourceKey,null==(g=e.field)?void 0:g.name,e.mode]),eb=(0,o.useMemo)(function(){return{createOnly:"create"===e.mode,editMainOnly:"edit"===e.mode,createMainOnly:"create"===e.mode&&"main"===e.dataSourceKey,disabledJSONB:"edit"===e.mode,isDialect:function(e){return q===e},isOverride:!!e.override,override:!!e.override,primaryKeyOnly:!1}},[q,e.dataSourceKey,e.mode,e.override]),eS=(0,o.useRef)(),eE=(0,o.useRef)();(0,o.useEffect)(function(){K.current!==eg&&(K.current=eg,eE.current=(0,I.cloneDeep)(ey),eS.current=(0,I.cloneDeep)(ey),F.resetFields(),F.setFieldsValue(ey))},[F,ey,eg]);var ew=a.Form.useWatch([],F)||F.getFieldsValue(!0),eC=(0,o.useMemo)(function(){return JSON.stringify(ew)},[ew]);(0,o.useEffect)(function(){if(eE.current){var e=eE.current;if((0,I.get)(ew,"name")!==(0,I.get)(e,"name")||(0,I.get)(ew,"interface")!==(0,I.get)(e,"interface")||(0,I.get)(ew,"type")!==(0,I.get)(e,"type"))return;eE.current=void 0,eS.current=(0,I.cloneDeep)(ew),(0,m.runCoreFieldConfigureEffects)(et(F,ew,eb));return}var t=eS.current||{};if(!eS.current){eS.current=(0,I.cloneDeep)(ew),(0,m.runCoreFieldConfigureEffects)(et(F,ew,eb));return}var n=["primaryKey","unique","autoIncrement","autoCreateReverseField","defaultToCurrentTime","uiSchema.x-component-props.picker","uiSchema.x-component-props.showTime"].find(function(e){return(0,I.get)(t,e)!==(0,I.get)(ew,e)});eS.current=(0,I.cloneDeep)(ew),(0,m.runCoreFieldConfigureEffects)(et(F,ew,eb,n))},[eb,F,ew,eC]),(0,o.useEffect)(function(){if(ep){var t=!1;return A(function(){var n;return N(this,function(r){switch(r.label){case 0:return[4,E.api.request({url:"dataSources/".concat(e.dataSourceKey,"/collections:list"),params:{paginate:!1,sort:["sort"],filter:{"hidden.$isFalsy":!0},appends:["fields"]}})];case 1:var l,a;return n=r.sent(),t||em(Array.isArray(a=null==n||null==(l=n.data)?void 0:l.data)?a:Array.isArray(null==a?void 0:a.data)?a.data:[]),[2]}})})(),function(){t=!0}}},[E.api,ep,e.dataSourceKey]),(0,o.useEffect)(function(){var t;!W&&e.interfaceName?J(e.interfaceName):!W&&(null==(t=_[0])?void 0:t.name)&&J(_[0].name)},[_,W,e.interfaceName]);var ek=(0,o.useCallback)(function(t){var n,l=z.find(function(e){return e.name===t}),a=null==k||null==(n=k.getFieldInterfaceConfigure)?void 0:n.call(k,t,e.collection),o=F.getFieldValue(["uiSchema","title"]),i=en(D(M({},l,a),{default:(null==a?void 0:a.default)||(null==l?void 0:l.default),name:(null==a?void 0:a.name)||(null==l?void 0:l.name)}),void 0,h);ee(i,(null==a?void 0:a.items)||[]),((null==l?void 0:l.isAssociation)||(null==a?void 0:a.isAssociation))&&!(0,I.get)(i,"source")&&(0,I.set)(i,"source",e.collection.name),o&&(0,I.set)(i,"uiSchema.title",o);var u=F.getFieldValue("name");F.isFieldTouched("name")&&u?(0,I.set)(i,"name",u):(j.current||(j.current=i.name||(0,r.randomId)("f_")),(0,I.set)(i,"name",j.current)),K.current=el({mode:e.mode,dataSourceKey:e.dataSourceKey,collectionName:e.collection.name,interfaceName:t}),J(t),F.resetFields(),F.setFieldsValue(i)},[k,z,F,e.collection,e.dataSourceKey,e.mode,h]),eF=(0,o.useCallback)(function(t){var n,r,l={mode:e.mode,fieldInterface:Z,collection:e.collection,field:e.field,createOnly:"create"===e.mode,editMainOnly:"edit"===e.mode,disabledJSONB:"edit"===e.mode},a=(null==H?void 0:H.normalizeValues)?H.normalizeValues(t,l):(null==H?void 0:H.normalize)?H.normalize(t,l):t,o=(0,I.cloneDeep)(a);return o.autoCreateReverseField?(0,I.get)(o,"reverseField.uiSchema.title")||(0,I.set)(o,"reverseField.uiSchema.title",(0,I.get)(o,"uiSchema.title")):delete o.reverseField,delete o.autoCreateReverseField,null==X||null==(n=X.initialize)||n.call(X,o),null==H||null==(r=H.initialize)||r.call(H,o,l),o},[H,X,Z,e.collection,e.field,e.mode]),eI=(0,o.useCallback)(function(){return A(function(){var t,n,l,a,o,i,u;return N(this,function(c){switch(c.label){case 0:return c.trys.push([0,8,9,10]),l=F.getFieldsValue(!0),"create"===e.mode&&!F.isFieldTouched("name")&&function(e,t){var n=null==e?void 0:e.name;if(!n)return!0;var r=(0,I.get)(e,"uiSchema.title"),l=er(n);return n===r||n===t||!!l&&(l===er(r)||l===er(t))}(l,Q)&&(j.current||(j.current=(0,r.randomId)("f_")),F.setFieldValue("name",j.current)),[4,F.validateFields()];case 1:return a=c.sent(),[4,null==H||null==(t=H.validate)?void 0:t.call(H,a,{mode:e.mode,fieldInterface:Z,collection:e.collection,field:e.field,createOnly:"create"===e.mode,editMainOnly:"edit"===e.mode,disabledJSONB:"edit"===e.mode})];case 2:if(c.sent(),o=eF(a),T(!0),"create"!==e.mode)return[3,4];return[4,E.api.request({url:y(e.dataSourceKey,e.collection.name,"create"),method:"post",data:o})];case 3:return c.sent(),[3,6];case 4:return[4,E.api.request({url:y(e.dataSourceKey,e.collection.name,"update",null==(i=e.field)?void 0:i.name),method:"post",data:o})];case 5:c.sent(),c.label=6;case 6:return[4,null==(n=E.dataSourceManager.getDataSource(e.dataSourceKey))?void 0:n.reload()];case 7:return c.sent(),e.onSubmitted(),[3,10];case 8:throw u=c.sent(),(0,v.GN)(u)||w.error({message:(0,v.u1)(u,h("Submit failed"))}),u;case 9:return T(!1),[7];case 10:return[2]}})})()},[H,E.api,E.dataSourceManager,Z,Q,F,eF,w,e,h]),ex=(0,s.Ad)((0,I.get)(e.collection,"title")||e.collection.name,h),eO="".concat(ex," - ").concat(e.override?h("Override field"):"create"===e.mode?h("Add field"):h("Edit field")),eA=new Set((e.collection.fields||[]).map(function(e){return e.name}));return i().createElement(m.DrawerFormLayout,{title:eO,onSubmit:eI,submitting:O,submitText:h("Submit"),cancelText:h("Cancel")},i().createElement(a.Form,{form:F,layout:"vertical",initialValues:ey,autoComplete:"off"},i().createElement(ef,{fieldInterface:Z,label:h("Field interface"),fallbackTitle:Y}),e.interfaceName||"create"!==e.mode?i().createElement(a.Form.Item,{name:"interface",hidden:!0,rules:[{required:!0}]},i().createElement(a.Input,null)):i().createElement(a.Form.Item,{name:"interface",label:h("Field interface"),rules:[{required:!0}]},i().createElement(a.Select,{options:_.map(function(e){return{value:e.name,label:(0,s.hd)(e.title||e.name,h)}}),onChange:ek})),i().createElement(a.Form.Item,{name:["uiSchema","title"],label:h("Field display name"),rules:[{required:!0}]},i().createElement(a.Input,{autoComplete:"off"})),i().createElement(a.Form.Item,{name:"name",label:h("Field name"),rules:[{required:!0},{pattern:"tableoid"===W?/^__collection$/:V,message:h(B)},{validator:function(t,n){return"edit"!==e.mode&&n&&eA.has(n)?Promise.reject(Error(h("Field name already exists"))):Promise.resolve()}}],extra:h(B)},i().createElement(a.Input,{autoComplete:"off",disabled:"edit"===e.mode||e.override||"tableoid"===W})),i().createElement(eh,{items:eu,collection:e.collection,collections:ed,fieldInterface:Z,form:F,context:eb}),ev?null:i().createElement(a.Form.Item,{name:"type",hidden:!0,rules:[{required:!0}]},i().createElement(a.Input,null)),ea&&H?i().createElement(ea,{mode:e.mode,fieldInterface:H,collection:e.collection,field:e.field,createOnly:"create"===e.mode,editMainOnly:"edit"===e.mode,disabledJSONB:"edit"===e.mode}):null,i().createElement(eh,{items:ec,collection:e.collection,collections:ed,fieldInterface:Z,form:F,context:eb}),i().createElement(a.Form.Item,{name:"description",label:h("Description")},i().createElement(a.Input.TextArea,{autoSize:{minRows:4,maxRows:8}}))))}function eS(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 eE(e,t,n,r,l,a,o){try{var i=e[a](o),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,l)}function ew(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 a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(n=l.next()).done)&&(a.push(n.value),!t||a.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw r}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return eS(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 eS(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.")}()}function eC(e){if(Array.isArray(e)){var t=e.filter(Boolean).map(String);return t.length?t:void 0}return e?[String(e)]:void 0}function ek(e,t){return eC(e.filterTargetKey)||function(e,t){var n=eC(e.primaryKey);if(null==n?void 0:n.length)return n;var r=(t||[]).filter(function(e){return(null==e?void 0:e.primaryKey)&&e.name}).map(function(e){return String(e.name)});return r.length?r:void 0}(e,t)}function eF(e){var t,n=e.collection,l=e.dataSourceKey,u=e.fields,d=e.onSaved,m=e.size,f=e.style,p=(0,c.kj)(),v=(0,r.useFlowContext)(),y=a.App.useApp(),g=y.message,h=y.notification,b=ew((0,o.useState)([]),2),S=b[0],E=b[1],w=ew((0,o.useState)(!1),2),C=w[0],k=w[1],F=v.dataSourceManager.getDataSource(l),I=v.dataSourceManager.collectionFieldInterfaceManager,x=(0,o.useMemo)(function(){var e,t,n,r,l,a;return n=(t={dataSourceType:null==F||null==(e=F.options)?void 0:e.type,fieldInterfaceManager:I,fields:u,t:p}).dataSourceType,r=t.fieldInterfaceManager,l=t.fields,a=t.t,(l||[]).filter(function(e){if(!(null==e?void 0:e.name)||!e.interface)return!1;var t,l=null==r||null==(t=r.getFieldInterface)?void 0:t.call(r,String(e.interface),n);return!!(null==l?void 0:l.titleUsable)}).map(function(e){var t,n=(null==(t=e.uiSchema)?void 0:t.title)||e.title||e.name;return{value:String(e.name),label:(0,s.hd)(n,a),title:(0,s.Ad)(n,a)}})},[null==F||null==(t=F.options)?void 0:t.type,I,u,p]),O=(0,o.useMemo)(function(){return S.map(function(e){var t;return(null==(t=x.find(function(t){return t.value===e}))?void 0:t.title)||e}).join(", ")},[S,x]);return i().createElement("div",{style:f},p("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"===m?i().createElement("br",null):" ",i().createElement(a.Space.Compact,{style:{marginTop:5}},i().createElement(a.Select,{mode:"multiple",placeholder:p("Select field"),options:x,value:S,loading:C,size:"small",style:{minWidth:200},onChange:function(e){return E(e.map(String))}}),i().createElement(a.Popconfirm,{placement:"bottom",title:i().createElement("div",{style:{width:"15em"}},O?p('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:O}):p("Please select a field.")),onConfirm:function(){var e;return(e=function(){var e,t,r,a,o;return function(e,t){var n,r,l,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(n)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(l=2&c[0]?r.return:c[0]?r.throw||((l=r.return)&&l.call(r),0):r.next)&&!(l=l.call(r,c[1])).done)return l;switch(r=0,l&&(c=[2&c[0],l.value]),c[0]){case 0:case 1:l=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!l||c[1]>l[0]&&c[1]<l[3])){a.label=c[1];break}if(6===c[0]&&a.label<l[1]){a.label=l[1],l=c;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(c);break}l[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=l=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(i){switch(i.label){case 0:if(!S.length)return g.warning(p("Please select a field.")),[2];k(!0),i.label=1;case 1:return i.trys.push([1,4,5,6]),[4,v.api.request({url:"main"===l?"collections:update":"dataSources/".concat(l,"/collections:update"),method:"post",params:{filterByTk:String(n.name)},data:{filterTargetKey:S}})];case 2:return i.sent(),null==F||null==(r=F.collectionManager)||null==(t=r.getCollection(String(n.name)))||null==(e=t.setOption)||e.call(t,"filterTargetKey",S),null==d||d({filterTargetKey:S}),g.success(p("Saved successfully")),[4,null==F||null==(a=F.reload)?void 0:a.call(F)];case 3:return i.sent(),[3,6];case 4:throw o=i.sent(),h.error({message:p("Save failed")}),o;case 5:return k(!1),[7];case 6:return[2]}})},function(){var t=this,n=arguments;return new Promise(function(r,l){var a=e.apply(t,n);function o(e){eE(a,r,l,o,i,"next",e)}function i(e){eE(a,r,l,o,i,"throw",e)}o(void 0)})})()}},i().createElement(a.Button,{type:"primary",size:"small",loading:C},p("OK")))))}function eI(e){var t=(0,c.kj)();return ek(e.collection,e.fields)?null:i().createElement(a.Popover,{trigger:["click"],content:i().createElement(eF,{collection:e.collection,dataSourceKey:e.dataSourceKey,fields:e.fields,onSaved:e.onSaved,size:"small",style:{width:"20em"}})},i().createElement(a.Button,{"aria-label":t("Record unique key"),icon:i().createElement(d.ExclamationCircleTwoTone,{twoToneColor:"#faad14"}),size:"small",type:"text",style:{height:20,marginRight:2,padding:0,width:20}}))}var ex=n(850);function eO(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 eA(e,t,n,r,l,a,o){try{var i=e[a](o),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,l)}function eT(e){return function(){var t=this,n=arguments;return new Promise(function(r,l){var a=e.apply(t,n);function o(e){eA(a,r,l,o,i,"next",e)}function i(e){eA(a,r,l,o,i,"throw",e)}o(void 0)})}}function eM(e,t){return null!=t&&"u">typeof Symbol&&t[Symbol.hasInstance]?!!t[Symbol.hasInstance](e):e instanceof t}function eD(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 ej(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 eP(e,t){if(null==e)return{};var n,r,l,a={};if("u">typeof Reflect&&Reflect.ownKeys){for(l=0,n=Reflect.ownKeys(Object(e));l<n.length;l++)r=n[l],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r]);return a}if(a=function(e,t){if(null==e)return{};var n,r,l={},a=Object.getOwnPropertyNames(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n]);return l}(e,t),Object.getOwnPropertySymbols)for(l=0,n=Object.getOwnPropertySymbols(e);l<n.length;l++)r=n[l],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r]);return a}function eK(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 a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(n=l.next()).done)&&(a.push(n.value),!t||a.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw r}}return a}}(e,t)||eN(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 eR(e){return function(e){if(Array.isArray(e))return eO(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||eN(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 eN(e,t){if(e){if("string"==typeof e)return eO(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 eO(e,t)}}function eq(e,t){var n,r,l,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(n)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(l=2&c[0]?r.return:c[0]?r.throw||((l=r.return)&&l.call(r),0):r.next)&&!(l=l.call(r,c[1])).done)return l;switch(r=0,l&&(c=[2&c[0],l.value]),c[0]){case 0:case 1:l=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!l||c[1]>l[0]&&c[1]<l[3])){a.label=c[1];break}if(6===c[0]&&a.label<l[1]){a.label=l[1],l=c;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(c);break}l[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=l=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var eV={basic:{label:"Basic",order:1},choices:{label:"Choices",order:20},media:{label:"Media",order:40},datetime:{label:"Date & Time",order:80},relation:{label:"Relation",order:100},advanced:{label:"Advanced type",order:200},systemInfo:{label:"System info",order:400},others:{label:"Others",order:800}};function eB(e,t){var n,r=e.dataSourceManager.collectionFieldInterfaceManager;return(null==r||null==(n=r.getFieldInterfaces)?void 0:n.call(r,t))||[]}function ez(e,t,n,r){var l,a=n.app.pm.get(p.vb);return b(e,null==a||null==(l=a.getCollectionTemplate)?void 0:l.call(a,t.template||"general"),t,{databaseDialect:r})}function eG(e,t){return(null==e?void 0:e.title)||(null==e?void 0:e.label)||t||(null==e?void 0:e.name)}function eL(e){var t,n=null==(t=e.uiSchema)?void 0:t.title;return"string"==typeof n?n:null==n?e.name:String(n)}function e_(e){var t=eK((0,o.useState)(eL(e.record)),2),n=t[0],r=t[1];(0,o.useEffect)(function(){r(eL(e.record))},[e.record]);var l=(0,o.useCallback)(function(){var t=eL(e.record),l=n.trim();l&&l!==t?e.onSave(e.record,l).catch(function(){r(t)}):r(t)},[e,n]);return i().createElement(a.Input,{disabled:e.loading,value:n,onBlur:l,onChange:function(e){return r(e.target.value)},onPressEnter:function(e){return e.currentTarget.blur()},suffix:e.loading?i().createElement(a.Spin,{size:"small"}):null})}function eU(e){var t=(0,c.kj)(),n=e.field,r=eG(e.fieldInterface,n.interface);return i().createElement(a.Descriptions,{column:1,bordered:!0,size:"small"},i().createElement(a.Descriptions.Item,{label:t("Field display name")},(0,s.hd)(eL(n),t)),i().createElement(a.Descriptions.Item,{label:t("Field name")},n.name),i().createElement(a.Descriptions.Item,{label:t("Field type")},i().createElement(a.Tag,null,n.type)),i().createElement(a.Descriptions.Item,{label:t("Field interface")},i().createElement(a.Tag,null,(0,s.hd)(r,t))),n.description?i().createElement(a.Descriptions.Item,{label:t("Description")},(0,s.hd)(n.description,t)):null)}function e$(e,t,n){var r,l,a,o;return n.titleField||(null==(o=e.dataSourceManager.getDataSource(t))||null==(a=o.collectionManager)||null==(l=a.getCollection(n.name))||null==(r=l.getOption)?void 0:r.call(l,"titleField"))}function eW(e){return"view"===e.template||e.view}function eJ(e,t){var n,r=e.app.pm.get(p.vb);return null==r||null==(n=r.getCollectionTemplate)?void 0:n.call(r,t.template||"general")}function eX(e,t){var n,r;return!1===e.deletable||("function"==typeof(r=null==t||null==(n=t.collection)?void 0:n.fields)?r():Array.isArray(r)?r:[]).some(function(t){return(null==t?void 0:t.name)===e.name&&!1===t.deletable})}function eH(e,t){var n,r=(null==e?void 0:e.options)||e||{};return ej(eD({},r),{collectionName:r.collectionName||(null==e?void 0:e.collectionName)||(null==e||null==(n=e.collection)?void 0:n.name)||t})}function eZ(e,t,n){var r=n.get(e.name);return!!(r&&(!r.collectionName||r.collectionName===t))}function eY(e){var t=e||{};return t.rawTitle,eP(t,["rawTitle"])}function eQ(e){return Array.isArray(e)?e.filter(Boolean):"string"==typeof e?e.split(".").filter(Boolean):[]}function e0(e){var t=eQ(e);return t.length?t.join("."):null}function e1(e){var t,n=(0,c.kj)(),l=(0,r.useFlowContext)(),u=a.App.useApp(),d=u.message,f=u.notification,p=eK(a.Form.useForm(),1)[0],y=eK((0,o.useState)([]),2),g=y[0],h=y[1],b=eK((0,o.useState)(!1),2),S=b[0],E=b[1],w=eK((0,o.useState)([]),2),C=w[0],k=w[1],F=eK((0,o.useState)(!1),2),I=F[0],x=F[1],O=eK((0,o.useState)(!1),2),A=O[0],T=O[1],M=eK((0,o.useState)([]),2),D=M[0],j=M[1],P=eK((0,o.useState)([]),2),K=P[0],R=P[1],N=l.dataSourceManager.getDataSource("main"),q=(t=e.collection).viewName||t.name,V=(0,o.useMemo)(function(){var e=[];return K.forEach(function(t){var r=null==N?void 0:N.getCollection(t);if(r){var l=r.getFields().filter(function(e){return!["hasOne","hasMany","belongsToMany"].includes(e.type)}).map(function(e){var t,r;return{value:e.name,label:(0,s.hd)((null==(t=(r=(null==e?void 0:e.options)||e||{}).uiSchema)?void 0:t.title)||r.title||r.name,n)}});e.push({value:t,label:(0,s.hd)(r.title||r.name,n),children:l})}}),e},[N,K,n]),B=(0,o.useMemo)(function(){return g.filter(function(e){return e.source||e.interface}).map(function(e){var t;return{title:(0,s.hd)((null==(t=e.uiSchema)?void 0:t.title)||e.name,n),dataIndex:e.name,key:e.name,width:200,ellipsis:!0,render:function(e){return null==e?null:(void 0===e?"undefined":e&&"u">typeof Symbol&&e.constructor===Symbol?"symbol":typeof e)=="object"?JSON.stringify(e):String(e)}}})},[g,n]),z=(0,o.useCallback)(function(t){return eT(function(){var n,r,a,o;return eq(this,function(i){switch(i.label){case 0:x(!0),i.label=1;case 1:return i.trys.push([1,,3,4]),r=["lineString","point","circle","polygon"],a=t.reduce(function(e,t){return t.type&&r.includes(t.type)&&(e[t.name]=t.type),e},{}),[4,l.api.resource("dbViews").query({filterByTk:q,schema:e.collection.schema,fieldTypes:a})];case 2:return k((null==(o=i.sent())||null==(n=o.data)?void 0:n.data)||[]),[3,4];case 3:return x(!1),[7];case 4:return[2]}})})()},[l.api,e.collection.schema,q]);(0,o.useEffect)(function(){var t=!1;return eT(function(){var n,r,a,o;return eq(this,function(i){switch(i.label){case 0:E(!0),i.label=1;case 1:return i.trys.push([1,,4,5]),[4,l.api.resource("dbViews").get({filterByTk:q,schema:e.collection.schema})];case 2:var u,c,s,d,m;if(n=i.sent(),t)return[2];return r={fields:(c=(null==n||null==(u=n.data)?void 0:u.data)||(null==n?void 0:n.data)||n||{}).fields,sources:c.sources,unsupportedFields:c.unsupportedFields},m=new Map(((d={currentFields:e.currentFields,fieldInterfacesByName:e.fieldInterfacesByName,inferredFields:(s=r.fields)?(Array.isArray(s)?s:Object.values(s)).filter(Boolean):[]}).currentFields||[]).map(function(e){return[e.name,e]})),a=d.inferredFields.map(function(e){var t,n,r,l=m.get(e.name)||e,a=d.fieldInterfacesByName[l.interface||e.interface||""],o=(null==a||null==(t=a.default)?void 0:t.uiSchema)||{},i=(null==(n=l.uiSchema)?void 0:n.title)||l.title||(null==(r=e.uiSchema)?void 0:r.title)||e.name,u=ej(eD({},eY(o),eY(l.uiSchema||e.uiSchema)),{title:i});return e.source?ej(eD({},e),{interface:e.interface||l.interface,type:e.type||l.type,uiSchema:u}):ej(eD({},e,l),{uiSchema:u})}),o=Array.isArray(r.sources)?r.sources:[],h(a),j(Array.isArray(r.unsupportedFields)?r.unsupportedFields:[]),R(o),p.setFieldsValue({fields:a.map(function(e){return ej(eD({},e),{source:e0(e.source)})}),schema:e.collection.schema,sources:o,viewName:q}),[4,z(a)];case 3:return i.sent(),[3,5];case 4:return t||E(!1),[7];case 5:return[2]}})})(),function(){t=!0}},[l.api,p,z,e.collection.schema,e.currentFields,e.fieldInterfacesByName,q]);var G=(0,o.useCallback)(function(e,t){var n=eR(g);n[e]=t,h(n),p.setFieldValue("fields",n.map(function(e){return ej(eD({},e),{source:e0(e.source)})}))},[g,p]),L=(0,o.useMemo)(function(){return[{title:n("Field name"),dataIndex:"name",width:130},{title:n("Field source"),dataIndex:"source",width:220,render:function(e,t,r){return i().createElement(a.Cascader,{allowClear:!0,options:V,value:eQ(t.source),style:{width:"100%"},placeholder:n("Select field source"),onChange:function(e){var n,l,a,o=(e||[]).map(String),i=o.length?null==N||null==(n=N.getCollectionField(o.join(".")))?void 0:n.options:void 0;G(r,ej(eD({},t),{interface:(null==i?void 0:i.interface)||t.interface,source:o,type:(null==i?void 0:i.type)||t.type,uiSchema:ej(eD({},t.uiSchema,null==i?void 0:i.uiSchema),{title:(null==i||null==(l=i.uiSchema)?void 0:l.title)||(null==(a=t.uiSchema)?void 0:a.title)||t.name})}))}})}},{title:n("Field type"),dataIndex:"type",width:140,render:function(e,t,n){var r;return!t.source&&(null==(r=t.possibleTypes)?void 0:r.length)?i().createElement(a.Select,{value:e,style:{width:"100%"},popupMatchSelectWidth:!1,options:t.possibleTypes.map(function(e){return{label:e,value:e}}),onChange:function(e){return G(n,ej(eD({},t),{type:e}))}}):i().createElement(a.Tag,null,e)}},{title:n("Field interface"),dataIndex:"interface",width:170,render:function(t,r,l){var o,u;return r.source?i().createElement(a.Tag,null,(0,s.hd)(eG(e.fieldInterfacesByName[t],t),n)):i().createElement(a.Select,{allowClear:!0,value:t||void 0,style:{width:"100%"},popupMatchSelectWidth:!1,options:(o=e.fieldInterfaceGroups,u=r.type,o.filter(function(e){return!["relation","systemInfo"].includes(e.key)}).map(function(e){return{label:e.label,options:e.children.filter(function(e){var t,n;return!u||(null==(t=e.availableTypes)?void 0:t.includes(u))||(null==(n=e.default)?void 0:n.type)===u}).map(function(e){return{label:e.title||e.label||e.name,value:e.name}})}}).filter(function(e){return e.options.length})).map(function(e){return{label:(0,s.hd)(e.label,n),options:e.options.map(function(e){return{value:e.value,label:(0,s.hd)(e.label,n)}})}}),onChange:function(t){var n,a,o,i,u,c=e.fieldInterfacesByName[t];G(l,ej(eD({},r),{interface:t||null,type:(null==c||null==(n=c.default)?void 0:n.type)||r.type,uiSchema:ej(eD({},null==c||null==(a=c.default)?void 0:a.uiSchema),{title:(null==c||null==(i=c.default)||null==(o=i.uiSchema)?void 0:o.title)||(null==(u=r.uiSchema)?void 0:u.title)||r.name})}))}})}},{title:n("Field display name"),dataIndex:["uiSchema","title"],width:200,render:function(e,t,n){var r;return i().createElement(a.Input,{value:(null==(r=t.uiSchema)?void 0:r.title)||t.name,onChange:function(e){return G(n,ej(eD({},t),{uiSchema:ej(eD({},eY(t.uiSchema)),{title:e.target.value})}))}})}}]},[G,N,e.fieldInterfaceGroups,e.fieldInterfacesByName,V,n]),_=(0,o.useCallback)(function(){return eT(function(){var t,r,a;return eq(this,function(o){switch(o.label){case 0:return o.trys.push([0,7,,8]),[4,p.validateFields()];case 1:o.sent(),t=p.getFieldsValue(!0),T(!0),o.label=2;case 2:return o.trys.push([2,,5,6]),[4,l.api.resource("collections").setFields({filterByTk:e.collection.name,values:{fields:t.fields,schema:t.schema,sources:t.sources,viewName:t.viewName}})];case 3:return o.sent(),[4,null==(r=l.dataSourceManager.getDataSource("main"))?void 0:r.reload()];case 4:return o.sent(),e.onSubmitted(),d.success(n("Sync successfully")),[3,6];case 5:return T(!1),[7];case 6:return[3,8];case 7:throw a=o.sent(),(0,v.GN)(a)||f.error({message:(0,v.u1)(a,n("Sync failed"))}),a;case 8:return[2]}})})()},[l.api,l.dataSourceManager,p,d,f,e,n]);return i().createElement(m.DrawerFormLayout,{title:n("Sync from database"),submitting:A,submitText:n("Submit"),cancelText:n("Cancel"),onSubmit:_},i().createElement(a.Spin,{spinning:S},i().createElement(a.Form,{form:p,layout:"vertical"},g.length?i().createElement(a.Form.Item,{label:n("Fields")},i().createElement(a.Table,{bordered:!0,columns:L,dataSource:g,pagination:!1,rowKey:"name",scroll:{y:300},size:"middle"})):null,i().createElement(ex.T,{dataSource:D,style:{marginBottom:24}}),i().createElement(a.Form.Item,{label:n("Preview")},i().createElement(a.Spin,{spinning:I},i().createElement(a.Table,{bordered:!0,columns:B,dataSource:C,pagination:!1,rowKey:function(e,t){return String(null!=t?t:0)},scroll:{x:1e3,y:300},size:"middle"}))))))}function e2(e){var t,n,u,f,g,h,b,E,w,C,k,F,I,x,O,A,T,M,D,j,P,K,R,N,q,V,B,z,G,L,_,U,$,W=(0,c.kj)(),J=(0,r.useFlowContext)(),X=(0,m.useCurrentAppInfo)(),H=a.App.useApp(),Z=H.message,Y=H.modal,Q=H.notification,ee=eK((0,o.useState)([]),2),et=ee[0],en=ee[1],er=eK((0,o.useState)(function(){return e$(J,e.dataSourceKey,e.collection)}),2),el=er[0],ea=er[1],eo=eK((0,o.useState)(),2),ei=eo[0],eu=eo[1],ec=eK((0,o.useState)(),2),es=ec[0],ed=ec[1],em=eK((0,o.useState)(!1),2),ef=em[0],ep=em[1],ev=(0,l.useRequest)(function(){return eT(function(){return eq(this,function(t){switch(t.label){case 0:return[4,J.api.request({url:y(e.dataSourceKey,e.collection.name,"list"),params:{paginate:!1,filter:JSON.stringify({$or:[{"interface.$not":null},{"options.source.$notEmpty":!0}]}),sort:["sort"]}})];case 1:var n,r,l;return[2,Array.isArray(l=null==(n=t.sent())||null==(r=n.data)?void 0:r.data)?l:[]]}})})()});(0,o.useEffect)(function(){ea(e$(J,e.dataSourceKey,e.collection))},[J,e.collection,e.collection.titleField,e.dataSourceKey]);var ey=J.dataSourceManager.getDataSource(e.dataSourceKey),eg=null==(V=J.app.pm.get(p.vb))||null==(q=V.getType)?void 0:q.call(V,null==ey||null==(N=ey.options)?void 0:N.type),eh="main"===e.dataSourceKey,eS=(null==X||null==(I=X.database)?void 0:I.dialect)||(null==X||null==(O=X.data)||null==(x=O.database)?void 0:x.dialect),eE=(0,o.useMemo)(function(){var e,t,n,r,l,a,o;return t=null==ey||null==(e=ey.options)?void 0:e.type,r=J.dataSourceManager.collectionFieldInterfaceManager,l=eB(J,t),a=eD({},eV,(null==r||null==(n=r.getFieldInterfaceGroups)?void 0:n.call(r))||{}),o=l.reduce(function(e,t){if(t.hidden)return e;var n=t.group||"basic";return e[n]=e[n]||[],e[n].push(t),e},{}),Object.keys(a).map(function(e){return ej(eD({},a[e]),{key:e,children:(o[e]||[]).sort(function(e,t){var n,r;return(null!=(n=e.order)?n:0)-(null!=(r=t.order)?r:0)})})}).filter(function(e){return e.children.length}).sort(function(e,t){var n,r;return(null!=(n=e.order)?n:0)-(null!=(r=t.order)?r:0)})},[J,null==ey||null==(B=ey.options)?void 0:B.type]),ew=(0,o.useMemo)(function(){var t,n,r,l,a,o;return function(e,t,n){var r,l,a,o="function"==typeof(null==t?void 0:t.createFieldInterfaces)?t.createFieldInterfaces({collection:n}):null==t?void 0:t.createFieldInterfaces;if(!o)return e;var i=(null==(r=o.groups)?void 0:r.length)?new Set(o.groups):null,u=(null==(l=o.include)?void 0:l.length)?new Set(o.include):null,c=(null==(a=o.exclude)?void 0:a.length)?new Set(o.exclude):null;return e.map(function(e){return ej(eD({},e),{children:i&&!i.has(e.key)?[]:e.children.filter(function(e){return!(u&&!u.has(e.name)||(null==c?void 0:c.has(e.name)))})})}).filter(function(e){return e.children.length})}((t=e.collection,n=eE.map(function(e){return ej(eD({},e),{children:ez(e.children,t,J,eS)})}).filter(function(e){return e.children.length}),r=e.collection,o=null==(a=J.app.pm.get(p.vb))||null==(l=a.getCollectionTemplate)?void 0:l.call(a,r.template||"general"),n.map(function(e){return ej(eD({},e),{children:S(e.children,o)})}).filter(function(e){return e.children.length})),eg,e.collection)},[eE,eS,J,eg,e.collection]),eC=(0,o.useMemo)(function(){var t;return ez(eB(J,null==ey||null==(t=ey.options)?void 0:t.type),e.collection,J,eS).reduce(function(e,t){return e[t.name]=t,e},{})},[eS,J,null==ey||null==(z=ey.options)?void 0:z.type,e.collection]),eI=(0,o.useMemo)(function(){var e,t,n,r;return n=(null==(t=J.app.pm.get(p.vb))||null==(e=t.getCollectionPresetFields)?void 0:e.call(t))||[],r=new Set,n.forEach(function(e){var t,n,l=(null==(t=e.value)?void 0:t.interface)||(null==(n=e.value)?void 0:n.name);l&&r.add(l)}),r},[J]),eO=(0,o.useMemo)(function(){var t=new Map;return eR(Array.isArray(e.collection.fields)?e.collection.fields:[]).concat(eR(ev.data||[])).forEach(function(e){(null==e?void 0:e.name)&&t.set(e.name,e)}),Array.from(t.values())},[e.collection.fields,ev.data]),eA=!ek(e.collection,eO),eN=(0,o.useMemo)(function(){return eJ(J,e.collection)},[J,e.collection]),eQ=(0,o.useMemo)(function(){return new Map((ev.data||[]).map(function(e){return[String(e.name),e]}))},[ev.data]),e0=(0,o.useCallback)(function(t,n,r,l){J.viewer.drawer({width:800,closable:!0,content:function(){return i().createElement(eb,{mode:t,dataSourceKey:e.dataSourceKey,collection:e.collection,interfaceName:r,field:n,override:null==l?void 0:l.override,onSubmitted:function(){return ev.refresh()}})}})},[J.viewer,e.collection,e.dataSourceKey,ev]),e2=(0,o.useMemo)(function(){return{style:{maxHeight:"60vh",overflow:"auto"},items:ew.map(function(e){return{type:"group",key:e.key,label:(0,s.hd)(e.label,W),children:e.children.map(function(e){return{key:e.name,label:(0,s.hd)(eG(e),W)}})}}),onClick:function(e){return e0("create",void 0,String(e.key))}}},[ew,e0,W]),e4=null==eN||null==(L=eN.configure)||null==(G=L.syncFields)?void 0:G.Component,e3=(A=null==ey||null==(U=ey.collectionManager)||null==(_=U.getCollection)?void 0:_.call(U,e.collection.name),T=[],M=new Set,(D=function(e){(eM(null==e?void 0:e.inherits,Map)?Array.from(e.inherits.values()):[]).forEach(function(e){var t;!(null==e?void 0:e.name)||M.has(e.name)||(M.add(e.name),T.push({collectionName:e.name,fields:e?eM(e.fields,Map)?Array.from(e.fields.values()).map(function(t){return eH(t,e.name)}):Array.isArray(e.fields)?e.fields.map(function(t){return eH(t,e.name)}):[]:[],key:e.name,title:e.title||(null==(t=e.options)?void 0:t.title)||e.name}),D(e))})})(A),T),e6=Array.isArray(e.collection.unsupportedFields)?e.collection.unsupportedFields:[],e5=(0,o.useCallback)(function(){e4&&J.viewer.drawer({width:900,closable:!0,content:function(){return i().createElement(e4,{collection:e.collection,dataSourceKey:e.dataSourceKey,onSubmitted:function(){ev.refresh()}})}})},[e4,J.viewer,e.collection,e.dataSourceKey,ev]),e8=(0,o.useCallback)(function(){J.viewer.drawer({width:900,closable:!0,content:function(){return i().createElement(e1,{collection:e.collection,currentFields:ev.data||e.collection.fields||[],fieldInterfaceGroups:eE,fieldInterfacesByName:eC,onSubmitted:function(){ev.refresh()}})}})},[eE,J.viewer,eC,e.collection,ev]),e7=(0,o.useCallback)(function(t,n){var r=t.interface?eC[t.interface]:void 0;J.viewer.drawer({title:"".concat((0,s.hd)(n||t.collectionName||e.collection.name,W)," - ").concat(W("View")),width:520,closable:!0,content:function(){return i().createElement(eU,{field:t,fieldInterface:r})}})},[J.viewer,eC,e.collection.name,W]),e9=(0,o.useCallback)(function(t){!eZ(t,e.collection.name,eQ)&&e0("create",(t.collectionName,t.key,t.sort,t.uiSchemaUid,eP(t,["collectionName","key","sort","uiSchemaUid"])),t.interface,{override:!0})},[eQ,e0,e.collection.name]),te=(0,o.useCallback)(function(t){var n=(Array.isArray(t)?t:[t]).filter(function(e){var t=eQ.get(String(e));return t&&!eX(t,eN)});n.length&&Y.confirm({title:W("Delete record"),content:W("Are you sure you want to delete it?"),onOk:function(){return eT(function(){var t,r;return eq(this,function(l){switch(l.label){case 0:return l.trys.push([0,3,,4]),[4,Promise.all(n.map(function(t){return J.api.request({url:y(e.dataSourceKey,e.collection.name,"destroy",String(t)),method:"post"})}))];case 1:return l.sent(),[4,null==(t=J.dataSourceManager.getDataSource(e.dataSourceKey))?void 0:t.reload()];case 2:return l.sent(),en([]),ev.refresh(),[3,4];case 3:throw r=l.sent(),Q.error({message:(0,v.u1)(r,W("Delete failed"))}),r;case 4:return[2]}})})()}})},[eN,J.api,J.dataSourceManager,eQ,Y,Q,e.collection.name,e.dataSourceKey,ev,W]),tt=(0,o.useCallback)(function(t,n){return eT(function(){var r,l,a,o,i,u;return eq(this,function(c){switch(c.label){case 0:o=(a=(null==(l=n?eC[n]:void 0)?void 0:l.default)||{}).uiSchema?ej(eD({},a.uiSchema),{title:a.uiSchema.title||(null==(r=t.uiSchema)?void 0:r.title)}):t.uiSchema,c.label=1;case 1:return c.trys.push([1,4,,5]),[4,J.api.request({url:y(e.dataSourceKey,e.collection.name,"update",t.name),method:"post",data:ej(eD({},t,a),{name:t.name,interface:n||null,type:a.type||t.type,uiSchema:o})})];case 2:return c.sent(),[4,null==(i=J.dataSourceManager.getDataSource(e.dataSourceKey))?void 0:i.reload()];case 3:return c.sent(),ev.refresh(),[3,5];case 4:throw u=c.sent(),Q.error({message:(0,v.u1)(u,W("Save failed"))}),u;case 5:return[2]}})})()},[J.api,J.dataSourceManager,eC,Q,e.collection.name,e.dataSourceKey,ev,W]),tn=(0,o.useCallback)(function(t,n){return eT(function(){var r,l,a;return eq(this,function(o){switch(o.label){case 0:if(!(r=n.trim()))throw Z.error(W("Field display name is required")),Error("Field display name is required");ed(t.name),o.label=1;case 1:return o.trys.push([1,4,5,6]),[4,J.api.request({url:y(e.dataSourceKey,e.collection.name,"update",t.name),method:"post",data:ej(eD({},t),{uiSchema:ej(eD({},eY(t.uiSchema)),{title:r})})})];case 2:return o.sent(),[4,null==(l=J.dataSourceManager.getDataSource(e.dataSourceKey))?void 0:l.reload()];case 3:return o.sent(),ev.refresh(),Z.success(W("Saved successfully")),[3,6];case 4:throw a=o.sent(),Q.error({message:(0,v.u1)(a,W("Save failed"))}),a;case 5:return ed(void 0),[7];case 6:return[2]}})})()},[J.api,J.dataSourceManager,Z,Q,e.collection.name,e.dataSourceKey,ev,W]),tr=(0,o.useCallback)(function(t,n){return eT(function(){var r,l,a,o;return eq(this,function(i){var u,c,s,d,m,f,p,y;switch(i.label){case 0:r=n?t.name:"id",eu(t.name),i.label=1;case 1:return i.trys.push([1,4,5,6]),[4,J.api.request({url:"main"===(u=e.dataSourceKey)?"collections:update":"dataSources/".concat(u,"/collections:update"),method:"post",params:{filterByTk:e.collection.name},data:{titleField:r}})];case 2:return i.sent(),c=e.dataSourceKey,s=e.collection,d=r,null==(y=J.dataSourceManager.getDataSource(c))||null==(p=y.collectionManager)||null==(f=p.getCollection(s.name))||null==(m=f.setOption)||m.call(f,"titleField",d),s.titleField=d,ea(r),null==(l=e.onCollectionChange)||l.call(e,e.collection.name,{titleField:r}),[4,null==(a=J.dataSourceManager.getDataSource(e.dataSourceKey))?void 0:a.reload()];case 3:return i.sent(),Z.success(W("Saved successfully")),[3,6];case 4:throw o=i.sent(),Q.error({message:(0,v.u1)(o,W("Save failed"))}),o;case 5:return eu(void 0),[7];case 6:return[2]}})})()},[J,Z,Q,e,W]),tl=(t=e.dataSourceKey,n=e.collection,C=(u=J).app.pm.get(p.vb),k=u.dataSourceManager.getDataSource(t),(null==(F=null==C||null==(w=C.getType)?void 0:w.call(C,null==k||null==(E=k.options)?void 0:E.type))?!void 0:!F.disableConfigureFields)&&(eW(n)?"main"===t:!!((b=null==(h=eJ((f={collection:n,ctx:u,dataSourceKey:t}).ctx,f.collection))||null==(g=h.configure)?void 0:g.syncFields)&&("function"==typeof b.visible?b.visible({collection:f.collection,dataSourceKey:f.dataSourceKey}):!1!==b.visible))||"db2cm"!==n.from&&"main"===t)),ta=!!(null==eg?void 0:eg.disableConfigureFields),to=eh&&!ta,ti=!(null==(R=null==(K=(j={collection:e.collection,ctx:J,dataSourceType:null==ey||null==($=ey.options)?void 0:$.type,fieldInterfaceGroups:ew}).ctx.app.pm.get(p.vb))||null==(P=K.getType)?void 0:P.call(K,j.dataSourceType))?void 0:R.disableConfigureFields)&&!(null==R?void 0:R.disableAddFields)&&"sql"!==j.collection.template&&j.fieldInterfaceGroups.length>0,tu=(0,o.useMemo)(function(){return[{title:W("Field display name"),dataIndex:["uiSchema","title"],width:240,render:function(e,t){return(0,s.hd)(eL(t),W)}},{title:W("Field name"),dataIndex:"name"},{title:W("Field type"),dataIndex:"type",render:function(e){return i().createElement(a.Tag,null,e)}},{title:W("Field interface"),dataIndex:"interface",width:180,render:function(e){return i().createElement(a.Tag,null,(0,s.hd)(eG(eC[e],e),W))}},{title:W("Title field"),dataIndex:"titleField",width:120,render:function(e,t){return(0,m.isTitleField)(J.dataSourceManager,t)?i().createElement(a.Tooltip,{title:W("Default title for each record"),placement:"right"},i().createElement(a.Switch,{"aria-label":"switch-title-field-".concat(t.name),size:"small",disabled:ta,loading:t.name===ei,checked:t.name===(el||"id"),onChange:function(e){return tr(t,e)}})):null}},{title:W("Description"),dataIndex:"description",ellipsis:!0},{title:W("Actions"),width:160,render:function(t,n){var r=eZ(n,e.collection.name,eQ);return i().createElement(a.Space,null,ta?null:i().createElement(a.Typography.Link,{disabled:r,onClick:function(){return e9(n)}},W("Override")),i().createElement(a.Typography.Link,{onClick:function(){return e7(n,n.__parentTitle)}},W("View")))}}]},[ta,J.dataSourceManager,eQ,eC,tr,e9,e7,e.collection.name,W,el,ei]),tc=(0,o.useMemo)(function(){return[{dataIndex:"title",render:function(e,t){return i().createElement("strong",null,W("Inherited fields")," - ",(0,s.hd)(t.title||t.collectionName,W))}}]},[W]),ts=(0,o.useCallback)(function(){return eT(function(){var t,n;return eq(this,function(r){switch(r.label){case 0:if(e4)return e5(),[2];if(eW(e.collection))return e8(),[2];ep(!0),r.label=1;case 1:return r.trys.push([1,4,5,6]),[4,J.api.resource("mainDataSource").syncFields({values:{collections:[e.collection.name]}})];case 2:return r.sent(),ev.refresh(),[4,null==(t=J.dataSourceManager.getDataSource("main"))?void 0:t.reload()];case 3:return r.sent(),Z.success(W("Sync successfully")),[3,6];case 4:throw n=r.sent(),Q.error({message:(0,v.u1)(n,W("Sync failed"))}),n;case 5:return ep(!1),[7];case 6:return[2]}})})()},[J.api,J.dataSourceManager,Z,Q,e5,e8,e.collection,ev,e4,W]);(0,o.useEffect)(function(){to||en([])},[to]);var td=(0,o.useMemo)(function(){var t=[{title:W("Field display name"),width:240,render:function(e){return ta?(0,s.hd)(eL(e),W):i().createElement(e_,{loading:es===e.name,record:e,onSave:tn})}},{title:W("Field name"),dataIndex:"name"},{title:W("Field type"),dataIndex:"type",render:function(e){return i().createElement(a.Tag,null,e)}},{title:W("Field interface"),dataIndex:"interface",width:180,render:function(t,n){var r,l,o,u,c,d,m=t?eC[t]:void 0,f=eE.map(function(e){return ej(eD({},e),{children:e.children.filter(function(e){var t,r;return e.name===n.interface||(null==(t=e.availableTypes)?void 0:t.includes(n.type))||(null==(r=e.default)?void 0:r.type)===n.type})})}).filter(function(e){return"sort"===n.type?"advanced"===e.key&&e.children.length:e.children.length});if(ta||t&&!m||("boolean"==typeof(d=null==(o=(r={collection:e.collection,currentFieldInterface:m,dataSourceType:eg,presetFieldInterfaces:eI}).dataSourceType)||null==(l=o.isFieldInterfaceReadOnly)?void 0:l.call(o,{collection:r.collection,field:n,fieldInterface:r.currentFieldInterface}))?d:!!(n.source||(null==(u=r.currentFieldInterface)?void 0:u.isAssociation)||(null==(c=r.currentFieldInterface)?void 0:c.group)==="systemInfo"||r.presetFieldInterfaces.has(n.interface)))||!f.length)return i().createElement(a.Tag,null,(0,s.hd)(eG(m,t),W)||t);var p=f.map(function(e){return{label:(0,s.hd)(e.label,W),options:e.children.map(function(e){return{value:e.name,label:(0,s.hd)(eG(e),W)}})}}).filter(function(e){return e.options.length});return i().createElement(a.Select,{allowClear:!0,value:t||void 0,style:{width:"100%"},popupMatchSelectWidth:!1,options:p,onChange:function(e){return tt(n,e)}})}},{title:W("Title field"),dataIndex:"titleField",width:120,render:function(e,t){return(0,m.isTitleField)(J.dataSourceManager,t)?i().createElement(a.Tooltip,{title:W("Default title for each record"),placement:"right"},i().createElement(a.Switch,{"aria-label":"switch-title-field-".concat(t.name),size:"small",disabled:ta,loading:t.name===ei,checked:t.name===(el||"id"),onChange:function(e){return tr(t,e)}})):null}},{title:W("Description"),dataIndex:"description",ellipsis:!0}];return ta||t.push({title:W("Actions"),width:160,render:function(e,t){return i().createElement(a.Space,null,i().createElement("a",{onClick:function(){return e0("edit",t)}},W("Edit")),to?i().createElement(a.Typography.Link,{disabled:eX(t,eN),onClick:function(){return te(t.name)}},W("Delete")):null)}}),t},[eE,ta,to,eN,J.dataSourceManager,eg,eC,te,tn,tt,tr,e0,eI,e.collection,W,es,el,ei]);return i().createElement(i().Fragment,null,eA?i().createElement(a.Alert,{style:{marginBottom:16},type:"warning",message:i().createElement(eF,{collection:e.collection,dataSourceKey:e.dataSourceKey,fields:eO,onSaved:function(t){var n;Object.assign(e.collection,t),null==(n=e.onCollectionChange)||n.call(e,e.collection.name,t),ev.refresh()}})}):null,i().createElement("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginBottom:16}},i().createElement(a.Space,null,to?i().createElement(a.Button,{icon:i().createElement(d.DeleteOutlined,null),disabled:!et.length,onClick:function(){return te(et)}},W("Delete")):null,tl?i().createElement(a.Button,{icon:i().createElement(d.SyncOutlined,null),loading:ef,onClick:ts},W("Sync from database")):null,ti?i().createElement(a.Dropdown,{menu:e2,placement:"bottomRight",trigger:["hover"]},i().createElement(a.Button,{type:"primary",icon:i().createElement(d.PlusOutlined,null)},W("Add field")," ",i().createElement(d.DownOutlined,null))):null)),i().createElement(m.Table,{rowKey:"name",loading:ev.loading,dataSource:ev.data||[],columns:td,pagination:!1,rowSelection:to?{selectedRowKeys:et,onChange:en,getCheckboxProps:function(e){return{disabled:eX(e,eN)}}}:void 0}),i().createElement(ex.T,{dataSource:e6}),e3.some(function(e){return e.fields.length})?i().createElement(a.Table,{style:{marginTop:16},rowKey:"key",columns:tc,dataSource:e3.filter(function(e){return e.fields.length}),pagination:!1,showHeader:!1,expandable:{defaultExpandAllRows:!0,defaultExpandedRowKeys:e3.map(function(e){return e.key}),expandedRowRender:function(e){return i().createElement(a.Table,{rowKey:"name",columns:tu,dataSource:e.fields.map(function(t){return ej(eD({},t),{__parentTitle:e.title})}),pagination:!1,showHeader:!1})}}}):null)}function e4(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 e3(e,t,n,r,l,a,o){try{var i=e[a](o),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,l)}function e6(e){return function(){var t=this,n=arguments;return new Promise(function(r,l){var a=e.apply(t,n);function o(e){e3(a,r,l,o,i,"next",e)}function i(e){e3(a,r,l,o,i,"throw",e)}o(void 0)})}}function e5(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 e8(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 e7(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 a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(n=l.next()).done)&&(a.push(n.value),!t||a.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw r}}return a}}(e,t)||te(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 e9(e){return function(e){if(Array.isArray(e))return e4(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||te(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 te(e,t){if(e){if("string"==typeof e)return e4(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 e4(e,t)}}function tt(e,t){var n,r,l,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(n)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(l=2&c[0]?r.return:c[0]?r.throw||((l=r.return)&&l.call(r),0):r.next)&&!(l=l.call(r,c[1])).done)return l;switch(r=0,l&&(c=[2&c[0],l.value]),c[0]){case 0:case 1:l=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!l||c[1]>l[0]&&c[1]<l[3])){a.label=c[1];break}if(6===c[0]&&a.label<l[1]){a.label=l[1],l=c;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(c);break}l[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=l=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var tn=["default","red","orange","yellow","green","cyan","blue","purple"],tr={default:"Default",red:"Red",orange:"Orange",yellow:"Yellow",green:"Green",cyan:"Cyan",blue:"Blue",purple:"Purple"};function tl(e){return[{value:"$includes",label:e("contains")},{value:"$notIncludes",label:e("does not contain")},{value:"$eq",label:e("is")},{value:"$ne",label:e("is not")}]}var ta=function(e){var t=e.value,n=e.onChange;return i().createElement(a.Input,{style:{minWidth:180},value:null!=t?t:"",onChange:function(e){return n(e.target.value)}})},to=function(e){var t=e.value,n=e.onChange,l=(0,c.kj)(),o=(0,r.useFlowContext)().app.pm.get(p.vb).getCollectionTemplates();return i().createElement(a.Select,{style:{minWidth:220},value:t,options:o.map(function(e){return{value:e.name,label:(0,s.hd)(e.title,l)}}),onChange:function(e){return n(e)},allowClear:!0})};function ti(e,t,n){return(null==e?void 0:e.records)?e8(e5({},e),{records:e.records.map(function(e){return e.name===t?e5({},e,n):e})}):e}function tu(e){var t,n=null==e||null==(t=e.data)?void 0:t.data;return Array.isArray(n)?n:Array.isArray(null==n?void 0:n.data)?n.data:[]}function tc(){return{hidden:{$isFalsy:!0}}}var ts=(0,r.observer)(function(e){var t,n,r,l=e.value,u=(0,c.kj)(),s=(t=(0,c.kj)(),(0,o.useMemo)(function(){return[{name:"title",title:t("Collection display name"),operators:tl(t),RenderValue:ta},{name:"name",title:t("Collection name"),operators:tl(t),RenderValue:ta},{name:"template",title:t("Collection template"),operators:[{value:"$eq",label:t("is")},{value:"$ne",label:t("is not")}],RenderValue:to},{name:"description",title:t("Description"),operators:tl(t),RenderValue:ta}]},[t])),d=s.find(function(e){return e.name===l.path}),m=null!=(n=null==d?void 0:d.operators)?n:[],f=null!=(r=null==d?void 0:d.RenderValue)?r:ta,p=(0,o.useMemo)(function(){return s.map(function(e){return{value:e.name,label:e.title}})},[s]);return i().createElement(a.Space,{style:{flex:1},wrap:!0},i().createElement(a.Select,{style:{minWidth:180},placeholder:u("Select field"),value:l.path||void 0,options:p,onChange:function(e){var t,n,r=s.find(function(t){return t.name===e});l.path=e,l.operator=null!=(t=null==r||null==(n=r.operators[0])?void 0:n.value)?t:"",l.value=void 0}}),i().createElement(a.Select,{style:{minWidth:140},placeholder:u("Comparison"),value:l.operator||void 0,options:m,disabled:!l.path,onChange:function(e){l.operator=e,l.value=void 0}}),i().createElement(f,{value:l.value,onChange:function(e){return l.value=e}}))},{displayName:"CollectionFilterItem"}),td=(0,r.observer)(function(e){var t=e.value,n=e.onSubmit,r=e.onReset,l=(0,c.kj)(),u=e7((0,o.useState)(!1),2),s=u[0],f=u[1],p=(0,o.useMemo)(function(){return{model:{translate:function(e){return l(e)},dispatchEvent:function(e){"submit"===e&&(n(),f(!1)),"reset"===e&&r()}}}},[r,n,l]),v=t.items.length,y=v?l("{{count}} filter items").replace("{{count}}",String(v)):l("Filter");return i().createElement(a.Popover,{open:s,onOpenChange:f,trigger:"click",placement:"bottomLeft",content:i().createElement("div",{style:{minWidth:560}},i().createElement(m.FilterContent,{value:t,ctx:p,FilterItem:ts}))},i().createElement(a.Button,{icon:i().createElement(d.FilterOutlined,null),type:v?"primary":"default"},y))},{displayName:"CollectionFilterPopover"});function tm(e){return e.name||e.value.name}function tf(e){var t,n=null==(t=e.collection)?void 0:t.options;return"function"==typeof n?n():n||("function"==typeof e.defaultValues?e.defaultValues():e.defaultValues||{})}function tp(e,t){var n;return!!(null==e||null==(n=e.capabilities)?void 0:n[t])}function tv(e){var t;return(null==e||null==(t=e.capabilities)?void 0:t.inherits)!==!1}var ty=function(e){var t=e.template,n=(0,c.kj)(),r=a.theme.useToken().token,l=(0,o.useMemo)(function(){return{container:{backgroundColor:r.colorFillAlter,marginBottom:r.marginLG,padding:r.paddingSM+r.paddingXXS},title:{color:r.colorText},description:{color:r.colorTextDescription,marginTop:r.marginXS},tag:{background:"none"}}},[r.colorFillAlter,r.colorText,r.colorTextDescription,r.marginLG,r.marginXS,r.paddingSM,r.paddingXXS]);return t?i().createElement("div",{style:l.container},i().createElement("div",{style:l.title},n("Collection template"),": ",i().createElement(a.Tag,{style:l.tag},(0,s.hd)(t.title,n))),t.description?i().createElement("div",{style:l.description},(0,s.hd)(t.description,n)):null):null},tg=function(e){var t,n=e.form,r=e.mode,l=e.template,o=(0,c.kj)(),u=(null==(t=l.configure)?void 0:t.items)||[];return u.length?i().createElement(i().Fragment,null,u.map(function(e,t){var u="function"==typeof e.hidden?e.hidden({mode:r,template:l,form:n}):!!e.hidden,c=e.Component;if(u||!c){if(u||!e.name)return null;var d=(0,s.hd)(e.label||e.name,o),m=e.required?[{required:!0}]:void 0,f=e.componentProps||{},p=i().createElement(a.Input,f);return("Input.TextArea"===e.component&&(p=i().createElement(a.Input.TextArea,e5({autoSize:{minRows:3,maxRows:8}},f))),"Select"===e.component&&(p=i().createElement(a.Select,e5({options:(e.options||[]).map(function(e){return{value:e.value,label:(0,s.hd)(e.label,o)}})},f))),"Checkbox"===e.component)?i().createElement(a.Form.Item,{key:e.name||t,name:e.name,valuePropName:"checked",rules:m},i().createElement(a.Checkbox,f,d)):i().createElement(a.Form.Item,{key:e.name||t,name:e.name,label:d,rules:m},p)}return c?i().createElement(c,{key:e.name||t,mode:r,template:l,form:n,item:e}):null})):null},th=function(e){var t=e.form,n=(0,c.kj)(),r=a.Form.useWatch("fields",t),l=(0,o.useMemo)(function(){return(Array.isArray(r)?r:[]).filter(function(e){return null==e?void 0:e.name}).map(function(e){var t;return{value:e.name,label:(0,s.hd)((null==(t=e.uiSchema)?void 0:t.title)||e.title||e.name,n)}})},[r,n]);return i().createElement(a.Form.Item,{name:"filterTargetKey",label:n("Record unique key"),extra:n("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.")},i().createElement(a.Select,{mode:"multiple",options:l,allowClear:!0}))};function tb(e){var t,n=e.activeCategoryKey,u=e.categories,d=e.onSubmitted,f=e.template,y=(0,c.kj)(),g=(0,r.useFlowContext)(),h=a.App.useApp().notification,b=g.app.pm.get(p.vb),S=e7(a.Form.useForm(),1)[0],E=(0,o.useMemo)(function(){return b.getCollectionPresetFields()},[b]),w=e7((0,o.useState)(!1),2),C=w[0],k=w[1],F="sql"===f.name,I="view"===f.name,x=e7((0,o.useState)(function(){return F||I?[]:E.filter(function(e){return!1!==e.defaultSelected}).map(function(e){return tm(e)})}),2),O=x[0],A=x[1],T=(0,l.useRequest)(function(){return e6(function(){return tt(this,function(e){switch(e.label){case 0:return[4,g.api.request({url:"dataSources/main/collections:list",params:{paginate:!1,sort:["sort"],filter:JSON.stringify(tc())}})];case 1:return[2,tu(e.sent())]}})})()}),M=(0,o.useMemo)(function(){return(T.data||[]).filter(function(e){return e.name}).map(function(e){return{value:e.name,label:(0,s.hd)(e.title||e.name,y)}})},[T.data,y]),D=(0,o.useMemo)(function(){return e8(e5({},tf(f)),{template:f.name,name:(0,r.randomId)("t_"),category:"all"===n?[]:[n]})},[n,f]),j=(0,o.useMemo)(function(){var e;return new Set((null==(e=f.presetFields)?void 0:e.disabledIncludes)||f.presetFieldsDisabledIncludes||[])},[f]),P=(0,o.useMemo)(function(){var e;return e=g.dataSourceManager.collectionFieldInterfaceManager,E.map(function(t){var n,r,l,a=t.value.interface?null==e||null==(n=e.getFieldInterface)?void 0:n.call(e,t.value.interface):void 0,o=(null==(r=t.value.uiSchema)?void 0:r.title)||(null==a?void 0:a.title),i=t.field||(null==(l=t.value.uiSchema)?void 0:l.title)||t.value.name,u=t.interfaceLabel||(null==a?void 0:a.title)||t.value.interface||t.value.type;return{name:tm(t),field:(0,s.sZ)(i,o),interfaceLabel:(0,s.sZ)(u,null==a?void 0:a.title),description:t.description}})},[E,g.dataSourceManager.collectionFieldInterfaceManager]),K=(0,o.useMemo)(function(){return[{title:y("Field"),dataIndex:"field",render:function(e){return(0,s.hd)(e,y)}},{title:y("Interface"),dataIndex:"interfaceLabel",render:function(e){return i().createElement(a.Tag,null,(0,s.hd)(e,y))}},{title:y("Description"),dataIndex:"description",render:function(e){return(0,s.hd)(e,y)}}]},[y]),R=(null==(t=f.configure)?void 0:t.Form)||f.ConfigureForm,N=tv(f),q=i().createElement(a.Form.Item,{name:"category",label:y("Categories")},i().createElement(a.Select,{mode:"multiple",options:u.map(function(e){return{value:String(e.id),label:(0,s.hd)(e.name||e.id,y)}}),allowClear:!0})),V=i().createElement(a.Form.Item,{name:"description",label:y("Description")},i().createElement(a.Input.TextArea,{autoSize:{minRows:3,maxRows:8}})),B=i().createElement(i().Fragment,null,R?i().createElement(R,{mode:"create",template:f,form:S}):null,i().createElement(tg,{mode:"create",template:f,form:S})),z=(0,o.useCallback)(function(){return e6(function(){var e,t,n;return tt(this,function(r){switch(r.label){case 0:return r.trys.push([0,6,,7]),[4,S.validateFields()];case 1:e=function(e){var t,n,r,l,a,o,i,u=e.fieldInterfaceManager,c=e.formValues,s=e.presetFields,d=e.selectedPresetFields,f=e.template,p=tf(f),v=Array.isArray(p.fields)?p.fields:[],y=(0,m.normalizeCollectionTemplateFields)(Array.isArray(c.fields)?c.fields:[],u,{collectionInfo:e8(e5({},p,c),{template:f.name})}),g=(0,m.normalizeCollectionTemplateFields)(e9(v).concat(e9("function"==typeof(n=null==(t=f.collection)?void 0:t.fields)?n():n||[])),u,{collectionInfo:e8(e5({},p,c),{template:f.name})}),h=e8(e5({autoGenId:!1,view:!1},p,c),{template:f.name,logging:!0,category:null==(r=c.category)?void 0:r.map(function(e){if("string"!=typeof e)return e;var t=Number(e);return Number.isSafeInteger(t)&&String(t)===e?t:e}),fields:e9(g).concat(e9((l=new Set(d.map(String)),s.filter(function(e){return l.has(tm(e))}).map(function(e){return structuredClone(e.value)}))),e9(y))}),b=null==(o=f.configure)||null==(a=o.transformSubmitValues)?void 0:a.call(o,h);return b||(null==(i=f.beforeSubmit)||i.call(f,h),h)}({template:f,formValues:r.sent(),selectedPresetFields:O,presetFields:E,fieldInterfaceManager:g.dataSourceManager.collectionFieldInterfaceManager}),k(!0),r.label=2;case 2:return r.trys.push([2,,4,5]),[4,g.api.resource("collections").create({values:e})];case 3:return r.sent(),d(),null==(t=g.dataSourceManager.getDataSource("main"))||t.reload(),[3,5];case 4:return k(!1),[7];case 5:return[3,7];case 6:throw n=r.sent(),(0,v.GN)(n)||h.error({message:(0,v.u1)(n,y("Submit failed"))}),n;case 7:return[2]}})})()},[E,g.api,g.dataSourceManager,S,h,d,O,y,f]);return i().createElement(m.DrawerFormLayout,{title:y("Create collection"),submitting:C,submitText:y("Submit"),cancelText:y("Cancel"),onSubmit:z},i().createElement(a.Form,{form:S,layout:"vertical",initialValues:D},i().createElement(ty,{template:f}),i().createElement(a.Form.Item,{name:"template",hidden:!0},i().createElement(a.Input,null)),i().createElement(a.Form.Item,{name:"title",label:y("Collection display name"),rules:[{required:!0}]},i().createElement(a.Input,null)),i().createElement(a.Form.Item,{name:"name",label:y("Collection name"),rules:[{required:!0},{pattern:/^[A-Za-z][A-Za-z0-9_]*$/,message:y("Support letters, numbers and underscores, must start with a letter.")}],extra:y("Randomly generated and can be modified. Support letters, numbers and underscores, must start with a letter.")},i().createElement(a.Input,null)),B,F?i().createElement(i().Fragment,null,tp(f,"recordUniqueKey")?i().createElement(th,{form:S}):null,q,V):I?i().createElement(i().Fragment,null,tp(f,"recordUniqueKey")?i().createElement(th,{form:S}):null,q,V,i().createElement(a.Form.Item,{name:"simplePaginate",valuePropName:"checked",extra:y("Skip getting the total number of table records during paging to speed up loading. It is recommended to enable this option for data tables with a large amount of data")},i().createElement(a.Checkbox,null,y("Use simple pagination mode")))):i().createElement(i().Fragment,null,N?i().createElement(a.Form.Item,{name:"inherits",label:y("Inherits")},i().createElement(a.Select,{mode:"multiple",options:M,loading:T.loading,allowClear:!0})):null,q,V,i().createElement(a.Form.Item,{name:"simplePaginate",valuePropName:"checked",extra:y("Skip getting the total number of table records during paging to speed up loading. It is recommended to enable this option for data tables with a large amount of data")},i().createElement(a.Checkbox,null,y("Use simple pagination mode"))),tp(f,"recordUniqueKey")?i().createElement(th,{form:S}):null,i().createElement(a.Form.Item,{label:y("Preset fields")},i().createElement(m.Table,{size:"small",rowKey:"name",bordered:!0,pagination:!1,dataSource:P,columns:K,rowSelection:{type:"checkbox",selectedRowKeys:O,getCheckboxProps:function(e){var t,n;return{disabled:(null!=(t=null==(n=f.presetFields)?void 0:n.disabled)?t:f.presetFieldsDisabled)||j.has(e.name)}},onChange:function(e){return A(e)}}})))))}function tS(e){var t,n=e.categories,u=e.collection,d=e.dataSourceKey,f=e.onSubmitted,g=(0,c.kj)(),h=(0,r.useFlowContext)(),b=a.App.useApp().notification,S=h.app.pm.get(p.vb),E=e7(a.Form.useForm(),1)[0],w=e7((0,o.useState)(!1),2),C=w[0],k=w[1],F="main"===d,I=(0,o.useMemo)(function(){return S.getCollectionTemplate(u.template||"general")},[u.template,S]),x=(0,l.useRequest)(function(){return e6(function(){return tt(this,function(e){switch(e.label){case 0:return[4,h.api.request({url:"dataSources/".concat(d,"/collections:list"),params:{paginate:!1,sort:["sort"],filter:JSON.stringify(tc())}})];case 1:return[2,tu(e.sent())]}})})()}),O=(0,l.useRequest)(function(){return e6(function(){return tt(this,function(e){switch(e.label){case 0:return[4,h.api.request({url:y(d,u.name,"list"),params:{}})];case 1:return[2,tu(e.sent())]}})})()}),A=(0,o.useMemo)(function(){return(x.data||[]).filter(function(e){return e.name&&e.name!==u.name&&"view"!==e.template&&"file"!==e.template}).map(function(e){return{value:e.name,label:(0,s.hd)(e.title||e.name,g)}})},[u.name,x.data,g]),T=(0,o.useMemo)(function(){var e=Array.isArray(u.fields)&&u.fields.length?u.fields:O.data||[],t=ek(u,u.fields)||[],n=e.filter(function(e){return!!e.name}).map(function(e){var t;return{value:e.name,label:(0,s.hd)((null==(t=e.uiSchema)?void 0:t.title)||e.name,g)}});return t.forEach(function(e){n.some(function(t){return t.value===e})||n.push({value:e,label:e})}),n},[u,O.data,g]),M=(0,o.useMemo)(function(){return{title:u.title,name:u.name,inherits:Array.isArray(u.inherits)?u.inherits:u.inherits?[u.inherits]:void 0,category:Array.isArray(u.category)?u.category.map(function(e){return String(e.id)}):[],description:u.description,simplePaginate:u.simplePaginate,filterTargetKey:ek(u,u.fields),databaseView:function(e){var t=e.viewName||e.name;if(t)return e.schema?"".concat(e.schema,"@").concat(t):t}(u),schema:u.schema,viewName:u.viewName||u.name,writableView:u.writableView,sql:u.sql,sources:u.sources,fields:u.fields}},[u]),D=(0,o.useCallback)(function(){return e6(function(){var e,t,n,r,l;return tt(this,function(a){switch(a.label){case 0:return a.trys.push([0,9,,10]),[4,E.validateFields()];case 1:n=e5({},a.sent()),"sql"===u.template?(n.name=u.name,n.key=u.key):delete n.name,F||(delete n.category,delete n.inherits),n=(null==I||null==(t=I.configure)||null==(e=t.transformSubmitValues)?void 0:e.call(t,n))||n,k(!0),a.label=2;case 2:if(a.trys.push([2,,7,8]),!F)return[3,4];return[4,h.api.resource("sql"===u.template?"sqlCollection":"collections").update({filterByTk:u.name,values:n})];case 3:return a.sent(),[3,6];case 4:return[4,h.api.request({url:"dataSources/".concat(d,"/collections:update"),method:"post",params:{filterByTk:u.name},data:n})];case 5:a.sent(),a.label=6;case 6:return f(),null==(r=h.dataSourceManager.getDataSource(d))||r.reload(),[3,8];case 7:return k(!1),[7];case 8:return[3,10];case 9:throw l=a.sent(),(0,v.GN)(l)||b.error({message:(0,v.u1)(l,g("Submit failed"))}),l;case 10:return[2]}})})()},[u.key,u.name,u.template,h.api,h.dataSourceManager,d,E,F,b,f,g,I]);if(!F)return i().createElement(m.DrawerFormLayout,{title:g("Edit collection"),submitting:C,submitText:g("Submit"),cancelText:g("Cancel"),onSubmit:D},i().createElement(a.Form,{form:E,layout:"vertical",initialValues:M},i().createElement(a.Form.Item,{name:"title",label:g("Collection display name"),rules:[{required:!0}]},i().createElement(a.Input,null)),i().createElement(a.Form.Item,{name:"name",label:g("Collection name"),extra:g("Randomly generated and can be modified. Support letters, numbers and underscores, must start with a letter.")},i().createElement(a.Input,{disabled:!0})),i().createElement(a.Form.Item,{name:"description",label:g("Description")},i().createElement(a.Input.TextArea,{autoSize:{minRows:3,maxRows:8}})),i().createElement(a.Form.Item,{name:"simplePaginate",valuePropName:"checked",extra:g("Skip getting the total number of table records during paging to speed up loading. It is recommended to enable this option for data tables with a large amount of data")},i().createElement(a.Checkbox,null,g("Use simple pagination mode"))),i().createElement(a.Form.Item,{name:"filterTargetKey",label:g("Record unique key"),extra:g("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.")},i().createElement(a.Select,{mode:"multiple",options:T,loading:O.loading,allowClear:!0}))));var j=(null==I||null==(t=I.configure)?void 0:t.Form)||(null==I?void 0:I.ConfigureForm),P=tv(I),K=I?i().createElement(i().Fragment,null,j?i().createElement(j,{mode:"edit",template:I,form:E}):null,i().createElement(tg,{mode:"edit",template:I,form:E})):null;return i().createElement(m.DrawerFormLayout,{title:g("Edit collection"),submitting:C,submitText:g("Submit"),cancelText:g("Cancel"),onSubmit:D},i().createElement(a.Form,{form:E,layout:"vertical",initialValues:M},i().createElement(ty,{template:I}),i().createElement(a.Form.Item,{name:"title",label:g("Collection display name"),rules:[{required:!0}]},i().createElement(a.Input,null)),i().createElement(a.Form.Item,{name:"name",label:g("Collection name"),extra:g("Randomly generated and can be modified. Support letters, numbers and underscores, must start with a letter.")},i().createElement(a.Input,{disabled:!0})),K,F?i().createElement(i().Fragment,null,P?i().createElement(a.Form.Item,{name:"inherits",label:g("Inherits")},i().createElement(a.Select,{mode:"multiple",options:A,loading:x.loading,allowClear:!0})):null,i().createElement(a.Form.Item,{name:"category",label:g("Categories")},i().createElement(a.Select,{mode:"multiple",options:n.map(function(e){return{value:String(e.id),label:(0,s.hd)(e.name||e.id,g)}}),allowClear:!0}))):null,i().createElement(a.Form.Item,{name:"description",label:g("Description")},i().createElement(a.Input.TextArea,{autoSize:{minRows:3,maxRows:8}})),i().createElement(a.Form.Item,{name:"simplePaginate",valuePropName:"checked",extra:g("Skip getting the total number of table records during paging to speed up loading. It is recommended to enable this option for data tables with a large amount of data")},i().createElement(a.Checkbox,null,g("Use simple pagination mode"))),tp(I,"recordUniqueKey")?i().createElement(a.Form.Item,{name:"filterTargetKey",label:g("Record unique key"),extra:g("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.")},i().createElement(a.Select,{mode:"multiple",options:T,loading:O.loading,allowClear:!0})):null))}var tE=function(e){var t,n,u,y=(0,c.kj)(),g=(0,r.useFlowContext)(),h=a.App.useApp(),b=h.message,S=h.modal,E=h.notification,w=g.app.pm.get(p.vb),C=e7(a.Form.useForm(),1)[0],k=(0,o.useRef)((0,r.observable)({logic:"$and",items:[]})),F=e7((0,o.useState)(1),2),I=F[0],x=F[1],O=e7((0,o.useState)(m.DEFAULT_PAGE_SIZE),2),A=O[0],T=O[1],M=e7((0,o.useState)("all"),2),D=M[0],j=M[1],P=e7((0,o.useState)(!1),2),K=P[0],R=P[1],N=e7((0,o.useState)(!1),2),q=N[0],V=N[1],B=e7((0,o.useState)(),2),z=B[0],G=B[1],L=e7((0,o.useState)([]),2),_=L[0],U=L[1],$=e7((0,o.useState)(),2),W=$[0],J=$[1],X=e7((0,o.useState)(!1),2),H=X[0],Z=X[1],Y=e7((0,o.useState)(!1),2),Q=Y[0],ee=Y[1],et=e7((0,o.useState)([]),2),en=et[0],er=et[1],el=e7((0,o.useState)([]),2),ea=el[0],eo=el[1],ei=e7((0,o.useState)([]),2),eu=ei[0],ec=ei[1],es=e7((0,o.useState)(""),2),ed=es[0],em=es[1],ef=e7((0,o.useState)(!1),2),ep=ef[0],ev=ef[1],ey="main"===e.dataSourceKey,eg=g.dataSourceManager.getDataSource(e.dataSourceKey),eh=w.getType(null==eg||null==(t=eg.options)?void 0:t.type),eb=null==eh?void 0:eh.AddCollection,eS=null==eh?void 0:eh.EditCollection,eE=null==eh?void 0:eh.DeleteCollection,ew=!!(null==eh?void 0:eh.disableConfigureFields),eC=!ew,ek=!!(!ey&&!ew&&eS),eF=!!(!ey&&!ew&&(null==eh?void 0:eh.allowCollectionCreate)&&eb),ex=!!(!ey&&!ew&&(null==eh?void 0:eh.allowCollectionDeletion)&&eE),eO=(0,o.useMemo)(function(){return w.getCreatableCollectionTemplates()},[w]),eA=(0,l.useRequest)(function(){return e6(function(){return tt(this,function(e){switch(e.label){case 0:if(!ey)return[2,[]];return[4,g.api.request({url:"collectionCategories:list",params:{paginate:!1,sort:["sort"]}})];case 1:return[2,tu(e.sent())]}})})()},{refreshDeps:[ey]}),eT=(0,l.useRequest)(function(){return e6(function(){var t;return tt(this,function(n){var r,l,a,o,i,u,c,s,d;switch(n.label){case 0:return r={activeCategoryKey:D,filterPayload:W,isMainDataSource:ey},l=[tc()],r.isMainDataSource&&"all"!==r.activeCategoryKey&&l.push({"category.id":Number.isSafeInteger(o=Number(a=r.activeCategoryKey))&&String(o)===a?o:a}),r.filterPayload&&l.push(r.filterPayload),t=l.length>1?{$and:l}:l[0],[4,g.api.request({url:ey?"collections:list":"dataSources/".concat(e.dataSourceKey,"/collections:list"),params:{page:I,pageSize:A,sort:["sort"],filter:JSON.stringify(t),appends:ey?["fields","category"]:["fields"]}})];case 1:return[2,{records:s=Array.isArray(c=null==(u=null==(i=n.sent())?void 0:i.data)?void 0:u.data)?c:Array.isArray(null==c?void 0:c.data)?c.data:[],total:(d=(null==u?void 0:u.meta)||(null==c?void 0:c.meta)||{}).count||d.total||s.length}]}})})()},{refreshDeps:[D,W,ey,e.dataSourceKey,I,A]}),eM=(0,o.useMemo)(function(){return eA.data||[]},[eA.data]);(0,o.useEffect)(function(){ey&&("all"===D||eM.some(function(e){return String(e.id)===D}))||j("all")},[D,eM,ey]);var eD=(0,o.useCallback)(function(t){g.viewer.drawer({title:i().createElement("span",null,(0,s.hd)(t.title||t.name,y)," - ",y("Configure fields")),width:"80%",closable:!0,content:function(){return i().createElement(e2,{dataSourceKey:e.dataSourceKey,collection:t,onCollectionChange:function(e,n){Object.assign(t,n),eT.mutate(ti(eT.data,e,n)),eT.refresh()}})}})},[g.viewer,e.dataSourceKey,eT,y]),ej=(0,o.useCallback)(function(e){j(e),x(1)},[]),eP=(0,o.useCallback)(function(){G(void 0),C.setFieldsValue({color:"default"}),R(!0)},[C]),eK=(0,o.useCallback)(function(e){G(e),C.setFieldsValue({name:e.name,color:e.color||"default"}),R(!0)},[C]),eR=(0,o.useCallback)(function(){return e6(function(){var e,t;return tt(this,function(n){switch(n.label){case 0:return n.trys.push([0,9,,10]),[4,C.validateFields()];case 1:e=n.sent(),V(!0),n.label=2;case 2:if(n.trys.push([2,,7,8]),!z)return[3,4];return[4,g.api.resource("collectionCategories").update({filter:{id:z.id},values:e})];case 3:return n.sent(),[3,6];case 4:return[4,g.api.resource("collectionCategories").create({values:e})];case 5:n.sent(),n.label=6;case 6:return R(!1),G(void 0),C.resetFields(),eA.refresh(),eT.refresh(),[3,8];case 7:return V(!1),[7];case 8:return[3,10];case 9:throw t=n.sent(),(0,v.GN)(t)||E.error({message:(0,v.u1)(t,y("Submit failed"))}),t;case 10:return[2]}})})()},[C,eA,g.api,z,E,eT,y]),eN=(0,o.useCallback)(function(e){S.confirm({title:y("Delete category"),content:y("Are you sure you want to delete it?"),onOk:function(){return e6(function(){var t;return tt(this,function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,g.api.resource("collectionCategories").destroy({filter:{id:e.id}})];case 1:return n.sent(),String(e.id)===D&&j("all"),eA.refresh(),eT.refresh(),[3,3];case 2:throw t=n.sent(),E.error({message:(0,v.u1)(t,y("Delete failed"))}),t;case 3:return[2]}})})()}})},[D,eA,g.api,S,E,eT,y]),eq=(0,o.useCallback)(function(e,t){return e6(function(){var n;return tt(this,function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),[4,g.api.resource("collectionCategories").move({sourceId:e.id,targetId:t.id})];case 1:return r.sent(),eA.refresh(),eT.refresh(),[3,3];case 2:throw n=r.sent(),E.error({message:(0,v.u1)(n,y("Save failed"))}),n;case 3:return[2]}})})()},[eA,g.api,E,eT,y]),eV=(0,o.useCallback)(function(e){g.viewer.drawer({width:"50%",closable:!0,content:function(){return i().createElement(tb,{template:e,categories:eM,activeCategoryKey:D,onSubmitted:function(){U([]),eT.refresh()}})}})},[D,eM,g.viewer,eT]),eB=(0,o.useCallback)(function(t){g.viewer.drawer({width:"50%",closable:!0,content:function(){return i().createElement(tS,{dataSourceKey:e.dataSourceKey,collection:t,categories:eM,onSubmitted:function(){U([]),eT.refresh()}})}})},[eM,g.viewer,e.dataSourceKey,eT]),ez=(0,o.useCallback)(function(e){var t=Array.isArray(e)?e:[e];if(t.length){var n=!1;S.confirm({closable:!0,icon:i().createElement(d.ExclamationCircleFilled,{style:{color:"#faad14"}}),okText:y("Ok"),cancelText:y("Cancel"),title:y("Delete collection"),width:520,content:i().createElement("div",null,i().createElement("div",null,y("Are you sure you want to delete it?")),i().createElement(a.Checkbox,{style:{marginTop:8},onChange:function(e){return n=e.target.checked}},y("Automatically drop objects that depend on the collection (such as views), and in turn all objects that depend on those objects"))),onOk:function(){return e6(function(){var e,r;return tt(this,function(l){switch(l.label){case 0:return l.trys.push([0,2,,3]),[4,g.api.resource("collections").destroy({filterByTk:t,cascade:n})];case 1:return l.sent(),U([]),eT.refresh(),null==(e=g.dataSourceManager.getDataSource("main"))||e.reload(),[3,3];case 2:throw r=l.sent(),E.error({message:(0,v.u1)(r,y("Delete failed"))}),r;case 3:return[2]}})})()}})}},[g.api,g.dataSourceManager,S,E,eT,y]),eG=(0,o.useCallback)(function(e,t){return e6(function(){var n,r;return tt(this,function(l){switch(l.label){case 0:if(!ey)return[2];l.label=1;case 1:return l.trys.push([1,3,,4]),[4,g.api.resource("collections").move({sourceId:e.name,targetId:t.name})];case 2:return l.sent(),b.success(y("Saved successfully")),eT.refresh(),null==(n=g.dataSourceManager.getDataSource("main"))||n.reload(),[3,4];case 3:throw r=l.sent(),E.error({message:(0,v.u1)(r,y("Save failed"))}),r;case 4:return[2]}})})()},[g.api,g.dataSourceManager,ey,b,E,eT,y]),eL=(0,o.useCallback)(function(){return e6(function(){var t,n,r,l,a,o,i,u;return tt(this,function(c){switch(c.label){case 0:if(ey)return eT.refresh(),[2];ev(!0),c.label=1;case 1:return c.trys.push([1,4,5,6]),a=(null==eg?void 0:eg.status)||"loaded",[4,g.api.request({url:"dataSources:refresh?filterByTk=".concat(encodeURIComponent(e.dataSourceKey),"&clientStatus=").concat(encodeURIComponent(a)),method:"post"})];case 2:return"reloading"===(i=(null==(o=c.sent())||null==(n=o.data)||null==(t=n.data)?void 0:t.status)||(null==o||null==(r=o.data)?void 0:r.status))?b.warning(y("Data source synchronization in progress")):"loaded"===i&&(b.success(y("Data source synchronization successful")),eT.refresh()),[4,null==(l=g.dataSourceManager.getDataSource(e.dataSourceKey))?void 0:l.reload()];case 3:return c.sent(),[3,6];case 4:return u=c.sent(),E.error({message:(0,v.u1)(u,y("Data source synchronization failed"))}),[3,6];case 5:return ev(!1),[7];case 6:return[2]}})})()},[g.api,g.dataSourceManager,null==eg?void 0:eg.status,ey,b,E,e.dataSourceKey,eT,y]),e_=(0,o.useCallback)(function(){S.confirm({title:y("Sync field changes from database"),content:y("Field synchronization confirmation prompt"),onOk:function(){return e6(function(){var e,t;return tt(this,function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,g.api.resource("mainDataSource").syncFields()];case 1:return n.sent(),eT.refresh(),null==(e=g.dataSourceManager.getDataSource("main"))||e.reload(),b.success(y("Sync successfully")),[3,3];case 2:throw t=n.sent(),E.error({message:(0,v.u1)(t,y("Sync failed"))}),t;case 3:return[2]}})})()}})},[g.api,g.dataSourceManager,b,S,E,eT,y]),eU=(0,o.useCallback)(function(){Z(!1),eo([]),ec([]),em("")},[]),e$=(0,o.useCallback)(function(){return e6(function(){var e,t,n,r;return tt(this,function(l){switch(l.label){case 0:Z(!0),ee(!0),l.label=1;case 1:return l.trys.push([1,3,4,5]),[4,g.api.resource("dataSources").readTables({values:{dataSourceKey:"main"}})];case 2:return er((Array.isArray(n=null==(t=l.sent())||null==(e=t.data)?void 0:e.data)?n:[]).map(function(e){return{key:e.name,name:e.name,title:e.title||e.name,description:e.description}})),eo([]),ec([]),[3,5];case 3:return r=l.sent(),E.error({message:(0,v.u1)(r,y("Failed to load tables"))}),[3,5];case 4:return ee(!1),[7];case 5:return[2]}})})()},[g.api,E,y]),eW=(0,o.useCallback)(function(){ea.length?S.confirm({title:y("Confirm load tables"),content:y("Are you sure you want to load {{count}} table(s)?").replace("{{count}}",String(ea.length)),onOk:function(){return e6(function(){var e,t;return tt(this,function(n){switch(n.label){case 0:ee(!0),n.label=1;case 1:return n.trys.push([1,3,4,5]),[4,g.api.resource("dataSources").loadTables({values:{dataSourceKey:"main",tables:ea}})];case 2:return n.sent(),b.success(y("Tables loaded successfully")),eU(),eT.refresh(),null==(e=g.dataSourceManager.getDataSource("main"))||e.reload(),[3,5];case 3:throw t=n.sent(),E.error({message:(0,v.u1)(t,y("Failed to load tables"))}),t;case 4:return ee(!1),[7];case 5:return[2]}})})()}}):b.warning(y("Please select at least one table"))},[g.api,g.dataSourceManager,b,S,E,eT,eU,ea,y]),eJ=(0,o.useCallback)(function(){J((0,f.transformFilter)(k.current)),x(1)},[]),eX=(0,o.useCallback)(function(){k.current.logic="$and",k.current.items.splice(0,k.current.items.length),J(void 0),x(1)},[]),eH=(0,o.useMemo)(function(){if(!ed)return en;var e=ed.toLowerCase();return en.filter(function(t){var n;return t.title.toLowerCase().includes(e)||t.name.toLowerCase().includes(e)||(null==(n=t.description)?void 0:n.toLowerCase().includes(e))})},[en,ed]),eZ=(0,o.useMemo)(function(){return eM.map(function(e){return{id:e.id,label:(0,s.hd)(e.name||e.id,y),color:e.color}})},[eM,y]),eY=(0,o.useCallback)(function(e){return eM.find(function(t){return String(t.id)===String(e)})},[eM]),eQ=(0,o.useMemo)(function(){var t=[{title:y("Collection display name"),render:function(t){return i().createElement(a.Space,{size:4},i().createElement(eI,{collection:t,dataSourceKey:e.dataSourceKey,fields:t.fields,onSaved:function(e){Object.assign(t,e),eT.mutate(ti(eT.data,t.name,e)),eT.refresh()}}),i().createElement("span",null,(0,s.hd)(t.title||t.name,y)))}},{title:y("Collection name"),dataIndex:"name",ellipsis:!0},{title:y("Collection template"),dataIndex:"template",render:function(e){var t,n;return i().createElement(a.Tag,null,(t=e||"general",(n=w.getCollectionTemplate(t))?(0,s.hd)(n.title,y):t))}}];return ey&&"all"===D&&t.push({title:y("Collection category"),dataIndex:"category",render:function(e){return Array.isArray(e)&&e.length?i().createElement(a.Space,{size:[4,4],wrap:!0},e.map(function(e){return i().createElement(a.Tag,{key:e.id,color:"default"===e.color?void 0:e.color},(0,s.hd)(e.name||e.id,y))})):null}}),t.push({title:y("Description"),dataIndex:"description",ellipsis:!0},{title:y("Actions"),width:ey||eC||ek||ex?260:140,render:function(t,n){return i().createElement(a.Space,{size:16},i().createElement("a",{onClick:function(){return eD(n)}},y("Configure fields")),ey?i().createElement(i().Fragment,null,i().createElement("a",{onClick:function(){return eB(n)}},y("Edit")),i().createElement("a",{onClick:function(){return ez(n.name)}},y("Delete"))):i().createElement(i().Fragment,null,ek&&eS?i().createElement(eS,{dataSourceKey:e.dataSourceKey,record:n,onSubmitted:function(){U([]),eT.refresh()}}):eC?i().createElement("a",{onClick:function(){return eB(n)}},y("Edit")):null,ex&&eE?i().createElement(eE,{dataSourceKey:e.dataSourceKey,record:n,onSubmitted:function(){U([]),eT.refresh()}}):null))}}),t},[eS,eE,D,ek,eC,ex,ez,ey,eB,eD,w,e.dataSourceKey,eT,y]);return i().createElement(a.Card,{title:(0,s.hd)(e.title,y),variant:"borderless"},ey?i().createElement(m.SortableCategoryTabs,{activeKey:D,onChange:ej,allTab:{key:"all",label:y("All collections")},categories:eZ,onAdd:eP,onEdit:function(e){var t=eY(e);t&&eK(t)},onDelete:function(e){var t=eY(e);t&&eN(t)},onSort:function(e,t){var n=eY(e),r=eY(t);if(n&&r)return eq(n,r)},menuLabels:{edit:y("Edit category"),delete:y("Delete category")}}):null,i().createElement(a.Flex,{justify:"space-between",align:"center",style:{marginBottom:16}},i().createElement(td,{value:k.current,onSubmit:eJ,onReset:eX}),i().createElement(a.Space,null,i().createElement(a.Button,{icon:i().createElement(d.ReloadOutlined,null),loading:ep,onClick:eL},y("Refresh")),ey?i().createElement(i().Fragment,null,i().createElement(a.Button,{icon:i().createElement(d.DeleteOutlined,null),disabled:!_.length,onClick:function(){return ez(_)}},y("Delete")),i().createElement(a.Dropdown,{placement:"bottomLeft",menu:{items:[{key:"load-tables",icon:i().createElement(d.ImportOutlined,null),label:y("Load tables from database")},{key:"sync-fields",icon:i().createElement(d.ReloadOutlined,null),label:y("Sync field changes from database")}],onClick:function(e){var t=e.key;"load-tables"===t&&e$(),"sync-fields"===t&&e_()}}},i().createElement(a.Button,{icon:i().createElement(d.SyncOutlined,null)},y("Sync from database")," ",i().createElement(d.DownOutlined,null))),i().createElement(a.Dropdown,{menu:{items:eO.flatMap(function(e){var t={key:e.name,label:(0,s.hd)(e.title,y)};return e.divider?[{type:"divider"},t]:[t]}),onClick:function(e){var t=e.key,n=eO.find(function(e){return e.name===t});n&&eV(n)}}},i().createElement(a.Button,{type:"primary",icon:i().createElement(d.PlusOutlined,null)},y("Create collection")," ",i().createElement(d.DownOutlined,null)))):i().createElement(i().Fragment,null,ex&&eE?i().createElement(eE,{dataSourceKey:e.dataSourceKey,selectedRowKeys:_,isBulk:!0,onSubmitted:function(){U([]),eT.refresh()}},y("Delete")):null,eF&&eb?i().createElement(eb,{dataSourceKey:e.dataSourceKey,onSubmitted:function(){U([]),eT.refresh()}}):null))),i().createElement(m.Table,{rowKey:"name",isDraggable:ey,onSortEnd:ey?eG:void 0,loading:eT.loading,dataSource:(null==(n=eT.data)?void 0:n.records)||[],columns:eQ,rowSelection:ey||ex?{selectedRowKeys:_,onChange:function(e){return U(e)}}:void 0,pagination:{current:I,pageSize:A,total:null==(u=eT.data)?void 0:u.total,onChange:function(e,t){if(t!==A){T(t),x(1);return}x(e)}}}),i().createElement(a.Modal,{title:z?y("Edit category"):y("Add category"),open:K,confirmLoading:q,okText:y("Submit"),cancelText:y("Cancel"),onOk:eR,onCancel:function(){R(!1),G(void 0),C.resetFields()}},i().createElement(a.Form,{form:C,layout:"vertical",initialValues:{color:"default"}},i().createElement(a.Form.Item,{name:"name",label:y("Category name"),rules:[{required:!0}]},i().createElement(a.Input,null)),i().createElement(a.Form.Item,{name:"color",label:y("Color")},i().createElement(a.Select,{options:tn.map(function(e){return{value:e,label:i().createElement(a.Tag,{color:"default"===e?void 0:e},y(tr[e]))}})})))),i().createElement(a.Drawer,{title:y("Load tables from database"),placement:"right",width:800,open:H,onClose:eU,footer:i().createElement(a.Flex,{justify:"flex-end",gap:8},i().createElement(a.Button,{onClick:eU},y("Cancel")),i().createElement(a.Button,{type:"primary",loading:Q,disabled:!ea.length,onClick:eW},y("Submit")))},i().createElement(a.Spin,{spinning:Q},i().createElement(a.Transfer,{dataSource:eH,titles:[y("Available tables"),y("Selected tables")],targetKeys:ea,selectedKeys:eu,onChange:function(e){return eo(e.map(String))},onSelectChange:function(e,t){return ec(e9(e).concat(e9(t)).map(String))},onSearch:function(e,t){return em(t)},render:function(e){return e.title},showSearch:!0,style:{height:"calc(100vh - 160px)"},listStyle:{width:350,height:"calc(100vh - 220px)"},locale:{itemUnit:y("item"),itemsUnit:y("items"),searchPlaceholder:y("Search collections...")}}))))};function tw(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 tC(e,t,n,r,l,a,o){try{var i=e[a](o),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,l)}function tk(){var e=(0,c.kj)(),t=(0,r.useFlowContext)(),n=(0,u.useParams)(),d=function(e){if(e)try{return decodeURIComponent(e)}catch(t){return e}}(n.name||n.dataSourceKey),m=function(e){if(Array.isArray(e))return e}(w=(0,o.useState)("main"))||function(e){var t,n,r=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var l=[],a=!0,o=!1;try{for(r=r.call(e);!(a=(t=r.next()).done)&&(l.push(t.value),2!==l.length);a=!0);}catch(e){o=!0,n=e}finally{try{a||null==r.return||r.return()}finally{if(o)throw n}}return l}}(w)||function(e){if(e){if("string"==typeof e)return tw(e,2);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 tw(e,2)}}(w)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),f=m[0],p=m[1],v=d||f,y=(0,l.useRequest)(function(){var e;return(e=function(){return function(e,t){var n,r,l,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var c=[i,u];if(n)throw TypeError("Generator is already executing.");for(;o&&(o=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(l=2&c[0]?r.return:c[0]?r.throw||((l=r.return)&&l.call(r),0):r.next)&&!(l=l.call(r,c[1])).done)return l;switch(r=0,l&&(c=[2&c[0],l.value]),c[0]){case 0:case 1:l=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!l||c[1]>l[0]&&c[1]<l[3])){a.label=c[1];break}if(6===c[0]&&a.label<l[1]){a.label=l[1],l=c;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(c);break}l[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=l=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(e){switch(e.label){case 0:return[4,t.dataSourceManager.ensureLoaded({force:!0,keys:["*"]})];case 1:return e.sent(),[2,t.dataSourceManager.getDataSources()]}})},function(){var t=this,n=arguments;return new Promise(function(r,l){var a=e.apply(t,n);function o(e){tC(a,r,l,o,i,"next",e)}function i(e){tC(a,r,l,o,i,"throw",e)}o(void 0)})})()}),g=(0,o.useMemo)(function(){return y.data||[]},[y.data]),h=(0,o.useMemo)(function(){return g.find(function(e){return e.key===v})},[v,g]),b=(0,o.useCallback)(function(t){return"main"===t.key?e("Main"):(0,s.hd)(t.displayName||t.key,e)},[e]),S=(0,o.useMemo)(function(){return t.app.pluginSettingsManager.getRoutePath("".concat(c.Ji,".list"))},[t.app.pluginSettingsManager]),E=(0,o.useCallback)(function(){t.router.navigate(S)},[t.router,S]);if((0,o.useEffect)(function(){!d&&g.length&&(g.some(function(e){return e.key===v})||p(g[0].key))},[v,g,d]),y.loading)return i().createElement(a.Spin,null);if(d){var w,C,k,F=h?b(h):d;return i().createElement(tE,{dataSourceKey:d,title:i().createElement(a.Breadcrumb,{items:[{title:i().createElement("a",{onClick:E},e("Data sources"))},{title:i().createElement(a.Space,{size:8},i().createElement("span",null,F),(C=null==h?void 0:h.status,(k=({loading:{color:"orange",label:e("Loading")},"loading-failed":{color:"red",label:e("Failed")},loaded:{color:"green",label:e("Loaded")},reloading:{color:"orange",label:e("Reloading")}})[C||""])?i().createElement(a.Tag,{color:k.color},k.label):null))}]})})}return i().createElement(a.Space,{direction:"vertical",size:16,style:{width:"100%"}},i().createElement(a.Select,{style:{width:320},value:v,options:g.map(function(e){return{value:e.key,label:b(e)}}),onChange:p}),v?i().createElement(tE,{dataSourceKey:v}):null)}},872:function(e,t,n){function r(e){return(void 0===e?"undefined":e&&"u">typeof Symbol&&e.constructor===Symbol?"symbol":typeof e)=="object"&&null!==e}function l(e,t){var n=e,l=!0,a=!1,o=void 0;try{for(var i,u=t[Symbol.iterator]();!(l=(i=u.next()).done);l=!0){var c=i.value;if(!r(n))return;n=n[c]}}catch(e){a=!0,o=e}finally{try{l||null==u.return||u.return()}finally{if(a)throw o}}return r(n)?n:void 0}function a(e,t){var n=e,l=!0,a=!1,o=void 0;try{for(var i,u=t[Symbol.iterator]();!(l=(i=u.next()).done);l=!0){var c=i.value;if(!r(n))return;n=n[c]}}catch(e){a=!0,o=e}finally{try{l||null==u.return||u.return()}finally{if(a)throw o}}return n}function o(e){return"string"==typeof e&&e?e:void 0}function i(e){if(Array.isArray(e))return e.map(function(e){return r(e)?e.message:e}).filter(function(e){return"string"==typeof e&&!!e}).join("\n")||void 0}function u(e){if(Array.isArray(e))return e.map(function(e){return e.message}).filter(function(e){return"string"==typeof e&&!!e}).join("\n")||void 0}function c(e){return Array.isArray(a(e,["errorFields"]))}function s(e,t){if("string"==typeof e)return e;var n,r=l(e,["response","data"]);return o(a(e,["errorFields","0","errors","0"]))||u(null==r?void 0:r.errors)||i(null==r?void 0:r.messages)||o(null==r||null==(n=r.error)?void 0:n.message)||o(null==r?void 0:r.message)||o(a(e,["message"]))||t}function d(e){var t,n=l(e,["data"]);return u(null==n?void 0:n.errors)||i(null==n?void 0:n.messages)||o(null==n||null==(t=n.error)?void 0:t.message)||o(null==n?void 0:n.message)}n.d(t,{GN:function(){return c},tK:function(){return d},u1:function(){return s}})}}]);
|
|
@@ -7,4 +7,4 @@
|
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
"use strict";(self.webpackChunk_nocobase_plugin_data_source_manager_client_v2=self.webpackChunk_nocobase_plugin_data_source_manager_client_v2||[]).push([["426"],{649:function(e,t,r){r.r(t),r.d(t,{default:function(){return I}});var n=r(375),a=r(485),o=r(694),l=r(625),u=r(59),i=r(155),c=r.n(i),s=r(143),f=r(938),d=r(872);function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function m(e,t,r,n,a,o,l){try{var u=e[o](l),i=u.value}catch(e){r(e);return}u.done?t(i):Promise.resolve(i).then(n,a)}function y(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var o=e.apply(t,r);function l(e){m(o,n,a,l,u,"next",e)}function u(e){m(o,n,a,l,u,"throw",e)}l(void 0)})}}function b(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function v(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 r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function g(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var o=[],l=!0,u=!1;try{for(a=a.call(e);!(l=(r=a.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(e){u=!0,n=e}finally{try{l||null==a.return||a.return()}finally{if(u)throw n}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return p(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return p(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.")}()}function h(e,t){var r,n,a,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},l=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),u=Object.defineProperty;return u(l,"next",{value:i(0)}),u(l,"throw",{value:i(1)}),u(l,"return",{value:i(2)}),"function"==typeof Symbol&&u(l,Symbol.iterator,{value:function(){return this}}),l;function i(u){return function(i){var c=[u,i];if(r)throw TypeError("Generator is already executing.");for(;l&&(l=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}}}}function S(e){var t=(0,s.kj)(),r=(0,o.useFlowContext)(),n=(0,o.useFlowView)(),l=u.App.useApp(),p=l.message,m=l.notification,S=g(u.Form.useForm(),1)[0],w=g((0,i.useState)(!1),2),E=w[0],k=w[1],A=g((0,i.useState)(!1),2),C=A[0],O=A[1],j=(0,i.useMemo)(function(){return r.api.resource("dataSources")},[r.api]),_=(0,i.useMemo)(function(){return"create"===e.mode?v(b({},e.type.defaultValues),{type:e.type.name,key:(0,o.randomId)("d_")}):e.initialValues||{}},[e.initialValues,e.mode,e.type]),I=e.type.SettingsForm;(0,i.useEffect)(function(){S.setFieldsValue(_)},[S,_]);var x=(0,i.useCallback)(function(e){return y(function(){var t;return h(this,function(r){switch(r.label){case 0:return[4,j.readTables({values:{dataSourceKey:e}})];case 1:return[2,null==(t=r.sent())?void 0:t.data]}})})()},[j]),P=(0,i.useCallback)(function(t){var r,n,a,o=t.collections||[],l=b({},t.options||{});"string"==typeof l.port&&/^\d+$/.test(l.port.trim())&&(l.port=Number(l.port.trim())),(null==(r=l.ssl)?void 0:r.sslMode)==="disable"&&(l.ssl={sslMode:"disable"});var u=v(b({},t),{options:l,collections:o.filter(function(e){return"string"==typeof e||e.selected}).map(function(e){return"string"==typeof e?e:e.name})});return(null==(n=(a=e.type).normalizeValues)?void 0:n.call(a,u))||u},[e.type]),M=(0,i.useCallback)(function(){return y(function(){var e,r,n,a,o;return h(this,function(l){switch(l.label){case 0:O(!0),l.label=1;case 1:return l.trys.push([1,4,5,6]),[4,S.validateFields()];case 2:return e=l.sent(),[4,j.testConnection({values:P(e)})];case 3:if(r=l.sent(),n=(0,d.tK)(r))throw Error(n);return p.success(t("Connection successful")),[3,6];case 4:return a=l.sent(),o=(0,d.u1)(a,t("Connection failed")),(m||u.notification).error({message:t("Test Connection"),description:o}),[3,6];case 5:return O(!1),[7];case 6:return[2]}})})()},[S,p,P,m,j,t]),D=(0,i.useCallback)(function(){return y(function(){var r,a,o,l,i,c;return h(this,function(s){switch(s.label){case 0:return[4,S.validateFields()];case 1:r=P.apply(void 0,[s.sent()]),k(!0),s.label=2;case 2:if(s.trys.push([2,9,10,11]),"create"!==e.mode)return[3,4];return[4,j.create({values:r})];case 3:return o=s.sent(),[3,6];case 4:return[4,j.update({filterByTk:null==(l=e.initialValues)?void 0:l.key,values:r})];case 5:o=s.sent(),s.label=6;case 6:return[4,e.onSubmitted((null==o||null==(a=o.data)?void 0:a.data)||r)];case 7:return s.sent(),[4,n.close()];case 8:return s.sent(),[3,11];case 9:return i=s.sent(),c=(0,d.u1)(i,t("Submit failed")),(m||u.notification).error({message:t("Submit failed"),description:c}),[3,11];case 10:return k(!1),[7];case 11:return[2]}})})()},[S,P,m,e,j,t,n]),T=(0,f.Ad)(e.type.label||e.type.name,t),F="".concat("create"===e.mode?t("Add new"):t("Edit")," - ").concat(T);return c().createElement(a.DrawerFormLayout,{title:F,onSubmit:D,submitting:E,submitText:t("Submit"),cancelText:t("Cancel"),footer:c().createElement(u.Space,null,e.type.disableTestConnection?null:c().createElement(u.Button,{loading:C,onClick:M},t("Test Connection")),c().createElement(u.Button,{onClick:function(){return n.close()}},t("Cancel")),c().createElement(u.Button,{type:"primary",loading:E,onClick:D},t("Submit")))},c().createElement(u.Form,{form:S,layout:"vertical",initialValues:_},c().createElement(u.Form.Item,{name:"type",hidden:!0},c().createElement(u.Input,null)),c().createElement(u.Form.Item,{name:"key",label:t("Data source name"),rules:[{required:!0,message:t("Data source name")},{pattern:/^[A-Za-z][A-Za-z0-9_]*$/,message:t("Randomly generated and can be modified. Support letters, numbers and underscores, must start with a letter.")}],extra:t("Randomly generated and can be modified. Support letters, numbers and underscores, must start with a letter.")},c().createElement(u.Input,{disabled:"edit"===e.mode})),c().createElement(u.Form.Item,{name:"displayName",label:t("Data source display name"),rules:[{required:!0,message:t("Data source display name")}]},c().createElement(u.Input,null)),I?c().createElement(I,{mode:e.mode,type:e.type,initialValues:_,loadCollections:x}):null))}var w=r(832),E=r(448);function k(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function A(e,t,r,n,a,o,l){try{var u=e[o](l),i=u.value}catch(e){r(e);return}u.done?t(i):Promise.resolve(i).then(n,a)}function C(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var o=e.apply(t,r);function l(e){A(o,n,a,l,u,"next",e)}function u(e){A(o,n,a,l,u,"throw",e)}l(void 0)})}}function O(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var o=[],l=!0,u=!1;try{for(a=a.call(e);!(l=(r=a.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(e){u=!0,n=e}finally{try{l||null==a.return||a.return()}finally{if(u)throw n}}return o}}(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 j(e,t){if(e){if("string"==typeof e)return k(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return k(e,t)}}function _(e,t){var r,n,a,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},l=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),u=Object.defineProperty;return u(l,"next",{value:i(0)}),u(l,"throw",{value:i(1)}),u(l,"return",{value:i(2)}),"function"==typeof Symbol&&u(l,Symbol.iterator,{value:function(){return this}}),l;function i(u){return function(i){var c=[u,i];if(r)throw TypeError("Generator is already executing.");for(;l&&(l=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}}}}function I(){var e,t,r=(0,s.kj)(),d=(0,o.useFlowContext)(),p=u.App.useApp().modal,m=d.app.pm.get(w.v),y=(0,i.useMemo)(function(){return d.api.resource("dataSources")},[d.api]),b=(0,i.useMemo)(function(){var e;return function(e){if(Array.isArray(e))return k(e)}(e=m.types.values())||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.")}()},[m]),v=O((0,i.useState)(1),2),g=v[0],h=v[1],A=O((0,i.useState)(a.DEFAULT_PAGE_SIZE),2),I=A[0],x=A[1],P=O((0,i.useState)([]),2),M=P[0],D=P[1],T=(0,l.useRequest)(function(){return C(function(){var e;return _(this,function(t){switch(t.label){case 0:return[4,y.list({page:g,pageSize:I,appends:[]})];case 1:var r,n,a,o,l;return e={records:o=Array.isArray(a=null==(n=null==(r=t.sent())?void 0:r.data)?void 0:n.data)?a:Array.isArray(null==a?void 0:a.data)?a.data:[],total:(l=(null==n?void 0:n.meta)||(null==a?void 0:a.meta)||{}).count||l.total||o.length},(0,E.b)(d.dataSourceManager,e.records),[2,e]}})})()},{refreshDeps:[g,I]}),F=(0,i.useMemo)(function(){var e;return(null==(e=T.data)?void 0:e.records)||[]},[null==(e=T.data)?void 0:e.records]),V=(0,i.useCallback)(function(e,t,r){var n=m.getType(t);n&&d.viewer.drawer({width:650,closable:!0,content:function(){return c().createElement(S,{mode:e,type:n,initialValues:r,onSubmitted:function(e){e&&(0,E.b)(d.dataSourceManager,[e]),T.refresh()}})}})},[d.dataSourceManager,d.viewer,m,T]),R=(0,i.useCallback)(function(e){var t=d.app.pluginSettingsManager.getRoutePath("".concat(s.Ji,".:name/collections")).replace(":name",encodeURIComponent(e.key));d.router.navigate(t)},[d.app.pluginSettingsManager,d.router]),B=(0,i.useCallback)(function(){return C(function(){return _(this,function(e){switch(e.label){case 0:return[4,Promise.all(F.filter(function(e){return"loaded"!==e.status}).map(function(e){return e.key}).map(function(e){var t;return null==(t=d.dataSourceManager.getDataSource(e))?void 0:t.reload()}))];case 1:return e.sent(),T.refresh(),[2]}})})()},[d.dataSourceManager,F,T]),z=(0,i.useCallback)(function(e){var t=Array.isArray(e)?e:[e];p.confirm({title:r("Delete"),content:r("Are you sure you want to delete it?"),onOk:function(){return C(function(){return _(this,function(r){switch(r.label){case 0:return[4,y.destroy({filterByTk:e})];case 1:return r.sent(),(0,E.h)(d.dataSourceManager,t),D([]),T.refresh(),[2]}})})()}})},[d.dataSourceManager,p,T,y,r]),N=(0,i.useMemo)(function(){return[{title:r("Data source name"),dataIndex:"key",ellipsis:!0},{title:r("Data source display name"),dataIndex:"displayName",ellipsis:!0,render:function(e){return(0,f.hd)(e,r)}},{title:r("Type"),dataIndex:"type",render:function(e){var t;return"main"===e?r("Main"):(0,f.hd)((null==(t=m.getType(e))?void 0:t.label)||e||"-",r)}},{title:r("Status"),dataIndex:"status",render:function(e){var t;return t=({loading:{color:"orange",label:r("Loading")},"loading-failed":{color:"red",label:r("Failed")},loaded:{color:"green",label:r("Loaded")},reloading:{color:"orange",label:r("Reloading")}})[e||""]||{color:"default",label:e||"-"},c().createElement(u.Tag,{color:t.color},t.label)}},{title:r("Enabled"),dataIndex:"enabled",render:function(e){return c().createElement(u.Switch,{checked:e,disabled:!0,size:"small"})}},{title:r("Actions"),width:260,render:function(e,t){return c().createElement(u.Space,{size:12,wrap:!0},c().createElement("a",{onClick:function(){return R(t)}},r("Configure")),"main"!==t.key?c().createElement("a",{onClick:function(){return V("edit",t.type||"",t)}},r("Edit")):null,"main"!==t.key?c().createElement("a",{onClick:function(){return z(t.key)}},r("Delete")):null)}}]},[z,R,V,m,r]),G=(0,i.useMemo)(function(){return b.length?b.map(function(e){return{key:e.name||"",label:(0,f.hd)(e.label||e.name,r)}}):[{key:"__empty__",label:c().createElement(u.Empty,{image:u.Empty.PRESENTED_IMAGE_SIMPLE,description:c().createElement("span",null,r("No external data source plugin installed"),c().createElement("br",null),c().createElement("a",{target:"_blank",rel:"noreferrer",href:"zh-CN"===d.api.auth.locale?"https://docs-cn.nocobase.com/handbook/data-source-manager":"https://docs.nocobase.com/handbook/data-source-manager"},r("View documentation")))})}]},[d.api.auth.locale,b,r]);return c().createElement(u.Card,{variant:"borderless"},c().createElement("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginBottom:16}},c().createElement(u.Space,null,c().createElement(u.Button,{icon:c().createElement(n.ReloadOutlined,null),onClick:B},r("Refresh")),c().createElement(u.Button,{icon:c().createElement(n.DeleteOutlined,null),disabled:!M.length,onClick:function(){return z(M)}},r("Delete")),c().createElement(u.Dropdown,{menu:{items:G,onClick:function(e){var t=e.key;"__empty__"!==t&&V("create",t)}}},c().createElement(u.Button,{type:"primary",icon:c().createElement(n.PlusOutlined,null)},r("Add new")," ",c().createElement(n.DownOutlined,null))))),c().createElement(a.Table,{rowKey:"key",loading:T.loading,dataSource:F,columns:N,rowSelection:{selectedRowKeys:M,getCheckboxProps:function(e){return{disabled:"main"===e.key}},onChange:D},pagination:{current:g,pageSize:I,total:null==(t=T.data)?void 0:t.total,onChange:function(e,t){if(t!==I){x(t),h(1);return}h(e)}}}))}},872:function(e,t,r){function n(e){return(void 0===e?"undefined":e&&"u">typeof Symbol&&e.constructor===Symbol?"symbol":typeof e)=="object"&&null!==e}function a(e,t){var r=e,a=!0,o=!1,l=void 0;try{for(var u,i=t[Symbol.iterator]();!(a=(u=i.next()).done);a=!0){var c=u.value;if(!n(r))return;r=r[c]}}catch(e){o=!0,l=e}finally{try{a||null==i.return||i.return()}finally{if(o)throw l}}return n(r)?r:void 0}function o(e,t){var r=e,a=!0,o=!1,l=void 0;try{for(var u,i=t[Symbol.iterator]();!(a=(u=i.next()).done);a=!0){var c=u.value;if(!n(r))return;r=r[c]}}catch(e){o=!0,l=e}finally{try{a||null==i.return||i.return()}finally{if(o)throw l}}return r}function l(e){return"string"==typeof e&&e?e:void 0}function u(e){if(Array.isArray(e))return e.map(function(e){return n(e)?e.message:e}).filter(function(e){return"string"==typeof e&&!!e}).join("\n")||void 0}function i(e){if(Array.isArray(e))return e.map(function(e){return e.message}).filter(function(e){return"string"==typeof e&&!!e}).join("\n")||void 0}function c(e){return Array.isArray(o(e,["errorFields"]))}function s(e,t){if("string"==typeof e)return e;var r,n=a(e,["response","data"]);return l(o(e,["errorFields","0","errors","0"]))||i(null==n?void 0:n.errors)||u(null==n?void 0:n.messages)||l(null==n||null==(r=n.error)?void 0:r.message)||l(null==n?void 0:n.message)||l(o(e,["message"]))||t}function f(e){var t,r=a(e,["data"]);return i(null==r?void 0:r.errors)||u(null==r?void 0:r.messages)||l(null==r||null==(t=r.error)?void 0:t.message)||l(null==r?void 0:r.message)}r.d(t,{GN:function(){return c},tK:function(){return f},u1:function(){return s}})}}]);
|
|
10
|
+
"use strict";(self.webpackChunk_nocobase_plugin_data_source_manager_client_v2=self.webpackChunk_nocobase_plugin_data_source_manager_client_v2||[]).push([["426"],{649:function(e,t,r){r.r(t),r.d(t,{default:function(){return I}});var n=r(375),a=r(485),o=r(694),l=r(625),u=r(59),i=r(155),c=r.n(i),s=r(143),f=r(938),d=r(872);function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function m(e,t,r,n,a,o,l){try{var u=e[o](l),i=u.value}catch(e){r(e);return}u.done?t(i):Promise.resolve(i).then(n,a)}function y(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var o=e.apply(t,r);function l(e){m(o,n,a,l,u,"next",e)}function u(e){m(o,n,a,l,u,"throw",e)}l(void 0)})}}function b(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function v(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 r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function g(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var o=[],l=!0,u=!1;try{for(a=a.call(e);!(l=(r=a.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(e){u=!0,n=e}finally{try{l||null==a.return||a.return()}finally{if(u)throw n}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return p(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return p(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.")}()}function h(e,t){var r,n,a,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},l=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),u=Object.defineProperty;return u(l,"next",{value:i(0)}),u(l,"throw",{value:i(1)}),u(l,"return",{value:i(2)}),"function"==typeof Symbol&&u(l,Symbol.iterator,{value:function(){return this}}),l;function i(u){return function(i){var c=[u,i];if(r)throw TypeError("Generator is already executing.");for(;l&&(l=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}}}}function S(e){var t=(0,s.kj)(),r=(0,o.useFlowContext)(),n=(0,o.useFlowView)(),l=u.App.useApp(),p=l.message,m=l.notification,S=g(u.Form.useForm(),1)[0],w=g((0,i.useState)(!1),2),E=w[0],k=w[1],A=g((0,i.useState)(!1),2),C=A[0],O=A[1],j=(0,i.useMemo)(function(){return r.api.resource("dataSources")},[r.api]),_=(0,i.useMemo)(function(){return"create"===e.mode?v(b({},e.type.defaultValues),{type:e.type.name,key:(0,o.randomId)("d_")}):e.initialValues||{}},[e.initialValues,e.mode,e.type]),I=e.type.SettingsForm;(0,i.useEffect)(function(){S.setFieldsValue(_)},[S,_]);var x=(0,i.useCallback)(function(e){return y(function(){var t;return h(this,function(r){switch(r.label){case 0:return[4,j.readTables({values:{dataSourceKey:e}})];case 1:return[2,null==(t=r.sent())?void 0:t.data]}})})()},[j]),P=(0,i.useCallback)(function(t){var r,n,a,o=t.collections||[],l=b({},t.options||{});"string"==typeof l.port&&/^\d+$/.test(l.port.trim())&&(l.port=Number(l.port.trim())),(null==(r=l.ssl)?void 0:r.sslMode)==="disable"&&(l.ssl={sslMode:"disable"});var u=v(b({},t),{options:l,collections:o.filter(function(e){return"string"==typeof e||e.selected}).map(function(e){return"string"==typeof e?e:e.name})});return(null==(n=(a=e.type).normalizeValues)?void 0:n.call(a,u))||u},[e.type]),M=(0,i.useCallback)(function(){return y(function(){var e,r,n,a,o;return h(this,function(l){switch(l.label){case 0:O(!0),l.label=1;case 1:return l.trys.push([1,4,5,6]),[4,S.validateFields()];case 2:return e=l.sent(),[4,j.testConnection({values:P(e)})];case 3:if(r=l.sent(),n=(0,d.tK)(r))throw Error(n);return p.success(t("Connection successful")),[3,6];case 4:return a=l.sent(),o=(0,d.u1)(a,t("Connection failed")),(m||u.notification).error({message:t("Test Connection"),description:o}),[3,6];case 5:return O(!1),[7];case 6:return[2]}})})()},[S,p,P,m,j,t]),D=(0,i.useCallback)(function(){return y(function(){var r,a,o,l,i,c;return h(this,function(s){switch(s.label){case 0:return[4,S.validateFields()];case 1:r=P.apply(void 0,[s.sent()]),k(!0),s.label=2;case 2:if(s.trys.push([2,9,10,11]),"create"!==e.mode)return[3,4];return[4,j.create({values:r})];case 3:return o=s.sent(),[3,6];case 4:return[4,j.update({filterByTk:null==(l=e.initialValues)?void 0:l.key,values:r})];case 5:o=s.sent(),s.label=6;case 6:return[4,e.onSubmitted((null==o||null==(a=o.data)?void 0:a.data)||r)];case 7:return s.sent(),[4,n.close()];case 8:return s.sent(),[3,11];case 9:return i=s.sent(),c=(0,d.u1)(i,t("Submit failed")),(m||u.notification).error({message:t("Submit failed"),description:c}),[3,11];case 10:return k(!1),[7];case 11:return[2]}})})()},[S,P,m,e,j,t,n]),T=(0,f.Ad)(e.type.label||e.type.name,t),F="".concat("create"===e.mode?t("Add new"):t("Edit")," - ").concat(T);return c().createElement(a.DrawerFormLayout,{title:F,onSubmit:D,submitting:E,submitText:t("Submit"),cancelText:t("Cancel"),footer:c().createElement(u.Space,null,e.type.disableTestConnection?null:c().createElement(u.Button,{loading:C,onClick:M},t("Test Connection")),c().createElement(u.Button,{onClick:function(){return n.close()}},t("Cancel")),c().createElement(u.Button,{type:"primary",loading:E,onClick:D},t("Submit")))},c().createElement(u.Form,{form:S,layout:"vertical",initialValues:_},c().createElement(u.Form.Item,{name:"type",hidden:!0},c().createElement(u.Input,null)),c().createElement(u.Form.Item,{name:"key",label:t("Data source name"),rules:[{required:!0,message:t("Data source name")},{pattern:/^[A-Za-z][A-Za-z0-9_]*$/,message:t("Randomly generated and can be modified. Support letters, numbers and underscores, must start with a letter.")}],extra:t("Randomly generated and can be modified. Support letters, numbers and underscores, must start with a letter.")},c().createElement(u.Input,{disabled:"edit"===e.mode})),c().createElement(u.Form.Item,{name:"displayName",label:t("Data source display name"),rules:[{required:!0,message:t("Data source display name")}]},c().createElement(u.Input,null)),I?c().createElement(I,{mode:e.mode,type:e.type,initialValues:_,loadCollections:x}):null))}var w=r(832),E=r(448);function k(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function A(e,t,r,n,a,o,l){try{var u=e[o](l),i=u.value}catch(e){r(e);return}u.done?t(i):Promise.resolve(i).then(n,a)}function C(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var o=e.apply(t,r);function l(e){A(o,n,a,l,u,"next",e)}function u(e){A(o,n,a,l,u,"throw",e)}l(void 0)})}}function O(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var o=[],l=!0,u=!1;try{for(a=a.call(e);!(l=(r=a.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(e){u=!0,n=e}finally{try{l||null==a.return||a.return()}finally{if(u)throw n}}return o}}(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 j(e,t){if(e){if("string"==typeof e)return k(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return k(e,t)}}function _(e,t){var r,n,a,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},l=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),u=Object.defineProperty;return u(l,"next",{value:i(0)}),u(l,"throw",{value:i(1)}),u(l,"return",{value:i(2)}),"function"==typeof Symbol&&u(l,Symbol.iterator,{value:function(){return this}}),l;function i(u){return function(i){var c=[u,i];if(r)throw TypeError("Generator is already executing.");for(;l&&(l=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}}}}function I(){var e,t,r=(0,s.kj)(),d=(0,o.useFlowContext)(),p=u.App.useApp().modal,m=d.app.pm.get(w.vb),y=(0,i.useMemo)(function(){return d.api.resource("dataSources")},[d.api]),b=(0,i.useMemo)(function(){var e;return function(e){if(Array.isArray(e))return k(e)}(e=m.types.values())||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.")}()},[m]),v=O((0,i.useState)(1),2),g=v[0],h=v[1],A=O((0,i.useState)(a.DEFAULT_PAGE_SIZE),2),I=A[0],x=A[1],P=O((0,i.useState)([]),2),M=P[0],D=P[1],T=(0,l.useRequest)(function(){return C(function(){var e;return _(this,function(t){switch(t.label){case 0:return[4,y.list({page:g,pageSize:I,appends:[]})];case 1:var r,n,a,o,l;return e={records:o=Array.isArray(a=null==(n=null==(r=t.sent())?void 0:r.data)?void 0:n.data)?a:Array.isArray(null==a?void 0:a.data)?a.data:[],total:(l=(null==n?void 0:n.meta)||(null==a?void 0:a.meta)||{}).count||l.total||o.length},(0,E.b)(d.dataSourceManager,e.records),[2,e]}})})()},{refreshDeps:[g,I]}),F=(0,i.useMemo)(function(){var e;return(null==(e=T.data)?void 0:e.records)||[]},[null==(e=T.data)?void 0:e.records]),V=(0,i.useCallback)(function(e,t,r){var n=m.getType(t);n&&d.viewer.drawer({width:650,closable:!0,content:function(){return c().createElement(S,{mode:e,type:n,initialValues:r,onSubmitted:function(e){e&&(0,E.b)(d.dataSourceManager,[e]),T.refresh()}})}})},[d.dataSourceManager,d.viewer,m,T]),R=(0,i.useCallback)(function(e){var t=d.app.pluginSettingsManager.getRoutePath("".concat(s.Ji,".:name/collections")).replace(":name",encodeURIComponent(e.key));d.router.navigate(t)},[d.app.pluginSettingsManager,d.router]),B=(0,i.useCallback)(function(){return C(function(){return _(this,function(e){switch(e.label){case 0:return[4,Promise.all(F.filter(function(e){return"loaded"!==e.status}).map(function(e){return e.key}).map(function(e){var t;return null==(t=d.dataSourceManager.getDataSource(e))?void 0:t.reload()}))];case 1:return e.sent(),T.refresh(),[2]}})})()},[d.dataSourceManager,F,T]),z=(0,i.useCallback)(function(e){var t=Array.isArray(e)?e:[e];p.confirm({title:r("Delete"),content:r("Are you sure you want to delete it?"),onOk:function(){return C(function(){return _(this,function(r){switch(r.label){case 0:return[4,y.destroy({filterByTk:e})];case 1:return r.sent(),(0,E.h)(d.dataSourceManager,t),D([]),T.refresh(),[2]}})})()}})},[d.dataSourceManager,p,T,y,r]),N=(0,i.useMemo)(function(){return[{title:r("Data source name"),dataIndex:"key",ellipsis:!0},{title:r("Data source display name"),dataIndex:"displayName",ellipsis:!0,render:function(e){return(0,f.hd)(e,r)}},{title:r("Type"),dataIndex:"type",render:function(e){var t;return"main"===e?r("Main"):(0,f.hd)((null==(t=m.getType(e))?void 0:t.label)||e||"-",r)}},{title:r("Status"),dataIndex:"status",render:function(e){var t;return t=({loading:{color:"orange",label:r("Loading")},"loading-failed":{color:"red",label:r("Failed")},loaded:{color:"green",label:r("Loaded")},reloading:{color:"orange",label:r("Reloading")}})[e||""]||{color:"default",label:e||"-"},c().createElement(u.Tag,{color:t.color},t.label)}},{title:r("Enabled"),dataIndex:"enabled",render:function(e){return c().createElement(u.Switch,{checked:e,disabled:!0,size:"small"})}},{title:r("Actions"),width:260,render:function(e,t){return c().createElement(u.Space,{size:12,wrap:!0},c().createElement("a",{onClick:function(){return R(t)}},r("Configure")),"main"!==t.key?c().createElement("a",{onClick:function(){return V("edit",t.type||"",t)}},r("Edit")):null,"main"!==t.key?c().createElement("a",{onClick:function(){return z(t.key)}},r("Delete")):null)}}]},[z,R,V,m,r]),G=(0,i.useMemo)(function(){return b.length?b.map(function(e){return{key:e.name||"",label:(0,f.hd)(e.label||e.name,r)}}):[{key:"__empty__",label:c().createElement(u.Empty,{image:u.Empty.PRESENTED_IMAGE_SIMPLE,description:c().createElement("span",null,r("No external data source plugin installed"),c().createElement("br",null),c().createElement("a",{target:"_blank",rel:"noreferrer",href:"zh-CN"===d.api.auth.locale?"https://docs-cn.nocobase.com/handbook/data-source-manager":"https://docs.nocobase.com/handbook/data-source-manager"},r("View documentation")))})}]},[d.api.auth.locale,b,r]);return c().createElement(u.Card,{variant:"borderless"},c().createElement("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginBottom:16}},c().createElement(u.Space,null,c().createElement(u.Button,{icon:c().createElement(n.ReloadOutlined,null),onClick:B},r("Refresh")),c().createElement(u.Button,{icon:c().createElement(n.DeleteOutlined,null),disabled:!M.length,onClick:function(){return z(M)}},r("Delete")),c().createElement(u.Dropdown,{menu:{items:G,onClick:function(e){var t=e.key;"__empty__"!==t&&V("create",t)}}},c().createElement(u.Button,{type:"primary",icon:c().createElement(n.PlusOutlined,null)},r("Add new")," ",c().createElement(n.DownOutlined,null))))),c().createElement(a.Table,{rowKey:"key",loading:T.loading,dataSource:F,columns:N,rowSelection:{selectedRowKeys:M,getCheckboxProps:function(e){return{disabled:"main"===e.key}},onChange:D},pagination:{current:g,pageSize:I,total:null==(t=T.data)?void 0:t.total,onChange:function(e,t){if(t!==I){x(t),h(1);return}h(e)}}}))}},872:function(e,t,r){function n(e){return(void 0===e?"undefined":e&&"u">typeof Symbol&&e.constructor===Symbol?"symbol":typeof e)=="object"&&null!==e}function a(e,t){var r=e,a=!0,o=!1,l=void 0;try{for(var u,i=t[Symbol.iterator]();!(a=(u=i.next()).done);a=!0){var c=u.value;if(!n(r))return;r=r[c]}}catch(e){o=!0,l=e}finally{try{a||null==i.return||i.return()}finally{if(o)throw l}}return n(r)?r:void 0}function o(e,t){var r=e,a=!0,o=!1,l=void 0;try{for(var u,i=t[Symbol.iterator]();!(a=(u=i.next()).done);a=!0){var c=u.value;if(!n(r))return;r=r[c]}}catch(e){o=!0,l=e}finally{try{a||null==i.return||i.return()}finally{if(o)throw l}}return r}function l(e){return"string"==typeof e&&e?e:void 0}function u(e){if(Array.isArray(e))return e.map(function(e){return n(e)?e.message:e}).filter(function(e){return"string"==typeof e&&!!e}).join("\n")||void 0}function i(e){if(Array.isArray(e))return e.map(function(e){return e.message}).filter(function(e){return"string"==typeof e&&!!e}).join("\n")||void 0}function c(e){return Array.isArray(o(e,["errorFields"]))}function s(e,t){if("string"==typeof e)return e;var r,n=a(e,["response","data"]);return l(o(e,["errorFields","0","errors","0"]))||i(null==n?void 0:n.errors)||u(null==n?void 0:n.messages)||l(null==n||null==(r=n.error)?void 0:r.message)||l(null==n?void 0:n.message)||l(o(e,["message"]))||t}function f(e){var t,r=a(e,["data"]);return i(null==r?void 0:r.errors)||u(null==r?void 0:r.messages)||l(null==r||null==(t=r.error)?void 0:t.message)||l(null==r?void 0:r.message)}r.d(t,{GN:function(){return c},tK:function(){return f},u1:function(){return s}})}}]);
|