@nocobase/plugin-action-custom-request 1.3.20-beta → 1.3.22-beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/client/index.js
CHANGED
|
@@ -7,4 +7,4 @@
|
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
(function(t,r){typeof exports=="object"&&typeof module!="undefined"?r(exports,require("react/jsx-runtime"),require("@nocobase/client"),require("@formily/react"),require("@nocobase/utils/client"),require("antd"),require("react"),require("react-i18next"),require("@formily/antd-v5"),require("@formily/shared")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","@nocobase/client","@formily/react","@nocobase/utils/client","antd","react","react-i18next","@formily/antd-v5","@formily/shared"],r):(t=typeof globalThis!="undefined"?globalThis:t||self,r(t["@nocobase/plugin-action-custom-request"]={},t.jsxRuntime,t["@nocobase/client"],t["@formily/react"],t["@nocobase/utils"],t.antd,t.react,t["react-i18next"],t["@formily/antd-v5"],t["@formily/shared"]))})(this,function(t,r,e,m,F,O,L,E,R,g){"use strict";var de=Object.defineProperty,fe=Object.defineProperties;var he=Object.getOwnPropertyDescriptors;var U=Object.getOwnPropertySymbols;var $=Object.prototype.hasOwnProperty,Q=Object.prototype.propertyIsEnumerable;var Y=(t,r,e)=>r in t?de(t,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[r]=e,q=(t,r)=>{for(var e in r||(r={}))$.call(r,e)&&Y(t,e,r[e]);if(U)for(var e of U(r))Q.call(r,e)&&Y(t,e,r[e]);return t},I=(t,r)=>fe(t,he(r));var Z=(t,r)=>{var e={};for(var m in t)$.call(t,m)&&r.indexOf(m)<0&&(e[m]=t[m]);if(t!=null&&U)for(var m of U(t))r.indexOf(m)<0&&Q.call(t,m)&&(e[m]=t[m]);return e};var A=(t,r,e)=>new Promise((m,F)=>{var O=R=>{try{E(e.next(R))}catch(g){F(g)}},L=R=>{try{E(e.throw(R))}catch(g){F(g)}},E=R=>R.done?m(R.value):Promise.resolve(R.value).then(O,L);E((e=e.apply(t,r)).next())});const j="customRequests:listByCurrentRole";var P=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{},V={exports:{}};(function(s,p){(function(i,c){c()})(P,function(){function i(o,a){return typeof a=="undefined"?a={autoBom:!1}:typeof a!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),a={autoBom:!a}),a.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(o.type)?new Blob(["\uFEFF",o],{type:o.type}):o}function c(o,a,y){var l=new XMLHttpRequest;l.open("GET",o),l.responseType="blob",l.onload=function(){v(l.response,a,y)},l.onerror=function(){console.error("could not download file")},l.send()}function d(o){var a=new XMLHttpRequest;a.open("HEAD",o,!1);try{a.send()}catch(y){}return 200<=a.status&&299>=a.status}function f(o){try{o.dispatchEvent(new MouseEvent("click"))}catch(y){var a=document.createEvent("MouseEvents");a.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),o.dispatchEvent(a)}}var u=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof P=="object"&&P.global===P?P:void 0,x=u.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),v=u.saveAs||(typeof window!="object"||window!==u?function(){}:"download"in HTMLAnchorElement.prototype&&!x?function(o,a,y){var l=u.URL||u.webkitURL,C=document.createElement("a");a=a||o.name||"download",C.download=a,C.rel="noopener",typeof o=="string"?(C.href=o,C.origin===location.origin?f(C):d(C.href)?c(o,a,y):f(C,C.target="_blank")):(C.href=l.createObjectURL(o),setTimeout(function(){l.revokeObjectURL(C.href)},4e4),setTimeout(function(){f(C)},0))}:"msSaveOrOpenBlob"in navigator?function(o,a,y){if(a=a||o.name||"download",typeof o!="string")navigator.msSaveOrOpenBlob(i(o,y),a);else if(d(o))c(o,a,y);else{var l=document.createElement("a");l.href=o,l.target="_blank",setTimeout(function(){f(l)})}}:function(o,a,y,l){if(l=l||open("","_blank"),l&&(l.document.title=l.document.body.innerText="downloading..."),typeof o=="string")return c(o,a,y);var C=o.type==="application/octet-stream",b=/constructor/i.test(u.HTMLElement)||u.safari,M=/CriOS\/[\d]+/.test(navigator.userAgent);if((M||C&&b||x)&&typeof FileReader!="undefined"){var n=new FileReader;n.onloadend=function(){var S=n.result;S=M?S:S.replace(/^data:[^;]*;/,"data:attachment/file;"),l?l.location.href=S:location=S,l=null},n.readAsDataURL(o)}else{var T=u.URL||u.webkitURL,w=T.createObjectURL(o);l?l.location=w:location.href=w,l=null,setTimeout(function(){T.revokeObjectURL(w)},4e4)}});u.saveAs=v.saveAs=v,s.exports=v})})(V);var ee=V.exports;const te=()=>{const s=e.useAPIClient(),p=e.useNavigateNoUpdate(),i=m.useFieldSchema(),c=e.useCompile(),d=m.useForm(),f=e.useRecord(),u=m.useFieldSchema(),x=m.useField(),{setVisible:v}=e.useActionContext(),{modal:o,message:a}=O.App.useApp(),y=e.useDataSourceKey();return{onClick(C,b){return A(this,null,function*(){var S,W;const{skipValidator:M,onSuccess:n}=(S=i==null?void 0:i["x-action-settings"])!=null?S:{},T=i==null?void 0:i["x-action"];M!==!0&&T==="customize:form:request"&&(yield d.submit());let w=q({},f);T==="customize:form:request"&&(w=d.values),(W=x.data)!=null||(x.data={}),x.data.loading=!0;try{const z=yield s.request({url:`/customRequests:send/${u["x-uid"]}`,method:"POST",data:{currentRecord:{dataSourceKey:y,data:w}},responseType:u["x-response-type"]==="stream"?"blob":"json"});if(z.headers["content-disposition"]){const pe=/attachment;\s*filename="([^"]+)"/,X=z.headers["content-disposition"].match(pe);X[1]&&ee.saveAs(z.data,X[1])}if(x.data.loading=!1,b&&(b==null||b()),T==="customize:form:request"&&(v==null||v(!1)),!(n!=null&&n.successMessage))return;n!=null&&n.manualClose?o.success({title:c(n==null?void 0:n.successMessage),onOk:()=>A(this,null,function*(){n!=null&&n.redirecting&&(n!=null&&n.redirectTo)&&(F.isURL(n.redirectTo)?window.location.href=n.redirectTo:p(n.redirectTo))})}):(a.success(c(n==null?void 0:n.successMessage)),n!=null&&n.redirecting&&(n!=null&&n.redirectTo)&&(F.isURL(n.redirectTo)?window.location.href=n.redirectTo:p(n.redirectTo)))}finally{x.data.loading=!1}})}}},_=()=>{const p=`customRequests:get/${m.useFieldSchema()["x-uid"]}`;return e.useRequest({url:p,params:{appends:["roles"]}},{manual:!0,cacheKey:p})},K="action-custom-request";function h(s){return`{{t('${s}', { ns: '${K}', nsMode: 'fallback' })}}`}function D(){return E.useTranslation(K,{nsMode:"fallback"})}const oe=()=>{const s=e.useCollection_deprecated(),{t:p}=D(),i=e.useCollectionFilterOptions(s),c=e.useCollectionFilterOptions("users",e.DEFAULT_DATA_SOURCE_KEY),d=e.useCompile(),[f,u]=L.useMemo(()=>[d(i),d(c)],[i,c]);return L.useMemo(()=>[{name:"currentRecord",title:p("Current record",{ns:"client"}),children:[...f]},{name:"currentUser",title:p("Current user",{ns:"client"}),children:u},{name:"currentTime",title:p("Current time",{ns:"client"}),children:null}],[f,u])},k=()=>e.useAPIClient().resource("customRequests"),B={type:"object",properties:{method:{type:"string",required:!0,title:h("HTTP method"),"x-decorator-props":{tooltip:h("When the HTTP method is Post, Put or Patch, and this custom request inside the form, the request body will be automatically filled in with the form data")},"x-decorator":"FormItem","x-component":"Select","x-component-props":{showSearch:!1,allowClear:!1,className:"auto-width"},enum:[{label:"GET",value:"GET"},{label:"POST",value:"POST"},{label:"PUT",value:"PUT"},{label:"PATCH",value:"PATCH"},{label:"DELETE",value:"DELETE"}],default:"POST"},url:{type:"string",required:!0,title:h("URL"),"x-decorator":"FormItem","x-component":"Variable.RawTextArea","x-component-props":{scope:"{{useCustomRequestVariableOptions}}",autoSize:!0,fieldNames:{value:"name",label:"title"},placeholder:"https://www.nocobase.com"}},headers:{type:"array","x-component":"ArrayItems","x-decorator":"FormItem",title:h("Headers"),description:h('"Content-Type" only support "application/json", and no need to specify'),items:{type:"object",properties:{space:{type:"void","x-component":"Space",properties:{name:{type:"string","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:h("Name")}},value:{type:"string","x-decorator":"FormItem","x-component":"Variable.Input","x-component-props":{scope:"{{useCustomRequestVariableOptions}}",fieldNames:{value:"name",label:"title"},useTypedConstant:!0}},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}}}}},properties:{add:{type:"void",title:h("Add request header"),"x-component":"ArrayItems.Addition"}}},params:{type:"array","x-component":"ArrayItems","x-decorator":"FormItem",title:h("Parameters"),items:{type:"object",properties:{space:{type:"void","x-component":"Space",properties:{name:{type:"string","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:h("Name")}},value:{type:"string","x-decorator":"FormItem","x-component":"Variable.Input","x-component-props":{scope:"{{useCustomRequestVariableOptions}}",fieldNames:{value:"name",label:"title"},useTypedConstant:!0}},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}}}}},properties:{add:{type:"void",title:h("Add parameter"),"x-component":"ArrayItems.Addition"}}},data:{type:"string",title:h("Body"),"x-decorator":"FormItem","x-decorator-props":{},"x-component":"Variable.JSON","x-component-props":{scope:"{{useCustomRequestVariableOptions}}",fieldNames:{value:"name",label:"title"},changeOnSelect:!0,autoSize:{minRows:10},placeholder:h("Input request data")},description:h("Only support standard JSON data")},timeout:{type:"number",title:h("Timeout config"),"x-decorator":"FormItem","x-decorator-props":{},"x-component":"InputNumber","x-component-props":{addonAfter:h("ms"),min:1,step:1e3,defaultValue:5e3}},responseType:{type:"string",title:h("Response type"),"x-decorator":"FormItem","x-decorator-props":{},"x-component":"Select",default:"json",enum:[{value:"json",label:"JSON"},{value:"stream",label:"Stream"}]}}},se={type:"object",properties:{roles:{type:"array",title:h("Roles"),"x-decorator":"FormItem","x-decorator-props":{tooltip:h("If not set, all roles can see this action")},"x-component":"RemoteSelect","x-component-props":{multiple:!0,objectValue:!0,dataSource:e.DEFAULT_DATA_SOURCE_KEY,service:{resource:"roles"},manual:!1,fieldNames:{label:"title",value:"name"}}}}};function H(){var o;const{t:s}=D(),{name:p}=e.useCollection_deprecated(),i=e.useDataSourceKey(),c=m.useFieldSchema(),d=k(),{message:f}=O.App.useApp(),{data:u,refresh:x}=_(),{dn:v}=e.useDesignable();return r.jsx(r.Fragment,{children:r.jsx(e.SchemaSettingsActionModalItem,{title:s("Request settings"),components:{ArrayItems:R.ArrayItems},beforeOpen:()=>!u&&x(),scope:{useCustomRequestVariableOptions:oe},schema:B,initialValues:q({},(o=u==null?void 0:u.data)==null?void 0:o.options),onSubmit:a=>A(this,null,function*(){const y=Z(a,[]);return c["x-response-type"]=y.responseType,yield d.updateOrCreate({values:{key:c["x-uid"],options:I(q({},y),{collectionName:p,dataSourceKey:i})},filterKeys:["key"]}),v.emit("patch",{schema:{"x-response-type":y.responseType,"x-uid":c["x-uid"]}}),x(),f.success(s("Saved successfully"))})})})}function G(){var x;const{t:s}=D(),p=m.useFieldSchema(),i=k(),{message:c}=O.App.useApp(),{data:d,refresh:f}=_(),{refresh:u}=e.useRequest({url:j},{manual:!0,cacheKey:j});return r.jsx(r.Fragment,{children:r.jsx(e.SchemaSettingsActionModalItem,{title:s("Access control"),schema:se,initialValues:{roles:(x=d==null?void 0:d.data)==null?void 0:x.roles},beforeOpen:()=>!d&&f(),onSubmit:o=>A(this,[o],function*({roles:v}){return yield i.updateOrCreate({values:{key:p["x-uid"],roles:v},filterKeys:["key"]}),f(),u(),c.success(s("Saved successfully"))})})})}const ne=new e.SchemaSettings({name:"CustomRequestActionSettings",items:[I(q({},e.actionSettingsItems[0]),{children:[...e.actionSettingsItems[0].children,{name:"request settings",Component:H},{name:"accessControl",Component:G}]})]}),re=()=>{const s=k(),p=m.useFieldSchema();return r.jsx(e.Action.Designer,{linkageAction:!0,schemaSettings:"CustomRequestActionSettings",buttonEditorProps:{isLink:p["x-action"]==="customize:table:request"},linkageRulesProps:{type:"button"},removeButtonProps:{onConfirmOk(){return s.destroy({filterByTk:p["x-uid"]})}}})},ae=s=>{var f;const i=e.useAPIClient().auth.role==="root",c=m.useFieldSchema(),{data:d}=e.useRequest({url:j},{manual:i,cacheKey:j});return!i&&!((f=d==null?void 0:d.data)!=null&&f.includes(c==null?void 0:c["x-uid"]))?null:s.children},ie={"customize:table:request":e.Action.Link},N=s=>{const i=m.useFieldSchema()["x-action"],c=ie[i]||e.Action;return r.jsx(c,I(q({},s),{useProps:te}))};N.Designer=re,N.Decorator=ae;const ue=()=>({title:'{{ t("Custom request") }}',"x-component":"CustomRequestAction","x-action":"customize:form:request","x-toolbar":"ActionSchemaToolbar","x-settings":"actionSettings:customRequest","x-decorator":"CustomRequestAction.Decorator","x-uid":g.uid(),"x-action-settings":{onSuccess:{manualClose:!1,redirecting:!1,successMessage:'{{t("Request success")}}'}}}),ce=s=>{const p=k(),i=e.useSchemaInitializerItem(),{insert:c}=e.useSchemaInitializer(),d=ue();return r.jsx(e.SchemaInitializerItem,I(q({},i),{onClick:()=>A(this,null,function*(){var u;const f=g.merge(d||{},i.schema||{});(u=i==null?void 0:i.schemaInitialize)==null||u.call(i,f),c(f),yield p.create({values:{key:f["x-uid"]}})})}))},le=new e.SchemaSettings({name:"actionSettings:customRequest",items:[{name:"editButton",Component:e.ButtonEditor,useComponentProps(){return{isLink:m.useFieldSchema()["x-action"]==="customize:table:request"}}},{name:"linkageRules",Component:e.SchemaSettingsLinkageRules,useComponentProps(){const{name:s}=e.useCollection(),{linkageRulesProps:p}=e.useSchemaToolbar();return I(q({},p),{collectionName:s})},useVisible(){const s=e.useCollectionRecord();return!(s!=null&&s.isNew)}},{name:"secondConFirm",Component:e.SecondConFirm},{name:"afterSuccessfulSubmission",Component:e.AfterSuccess},{name:"request settings",Component:H},{name:"accessControl",Component:G},{name:"refreshDataBlockRequest",Component:e.RefreshDataBlockRequest,useComponentProps(){return{isPopupAction:!1}}},{name:"delete",sort:100,Component:e.RemoveButton,useComponentProps(){const{removeButtonProps:s}=e.useSchemaToolbar();return s}}]}),me=s=>r.jsx(e.SchemaComponentOptions,{scope:{CustomRequestConfigurationFieldsSchema:B},components:{CustomRequestAction:N,CustomRequestInitializer:ce},children:s.children});class J extends e.Plugin{load(){return A(this,null,function*(){this.app.use(me),this.app.schemaSettingsManager.add(le),this.app.schemaSettingsManager.add(ne)})}}t.PluginActionCustomRequestClient=J,t.default=J,Object.defineProperties(t,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
|
10
|
+
(function(t,r){typeof exports=="object"&&typeof module!="undefined"?r(exports,require("react/jsx-runtime"),require("@nocobase/client"),require("@formily/react"),require("@nocobase/utils/client"),require("antd"),require("react"),require("react-i18next"),require("@formily/antd-v5"),require("@formily/shared")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","@nocobase/client","@formily/react","@nocobase/utils/client","antd","react","react-i18next","@formily/antd-v5","@formily/shared"],r):(t=typeof globalThis!="undefined"?globalThis:t||self,r(t["@nocobase/plugin-action-custom-request"]={},t.jsxRuntime,t["@nocobase/client"],t["@formily/react"],t["@nocobase/utils"],t.antd,t.react,t["react-i18next"],t["@formily/antd-v5"],t["@formily/shared"]))})(this,function(t,r,e,m,F,O,k,P,R,g){"use strict";var de=Object.defineProperty,fe=Object.defineProperties;var he=Object.getOwnPropertyDescriptors;var U=Object.getOwnPropertySymbols;var Y=Object.prototype.hasOwnProperty,Q=Object.prototype.propertyIsEnumerable;var X=(t,r,e)=>r in t?de(t,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[r]=e,A=(t,r)=>{for(var e in r||(r={}))Y.call(r,e)&&X(t,e,r[e]);if(U)for(var e of U(r))Q.call(r,e)&&X(t,e,r[e]);return t},I=(t,r)=>fe(t,he(r));var Z=(t,r)=>{var e={};for(var m in t)Y.call(t,m)&&r.indexOf(m)<0&&(e[m]=t[m]);if(t!=null&&U)for(var m of U(t))r.indexOf(m)<0&&Q.call(t,m)&&(e[m]=t[m]);return e};var q=(t,r,e)=>new Promise((m,F)=>{var O=R=>{try{P(e.next(R))}catch(g){F(g)}},k=R=>{try{P(e.throw(R))}catch(g){F(g)}},P=R=>R.done?m(R.value):Promise.resolve(R.value).then(O,k);P((e=e.apply(t,r)).next())});const L="customRequests:listByCurrentRole";var E=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{},V={exports:{}};(function(s,p){(function(i,c){c()})(E,function(){function i(o,a){return typeof a=="undefined"?a={autoBom:!1}:typeof a!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),a={autoBom:!a}),a.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(o.type)?new Blob(["\uFEFF",o],{type:o.type}):o}function c(o,a,y){var l=new XMLHttpRequest;l.open("GET",o),l.responseType="blob",l.onload=function(){v(l.response,a,y)},l.onerror=function(){console.error("could not download file")},l.send()}function d(o){var a=new XMLHttpRequest;a.open("HEAD",o,!1);try{a.send()}catch(y){}return 200<=a.status&&299>=a.status}function f(o){try{o.dispatchEvent(new MouseEvent("click"))}catch(y){var a=document.createEvent("MouseEvents");a.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),o.dispatchEvent(a)}}var u=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof E=="object"&&E.global===E?E:void 0,x=u.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),v=u.saveAs||(typeof window!="object"||window!==u?function(){}:"download"in HTMLAnchorElement.prototype&&!x?function(o,a,y){var l=u.URL||u.webkitURL,C=document.createElement("a");a=a||o.name||"download",C.download=a,C.rel="noopener",typeof o=="string"?(C.href=o,C.origin===location.origin?f(C):d(C.href)?c(o,a,y):f(C,C.target="_blank")):(C.href=l.createObjectURL(o),setTimeout(function(){l.revokeObjectURL(C.href)},4e4),setTimeout(function(){f(C)},0))}:"msSaveOrOpenBlob"in navigator?function(o,a,y){if(a=a||o.name||"download",typeof o!="string")navigator.msSaveOrOpenBlob(i(o,y),a);else if(d(o))c(o,a,y);else{var l=document.createElement("a");l.href=o,l.target="_blank",setTimeout(function(){f(l)})}}:function(o,a,y,l){if(l=l||open("","_blank"),l&&(l.document.title=l.document.body.innerText="downloading..."),typeof o=="string")return c(o,a,y);var C=o.type==="application/octet-stream",b=/constructor/i.test(u.HTMLElement)||u.safari,M=/CriOS\/[\d]+/.test(navigator.userAgent);if((M||C&&b||x)&&typeof FileReader!="undefined"){var n=new FileReader;n.onloadend=function(){var S=n.result;S=M?S:S.replace(/^data:[^;]*;/,"data:attachment/file;"),l?l.location.href=S:location=S,l=null},n.readAsDataURL(o)}else{var T=u.URL||u.webkitURL,w=T.createObjectURL(o);l?l.location=w:location.href=w,l=null,setTimeout(function(){T.revokeObjectURL(w)},4e4)}});u.saveAs=v.saveAs=v,s.exports=v})})(V);var ee=V.exports;const te=()=>{const s=e.useAPIClient(),p=e.useNavigateNoUpdate(),i=m.useFieldSchema(),c=e.useCompile(),d=m.useForm(),f=e.useRecord(),u=m.useFieldSchema(),x=m.useField(),{setVisible:v}=e.useActionContext(),{modal:o,message:a}=O.App.useApp(),y=e.useDataSourceKey();return{onClick(C,b){return q(this,null,function*(){var S,$;const{skipValidator:M,onSuccess:n}=(S=i==null?void 0:i["x-action-settings"])!=null?S:{},T=i==null?void 0:i["x-action"];M!==!0&&T==="customize:form:request"&&(yield d.submit());let w=A({},f);T==="customize:form:request"&&(w=d.values),($=x.data)!=null||(x.data={}),x.data.loading=!0;try{const z=yield s.request({url:`/customRequests:send/${u["x-uid"]}`,method:"POST",data:{currentRecord:{dataSourceKey:y,data:w}},responseType:u["x-response-type"]==="stream"?"blob":"json"});if(z.headers["content-disposition"]){const pe=/attachment;\s*filename="([^"]+)"/,W=z.headers["content-disposition"].match(pe);W[1]&&ee.saveAs(z.data,W[1])}if(x.data.loading=!1,b&&(b==null||b()),T==="customize:form:request"&&(v==null||v(!1)),!(n!=null&&n.successMessage))return;n!=null&&n.manualClose?o.success({title:c(n==null?void 0:n.successMessage),onOk:()=>q(this,null,function*(){n!=null&&n.redirecting&&(n!=null&&n.redirectTo)&&(F.isURL(n.redirectTo)?window.location.href=n.redirectTo:p(n.redirectTo))})}):(a.success(c(n==null?void 0:n.successMessage)),n!=null&&n.redirecting&&(n!=null&&n.redirectTo)&&(F.isURL(n.redirectTo)?window.location.href=n.redirectTo:p(n.redirectTo)))}finally{x.data.loading=!1}})}}},_=()=>{const p=`customRequests:get/${m.useFieldSchema()["x-uid"]}`;return e.useRequest({url:p,params:{appends:["roles"]}},{manual:!0,cacheKey:p})},K="action-custom-request";function h(s){return`{{t('${s}', { ns: '${K}', nsMode: 'fallback' })}}`}function D(){return P.useTranslation(K,{nsMode:"fallback"})}const oe=()=>{const s=e.useCollection_deprecated(),{t:p}=D(),i=e.useCollectionFilterOptions(s),c=e.useCollectionFilterOptions("users",e.DEFAULT_DATA_SOURCE_KEY),d=e.useCompile(),[f,u]=k.useMemo(()=>[d(i),d(c)],[i,c]);return k.useMemo(()=>[{name:"currentRecord",title:p("Current record",{ns:"client"}),children:[...f]},{name:"currentUser",title:p("Current user",{ns:"client"}),children:u},{name:"currentTime",title:p("Current time",{ns:"client"}),children:null},{name:"$nToken",title:"API token",children:null}],[f,u])},j=()=>e.useAPIClient().resource("customRequests"),B={type:"object",properties:{method:{type:"string",required:!0,title:h("HTTP method"),"x-decorator-props":{tooltip:h("When the HTTP method is Post, Put or Patch, and this custom request inside the form, the request body will be automatically filled in with the form data")},"x-decorator":"FormItem","x-component":"Select","x-component-props":{showSearch:!1,allowClear:!1,className:"auto-width"},enum:[{label:"GET",value:"GET"},{label:"POST",value:"POST"},{label:"PUT",value:"PUT"},{label:"PATCH",value:"PATCH"},{label:"DELETE",value:"DELETE"}],default:"POST"},url:{type:"string",required:!0,title:h("URL"),"x-decorator":"FormItem","x-component":"Variable.RawTextArea","x-component-props":{scope:"{{useCustomRequestVariableOptions}}",autoSize:!0,fieldNames:{value:"name",label:"title"},placeholder:"https://www.nocobase.com"}},headers:{type:"array","x-component":"ArrayItems","x-decorator":"FormItem",title:h("Headers"),description:h('"Content-Type" only support "application/json", and no need to specify'),items:{type:"object",properties:{space:{type:"void","x-component":"Space",properties:{name:{type:"string","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:h("Name")}},value:{type:"string","x-decorator":"FormItem","x-component":"Variable.Input","x-component-props":{scope:"{{useCustomRequestVariableOptions}}",fieldNames:{value:"name",label:"title"},useTypedConstant:!0}},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}}}}},properties:{add:{type:"void",title:h("Add request header"),"x-component":"ArrayItems.Addition"}}},params:{type:"array","x-component":"ArrayItems","x-decorator":"FormItem",title:h("Parameters"),items:{type:"object",properties:{space:{type:"void","x-component":"Space",properties:{name:{type:"string","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:h("Name")}},value:{type:"string","x-decorator":"FormItem","x-component":"Variable.Input","x-component-props":{scope:"{{useCustomRequestVariableOptions}}",fieldNames:{value:"name",label:"title"},useTypedConstant:!0}},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}}}}},properties:{add:{type:"void",title:h("Add parameter"),"x-component":"ArrayItems.Addition"}}},data:{type:"string",title:h("Body"),"x-decorator":"FormItem","x-decorator-props":{},"x-component":"Variable.JSON","x-component-props":{scope:"{{useCustomRequestVariableOptions}}",fieldNames:{value:"name",label:"title"},changeOnSelect:!0,autoSize:{minRows:10},placeholder:h("Input request data")},description:h("Only support standard JSON data")},timeout:{type:"number",title:h("Timeout config"),"x-decorator":"FormItem","x-decorator-props":{},"x-component":"InputNumber","x-component-props":{addonAfter:h("ms"),min:1,step:1e3,defaultValue:5e3}},responseType:{type:"string",title:h("Response type"),"x-decorator":"FormItem","x-decorator-props":{},"x-component":"Select",default:"json",enum:[{value:"json",label:"JSON"},{value:"stream",label:"Stream"}]}}},se={type:"object",properties:{roles:{type:"array",title:h("Roles"),"x-decorator":"FormItem","x-decorator-props":{tooltip:h("If not set, all roles can see this action")},"x-component":"RemoteSelect","x-component-props":{multiple:!0,objectValue:!0,dataSource:e.DEFAULT_DATA_SOURCE_KEY,service:{resource:"roles"},manual:!1,fieldNames:{label:"title",value:"name"}}}}};function H(){var o;const{t:s}=D(),{name:p}=e.useCollection_deprecated(),i=e.useDataSourceKey(),c=m.useFieldSchema(),d=j(),{message:f}=O.App.useApp(),{data:u,refresh:x}=_(),{dn:v}=e.useDesignable();return r.jsx(r.Fragment,{children:r.jsx(e.SchemaSettingsActionModalItem,{title:s("Request settings"),components:{ArrayItems:R.ArrayItems},beforeOpen:()=>!u&&x(),scope:{useCustomRequestVariableOptions:oe},schema:B,initialValues:A({},(o=u==null?void 0:u.data)==null?void 0:o.options),onSubmit:a=>q(this,null,function*(){const y=Z(a,[]);c["x-response-type"]=y.responseType,yield d.updateOrCreate({values:{key:c["x-uid"],options:I(A({},y),{collectionName:p,dataSourceKey:i})},filterKeys:["key"]}),v.emit("patch",{schema:{"x-response-type":y.responseType,"x-uid":c["x-uid"]}}),x(),f.success(s("Saved successfully"))})})})}function G(){var x;const{t:s}=D(),p=m.useFieldSchema(),i=j(),{message:c}=O.App.useApp(),{data:d,refresh:f}=_(),{refresh:u}=e.useRequest({url:L},{manual:!0,cacheKey:L});return r.jsx(r.Fragment,{children:r.jsx(e.SchemaSettingsActionModalItem,{title:s("Access control"),schema:se,initialValues:{roles:(x=d==null?void 0:d.data)==null?void 0:x.roles},beforeOpen:()=>!d&&f(),onSubmit:o=>q(this,[o],function*({roles:v}){return yield i.updateOrCreate({values:{key:p["x-uid"],roles:v},filterKeys:["key"]}),f(),u(),c.success(s("Saved successfully"))})})})}const ne=new e.SchemaSettings({name:"CustomRequestActionSettings",items:[I(A({},e.actionSettingsItems[0]),{children:[...e.actionSettingsItems[0].children,{name:"request settings",Component:H},{name:"accessControl",Component:G}]})]}),re=()=>{const s=j(),p=m.useFieldSchema();return r.jsx(e.Action.Designer,{linkageAction:!0,schemaSettings:"CustomRequestActionSettings",buttonEditorProps:{isLink:p["x-action"]==="customize:table:request"},linkageRulesProps:{type:"button"},removeButtonProps:{onConfirmOk(){return s.destroy({filterByTk:p["x-uid"]})}}})},ae=s=>{var f;const i=e.useAPIClient().auth.role==="root",c=m.useFieldSchema(),{data:d}=e.useRequest({url:L},{manual:i,cacheKey:L});return!i&&!((f=d==null?void 0:d.data)!=null&&f.includes(c==null?void 0:c["x-uid"]))?null:s.children},ie={"customize:table:request":e.Action.Link},N=s=>{const i=m.useFieldSchema()["x-action"],c=ie[i]||e.Action;return r.jsx(c,I(A({},s),{useProps:te}))};N.Designer=re,N.Decorator=ae;const ue=()=>({title:'{{ t("Custom request") }}',"x-component":"CustomRequestAction","x-action":"customize:form:request","x-toolbar":"ActionSchemaToolbar","x-settings":"actionSettings:customRequest","x-decorator":"CustomRequestAction.Decorator","x-uid":g.uid(),"x-action-settings":{onSuccess:{manualClose:!1,redirecting:!1,successMessage:'{{t("Request success")}}'}}}),ce=s=>{const p=j(),i=e.useSchemaInitializerItem(),{insert:c}=e.useSchemaInitializer(),d=ue();return r.jsx(e.SchemaInitializerItem,I(A({},i),{onClick:()=>q(this,null,function*(){var u;const f=g.merge(d||{},i.schema||{});(u=i==null?void 0:i.schemaInitialize)==null||u.call(i,f),c(f),yield p.create({values:{key:f["x-uid"]}})})}))},le=new e.SchemaSettings({name:"actionSettings:customRequest",items:[{name:"editButton",Component:e.ButtonEditor,useComponentProps(){return{isLink:m.useFieldSchema()["x-action"]==="customize:table:request"}}},{name:"linkageRules",Component:e.SchemaSettingsLinkageRules,useComponentProps(){const{name:s}=e.useCollection(),{linkageRulesProps:p}=e.useSchemaToolbar();return I(A({},p),{collectionName:s})},useVisible(){const s=e.useCollectionRecord();return!(s!=null&&s.isNew)}},{name:"secondConFirm",Component:e.SecondConFirm},{name:"afterSuccessfulSubmission",Component:e.AfterSuccess},{name:"request settings",Component:H},{name:"accessControl",Component:G},{name:"refreshDataBlockRequest",Component:e.RefreshDataBlockRequest,useComponentProps(){return{isPopupAction:!1}}},{name:"delete",sort:100,Component:e.RemoveButton,useComponentProps(){const{removeButtonProps:s}=e.useSchemaToolbar();return s}}]}),me=s=>r.jsx(e.SchemaComponentOptions,{scope:{CustomRequestConfigurationFieldsSchema:B},components:{CustomRequestAction:N,CustomRequestInitializer:ce},children:s.children});class J extends e.Plugin{load(){return q(this,null,function*(){this.app.use(me),this.app.schemaSettingsManager.add(le),this.app.schemaSettingsManager.add(ne)})}}t.PluginActionCustomRequestClient=J,t.default=J,Object.defineProperties(t,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
package/dist/externalVersion.js
CHANGED
|
@@ -8,19 +8,19 @@
|
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
module.exports = {
|
|
11
|
-
"@nocobase/client": "1.3.
|
|
11
|
+
"@nocobase/client": "1.3.22-beta",
|
|
12
12
|
"react": "18.2.0",
|
|
13
13
|
"react-i18next": "11.18.6",
|
|
14
14
|
"@formily/react": "2.3.0",
|
|
15
|
-
"@nocobase/logger": "1.3.
|
|
16
|
-
"@nocobase/server": "1.3.
|
|
17
|
-
"@nocobase/test": "1.3.
|
|
15
|
+
"@nocobase/logger": "1.3.22-beta",
|
|
16
|
+
"@nocobase/server": "1.3.22-beta",
|
|
17
|
+
"@nocobase/test": "1.3.22-beta",
|
|
18
18
|
"@formily/antd-v5": "1.1.9",
|
|
19
19
|
"antd": "5.12.8",
|
|
20
|
-
"@nocobase/utils": "1.3.
|
|
20
|
+
"@nocobase/utils": "1.3.22-beta",
|
|
21
21
|
"@formily/shared": "2.3.0",
|
|
22
|
-
"@nocobase/actions": "1.3.
|
|
23
|
-
"@nocobase/evaluators": "1.3.
|
|
22
|
+
"@nocobase/actions": "1.3.22-beta",
|
|
23
|
+
"@nocobase/evaluators": "1.3.22-beta",
|
|
24
24
|
"axios": "0.26.1",
|
|
25
|
-
"@nocobase/database": "1.3.
|
|
25
|
+
"@nocobase/database": "1.3.22-beta"
|
|
26
26
|
};
|
|
@@ -148,7 +148,8 @@ async function send(ctx, next) {
|
|
|
148
148
|
...currentRecord.data
|
|
149
149
|
},
|
|
150
150
|
currentUser,
|
|
151
|
-
currentTime: (/* @__PURE__ */ new Date()).toISOString()
|
|
151
|
+
currentTime: (/* @__PURE__ */ new Date()).toISOString(),
|
|
152
|
+
$nToken: ctx.getBearerToken()
|
|
152
153
|
};
|
|
153
154
|
const getParsedValue = (value) => {
|
|
154
155
|
const template = (0, import_utils.parse)(value);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nocobase/plugin-action-custom-request",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.22-beta",
|
|
4
4
|
"main": "dist/server/index.js",
|
|
5
5
|
"homepage": "https://docs.nocobase.com/handbook/action-custom-request",
|
|
6
6
|
"homepage.zh-CN": "https://docs-cn.nocobase.com/handbook/action-custom-request",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"@nocobase/server": "1.x",
|
|
23
23
|
"@nocobase/test": "1.x"
|
|
24
24
|
},
|
|
25
|
-
"gitHead": "
|
|
25
|
+
"gitHead": "9969eda8a594de7fb7c00ea79274ce8e3c1a9803",
|
|
26
26
|
"keywords": [
|
|
27
27
|
"Actions"
|
|
28
28
|
]
|