@nocobase/plugin-data-source-manager 2.1.0-alpha.4 → 2.1.0-alpha.45
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +79 -10
- package/client-v2.d.ts +2 -0
- package/client-v2.js +1 -0
- package/dist/ai/ai-employees/orin/ignored.d.ts +10 -0
- package/dist/ai/ai-employees/orin/ignored.js +59 -0
- package/dist/ai/ai-employees/orin/skills/data-modeling/SKILLS.md +245 -0
- package/dist/ai/{tools → ai-employees/orin/skills/data-modeling/tools}/defineCollections.js +47 -1
- package/dist/ai/{tools → ai-employees/orin/skills/data-modeling/tools}/intentRouter.js +1 -1
- package/dist/ai/{tools/data-query → common}/common.js +63 -11
- package/dist/ai/{tools/data-query → common}/utils.d.ts +1 -0
- package/dist/ai/{tools/data-query → common}/utils.js +15 -0
- package/dist/ai/skills/data-metadata/SKILLS.md +108 -0
- package/dist/ai/{tools → skills/data-metadata/tools}/getCollectionMetadata.js +2 -2
- package/dist/ai/{tools → skills/data-metadata/tools}/getCollectionNames.js +2 -2
- package/dist/ai/{tools → skills/data-metadata/tools}/getDataSources.js +2 -2
- package/dist/ai/{tools → skills/data-metadata/tools}/searchFieldMetadata.js +2 -2
- package/dist/ai/skills/data-query/SKILLS.md +246 -0
- package/dist/ai/skills/data-query/tools/dataQuery.js +282 -0
- package/dist/ai/{tools/data-query → skills/data-query/tools}/dataSourceCounting.js +12 -4
- package/dist/ai/skills/data-query/tools/dataSourceQuery.d.ts +10 -0
- package/dist/ai/{tools/data-query → skills/data-query/tools}/dataSourceQuery.js +12 -5
- package/dist/client/271.b3c0013cf976adf0.js +10 -0
- package/dist/client/369.6025f2112454fab1.js +10 -0
- package/dist/client/397.c8c6659cf3f7ac1c.js +10 -0
- package/dist/client/416.197712b8b93033c5.js +10 -0
- package/dist/client/420.0c3e3c9888e0ba31.js +10 -0
- package/dist/client/603.d6022bceb934f5b0.js +10 -0
- package/dist/client/644.b98e4b39058e9c32.js +10 -0
- package/dist/client/936.d5ab7aecb4eb6004.js +10 -0
- package/dist/client/index.js +1 -1
- package/dist/client-v2/167.c72713810e2d0526.js +10 -0
- package/dist/client-v2/426.3cd9f994a3145829.js +10 -0
- package/dist/client-v2/components/DataSourceForm.d.ts +17 -0
- package/dist/client-v2/field-interfaces/index.d.ts +13 -0
- package/dist/client-v2/index.d.ts +12 -0
- package/dist/client-v2/index.js +10 -0
- package/dist/client-v2/locale.d.ts +11 -0
- package/dist/client-v2/pages/DataSourceCollectionsPage.d.ts +10 -0
- package/dist/client-v2/pages/DataSourcesPage.d.ts +10 -0
- package/dist/client-v2/pages/components/CollectionsPage.d.ts +15 -0
- package/dist/client-v2/pages/components/FieldForm.d.ts +19 -0
- package/dist/client-v2/pages/components/FieldsPage.d.ts +15 -0
- package/dist/client-v2/pages/components/SqlCollectionConfigure.d.ts +62 -0
- package/dist/client-v2/pages/components/ViewCollectionConfigure.d.ts +27 -0
- package/dist/client-v2/pages/components/collectionFieldApi.d.ts +11 -0
- package/dist/client-v2/pages/components/collectionTemplateFieldInterfaces.d.ts +18 -0
- package/dist/client-v2/plugin.d.ts +188 -0
- package/dist/client-v2/runtime.d.ts +12 -0
- package/dist/client-v2/utils/compileLegacyTemplate.d.ts +13 -0
- package/dist/externalVersion.js +17 -13
- package/dist/locale/en-US.json +270 -3
- package/dist/locale/zh-CN.json +270 -3
- package/dist/node_modules/zod/index.cjs +1 -1
- package/dist/node_modules/zod/package.json +1 -1
- package/dist/server/mcp-post-processors.d.ts +24 -0
- package/dist/server/mcp-post-processors.js +158 -0
- package/dist/server/models/data-source.js +3 -13
- package/dist/server/plugin.js +2 -0
- package/dist/server/resourcers/data-sources-collections-fields.d.ts +1 -0
- package/dist/server/resourcers/data-sources-collections-fields.js +9 -0
- package/dist/server/services/external-field-apply.d.ts +23 -0
- package/dist/server/services/external-field-apply.js +208 -0
- package/dist/server/utils.js +6 -1
- package/dist/swagger/index.d.ts +326 -0
- package/dist/swagger/index.js +385 -0
- package/package.json +5 -2
- package/LICENSE.txt +0 -172
- package/dist/client/1a8cce8035a89dd9.js +0 -10
- package/dist/client/276bcf3de74bebd1.js +0 -10
- package/dist/client/2f7a418e7935984d.js +0 -10
- package/dist/client/689d3bec33ad2ec3.js +0 -10
- package/dist/client/d33eb40009bd7ec6.js +0 -10
- package/dist/client/dbf5ddf434ab29c0.js +0 -10
- package/dist/client/f528b165e77e3608.js +0 -10
- package/dist/client/fdae18574fda07af.js +0 -10
- /package/dist/ai/{tools → ai-employees/orin/skills/data-modeling/tools}/defineCollections.d.ts +0 -0
- /package/dist/ai/{tools → ai-employees/orin/skills/data-modeling/tools}/intentRouter.d.ts +0 -0
- /package/dist/ai/{tools/data-query → common}/common.d.ts +0 -0
- /package/dist/ai/{tools → skills/data-metadata/tools}/getCollectionMetadata.d.ts +0 -0
- /package/dist/ai/{tools → skills/data-metadata/tools}/getCollectionNames.d.ts +0 -0
- /package/dist/ai/{tools → skills/data-metadata/tools}/getDataSources.d.ts +0 -0
- /package/dist/ai/{tools → skills/data-metadata/tools}/searchFieldMetadata.d.ts +0 -0
- /package/dist/ai/{tools/data-query/dataSourceCounting.d.ts → skills/data-query/tools/dataQuery.d.ts} +0 -0
- /package/dist/ai/{tools/data-query/dataSourceQuery.d.ts → skills/data-query/tools/dataSourceCounting.d.ts} +0 -0
|
@@ -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
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react-router-dom"),require("@ant-design/icons"),require("@dnd-kit/core"),require("@nocobase/flow-engine"),require("ahooks"),require("@nocobase/client-v2"),require("@dnd-kit/sortable"),require("dayjs"),require("react"),require("antd"),require("@nocobase/utils/client"),require("lodash")):"function"==typeof define&&define.amd?define("@nocobase/plugin-data-source-manager/client-v2",["react-router-dom","@ant-design/icons","@dnd-kit/core","@nocobase/flow-engine","ahooks","@nocobase/client-v2","@dnd-kit/sortable","dayjs","react","antd","@nocobase/utils/client","lodash"],t):"object"==typeof exports?exports["@nocobase/plugin-data-source-manager/client-v2"]=t(require("react-router-dom"),require("@ant-design/icons"),require("@dnd-kit/core"),require("@nocobase/flow-engine"),require("ahooks"),require("@nocobase/client-v2"),require("@dnd-kit/sortable"),require("dayjs"),require("react"),require("antd"),require("@nocobase/utils/client"),require("lodash")):e["@nocobase/plugin-data-source-manager/client-v2"]=t(e["react-router-dom"],e["@ant-design/icons"],e["@dnd-kit/core"],e["@nocobase/flow-engine"],e.ahooks,e["@nocobase/client-v2"],e["@dnd-kit/sortable"],e.dayjs,e.react,e.antd,e["@nocobase/utils/client"],e.lodash)}(self,function(e,t,n,r,o,a,i,l,u,c,s,f){return function(){"use strict";var d,m,p,y,v,h={978:function(e,t,n){n.d(t,{FL:function(){return T},J6:function(){return q},eA:function(){return _},fT:function(){return D},gt:function(){return P},hK:function(){return C},k_:function(){return V},uT:function(){return M}});var r=n(375),o=n(694),a=n(625),i=n(59),l=n(185),u=n.n(l),c=n(773),s=n(155),f=n.n(s),d=n(938);function m(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 p(e,t,n,r,o,a,i){try{var l=e[a](i),u=l.value}catch(e){n(e);return}l.done?t(u):Promise.resolve(u).then(r,o)}function y(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function i(e){p(a,r,o,i,l,"next",e)}function l(e){p(a,r,o,i,l,"throw",e)}i(void 0)})}}function v(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 h(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 b(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,t)||S(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 g(e){return function(e){if(Array.isArray(e))return m(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||S(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 S(e,t){if(e){if("string"==typeof e)return m(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 m(e,t)}}function w(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),l=Object.defineProperty;return l(i,"next",{value:u(0)}),l(i,"throw",{value:u(1)}),l(i,"return",{value:u(2)}),"function"==typeof Symbol&&l(i,Symbol.iterator,{value:function(){return this}}),i;function u(l){return function(u){var c=[l,u];if(n)throw TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=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(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var O=new Set(["hasOne","hasMany","belongsToMany","belongsTo"]),F="__sqlPreview";function A(e){return!!e&&(void 0===e?"undefined":e&&"u">typeof Symbol&&e.constructor===Symbol?"symbol":typeof e)=="object"&&!Array.isArray(e)}function j(e){return!!A(e)&&(Array.isArray(e.data)||A(e.fields)||Array.isArray(e.sources)||"string"==typeof e.error)}function C(e){var t=[e,(0,c.get)(e,"data"),(0,c.get)(e,"data.data"),(0,c.get)(e,"data.data.data")].find(j);return t?{data:Array.isArray(t.data)?t.data:[],error:"string"==typeof t.error?t.error:void 0,fields:A(t.fields)?t.fields:{},sources:Array.isArray(t.sources)?t.sources.filter(Boolean):[]}:{data:[],fields:{},sources:[]}}function E(e){return Array.isArray(e)?e.filter(Boolean).join(".")||null:e||null}function k(e){return(null==e?void 0:e.options)||e||{}}function P(e){var t,n=e.currentFields,r=e.manager,o=e.preview,a=new Map,i=(null==o?void 0:o.fields)||{},l=(null==o||null==(t=o.data)?void 0:t[0])||{};return Object.keys(l).length?Object.entries(l).forEach(function(e){var t,n,o=b(e,2),l=o[0],c=o[1],s=i[l],f=(null==s?void 0:s.interface)||("id"===l.toLowerCase()?"id":"number"==typeof c?Number.isInteger(c)?"integer":"number":"boolean"==typeof c?"checkbox":"string"==typeof c&&u()(c).isValid()?"datetime":"input"),d=(null==r||null==(n=r.getFieldInterface)||null==(t=n.call(r,f))?void 0:t.default)||{},m=(null==s?void 0:s.uiSchema)||d.uiSchema||{};a.set(l,{name:l,interface:f,type:(null==s?void 0:s.type)||d.type,source:null==s?void 0:s.source,uiSchema:v({title:l},m)})}):Object.entries(i).forEach(function(e){var t=b(e,2),n=t[0],r=t[1];a.set(n,h(v({name:n,type:"string"},r),{uiSchema:v({title:n},r.uiSchema||{})}))}),(void 0===n?[]:n).forEach(function(e){(null==e?void 0:e.name)&&a.has(e.name)&&a.set(e.name,e)}),Array.from(a.values())}function I(){var e=(0,o.useFlowContext)();return(0,a.useRequest)(function(){return y(function(){return w(this,function(t){switch(t.label){case 0:return[4,e.api.request({url:"dataSources/main/collections:list",params:{paginate:!1,sort:["sort"],filter:{"hidden.$isFalsy":!0},appends:["fields"]}})];case 1:return[2,function(e){var t=(0,c.get)(e,"data.data");if(Array.isArray(t))return t;var n=(0,c.get)(t,"data");return Array.isArray(n)?n:[]}(t.sent())]}})})()})}function x(e){var t=e.editing,n=e.loading,o=e.onChange,a=e.onConfirm,l=e.onEdit,u=e.onExecute,c=e.onValueChange,s=e.t,d=e.value;return f().createElement("div",null,f().createElement(i.Input.TextArea,{disabled:!t,value:d,onChange:function(e){null==c||c(e.target.value),null==o||o(e.target.value)}}),f().createElement(i.Button.Group,null,f().createElement(i.Button,{ghost:!0,icon:f().createElement(r.EditOutlined,null),loading:n&&t,size:"small",type:"primary",onClick:t?a:l},s(t?"Confirm":"Edit")),f().createElement(i.Button,{ghost:!0,icon:f().createElement(r.RightSquareOutlined,null),loading:n,size:"small",type:"primary",onClick:u},s("Execute"))))}function T(e){var t=(0,o.useFlowContext)(),n=t.t,r=b((0,s.useState)(function(){return!!e.form.getFieldValue("sql")}),2),l=r[0],u=r[1],d=b((0,s.useState)(function(){return!e.form.getFieldValue("sql")}),2),m=d[0],p=d[1],v=i.Form.useWatch("sql",e.form),h=t.dataSourceManager.collectionFieldInterfaceManager,S=(0,s.useRef)(!1),O=(0,a.useRequest)(function(e){return y(function(){return w(this,function(n){switch(n.label){case 0:return[4,t.api.resource("sqlCollection").execute({values:{sql:e}})];case 1:return[2,C(n.sent())]}})})()},{manual:!0}),A=(0,s.useCallback)(function(t){var n=C(t),r=e.form.getFieldValue("sources")||[],o=e.form.getFieldValue("fields")||[],a=P({currentFields:Array.isArray(o)?o:[],manager:h,preview:n});e.form.setFieldValue("sources",Array.from(new Set(g(Array.isArray(r)?r:[]).concat(g(n.sources||[]))))),e.form.setFieldValue(F,n),e.form.setFieldValue("fields",a)},[h,e.form]),j=(0,s.useCallback)(function(t){var r=(0,c.get)(t,"response.data.errors"),o=(null==r?void 0:r.map(function(e){return e.message}).filter(Boolean).join("\n"))||(0,c.get)(t,"message");e.form.setFieldValue(F,{error:o||n("SQL error")}),u(!1),p(!0)},[e.form,n]),E=(0,s.useCallback)(function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return y(function(){var n;return w(this,function(r){switch(r.label){case 0:if(!(n=e.form.getFieldValue("sql")||v))return[2];r.label=1;case 1:return r.trys.push([1,3,,4]),[4,O.runAsync(n)];case 2:return A(r.sent()),t.confirm&&(u(!0),p(!1)),[3,4];case 3:return j(r.sent()),[3,4];case 4:return[2]}})})()},[j,A,e.form,O,v]),k=(0,s.useCallback)(function(){return y(function(){return w(this,function(t){switch(t.label){case 0:if(!e.form.getFieldValue("sql")&&!v)return[2];return[4,E({confirm:!0})];case 1:return t.sent(),[2]}})})()},[e.form,E,v]),I=(0,s.useCallback)(function(){return y(function(){return w(this,function(e){switch(e.label){case 0:return[4,E()];case 1:return e.sent(),[2]}})})()},[E]);return(0,s.useEffect)(function(){!S.current&&"edit"===e.mode&&(e.form.getFieldValue("sql")||v)&&(S.current=!0,y(function(){return w(this,function(e){switch(e.label){case 0:return[4,E({confirm:!0})];case 1:return e.sent(),[2]}})})())},[e.form,e.mode,E,v]),f().createElement(i.Form.Item,{name:"sql",label:n("SQL"),rules:[{required:!0},{validator:function(){return l&&!m?Promise.resolve():Promise.reject(Error(n("Please confirm the SQL statement first")))}}]},f().createElement(x,{editing:m,loading:O.loading,t:n,onValueChange:function(){u(!1),p(!0)},onConfirm:k,onEdit:function(){return p(!0)},onExecute:I}))}function M(e){var t=(0,o.useFlowContext)().t,n=I(),r=i.Form.useWatch("sources",e.form),a=(0,s.useMemo)(function(){return Array.isArray(r)?r:[]},[r]),l=(0,s.useMemo)(function(){var e,r=(e=n.data||[],e.filter(function(e){return e.name}).map(function(e){return{value:e.name,label:(0,d.h)(e.title||e.name,t)}})),o=a.filter(function(e){return!r.some(function(t){return t.value===e})}).map(function(e){return{value:e,label:e}});return g(r).concat(g(o))},[n.data,a,t]);return f().createElement(i.Form.Item,{name:"sources",label:t("Source collections")},f().createElement(i.Select,{mode:"multiple",options:l,loading:n.loading,allowClear:!0}))}function q(e){var t=(0,o.useFlowContext)(),n=t.t,r=I(),a=t.dataSourceManager.collectionFieldInterfaceManager,l=t.dataSourceManager.getDataSource("main"),u=i.Form.useWatch(F,{form:e.form,preserve:!0}),c=(0,s.useMemo)(function(){return C(u)},[u]),m=i.Form.useWatch("sources",e.form),p=i.Form.useWatch("fields",e.form),y=(0,s.useMemo)(function(){return Array.isArray(m)?m:[]},[m]),S=(0,s.useMemo)(function(){return Array.isArray(p)?p:[]},[p]),w=(0,s.useMemo)(function(){var e,t,n,r,o;return n=(null==a||null==(e=a.getFieldInterfaceGroups)?void 0:e.call(a))||{},r=(null==a||null==(t=a.getFieldInterfaces)?void 0:t.call(a))||[],o=new Map,r.filter(function(e){return e.name&&"relation"!==e.group}).forEach(function(e){var t,n=String(e.group||"other"),r=o.get(n)||[];r.push({value:String(e.name),label:e.title||String(e.name),availableTypes:e.availableTypes,defaultType:null==(t=e.default)?void 0:t.type}),o.set(n,r)}),Array.from(o.entries()).sort(function(e,t){var r,o,a,i,l=b(e,1)[0],u=b(t,1)[0];return(null!=(r=null==(a=n[l])?void 0:a.order)?r:0)-(null!=(o=null==(i=n[u])?void 0:i.order)?o:0)}).map(function(e){var t,r=b(e,2),o=r[0],a=r[1];return{label:(null==(t=n[o])?void 0:t.label)||o,options:a}})},[a]),A=(0,s.useMemo)(function(){var e,t,o,a,i;return t=(e={collections:r.data||[],dataSource:l,sources:y,t:n}).collections,o=e.dataSource,a=e.sources,i=e.t,a.map(function(e){return t.find(function(t){return t.name===e})}).filter(Boolean).map(function(e){var t,n=e.name?null==o||null==(t=o.getCollection)?void 0:t.call(o,e.name):void 0,r="function"==typeof(null==n?void 0:n.getFields)?n.getFields():e.fields||[];return{value:e.name,label:(0,d.h)(e.title||(null==n?void 0:n.title)||e.name,i),children:r.map(k).filter(function(e){return e.name&&!O.has(String(e.type))}).map(function(e){var t,n;return{value:e.name,label:(0,d.h)((null==(t=(n=k(e)).uiSchema)?void 0:t.title)||n.title||n.name,i)}})}})},[r.data,l,y,n]),j=(0,s.useRef)();(0,s.useEffect)(function(){if(u&&j.current!==u){j.current=u;var t=P({currentFields:S,manager:a,preview:c});t.length&&e.form.setFieldValue("fields",t)}},[S,a,c,e.form,u]);var x=(0,s.useCallback)(function(t,n){var r=g(S);r.splice(t,1,h(v({},n),{source:E(n.source)})),e.form.setFieldValue("fields",r)},[S,e.form]);if(r.loading)return f().createElement(i.Spin,null);if(null==c?void 0:c.error)return f().createElement(f().Fragment,null,f().createElement(i.Form.Item,{name:"fields",hidden:!0,rules:[{required:!0}]},f().createElement(i.Input,null)),f().createElement(i.Form.Item,{label:n("Fields"),required:!0},f().createElement(i.Alert,{showIcon:!0,message:"".concat(n("SQL error: ")).concat(c.error),type:"error"})));if(!c&&!(null==S?void 0:S.length)||!(null==S?void 0:S.length))return f().createElement(f().Fragment,null,f().createElement(i.Form.Item,{name:"fields",hidden:!0,rules:[{required:!0}]},f().createElement(i.Input,null)),f().createElement(i.Form.Item,{label:n("Fields"),required:!0},f().createElement(i.Alert,{showIcon:!0,message:n("Please use a valid SELECT or WITH AS statement")})));var T=[{title:n("Field name"),dataIndex:"name",width:130},{title:n("Field source"),dataIndex:"source",width:220,render:function(e,t,o){return f().createElement(i.Cascader,{allowClear:!0,options:A,placeholder:n("Select field source"),value:"string"==typeof e?e.split("."):e,onChange:function(e){var n=function(e,t,n){if(null==t?void 0:t.length){var r,o,a=b(t,2),i=a[0],l=a[1],u=null==n||null==(r=n.getCollection)?void 0:r.call(n,i);return("function"==typeof(null==u?void 0:u.getFields)?u.getFields().map(k):(null==(o=e.find(function(e){return e.name===i}))?void 0:o.fields)||[]).find(function(e){return e.name===l})}}(r.data||[],e,l);x(o,h(v({},t),{source:e,interface:(null==n?void 0:n.interface)||t.interface,type:(null==n?void 0:n.type)||t.type,uiSchema:(null==n?void 0:n.uiSchema)||t.uiSchema}))}})}},{title:n("Field interface"),dataIndex:"interface",width:180,render:function(e,t,r){if(t.source){var o,l,u=null==a||null==(l=a.getFieldInterface)?void 0:l.call(a,e);return f().createElement(i.Tag,null,(0,d.h)((null==u?void 0:u.title)||e,n))}return f().createElement(i.Select,{allowClear:!0,popupMatchSelectWidth:!1,style:{width:"100%"},options:(o=t.type,w.map(function(e){return{label:e.label,options:e.options.filter(function(e){var t;return!o||(null==(t=e.availableTypes)?void 0:t.includes(o))||e.defaultType===o})}}).filter(function(e){return e.options.length})).map(function(e){return{label:(0,d.h)(e.label,n),options:e.options.map(function(e){return{value:e.value,label:(0,d.h)(e.label,n)}})}}),value:e||"input",onChange:function(e){var n,o,i,l,u,c,s=null==a||null==(n=a.getFieldInterface)?void 0:n.call(a,e);x(r,h(v({},t),{interface:e||null,type:(null==s||null==(o=s.default)?void 0:o.type)||t.type,uiSchema:h(v({},(null==s||null==(i=s.default)?void 0:i.uiSchema)||{}),{title:(null==s||null==(u=s.default)||null==(l=u.uiSchema)?void 0:l.title)||(null==(c=t.uiSchema)?void 0:c.title)})}))}})}},{title:n("Field display name"),dataIndex:["uiSchema","title"],width:180,render:function(e,t,n){var r;return f().createElement(i.Input,{value:(null==(r=t.uiSchema)?void 0:r.title)||t.name,onChange:function(e){x(n,h(v({},t),{uiSchema:h(v({},t.uiSchema||{}),{title:e.target.value})}))}})}}];return f().createElement(i.Form.Item,{label:n("Fields"),required:!0},f().createElement(i.Form.Item,{name:"fields",hidden:!0,rules:[{required:!0}]},f().createElement(i.Input,null)),f().createElement(i.Table,{bordered:!0,columns:T,dataSource:S,pagination:!1,rowKey:"name",scroll:{y:300},size:"small"}))}function _(e){var t=(0,o.useFlowContext)().t,n=i.Form.useWatch(F,{form:e.form,preserve:!0}),r=(0,s.useMemo)(function(){return C(n)},[n]),a=i.Form.useWatch("fields",e.form),l=(0,s.useMemo)(function(){return Array.isArray(a)?a:[]},[a]),u=(0,s.useMemo)(function(){return l.reduce(function(e,t){if(null==t?void 0:t.name){var n;e[t.name]=(null==(n=t.uiSchema)?void 0:n.title)||t.name}return e},{})},[l]),c=(0,s.useMemo)(function(){var e,t=l.map(function(e){return null==e?void 0:e.name}).filter(function(e){return!!e});return t.length?t:Object.keys((null==r||null==(e=r.data)?void 0:e[0])||{})},[l,null==r?void 0:r.data]),m=(0,s.useMemo)(function(){return c.map(function(e){return{title:(0,d.h)(u[e]||e,t),dataIndex:e,key:e}})},[c,t,u]),p=(0,s.useMemo)(function(){return((null==r?void 0:r.data)||[]).map(function(e,n){return h(v({},Object.entries(e).reduce(function(e,n){var r=b(n,2),o=r[0],a=r[1];return e[o]="string"==typeof a?(0,d.h)(a,t):a,e},{})),{key:n})})},[null==r?void 0:r.data,t]);return f().createElement(i.Form.Item,{label:t("Preview")},f().createElement(i.Table,{bordered:!0,columns:m,dataSource:p,pagination:!1,rowKey:"key",scroll:{x:Math.max(150*m.length,300),y:300}}))}function V(e){var t=v({},e);return delete t[F],Array.isArray(t.fields)&&(t.fields=t.fields.map(function(e){return h(v({},e),{source:E(e.source)})})),t}function D(){return F}},890:function(e,t,n){n.d(t,{A:function(){return er},v:function(){return en}});var r=n(485),o=n(155),a=n.n(o),i=n(143),l=n(978),u=n(694),c=n(625),s=n(59),f=n(773),d=n(938);function m(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 p(e,t,n,r,o,a,i){try{var l=e[a](i),u=l.value}catch(e){n(e);return}l.done?t(u):Promise.resolve(u).then(r,o)}function y(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function i(e){p(a,r,o,i,l,"next",e)}function l(e){p(a,r,o,i,l,"throw",e)}i(void 0)})}}function v(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function h(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){v(e,t,n[t])})}return e}function b(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 g(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,t)||w(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 S(e){return function(e){if(Array.isArray(e))return m(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||w(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 w(e,t){if(e){if("string"==typeof e)return m(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 m(e,t)}}function O(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),l=Object.defineProperty;return l(i,"next",{value:u(0)}),l(i,"throw",{value:u(1)}),l(i,"return",{value:u(2)}),"function"==typeof Symbol&&l(i,Symbol.iterator,{value:function(){return this}}),i;function u(l){return function(u){var c=[l,u];if(n)throw TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=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(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var F=new Set(["hasOne","hasMany","belongsToMany"]),A="__viewUnsupportedFields";function j(e){var t=(0,f.get)(e,"data.data");return Array.isArray(t)?t:Array.isArray((0,f.get)(t,"data"))?(0,f.get)(t,"data"):[]}function C(e){var t=e||{};return t.rawTitle,function(e,t){if(null==e)return{};var n,r,o,a={};if("u">typeof Reflect&&Reflect.ownKeys){for(o=0,n=Reflect.ownKeys(Object(e));o<n.length;o++)r=n[o],!(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,o={},a=Object.getOwnPropertyNames(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n]);return o}(e,t),Object.getOwnPropertySymbols)for(o=0,n=Object.getOwnPropertySymbols(e);o<n.length;o++)r=n[o],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r]);return a}(t,["rawTitle"])}function E(e){return Array.isArray(e)?e.filter(Boolean):"string"==typeof e?e.split(".").filter(Boolean):[]}function k(e){var t=E(e);return t.length?t.join("."):null}function P(e){return(null==e?void 0:e.options)||e||{}}function I(){var e=(0,u.useFlowContext)();return(0,c.useRequest)(function(){return y(function(){return O(this,function(t){switch(t.label){case 0:return[4,e.api.request({url:"dataSources/main/collections:list",params:{paginate:!1,sort:["sort"],filter:{"hidden.$isFalsy":!0},appends:["fields"]}})];case 1:return[2,j(t.sent())]}})})()})}function x(e){var t=(0,u.useFlowContext)(),n=(0,i.kj)(),r=t.dataSourceManager.collectionFieldInterfaceManager,l=(0,o.useRef)(),m=g((0,o.useState)(!1),2),p=m[0],S=m[1],w=s.Form.useWatch("databaseView",e.form),F=s.Form.useWatch("schema",e.form),E=s.Form.useWatch("viewName",e.form),P=(0,o.useMemo)(function(){return w||(E?F?"".concat(F,"@").concat(E):E:void 0)},[w,F,E]),I=(0,o.useMemo)(function(){var e;return((null==r||null==(e=r.getFieldInterfaces)?void 0:e.call(r))||[]).reduce(function(e,t){return t.name&&(e[t.name]=t),e},{})},[r]),x=(0,c.useRequest)(function(){return y(function(){return O(this,function(e){switch(e.label){case 0:return[4,t.api.resource("dbViews").list()];case 1:return[2,j(e.sent())]}})})()}),T=(0,o.useMemo)(function(){var e=(x.data||[]).map(function(e){return{value:e.schema?"".concat(e.schema,"@").concat(e.name):e.name,label:e.schema?"".concat(e.schema,".").concat((0,d.h)(e.name,n)):(0,d.h)(e.name,n)}});return P&&!e.some(function(e){return e.value===P})&&e.unshift({value:P,label:F?"".concat(F,".").concat((0,d.h)(E||P,n)):(0,d.h)(E||P,n)}),e},[P,n,x.data,F,E]),M=(0,o.useCallback)(function(n,r){return y(function(){var o,a,i,l;return O(this,function(u){switch(u.label){case 0:S(!0),u.label=1;case 1:return u.trys.push([1,,3,4]),[4,t.api.resource("dbViews").get({filterByTk:n,schema:r||void 0})];case 2:var c,s,d,m,p;return c=u.sent(),o={fields:(s=(0,f.get)(c,"data.data")||(0,f.get)(c,"data")||c||{}).fields,sources:s.sources,unsupportedFields:s.unsupportedFields},p=new Map(((m={currentFields:Array.isArray(a=e.form.getFieldValue("fields")||[])?a:[],fieldInterfacesByName:I,inferredFields:(d=o.fields)?(Array.isArray(d)?d:Object.values(d)).filter(Boolean):[]}).currentFields||[]).map(function(e){return[e.name,e]})),i=m.inferredFields.map(function(e){var t,n,r,o=p.get(e.name)||e,a=m.fieldInterfacesByName[o.interface||e.interface||""],i=(null==a||null==(t=a.default)?void 0:t.uiSchema)||{},l=(null==(n=o.uiSchema)?void 0:n.title)||o.title||(null==(r=e.uiSchema)?void 0:r.title)||e.name,u=b(h({},C(i),C(o.uiSchema||e.uiSchema)),{title:l});return e.source?b(h({},e),{interface:e.interface||o.interface,type:e.type||o.type,uiSchema:u}):b(h({},e,o),{uiSchema:u})}),l=Array.isArray(o.sources)?o.sources:[],e.form.setFieldsValue(v({fields:i.map(function(e){return b(h({},e),{source:k(e.source)})}),sources:l},A,Array.isArray(o.unsupportedFields)?o.unsupportedFields:[])),[3,4];case 3:return S(!1),[7];case 4:return[2]}})})()},[t.api,I,e.form]),q=(0,o.useCallback)(function(t){var n=function(e){if(!e)return{schema:null,viewName:null};var t=g(e.includes("@")?e.split("@"):[null,e],2);return{schema:t[0]||null,viewName:t[1]||e}}(t),r=n.schema,o=n.viewName;if(e.form.setFieldsValue(v({databaseView:t,schema:r,viewName:o,fields:[],sources:[]},A,[])),o){var a=e.form.getFieldValue("name");(!e.form.isFieldTouched("name")||a===l.current||/^t_[A-Za-z0-9]+$/.test(a))&&(l.current=o,e.form.setFieldValue("name",o)),M(o,r)}},[M,e.form]);return(0,o.useEffect)(function(){!w&&P&&e.form.setFieldValue("databaseView",P)},[P,e.form,w]),a().createElement(s.Spin,{spinning:p},a().createElement(s.Form.Item,{name:"databaseView",label:n("Connect to database view"),rules:[{required:!0,message:n("Please select a database view")}]},a().createElement(s.Select,{allowClear:!0,loading:x.loading,options:T,showSearch:!0,optionFilterProp:"label",disabled:"edit"===e.mode,onChange:q})),a().createElement(s.Form.Item,{name:"schema",hidden:!0},a().createElement(s.Input,null)),a().createElement(s.Form.Item,{name:"viewName",hidden:!0,rules:[{required:!0}]},a().createElement(s.Input,null)))}function T(e){var t=(0,i.kj)(),n=I(),r=s.Form.useWatch("sources",e.form),l=(0,o.useMemo)(function(){return Array.isArray(r)?r:[]},[r]),u=(0,o.useMemo)(function(){var e,r=(e=n.data||[],e.filter(function(e){return e.name}).map(function(e){return{value:e.name,label:(0,d.h)(e.title||e.name,t)}})),o=l.filter(function(e){return!r.some(function(t){return t.value===e})}).map(function(e){return{value:e,label:e}});return S(r).concat(S(o))},[n.data,l,t]);return a().createElement(s.Form.Item,{name:"sources",label:t("Source collections")},a().createElement(s.Select,{mode:"multiple",options:u,loading:n.loading,disabled:!0,allowClear:!0}))}function M(e){var t=(0,u.useFlowContext)(),n=(0,i.kj)(),r=I(),l=t.dataSourceManager.collectionFieldInterfaceManager,c=t.dataSourceManager.getDataSource("main"),f=s.Form.useWatch("fields",e.form),m=s.Form.useWatch("sources",e.form),p=s.Form.useWatch(A,{form:e.form,preserve:!0}),y=(0,o.useMemo)(function(){return Array.isArray(f)?f:[]},[f]),v=(0,o.useMemo)(function(){return Array.isArray(m)?m:[]},[m]),w=(0,o.useMemo)(function(){var e,t,n,r,o;return n=(null==l||null==(e=l.getFieldInterfaceGroups)?void 0:e.call(l))||{},r=(null==l||null==(t=l.getFieldInterfaces)?void 0:t.call(l))||[],o=new Map,r.filter(function(e){return e.name&&!["relation","systemInfo"].includes(String(e.group))}).forEach(function(e){var t=String(e.group||"other"),n=o.get(t)||[];n.push({value:String(e.name),label:e.title||String(e.name),availableTypes:e.availableTypes}),o.set(t,n)}),Array.from(o.entries()).sort(function(e,t){var r,o,a,i,l=g(e,1)[0],u=g(t,1)[0];return(null!=(r=null==(a=n[l])?void 0:a.order)?r:0)-(null!=(o=null==(i=n[u])?void 0:i.order)?o:0)}).map(function(e){var t,r=g(e,2),o=r[0],a=r[1];return{label:(null==(t=n[o])?void 0:t.label)||o,options:a}})},[l]),O=(0,o.useMemo)(function(){return v.map(function(e){return(r.data||[]).find(function(t){return t.name===e})}).filter(Boolean).map(function(e){var t,r=null==c||null==(t=c.getCollection)?void 0:t.call(c,e.name),o="function"==typeof(null==r?void 0:r.getFields)?r.getFields():e.fields||[];return{value:e.name,label:(0,d.h)(e.title||(null==r?void 0:r.title)||e.name,n),children:o.map(P).filter(function(e){return e.name&&!F.has(String(e.type))}).map(function(e){var t,r;return{value:e.name,label:(0,d.h)((null==(t=(r=P(e)).uiSchema)?void 0:t.title)||r.title||r.name,n)}})}})},[r.data,c,v,n]),j=(0,o.useCallback)(function(t,n){var r=S(y);r.splice(t,1,b(h({},n),{source:k(n.source)})),e.form.setFieldValue("fields",r)},[y,e.form]),x=[{title:n("Field name"),dataIndex:"name",width:130},{title:n("Field source"),dataIndex:"source",width:220,render:function(e,t,o){return a().createElement(s.Cascader,{allowClear:!0,options:O,placeholder:n("Select field source"),value:E(e),onChange:function(e){var n,a,i,l=(e||[]).map(String),u=(r.data||[]).find(function(e){return e.name===l[0]}),s=l[0]?null==c||null==(n=c.getCollection)?void 0:n.call(c,l[0]):void 0,f=("function"==typeof(null==s?void 0:s.getFields)?s.getFields().map(P):(null==u?void 0:u.fields)||[]).find(function(e){return e.name===l[1]});j(o,b(h({},t),{source:l,interface:(null==f?void 0:f.interface)||t.interface,type:(null==f?void 0:f.type)||t.type,uiSchema:b(h({},t.uiSchema,null==f?void 0:f.uiSchema),{title:(null==f||null==(a=f.uiSchema)?void 0:a.title)||(null==(i=t.uiSchema)?void 0:i.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)?a().createElement(s.Select,{value:e,style:{width:"100%"},popupMatchSelectWidth:!1,options:t.possibleTypes.map(function(e){return{label:e,value:e}}),onChange:function(e){return j(n,b(h({},t),{type:e}))}}):a().createElement(s.Tag,null,e)}},{title:n("Field interface"),dataIndex:"interface",width:180,render:function(e,t,r){if(t.source){var o,i=null==l||null==(o=l.getFieldInterface)?void 0:o.call(l,e);return a().createElement(s.Tag,null,(0,d.h)((null==i?void 0:i.title)||e,n))}return a().createElement(s.Select,{allowClear:!0,popupMatchSelectWidth:!1,style:{width:"100%"},options:w.map(function(e){return{label:(0,d.h)(e.label,n),options:e.options.filter(function(e){var n;return!t.type||(null==(n=e.availableTypes)?void 0:n.includes(t.type))}).map(function(e){return{value:e.value,label:(0,d.h)(e.label,n)}})}}),value:e||void 0,onChange:function(e){var n,o,a,i,u,c,s=null==l||null==(n=l.getFieldInterface)?void 0:n.call(l,e);j(r,b(h({},t),{interface:e||null,type:(null==s||null==(o=s.default)?void 0:o.type)||t.type,uiSchema:b(h({},null==s||null==(a=s.default)?void 0:a.uiSchema),{title:(null==s||null==(u=s.default)||null==(i=u.uiSchema)?void 0:i.title)||(null==(c=t.uiSchema)?void 0:c.title)||t.name})}))}})}},{title:n("Field display name"),dataIndex:["uiSchema","title"],width:180,render:function(e,t,n){var r;return a().createElement(s.Input,{value:(null==(r=t.uiSchema)?void 0:r.title)||t.name,onChange:function(e){j(n,b(h({},t),{uiSchema:b(h({},C(t.uiSchema)),{title:e.target.value})}))}})}}];return r.loading?a().createElement(s.Spin,null):a().createElement(a().Fragment,null,a().createElement(s.Form.Item,{name:"fields",hidden:!0,rules:[{required:!0}]},a().createElement(s.Input,null)),y.length?a().createElement(s.Form.Item,{label:n("Fields"),required:!0,extra:n("Fields can only be used correctly if they are defined with an interface.")},a().createElement(s.Table,{bordered:!0,columns:x,dataSource:y,pagination:!1,rowKey:"name",scroll:{y:300}})):a().createElement(s.Form.Item,{label:n("Fields"),required:!0},a().createElement(s.Alert,{showIcon:!0,message:n("Please select a database view")})),(null==p?void 0:p.length)?a().createElement(s.Alert,{showIcon:!0,type:"warning",message:n("Unsupported fields"),description:p.map(function(e){return e.name}).join(", "),style:{marginBottom:24}}):null)}function q(e){var t=(0,u.useFlowContext)(),n=(0,i.kj)(),r=s.Form.useWatch("viewName",e.form),l=s.Form.useWatch("schema",e.form),c=s.Form.useWatch("fields",e.form),f=(0,o.useMemo)(function(){return Array.isArray(c)?c:[]},[c]),m=g((0,o.useState)(!1),2),p=m[0],v=m[1],h=g((0,o.useState)([]),2),b=h[0],S=h[1],w=(0,o.useMemo)(function(){var e=["lineString","point","circle","polygon"];return JSON.stringify(f.reduce(function(t,n){return n.type&&e.includes(n.type)&&(t[n.name]=n.type),t},{}))},[f]),F=(0,o.useMemo)(function(){return f.filter(function(e){return e.source||e.interface}).map(function(e){var t;return{title:(0,d.h)((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)}}})},[f,n]);return(0,o.useEffect)(function(){if(!r||!f.length)return void S([]);var e=!1;return y(function(){var n;return O(this,function(o){switch(o.label){case 0:v(!0),o.label=1;case 1:return o.trys.push([1,,3,4]),[4,t.api.resource("dbViews").query({filterByTk:r,schema:l||void 0,fieldTypes:JSON.parse(w)})];case 2:return n=o.sent(),e||S(j(n)),[3,4];case 3:return e||v(!1),[7];case 4:return[2]}})})(),function(){e=!0}},[t.api,w,f.length,l,r]),a().createElement(s.Form.Item,{label:n("Preview")},a().createElement(s.Spin,{spinning:p},a().createElement(s.Table,{bordered:!0,columns:F,dataSource:b,pagination:!1,rowKey:function(e,t){return String(null!=t?t:0)},scroll:{x:1e3,y:300}})))}function _(e){var t=h({},e);return delete t[A],Array.isArray(t.fields)&&(t.fields=t.fields.map(function(e){return b(h({},e),{source:k(e.source)})})),t}var V=n(448);function D(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 B(e,t,n,r,o,a,i){try{var l=e[a](i),u=l.value}catch(e){n(e);return}l.done?t(u):Promise.resolve(u).then(r,o)}function N(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function i(e){B(a,r,o,i,l,"next",e)}function l(e){B(a,r,o,i,l,"throw",e)}i(void 0)})}}function R(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}function K(e,t,n){return(K=Z()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&Q(o,n.prototype),o}).apply(null,arguments)}function W(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function L(e,t,n){return t&&W(e.prototype,t),n&&W(e,n),e}function U(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function $(e){return($=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function G(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){U(e,t,n[t])})}return e}function J(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 Q(e,t){return(Q=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function z(e){return function(e){if(Array.isArray(e))return D(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e){if(e){if("string"==typeof e)return D(e,void 0);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return D(e,void 0)}}(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function H(e){var t="function"==typeof Map?new Map:void 0;return(H=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return K(e,arguments,$(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),Q(n,e)})(e)}function Z(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Z=function(){return!!e})()}function X(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),l=Object.defineProperty;return l(i,"next",{value:u(0)}),l(i,"throw",{value:u(1)}),l(i,"return",{value:u(2)}),"function"==typeof Symbol&&l(i,Symbol.iterator,{value:function(){return this}}),i;function u(l){return function(u){var c=[l,u];if(n)throw TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=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(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var Y=function(){function e(){R(this,e),U(this,"templates",new Map)}return L(e,[{key:"register",value:function(e,t){var n="string"==typeof e?J(G({},t),{name:(null==t?void 0:t.name)||e}):e;(null==n?void 0:n.name)&&this.templates.set(n.name,J(G({},n),{name:n.name}))}},{key:"get",value:function(e){return e?this.templates.get(e):void 0}},{key:"getAll",value:function(){return z(this.templates.values()).sort(function(e,t){var n,r;return(null!=(n=e.order)?n:0)-(null!=(r=t.order)?r:0)})}}]),e}(),ee=function(){function e(){R(this,e),U(this,"fields",new Map)}return L(e,[{key:"register",value:function(e){var t,n=e.name||(null==(t=e.value)?void 0:t.name);n&&this.fields.set(n,J(G({},e),{name:n}))}},{key:"remove",value:function(e){this.fields.delete(e)}},{key:"getAll",value:function(){return z(this.fields.values()).sort(function(e,t){var n,r;return(null!=(n=e.order)?n:0)-(null!=(r=t.order)?r:0)})}}]),e}(),et=function(){function e(){R(this,e),U(this,"managerActions",[])}return L(e,[{key:"registerManagerAction",value:function(e){var t=e.order,n=e.component;this.managerActions.push({order:null!=t?t:0,component:n})}},{key:"getManagerActions",value:function(){return z(this.managerActions).sort(function(e,t){return e.order-t.order})}}]),e}(),en=function(e){if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function t(){var e,n,r;return R(this,t),n=t,r=arguments,n=$(n),U(e=function(e,t){var n;if(t&&("object"==((n=t)&&"u">typeof Symbol&&n.constructor===Symbol?"symbol":typeof n)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,Z()?Reflect.construct(n,r||[],$(this).constructor):n.apply(this,r)),"types",new Map),U(e,"extensionManager",new et),U(e,"collectionTemplateRegistry",new Y),U(e,"collectionPresetFieldRegistry",new ee),e}return t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&Q(t,e),L(t,[{key:"load",value:function(){return N(function(){var e;return X(this,function(t){return e=this,this.registerBuiltInCollectionPresetFields(),this.registerBuiltInCollectionTemplates(),this.dataSourceManager.registerLoader("*",function(){return N(function(){var e,t,n;return X(this,function(r){switch(r.label){case 0:return[4,this.app.apiClient.request({resource:"dataSources",action:"listEnabled",params:{paginate:!1,appends:["collections"]}})];case 1:return n=(null==(t=r.sent())||null==(e=t.data)?void 0:e.data)||[],(0,V.b)(this.dataSourceManager,n),[2,{dataSources:n}]}})}).call(e)}),this.pluginSettingsManager.addMenuItem({key:i.CU,title:this.t("Data sources"),icon:"ClusterOutlined",isPinned:!0,sort:100,showTabs:!1,aclSnippet:"pm.data-source-manager*"}),this.pluginSettingsManager.addPageTabItem({menuKey:i.CU,key:"index",title:this.t("Data sources"),componentLoader:function(){return n.e("426").then(n.bind(n,649))},sort:1,aclSnippet:"pm.data-source-manager"}),this.pluginSettingsManager.addPageTabItem({menuKey:i.CU,key:"collections",title:this.t("Collections"),componentLoader:function(){return n.e("167").then(n.bind(n,442))},sort:2,aclSnippet:"pm.data-source-manager"}),this.pluginSettingsManager.addPageTabItem({menuKey:i.CU,key:"collections/:dataSourceKey",title:this.t("Collections"),componentLoader:function(){return n.e("167").then(n.bind(n,442))},hidden:!0,sort:3,aclSnippet:"pm.data-source-manager"}),[2]})}).call(this)}},{key:"registerType",value:function(e,t){this.types.set(e,J(G({},t),{name:t.name||e}))}},{key:"getType",value:function(e){return e?this.types.get(e):void 0}},{key:"registerFieldInterfaceConfigure",value:function(e){var t,n;null==(n=this.dataSourceManager.collectionFieldInterfaceManager)||null==(t=n.registerFieldInterfaceConfigure)||t.call(n,e)}},{key:"registerCollectionTemplate",value:function(e,t){this.collectionTemplateRegistry.register(e,t)}},{key:"registerCollectionPresetField",value:function(e){this.collectionPresetFieldRegistry.register(e)}},{key:"addCollectionPresetField",value:function(e){this.registerCollectionPresetField(e)}},{key:"removeCollectionPresetField",value:function(e){this.collectionPresetFieldRegistry.remove(e)}},{key:"getCollectionPresetFields",value:function(){return this.collectionPresetFieldRegistry.getAll()}},{key:"getCollectionTemplate",value:function(e){return this.collectionTemplateRegistry.get(e)}},{key:"getCollectionTemplates",value:function(){return this.collectionTemplateRegistry.getAll()}},{key:"registerBuiltInCollectionPresetFields",value:function(){this.registerCollectionPresetField({order:100,description:'{{t("Primary key, distributed uniqueness, time-ordering") }}',value:{name:"id",type:"snowflakeId",autoIncrement:!1,primaryKey:!0,allowNull:!1,uiSchema:{type:"number",title:'{{t("ID")}}',"x-component":"InputNumber","x-component-props":{stringMode:!0,separator:"0.00",step:"1"},"x-validator":"integer"},interface:"snowflakeId"}}),this.registerCollectionPresetField({order:200,description:'{{t("Store the creation time of each record")}}',value:{name:"createdAt",interface:"createdAt",type:"date",field:"createdAt",uiSchema:{type:"datetime",title:'{{t("Created at")}}',"x-component":"DatePicker","x-component-props":{},"x-read-pretty":!0}}}),this.registerCollectionPresetField({order:300,description:'{{t("Store the creation user of each record") }}',value:{name:"createdBy",interface:"createdBy",type:"belongsTo",target:"users",foreignKey:"createdById",uiSchema:{type:"object",title:'{{t("Created by")}}',"x-component":"AssociationField","x-component-props":{fieldNames:{value:"id",label:"nickname"}},"x-read-pretty":!0}}}),this.registerCollectionPresetField({order:400,description:'{{t("Store the last update time of each record")}}',value:{type:"date",field:"updatedAt",name:"updatedAt",interface:"updatedAt",uiSchema:{type:"datetime",title:'{{t("Last updated at")}}',"x-component":"DatePicker","x-component-props":{},"x-read-pretty":!0}}}),this.registerCollectionPresetField({order:500,description:'{{t("Store the last update user of each record")}}',value:{type:"belongsTo",target:"users",foreignKey:"updatedById",name:"updatedBy",interface:"updatedBy",uiSchema:{type:"object",title:'{{t("Last updated by")}}',"x-component":"AssociationField","x-component-props":{fieldNames:{value:"id",label:"nickname"}},"x-read-pretty":!0}}})}},{key:"registerBuiltInCollectionTemplates",value:function(){this.registerCollectionTemplate({name:"general",title:'{{t("General collection")}}',order:10,color:"blue",collection:{options:{template:"general"},fields:[]}}),this.registerCollectionTemplate({name:"tree",title:'{{t("Tree collection")}}',order:30,color:"blue",collection:{options:{template:"tree",tree:"adjacencyList"},fields:[{interface:"integer",name:"parentId",type:"bigInt",title:'{{t("Parent ID")}}',isForeignKey:!0,uiSchema:{"x-read-pretty":!0}},{interface:"m2o",type:"belongsTo",name:"parent",title:'{{t("Parent")}}',foreignKey:"parentId",treeParent:!0,onDelete:"CASCADE",componentProps:{multiple:!1,fieldNames:{label:"id",value:"id"}}},{interface:"o2m",type:"hasMany",name:"children",title:'{{t("Children")}}',foreignKey:"parentId",treeChildren:!0,onDelete:"CASCADE",componentProps:{multiple:!0,fieldNames:{label:"id",value:"id"}}}]},presetFields:{disabledIncludes:["id"]},configure:{transformSubmitValues:function(e){if(Array.isArray(e.fields)){e.fields=e.fields.map(function(t){return!t.target&&["belongsToMany","belongsTo","hasMany","hasOne"].includes(t.type)?J(G({},t),{target:e.name}):t});var t=e.fields.find(function(e){return e.primaryKey}),n=e.fields.find(function(e){return"parentId"===e.name&&e.isForeignKey});if(t&&n){var r,o=null==(r=n.uiSchema)?void 0:r.title;n.interface=t.interface,n.type=t.type,n.uiSchema=structuredClone(t.uiSchema||{}),n.uiSchema.title=o,n.autoFill=!1}}}}}),this.registerCollectionTemplate({name:"sql",title:'{{t("SQL collection")}}',order:40,color:"yellow",divider:!0,collection:{options:{template:"sql"},fields:[]},capabilities:{recordUniqueKey:!0},configure:{items:[{name:"sql",Component:l.FL,required:!0},{name:"sources",Component:l.uT},{name:"fields",Component:l.J6,required:!0},{name:"preview",Component:l.eA}],transformSubmitValues:l.k_}}),this.registerCollectionTemplate({name:"view",title:'{{t("Connect to database view")}}',order:50,color:"yellow",divider:!0,collection:{options:{template:"view",view:!0},fields:[]},capabilities:{recordUniqueKey:!0,simplePaginate:!0},presetFields:{disabled:!0},fieldInterfaces:{create:{include:["m2o"]}},configure:{items:[{name:"databaseView",Component:x,required:!0},{name:"sources",Component:T},{name:"fields",Component:M,required:!0,hidden:function(e){return"edit"===e.mode}},{name:"preview",Component:q,hidden:function(e){return"edit"===e.mode}},{name:"writableView",label:'{{t("Allow add new, update and delete actions")}}',component:"Checkbox"}],transformSubmitValues:_}})}}]),t}(H(r.Plugin)),er=en},143:function(e,t,n){n.d(t,{CU:function(){return o},kj:function(){return a}});var r=n(694),o=JSON.parse('{"UU":"@nocobase/plugin-data-source-manager"}').UU;function a(){var e=(0,r.useFlowEngine)();return function(t){return e.context.t(t,{ns:[o,"client"]})}}},448:function(e,t,n){n.d(t,{b:function(){return o},h:function(){return a}});var r=n(694);function o(e,t){e&&t.forEach(function(t){var n,o,a,i,l=(n=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},t),o=o={key:t.key,use:"main"===t.key?void 0:r.DataSource},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n);e.getDataSource(t.key)?null==(a=e.getDataSource(t.key))||a.patchOptions(l):e.addDataSource(l),Array.isArray(t.collections)&&(null==(i=e.getDataSource(t.key))||i.setCollections(t.collections,{clearFields:!0}))})}function a(e,t){e&&t.forEach(function(t){"main"!==String(t)&&e.removeDataSource(String(t))})}},938:function(e,t,n){n.d(t,{A:function(){return i},h:function(){return a}});var r=/^\s*\{\{\s*t\s*\(\s*(['"])(.*?)\1(?:\s*,[\s\S]*?)?\)\s*\}\}\s*$/,o=/\{\{\s*t\s*\(\s*(['"])(.*?)\1(?:\s*,[\s\S]*?)?\)\s*\}\}/g;function a(e,t){if("string"!=typeof e)return e;var n=e.match(r);return(null==n?void 0:n[2])?t(n[2]):e.replace(o,function(e,n,r){return t(r)})}function i(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"-",r=a(e,t);return null==r||""===r?n:"string"==typeof r||"number"==typeof r||"boolean"==typeof r?String(r):n}},375:function(e){e.exports=t},799:function(e){e.exports=n},428:function(e){e.exports=i},485:function(e){e.exports=a},694:function(e){e.exports=r},768:function(e){e.exports=s},625:function(e){e.exports=o},59:function(e){e.exports=c},185:function(e){e.exports=l},773:function(e){e.exports=f},155:function(e){e.exports=u},61:function(t){t.exports=e}},b={};function g(e){var t=b[e];if(void 0!==t)return t.exports;var n=b[e]={exports:{}};return h[e](n,n.exports,g),n.exports}g.m=h,g.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return g.d(t,{a:t}),t},g.d=function(e,t){for(var n in t)g.o(t,n)&&!g.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},g.f={},g.e=function(e){return Promise.all(Object.keys(g.f).reduce(function(t,n){return g.f[n](e,t),t},[]))},g.u=function(e){return""+e+"."+({167:"c72713810e2d0526",426:"3cd9f994a3145829"})[e]+".js"},g.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),g.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},S={},g.l=function(e,t,n,r){if(S[e])return void S[e].push(t);if(void 0!==n)for(var o,a,i=document.getElementsByTagName("script"),l=0;l<i.length;l++){var u=i[l];if(u.getAttribute("src")==e||u.getAttribute("data-rspack")=="@nocobase/plugin-data-source-manager/client-v2:"+n){o=u;break}}o||(a=!0,(o=document.createElement("script")).timeout=120,g.nc&&o.setAttribute("nonce",g.nc),o.setAttribute("data-rspack","@nocobase/plugin-data-source-manager/client-v2:"+n),o.src=e),S[e]=[t];var c=function(t,n){o.onerror=o.onload=null,clearTimeout(s);var r=S[e];if(delete S[e],o.parentNode&&o.parentNode.removeChild(o),r&&r.forEach(function(e){return e(n)}),t)return t(n)},s=setTimeout(c.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=c.bind(null,o.onerror),o.onload=c.bind(null,o.onload),a&&document.head.appendChild(o)},g.r=function(e){"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},g.g.importScripts&&(w=g.g.location+"");var S,w,O=g.g.document;if(!w&&O&&(O.currentScript&&"SCRIPT"===O.currentScript.tagName.toUpperCase()&&(w=O.currentScript.src),!w)){var F=O.getElementsByTagName("script");if(F.length)for(var A=F.length-1;A>-1&&(!w||!/^http(s?):/.test(w));)w=F[A--].src}if(!w)throw Error("Automatic publicPath is not supported in this browser");g.p=w.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),d={889:0},g.f.j=function(e,t){var n=g.o(d,e)?d[e]:void 0;if(0!==n)if(n)t.push(n[2]);else{var r=new Promise(function(t,r){n=d[e]=[t,r]});t.push(n[2]=r);var o=g.p+g.u(e),a=Error();g.l(o,function(t){if(g.o(d,e)&&(0!==(n=d[e])&&(d[e]=void 0),n)){var r=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;a.message="Loading chunk "+e+" failed.\n("+r+": "+o+")",a.name="ChunkLoadError",a.type=r,a.request=o,n[1](a)}},"chunk-"+e,e)}},m=function(e,t){var n,r,o=t[0],a=t[1],i=t[2],l=0;if(o.some(function(e){return 0!==d[e]})){for(n in a)g.o(a,n)&&(g.m[n]=a[n]);i&&i(g)}for(e&&e(t);l<o.length;l++)r=o[l],g.o(d,r)&&d[r]&&d[r][0](),d[r]=0},(p=self.webpackChunk_nocobase_plugin_data_source_manager_client_v2=self.webpackChunk_nocobase_plugin_data_source_manager_client_v2||[]).forEach(m.bind(null,0)),p.push=m.bind(null,p.push.bind(p));var j={};return!function(){var e="",t="u">typeof document?document.currentScript:null;if(t&&t.src&&(e=t.src.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/")),!e){var n=window.__webpack_public_path__||"";n&&("/"!==n.charAt(n.length-1)&&(n+="/"),e=n+"static/plugins/@nocobase/plugin-data-source-manager/dist/client-v2/")}if(!e){if(!(e=window.__nocobase_public_path__||"")&&window.location&&window.location.pathname){var r=window.location.pathname||"/",o=r.indexOf("/v2/");e=o>=0?r.slice(0,o+1):"/"}e&&(e=e.replace(/\/v2\/?$/,"/")),e||(e="/"),"/"!==e.charAt(e.length-1)&&(e+="/"),e+="static/plugins/@nocobase/plugin-data-source-manager/dist/client-v2/"}g.p=e}(),g.r(j),g.d(j,{PluginDataSourceManagerClientV2:function(){return y.v},compileLegacyTemplate:function(){return v.h},compileLegacyTemplateText:function(){return v.A},default:function(){return y.A}}),y=g(890),v=g(938),j}()});
|
|
@@ -0,0 +1,11 @@
|
|
|
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
|
+
export declare const NAMESPACE: string;
|
|
10
|
+
export declare function tExpr(key: string): string;
|
|
11
|
+
export declare function useT(): (key: string) => string;
|
|
@@ -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
|
+
import React from 'react';
|
|
10
|
+
export default function DataSourceCollectionsPage(): React.JSX.Element;
|
|
@@ -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
|
+
import React from 'react';
|
|
10
|
+
export default function DataSourcesPage(): React.JSX.Element;
|
|
@@ -0,0 +1,15 @@
|
|
|
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
|
+
import React from 'react';
|
|
10
|
+
interface CollectionsPageProps {
|
|
11
|
+
dataSourceKey: string;
|
|
12
|
+
title?: React.ReactNode;
|
|
13
|
+
}
|
|
14
|
+
declare function CollectionsPage(props: CollectionsPageProps): React.JSX.Element;
|
|
15
|
+
export default CollectionsPage;
|
|
@@ -0,0 +1,19 @@
|
|
|
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
|
+
import React from 'react';
|
|
10
|
+
interface FieldFormProps {
|
|
11
|
+
mode: 'create' | 'edit';
|
|
12
|
+
dataSourceKey: string;
|
|
13
|
+
collection: Record<string, any>;
|
|
14
|
+
interfaceName?: string;
|
|
15
|
+
field?: Record<string, any>;
|
|
16
|
+
onSubmitted: () => void;
|
|
17
|
+
}
|
|
18
|
+
export declare function FieldForm(props: FieldFormProps): React.JSX.Element;
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
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
|
+
import React from 'react';
|
|
10
|
+
interface FieldsPageProps {
|
|
11
|
+
dataSourceKey: string;
|
|
12
|
+
collection: Record<string, any>;
|
|
13
|
+
}
|
|
14
|
+
export default function FieldsPage(props: FieldsPageProps): React.JSX.Element;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,62 @@
|
|
|
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
|
+
import React from 'react';
|
|
10
|
+
import type { CollectionTemplateConfigureItemProps } from '../../plugin';
|
|
11
|
+
export type SqlPreviewField = {
|
|
12
|
+
collection?: string;
|
|
13
|
+
interface?: string;
|
|
14
|
+
source?: string | string[];
|
|
15
|
+
type?: string;
|
|
16
|
+
uiSchema?: Record<string, unknown>;
|
|
17
|
+
};
|
|
18
|
+
export type SqlPreviewResult = {
|
|
19
|
+
data?: Array<Record<string, unknown>>;
|
|
20
|
+
error?: string;
|
|
21
|
+
fields?: Record<string, SqlPreviewField>;
|
|
22
|
+
sources?: string[];
|
|
23
|
+
};
|
|
24
|
+
export type SqlFieldRecord = {
|
|
25
|
+
interface?: string;
|
|
26
|
+
name: string;
|
|
27
|
+
source?: string | string[] | null;
|
|
28
|
+
type?: string;
|
|
29
|
+
uiSchema?: Record<string, unknown>;
|
|
30
|
+
};
|
|
31
|
+
type FieldInterfaceRecord = {
|
|
32
|
+
default?: {
|
|
33
|
+
type?: string;
|
|
34
|
+
uiSchema?: Record<string, unknown>;
|
|
35
|
+
};
|
|
36
|
+
name?: string;
|
|
37
|
+
title?: React.ReactNode;
|
|
38
|
+
availableTypes?: string[];
|
|
39
|
+
};
|
|
40
|
+
type FieldInterfaceManager = {
|
|
41
|
+
getFieldInterface?: (name?: string) => FieldInterfaceRecord | undefined;
|
|
42
|
+
getFieldInterfaceGroups?: () => Record<string, {
|
|
43
|
+
label?: React.ReactNode;
|
|
44
|
+
order?: number;
|
|
45
|
+
}>;
|
|
46
|
+
getFieldInterfaces?: () => Array<Record<string, unknown>>;
|
|
47
|
+
};
|
|
48
|
+
export declare function normalizeSqlPreviewResult(value: unknown): SqlPreviewResult;
|
|
49
|
+
export declare function buildSqlFieldsFromPreview(options: {
|
|
50
|
+
currentFields?: SqlFieldRecord[];
|
|
51
|
+
manager?: FieldInterfaceManager;
|
|
52
|
+
preview?: SqlPreviewResult;
|
|
53
|
+
}): SqlFieldRecord[];
|
|
54
|
+
export declare function SqlStatementConfigureItem(props: CollectionTemplateConfigureItemProps): React.JSX.Element;
|
|
55
|
+
export declare function SqlSourceCollectionsConfigureItem(props: CollectionTemplateConfigureItemProps): React.JSX.Element;
|
|
56
|
+
export declare function SqlFieldsConfigureItem(props: CollectionTemplateConfigureItemProps): React.JSX.Element;
|
|
57
|
+
export declare function SqlPreviewConfigureItem(props: CollectionTemplateConfigureItemProps): React.JSX.Element;
|
|
58
|
+
export declare function normalizeSqlCollectionSubmitValues(values: Record<string, unknown>): {
|
|
59
|
+
[x: string]: unknown;
|
|
60
|
+
};
|
|
61
|
+
export declare function getSqlPreviewInternalName(): string;
|
|
62
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
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
|
+
import React from 'react';
|
|
10
|
+
import type { CollectionTemplateConfigureItemProps } from '../../plugin';
|
|
11
|
+
export type ViewFieldRecord = {
|
|
12
|
+
interface?: string;
|
|
13
|
+
name: string;
|
|
14
|
+
possibleTypes?: string[];
|
|
15
|
+
source?: string | string[] | null;
|
|
16
|
+
title?: React.ReactNode;
|
|
17
|
+
type?: string;
|
|
18
|
+
uiSchema?: Record<string, unknown>;
|
|
19
|
+
[key: string]: unknown;
|
|
20
|
+
};
|
|
21
|
+
export declare function ViewDatabaseConfigureItem(props: CollectionTemplateConfigureItemProps): React.JSX.Element;
|
|
22
|
+
export declare function ViewSourcesConfigureItem(props: CollectionTemplateConfigureItemProps): React.JSX.Element;
|
|
23
|
+
export declare function ViewFieldsConfigureItem(props: CollectionTemplateConfigureItemProps): React.JSX.Element;
|
|
24
|
+
export declare function ViewPreviewConfigureItem(props: CollectionTemplateConfigureItemProps): React.JSX.Element;
|
|
25
|
+
export declare function normalizeViewCollectionSubmitValues(values: Record<string, unknown>): {
|
|
26
|
+
[x: string]: unknown;
|
|
27
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
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
|
+
type FieldAction = 'list' | 'create' | 'update' | 'destroy';
|
|
10
|
+
export declare function getCollectionFieldActionUrl(dataSourceKey: string, collectionName: string, action: FieldAction, filterByTk?: string | number): string;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
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
|
+
import type { CollectionTemplateOptions } from '../../plugin';
|
|
10
|
+
type FieldInterfaceLike = {
|
|
11
|
+
group?: string;
|
|
12
|
+
name: string;
|
|
13
|
+
};
|
|
14
|
+
export declare function filterFieldInterfacesByCollectionTemplate<T extends FieldInterfaceLike>(fieldInterfaces: T[], template: CollectionTemplateOptions | undefined, collection: Record<string, unknown>, options?: {
|
|
15
|
+
databaseDialect?: string;
|
|
16
|
+
}): T[];
|
|
17
|
+
export declare function filterCreateFieldInterfacesByCollectionTemplate<T extends FieldInterfaceLike>(fieldInterfaces: T[], template: CollectionTemplateOptions | undefined): T[];
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,188 @@
|
|
|
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
|
+
import { Application, Plugin, type CollectionTemplateField } from '@nocobase/client-v2';
|
|
10
|
+
import React, { ComponentType } from 'react';
|
|
11
|
+
import { FieldInterfaceConfigureOptions } from './field-interfaces';
|
|
12
|
+
export interface DataSourceSettingsFormProps {
|
|
13
|
+
mode: 'create' | 'edit';
|
|
14
|
+
type: DataSourceTypeOptions;
|
|
15
|
+
initialValues?: Record<string, any>;
|
|
16
|
+
loadCollections: (key: string) => Promise<any>;
|
|
17
|
+
}
|
|
18
|
+
export interface DataSourceTypeOptions {
|
|
19
|
+
name?: string;
|
|
20
|
+
label?: React.ReactNode;
|
|
21
|
+
defaultValues?: Record<string, any>;
|
|
22
|
+
disableAddFields?: boolean;
|
|
23
|
+
disableTestConnection?: boolean;
|
|
24
|
+
SettingsForm?: ComponentType<DataSourceSettingsFormProps>;
|
|
25
|
+
}
|
|
26
|
+
export interface CollectionPresetFieldOptions {
|
|
27
|
+
name?: string;
|
|
28
|
+
order?: number;
|
|
29
|
+
field?: React.ReactNode;
|
|
30
|
+
interfaceLabel?: React.ReactNode;
|
|
31
|
+
description?: React.ReactNode;
|
|
32
|
+
defaultSelected?: boolean;
|
|
33
|
+
value: CollectionTemplateField & {
|
|
34
|
+
name: string;
|
|
35
|
+
interface?: string;
|
|
36
|
+
primaryKey?: boolean;
|
|
37
|
+
uiSchema?: Record<string, any>;
|
|
38
|
+
[key: string]: any;
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
export interface CollectionTemplateFormProps {
|
|
42
|
+
mode: 'create' | 'edit';
|
|
43
|
+
template: CollectionTemplateOptions;
|
|
44
|
+
form: any;
|
|
45
|
+
}
|
|
46
|
+
export interface CollectionTemplateConfigureItemProps extends CollectionTemplateFormProps {
|
|
47
|
+
item: CollectionTemplateConfigureItem;
|
|
48
|
+
}
|
|
49
|
+
export interface CollectionTemplateConfigureItem {
|
|
50
|
+
name?: string;
|
|
51
|
+
label?: React.ReactNode;
|
|
52
|
+
component?: 'Input' | 'Input.TextArea' | 'Select' | 'Checkbox';
|
|
53
|
+
options?: Array<{
|
|
54
|
+
label: React.ReactNode;
|
|
55
|
+
value: string | number | boolean;
|
|
56
|
+
}>;
|
|
57
|
+
Component?: ComponentType<CollectionTemplateConfigureItemProps>;
|
|
58
|
+
componentProps?: Record<string, unknown>;
|
|
59
|
+
required?: boolean;
|
|
60
|
+
hidden?: boolean | ((props: CollectionTemplateFormProps) => boolean);
|
|
61
|
+
}
|
|
62
|
+
export interface CollectionTemplateOptions {
|
|
63
|
+
name?: string;
|
|
64
|
+
title: React.ReactNode;
|
|
65
|
+
description?: React.ReactNode;
|
|
66
|
+
order?: number;
|
|
67
|
+
color?: string;
|
|
68
|
+
divider?: boolean;
|
|
69
|
+
collection?: {
|
|
70
|
+
options?: Record<string, any> | (() => Record<string, any>);
|
|
71
|
+
fields?: CollectionTemplateField[] | (() => CollectionTemplateField[]);
|
|
72
|
+
};
|
|
73
|
+
capabilities?: {
|
|
74
|
+
recordUniqueKey?: boolean;
|
|
75
|
+
simplePaginate?: boolean;
|
|
76
|
+
};
|
|
77
|
+
configure?: {
|
|
78
|
+
items?: CollectionTemplateConfigureItem[];
|
|
79
|
+
Form?: ComponentType<CollectionTemplateFormProps>;
|
|
80
|
+
transformSubmitValues?: (values: Record<string, any>) => Record<string, any> | void;
|
|
81
|
+
};
|
|
82
|
+
fieldInterfaces?: {
|
|
83
|
+
include?: Array<string | {
|
|
84
|
+
interface?: string;
|
|
85
|
+
name?: string;
|
|
86
|
+
targetScope?: Record<string, unknown>;
|
|
87
|
+
}>;
|
|
88
|
+
exclude?: string[];
|
|
89
|
+
create?: {
|
|
90
|
+
include?: Array<string | {
|
|
91
|
+
interface?: string;
|
|
92
|
+
name?: string;
|
|
93
|
+
targetScope?: Record<string, unknown>;
|
|
94
|
+
}>;
|
|
95
|
+
exclude?: string[];
|
|
96
|
+
};
|
|
97
|
+
};
|
|
98
|
+
/**
|
|
99
|
+
* @deprecated Use fieldInterfaces instead.
|
|
100
|
+
*/
|
|
101
|
+
availableFieldInterfaces?: {
|
|
102
|
+
include?: Array<string | {
|
|
103
|
+
interface?: string;
|
|
104
|
+
name?: string;
|
|
105
|
+
targetScope?: Record<string, unknown>;
|
|
106
|
+
}>;
|
|
107
|
+
exclude?: string[];
|
|
108
|
+
create?: {
|
|
109
|
+
include?: Array<string | {
|
|
110
|
+
interface?: string;
|
|
111
|
+
name?: string;
|
|
112
|
+
targetScope?: Record<string, unknown>;
|
|
113
|
+
}>;
|
|
114
|
+
exclude?: string[];
|
|
115
|
+
};
|
|
116
|
+
};
|
|
117
|
+
presetFields?: {
|
|
118
|
+
disabled?: boolean;
|
|
119
|
+
disabledIncludes?: string[];
|
|
120
|
+
};
|
|
121
|
+
actions?: unknown[];
|
|
122
|
+
/**
|
|
123
|
+
* @deprecated Use collection.options instead.
|
|
124
|
+
*/
|
|
125
|
+
defaultValues?: Record<string, any> | (() => Record<string, any>);
|
|
126
|
+
/**
|
|
127
|
+
* @deprecated Use presetFields.disabled instead.
|
|
128
|
+
*/
|
|
129
|
+
presetFieldsDisabled?: boolean;
|
|
130
|
+
/**
|
|
131
|
+
* @deprecated Use presetFields.disabledIncludes instead.
|
|
132
|
+
*/
|
|
133
|
+
presetFieldsDisabledIncludes?: string[];
|
|
134
|
+
/**
|
|
135
|
+
* @deprecated Use configure.Form instead.
|
|
136
|
+
*/
|
|
137
|
+
ConfigureForm?: ComponentType<CollectionTemplateFormProps>;
|
|
138
|
+
/**
|
|
139
|
+
* @deprecated Use configure.transformSubmitValues instead.
|
|
140
|
+
*/
|
|
141
|
+
beforeSubmit?: (values: Record<string, any>) => void;
|
|
142
|
+
}
|
|
143
|
+
declare class CollectionTemplateRegistry {
|
|
144
|
+
protected templates: Map<string, CollectionTemplateOptions>;
|
|
145
|
+
register(nameOrOptions: string | CollectionTemplateOptions, options?: CollectionTemplateOptions): void;
|
|
146
|
+
get(name?: string): CollectionTemplateOptions;
|
|
147
|
+
getAll(): CollectionTemplateOptions[];
|
|
148
|
+
}
|
|
149
|
+
declare class CollectionPresetFieldRegistry {
|
|
150
|
+
protected fields: Map<string, CollectionPresetFieldOptions>;
|
|
151
|
+
register(options: CollectionPresetFieldOptions): void;
|
|
152
|
+
remove(name: string): void;
|
|
153
|
+
getAll(): CollectionPresetFieldOptions[];
|
|
154
|
+
}
|
|
155
|
+
declare class ExtensionManager {
|
|
156
|
+
protected managerActions: Array<{
|
|
157
|
+
order: number;
|
|
158
|
+
component: ComponentType;
|
|
159
|
+
}>;
|
|
160
|
+
registerManagerAction({ order, component }: {
|
|
161
|
+
order?: number;
|
|
162
|
+
component: ComponentType;
|
|
163
|
+
}): void;
|
|
164
|
+
getManagerActions(): {
|
|
165
|
+
order: number;
|
|
166
|
+
component: React.ComponentType;
|
|
167
|
+
}[];
|
|
168
|
+
}
|
|
169
|
+
export declare class PluginDataSourceManagerClientV2 extends Plugin<any, Application> {
|
|
170
|
+
types: Map<string, DataSourceTypeOptions>;
|
|
171
|
+
extensionManager: ExtensionManager;
|
|
172
|
+
collectionTemplateRegistry: CollectionTemplateRegistry;
|
|
173
|
+
collectionPresetFieldRegistry: CollectionPresetFieldRegistry;
|
|
174
|
+
load(): Promise<void>;
|
|
175
|
+
registerType(name: string, options: DataSourceTypeOptions): void;
|
|
176
|
+
getType(name?: string): DataSourceTypeOptions;
|
|
177
|
+
registerFieldInterfaceConfigure(options: FieldInterfaceConfigureOptions): void;
|
|
178
|
+
registerCollectionTemplate(nameOrOptions: string | CollectionTemplateOptions, options?: CollectionTemplateOptions): void;
|
|
179
|
+
registerCollectionPresetField(options: CollectionPresetFieldOptions): void;
|
|
180
|
+
addCollectionPresetField(options: CollectionPresetFieldOptions): void;
|
|
181
|
+
removeCollectionPresetField(name: string): void;
|
|
182
|
+
getCollectionPresetFields(): CollectionPresetFieldOptions[];
|
|
183
|
+
getCollectionTemplate(name?: string): CollectionTemplateOptions;
|
|
184
|
+
getCollectionTemplates(): CollectionTemplateOptions[];
|
|
185
|
+
private registerBuiltInCollectionPresetFields;
|
|
186
|
+
private registerBuiltInCollectionTemplates;
|
|
187
|
+
}
|
|
188
|
+
export default PluginDataSourceManagerClientV2;
|
|
@@ -0,0 +1,12 @@
|
|
|
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
|
+
import { type DataSourceManager } from '@nocobase/flow-engine';
|
|
10
|
+
import type React from 'react';
|
|
11
|
+
export declare function syncDataSourcesToRuntime(dataSourceManager: DataSourceManager | undefined, records: Array<Record<string, any>>): void;
|
|
12
|
+
export declare function removeDataSourcesFromRuntime(dataSourceManager: DataSourceManager | undefined, keys: React.Key[]): void;
|
|
@@ -0,0 +1,13 @@
|
|
|
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
|
+
import type { ReactNode } from 'react';
|
|
10
|
+
type TFunction = (key: string) => string;
|
|
11
|
+
export declare function compileLegacyTemplate(value: ReactNode, t: TFunction): ReactNode;
|
|
12
|
+
export declare function compileLegacyTemplateText(value: ReactNode, t: TFunction, fallback?: string): string;
|
|
13
|
+
export {};
|
package/dist/externalVersion.js
CHANGED
|
@@ -8,30 +8,34 @@
|
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
module.exports = {
|
|
11
|
-
"@nocobase/client": "2.1.0-alpha.
|
|
11
|
+
"@nocobase/client": "2.1.0-alpha.45",
|
|
12
12
|
"react": "18.2.0",
|
|
13
|
-
"@nocobase/plugin-acl": "2.1.0-alpha.
|
|
14
|
-
"@nocobase/utils": "2.1.0-alpha.
|
|
15
|
-
"@nocobase/
|
|
16
|
-
"@nocobase/
|
|
17
|
-
"
|
|
18
|
-
"@nocobase/
|
|
19
|
-
"@nocobase/
|
|
20
|
-
"
|
|
21
|
-
"@nocobase/
|
|
13
|
+
"@nocobase/plugin-acl": "2.1.0-alpha.45",
|
|
14
|
+
"@nocobase/utils": "2.1.0-alpha.45",
|
|
15
|
+
"@nocobase/flow-engine": "2.1.0-alpha.45",
|
|
16
|
+
"@nocobase/client-v2": "2.1.0-alpha.45",
|
|
17
|
+
"@nocobase/ai": "2.1.0-alpha.45",
|
|
18
|
+
"@nocobase/server": "2.1.0-alpha.45",
|
|
19
|
+
"@nocobase/data-source-manager": "2.1.0-alpha.45",
|
|
20
|
+
"lodash": "4.18.1",
|
|
21
|
+
"@nocobase/acl": "2.1.0-alpha.45",
|
|
22
|
+
"@nocobase/database": "2.1.0-alpha.45",
|
|
22
23
|
"@ant-design/icons": "5.6.1",
|
|
23
24
|
"antd": "5.24.2",
|
|
24
25
|
"react-router-dom": "6.30.1",
|
|
25
|
-
"@nocobase/flow-engine": "2.1.0-alpha.4",
|
|
26
26
|
"@formily/shared": "2.3.7",
|
|
27
27
|
"@formily/react": "2.3.7",
|
|
28
28
|
"react-i18next": "11.18.6",
|
|
29
29
|
"@emotion/css": "11.13.0",
|
|
30
|
+
"ahooks": "3.7.8",
|
|
31
|
+
"@nocobase/actions": "2.1.0-alpha.45",
|
|
30
32
|
"sequelize": "6.35.2",
|
|
31
|
-
"@nocobase/test": "2.1.0-alpha.
|
|
33
|
+
"@nocobase/test": "2.1.0-alpha.45",
|
|
32
34
|
"@formily/antd-v5": "1.2.3",
|
|
33
35
|
"@formily/core": "2.3.7",
|
|
34
36
|
"@formily/reactive": "2.3.7",
|
|
35
37
|
"@dnd-kit/core": "6.1.0",
|
|
36
|
-
"antd-style": "3.7.1"
|
|
38
|
+
"antd-style": "3.7.1",
|
|
39
|
+
"@dnd-kit/sortable": "7.0.2",
|
|
40
|
+
"dayjs": "1.11.13"
|
|
37
41
|
};
|