@tachybase/plugin-data-source-common 1.3.22 → 1.3.23
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.
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import lodash from 'lodash';
|
|
2
2
|
export declare const debounceClick: lodash.DebouncedFunc<(parentForm: any, actionKey: any, keyName: any, headerValue: any) => void>;
|
package/dist/client/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(y,r){typeof exports=="object"&&typeof module!="undefined"?r(exports,require("@tachybase/client"),require("@tachybase/module-data-source/client"),require("react/jsx-runtime"),require("react"),require("@ant-design/icons"),require("antd"),require("@tego/client"),require("@tachybase/schema"),require("lodash"),require("react-router-dom")):typeof define=="function"&&define.amd?define(["exports","@tachybase/client","@tachybase/module-data-source/client","react/jsx-runtime","react","@ant-design/icons","antd","@tego/client","@tachybase/schema","lodash","react-router-dom"],r):(y=typeof globalThis!="undefined"?globalThis:y||self,r(y["@tachybase/plugin-data-source-common"]={},y["@tachybase/client"],y["@tachybase/module-data-source"],y.jsxRuntime,y.react,y["@ant-design/icons"],y.antd,y["@tego/client"],y["@tachybase/schema"],y.lodash,y["react-router-dom"]))})(this,function(y,r,
|
|
1
|
+
(function(y,r){typeof exports=="object"&&typeof module!="undefined"?r(exports,require("@tachybase/client"),require("@tachybase/module-data-source/client"),require("react/jsx-runtime"),require("react"),require("@ant-design/icons"),require("antd"),require("@tego/client"),require("@tachybase/schema"),require("lodash"),require("react-router-dom")):typeof define=="function"&&define.amd?define(["exports","@tachybase/client","@tachybase/module-data-source/client","react/jsx-runtime","react","@ant-design/icons","antd","@tego/client","@tachybase/schema","lodash","react-router-dom"],r):(y=typeof globalThis!="undefined"?globalThis:y||self,r(y["@tachybase/plugin-data-source-common"]={},y["@tachybase/client"],y["@tachybase/module-data-source"],y.jsxRuntime,y.react,y["@ant-design/icons"],y.antd,y["@tego/client"],y["@tachybase/schema"],y.lodash,y["react-router-dom"]))})(this,function(y,r,P,c,v,X,g,q,x,V,L){"use strict";var bt=Object.defineProperty,gt=Object.defineProperties;var It=Object.getOwnPropertyDescriptors;var R=Object.getOwnPropertySymbols;var ie=Object.prototype.hasOwnProperty,pe=Object.prototype.propertyIsEnumerable;var ce=(y,r,P)=>r in y?bt(y,r,{enumerable:!0,configurable:!0,writable:!0,value:P}):y[r]=P,f=(y,r)=>{for(var P in r||(r={}))ie.call(r,P)&&ce(y,P,r[P]);if(R)for(var P of R(r))pe.call(r,P)&&ce(y,P,r[P]);return y},A=(y,r)=>gt(y,It(r));var le=(y,r)=>{var P={};for(var c in y)ie.call(y,c)&&r.indexOf(c)<0&&(P[c]=y[c]);if(y!=null&&R)for(var c of R(y))r.indexOf(c)<0&&pe.call(y,c)&&(P[c]=y[c]);return P};var D=(y,r,P)=>new Promise((c,v)=>{var X=x=>{try{q(P.next(x))}catch(V){v(V)}},g=x=>{try{q(P.throw(x))}catch(V){v(V)}},q=x=>x.done?c(x.value):Promise.resolve(x.value).then(X,g);q((P=P.apply(y,r)).next())});const C="data-source-common",F=(e,t=!1)=>r.tval(e,{ns:t?void 0:C});function _(e,t={}){return r.i18n.t(e,A(f({},t),{ns:[C,"core"]}))}const k=(e=!1)=>{const{i18n:t}=r.useApp();return{t:(o,n={})=>t.t(o,f({ns:e?void 0:C},n))}},$=v.createContext({}),de=$.Provider;function O(){return v.useContext($)}const J=v.createContext({}),ue=J.Provider;function j(){return v.useContext(J)}const me=e=>{const{visible:t,setVisible:s}=e,[o,n]=v.useState(null),[a,i]=v.useState(null),[p,l]=v.useState(null);return c.jsx(r.ActionContextProvider,{visible:t,setVisible:s,children:c.jsx(ue,{value:{rawResponse:o,debugResponse:a,responseValidationErrorMessage:p,setRawResponse:n,setDebugResponse:i,setResponseValidationErrorMessage:l},children:e.children})})},G={list:["page","pageSize","filter","sort","appends","fields","except"],get:["filterByTk","filter","sort","appends","fields","except"],create:["whiteList","blacklist","body"],update:["filterByTk","filter","whiteList","blacklist","body"],destroy:["filterByTk","filter"]},ye=[{name:"X-App",title:"X-App"},{name:"X-Locale",title:"X-Locale"},{name:"X-Hostname",title:"X-Hostname"},{name:"X-Timezone",title:"X-Timezone"},{name:"X-Role",title:"X-Role"},{name:"X-Authenticator",title:"X-Authenticator"}],K=e=>{var p,l;const t=r.useCompile(),{t:s}=k(),o=v.useContext(r.SchemaComponentContext),{actionKey:n}=O(),{variables:a}=((l=(p=o.dataSourceData)==null?void 0:p.data)==null?void 0:l.options)||{};return v.useMemo(()=>xe({t:s,variables:a,compile:t,actionKey:n,showResponse:e}),[n])},xe=e=>{const{t,variables:s,compile:o,actionKey:n,showResponse:a}=e,i=[];return s&&i.push({name:"dataSourceVariables",title:t("Custom variables"),children:s==null?void 0:s.map(p=>({name:o(p.name),title:p.name}))}),i.push({name:"request",title:t("TachyBase request"),children:[{name:"params",title:"params",children:(G[n]||[]).map(p=>({name:p,title:p}))},{name:"header",title:"headers",children:ye},{name:"body",title:"Body"},{name:"token",title:"Token"}]}),a&&i.push({name:"rawResponse",title:t("Third party response"),children:[{name:"body",title:"body"}]}),i},fe=e=>{const{t,method:s,setFormValue:o}=e;return{name:"method",title:"HTTP method",default:s,"x-decorator":"FormItem","x-decorator-props":{validator:{required:!0,message:t("Method is required")},feedbackLayout:"popover"},required:!0,"x-component":"Select","x-component-props":{defaultValue:s,onChange:n=>{o(n,"method")},options:[{value:"GET",label:"GET"},{value:"POST",label:"POST"},{value:"PUT",label:"PUT"},{value:"PATCH",label:"PATCH"},{value:"DELETE",label:"DELETE"}]}}},he=e=>{const{t}=k(),{method:s,setFormValue:o}=e,n=fe({t,method:s,setFormValue:o});return c.jsx(r.SchemaComponent,{schema:n})},be=e=>{const{t,path:s,setFormValue:o,baseUrl:n}=e;return{name:"path",title:"URL",required:!0,default:s,"x-decorator":"FormItem","x-decorator-props":{feedbackLayout:"popover",addonBefore:c.jsx(r.EllipsisWithTooltip,{ellipsis:!0,children:c.jsx(r.Input.ReadPretty,{value:n})}),validator:{required:!0,message:t("Path is required")},className:r.css`
|
|
2
2
|
.ant-formily-item-addon-before {
|
|
3
3
|
border-width: 1px;
|
|
4
4
|
border-style: solid;
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
text-overflow: ellipsis;
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
|
-
`,style:{width:"100%"}},"x-component":r.Variable.RawTextArea,"x-component-props":{defaultValue:s,autoSize:!0,onChange:a=>{o(a.target.value,"path")},scope:K,fieldNames:{value:"name",label:"title"},style:{borderTopLeftRadius:"0",borderBottomLeftRadius:"0"}}}},ge=e=>{var l,d,u;const{t}=k(),{path:s,setFormValue:o,dataSourceKey:n}=e,i=(u=(d=(l=r.useApp().dataSourceManager.getDataSource(n))==null?void 0:l.getOptions())==null?void 0:d.options)==null?void 0:u.baseUrl,p=be({t,path:s,setFormValue:o,baseUrl:i});return c.jsx(r.SchemaComponent,{schema:p})},Y=e=>{var h;const{data:t}=r.useCollectionRecord(),{form:s,actionKey:o,requestActionForm:n}=O(),a=r.useSchemaComponentContext(),{path:i,method:p}=((h=t==null?void 0:t.actions)==null?void 0:h[o])||{},{name:l}=L.useParams(),d=V.debounce((
|
|
20
|
+
`,style:{width:"100%"}},"x-component":r.Variable.RawTextArea,"x-component-props":{defaultValue:s,autoSize:!0,onChange:a=>{o(a.target.value,"path")},scope:K,fieldNames:{value:"name",label:"title"},style:{borderTopLeftRadius:"0",borderBottomLeftRadius:"0"}}}},ge=e=>{var l,d,u;const{t}=k(),{path:s,setFormValue:o,dataSourceKey:n}=e,i=(u=(d=(l=r.useApp().dataSourceManager.getDataSource(n))==null?void 0:l.getOptions())==null?void 0:d.options)==null?void 0:u.baseUrl,p=be({t,path:s,setFormValue:o,baseUrl:i});return c.jsx(r.SchemaComponent,{schema:p})},Y=e=>{var h;const{data:t}=r.useCollectionRecord(),{form:s,actionKey:o,requestActionForm:n}=O(),a=r.useSchemaComponentContext(),{path:i,method:p}=((h=t==null?void 0:t.actions)==null?void 0:h[o])||{},{name:l}=L.useParams(),d=V.debounce((T,w)=>D(null,null,function*(){const{actions:b}=(s==null?void 0:s.values)||{};s.setValuesIn("actions",A(f({},b),{[o]:A(f({},b==null?void 0:b[o]),{[w]:T})})),n.setValuesIn(w,T)}),100),u=v.useMemo(()=>x.createForm({initialValues:n.values}),[]);return c.jsxs(r.FormProvider,{form:e!=null&&e.actionForm?u:n,children:[c.jsx(he,{method:p,setFormValue:d}),c.jsx(x.SchemaOptionsContext.Provider,{value:a,children:c.jsx(ge,{path:i,setFormValue:d,dataSourceKey:l})})]})},W=V.debounce((e,t,s,o)=>{const{actions:n}=e.values||{};e.setValuesIn("actions",A(f({},n),{[t]:A(f({},n==null?void 0:n[t]),{[s]:o})}))},400),Ie=({defaultValue:e,actionKey:t,parentForm:s,field:o})=>({type:"object",properties:{contentType:{type:"string","x-decorator":"FormItem","x-component":"Select",placeholder:`{{t("Content-Type",{ ns: "${C}" })}}`,default:e==null?void 0:e.contentType,"x-component-props":{onChange:n=>{W(s,t,"contentType",n)}},enum:[{value:"application/x-www-form-urlencoded",label:"application/x-www-form-urlencoded "},{value:"application/json",label:"application/json"}],"x-reactions":n=>{const a=s.values.actions[t],i=a==null?void 0:a.contentType;(n==null?void 0:n.value)!==i&&n.setValue(i!=null?i:"application/json"),n.value||W(s,t,"contentType","application/json")}},body:{type:"array","x-component":"ArrayItems","x-decorator":"FormItem",default:e.body,items:{type:"object",properties:{space:{type:"void","x-component":"Space","x-component-props":{style:{flexWrap:"nowrap",maxWidth:"100%",display:"flex"},className:r.css`
|
|
21
21
|
& > .ant-space-item:first-child,
|
|
22
22
|
& > .ant-space-item:last-child {
|
|
23
23
|
flex-shrink: 0;
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
& > .ant-space-item:nth-of-type(2) {
|
|
27
27
|
flex: 1;
|
|
28
28
|
}
|
|
29
|
-
`},properties:{name:{type:"string","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:'{{t("Name")}}'}},value:{type:"string","x-decorator":"FormItem","x-component":"Variable.RawTextArea","x-component-props":{scope:"{{useVariableOptions}}",autoSize:!0,fieldNames:{value:"name",label:"title"},style:{minWidth:"220px"}}},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove","x-component-props":{onClick:()=>{W(s,t,"body",o.form.values.body)}}}}}}},properties:{add:{type:"void",title:`{{t("Add", { ns: "${C}" })}}`,"x-component":"ArrayItems.Addition"}},"x-reactions":[{dependencies:[".contentType"],fulfill:{state:{visible:'{{ $deps[0]==="application/x-www-form-urlencoded"}}'}}}]},jsonBody:{type:"string","x-decorator":"FormItem","x-component":"Variable.JSON",default:e.jsonBody,"x-component-props":{scope:"{{useVariableOptions}}",autoSize:!0,fieldNames:{value:"name",label:"title"},placeholder:'{{t("Value")}}',style:{minHeight:200},onChange:n=>{const{actions:a}=s.values||{};s.setValuesIn("actions",A(f({},a),{[t]:A(f({},a==null?void 0:a[t]),{body:n})}))}},"x-reactions":[{dependencies:[".contentType"],fulfill:{state:{visible:'{{ $deps[0]==="application/json"}}'}}},n=>{var i,p,l;const a=(l=(p=(i=s==null?void 0:s.values)==null?void 0:i.actions)==null?void 0:p[t])==null?void 0:l.body;(n==null?void 0:n.value)!==a&&n.setValue(s.values.actions[t].body)}]}}}),ve=()=>{var a,i;const e=x.useField(),{form:t,actionKey:s}=O(),o=(i=(a=t==null?void 0:t.values)==null?void 0:a.actions)==null?void 0:i[s],n=Ie({parentForm:t,actionKey:s,defaultValue:{contentType:o==null?void 0:o.contentType,body:o==null?void 0:o.body,jsonBody:o==null?void 0:o.body},field:e});return c.jsx(r.SchemaComponent,{schema:n,components:{ArrayItems:
|
|
29
|
+
`},properties:{name:{type:"string","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:'{{t("Name")}}'}},value:{type:"string","x-decorator":"FormItem","x-component":"Variable.RawTextArea","x-component-props":{scope:"{{useVariableOptions}}",autoSize:!0,fieldNames:{value:"name",label:"title"},style:{minWidth:"220px"}}},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove","x-component-props":{onClick:()=>{W(s,t,"body",o.form.values.body)}}}}}}},properties:{add:{type:"void",title:`{{t("Add", { ns: "${C}" })}}`,"x-component":"ArrayItems.Addition"}},"x-reactions":[{dependencies:[".contentType"],fulfill:{state:{visible:'{{ $deps[0]==="application/x-www-form-urlencoded"}}'}}}]},jsonBody:{type:"string","x-decorator":"FormItem","x-component":"Variable.JSON",default:e.jsonBody,"x-component-props":{scope:"{{useVariableOptions}}",autoSize:!0,fieldNames:{value:"name",label:"title"},placeholder:'{{t("Value")}}',style:{minHeight:200},onChange:n=>{const{actions:a}=s.values||{};s.setValuesIn("actions",A(f({},a),{[t]:A(f({},a==null?void 0:a[t]),{body:n})}))}},"x-reactions":[{dependencies:[".contentType"],fulfill:{state:{visible:'{{ $deps[0]==="application/json"}}'}}},n=>{var i,p,l;const a=(l=(p=(i=s==null?void 0:s.values)==null?void 0:i.actions)==null?void 0:p[t])==null?void 0:l.body;(n==null?void 0:n.value)!==a&&n.setValue(s.values.actions[t].body)}]}}}),ve=()=>{var a,i;const e=x.useField(),{form:t,actionKey:s}=O(),o=(i=(a=t==null?void 0:t.values)==null?void 0:a.actions)==null?void 0:i[s],n=Ie({parentForm:t,actionKey:s,defaultValue:{contentType:o==null?void 0:o.contentType,body:o==null?void 0:o.body,jsonBody:o==null?void 0:o.body},field:e});return c.jsx(r.SchemaComponent,{schema:n,components:{ArrayItems:q.ArrayItems,FormItem:r.FormItem,Input:g.Input,FormProvider:r.FormProvider},scope:{useVariableOptions:K}})},Ce=({title:e,defaultValue:t,field:s,parentForm:o,actionKey:n})=>{const a=p=>{var d,u,h;const l=(h=(u=(d=o==null?void 0:o.values)==null?void 0:d.actions)==null?void 0:u[n])==null?void 0:h.headers;(l==null?void 0:l.length)>0&&l!==t&&p.setValue(l)},i=()=>{W(o,n,"headers",s.form.values.headers)};return{type:"object","x-decorator":"Form",properties:{headers:{type:"array","x-component":"ArrayItems",default:t,"x-decorator":"FormItem","x-reactions":a,items:{type:"object",properties:{space:{type:"void","x-component":"Space","x-component-props":{style:{flexWrap:"nowrap",maxWidth:"100%",display:"flex"},className:r.css`
|
|
30
30
|
& > .ant-space-item:first-child,
|
|
31
31
|
& > .ant-space-item:last-child {
|
|
32
32
|
flex-shrink: 0;
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
& > .ant-space-item:nth-of-type(2) {
|
|
36
36
|
flex: 1;
|
|
37
37
|
}
|
|
38
|
-
`},properties:{name:{type:"string","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:'{{t("Name")}}'}},value:{type:"string","x-decorator":"FormItem","x-component":"Variable.RawTextArea","x-component-props":{scope:"{{useVariableOptions}}",autoSize:!0,fieldNames:{value:"name",label:"title"},style:{minWidth:"220px"}}},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove","x-component-props":{onClick:i}}}}}},properties:{add:{title:e,type:"void","x-component":"ArrayItems.Addition"}}}}}},Fe=()=>{var i,p;const{t:e}=k(),t=x.useField(),{form:s,actionKey:o}=O(),n=(p=(i=s==null?void 0:s.values)==null?void 0:i.actions)==null?void 0:p[o],a=Ce({title:e("Add header"),defaultValue:(n==null?void 0:n.headers)||[],field:t,parentForm:s,actionKey:o});return c.jsx(r.SchemaComponent,{schema:a,components:{ArrayItems:
|
|
38
|
+
`},properties:{name:{type:"string","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:'{{t("Name")}}'}},value:{type:"string","x-decorator":"FormItem","x-component":"Variable.RawTextArea","x-component-props":{scope:"{{useVariableOptions}}",autoSize:!0,fieldNames:{value:"name",label:"title"},style:{minWidth:"220px"}}},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove","x-component-props":{onClick:i}}}}}},properties:{add:{title:e,type:"void","x-component":"ArrayItems.Addition"}}}}}},Fe=()=>{var i,p;const{t:e}=k(),t=x.useField(),{form:s,actionKey:o}=O(),n=(p=(i=s==null?void 0:s.values)==null?void 0:i.actions)==null?void 0:p[o],a=Ce({title:e("Add header"),defaultValue:(n==null?void 0:n.headers)||[],field:t,parentForm:s,actionKey:o});return c.jsx(r.SchemaComponent,{schema:a,components:{ArrayItems:q.ArrayItems,FormItem:r.FormItem,Input:g.Input},scope:{useVariableOptions:K}})},Ae=({title:e,defaultValue:t,field:s,parentForm:o,actionKey:n})=>({type:"object","x-decorator":"Form",properties:{params:{type:"array","x-component":"ArrayItems",default:t,"x-decorator":"FormItem","x-reactions":a=>{var p,l,d;const i=(d=(l=(p=o.values)==null?void 0:p.actions)==null?void 0:l[n])==null?void 0:d.params;i!=null&&i.length&&i!==t&&a.setValue(i)},items:{type:"object",properties:{space:{type:"void","x-component":"Space","x-component-props":{style:{flexWrap:"nowrap",maxWidth:"100%",display:"flex"},className:r.css`
|
|
39
39
|
& > .ant-space-item:first-child,
|
|
40
40
|
& > .ant-space-item:last-child {
|
|
41
41
|
flex-shrink: 0;
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
& > .ant-space-item:nth-of-type(2) {
|
|
45
45
|
flex: 1;
|
|
46
46
|
}
|
|
47
|
-
`},properties:{name:{type:"string","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:'{{t("Name")}}',style:{width:"100%"}}},value:{type:"string","x-decorator":"FormItem","x-component":"Variable.RawTextArea","x-component-props":{scope:"{{useVariableOptions}}",autoSize:!0,fieldNames:{value:"name",label:"title"},style:{minWidth:"230px",width:"100%"}}},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove","x-component-props":{onClick:()=>{var a;W(o,n,"params",(a=s.form.values)==null?void 0:a.params)}}}}}}},properties:{add:{type:"void",title:e,"x-component":"ArrayItems.Addition"}}}}}),Se=()=>{var i,p;const{t:e}=k(),t=x.useField(),{form:s,actionKey:o}=O(),n=(p=(i=s==null?void 0:s.values)==null?void 0:i.actions)==null?void 0:p[o],a=Ae({title:e("Add parameter"),defaultValue:n==null?void 0:n.params,field:t,parentForm:s,actionKey:o});return c.jsx(r.SchemaComponent,{schema:a,components:{ArrayItems:
|
|
47
|
+
`},properties:{name:{type:"string","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:'{{t("Name")}}',style:{width:"100%"}}},value:{type:"string","x-decorator":"FormItem","x-component":"Variable.RawTextArea","x-component-props":{scope:"{{useVariableOptions}}",autoSize:!0,fieldNames:{value:"name",label:"title"},style:{minWidth:"230px",width:"100%"}}},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove","x-component-props":{onClick:()=>{var a;W(o,n,"params",(a=s.form.values)==null?void 0:a.params)}}}}}}},properties:{add:{type:"void",title:e,"x-component":"ArrayItems.Addition"}}}}}),Se=()=>{var i,p;const{t:e}=k(),t=x.useField(),{form:s,actionKey:o}=O(),n=(p=(i=s==null?void 0:s.values)==null?void 0:i.actions)==null?void 0:p[o],a=Ae({title:e("Add parameter"),defaultValue:n==null?void 0:n.params,field:t,parentForm:s,actionKey:o});return c.jsx(r.SchemaComponent,{schema:a,components:{ArrayItems:q.ArrayItems,FormItem:r.FormItem,Input:g.Input},scope:{useVariableOptions:K}})},we=e=>{const{t}=e;return[{key:"parameters",label:t("Parameters"),children:c.jsx(Se,{})},{key:"body",label:t("Body"),children:c.jsx(ve,{})},{key:"headers",label:t("Headers"),children:c.jsx(Fe,{})}]},Q=()=>{const{t:e}=k(),t=we({t:e});return c.jsx(g.Tabs,{items:t})},Te={data:"{{rawResponse.body}}",meta:{}},Pe=(e,t,s)=>D(null,null,function*(){const{actions:o}=e.values||{};e.setValuesIn("actions",A(f({},o),{[t]:A(f({},o==null?void 0:o[t]),{responseTransformer:s})}))}),Z=()=>{var l,d,u;const{form:e,actionKey:t,responseTransformer:s,setResponseTransformer:o}=O(),n=(u=(d=(l=e==null?void 0:e.values)==null?void 0:l.actions)==null?void 0:d[t])==null?void 0:u.responseTransformer,a=s!=null?s:n,{data:i}=r.useCollectionRecord();v.useEffect(()=>{var h,T;if(!((T=(h=i==null?void 0:i.actions)==null?void 0:h[t])!=null&&T.responseTransformer)&&!n){const{actions:w}=e.values||{};e.setValuesIn("actions",A(f({},w),{[t]:A(f({},w==null?void 0:w[t]),{responseTransformer:Te})}))}},[]);const p=K(!0);return c.jsx(r.Variable.JSON,{value:a,onChange:h=>{o(h),Pe(e,t,h)},autoSize:{minRows:5},fieldNames:{value:"name",label:"title"},scope:()=>p})},qe=()=>{const{responseValidationErrorMessage:e}=j();return e?c.jsxs(c.Fragment,{children:[c.jsx(g.Alert,{type:"error",showIcon:!0,message:e}),c.jsx("br",{})]}):null},ke=e=>({type:"object","x-decorator":"Form","x-decorator-props":{useValues(t){return r.useRequest(()=>Promise.resolve({data:{}}),t)}},properties:{[x.uid()]:{type:"string",default:e,"x-read-pretty":!0,"x-decorator":"FormItem","x-component":"Input.JSON","x-component-props":{style:{maxHeight:"350px"}}}}}),Ve=()=>{const{debugResponse:e}=j(),t=ke(e);return c.jsx(r.SchemaComponent,{schema:t,components:{ArrayTable:q.ArrayTable,FormItem:r.FormItem,Input:r.Input}})},De=e=>{const{t}=e;return[{key:"body",label:t("Body"),children:c.jsx(Ve,{})}]},Me=()=>{const{t:e}=k(),{debugResponse:t}=j(),s=De({t:e});return t?c.jsx(g.Tabs,{defaultActiveKey:"body",items:s}):null},Be=e=>{const{t}=k(),s=t("Extract field metadata from the response data");return c.jsx(g.Tooltip,{title:s,children:e.children})},Ne=()=>{const e=x.useForm(),t=r.useAPIClient(),{t:s}=k(),{setVisible:o}=v.useContext(r.ActionContext),{name:n}=L.useParams(),{rawResponse:a,responseValidationErrorMessage:i}=j(),{form:p,actionKey:l}=O(),{fields:d}=p.values,[u,h]=v.useState(!1),T=V.omit(e.values,"responseTab"),w=()=>D(null,null,function*(){var b,I;try{h(!0);const S=(I=(b=p==null?void 0:p.values)==null?void 0:b.actions)==null?void 0:I[l],m=t.resource("dataSources.httpCollections",n),{data:{data:M}}=yield m.runAction({values:{debug:!1,inferFields:!0,actionOptions:A(f({},S),{type:l,responseTransformer:S==null?void 0:S.responseTransformer}),debugVars:T}});o(!1),h(!1);const{transformedResponse:B,fields:E,filterTargetKey:H}=M;if(H&&p.setValuesIn("filterTargetKey",H),E){const N=V.unionBy(d,E,"name");p.setValuesIn("fields",N)}if(typeof(B==null?void 0:B.data)=="object"){let N=[];l==="get"?N=[B==null?void 0:B.data]:N=B==null?void 0:B.data,p.setValuesIn("preview",N)}}catch(S){h(!1),console.log(S)}});return["list","get"].includes(l)?c.jsx(Be,{children:c.jsx(g.Button,{type:"primary",disabled:!a||i,loading:u,onClick:w,children:s("Extract field metadata")})}):null},ee=({key:e,defaultValue:t})=>({type:"object",properties:{[e]:{type:"array","x-decorator":"FormItem","x-component":"ArrayTable",default:t,"x-component-props":{scroll:{y:300}},items:{type:"object",properties:{column1:{type:"void","x-component":"ArrayTable.Column","x-component-props":{width:200,title:`{{t("Name",{ ns: "${C}" })}}`},properties:{name:{type:"string","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:'{{t("Name")}}'}}}},column2:{type:"void","x-component":"ArrayTable.Column","x-component-props":{width:200,title:`{{t("Value",{ ns: "${C}" })}}`},properties:{value:{type:"string","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:'{{t("Value")}}'}}}}}}}}}),Oe=()=>{const{rawResponse:e}=j(),{request:t}=e||{},s=Object.entries((t==null?void 0:t.headers)||{}).map(([n,a])=>({name:n,value:a})),o=ee({key:"requestHeaders",defaultValue:s});return c.jsx(r.SchemaComponent,{schema:o,components:{ArrayTable:q.ArrayTable,FormItem:r.FormItem,Input:r.Input}})},je=e=>({type:"object","x-decorator":"Form","x-decorator-props":{useValues(t){return r.useRequest(()=>Promise.resolve({data:{}}),t)}},properties:{[x.uid()]:{type:"string",default:e,"x-read-pretty":!0,"x-decorator":"FormItem","x-component":"Input.JSON","x-component-props":{style:{maxHeight:"400px"}}}}}),Ee=()=>{const{rawResponse:e}=j(),{data:t}=e||{},s=je(t);return c.jsx(r.SchemaComponent,{schema:s,components:{ArrayTable:q.ArrayTable,FormItem:r.FormItem,Input:r.Input}})},He=()=>{const{rawResponse:e}=j(),{headers:t}=e||{},s=Object.entries(t||{}).map(([n,a])=>({name:n,value:a})),o=ee({key:"responseHeaders",defaultValue:s});return c.jsx(r.SchemaComponent,{schema:o,components:{ArrayTable:q.ArrayTable,FormItem:r.FormItem,Input:r.Input}})},Le=e=>{const{t}=e;return[{key:"body",label:t("Body"),children:c.jsx(Ee,{})},{key:"responseHeaders",label:t("Response headers"),children:c.jsx(He,{})},{key:"requestHeaders",label:t("Request headers"),children:c.jsx(Oe,{})}]},Ke=()=>{const{t:e}=k(),{rawResponse:t}=j(),{status:s}=t||{},o=Le({t:e});if(!t)return null;const n=s.toString().startsWith("2")?"success":"error",a=c.jsx(g.Tag,{color:n,children:`HTTP Code:${s}`});return c.jsx(g.Card,{title:a,children:c.jsx(g.Tabs,{defaultActiveKey:"body",items:o})})};function We(e,t){var p,l;const s=(l=(p=e==null?void 0:e.values)==null?void 0:p.actions)==null?void 0:l[t];let o=[];const{params:n=[],headers:a=[],body:i=[]}=s||{};return o=[...n,...a].map(d=>{var u;return(u=d==null?void 0:d.value)==null?void 0:u.replace(/{{|}}/g,"")}),typeof i=="string"?o.concat(i==null?void 0:i.replace(/{{|}}/g,"")):o.concat(i==null?void 0:i.map(d=>d==null?void 0:d.value.replace(/{{|}}/g,""))),o.filter(Boolean)}const ze=(e,t)=>{const s=(o,n)=>{We(e,t).find(p=>((p==null?void 0:p.split("."))||[]).pop()===o)&&(n.description=null)};return{page:{type:"number",title:"Page","x-decorator":"FormItem","x-component":"InputNumber",description:"{{t('Page variable not used. Pagination based on total current request data.')}}","x-reactions":o=>s("page",o)},pageSize:{type:"number",title:"PageSize","x-decorator":"FormItem","x-component":"InputNumber",description:"{{t('PageSize variable not used. Pagination based on total current request data.')}}","x-reactions":o=>s("pageSize",o)},filter:{type:"object",title:"Filter","x-decorator":"FormItem","x-component":"Input.JSON",description:"{{t('Filter variable not used. Filtering will apply to the current request data.')}}","x-reactions":o=>s("filter",o)},sort:{type:"string",title:"Sort","x-decorator":"FormItem","x-component":"Input",description:"{{t('Sort variable not used. Sorting will apply to the current request data.')}}","x-reactions":o=>s("sort",o)},appends:{type:"string",title:"Appends","x-decorator":"FormItem","x-component":"Input"},fields:{type:"string",title:"Fields","x-decorator":"FormItem","x-component":"Input",description:"{{t('Fields variable not used. Filtering will be based on the current request data.')}}","x-reactions":o=>s("fields",o)},except:{type:"string",title:"Except","x-decorator":"FormItem","x-component":"Input",description:"{{t('Except variable not used. Filtering will be based on the current request data.')}}","x-reactions":o=>s("except",o)},filterByTk:{type:"string",title:"FilterByTk","x-decorator":"FormItem","x-component":"Input",description:"{{t('The current parameters are not adapted')}}","x-reactions":o=>s("filterByTk",o)},whiteList:{type:"string",title:"whiteList","x-decorator":"FormItem","x-component":"Input"},blacklist:{type:"string",title:"blacklist","x-decorator":"FormItem","x-component":"Input"},body:{type:"object",title:"Body","x-decorator":"FormItem","x-component":"Input.JSON","x-component-props":{autoSize:{minRows:5,maxRows:20}}}}};function Ue(e,t){const s={},o=G[e]||[],n=ze(t,e);for(const a of o)s[a]=n[a];return s}const Xe=()=>{const{t:e}=k(),{actionKey:t,form:s,requestActionForm:o}=O(),n=Ue(t,s),a=()=>{const i=l=>D(null,null,function*(){const{actions:d}=s.values||{},{path:u,value:h}=l.getState();u.includes("add")||(yield s.setValuesIn("actions",A(f({},d),{[t]:q.unflatten(A(f({},d==null?void 0:d[t]),{[u]:h}))})),["method","path"].includes(u)&&(yield o.setValuesIn([u],h)))}),p=V.debounce(i,400);x.onFieldChange("*",(l,d)=>{d.modified&&p(l)})};return{type:"object",properties:{modal:{type:"void","x-decorator":"Form","x-component":"Action.Modal","x-component-props":{className:r.cx("tb-action-popup",r.css`
|
|
48
48
|
.ant-modal-footer {
|
|
49
49
|
position: absolute;
|
|
50
50
|
bottom: 24px;
|
|
@@ -58,11 +58,11 @@
|
|
|
58
58
|
.ant-formily-item-feedback-layout-loose {
|
|
59
59
|
margin-bottom: 10px;
|
|
60
60
|
}
|
|
61
|
-
`},properties:{requestAction:{type:"string","x-component":Y,"x-component-props":{actionForm:!0}},requestTab:{type:"void","x-decorator":"FormItem","x-component":Q},responseTab:{type:"string","x-component":Ke}}}}},tachyBaseResponse:{type:"void","x-decorator":"Col","x-decorator-props":{span:8},"x-component":"Card","x-component-props":{bordered:!1,title:e("TachyBase response"),style:{height:"80vh",overflowY:"auto",borderTopLeftRadius:0,borderBottomLeftRadius:0}},properties:{responseContainer:{type:"void","x-decorator":"Form",properties:{alertError:{type:"string","x-component":qe},responseTransformer:{type:"string","x-decorator":"FormItem","x-component":Z},debugResponse:{type:"string","x-component":Me}}}}}}},footer:{type:"void","x-component":"Action.Modal.Footer",properties:{debug:{title:'{{t("Debug")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ useDebugAction }}"}},extractFieldMetadata:{"x-component":Ne}}}}}}}},Re=()=>{const e=x.useForm(),{setVisible:t}=v.useContext(r.ActionContext),{setRawResponse:s,setDebugResponse:o}=j();return{run(){t(!1),e.reset(),e.setValuesIn("responseTab",null),s(null),o(null)}}},_e=()=>{const e=x.useField(),t=r.useAPIClient(),s=x.useForm(),{form:o,actionKey:n,requestActionForm:a}=O(),{name:i}=L.useParams(),{setRawResponse:p,setDebugResponse:l,setResponseValidationErrorMessage:d}=j();return{run(){return D(this,null,function*(){var
|
|
61
|
+
`},properties:{requestAction:{type:"string","x-component":Y,"x-component-props":{actionForm:!0}},requestTab:{type:"void","x-decorator":"FormItem","x-component":Q},responseTab:{type:"string","x-component":Ke}}}}},tachyBaseResponse:{type:"void","x-decorator":"Col","x-decorator-props":{span:8},"x-component":"Card","x-component-props":{bordered:!1,title:e("TachyBase response"),style:{height:"80vh",overflowY:"auto",borderTopLeftRadius:0,borderBottomLeftRadius:0}},properties:{responseContainer:{type:"void","x-decorator":"Form",properties:{alertError:{type:"string","x-component":qe},responseTransformer:{type:"string","x-decorator":"FormItem","x-component":Z},debugResponse:{type:"string","x-component":Me}}}}}}},footer:{type:"void","x-component":"Action.Modal.Footer",properties:{debug:{title:'{{t("Debug")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ useDebugAction }}"}},extractFieldMetadata:{"x-component":Ne}}}}}}}},Re=()=>{const e=x.useForm(),{setVisible:t}=v.useContext(r.ActionContext),{setRawResponse:s,setDebugResponse:o}=j();return{run(){t(!1),e.reset(),e.setValuesIn("responseTab",null),s(null),o(null)}}},_e=()=>{const e=x.useField(),t=r.useAPIClient(),s=x.useForm(),{form:o,actionKey:n,requestActionForm:a}=O(),{name:i}=L.useParams(),{setRawResponse:p,setDebugResponse:l,setResponseValidationErrorMessage:d}=j();return{run(){return D(this,null,function*(){var T,w;const h=(w=(T=o==null?void 0:o.values)==null?void 0:T.actions)==null?void 0:w[n];try{e.data=(e==null?void 0:e.data)||{},e.data.loading=!0,yield a.submit();const b=t.resource("dataSources.httpCollections",i),I=V.omit(s.values,"responseTab"),{data:{data:S}}=yield b.runAction({values:{debug:!0,inferFields:!1,actionOptions:A(f({},h),{type:n,responseTransformer:h==null?void 0:h.responseTransformer}),debugVars:I}});e.data.loading=!1;const{rawResponse:m,debugBody:M,responseValidationErrorMessage:B}=S;p(m),l(M),d(B)}catch(b){e.data.loading=!1,console.error(b)}})}}},$e=()=>{const{t:e}=k(),t=Xe();return c.jsx(r.SchemaComponent,{schema:t,components:{Form:q.Form,Input:r.Input,Action:r.Action,FormItem:r.FormItem,InputNumber:r.InputNumber,Card:g.Card,Variable:r.Variable,Space:r.Space,Select:g.Select,FormLayout:q.FormLayout,Row:g.Row,Col:g.Col},scope:{t:e,useDebugAction:_e,useCancelAction:Re,useVariableOptions:K}})},Je=()=>{const{t:e}=k(),{requestActionForm:t}=O(),[s,o]=v.useState(!1),n=()=>D(null,null,function*(){yield t.submit(),o(!0)});return c.jsxs(c.Fragment,{children:[c.jsx(g.Button,{type:"primary",onClick:n,children:e("Try it out")}),c.jsx(me,{visible:s,setVisible:o,children:c.jsx($e,{})})]})},Ge=e=>{const t=x.useForm(),{actionKey:s}=e,o=v.useMemo(()=>x.createForm({}),[]),[n,a]=v.useState(null);return c.jsx(de,{value:{form:A(f({},t),{[s]:o}),actionKey:s,requestActionForm:o,responseTransformer:n,setResponseTransformer:a},children:e.children})},z=(e,t)=>{const s=v.useRef();return{type:"void","x-decorator":Ge,"x-decorator-props":{actionKey:e},"x-component":"FormCollapse.CollapsePanel","x-component-props":{header:t,key:e},properties:{form:{"x-decorator":"Form","x-decorator-props":{className:r.css`
|
|
62
62
|
.ant-formily-item-feedback-layout-loose {
|
|
63
63
|
margin-bottom: 10px;
|
|
64
64
|
}
|
|
65
|
-
`,useValues(o){return s.current=x.useForm(),r.useRequest(()=>Promise.resolve(),o)},effects:()=>{const o=a=>{const i=s.current,{actions:p}=i.values||{},{path:l,value:d}=a.getState();l.includes("add")||i.setValuesIn("actions",A(f({},p),{[e]:T.unflatten(A(f({},p==null?void 0:p[e]),{[l]:d}))}))},n=V.debounce((a,i)=>D(null,null,function*(){i.modified&&(yield o(a))}),400);x.onFieldChange("*",(a,i)=>{i.modified&&n(a,i)})}},type:"void",properties:{[x.uid()]:{type:"void",properties:{requestAction:{type:"string","x-component":Y},requestTab:{type:"void","x-decorator":"FormItem",title:`{{t("Adapt request parameters",{ ns: "${C}" })}}`,"x-component":Q,"x-decorator-props":{tooltip:`{{t("Provide request variables from TachyBase for use by third-party APIs.",{ ns: "${C}" })}}`}},responseTransformer:{type:"string","x-decorator":"FormItem",title:`{{t("Convert third-party response results to TachyBase standard",{ ns: "${C}" })}}`,"x-component":Z,"x-decorator-props":{tooltip:`{{t("The response results from third-party APIs need to be converted to the TachyBase standard to display correctly on the frontend.",{ ns: "${C}" })}}`}},debug:{type:"void","x-component":Je}}}}}}}},Ye=e=>{const t=x.useForm(),s=r.useCompile(),{t:o}=k(),{fields:n,preview:a}=e,[i,p]=v.useState([]),[l,d]=v.useState(a),{getInterface:u}=r.useCollectionManager_deprecated(),h=P=>{const w=P.filter(I=>I.source||I.interface);return w?w.map(I=>{var M,B;const S=((M=I==null?void 0:I.uiSchema)==null?void 0:M.title)||I.name,m=(B=u(I.interface))==null?void 0:B.default.uiSchema;return{key:I.name,title:s(S),dataIndex:I.name,width:200,render:(E,H,N)=>{const U=H[I.name],ht={type:"object",properties:{[I.name]:A(f({name:`${I.name}`},m),{"x-read-pretty":!0,default:I.interface==="json"||typeof U=="object"?JSON.stringify(U):U})}};return c.jsx(r.EllipsisWithTooltip,{ellipsis:!0,children:c.jsx(x.RecursionField,{schema:ht,name:N,onlyRenderProperties:!0})})}}}):void 0};return v.useEffect(()=>{d(a)},[a,n]),v.useEffect(()=>{p([]);const P=h(n);p(P)},[t.values.fields]),c.jsx("div",{style:{marginBottom:"var(--tb-spacing)"},children:(l==null?void 0:l.length)>0&&c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:"ant-formily-item-label",style:{marginTop:"var(--tb-spacing)",display:"flex",padding:"0 0 8px"},children:[c.jsx("div",{className:"ant-formily-item-label-content",children:c.jsx("span",{children:c.jsx("label",{children:o("Preview")})})}),c.jsx("span",{className:"ant-formily-item-colon",children:":"})]}),c.jsx(g.Table,{size:"middle",pagination:!1,bordered:!0,columns:i,dataSource:l,scroll:{x:1e3,y:300}},"preview")]})},x.uid())},Qe=(e,t)=>e.filter(o=>o.children.filter(a=>a.availableTypes&&a.availableTypes.includes(t)).length>0).map(o=>({label:o.label,key:o.key,children:o.children.filter(n=>n.availableTypes&&n.availableTypes.includes(t))})),te=e=>{const t=r.useCompile(),{getInterface:s}=r.useCollectionManager_deprecated(),{t:o}=k(),n=x.useForm(),a=x.useField(),[i,p]=v.useState(a.value),l=r.useFieldInterfaceOptions().filter(b=>!["relation","systemInfo"].includes(b.key)),{modal:d}=g.App.useApp(),u=(b,I)=>{setTimeout(()=>{i.splice(I,1,b),p(i),a.value=i.concat()},300)},h=b=>{i.splice(b,1);const I=i.concat();a.value=I,p(I)},P=()=>{d.confirm({title:o("Are you sure you want to clear fields?"),onOk:()=>{n.setValuesIn("fields",[]),n.setValuesIn("preview",[])}})},w=v.useMemo(()=>[{dataIndex:"index",width:60,key:"index",render:(b,I,S)=>S+1},{title:o("Field display name"),dataIndex:"title",key:"title",width:150,render:(b,I,S)=>{const m=i[S];return c.jsx(g.Input,{defaultValue:m.uiSchema.title,onChange:V.debounce(M=>{u(A(f({},m),{uiSchema:A(f({},V.omit(m==null?void 0:m.uiSchema,"rawTitle")),{title:M.target.value})}),S)},300)})}},{title:o("Field name"),dataIndex:"name",key:"name",width:130},{title:o("Field type"),dataIndex:"type",width:140,key:"type",render:(b,I,S)=>{const m=i[S];return m!=null&&m.source||!(m!=null&&m.possibleTypes)?c.jsxs(g.Tag,{children:[" ",b]}):c.jsx(g.Select,{defaultValue:b,popupMatchSelectWidth:!1,style:{width:"100%"},options:(m==null?void 0:m.possibleTypes.map(M=>({label:M,value:M})))||[],onChange:M=>{u(A(f({},m),{type:M}),S)}})}},{title:o("Field interface"),dataIndex:"interface",key:"interface",width:150,render:(b,I,S)=>{const m=i[S],M=(m==null?void 0:m.type)&&Qe(l,m==null?void 0:m.type),B=E=>{var N;const H=s(E);u(A(f({},m),{interface:E,uiSchema:f(f({},m.uiSchema),(N=H==null?void 0:H.default)==null?void 0:N.uiSchema)}),S)};return c.jsx(g.Select,{defaultValue:b,style:{width:"100%"},popupMatchSelectWidth:!1,onChange:B,children:M==null?void 0:M.map(E=>c.jsx(g.Select.OptGroup,{label:t(E.label),children:E.children.map(({label:H,value:N,name:U})=>c.jsx(g.Select.Option,{value:U,children:t(H)},N))},E.key))})}},{title:o("Actions"),dataIndex:"actions",fixed:"right",key:"actions",align:"center",width:100,render:(b,I,S)=>c.jsxs("a",{onClick:()=>h(S),children:[" ",o("Delete")]})}],[i]);return v.useEffect(()=>{p(a.value)},[a.value]),c.jsxs(c.Fragment,{children:[i.length?c.jsx(g.Button,{style:{position:"absolute",top:"-10px",right:"0px"},onClick:P,children:o("Clear")}):null,c.jsx(g.Table,{bordered:!0,size:"middle",columns:w,dataSource:i,scroll:{y:300},pagination:!1})]})};te.displayName="PreviewFields";function oe(e,t,s={}){const o=V.cloneDeep(s),n=f({name:`t_${x.uid()}`},o);n.reverseField&&(n.reverseField.name=`f_${x.uid()}`);const a=z("list",`{{t("List",{ ns: "${C}" })}}`),i=z("get",`{{t("Get",{ ns: "${C}" })}}`),p=z("create",`{{t("Create",{ ns: "${C}" })}}`),l=z("update",`{{t("Update",{ ns: "${C}" })}}`),d=z("destroy",`{{t("Destroy",{ ns: "${C}" })}}`);return{type:"object",properties:{[x.uid()]:{type:"void","x-component":"Action.Drawer","x-component-props":{getContainer:"{{ getContainer }}"},"x-decorator":"Form","x-decorator-props":{useValues(u){return r.useRequest(()=>Promise.resolve({data:n}),u)}},title:e,properties:{title:{type:"string",title:'{{ t("Collection display name") }}',required:!0,"x-decorator":"FormItem","x-component":"Input"},name:{type:"string",title:'{{t("Collection name")}}',required:!0,"x-disabled":"{{ !createOnly }}","x-decorator":"FormItem","x-component":"Input","x-validator":"uid",description:"{{t('Randomly generated and can be modified. Support letters, numbers and underscores, must start with an letter.')}}"},description:{title:'{{t("Description")}}',type:"string",name:"description","x-decorator":"FormItem","x-component":"Input"},actions:{type:"void",title:F("Request actions"),"x-decorator":"FormItem","x-component":"FormCollapse","x-component-props":{size:"small",accordion:!0,defaultActiveKey:[]},properties:{list:a,get:i,create:p,update:l,destroy:d}},fields:{type:"array",required:!0,"x-component":te,"x-decorator":"FormItem",title:F("Fields",!0)},filterTargetKey:{title:F("Record unique key"),required:!0,type:"single",description:F("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."),"x-decorator":"FormItem","x-component":"Select","x-reactions":["{{useAsyncDataSource(loadFilterTargetKeys)}}"]},preview:{type:"void","x-visible":"{{ createOnly }}","x-component":Ye,"x-reactions":{dependencies:["fields"],fulfill:{schema:{"x-component-props":"{{$form.values}}"}}}},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{action1:{title:'{{ t("Cancel") }}',"x-component":"Action","x-component-props":{useAction:"{{ useCancelAction }}"}},action2:{title:'{{ t("Submit") }}',"x-component":"Action","x-component-props":{type:"primary",useAction:t}}}}}}}}}function re(e){return Object.keys(e).filter(n=>{const a=e[n];return a.method&&a.path}).reduce((n,a)=>A(f({},n),{[a]:e[a]}),{})}function se(e){return["list","get"].filter(t=>!e.includes(t))}function Ze(){const e=x.useForm(),{refreshCM:t}=r.useCollectionManager_deprecated(),s=r.useActionContext(),{refresh:o}=r.useResourceActionContext(),n=r.useAPIClient(),{name:a}=L.useParams(),i=n.resource("dataSources.collections",a),p=x.useField(),l=r.useDataSourceManager();return k(),{run(){return D(this,null,function*(){p.data=p.data||{},p.data.loading=!0;try{yield e.submit();const u=V.cloneDeep(e.values),h=re(u==null?void 0:u.actions),P=se(Object.keys(h)),w=V.pick(u,["fields","name","title","filterTargetKey"]),b=P[0];b?(e.query(`*.actions.${b}`).take(I=>{I.setComponentProps({style:{border:"1px solid #ff4d4f"}})}),yield e[b].submit()):(yield i.create({values:A(f({logging:!0},w),{actions:h})}),s.setVisible(!1),yield e.reset(),p.data.loading=!1,o(),yield t(),l.getDataSource(a).reload())}catch(u){console.error(u),p.data.loading=!1}})}}}const et=e=>{const{scope:t,getContainer:s,item:o}=e,n=F("Create collection",!0),a=oe(n,Ze);return c.jsx(r.SchemaComponent,{schema:a,components:{ArrayTable:T.ArrayTable,TemplateSummay:r.TemplateSummary,FormCollapse:T.FormCollapse,ArrayItems:T.ArrayItems,FormLayout:T.FormLayout,FormItem:r.FormItem},scope:f({createOnly:!0,record:o,showReverseFieldConfig:!0,presetFieldsDisabled:!0,getContainer:s,useCancelAction:r.useCancelAction},t)})},tt=e=>{const{t}=k(!0),{scope:s,getContainer:o,item:n}=e,[a,i]=v.useState(!1),p=()=>i(!0);return c.jsx(r.RecordProvider,{record:n,children:c.jsxs(r.ActionContextProvider,{value:{visible:a,setVisible:i},children:[c.jsx(g.Button,{type:"primary",icon:c.jsx(X.PlusOutlined,{}),onClick:p,children:t("Create collection")}),c.jsx(et,{scope:s,getContainer:o,item:n})]})})},ot=e=>{const t=r.useRecord();return c.jsx(tt,f({item:t},e))};function rt(){const{run:e}=st(),{refreshCM:t}=r.useCollectionManager_deprecated();return{run(){return D(this,null,function*(){yield e(),yield t()})}}}function st(){const e=r.useAPIClient(),{t}=k(),s=x.useForm(),o=r.useActionContext(),{name:n}=L.useParams(),{state:a,setState:i,refresh:p}=r.useResourceActionContext();return{run(){return D(this,null,function*(){var d;if(!(a!=null&&a.selectedRowKeys)||a.selectedRowKeys.length===0)return g.message.error(t("Please select the records you want to delete"));yield e.resource("dataSources.collections",n).destroy({filterByTk:(a==null?void 0:a.selectedRowKeys)||[]}),s.reset(),(d=o==null?void 0:o.setVisible)==null||d.call(o,!1),i==null||i({selectedRowKeys:[]}),p()})}}}function nt(){const{run:e}=at(),{refreshCM:t}=r.useCollectionManager_deprecated();return{run(){return D(this,null,function*(){yield e(),yield t()})}}}function at(){const e=r.useAPIClient(),t=r.useActionContext(),{key:s}=r.useRecord(),{name:o}=L.useParams(),{refresh:n}=r.useResourceActionContext();return{run(){return D(this,null,function*(){var i;yield e.resource("dataSources.collections",o).destroy({filterByTk:s}),(i=t==null?void 0:t.setVisible)==null||i.call(t,!1),n()})}}}const ne=e=>{const{t}=k(),{modal:s}=g.App.useApp(),b=e,{item:o,isBulk:n,children:a}=b,i=le(b,["item","isBulk","children"]),p=V.omit(i,["scope","getContainer","useAction"]),[l,d]=v.useState(!1),{run:u}=rt(),{run:h}=nt(),P=n?u:h,w=()=>{s.confirm({title:t("Delete collection"),content:t("Are you sure you want to delete it?"),onOk:P})};return c.jsx(r.RecordProvider,{record:o,children:c.jsx(r.ActionContextProvider,{value:{visible:l,setVisible:d},children:n?c.jsx(g.Button,{icon:c.jsx(X.DeleteOutlined,{}),onClick:w,children:a||_("Delete")}):c.jsx("a",A(f({onClick:w},p),{children:a||_("Delete")}))})})};ne.displayName="DeleteCollectionAction";const ct=e=>{const t=r.useRecord();return c.jsx(ne,f({item:t},e))},it=e=>{const t=r.useAPIClient(),s=r.useDataSourceManager(),{refreshCM:o}=r.useCollectionManager_deprecated(),{refresh:n}=r.useResourceActionContext(),a=x.useForm(),i=r.useActionContext(),{targetKey:p}=r.useResourceContext(),{name:l}=L.useParams(),{[p]:d}=r.useRecord(),u=t.resource("dataSources.collections",l);return{run(){return D(this,null,function*(){yield a.submit();const P=V.cloneDeep(a.values),w=re(P==null?void 0:P.actions),b=se(Object.keys(w)),I=V.pick(a.values,["fields","name","title","filterTargetKey","description"]),S=b[0];if(S)a.query(`*.actions.${S}`).take(m=>{m.setComponentProps({style:{border:"1px solid #ff4d4f"}})}),yield a[S].submit();else{yield u.update({filterByTk:d,values:A(f({},I),{actions:w})}),i.setVisible(!1);const m=s.getDataSource(l);m!=null&&m.reload||m.reload.call(m),yield a.reset(),n(),yield o()}})}}},pt=e=>{const{scope:t,getContainer:s,item:o}=e,n=oe('{{ t("Edit collection") }}',it,o);return c.jsx(r.SchemaComponent,{schema:n,components:{ArrayTable:T.ArrayTable,TemplateSummay:r.TemplateSummary,FormCollapse:T.FormCollapse,ArrayItems:T.ArrayItems,FormLayout:T.FormLayout,FormItem:r.FormItem},scope:f({createOnly:!0,record:o,showReverseFieldConfig:!0,presetFieldsDisabled:!0,getContainer:s,useCancelAction:r.useCancelAction},t)})},lt=e=>{k();const{scope:t,getContainer:s,item:o}=e,[n,a]=v.useState(!1),[i,p]=v.useState(null),d=r.useAPIClient().resource("dataSources.collections",o.dataSourceKey);return c.jsx(r.RecordProvider,{record:o,children:c.jsxs(r.ActionContextProvider,{value:{visible:n,setVisible:a},children:[c.jsx("a",{onClick:()=>D(null,null,function*(){var h;const u=yield d.get({filterByTk:o.key,appends:["fields"]});p((h=u==null?void 0:u.data)==null?void 0:h.data),a(!0)}),children:_("Edit")}),c.jsx(pt,{scope:t,item:i,getContainer:s})]})})},dt=e=>{const t=r.useRecord();return c.jsx(lt,f({item:t},e))},ut={type:"object",properties:{displayName:{type:"string",title:`{{t("Data source display name",{ ns: "${C}" })}}`,required:!0,"x-decorator":"FormItem","x-component":"Input"},key:{type:"string",title:`{{t("Data source name",{ ns: "${C}" })}}`,required:!0,"x-decorator":"FormItem","x-component":"Input","x-validator":"uid","x-disabled":"{{ createOnly }}",description:`{{t('Randomly generated and can be modified. Support letters, numbers and underscores, must start with an letter.',{ ns: "${C}" })}}`},options:{type:"object",properties:{baseUrl:{type:"string",title:`{{t("BaseURL",{ ns: "${C}" })}}`,required:!0,"x-decorator":"FormItem","x-component":"Input.URL","x-validator":{type:"pattern",pattern:/^(https?|ftp):\/\/((([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,})|(\d{1,3}\.){3}\d{1,3}|localhost)(:(\d{1,5}))?(\/[^\s]*)?$/,message:`{{t("Invalid URL",{ ns: "${C}" })}}`}},headers:{type:"array","x-component":"ArrayItems","x-decorator":"FormItem",title:`{{t("Headers", { ns: "${C}" })}}`,items:{type:"object",properties:{space:{type:"void","x-component":"Space","x-component-props":{style:{flexWrap:"nowrap",maxWidth:"100%",display:"flex"},className:r.css`
|
|
65
|
+
`,useValues(o){return s.current=x.useForm(),r.useRequest(()=>Promise.resolve(),o)},effects:()=>{const o=a=>{const i=s.current,{actions:p}=i.values||{},{path:l,value:d}=a.getState();l.includes("add")||i.setValuesIn("actions",A(f({},p),{[e]:q.unflatten(A(f({},p==null?void 0:p[e]),{[l]:d}))}))},n=V.debounce((a,i)=>D(null,null,function*(){i.modified&&(yield o(a))}),400);x.onFieldChange("*",(a,i)=>{i.modified&&n(a,i)})}},type:"void",properties:{[x.uid()]:{type:"void",properties:{requestAction:{type:"string","x-component":Y},requestTab:{type:"void","x-decorator":"FormItem",title:`{{t("Adapt request parameters",{ ns: "${C}" })}}`,"x-component":Q,"x-decorator-props":{tooltip:`{{t("Provide request variables from TachyBase for use by third-party APIs.",{ ns: "${C}" })}}`}},responseTransformer:{type:"string","x-decorator":"FormItem",title:`{{t("Convert third-party response results to TachyBase standard",{ ns: "${C}" })}}`,"x-component":Z,"x-decorator-props":{tooltip:`{{t("The response results from third-party APIs need to be converted to the TachyBase standard to display correctly on the frontend.",{ ns: "${C}" })}}`}},debug:{type:"void","x-component":Je}}}}}}}},Ye=e=>{const t=x.useForm(),s=r.useCompile(),{t:o}=k(),{fields:n,preview:a}=e,[i,p]=v.useState([]),[l,d]=v.useState(a),{getInterface:u}=r.useCollectionManager_deprecated(),h=T=>{const w=T.filter(I=>I.source||I.interface);return w?w.map(I=>{var M,B;const S=((M=I==null?void 0:I.uiSchema)==null?void 0:M.title)||I.name,m=(B=u(I.interface))==null?void 0:B.default.uiSchema;return{key:I.name,title:s(S),dataIndex:I.name,width:200,render:(E,H,N)=>{const U=H[I.name],ht={type:"object",properties:{[I.name]:A(f({name:`${I.name}`},m),{"x-read-pretty":!0,default:I.interface==="json"||typeof U=="object"?JSON.stringify(U):U})}};return c.jsx(r.EllipsisWithTooltip,{ellipsis:!0,children:c.jsx(x.RecursionField,{schema:ht,name:N,onlyRenderProperties:!0})})}}}):void 0};return v.useEffect(()=>{d(a)},[a,n]),v.useEffect(()=>{p([]);const T=h(n);p(T)},[t.values.fields]),c.jsx("div",{style:{marginBottom:"var(--tb-spacing)"},children:(l==null?void 0:l.length)>0&&c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:"ant-formily-item-label",style:{marginTop:"var(--tb-spacing)",display:"flex",padding:"0 0 8px"},children:[c.jsx("div",{className:"ant-formily-item-label-content",children:c.jsx("span",{children:c.jsx("label",{children:o("Preview")})})}),c.jsx("span",{className:"ant-formily-item-colon",children:":"})]}),c.jsx(g.Table,{size:"middle",pagination:!1,bordered:!0,columns:i,dataSource:l,scroll:{x:1e3,y:300}},"preview")]})},x.uid())},Qe=(e,t)=>e.filter(o=>o.children.filter(a=>a.availableTypes&&a.availableTypes.includes(t)).length>0).map(o=>({label:o.label,key:o.key,children:o.children.filter(n=>n.availableTypes&&n.availableTypes.includes(t))})),te=e=>{const t=r.useCompile(),{getInterface:s}=r.useCollectionManager_deprecated(),{t:o}=k(),n=x.useForm(),a=x.useField(),[i,p]=v.useState(a.value),l=r.useFieldInterfaceOptions().filter(b=>!["relation","systemInfo"].includes(b.key)),{modal:d}=g.App.useApp(),u=(b,I)=>{setTimeout(()=>{i.splice(I,1,b),p(i),a.value=i.concat()},300)},h=b=>{i.splice(b,1);const I=i.concat();a.value=I,p(I)},T=()=>{d.confirm({title:o("Are you sure you want to clear fields?"),onOk:()=>{n.setValuesIn("fields",[]),n.setValuesIn("preview",[])}})},w=v.useMemo(()=>[{dataIndex:"index",width:60,key:"index",render:(b,I,S)=>S+1},{title:o("Field display name"),dataIndex:"title",key:"title",width:150,render:(b,I,S)=>{const m=i[S];return c.jsx(g.Input,{defaultValue:m.uiSchema.title,onChange:V.debounce(M=>{u(A(f({},m),{uiSchema:A(f({},V.omit(m==null?void 0:m.uiSchema,"rawTitle")),{title:M.target.value})}),S)},300)})}},{title:o("Field name"),dataIndex:"name",key:"name",width:130},{title:o("Field type"),dataIndex:"type",width:140,key:"type",render:(b,I,S)=>{const m=i[S];return m!=null&&m.source||!(m!=null&&m.possibleTypes)?c.jsxs(g.Tag,{children:[" ",b]}):c.jsx(g.Select,{defaultValue:b,popupMatchSelectWidth:!1,style:{width:"100%"},options:(m==null?void 0:m.possibleTypes.map(M=>({label:M,value:M})))||[],onChange:M=>{u(A(f({},m),{type:M}),S)}})}},{title:o("Field interface"),dataIndex:"interface",key:"interface",width:150,render:(b,I,S)=>{const m=i[S],M=(m==null?void 0:m.type)&&Qe(l,m==null?void 0:m.type),B=E=>{var N;const H=s(E);u(A(f({},m),{interface:E,uiSchema:f(f({},m.uiSchema),(N=H==null?void 0:H.default)==null?void 0:N.uiSchema)}),S)};return c.jsx(g.Select,{defaultValue:b,style:{width:"100%"},popupMatchSelectWidth:!1,onChange:B,children:M==null?void 0:M.map(E=>c.jsx(g.Select.OptGroup,{label:t(E.label),children:E.children.map(({label:H,value:N,name:U})=>c.jsx(g.Select.Option,{value:U,children:t(H)},N))},E.key))})}},{title:o("Actions"),dataIndex:"actions",fixed:"right",key:"actions",align:"center",width:100,render:(b,I,S)=>c.jsxs("a",{onClick:()=>h(S),children:[" ",o("Delete")]})}],[i]);return v.useEffect(()=>{p(a.value)},[a.value]),c.jsxs(c.Fragment,{children:[i.length?c.jsx(g.Button,{style:{position:"absolute",top:"-10px",right:"0px"},onClick:T,children:o("Clear")}):null,c.jsx(g.Table,{bordered:!0,size:"middle",columns:w,dataSource:i,scroll:{y:300},pagination:!1})]})};te.displayName="PreviewFields";function oe(e,t,s={}){const o=V.cloneDeep(s),n=f({name:`t_${x.uid()}`},o);n.reverseField&&(n.reverseField.name=`f_${x.uid()}`);const a=z("list",`{{t("List",{ ns: "${C}" })}}`),i=z("get",`{{t("Get",{ ns: "${C}" })}}`),p=z("create",`{{t("Create",{ ns: "${C}" })}}`),l=z("update",`{{t("Update",{ ns: "${C}" })}}`),d=z("destroy",`{{t("Destroy",{ ns: "${C}" })}}`);return{type:"object",properties:{[x.uid()]:{type:"void","x-component":"Action.Drawer","x-component-props":{getContainer:"{{ getContainer }}"},"x-decorator":"Form","x-decorator-props":{useValues(u){return r.useRequest(()=>Promise.resolve({data:n}),u)}},title:e,properties:{title:{type:"string",title:'{{ t("Collection display name") }}',required:!0,"x-decorator":"FormItem","x-component":"Input"},name:{type:"string",title:'{{t("Collection name")}}',required:!0,"x-disabled":"{{ !createOnly }}","x-decorator":"FormItem","x-component":"Input","x-validator":"uid",description:"{{t('Randomly generated and can be modified. Support letters, numbers and underscores, must start with an letter.')}}"},description:{title:'{{t("Description")}}',type:"string",name:"description","x-decorator":"FormItem","x-component":"Input"},actions:{type:"void",title:F("Request actions"),"x-decorator":"FormItem","x-component":"FormCollapse","x-component-props":{size:"small",accordion:!0,defaultActiveKey:[]},properties:{list:a,get:i,create:p,update:l,destroy:d}},fields:{type:"array",required:!0,"x-component":te,"x-decorator":"FormItem",title:F("Fields",!0)},filterTargetKey:{title:F("Record unique key"),required:!0,type:"single",description:F("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."),"x-decorator":"FormItem","x-component":"Select","x-reactions":["{{useAsyncDataSource(loadFilterTargetKeys)}}"]},preview:{type:"void","x-visible":"{{ createOnly }}","x-component":Ye,"x-reactions":{dependencies:["fields"],fulfill:{schema:{"x-component-props":"{{$form.values}}"}}}},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{action1:{title:'{{ t("Cancel") }}',"x-component":"Action","x-component-props":{useAction:"{{ useCancelAction }}"}},action2:{title:'{{ t("Submit") }}',"x-component":"Action","x-component-props":{type:"primary",useAction:t}}}}}}}}}function re(e){return Object.keys(e).filter(n=>{const a=e[n];return a.method&&a.path}).reduce((n,a)=>A(f({},n),{[a]:e[a]}),{})}function se(e){return["list","get"].filter(t=>!e.includes(t))}function Ze(){const e=x.useForm(),{refreshCM:t}=r.useCollectionManager_deprecated(),s=r.useActionContext(),{refresh:o}=r.useResourceActionContext(),n=r.useAPIClient(),{name:a}=L.useParams(),i=n.resource("dataSources.collections",a),p=x.useField(),l=r.useDataSourceManager();return k(),{run(){return D(this,null,function*(){p.data=p.data||{},p.data.loading=!0;try{yield e.submit();const u=V.cloneDeep(e.values),h=re(u==null?void 0:u.actions),T=se(Object.keys(h)),w=V.pick(u,["fields","name","title","filterTargetKey"]),b=T[0];b?(e.query(`*.actions.${b}`).take(I=>{I.setComponentProps({style:{border:"1px solid #ff4d4f"}})}),yield e[b].submit()):(yield i.create({values:A(f({logging:!0},w),{actions:h})}),s.setVisible(!1),yield e.reset(),p.data.loading=!1,o(),yield t(),l.getDataSource(a).reload())}catch(u){console.error(u),p.data.loading=!1}})}}}const et=e=>{const{scope:t,getContainer:s,item:o}=e,n=F("Create collection",!0),a=oe(n,Ze);return c.jsx(r.SchemaComponent,{schema:a,components:{ArrayTable:q.ArrayTable,TemplateSummay:r.TemplateSummary,FormCollapse:q.FormCollapse,ArrayItems:q.ArrayItems,FormLayout:q.FormLayout,FormItem:r.FormItem},scope:f({createOnly:!0,record:o,showReverseFieldConfig:!0,presetFieldsDisabled:!0,getContainer:s,useCancelAction:r.useCancelAction},t)})},tt=e=>{const{t}=k(!0),{scope:s,getContainer:o,item:n}=e,[a,i]=v.useState(!1),p=()=>i(!0);return c.jsx(r.RecordProvider,{record:n,children:c.jsxs(r.ActionContextProvider,{value:{visible:a,setVisible:i},children:[c.jsx(g.Button,{type:"primary",icon:c.jsx(X.PlusOutlined,{}),onClick:p,children:t("Create collection")}),c.jsx(et,{scope:s,getContainer:o,item:n})]})})},ot=e=>{const t=r.useRecord();return c.jsx(tt,f({item:t},e))};function rt(){const{run:e}=st(),{refreshCM:t}=r.useCollectionManager_deprecated();return{run(){return D(this,null,function*(){yield e(),yield t()})}}}function st(){const e=r.useAPIClient(),{t}=k(),s=x.useForm(),o=r.useActionContext(),{name:n}=L.useParams(),{state:a,setState:i,refresh:p}=r.useResourceActionContext();return{run(){return D(this,null,function*(){var d;if(!(a!=null&&a.selectedRowKeys)||a.selectedRowKeys.length===0)return g.message.error(t("Please select the records you want to delete"));yield e.resource("dataSources.collections",n).destroy({filterByTk:(a==null?void 0:a.selectedRowKeys)||[]}),s.reset(),(d=o==null?void 0:o.setVisible)==null||d.call(o,!1),i==null||i({selectedRowKeys:[]}),p()})}}}function nt(){const{run:e}=at(),{refreshCM:t}=r.useCollectionManager_deprecated();return{run(){return D(this,null,function*(){yield e(),yield t()})}}}function at(){const e=r.useAPIClient(),t=r.useActionContext(),{key:s}=r.useRecord(),{name:o}=L.useParams(),{refresh:n}=r.useResourceActionContext();return{run(){return D(this,null,function*(){var i;yield e.resource("dataSources.collections",o).destroy({filterByTk:s}),(i=t==null?void 0:t.setVisible)==null||i.call(t,!1),n()})}}}const ne=e=>{const{t}=k(),{modal:s}=g.App.useApp(),b=e,{item:o,isBulk:n,children:a}=b,i=le(b,["item","isBulk","children"]),p=V.omit(i,["scope","getContainer","useAction"]),[l,d]=v.useState(!1),{run:u}=rt(),{run:h}=nt(),T=n?u:h,w=()=>{s.confirm({title:t("Delete collection"),content:t("Are you sure you want to delete it?"),onOk:T})};return c.jsx(r.RecordProvider,{record:o,children:c.jsx(r.ActionContextProvider,{value:{visible:l,setVisible:d},children:n?c.jsx(g.Button,{icon:c.jsx(X.DeleteOutlined,{}),onClick:w,children:a||_("Delete")}):c.jsx("a",A(f({onClick:w},p),{children:a||_("Delete")}))})})};ne.displayName="DeleteCollectionAction";const ct=e=>{const t=r.useRecord();return c.jsx(ne,f({item:t},e))},it=e=>{const t=r.useAPIClient(),s=r.useDataSourceManager(),{refreshCM:o}=r.useCollectionManager_deprecated(),{refresh:n}=r.useResourceActionContext(),a=x.useForm(),i=r.useActionContext(),{targetKey:p}=r.useResourceContext(),{name:l}=L.useParams(),{[p]:d}=r.useRecord(),u=t.resource("dataSources.collections",l);return{run(){return D(this,null,function*(){yield a.submit();const T=V.cloneDeep(a.values),w=re(T==null?void 0:T.actions),b=se(Object.keys(w)),I=V.pick(a.values,["fields","name","title","filterTargetKey","description"]),S=b[0];if(S)a.query(`*.actions.${S}`).take(m=>{m.setComponentProps({style:{border:"1px solid #ff4d4f"}})}),yield a[S].submit();else{yield u.update({filterByTk:d,values:A(f({},I),{actions:w})}),i.setVisible(!1);const m=s.getDataSource(l);m!=null&&m.reload||m.reload.call(m),yield a.reset(),n(),yield o()}})}}},pt=e=>{const{scope:t,getContainer:s,item:o}=e,n=oe('{{ t("Edit collection") }}',it,o);return c.jsx(r.SchemaComponent,{schema:n,components:{ArrayTable:q.ArrayTable,TemplateSummay:r.TemplateSummary,FormCollapse:q.FormCollapse,ArrayItems:q.ArrayItems,FormLayout:q.FormLayout,FormItem:r.FormItem},scope:f({createOnly:!0,record:o,showReverseFieldConfig:!0,presetFieldsDisabled:!0,getContainer:s,useCancelAction:r.useCancelAction},t)})},lt=e=>{k();const{scope:t,getContainer:s,item:o}=e,[n,a]=v.useState(!1),[i,p]=v.useState(null),d=r.useAPIClient().resource("dataSources.collections",o.dataSourceKey);return c.jsx(r.RecordProvider,{record:o,children:c.jsxs(r.ActionContextProvider,{value:{visible:n,setVisible:a},children:[c.jsx("a",{onClick:()=>D(null,null,function*(){var h;const u=yield d.get({filterByTk:o.key,appends:["fields"]});p((h=u==null?void 0:u.data)==null?void 0:h.data),a(!0)}),children:_("Edit")}),c.jsx(pt,{scope:t,item:i,getContainer:s})]})})},dt=e=>{const t=r.useRecord();return c.jsx(lt,f({item:t},e))},ut={type:"object",properties:{displayName:{type:"string",title:`{{t("Data source display name",{ ns: "${C}" })}}`,required:!0,"x-decorator":"FormItem","x-component":"Input"},key:{type:"string",title:`{{t("Data source name",{ ns: "${C}" })}}`,required:!0,"x-decorator":"FormItem","x-component":"Input","x-validator":"uid","x-disabled":"{{ createOnly }}",description:`{{t('Randomly generated and can be modified. Support letters, numbers and underscores, must start with an letter.',{ ns: "${C}" })}}`},options:{type:"object",properties:{baseUrl:{type:"string",title:`{{t("BaseURL",{ ns: "${C}" })}}`,required:!0,"x-decorator":"FormItem","x-component":"Input.URL","x-validator":{type:"pattern",pattern:/^(https?|ftp):\/\/((([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,})|(\d{1,3}\.){3}\d{1,3}|localhost)(:(\d{1,5}))?(\/[^\s]*)?$/,message:`{{t("Invalid URL",{ ns: "${C}" })}}`}},headers:{type:"array","x-component":"ArrayItems","x-decorator":"FormItem",title:`{{t("Headers", { ns: "${C}" })}}`,items:{type:"object",properties:{space:{type:"void","x-component":"Space","x-component-props":{style:{flexWrap:"nowrap",maxWidth:"100%",display:"flex"},className:r.css`
|
|
66
66
|
& > .ant-space-item:first-child,
|
|
67
67
|
& > .ant-space-item:last-child {
|
|
68
68
|
flex-shrink: 0;
|
|
@@ -80,4 +80,4 @@
|
|
|
80
80
|
& > .ant-space-item:nth-of-type(2) {
|
|
81
81
|
flex: 1;
|
|
82
82
|
}
|
|
83
|
-
`},properties:{name:{type:"string","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:'{{t("Name")}}'}},value:{type:"string","x-decorator":"FormItem","x-component":"Input","x-component-props":{useTypedConstant:!0}},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}}}}},properties:{add:{type:"void",title:`{{t("Add variable", { ns: "${C}" })}}`,"x-component":"ArrayItems.Addition"}}},timeout:{type:"string",title:`{{t("Timeout",{ ns: "${C}" })}}`,"x-decorator":"FormItem","x-component":"InputNumber","x-component-props":{addonAfter:"ms",style:{minWidth:200}},default:5e3},responseType:{type:"string",title:`{{t("Response type",{ ns: "${C}" })}}`,"x-decorator":"FormItem","x-component":"Select",default:"json",enum:[{value:"json",label:`{{t("JSON",{ ns: "${C}" })}}`}]}}},enabled:{type:"string","x-content":`{{t("Enabled the data source",{ ns: "${C}" })}}`,"x-decorator":"FormItem","x-component":"Checkbox",default:!0}}},mt=()=>{const{t:e}=k();return c.jsx(r.SchemaComponent,{schema:ut,components:{Space:r.Space},scope:{t:e}})};class yt extends r.Plugin{load(){return D(this,null,function*(){this.app.pm.get(
|
|
83
|
+
`},properties:{name:{type:"string","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:'{{t("Name")}}'}},value:{type:"string","x-decorator":"FormItem","x-component":"Input","x-component-props":{useTypedConstant:!0}},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}}}}},properties:{add:{type:"void",title:`{{t("Add variable", { ns: "${C}" })}}`,"x-component":"ArrayItems.Addition"}}},timeout:{type:"string",title:`{{t("Timeout",{ ns: "${C}" })}}`,"x-decorator":"FormItem","x-component":"InputNumber","x-component-props":{addonAfter:"ms",style:{minWidth:200}},default:5e3},responseType:{type:"string",title:`{{t("Response type",{ ns: "${C}" })}}`,"x-decorator":"FormItem","x-component":"Select",default:"json",enum:[{value:"json",label:`{{t("JSON",{ ns: "${C}" })}}`}]}}},enabled:{type:"string","x-content":`{{t("Enabled the data source",{ ns: "${C}" })}}`,"x-decorator":"FormItem","x-component":"Checkbox",default:!0}}},mt=()=>{const{t:e}=k();return c.jsx(r.SchemaComponent,{schema:ut,components:{Space:r.Space},scope:{t:e}})};class yt extends r.Plugin{load(){return D(this,null,function*(){this.app.pm.get(P).registerType("http",{label:F("HTTP"),allowCollectionCreate:!0,allowCollectionDeletion:!0,disabledConfigureFields:!1,disableAddFields:!0,disableTestConnection:!0,DataSourceSettingsForm:mt,AddCollection:ot,EditCollection:dt,DeleteCollection:ct})})}}const xt=()=>{const{t:e}=k();return c.jsx(r.SchemaComponent,{scope:{t:e},schema:{type:"object",properties:{key:{type:"string",title:F("Data source name"),required:!0,"x-decorator":"FormItem","x-component":"Input","x-validator":"uid","x-disabled":"{{ createOnly }}",description:F("Randomly generated and can be modified. Support letters, numbers and underscores, must start with an letter.")},displayName:{type:"string",title:F("Data source display name"),required:!0,"x-decorator":"FormItem","x-component":"Input"},options:{type:"object",properties:{host:{type:"string",title:F("Host"),required:!0,"x-decorator":"FormItem","x-component":"Input",default:"localhost"},port:{type:"string",title:F("Port"),required:!0,"x-decorator":"FormItem","x-component":"Input",default:3306},database:{type:"string",title:F("Database"),required:!0,"x-decorator":"FormItem","x-component":"Input"},username:{type:"string",title:F("Username"),required:!0,"x-decorator":"FormItem","x-component":"Input"},password:{type:"string",title:F("Password"),"x-decorator":"FormItem","x-component":"Password"},tablePrefix:{type:"string",title:F("Table prefix"),"x-decorator":"FormItem","x-component":"Input"}}},enabled:{type:"string","x-content":F("Enabled the data source"),"x-decorator":"FormItem","x-component":"Checkbox",default:!0}}}})},ft=()=>{const{t:e}=k();return c.jsx(r.SchemaComponent,{scope:{t:e},components:{Space:g.Space},schema:{type:"object",properties:{key:{type:"string",title:F("Data source name"),required:!0,"x-decorator":"FormItem","x-component":"Input","x-validator":"uid","x-disabled":"{{ createOnly }}",description:F("Randomly generated and can be modified. Support letters, numbers and underscores, must start with an letter.")},displayName:{type:"string",title:F("Data source display name"),required:!0,"x-decorator":"FormItem","x-component":"Input"},options:{type:"object",properties:{host:{type:"string",title:F("Host"),required:!0,"x-decorator":"FormItem","x-component":"Input",default:"localhost"},port:{type:"string",title:F("Port"),required:!0,"x-decorator":"FormItem","x-component":"Input",default:5432},database:{type:"string",title:F("Database"),required:!0,"x-decorator":"FormItem","x-component":"Input"},username:{type:"string",title:F("Username"),required:!0,"x-decorator":"FormItem","x-component":"Input"},password:{type:"string",title:F("Password"),"x-decorator":"FormItem","x-component":"Password"},tablePrefix:{type:"string",title:F("Table prefix"),"x-decorator":"FormItem","x-component":"Input"},schema:{type:"string",title:F("Schema"),"x-decorator":"FormItem","x-component":"Input"}}},enabled:{type:"string","x-content":F("Enabled the data source"),"x-decorator":"FormItem","x-component":"Checkbox",default:!0}}}})};class ae extends r.Plugin{afterAdd(){return D(this,null,function*(){this.app.pm.add(yt)})}load(){return D(this,null,function*(){this.app.pm.get(P.PluginDataSourceManagerClient).registerType("postgres",{DataSourceSettingsForm:ft,label:F("PostgreSQL")}),this.app.pm.get(P.PluginDataSourceManagerClient).registerType("mysql",{DataSourceSettingsForm:xt,label:F("MySQL")})})}}y.PluginExternalDataSourceClient=ae,y.default=ae,Object.defineProperties(y,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
package/dist/externalVersion.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
module.exports = {
|
|
2
|
-
"@tachybase/client": "1.3.
|
|
3
|
-
"@tachybase/module-data-source": "1.3.
|
|
4
|
-
"@tego/server": "1.3.
|
|
2
|
+
"@tachybase/client": "1.3.23",
|
|
3
|
+
"@tachybase/module-data-source": "1.3.23",
|
|
4
|
+
"@tego/server": "1.3.43",
|
|
5
5
|
"react": "18.3.1",
|
|
6
6
|
"antd": "5.22.5",
|
|
7
7
|
"lodash": "4.17.21",
|
|
8
8
|
"axios": "1.7.7",
|
|
9
|
+
"dayjs": "1.11.13",
|
|
9
10
|
"@ant-design/icons": "5.6.1",
|
|
10
|
-
"@tachybase/schema": "1.3.
|
|
11
|
-
"@tego/client": "1.3.
|
|
11
|
+
"@tachybase/schema": "1.3.43",
|
|
12
|
+
"@tego/client": "1.3.43",
|
|
12
13
|
"react-router-dom": "6.28.1"
|
|
13
14
|
};
|
|
@@ -32,6 +32,7 @@ __export(http_collection_exports, {
|
|
|
32
32
|
module.exports = __toCommonJS(http_collection_exports);
|
|
33
33
|
var import_server = require("@tego/server");
|
|
34
34
|
var import_axios = __toESM(require("axios"));
|
|
35
|
+
var import_dayjs = __toESM(require("dayjs"));
|
|
35
36
|
var import_lodash = __toESM(require("lodash"));
|
|
36
37
|
var import_transform_response = require("./transform-response");
|
|
37
38
|
var import_type_interface_map = require("./type-interface-map");
|
|
@@ -108,7 +109,7 @@ function buildTemplateContext(options) {
|
|
|
108
109
|
function rawTypeToFieldType(rawType, exampleValue) {
|
|
109
110
|
const typeInfers = {
|
|
110
111
|
string: () => {
|
|
111
|
-
if ((0,
|
|
112
|
+
if ((0, import_dayjs.default)(exampleValue).isValid()) {
|
|
112
113
|
return ["string", "date"];
|
|
113
114
|
}
|
|
114
115
|
return "string";
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tachybase/plugin-data-source-common",
|
|
3
3
|
"displayName": "External DataSource Support",
|
|
4
|
-
"version": "1.3.
|
|
4
|
+
"version": "1.3.23",
|
|
5
5
|
"description": "Supports more data sources",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"Data sources"
|
|
@@ -10,20 +10,21 @@
|
|
|
10
10
|
"dependencies": {},
|
|
11
11
|
"devDependencies": {
|
|
12
12
|
"@ant-design/icons": "^5.6.1",
|
|
13
|
-
"@tachybase/schema": "^1.3.
|
|
14
|
-
"@tachybase/test": "^1.3.
|
|
15
|
-
"@tego/client": "^1.3.
|
|
16
|
-
"@tego/server": "^1.3.
|
|
13
|
+
"@tachybase/schema": "^1.3.43",
|
|
14
|
+
"@tachybase/test": "^1.3.43",
|
|
15
|
+
"@tego/client": "^1.3.43",
|
|
16
|
+
"@tego/server": "^1.3.43",
|
|
17
17
|
"@types/lodash": "^4.17.20",
|
|
18
18
|
"antd": "5.22.5",
|
|
19
19
|
"axios": "1.7.7",
|
|
20
|
+
"dayjs": "^1.11.13",
|
|
20
21
|
"lodash": "4.17.21",
|
|
21
|
-
"mysql2": "^3.14.
|
|
22
|
+
"mysql2": "^3.14.3",
|
|
22
23
|
"pg": "^8.16.3",
|
|
23
24
|
"react-i18next": "15.2.0",
|
|
24
25
|
"react-router-dom": "6.28.1",
|
|
25
|
-
"@tachybase/
|
|
26
|
-
"@tachybase/
|
|
26
|
+
"@tachybase/module-data-source": "1.3.23",
|
|
27
|
+
"@tachybase/client": "1.3.23"
|
|
27
28
|
},
|
|
28
29
|
"description.zh-CN": "支持更多的数据源",
|
|
29
30
|
"displayName.zh-CN": "外部数据源支持",
|