@nocobase/plugin-workflow-custom-action-trigger 2.1.0-beta.38 → 2.1.0-beta.40
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-v2/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(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("antd"),require("@emotion/css"),require("@nocobase/client-v2"),require("@nocobase/flow-engine")):"function"==typeof define&&define.amd?define("@nocobase/plugin-workflow-custom-action-trigger/client-v2",["react","antd","@emotion/css","@nocobase/client-v2","@nocobase/flow-engine"],t):"object"==typeof exports?exports["@nocobase/plugin-workflow-custom-action-trigger/client-v2"]=t(require("react"),require("antd"),require("@emotion/css"),require("@nocobase/client-v2"),require("@nocobase/flow-engine")):e["@nocobase/plugin-workflow-custom-action-trigger/client-v2"]=t(e.react,e.antd,e["@emotion/css"],e["@nocobase/client-v2"],e["@nocobase/flow-engine"])}(self,function(e,t,r,o,n){return function(){"use strict";var i={477:function(e){e.exports=r},485:function(e){e.exports=o},694:function(e){e.exports=n},59:function(e){e.exports=t},155:function(t){t.exports=e}},c={};function l(e){var t=c[e];if(void 0!==t)return t.exports;var r=c[e]={exports:{}};return i[e](r,r.exports,l),r.exports}l.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(t,{a:t}),t},l.d=function(e,t){for(var r in t)l.o(t,r)&&!l.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},l.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),l.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},l.r=function(e){"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.g.importScripts&&(a=l.g.location+"");var a,u=l.g.document;if(!a&&u&&(u.currentScript&&"SCRIPT"===u.currentScript.tagName.toUpperCase()&&(a=u.currentScript.src),!a)){var s=u.getElementsByTagName("script");if(s.length)for(var f=s.length-1;f>-1&&(!a||!/^http(s?):/.test(a));)a=s[f--].src}if(!a)throw Error("Automatic publicPath is not supported in this browser");l.p=a.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/");var p={};return!function(){var e="",t="u">typeof document?document.currentScript:null;if(t&&t.src&&(e=t.src.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/")),!e){var r=window.__webpack_public_path__||"";r&&("/"!==r.charAt(r.length-1)&&(r+="/"),e=r+"static/plugins/@nocobase/plugin-workflow-custom-action-trigger/dist/client-v2/")}if(!e){if(!(e=window.__nocobase_public_path__||"")&&window.location&&window.location.pathname){var o=window.location.pathname||"/",n=o.indexOf("/v2/");e=n>=0?o.slice(0,n+1):"/"}e&&(e=e.replace(/\/v2\/?$/,"/")),e||(e="/"),"/"!==e.charAt(e.length-1)&&(e+="/"),e+="static/plugins/@nocobase/plugin-workflow-custom-action-trigger/dist/client-v2/"}l.p=e}(),!function(){l.r(p),l.d(p,{CollectionTriggerWorkflowActionModel:function(){return R},FormTriggerWorkflowActionModel:function(){return E},default:function(){return L},registerTriggerWorkflowActionGroups:function(){return q},WorkbenchTriggerWorkflowActionModel:function(){return B},RecordTriggerWorkflowActionModel:function(){return _}});var e=l(485),t="@nocobase/plugin-workflow-custom-action-trigger",r="custom-action",o=[{label:"{{t('Custom context', { ns: \"".concat(t,'" })}}'),value:0,tooltip:"{{t('Could be used on non-record related action buttons. You can provide custom JSON as trigger data.', { ns: \"".concat(t,'" })}}')},{label:"{{t('Single collection record', { ns: \"".concat(t,'" })}}'),value:1,tooltip:"{{t('Could only be used on single record related action buttons. Such as in form, detail block and table row of record.', { ns: \"".concat(t,'" })}}')},{label:"{{t('Multiple collection records', { ns: \"".concat(t,'" })}}'),value:2,tooltip:"{{t('Could only be used on multiple record related action buttons. Such as for batch action in table block. The data in trigger variable will be an array.', { ns: \"".concat(t,'" })}}')}],n=l(155),i=l.n(n),c=l(477),a=l(694),u=l(59),s="@nocobase/plugin-workflow-custom-action-trigger";function f(e,t){return(0,a.tExpr)(e,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),o.forEach(function(t){var o;o=r[t],t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o})}return e}({ns:s},t))}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,o=Array(t);r<t;r++)o[r]=e[r];return o}function g(e,t,r,o,n,i,c){try{var l=e[i](c),a=l.value}catch(e){r(e);return}l.done?t(a):Promise.resolve(a).then(o,n)}function y(e){return function(){var t=this,r=arguments;return new Promise(function(o,n){var i=e.apply(t,r);function c(e){g(i,o,n,c,l,"next",e)}function l(e){g(i,o,n,c,l,"throw",e)}c(void 0)})}}function b(e,t,r){return t=h(t),function(e,t){var r;if(t&&("object"==((r=t)&&"u">typeof Symbol&&r.constructor===Symbol?"symbol":typeof r)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e,j()?Reflect.construct(t,r||[],h(e).constructor):t.apply(e,r))}function w(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}function m(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function h(e){return(h=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function v(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&O(e,t)}function k(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),o.forEach(function(t){m(e,t,r[t])})}return e}function x(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function O(e,t){return(O=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function S(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,o,n=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var i=[],c=!0,l=!1;try{for(n=n.call(e);!(c=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);c=!0);}catch(e){l=!0,o=e}finally{try{c||null==n.return||n.return()}finally{if(l)throw o}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return d(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return d(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function j(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(j=function(){return!!e})()}function T(e,t){var r,o,n,i={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]},c=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),l=Object.defineProperty;return l(c,"next",{value:a(0)}),l(c,"throw",{value:a(1)}),l(c,"return",{value:a(2)}),"function"==typeof Symbol&&l(c,Symbol.iterator,{value:function(){return this}}),c;function a(l){return function(a){var u=[l,a];if(r)throw TypeError("Generator is already executing.");for(;c&&(c=0,u[0]&&(i=0)),i;)try{if(r=1,o&&(n=2&u[0]?o.return:u[0]?o.throw||((n=o.return)&&n.call(o),0):o.next)&&!(n=n.call(o,u[1])).done)return n;switch(o=0,n&&(u=[2&u[0],n.value]),u[0]){case 0:case 1:n=u;break;case 4:return i.label++,{value:u[1],done:!1};case 5:i.label++,o=u[1],u=[0];continue;case 7:u=i.ops.pop(),i.trys.pop();continue;default:if(!(n=(n=i.trys).length>0&&n[n.length-1])&&(6===u[0]||2===u[0])){i=0;continue}if(3===u[0]&&(!n||u[1]>n[0]&&u[1]<n[3])){i.label=u[1];break}if(6===u[0]&&i.label<n[1]){i.label=n[1],n=u;break}if(n&&i.label<n[2]){i.label=n[2],i.ops.push(u);break}n[2]&&i.ops.pop(),i.trys.pop();continue}u=t.call(e,i)}catch(e){u=[6,e],o=0}finally{r=n=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}function A(){var e,t,r=(e=["\n & > .ant-space-item:first-child,\n & > .ant-space-item:last-child {\n flex: 0 0 auto;\n }\n & > .ant-space-item:nth-child(2) {\n flex: 1;\n min-width: 0;\n }\n & > .ant-space-item:nth-child(2) .ant-select {\n width: 100%;\n }\n "],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return A=function(){return r},r}function P(e){var t,r,o,n,i=function(e){var t,r=(null==e?void 0:e.dataSourceKey)||(null==e||null==(t=e.dataSource)?void 0:t.key),o=null==e?void 0:e.name;if(o)return r&&"main"!==r?"".concat(r,":").concat(o):o}((null==e||null==(t=e.blockModel)?void 0:t.collection)||(null==e||null==(n=e.model)||null==(o=n.context)||null==(r=o.blockModel)?void 0:r.collection));return i?{"config.collection":i}:void 0}var M=function(e){return(null==e?void 0:e.length)?e.map(function(e){return[e.workflowKey,e.context].filter(Boolean).join("!")}).join(","):void 0};function C(e){var t=e.filter,o=e.optionFilter,n=function(e,t){if(null==e)return{};var r,o,n,i={};if("u">typeof Reflect&&Reflect.ownKeys){for(n=0,r=Reflect.ownKeys(Object(e));n<r.length;n++)o=r[n],!(t.indexOf(o)>=0)&&Object.prototype.propertyIsEnumerable.call(e,o)&&(i[o]=e[o]);return i}if(i=function(e,t){if(null==e)return{};var r,o,n={},i=Object.getOwnPropertyNames(e);for(o=0;o<i.length;o++)r=i[o],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r]);return n}(e,t),Object.getOwnPropertySymbols)for(n=0,r=Object.getOwnPropertySymbols(e);n<r.length;n++)o=r[n],!(t.indexOf(o)>=0)&&Object.prototype.propertyIsEnumerable.call(e,o)&&(i[o]=e[o]);return i}(e,["filter","optionFilter"]),c=(0,a.useFlowContext)(),l=S(i().useState([]),2),s=l[0],f=l[1],p=S(i().useState(!1),2),d=p[0],g=p[1];return i().useEffect(function(){var e=!0;return y(function(){var n,i,l;return T(this,function(a){switch(a.label){case 0:g(!0),a.label=1;case 1:return a.trys.push([1,3,4,5]),[4,c.api.request({url:"workflows:list",method:"get",params:{paginate:!1,filter:k({type:r,enabled:!0},t)}})];case 2:if(i=a.sent(),!e)return[2];return l=(null==i||null==(n=i.data)?void 0:n.data)||[],f(("function"==typeof o?l.filter(o):l).map(function(e){return{label:e.title,value:e.key}})),[3,5];case 3:return console.error("Error loading workflows:",a.sent()),[3,5];case 4:return e&&g(!1),[7];case 5:return[2]}})})(),function(){e=!1}},[c.api,t,o]),i().createElement(u.Select,x(k({},n),{loading:d,options:s}))}function F(t){var r=t.description,o=t.filter,n=t.optionFilter,i=t.withContextData;return k({description:{type:"void","x-component":u.Alert,"x-component-props":{type:"info",showIcon:!0,message:r,style:{marginBottom:"1em"}}},group:{type:"array","x-component":"ArrayItems","x-decorator":"FormItem",items:{type:"object",properties:{space:{type:"void","x-component-props":{align:"center",style:{display:"flex",width:"100%"},className:(0,c.css)(A())},"x-component":u.Space,properties:{sort:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.SortHandle"},workflowKey:{type:"string","x-decorator":"FormItem","x-component":C,"x-component-props":{filter:o,optionFilter:n,placeholder:"{{t('Select workflow', { ns: 'workflow' })}}",style:{width:"100%"}},required:!0},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}}}}},properties:{add:{type:"void",title:"{{t('Add workflow', { ns: 'workflow' })}}","x-component":"ArrayItems.Addition"}}}},void 0!==i&&i?{contextData:{type:"string",title:f("Context data"),description:f("Input JSON as context data passed into the workflow. Frontend variables are supported."),"x-decorator":"FormItem","x-component":e.TextAreaWithContextSelector,"x-component-props":{rows:5}}}:{})}var W=f('Workflow will be triggered directly once the button clicked, without data saving. Only supports to be bound with "Custom action event".');function I(e,t){var r=null==e?void 0:e.type;return 0===t||null==t?0===r||null==r:r===t}var E=function(e){function t(){var e;return w(this,t),e=b(this,t,arguments),m(e,"defaultProps",{title:f("Trigger workflow")}),e}return v(t,e),t}(e.FormActionModel);E.define({label:f("Trigger workflow")}),E.registerFlow({key:"customFormTriggerWorkflowsActionSettings",on:"click",title:"{{t('Workflow', { ns: 'workflow' })}}",steps:{confirm:{use:"confirm"},triggerWorkflows:{title:"{{t('Bind workflows', { ns: 'workflow' })}}",uiSchema:function(e){return F({description:W,filter:P(e),optionFilter:function(e){var t;return(null==(t=e.config)?void 0:t.type)===1}})},handler:function(e,t){return y(function(){var r;return T(this,function(o){switch(o.label){case 0:if(!(null==(r=t.group)?void 0:r.length))return e.message.error(e.t("Button is not configured properly, please contact the administrator.",{ns:s})),e.exit(),[2];if(!e.blockModel)return e.exit(),[2];o.label=1;case 1:return o.trys.push([1,3,4,5]),e.model.setProps("loading",!0),[4,e.blockModel.submitHandler(e,{},function(r,o){return y(function(){return T(this,function(n){switch(n.label){case 0:return[4,e.blockModel.resource.runAction("trigger",{params:x(k({},null!=o?{filterByTk:o}:{}),{triggerWorkflows:M(t.group)}),data:r})];case 1:return[2,n.sent()]}})})()})];case 2:return o.sent(),[3,5];case 3:return console.error("Error triggering workflows:",o.sent()),e.exit(),[3,5];case 4:return e.model.setProps("loading",!1),[7];case 5:return[2]}})})()}},afterSuccess:{use:"afterSuccess",defaultParams:{successMessage:f("Operation succeeded")}}}});var _=function(e){function t(){var e;return w(this,t),e=b(this,t,arguments),m(e,"defaultProps",{title:f("Trigger workflow")}),e}return v(t,e),t}(e.ActionModel);m(_,"scene",e.ActionSceneEnum.record),_.define({label:f("Trigger workflow")}),_.registerFlow({key:"customRecordTriggerWorkflowsActionSettings",on:"click",title:"{{t('Workflow', { ns: 'workflow' })}}",steps:{confirm:{use:"confirm"},triggerWorkflows:{title:"{{t('Bind workflows', { ns: 'workflow' })}}",uiSchema:function(e){return F({description:W,filter:P(e),optionFilter:function(e){var t;return(null==(t=e.config)?void 0:t.type)===1}})},handler:function(e,t){return y(function(){var r,o,n,i;return T(this,function(c){switch(c.label){case 0:if(n=(o=e.blockModel).resource,i=o.collection,!n||!i)return e.exit(),[2];if(!(null==(r=t.group)?void 0:r.length))return e.message.error(e.t("Button is not configured properly, please contact the administrator.",{ns:s})),e.exit(),[2];c.label=1;case 1:return c.trys.push([1,3,,4]),[4,n.runAction("trigger",{params:{triggerWorkflows:M(t.group),filterByTk:function(e,t){if(!e||!t)return null;var r=t.filterTargetKey;return Array.isArray(r)?r.reduce(function(t,r){return t[r]=e[r],t},{}):e[r]}(e.record,i)}})];case 2:return c.sent(),[3,4];case 3:return console.error("Error triggering workflows:",c.sent()),e.exit(),[3,4];case 4:return[2]}})})()}},afterSuccess:{use:"afterSuccess",defaultParams:{successMessage:f("Operation succeeded"),actionAfterSuccess:"previous"}}}});var R=function(e){function t(){var e;return w(this,t),e=b(this,t,arguments),m(e,"defaultProps",{title:null}),e}return v(t,e),t}(e.CollectionActionModel);m(R,"scene",e.ActionSceneEnum.collection),R.define({label:f("Trigger workflow")}),R.registerFlow({key:"customCollectionTriggerWorkflowsActionSettings",title:"{{t('Workflow', { ns: 'workflow' })}}",steps:{setContextType:{hideInSettings:!0,preset:!0,title:f("Context type"),uiSchema:{type:{type:"number","x-decorator":"FormItem","x-component":"Radio.Group",enum:[{label:f("Custom context"),value:0},{label:f("Multiple collection records"),value:2}],required:!0}},handler:function(e,t){e.model.props.title||e.model.setProps("title",t.type?e.t("Trigger workflow",{ns:s}):e.t("Trigger global workflow",{ns:s}))}},triggerWorkflows:{title:"{{t('Bind workflows', { ns: 'workflow' })}}",uiSchema:function(e){var t,r,o=(null!=(t=null==(r=e.model.stepParams.customCollectionTriggerWorkflowsActionSettings)?void 0:r.setContextType)?t:{}).type;return F({withContextData:!o,filter:o?P(e):void 0,description:o?f('Only support custom action workflow with context type set to "Multiple records".'):f('Only support custom action workflow with context type set to "Custom context".'),optionFilter:function(e){return I(e.config,o)}})}}}}),R.registerFlow({key:"customCollectionTriggerWorkflowsActionEventSettings",on:"click",steps:{confirm:{use:"confirm"},trigger:{handler:function(e){return y(function(){var t,r,o,n,i,c,l,u,f;return T(this,function(p){switch(p.label){case 0:if(o=(r=e.model.stepParams.customCollectionTriggerWorkflowsActionSettings).setContextType.type,i=(n=null!=(t=r.triggerWorkflows)?t:{}).group,c=n.contextData,!(null==i?void 0:i.length))return e.message.error(e.t("Button is not configured properly, please contact the administrator.",{ns:s})),e.exit(),[2];if(2!==o)return[3,5];if(!(null==(l=e.blockModel)?void 0:l.resource))return e.message.error(e.t("No resource selected for deletion")),e.exit(),[2];if(0===(u=e.blockModel.resource).getSelectedRows().length)return e.message.warning(e.t("Please select at least one record.",{ns:s})),e.exit(),[2];p.label=1;case 1:return p.trys.push([1,3,,4]),[4,u.runAction("trigger",{params:{triggerWorkflows:M(i),filterByTk:e.blockModel.collection.getFilterByTK(u.getSelectedRows())}})];case 2:return p.sent(),u.setSelectedRows([]),[3,4];case 3:return console.error("Error triggering workflows:",p.sent()),e.exit(),[3,4];case 4:return[3,14];case 5:if(o)return[3,13];if(!c)return[3,9];p.label=6;case 6:return p.trys.push([6,8,,9]),[4,(0,a.resolveExpressions)(c,e)];case 7:return f=p.sent(),[3,9];case 8:return p.sent(),[3,9];case 9:return p.trys.push([9,11,,12]),[4,e.api.request({url:"workflows:trigger",method:"post",params:{triggerWorkflows:M(i)},data:{values:f}})];case 10:return p.sent(),[3,12];case 11:return console.error("Error triggering workflows:",p.sent()),e.exit(),[3,12];case 12:return[3,14];case 13:throw Error("Invalid context type");case 14:return[2]}})})()}},afterSuccess:{use:"afterSuccess",defaultParams:{successMessage:f("Operation succeeded"),actionAfterSuccess:"previous"}}}});var B=function(e){function t(){var e;return w(this,t),e=b(this,t,arguments),m(e,"defaultProps",{title:f("Trigger global workflow"),icon:"ThunderboltOutlined"}),e}return v(t,e),t}(e.ActionModel);B.define({label:f("Trigger global workflow")}),B.registerFlow({key:"workbenchTriggerWorkflowsActionSettings",on:"click",title:"{{t('Workflow', { ns: 'workflow' })}}",steps:{confirm:{use:"confirm"},triggerWorkflows:{title:"{{t('Bind workflows', { ns: 'workflow' })}}",uiSchema:function(){return F({withContextData:!0,description:f('Only support custom action workflow with context type set to "Custom context".'),optionFilter:function(e){return I(e.config,0)}})},handler:function(e,t){return y(function(){var r;return T(this,function(o){switch(o.label){case 0:if(!t.contextData)return[3,4];o.label=1;case 1:return o.trys.push([1,3,,4]),[4,(0,a.resolveExpressions)(t.contextData,e)];case 2:return r=o.sent(),[3,4];case 3:return o.sent(),[3,4];case 4:return o.trys.push([4,6,,7]),[4,e.api.request({url:"workflows:trigger",method:"post",params:{triggerWorkflows:M(t.group)},data:{values:r}})];case 5:return o.sent(),e.message.success(e.t("Operation succeeded")),[3,7];case 6:return console.error("Error triggering workflows:",o.sent()),[3,7];case 7:return[2]}})})()}},afterSuccess:{use:"afterSuccess",defaultParams:{successMessage:f("Operation succeeded"),actionAfterSuccess:"previous"}}}});var D={FormTriggerWorkflowActionModel:E,RecordTriggerWorkflowActionModel:_,CollectionTriggerWorkflowActionModel:R,WorkbenchTriggerWorkflowActionModel:B};function q(e){["CollectionActionGroupModel","RecordActionGroupModel","FormActionGroupModel","ActionPanelGroupActionModel"].forEach(function(t){var r,o=e.getModelClass(t);null==o||null==(r=o.registerActionModels)||r.call(o,D)})}function N(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var $=function(){var e;function t(){if(!(this instanceof t))throw TypeError("Cannot call a class as a function");N(this,"title",'{{t("Custom action event", { ns: "'.concat(s,'" })}}')),N(this,"description",'{{t(\'When the "Trigger Workflow" button is clicked, the event is triggered based on different context where the button is located. For complex data processing that cannot be handled simply by built-in operations (CRUD) of NocoBase, you can define a series of operations through a workflow and trigger it with the "Trigger Workflow" button.\', { ns: "'.concat(s,'" })}}')),N(this,"sync",!1),N(this,"presetFieldset",{type:{type:"number",title:'{{t("Context type", { ns: "'.concat(s,'" })}}'),"x-decorator":"FormItem","x-component":"Radio.Group",enum:o,required:!0,default:0},collection:N({type:"string",title:'{{t("Collection")}}',required:!0,"x-decorator":"FormItem","x-component":"DataSourceCollectionCascader","x-component-props":{dataSourceFilter:function(e){return"main"===e.options.key||e.options.isDBInstance}}},"x-reactions",[{dependencies:[".type"],fulfill:{state:{visible:"{{Boolean($deps[0])}}"}}}])}),N(this,"fieldset",{type:{type:"number",title:'{{t("Context type", { ns: "'.concat(s,'" })}}'),"x-decorator":"FormItem","x-component":"Radio.Group",enum:o,default:0,"x-disabled":!0},collection:N({type:"string",title:'{{t("Collection")}}',required:!0,"x-decorator":"FormItem","x-component":"DataSourceCollectionCascader","x-disabled":!0},"x-reactions",[{target:"appends",effects:["onFieldValueChange"],fulfill:{state:{value:[]}}},{dependencies:["type"],fulfill:{state:{visible:"{{Boolean($deps[0])}}"}}}]),appends:{type:"array",title:'{{t("Associations to use", { ns: "'.concat(s,'" })}}'),description:'{{t("Please select the associated fields that need to be accessed in subsequent nodes. With more than two levels of to-many associations may cause performance issue, please use with caution.", { ns: "workflow" })}}',"x-decorator":"FormItem","x-component":"AppendsTreeSelect","x-component-props":{multiple:!0},"x-reactions":[{dependencies:["collection"],fulfill:{state:{visible:"{{!!$deps[0]}}"}}}]}}),N(this,"triggerFieldset",{data:{type:"object",title:'{{t("Trigger data", { ns: "'.concat(s,'" })}}'),description:'{{t("Use JSON as trigger data for custom data context, or choose a record in single record context.", { ns: "'.concat(s,'" })}}'),"x-decorator":"FormItem","x-component":"Input.JSON",default:null},filterByTk:{type:"array",title:'{{t("Trigger data", { ns: "'.concat(s,'" })}}'),description:'{{t("Choose a record or primary key of a record in the collection to trigger.", { ns: "workflow" })}}',"x-decorator":"FormItem","x-component":"Input.JSON",default:[]},userId:{type:"number",title:'{{t("User acted", { ns: "'.concat(s,'" })}}'),"x-decorator":"FormItem","x-component":"InputNumber",default:null,required:!0},roleName:{type:"string",title:'{{t("Role of user acted", { ns: "'.concat(s,'" })}}'),"x-decorator":"FormItem","x-component":"Input",default:null}}),N(this,"isActionTriggerable_deprecated",function(e,t){return"customize:triggerWorkflows"===t.buttonAction&&1===e.type})}return e=[{key:"validate",value:function(e){return!e.type||0===e.type||[1,2].includes(e.type)&&e.collection}},{key:"getCreateModelMenuItem",value:function(e){var t=e.config;return t.collection?{key:"triggerData",label:'{{t("Trigger data", { ns: "workflow" })}}',useModel:"NodeDetailsModel",createModelOptions:{use:"NodeDetailsModel",stepParams:{resourceSettings:{init:{dataSourceKey:"main",collectionName:t.collection,dataPath:"$context.data"}},cardSettings:{titleDescription:{title:'{{t("Trigger data", { ns: "workflow" })}}'}}},subModels:{grid:{use:"NodeDetailsGridModel",subType:"object"}}}}:null}}],function(e,t){for(var r=0;r<t.length;r++){var o=t[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}(t.prototype,e),t}();function G(e,t,r,o,n,i,c){try{var l=e[i](c),a=l.value}catch(e){r(e);return}l.done?t(a):Promise.resolve(a).then(o,n)}function K(e,t,r){return(K=H()?Reflect.construct:function(e,t,r){var o=[null];o.push.apply(o,t);var n=new(Function.bind.apply(e,o));return r&&U(n,r.prototype),n}).apply(null,arguments)}function J(e){return(J=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function U(e,t){return(U=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function z(e){var t="function"==typeof Map?new Map:void 0;return(z=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return K(e,arguments,J(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),U(r,e)})(e)}function H(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(H=function(){return!!e})()}var L=function(e){var t;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function o(){var e,t;if(!(this instanceof o))throw TypeError("Cannot call a class as a function");return e=o,t=arguments,e=J(e),function(e,t){var r;if(t&&("object"==((r=t)&&"u">typeof Symbol&&r.constructor===Symbol?"symbol":typeof r)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,H()?Reflect.construct(e,t||[],J(this).constructor):e.apply(this,t))}return o.prototype=Object.create(e&&e.prototype,{constructor:{value:o,writable:!0,configurable:!0}}),e&&U(o,e),t=[{key:"load",value:function(){var e;return(e=function(){var e,t,o,n;return function(e,t){var r,o,n,i={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]},c=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),l=Object.defineProperty;return l(c,"next",{value:a(0)}),l(c,"throw",{value:a(1)}),l(c,"return",{value:a(2)}),"function"==typeof Symbol&&l(c,Symbol.iterator,{value:function(){return this}}),c;function a(l){return function(a){var u=[l,a];if(r)throw TypeError("Generator is already executing.");for(;c&&(c=0,u[0]&&(i=0)),i;)try{if(r=1,o&&(n=2&u[0]?o.return:u[0]?o.throw||((n=o.return)&&n.call(o),0):o.next)&&!(n=n.call(o,u[1])).done)return n;switch(o=0,n&&(u=[2&u[0],n.value]),u[0]){case 0:case 1:n=u;break;case 4:return i.label++,{value:u[1],done:!1};case 5:i.label++,o=u[1],u=[0];continue;case 7:u=i.ops.pop(),i.trys.pop();continue;default:if(!(n=(n=i.trys).length>0&&n[n.length-1])&&(6===u[0]||2===u[0])){i=0;continue}if(3===u[0]&&(!n||u[1]>n[0]&&u[1]<n[3])){i.label=u[1];break}if(6===u[0]&&i.label<n[1]){i.label=n[1],n=u;break}if(n&&i.label<n[2]){i.label=n[2],i.ops.push(u);break}n[2]&&i.ops.pop(),i.trys.pop();continue}u=t.call(e,i)}catch(e){u=[6,e],o=0}finally{r=n=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(i){return e=this,this.flowEngine.registerModels({FormTriggerWorkflowActionModel:E,RecordTriggerWorkflowActionModel:_,CollectionTriggerWorkflowActionModel:R,WorkbenchTriggerWorkflowActionModel:B}),null==(o=this.app.pm.get("workflow"))||null==(t=o.registerTrigger)||t.call(o,r,$),(n=function(){q(e.flowEngine)})(),this.app.eventBus.addEventListener("plugin:block-workbench:loaded",n),[2]})},function(){var t=this,r=arguments;return new Promise(function(o,n){var i=e.apply(t,r);function c(e){G(i,o,n,c,l,"next",e)}function l(e){G(i,o,n,c,l,"throw",e)}c(void 0)})}).call(this)}}],function(e,t){for(var r=0;r<t.length;r++){var o=t[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}(o.prototype,t),o}(z(e.Plugin))}(),p}()});
|
|
10
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("antd"),require("@emotion/css"),require("@nocobase/client-v2"),require("@nocobase/flow-engine")):"function"==typeof define&&define.amd?define("@nocobase/plugin-workflow-custom-action-trigger/client-v2",["react","antd","@emotion/css","@nocobase/client-v2","@nocobase/flow-engine"],t):"object"==typeof exports?exports["@nocobase/plugin-workflow-custom-action-trigger/client-v2"]=t(require("react"),require("antd"),require("@emotion/css"),require("@nocobase/client-v2"),require("@nocobase/flow-engine")):e["@nocobase/plugin-workflow-custom-action-trigger/client-v2"]=t(e.react,e.antd,e["@emotion/css"],e["@nocobase/client-v2"],e["@nocobase/flow-engine"])}(self,function(e,t,r,o,n){return function(){"use strict";var i={477:function(e){e.exports=r},485:function(e){e.exports=o},694:function(e){e.exports=n},59:function(e){e.exports=t},155:function(t){t.exports=e}},c={};function l(e){var t=c[e];if(void 0!==t)return t.exports;var r=c[e]={exports:{}};return i[e](r,r.exports,l),r.exports}l.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(t,{a:t}),t},l.d=function(e,t){for(var r in t)l.o(t,r)&&!l.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},l.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),l.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},l.r=function(e){"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.g.importScripts&&(a=l.g.location+"");var a,u=l.g.document;if(!a&&u&&(u.currentScript&&"SCRIPT"===u.currentScript.tagName.toUpperCase()&&(a=u.currentScript.src),!a)){var s=u.getElementsByTagName("script");if(s.length)for(var f=s.length-1;f>-1&&(!a||!/^http(s?):/.test(a));)a=s[f--].src}if(!a)throw Error("Automatic publicPath is not supported in this browser");l.p=a.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/");var p={};return!function(){var e="",t="u">typeof document?document.currentScript:null;if(t&&t.src&&(e=t.src.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/")),!e){var r=window.__webpack_public_path__||"";r&&("/"!==r.charAt(r.length-1)&&(r+="/"),e=r+"static/plugins/@nocobase/plugin-workflow-custom-action-trigger/dist/client-v2/")}if(!e){if(!(e=window.__nocobase_public_path__||"")&&window.location&&window.location.pathname){var o=window.location.pathname||"/",n=o.indexOf("/v2/");e=n>=0?o.slice(0,n+1):"/"}e&&(e=e.replace(/\/v2\/?$/,"/")),e||(e="/"),"/"!==e.charAt(e.length-1)&&(e+="/"),e+="static/plugins/@nocobase/plugin-workflow-custom-action-trigger/dist/client-v2/"}l.p=e}(),!function(){l.r(p),l.d(p,{CollectionTriggerWorkflowActionModel:function(){return R},FormTriggerWorkflowActionModel:function(){return E},default:function(){return L},registerTriggerWorkflowActionGroups:function(){return q},WorkbenchTriggerWorkflowActionModel:function(){return B},RecordTriggerWorkflowActionModel:function(){return _}});var e=l(485),t="@nocobase/plugin-workflow-custom-action-trigger",r="custom-action",o=[{label:"{{t('Custom context', { ns: \"".concat(t,'" })}}'),value:0,tooltip:"{{t('Could be used on non-record related action buttons. You can provide custom JSON as trigger data.', { ns: \"".concat(t,'" })}}')},{label:"{{t('Single collection record', { ns: \"".concat(t,'" })}}'),value:1,tooltip:"{{t('Could only be used on single record related action buttons. Such as in form, detail block and table row of record.', { ns: \"".concat(t,'" })}}')},{label:"{{t('Multiple collection records', { ns: \"".concat(t,'" })}}'),value:2,tooltip:"{{t('Could only be used on multiple record related action buttons. Such as for batch action in table block. The data in trigger variable will be an array.', { ns: \"".concat(t,'" })}}')}],n=l(155),i=l.n(n),c=l(477),a=l(694),u=l(59),s="@nocobase/plugin-workflow-custom-action-trigger";function f(e,t){return(0,a.tExpr)(e,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),o.forEach(function(t){var o;o=r[t],t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o})}return e}({ns:s},t))}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,o=Array(t);r<t;r++)o[r]=e[r];return o}function g(e,t,r,o,n,i,c){try{var l=e[i](c),a=l.value}catch(e){r(e);return}l.done?t(a):Promise.resolve(a).then(o,n)}function y(e){return function(){var t=this,r=arguments;return new Promise(function(o,n){var i=e.apply(t,r);function c(e){g(i,o,n,c,l,"next",e)}function l(e){g(i,o,n,c,l,"throw",e)}c(void 0)})}}function b(e,t,r){return t=h(t),function(e,t){var r;if(t&&("object"==((r=t)&&"u">typeof Symbol&&r.constructor===Symbol?"symbol":typeof r)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e,j()?Reflect.construct(t,r||[],h(e).constructor):t.apply(e,r))}function w(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}function m(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function h(e){return(h=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function v(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&O(e,t)}function k(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),o.forEach(function(t){m(e,t,r[t])})}return e}function x(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function O(e,t){return(O=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function S(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,o,n=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var i=[],c=!0,l=!1;try{for(n=n.call(e);!(c=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);c=!0);}catch(e){l=!0,o=e}finally{try{c||null==n.return||n.return()}finally{if(l)throw o}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return d(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return d(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function j(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(j=function(){return!!e})()}function T(e,t){var r,o,n,i={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]},c=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),l=Object.defineProperty;return l(c,"next",{value:a(0)}),l(c,"throw",{value:a(1)}),l(c,"return",{value:a(2)}),"function"==typeof Symbol&&l(c,Symbol.iterator,{value:function(){return this}}),c;function a(l){return function(a){var u=[l,a];if(r)throw TypeError("Generator is already executing.");for(;c&&(c=0,u[0]&&(i=0)),i;)try{if(r=1,o&&(n=2&u[0]?o.return:u[0]?o.throw||((n=o.return)&&n.call(o),0):o.next)&&!(n=n.call(o,u[1])).done)return n;switch(o=0,n&&(u=[2&u[0],n.value]),u[0]){case 0:case 1:n=u;break;case 4:return i.label++,{value:u[1],done:!1};case 5:i.label++,o=u[1],u=[0];continue;case 7:u=i.ops.pop(),i.trys.pop();continue;default:if(!(n=(n=i.trys).length>0&&n[n.length-1])&&(6===u[0]||2===u[0])){i=0;continue}if(3===u[0]&&(!n||u[1]>n[0]&&u[1]<n[3])){i.label=u[1];break}if(6===u[0]&&i.label<n[1]){i.label=n[1],n=u;break}if(n&&i.label<n[2]){i.label=n[2],i.ops.push(u);break}n[2]&&i.ops.pop(),i.trys.pop();continue}u=t.call(e,i)}catch(e){u=[6,e],o=0}finally{r=n=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}function A(){var e,t,r=(e=["\n & > .ant-space-item:first-child,\n & > .ant-space-item:last-child {\n flex: 0 0 auto;\n }\n & > .ant-space-item:nth-child(2) {\n flex: 1;\n min-width: 0;\n }\n & > .ant-space-item:nth-child(2) .ant-select {\n width: 100%;\n }\n "],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return A=function(){return r},r}function P(e){var t,r,o,n,i=function(e){var t,r=(null==e?void 0:e.dataSourceKey)||(null==e||null==(t=e.dataSource)?void 0:t.key),o=null==e?void 0:e.name;if(o)return r&&"main"!==r?"".concat(r,":").concat(o):o}((null==e||null==(t=e.blockModel)?void 0:t.collection)||(null==e||null==(n=e.model)||null==(o=n.context)||null==(r=o.blockModel)?void 0:r.collection));return i?{"config.collection":i}:void 0}var M=function(e){return(null==e?void 0:e.length)?e.map(function(e){return[e.workflowKey,e.context].filter(Boolean).join("!")}).join(","):void 0};function C(e){var t=e.filter,o=e.optionFilter,n=function(e,t){if(null==e)return{};var r,o,n,i={};if("u">typeof Reflect&&Reflect.ownKeys){for(n=0,r=Reflect.ownKeys(Object(e));n<r.length;n++)o=r[n],!(t.indexOf(o)>=0)&&Object.prototype.propertyIsEnumerable.call(e,o)&&(i[o]=e[o]);return i}if(i=function(e,t){if(null==e)return{};var r,o,n={},i=Object.getOwnPropertyNames(e);for(o=0;o<i.length;o++)r=i[o],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r]);return n}(e,t),Object.getOwnPropertySymbols)for(n=0,r=Object.getOwnPropertySymbols(e);n<r.length;n++)o=r[n],!(t.indexOf(o)>=0)&&Object.prototype.propertyIsEnumerable.call(e,o)&&(i[o]=e[o]);return i}(e,["filter","optionFilter"]),c=(0,a.useFlowContext)(),l=S(i().useState([]),2),s=l[0],f=l[1],p=S(i().useState(!1),2),d=p[0],g=p[1];return i().useEffect(function(){var e=!0;return y(function(){var n,i,l;return T(this,function(a){switch(a.label){case 0:g(!0),a.label=1;case 1:return a.trys.push([1,3,4,5]),[4,c.api.request({url:"workflows:list",method:"get",params:{paginate:!1,filter:k({type:r,enabled:!0},t)}})];case 2:if(i=a.sent(),!e)return[2];return l=(null==i||null==(n=i.data)?void 0:n.data)||[],f(("function"==typeof o?l.filter(o):l).map(function(e){return{label:e.title,value:e.key}})),[3,5];case 3:return console.error("Error loading workflows:",a.sent()),[3,5];case 4:return e&&g(!1),[7];case 5:return[2]}})})(),function(){e=!1}},[c.api,t,o]),i().createElement(u.Select,x(k({},n),{loading:d,options:s}))}function F(t){var r=t.description,o=t.filter,n=t.optionFilter,i=t.withContextData;return k({description:{type:"void","x-component":u.Alert,"x-component-props":{type:"info",showIcon:!0,message:r,style:{marginBottom:"1em"}}},group:{type:"array","x-component":"ArrayItems","x-decorator":"FormItem",items:{type:"object",properties:{space:{type:"void","x-component-props":{align:"center",style:{display:"flex",width:"100%"},className:(0,c.css)(A())},"x-component":u.Space,properties:{sort:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.SortHandle"},workflowKey:{type:"string","x-decorator":"FormItem","x-component":C,"x-component-props":{filter:o,optionFilter:n,placeholder:"{{t('Select workflow', { ns: 'workflow' })}}",style:{width:"100%"}},required:!0},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}}}}},properties:{add:{type:"void",title:"{{t('Add workflow', { ns: 'workflow' })}}","x-component":"ArrayItems.Addition"}}}},void 0!==i&&i?{contextData:{type:"string",title:f("Context data"),description:f("Input JSON as context data passed into the workflow. Frontend variables are supported."),"x-decorator":"FormItem","x-component":e.TextAreaWithContextSelector,"x-component-props":{rows:5}}}:{})}var W=f('Workflow will be triggered directly once the button clicked, without data saving. Only supports to be bound with "Custom action event".');function I(e,t){var r=null==e?void 0:e.type;return 0===t||null==t?0===r||null==r:r===t}var E=function(e){function t(){var e;return w(this,t),e=b(this,t,arguments),m(e,"defaultProps",{title:f("Trigger workflow")}),e}return v(t,e),t}(e.FormActionModel);E.define({label:f("Trigger workflow")}),E.registerFlow({key:"customFormTriggerWorkflowsActionSettings",on:"click",title:"{{t('Workflow', { ns: 'workflow' })}}",steps:{confirm:{use:"confirm"},triggerWorkflows:{title:"{{t('Bind workflows', { ns: 'workflow' })}}",uiSchema:function(e){return F({description:W,filter:P(e),optionFilter:function(e){var t;return(null==(t=e.config)?void 0:t.type)===1}})},handler:function(e,t){return y(function(){var r;return T(this,function(o){switch(o.label){case 0:if(!(null==(r=t.group)?void 0:r.length))return e.message.error(e.t("Button is not configured properly, please contact the administrator.",{ns:s})),e.exit(),[2];if(!e.blockModel)return e.exit(),[2];o.label=1;case 1:return o.trys.push([1,3,4,5]),e.model.setProps("loading",!0),[4,e.blockModel.submitHandler(e,{},function(r,o){return y(function(){return T(this,function(n){switch(n.label){case 0:return[4,e.blockModel.resource.runAction("trigger",{params:x(k({},null!=o?{filterByTk:o}:{}),{triggerWorkflows:M(t.group)}),data:r})];case 1:return[2,n.sent()]}})})()})];case 2:return o.sent(),[3,5];case 3:return console.error("Error triggering workflows:",o.sent()),e.exit(),[3,5];case 4:return e.model.setProps("loading",!1),[7];case 5:return[2]}})})()}},afterSuccess:{use:"afterSuccess",defaultParams:{successMessage:f("Operation succeeded")}}}});var _=function(e){function t(){var e;return w(this,t),e=b(this,t,arguments),m(e,"defaultProps",{title:f("Trigger workflow")}),e}return v(t,e),t}(e.ActionModel);m(_,"scene",e.ActionSceneEnum.record),_.define({label:f("Trigger workflow")}),_.registerFlow({key:"customRecordTriggerWorkflowsActionSettings",on:"click",title:"{{t('Workflow', { ns: 'workflow' })}}",steps:{confirm:{use:"confirm"},triggerWorkflows:{title:"{{t('Bind workflows', { ns: 'workflow' })}}",uiSchema:function(e){return F({description:W,filter:P(e),optionFilter:function(e){var t;return(null==(t=e.config)?void 0:t.type)===1}})},handler:function(e,t){return y(function(){var r,o,n,i;return T(this,function(c){switch(c.label){case 0:if(n=(o=e.blockModel).resource,i=o.collection,!n||!i)return e.exit(),[2];if(!(null==(r=t.group)?void 0:r.length))return e.message.error(e.t("Button is not configured properly, please contact the administrator.",{ns:s})),e.exit(),[2];c.label=1;case 1:return c.trys.push([1,3,,4]),[4,n.runAction("trigger",{params:{triggerWorkflows:M(t.group),filterByTk:function(e,t){if(!e||!t)return null;var r=t.filterTargetKey;return Array.isArray(r)?r.reduce(function(t,r){return t[r]=e[r],t},{}):e[r]}(e.record,i)}})];case 2:return c.sent(),[3,4];case 3:return console.error("Error triggering workflows:",c.sent()),e.exit(),[3,4];case 4:return[2]}})})()}},afterSuccess:{use:"afterSuccess",defaultParams:{successMessage:f("Operation succeeded"),actionAfterSuccess:"previous"}}}});var R=function(e){function t(){var e;return w(this,t),e=b(this,t,arguments),m(e,"defaultProps",{title:null}),e}return v(t,e),t}(e.CollectionActionModel);m(R,"scene",e.ActionSceneEnum.collection),R.define({label:f("Trigger workflow")}),R.registerFlow({key:"customCollectionTriggerWorkflowsActionSettings",title:"{{t('Workflow', { ns: 'workflow' })}}",steps:{setContextType:{hideInSettings:!0,preset:!0,title:f("Context type"),uiSchema:{type:{type:"number","x-decorator":"FormItem","x-component":"Radio.Group",enum:[{label:f("Custom context"),value:0},{label:f("Multiple collection records"),value:2}],required:!0}},handler:function(e,t){e.model.props.title||e.model.setProps("title",t.type?e.t("Trigger workflow",{ns:s}):e.t("Trigger global workflow",{ns:s}))}},triggerWorkflows:{title:"{{t('Bind workflows', { ns: 'workflow' })}}",uiSchema:function(e){var t,r,o=(null!=(t=null==(r=e.model.stepParams.customCollectionTriggerWorkflowsActionSettings)?void 0:r.setContextType)?t:{}).type;return F({withContextData:!o,filter:o?P(e):void 0,description:o?f('Only support custom action workflow with context type set to "Multiple records".'):f('Only support custom action workflow with context type set to "Custom context".'),optionFilter:function(e){return I(e.config,o)}})}}}}),R.registerFlow({key:"customCollectionTriggerWorkflowsActionEventSettings",on:"click",steps:{confirm:{use:"confirm"},trigger:{handler:function(e){return y(function(){var t,r,o,n,i,c,l,u,f;return T(this,function(p){switch(p.label){case 0:if(o=(r=e.model.stepParams.customCollectionTriggerWorkflowsActionSettings).setContextType.type,i=(n=null!=(t=r.triggerWorkflows)?t:{}).group,c=n.contextData,!(null==i?void 0:i.length))return e.message.error(e.t("Button is not configured properly, please contact the administrator.",{ns:s})),e.exit(),[2];if(2!==o)return[3,5];if(!(null==(l=e.blockModel)?void 0:l.resource))return e.message.error(e.t("No resource selected for deletion")),e.exit(),[2];if(0===(u=e.blockModel.resource).getSelectedRows().length)return e.message.warning(e.t("Please select at least one record.",{ns:s})),e.exit(),[2];p.label=1;case 1:return p.trys.push([1,3,,4]),[4,u.runAction("trigger",{params:{triggerWorkflows:M(i),filterByTk:e.blockModel.collection.getFilterByTK(u.getSelectedRows())}})];case 2:return p.sent(),u.setSelectedRows([]),[3,4];case 3:return console.error("Error triggering workflows:",p.sent()),e.exit(),[3,4];case 4:return[3,14];case 5:if(o)return[3,13];if(!c)return[3,9];p.label=6;case 6:return p.trys.push([6,8,,9]),[4,(0,a.resolveExpressions)(c,e)];case 7:return f=p.sent(),[3,9];case 8:return p.sent(),[3,9];case 9:return p.trys.push([9,11,,12]),[4,e.api.request({url:"workflows:trigger",method:"post",params:{triggerWorkflows:M(i)},data:{values:f}})];case 10:return p.sent(),[3,12];case 11:return console.error("Error triggering workflows:",p.sent()),e.exit(),[3,12];case 12:return[3,14];case 13:throw Error("Invalid context type");case 14:return[2]}})})()}},afterSuccess:{use:"afterSuccess",defaultParams:{successMessage:f("Operation succeeded"),actionAfterSuccess:"previous"}}}});var B=function(e){function t(){var e;return w(this,t),e=b(this,t,arguments),m(e,"defaultProps",{title:f("Trigger global workflow"),icon:"ThunderboltOutlined"}),e}return v(t,e),t}(e.ActionModel);B.define({label:f("Trigger global workflow")}),B.registerFlow({key:"workbenchTriggerWorkflowsActionSettings",on:"click",title:"{{t('Workflow', { ns: 'workflow' })}}",steps:{confirm:{use:"confirm"},triggerWorkflows:{title:"{{t('Bind workflows', { ns: 'workflow' })}}",uiSchema:function(){return F({withContextData:!0,description:f('Only support custom action workflow with context type set to "Custom context".'),optionFilter:function(e){return I(e.config,0)}})},handler:function(e,t){return y(function(){var r;return T(this,function(o){switch(o.label){case 0:if(!t.contextData)return[3,4];o.label=1;case 1:return o.trys.push([1,3,,4]),[4,(0,a.resolveExpressions)(t.contextData,e)];case 2:return r=o.sent(),[3,4];case 3:return o.sent(),[3,4];case 4:return o.trys.push([4,6,,7]),[4,e.api.request({url:"workflows:trigger",method:"post",params:{triggerWorkflows:M(t.group)},data:{values:r}})];case 5:return o.sent(),e.message.success(e.t("Operation succeeded")),[3,7];case 6:return console.error("Error triggering workflows:",o.sent()),[3,7];case 7:return[2]}})})()}},afterSuccess:{use:"afterSuccess",defaultParams:{successMessage:f("Operation succeeded"),actionAfterSuccess:"previous"}}}});var D={CollectionActionGroupModel:{CollectionTriggerWorkflowActionModel:R},RecordActionGroupModel:{RecordTriggerWorkflowActionModel:_},FormActionGroupModel:{FormTriggerWorkflowActionModel:E},ActionPanelGroupActionModel:{WorkbenchTriggerWorkflowActionModel:B}};function q(e){Object.entries(D).forEach(function(t){var r,o=S(t,2),n=o[0],i=o[1],c=e.getModelClass(n);null==c||null==(r=c.registerActionModels)||r.call(c,i)})}function N(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var $=function(){var e;function t(){if(!(this instanceof t))throw TypeError("Cannot call a class as a function");N(this,"title",'{{t("Custom action event", { ns: "'.concat(s,'" })}}')),N(this,"description",'{{t(\'When the "Trigger Workflow" button is clicked, the event is triggered based on different context where the button is located. For complex data processing that cannot be handled simply by built-in operations (CRUD) of NocoBase, you can define a series of operations through a workflow and trigger it with the "Trigger Workflow" button.\', { ns: "'.concat(s,'" })}}')),N(this,"sync",!1),N(this,"presetFieldset",{type:{type:"number",title:'{{t("Context type", { ns: "'.concat(s,'" })}}'),"x-decorator":"FormItem","x-component":"Radio.Group",enum:o,required:!0,default:0},collection:N({type:"string",title:'{{t("Collection")}}',required:!0,"x-decorator":"FormItem","x-component":"DataSourceCollectionCascader","x-component-props":{dataSourceFilter:function(e){return"main"===e.options.key||e.options.isDBInstance}}},"x-reactions",[{dependencies:[".type"],fulfill:{state:{visible:"{{Boolean($deps[0])}}"}}}])}),N(this,"fieldset",{type:{type:"number",title:'{{t("Context type", { ns: "'.concat(s,'" })}}'),"x-decorator":"FormItem","x-component":"Radio.Group",enum:o,default:0,"x-disabled":!0},collection:N({type:"string",title:'{{t("Collection")}}',required:!0,"x-decorator":"FormItem","x-component":"DataSourceCollectionCascader","x-disabled":!0},"x-reactions",[{target:"appends",effects:["onFieldValueChange"],fulfill:{state:{value:[]}}},{dependencies:["type"],fulfill:{state:{visible:"{{Boolean($deps[0])}}"}}}]),appends:{type:"array",title:'{{t("Associations to use", { ns: "'.concat(s,'" })}}'),description:'{{t("Please select the associated fields that need to be accessed in subsequent nodes. With more than two levels of to-many associations may cause performance issue, please use with caution.", { ns: "workflow" })}}',"x-decorator":"FormItem","x-component":"AppendsTreeSelect","x-component-props":{multiple:!0},"x-reactions":[{dependencies:["collection"],fulfill:{state:{visible:"{{!!$deps[0]}}"}}}]}}),N(this,"triggerFieldset",{data:{type:"object",title:'{{t("Trigger data", { ns: "'.concat(s,'" })}}'),description:'{{t("Use JSON as trigger data for custom data context, or choose a record in single record context.", { ns: "'.concat(s,'" })}}'),"x-decorator":"FormItem","x-component":"Input.JSON",default:null},filterByTk:{type:"array",title:'{{t("Trigger data", { ns: "'.concat(s,'" })}}'),description:'{{t("Choose a record or primary key of a record in the collection to trigger.", { ns: "workflow" })}}',"x-decorator":"FormItem","x-component":"Input.JSON",default:[]},userId:{type:"number",title:'{{t("User acted", { ns: "'.concat(s,'" })}}'),"x-decorator":"FormItem","x-component":"InputNumber",default:null,required:!0},roleName:{type:"string",title:'{{t("Role of user acted", { ns: "'.concat(s,'" })}}'),"x-decorator":"FormItem","x-component":"Input",default:null}}),N(this,"isActionTriggerable_deprecated",function(e,t){return"customize:triggerWorkflows"===t.buttonAction&&1===e.type})}return e=[{key:"validate",value:function(e){return!e.type||0===e.type||[1,2].includes(e.type)&&e.collection}},{key:"getCreateModelMenuItem",value:function(e){var t=e.config;return t.collection?{key:"triggerData",label:'{{t("Trigger data", { ns: "workflow" })}}',useModel:"NodeDetailsModel",createModelOptions:{use:"NodeDetailsModel",stepParams:{resourceSettings:{init:{dataSourceKey:"main",collectionName:t.collection,dataPath:"$context.data"}},cardSettings:{titleDescription:{title:'{{t("Trigger data", { ns: "workflow" })}}'}}},subModels:{grid:{use:"NodeDetailsGridModel",subType:"object"}}}}:null}}],function(e,t){for(var r=0;r<t.length;r++){var o=t[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}(t.prototype,e),t}();function G(e,t,r,o,n,i,c){try{var l=e[i](c),a=l.value}catch(e){r(e);return}l.done?t(a):Promise.resolve(a).then(o,n)}function K(e,t,r){return(K=H()?Reflect.construct:function(e,t,r){var o=[null];o.push.apply(o,t);var n=new(Function.bind.apply(e,o));return r&&U(n,r.prototype),n}).apply(null,arguments)}function J(e){return(J=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function U(e,t){return(U=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function z(e){var t="function"==typeof Map?new Map:void 0;return(z=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return K(e,arguments,J(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),U(r,e)})(e)}function H(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(H=function(){return!!e})()}var L=function(e){var t;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function o(){var e,t;if(!(this instanceof o))throw TypeError("Cannot call a class as a function");return e=o,t=arguments,e=J(e),function(e,t){var r;if(t&&("object"==((r=t)&&"u">typeof Symbol&&r.constructor===Symbol?"symbol":typeof r)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,H()?Reflect.construct(e,t||[],J(this).constructor):e.apply(this,t))}return o.prototype=Object.create(e&&e.prototype,{constructor:{value:o,writable:!0,configurable:!0}}),e&&U(o,e),t=[{key:"load",value:function(){var e;return(e=function(){var e,t,o,n;return function(e,t){var r,o,n,i={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]},c=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),l=Object.defineProperty;return l(c,"next",{value:a(0)}),l(c,"throw",{value:a(1)}),l(c,"return",{value:a(2)}),"function"==typeof Symbol&&l(c,Symbol.iterator,{value:function(){return this}}),c;function a(l){return function(a){var u=[l,a];if(r)throw TypeError("Generator is already executing.");for(;c&&(c=0,u[0]&&(i=0)),i;)try{if(r=1,o&&(n=2&u[0]?o.return:u[0]?o.throw||((n=o.return)&&n.call(o),0):o.next)&&!(n=n.call(o,u[1])).done)return n;switch(o=0,n&&(u=[2&u[0],n.value]),u[0]){case 0:case 1:n=u;break;case 4:return i.label++,{value:u[1],done:!1};case 5:i.label++,o=u[1],u=[0];continue;case 7:u=i.ops.pop(),i.trys.pop();continue;default:if(!(n=(n=i.trys).length>0&&n[n.length-1])&&(6===u[0]||2===u[0])){i=0;continue}if(3===u[0]&&(!n||u[1]>n[0]&&u[1]<n[3])){i.label=u[1];break}if(6===u[0]&&i.label<n[1]){i.label=n[1],n=u;break}if(n&&i.label<n[2]){i.label=n[2],i.ops.push(u);break}n[2]&&i.ops.pop(),i.trys.pop();continue}u=t.call(e,i)}catch(e){u=[6,e],o=0}finally{r=n=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(i){return e=this,this.flowEngine.registerModels({FormTriggerWorkflowActionModel:E,RecordTriggerWorkflowActionModel:_,CollectionTriggerWorkflowActionModel:R,WorkbenchTriggerWorkflowActionModel:B}),null==(o=this.app.pm.get("workflow"))||null==(t=o.registerTrigger)||t.call(o,r,$),(n=function(){q(e.flowEngine)})(),this.app.eventBus.addEventListener("plugin:block-workbench:loaded",n),[2]})},function(){var t=this,r=arguments;return new Promise(function(o,n){var i=e.apply(t,r);function c(e){G(i,o,n,c,l,"next",e)}function l(e){G(i,o,n,c,l,"throw",e)}c(void 0)})}).call(this)}}],function(e,t){for(var r=0;r<t.length;r++){var o=t[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}(o.prototype,t),o}(z(e.Plugin))}(),p}()});
|
package/dist/externalVersion.js
CHANGED
|
@@ -10,22 +10,22 @@
|
|
|
10
10
|
module.exports = {
|
|
11
11
|
"react": "18.2.0",
|
|
12
12
|
"@formily/react": "2.3.7",
|
|
13
|
-
"@nocobase/client": "2.1.0-beta.
|
|
14
|
-
"@nocobase/plugin-workflow": "2.1.0-beta.
|
|
15
|
-
"@nocobase/flow-engine": "2.1.0-beta.
|
|
13
|
+
"@nocobase/client": "2.1.0-beta.40",
|
|
14
|
+
"@nocobase/plugin-workflow": "2.1.0-beta.40",
|
|
15
|
+
"@nocobase/flow-engine": "2.1.0-beta.40",
|
|
16
16
|
"@emotion/css": "11.13.0",
|
|
17
17
|
"react-router-dom": "6.30.1",
|
|
18
18
|
"antd": "5.24.2",
|
|
19
|
-
"@nocobase/utils": "2.1.0-beta.
|
|
19
|
+
"@nocobase/utils": "2.1.0-beta.40",
|
|
20
20
|
"react-i18next": "11.18.6",
|
|
21
21
|
"@formily/antd-v5": "1.2.3",
|
|
22
|
-
"@nocobase/client-v2": "2.1.0-beta.
|
|
23
|
-
"@nocobase/plugin-error-handler": "2.1.0-beta.
|
|
24
|
-
"@nocobase/data-source-manager": "2.1.0-beta.
|
|
25
|
-
"@nocobase/server": "2.1.0-beta.
|
|
22
|
+
"@nocobase/client-v2": "2.1.0-beta.40",
|
|
23
|
+
"@nocobase/plugin-error-handler": "2.1.0-beta.40",
|
|
24
|
+
"@nocobase/data-source-manager": "2.1.0-beta.40",
|
|
25
|
+
"@nocobase/server": "2.1.0-beta.40",
|
|
26
26
|
"lodash": "4.18.1",
|
|
27
|
-
"@nocobase/actions": "2.1.0-beta.
|
|
28
|
-
"@nocobase/resourcer": "2.1.0-beta.
|
|
29
|
-
"@nocobase/plugin-workflow-test": "2.1.0-beta.
|
|
30
|
-
"@nocobase/test": "2.1.0-beta.
|
|
27
|
+
"@nocobase/actions": "2.1.0-beta.40",
|
|
28
|
+
"@nocobase/resourcer": "2.1.0-beta.40",
|
|
29
|
+
"@nocobase/plugin-workflow-test": "2.1.0-beta.40",
|
|
30
|
+
"@nocobase/test": "2.1.0-beta.40"
|
|
31
31
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"joi","description":"Object schema validation","version":"17.13.3","repository":"git://github.com/hapijs/joi","main":"lib/index.js","types":"lib/index.d.ts","browser":"dist/joi-browser.min.js","files":["lib/**/*","dist/*"],"keywords":["schema","validation"],"dependencies":{"@hapi/hoek":"^9.3.0","@hapi/topo":"^5.1.0","@sideway/address":"^4.1.5","@sideway/formula":"^3.0.1","@sideway/pinpoint":"^2.0.0"},"devDependencies":{"@hapi/bourne":"2.x.x","@hapi/code":"8.x.x","@hapi/joi-legacy-test":"npm:@hapi/joi@15.x.x","@hapi/lab":"^25.1.3","@types/node":"^14.18.63","typescript":"4.3.x"},"scripts":{"prepublishOnly":"cd browser && npm install && npm run build","test":"lab -t 100 -a @hapi/code -L -Y","test-cov-html":"lab -r html -o coverage.html -a @hapi/code"},"license":"BSD-3-Clause","_lastModified":"2026-05-
|
|
1
|
+
{"name":"joi","description":"Object schema validation","version":"17.13.3","repository":"git://github.com/hapijs/joi","main":"lib/index.js","types":"lib/index.d.ts","browser":"dist/joi-browser.min.js","files":["lib/**/*","dist/*"],"keywords":["schema","validation"],"dependencies":{"@hapi/hoek":"^9.3.0","@hapi/topo":"^5.1.0","@sideway/address":"^4.1.5","@sideway/formula":"^3.0.1","@sideway/pinpoint":"^2.0.0"},"devDependencies":{"@hapi/bourne":"2.x.x","@hapi/code":"8.x.x","@hapi/joi-legacy-test":"npm:@hapi/joi@15.x.x","@hapi/lab":"^25.1.3","@types/node":"^14.18.63","typescript":"4.3.x"},"scripts":{"prepublishOnly":"cd browser && npm install && npm run build","test":"lab -t 100 -a @hapi/code -L -Y","test-cov-html":"lab -r html -o coverage.html -a @hapi/code"},"license":"BSD-3-Clause","_lastModified":"2026-05-30T00:01:58.095Z"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nocobase/plugin-workflow-custom-action-trigger",
|
|
3
|
-
"version": "2.1.0-beta.
|
|
3
|
+
"version": "2.1.0-beta.40",
|
|
4
4
|
"displayName": "Workflow: Custom action event",
|
|
5
5
|
"displayName.zh-CN": "工作流:自定义操作事件",
|
|
6
6
|
"description": "Triggers after click a custom action button.",
|
|
@@ -31,6 +31,6 @@
|
|
|
31
31
|
],
|
|
32
32
|
"editionLevel": 0
|
|
33
33
|
},
|
|
34
|
-
"gitHead": "
|
|
34
|
+
"gitHead": "36e906138f6305723abbef676a61006058feb5ea",
|
|
35
35
|
"license": "Apache-2.0"
|
|
36
36
|
}
|