@nocobase/plugin-workflow 2.0.0-beta.2 → 2.0.0-beta.21

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.
Files changed (55) hide show
  1. package/dist/client/0b6813dae26ccf21.js +10 -0
  2. package/dist/client/{80d4cd8911e03c27.js → 2076012783c998ad.js} +1 -1
  3. package/dist/client/59fcf22e646963ed.js +10 -0
  4. package/dist/client/AddNodeContext.d.ts +1 -0
  5. package/dist/client/NodeClipboardContext.d.ts +11 -0
  6. package/dist/client/NodeDragContext.d.ts +11 -0
  7. package/dist/client/index.d.ts +3 -0
  8. package/dist/client/index.js +1 -1
  9. package/dist/client/models/NodeDetailsModel.d.ts +34 -0
  10. package/dist/client/models/NodeValueModel.d.ts +15 -0
  11. package/dist/client/models/TaskCardCommonItemModel.d.ts +14 -0
  12. package/dist/client/models/index.d.ts +11 -0
  13. package/dist/client/nodeVariableUtils.d.ts +14 -0
  14. package/dist/client/nodes/calculation.d.ts +7 -0
  15. package/dist/client/nodes/create.d.ts +7 -0
  16. package/dist/client/nodes/index.d.ts +14 -0
  17. package/dist/client/nodes/output.d.ts +53 -0
  18. package/dist/client/nodes/query.d.ts +7 -0
  19. package/dist/client/style.d.ts +4 -0
  20. package/dist/common/collections/jobs.js +4 -0
  21. package/dist/externalVersion.js +12 -12
  22. package/dist/locale/de-DE.json +10 -3
  23. package/dist/locale/en-US.json +22 -3
  24. package/dist/locale/es-ES.json +10 -3
  25. package/dist/locale/fr-FR.json +10 -3
  26. package/dist/locale/hu-HU.json +10 -2
  27. package/dist/locale/id-ID.json +10 -2
  28. package/dist/locale/it-IT.json +10 -3
  29. package/dist/locale/ja-JP.json +10 -5
  30. package/dist/locale/ko-KR.json +10 -3
  31. package/dist/locale/nl-NL.json +10 -3
  32. package/dist/locale/pt-BR.json +10 -3
  33. package/dist/locale/ru-RU.json +10 -3
  34. package/dist/locale/tr-TR.json +10 -3
  35. package/dist/locale/uk-UA.json +10 -3
  36. package/dist/locale/vi-VN.json +10 -2
  37. package/dist/locale/zh-CN.json +25 -4
  38. package/dist/locale/zh-TW.json +10 -3
  39. package/dist/node_modules/cron-parser/package.json +1 -1
  40. package/dist/node_modules/lru-cache/package.json +1 -1
  41. package/dist/node_modules/nodejs-snowflake/package.json +1 -1
  42. package/dist/server/Dispatcher.js +2 -1
  43. package/dist/server/Plugin.js +6 -1
  44. package/dist/server/Processor.d.ts +9 -0
  45. package/dist/server/Processor.js +6 -1
  46. package/dist/server/actions/index.js +2 -0
  47. package/dist/server/actions/nodes.d.ts +2 -0
  48. package/dist/server/actions/nodes.js +281 -2
  49. package/dist/server/instructions/ConditionInstruction.js +4 -1
  50. package/dist/server/instructions/OutputInstruction.d.ts +21 -0
  51. package/dist/server/instructions/OutputInstruction.js +54 -0
  52. package/dist/server/repositories/WorkflowRepository.js +2 -1
  53. package/package.json +2 -2
  54. package/dist/client/bfc2a351589613e1.js +0 -10
  55. package/dist/client/e078314a62391f36.js +0 -10
@@ -0,0 +1,10 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+
10
+ "use strict";(self.webpackChunk_nocobase_plugin_workflow=self.webpackChunk_nocobase_plugin_workflow||[]).push([["626"],{144:function(e,t,r){r.d(t,{g:function(){return x}});var n=r(2721),o=r(8156),l=r.n(o);let a=(0,o.createContext)(null),i={didCatch:!1,error:null};class c extends o.Component{constructor(e){super(e),this.resetErrorBoundary=this.resetErrorBoundary.bind(this),this.state=i}static getDerivedStateFromError(e){return{didCatch:!0,error:e}}resetErrorBoundary(){let{error:e}=this.state;if(null!==e){for(var t,r,n=arguments.length,o=Array(n),l=0;l<n;l++)o[l]=arguments[l];null==(t=(r=this.props).onReset)||t.call(r,{args:o,reason:"imperative-api"}),this.setState(i)}}componentDidCatch(e,t){var r,n;null==(r=(n=this.props).onError)||r.call(n,e,t)}componentDidUpdate(e,t){let{didCatch:r}=this.state,{resetKeys:n}=this.props;if(r&&null!==t.error&&function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return e.length!==t.length||e.some((e,r)=>!Object.is(e,t[r]))}(e.resetKeys,n)){var o,l;null==(o=(l=this.props).onReset)||o.call(l,{next:n,prev:e.resetKeys,reason:"keys"}),this.setState(i)}}render(){let{children:e,fallbackRender:t,FallbackComponent:r,fallback:n}=this.props,{didCatch:l,error:i}=this.state,c=e;if(l){let e={error:i,resetErrorBoundary:this.resetErrorBoundary};if((0,o.isValidElement)(n))c=n;else if("function"==typeof t)c=t(e);else if(r)c=(0,o.createElement)(r,e);else throw i}return(0,o.createElement)(a.Provider,{value:{didCatch:l,error:i,resetErrorBoundary:this.resetErrorBoundary}},c)}}var s=r(482),u=r(3772),d=r(8956),f=r(2415),p=r(7058),m=r(8551),v=r(5329),y=r(4477),b=r(8562);function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function w(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function g(){var e=w(["\n margin-top: 0 !important;\n "]);return g=function(){return e},e}function E(){var e=w(["\n margin-bottom: 1em;\n "]);return E=function(){return e},e}function k(){var e=w(["\n margin-top: 0 !important;\n "]);return k=function(){return e},e}function x(e){var t,r,o=e.entry,a=(0,v.Z)().styles,i=(0,b.RY)(),w=(0,p.H)(),x=(0,u.useCompile)(),C=(0,u.usePlugin)(d.default),A=(t=l().useState(100),function(e){if(Array.isArray(e))return e}(t)||function(e,t){var r,n,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var l=[],a=!0,i=!1;try{for(o=o.call(e);!(a=(r=o.next()).done)&&(l.push(r.value),l.length!==t);a=!0);}catch(e){i=!0,n=e}finally{try{a||null==o.return||o.return()}finally{if(i)throw n}}return l}}(t,2)||function(e,t){if(e){if("string"==typeof e)return h(e,2);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 h(e,t)}}(t,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),O=A[0],S=A[1],P=null==w?void 0:w.clipboard,j=P?C.instructions.get(P.type):null,N=P?j?x(j.title):P.type:"";return l().createElement("div",{className:"workflow-canvas-wrapper"},l().createElement(c,{FallbackComponent:u.ErrorFallback,onError:console.error},l().createElement("div",{className:"workflow-canvas",style:{zoom:O/100}},l().createElement("div",{className:(0,u.cx)(a.branchBlockClass,(0,u.css)(g()))},l().createElement("div",{className:a.branchClass},i?l().createElement(n.Alert,{type:"warning",message:(0,m.KQ)("Executed workflow cannot be modified. Could be copied to a new version to modify."),showIcon:!0,className:(0,u.css)(E())}):null,l().createElement(y.Gk,null),l().createElement("div",{className:(0,u.cx)(a.branchBlockClass,(0,u.css)(k()))},l().createElement(f.I0,{entry:o})),l().createElement("div",{className:a.terminalClass},(0,m.KQ)("End")))))),P?l().createElement("div",{className:a.clipboardPreviewClass},l().createElement("div",{className:"workflow-clipboard-header"},l().createElement("span",null,(0,m.KQ)("Copied node")),l().createElement(n.Button,{type:"text",size:"small",icon:l().createElement(s.CloseOutlined,null),onClick:function(){var e;return null==w||null==(e=w.clearClipboard)?void 0:e.call(w)}})),l().createElement("div",{className:"workflow-clipboard-card"},l().createElement("div",{className:"workflow-clipboard-type"},N),l().createElement("div",{className:"workflow-clipboard-title"},null!=(r=P.title)?r:P.type))):null,l().createElement("div",{className:"workflow-canvas-zoomer"},l().createElement(n.Slider,{vertical:!0,reverse:!0,defaultValue:100,step:10,min:10,value:O,onChange:S})))}},6443:function(e,t,r){r.r(t),r.d(t,{WorkflowPage:function(){return Y}});var n=r(3772),o=r(8156),l=r.n(o),a=r(6128),i=r(5329),c=r(3238),s=r(2721),u=r(482),d=r(3505),f=r(7584),p=r(144),m=r(4665),v=r(1113),y=r(8398),b=r(8551),h=r(1685),w=r(9315),g=r(8303),E=r(1600),k=r(4477),x=r(1682),C=r(7032),A=r(8562),O=r(2495),S=r(2743),P=r(1501),j=r(7058);function N(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function T(e,t,r,n,o,l,a){try{var i=e[l](a),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,o)}function R(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var l=e.apply(t,r);function a(e){T(l,n,o,a,i,"next",e)}function i(e){T(l,n,o,a,i,"throw",e)}a(void 0)})}}function K(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function I(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function B(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},l=Object.keys(e);for(n=0;n<l.length;n++)r=l[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n<l.length;n++)r=l[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function Q(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var l=[],a=!0,i=!1;try{for(o=o.call(e);!(a=(r=o.next()).done)&&(l.push(r.value),!t||l.length!==t);a=!0);}catch(e){i=!0,n=e}finally{try{a||null==o.return||o.return()}finally{if(i)throw n}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return N(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 N(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 F(e,t){var r,n,o,l,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return l={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function i(l){return function(i){var c=[l,i];if(r)throw TypeError("Generator is already executing.");for(;a;)try{if(r=1,n&&(o=2&c[0]?n.return:c[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,c[1])).done)return o;switch(n=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,n=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],n=0}finally{r=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}function D(){var e,t,r=(e=["\n margin-bottom: 1em;\n "],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return D=function(){return r},r}function V(e){var t,r=e.request,o=(e.filter,B(e,["request","filter"])),a=(0,y.G2)().workflow,i=I(K({},o),{request:I(K({},r),{params:I(K({},null==r?void 0:r.params),{filter:I(K({},null==r||null==(t=r.params)?void 0:t.filter),{key:a.key})})})});return l().createElement(n.ResourceActionProvider,i)}function z(e){var t=e.data,r=e.option,o=(0,n.useCompile)()(r.label);return l().createElement(c.Trans,{ns:b.A7,values:{statusText:o}},"Workflow executed, the result status is ",l().createElement(s.Tag,{color:r.color},"{{statusText}}"),l().createElement(a.Link,{to:(0,w.s_)(t.id)},"View the execution"))}function G(){var e=(0,y.G2)().workflow,t=(0,d.useForm)(),r=(0,n.useResourceContext)().resource,o=(0,n.useActionContext)(),a=(0,n.useNavigateNoUpdate)(),i=s.App.useApp().message,c=(0,A.RY)();return{run:function(){return R(function(){var n,s,u,d;return F(this,function(f){switch(f.label){case 0:return s=(n=t.values).autoRevision,u=B(n,["autoRevision"]),[4,t.submit()];case 1:return f.sent(),[4,r.execute(K({filterByTk:e.id,values:u},!c&&s?{autoRevision:1}:{}))];case 2:var p,m,v,y;return d=f.sent().data.data,t.reset(),o.setFormValueChanged(!1),o.setVisible(!1),null==i||i.open((m=(p=d.execution).id,v=p.status,(y=x.uy[v])?{type:"info",content:l().createElement(z,{data:{id:m},option:y})}:null)),d.newVersionId&&a((0,w.SI)(d.newVersionId)),[2]}})})()}}}function _(e){var t=e.children,r=(0,d.useField)(),n=(0,y.G2)().workflow,o=(0,k.cC)(),a=o.validate(n.config),i="";switch(!0){case!a:i=(0,b.KQ)("The trigger is not configured correctly, please check the trigger configuration.");break;case!o.triggerFieldset:i=(0,b.KQ)("This type of trigger has not been supported to be executed manually.")}return r.setPattern(i?"disabled":"editable"),i?l().createElement(s.Tooltip,{title:i},t):t}function M(){var e,t=(0,y.G2)().workflow,r=(0,A.RY)(),o=(0,k.cC)();return l().createElement(y.zQ.Provider,{value:t},l().createElement(C.XA.Provider,{value:!0},l().createElement(n.SchemaComponent,{components:K({Alert:s.Alert,Fieldset:g.p,ActionDisabledProvider:_},o.components),scope:K({useCancelAction:n.useCancelAction,useExecuteConfirmAction:G},o.scope),schema:{name:"trigger-modal-".concat(t.type,"-").concat(t.id),type:"void","x-decorator":"ActionDisabledProvider","x-component":"Action","x-component-props":{openSize:"small"},title:"{{t('Execute manually', { ns: \"".concat(b.A7,'" })}}'),properties:{drawer:{type:"void","x-decorator":"FormV2","x-component":"Action.Modal",title:"{{t('Execute manually', { ns: \"".concat(b.A7,'" })}}'),properties:I(K(I(K({},Object.keys(null!=(e=o.triggerFieldset)?e:{}).length?{alert:{type:"void","x-component":"Alert","x-component-props":{message:"{{t('Trigger variables need to be filled for executing.', { ns: \"".concat(b.A7,'" })}}'),className:(0,n.css)(D())}}}:{description:{type:"void","x-component":"p","x-content":"{{t('This will perform all the actions configured in the workflow. Are you sure you want to continue?', { ns: \"".concat(b.A7,'" })}}')}}),{fieldset:{type:"void","x-decorator":"FormItem","x-component":"Fieldset",title:"{{t('Trigger variables', { ns: \"".concat(b.A7,'" })}}'),properties:o.triggerFieldset}}),r?{}:{autoRevision:{type:"boolean","x-decorator":"FormItem","x-component":"Checkbox","x-content":"{{t('Automatically create a new version after execution', { ns: \"".concat(b.A7,'" })}}'),default:!0}}),{footer:{type:"void","x-component":"Action.Modal.Footer",properties:{cancel:{type:"void",title:"{{t('Cancel')}}","x-component":"Action","x-component-props":{useAction:"{{useCancelAction}}"}},submit:{type:"void",title:"{{t('Confirm')}}","x-component":"Action","x-component-props":{type:"primary",useAction:"{{useExecuteConfirmAction}}"}}}}})}}}})))}function W(){var e=(0,y.G2)(),t=e.workflow,r=e.revisions,i=void 0===r?[]:r,d=Q((0,o.useState)(!1),2),f=d[0],p=d[1],g=(0,a.useNavigate)(),k=(0,c.useTranslation)().t,C=s.App.useApp().modal,O=(0,n.useApp)(),S=(0,n.useResourceContext)().resource,P=(0,n.useResourceActionContext)().refresh,j=s.App.useApp().message,N=(0,A.U3)(),T=(0,o.useCallback)(R(function(){var e;return F(this,function(r){switch(r.label){case 0:return[4,S.revision({filterByTk:t.id,filter:{key:t.key}})];case 1:return e=r.sent().data.data,j.success(k("Operation succeeded")),g((0,w.SI)(e.id)),[2]}})}),[S,t.id,t.key,j,k,g]),K=(0,o.useCallback)(R(function(){var e;return F(this,function(r){return e=t.current?(0,b.KQ)("This is a main version, delete it will cause the whole workflow to be deleted (including all other revisions)."):(0,b.KQ)("Current version will be deleted (without affecting other versions)."),C.confirm({title:k("Are you sure you want to delete it?"),content:e,onOk:function(){return R(function(){var e,r,n,o;return F(this,function(l){switch(l.label){case 0:return[4,S.destroy({filterByTk:t.id})];case 1:if(l.sent(),j.success(k("Operation succeeded")),e=O.pluginSettingsManager.getRoutePath("workflow"),t.current)return[2,g(e)];return i.length&&g((0,w.SI)(null==(r=i.find(function(e){return e.current}))?void 0:r.id)),[4,S.list({filter:{key:t.key,current:!0},fields:["id"],pageSize:1})];case 2:if(200!==(n=l.sent()).status)return[2];if(!(o=Q(n.data.data,1)[0]))return[2,g(e)];return[2,g((0,w.SI)(o.id))]}})})()}}),[2]})}),[t,C,k,S,j,g,O.pluginSettingsManager,i]),I=(0,o.useCallback)(function(e){switch(e.key){case"refresh":P();return;case"history":p(!0);return;case"revision":return T();case"delete":return K()}},[K,T,P]);return l().createElement(l().Fragment,null,l().createElement(s.Dropdown,{menu:{items:[{key:"key",label:"Key: ".concat(t.key),disabled:!0},{type:"divider"},{role:"button","aria-label":"refresh",key:"refresh",label:k("Refresh")},{role:"button","aria-label":"history",key:"history",label:(0,b.KQ)("Execution history"),disabled:!N},{role:"button","aria-label":"revision",key:"revision",label:(0,b.KQ)("Copy to new version")},{type:"divider"},{role:"button","aria-label":"delete",danger:!0,key:"delete",label:k("Delete")}],onClick:I}},l().createElement(s.Button,{"aria-label":"more",type:"text",icon:l().createElement(u.EllipsisOutlined,null)})),l().createElement(n.ActionContextProvider,{value:{visible:f,setVisible:p}},l().createElement(n.SchemaComponent,{schema:h.V,components:{ExecutionResourceProvider:V,ExecutionLink:v.a,ExecutionStatusColumn:m.rV},scope:{useRefreshActionProps:E.X,ExecutionStatusOptions:x.C6}})))}function q(){var e,t=(0,i.Z)().styles,r=(0,a.useNavigate)(),c=(0,y.G2)().workflow,d=(0,o.useCallback)(function(e){var t=e.key;t!=c.id&&r((0,w.SI)(t))},[c.id,r]),p=(0,n.useRequest)({resource:"workflows",action:"list",params:{filter:{key:c.key},fields:["id","createdAt","current","enabled","versionStats.executed"],sort:"-id"}},{refreshDeps:[c.id],manual:!0}),m=p.data,v=p.run,h=(0,o.useCallback)(function(e){e&&v()},[v]),g=null!=(e=null==m?void 0:m.data)?e:[];return l().createElement(s.Dropdown,{className:"workflow-versions",trigger:["click"],onOpenChange:h,menu:{onClick:d,defaultSelectedKeys:["".concat(c.id)],className:(0,n.cx)(t.dropdownClass,t.workflowVersionDropdownClass),items:g.sort(function(e,t){return t.id-e.id}).map(function(e,t){return{role:"button","aria-label":"version-".concat(t),key:"".concat(e.id),icon:e.current?l().createElement(u.RightOutlined,null):null,className:(0,n.cx)({executed:e.versionStats.executed>0,unexecuted:0==e.versionStats.executed,enabled:e.enabled}),label:l().createElement(l().Fragment,null,l().createElement("strong",null,"#".concat(e.id)),l().createElement("time",null,(0,f.dayjs)(e.createdAt).fromNow()))}})}},l().createElement(s.Button,{type:"text","aria-label":"version"},l().createElement("label",null,(0,b.KQ)("Version")),l().createElement("span",null,(null==c?void 0:c.id)?"#".concat(c.id):null),l().createElement(u.DownOutlined,null)))}function U(){var e,t,r,i,c=(0,a.useNavigate)(),u=(0,n.useApp)(),d=(0,n.useResourceActionContext)(),f=d.data,m=d.refresh,v=d.loading,h=(0,n.useResourceContext)().resource,g=(0,n.useDocumentTitle)().setTitle,E=Q((0,o.useState)(null!=(r=null==f||null==(t=f.data)?void 0:t.enabled)&&r),2),k=E[0],x=E[1],C=Q((0,o.useState)(!1),2),A=C[0],N=C[1],T=null!=(i=null==f?void 0:f.data)?i:{},K=T.nodes,I=void 0===K?[]:K,D=B(T,["nodes"]);(0,w.Yc)(I),(0,o.useEffect)(function(){var e,t=null!=(e=null==f?void 0:f.data)?e:{},r=t.title,n=t.enabled;null==g||g("".concat((0,b.KQ)("Workflow")).concat(r?": ".concat(r):"")),x(n)},[null==f?void 0:f.data,g]);var V=(0,o.useCallback)((e=R(function(e){return F(this,function(t){switch(t.label){case 0:return N(!0),[4,h.update({filterByTk:D.id,values:{enabled:e}})];case 1:return t.sent(),N(!1),x(e),[2]}})}),function(t){return e.apply(this,arguments)}),[h,D.id]);if(!(null==f?void 0:f.data))return v?l().createElement(s.Spin,null):l().createElement(s.Result,{status:"404",title:"Not found",extra:l().createElement(s.Button,{onClick:function(){return c(-1)}},(0,b.KQ)("Go back"))});var z=I.find(function(e){return!e.upstream});return l().createElement(y.iT.Provider,{value:{workflow:D,nodes:I,refresh:m}},l().createElement("div",{className:"workflow-toolbar"},l().createElement("header",null,l().createElement(s.Breadcrumb,{items:[{title:l().createElement(a.Link,{to:u.pluginSettingsManager.getRoutePath("workflow")},(0,b.KQ)("Workflow"))},{title:l().createElement(s.Tooltip,{title:"Key: ".concat(D.key)},l().createElement("strong",null,D.title))}]}),D.sync?l().createElement(s.Tag,{color:"orange"},(0,b.KQ)("Synchronously")):l().createElement(s.Tag,{color:"cyan"},(0,b.KQ)("Asynchronously"))),l().createElement("aside",null,l().createElement(M,null),l().createElement(q,null),l().createElement(s.Switch,{checked:k,onChange:V,checkedChildren:(0,b.KQ)("On"),unCheckedChildren:(0,b.KQ)("Off"),loading:A}),l().createElement(W,null))),l().createElement(O.E1,null,l().createElement(S.I,null,l().createElement(P.V,null,l().createElement(j.n,null,l().createElement(p.g,{entry:z}))))))}var Y=function(){var e,t,r,o=(0,a.useParams)(),c=(0,i.Z)().styles;return l().createElement("div",{className:(0,n.cx)(c.workflowPageClass)},l().createElement(n.SchemaComponent,{schema:{type:"void",properties:(e={},t="provider_".concat(o.id),r={type:"void","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:{name:"workflows",fields:[]},resourceName:"workflows",request:{resource:"workflows",action:"get",params:{filter:{id:o.id},appends:["nodes","stats.executed","versionStats.executed"]}}},"x-component":"WorkflowCanvas"},t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e)},components:{WorkflowCanvas:U}}))}}}]);
@@ -7,4 +7,4 @@
7
7
  * For more information, please refer to: https://www.nocobase.com/agreement.
8
8
  */
9
9
 
10
- "use strict";(self.webpackChunk_nocobase_plugin_workflow=self.webpackChunk_nocobase_plugin_workflow||[]).push([["830"],{7482:function(e,t,o){o.r(t),o.d(t,{WorkflowPane:function(){return es}});var r=o(8156),n=o.n(r),i=o(2721),c=o(8563),a=o(3505),l=o(3772),s=o(1113);function u(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{},r=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(o).filter(function(e){return Object.getOwnPropertyDescriptor(o,e).enumerable}))),r.forEach(function(t){var r;r=o[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function p(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);o.push.apply(o,r)}return o})(Object(t)).forEach(function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(t,o))}),e}var m=function(e){var t,o=e.request,r=(e.filter,function(e,t){if(null==e)return{};var o,r,n=function(e,t){if(null==e)return{};var o,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)o=i[r],t.indexOf(o)>=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)o=i[r],!(t.indexOf(o)>=0)&&Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}(e,["request","filter"])),i=(0,l.useRecord)(),c=p(u({},r),{request:p(u({},o),{params:p(u({},null==o?void 0:o.params),{filter:p(u({},null==o||null==(t=o.params)?void 0:t.filter),{key:i.key})})})});return n().createElement(l.ResourceActionProvider,c)},d=o(3238),f=o(6128),y=o(9315),b=function(){var e=(0,d.useTranslation)().t,t=(0,l.useRecord)().id,o=(0,l.useActionContext)().setVisible,r=(0,l.useGetAriaLabelOfAction)("Configure").getAriaLabel;return n().createElement(f.Link,{"aria-label":r(),to:(0,y.SI)(t),onClick:function(){return o(!1)}},e("Configure"))};function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var o=0,r=Array(t);o<t;o++)r[o]=e[o];return r}function x(e){var t,o,i,c=e.component,s=e.children,u=function(e,t){if(null==e)return{};var o,r,n=function(e,t){if(null==e)return{};var o,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)o=i[r],t.indexOf(o)>=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)o=i[r],!(t.indexOf(o)>=0)&&Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}(e,["component","children"]),p=(t=(0,r.useState)(!1),function(e){if(Array.isArray(e))return e}(t)||function(e,t){var o,r,n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var i=[],c=!0,a=!1;try{for(n=n.call(e);!(c=(o=n.next()).done)&&(i.push(o.value),i.length!==t);c=!0);}catch(e){a=!0,r=e}finally{try{c||null==n.return||n.return()}finally{if(a)throw r}}return i}}(t,2)||function(e,t){if(e){if("string"==typeof e)return v(e,2);var o=Object.prototype.toString.call(e).slice(8,-1);if("Object"===o&&e.constructor&&(o=e.constructor.name),"Map"===o||"Set"===o)return Array.from(o);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return v(e,t)}}(t,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),m=p[0],d=p[1],f=(0,a.useFieldSchema)();return n().createElement(l.ActionContextProvider,{value:{visible:m,setVisible:d,fieldSchema:f}},n().createElement(void 0===c?"div":c,(o=function(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{},r=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(o).filter(function(e){return Object.getOwnPropertyDescriptor(o,e).enumerable}))),r.forEach(function(t){var r;r=o[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},u),i=i={onClick:function(){d(!0)}},Object.getOwnPropertyDescriptors?Object.defineProperties(o,Object.getOwnPropertyDescriptors(i)):(function(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);o.push.apply(o,r)}return o})(Object(i)).forEach(function(e){Object.defineProperty(o,e,Object.getOwnPropertyDescriptor(i,e))}),o),s),n().createElement(l.SchemaComponent,{schema:f,onlyRenderProperties:!0}))}var g=o(8551),h=o(1685),O=o(1682),A=o(8833),w=o(4665),C={title:{"x-component":"CollectionField","x-decorator":"FormItem"},type:{"x-decorator":"FormItem",title:'{{t("Trigger type", { ns: "'.concat(g.A7,'" })}}'),"x-component":"Select","x-component-props":{optionRender:"{{TriggerOptionRender}}",popupMatchSelectWidth:!0,listHeight:300},enum:"{{useTriggersOptions()}}",required:!0},sync:{type:"boolean",title:'{{ t("Execute mode", { ns: "'.concat(g.A7,'" }) }}'),description:'{{ t("Execute workflow asynchronously or synchronously based on trigger type, and could not be changed after created.", { ns: "'.concat(g.A7,'" }) }}'),"x-decorator":"FormItem","x-component":"SyncOptionSelect","x-component-props":{options:[{label:'{{ t("Asynchronously", { ns: "'.concat(g.A7,'" }) }}'),value:!1,tooltip:'{{ t("Will be executed in the background as a queued task.", { ns: "'.concat(g.A7,'" }) }}')},{label:'{{ t("Synchronously", { ns: "'.concat(g.A7,'" }) }}'),value:!0,tooltip:'{{ t("For user actions that require immediate feedback. Can not use asynchronous nodes in such mode, and it is not recommended to perform time-consuming operations under synchronous mode.", { ns: "'.concat(g.A7,'" }) }}')}]}},enabled:{"x-component":"CollectionField","x-decorator":"FormItem"},description:{"x-component":"CollectionField","x-decorator":"FormItem"},categories:{type:"array",title:'{{ t("Category", { ns: "'.concat(g.A7,'" }) }}'),"x-decorator":"FormItem","x-component":"CollectionField","x-collection-field":"workflows.categories"},options:{type:"object","x-component":"fieldset",properties:{deleteExecutionOnStatus:{type:"array",title:'{{ t("Auto delete history when execution is on end status", { ns: "'.concat(g.A7,'" }) }}'),"x-decorator":"FormItem","x-component":"Select","x-component-props":{multiple:!0,optionRender:w.uL,tagRender:w.qo},enum:O.C6.filter(function(e){return!!e.value})},stackLimit:{type:"number",title:'{{ t("Maximum number of cycling triggers", { ns: "'.concat(g.A7,'" }) }}'),description:'{{ t("The triggers of same workflow by some node (create, update and sub-flow etc.) more than this number will be ignored. Large number may cause performance issues. Please use with caution.", { ns: "'.concat(g.A7,'" }) }}'),"x-decorator":"FormItem",default:1,"x-component":"InputNumber","x-component-props":{min:1,precision:0,className:"auto-width"}}}}},S={name:"workflow",type:"void",properties:{provider:{type:"void","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:A.Z,resourceName:"workflows",request:{resource:"workflows",action:"list",params:{filter:{current:!0},sort:["-createdAt"],except:["config"]}}},"x-component":"CategoryTabs",properties:{main:{type:"void","x-component":"CardItem",properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:16}},properties:{filter:{type:"void",title:'{{ t("Filter") }}',default:{$and:[{title:{$includes:""}}]},"x-action":"filter","x-component":"Filter.Action","x-use-component-props":"useWorkflowFilterActionProps","x-component-props":{icon:"FilterOutlined",nonfilterable:["description","categories"]},"x-align":"left"},refresher:{type:"void",title:'{{ t("Refresh") }}',"x-component":"Action","x-use-component-props":"useRefreshActionProps","x-component-props":{icon:"ReloadOutlined"}},sync:{type:"void",title:'{{t("Sync", { ns: "'.concat(g.A7,'" })}}'),"x-decorator":"Tooltip","x-decorator-props":{title:'{{ t("Sync enabled status of all workflows from database", { ns: "'.concat(g.A7,'" }) }}')},"x-component":"Action","x-component-props":{icon:"SyncOutlined",useAction:"{{ useSyncAction }}"},"x-reactions":["{{useWorkflowSyncReaction}}"]},delete:{type:"void",title:'{{t("Delete")}}',"x-component":"Action","x-component-props":{icon:"DeleteOutlined",useAction:"{{ cm.useBulkDestroyAction }}",confirm:{title:"{{t('Delete record')}}",content:"{{t('Are you sure you want to delete it?')}}"}}},create:{type:"void",title:'{{t("Add new")}}',"x-component":"Action","x-component-props":{type:"primary",icon:"PlusOutlined"},properties:{drawer:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{initialValue:{current:!0}},title:'{{t("Add new")}}',properties:{title:C.title,type:C.type,sync:C.sync,categories:C.categories,description:C.description,options:C.options,footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{cancel:{title:'{{ t("Cancel") }}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},submit:{title:'{{ t("Submit") }}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ cm.useCreateAction }}"}}}}}}}}}},table:{type:"array","x-component":"Table.Void","x-component-props":{rowKey:"id",rowSelection:{type:"checkbox"},useDataSource:"{{cm.useDataSourceFromRAC }}"},properties:{title:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",title:'{{ t("Title") }}',properties:{title:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},categories:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",title:'{{ t("Category", { ns: "'.concat(g.A7,'" }) }}'),properties:{categories:{type:"array","x-component":"EnumerationField","x-component-props":{multiple:!0,fieldNames:{label:"title",value:"id",color:"color"}}}}},type:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",title:'{{ t("Trigger type", { ns: "'.concat(g.A7,'" }) }}'),properties:{type:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},sync:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",title:'{{ t("Execute mode", { ns: "'.concat(g.A7,'" }) }}'),properties:{sync:{type:"boolean","x-component":"CollectionField","x-read-pretty":!0}}},enabled:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",title:'{{ t("Status", { ns: "'.concat(g.A7,'" }) }}'),properties:{enabled:{type:"boolean","x-component":"CollectionField","x-read-pretty":!0,default:!1}}},"stats.executed":{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",title:'{{ t("Executed", { ns: "'.concat(g.A7,'" }) }}'),properties:{"stats.executed":{type:"number","x-decorator":"OpenDrawer","x-decorator-props":{component:function(e){var t=(0,l.useCollectionRecordData)();return n().createElement("a",function(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{},r=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(o).filter(function(e){return Object.getOwnPropertyDescriptor(o,e).enumerable}))),r.forEach(function(t){var r;r=o[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({"aria-label":"executed-".concat(t.title)},e))}},"x-component":"InputNumber","x-read-pretty":!0,properties:{drawer:h.V}}}},actions:{type:"void",title:'{{ t("Actions") }}',"x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{actions:{type:"void","x-component":"Space","x-component-props":{split:"|"},properties:{configure:{type:"void","x-component":"WorkflowLink"},update:{type:"void",title:'{{ t("Edit") }}',"x-component":"Action.Link","x-component-props":{type:"primary"},properties:{drawer:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{useValues:"{{ cm.useValuesFromRecord }}"},title:'{{ t("Edit") }}',properties:{title:C.title,enabled:C.enabled,sync:C.sync,categories:C.categories,description:C.description,options:C.options,footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{cancel:{title:'{{ t("Cancel") }}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},submit:{title:'{{ t("Submit") }}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ cm.useUpdateAction }}"}}}}}}}},revision:{type:"void",title:'{{t("Duplicate", { ns: "'.concat(g.A7,'" })}}'),"x-component":"Action.Link","x-component-props":{openSize:"small"},properties:{modal:{type:"void",title:'{{t("Duplicate to new workflow", { ns: "'.concat(g.A7,'" })}}'),"x-decorator":"FormV2","x-component":"Action.Modal",properties:{title:{type:"string",title:'{{t("Title")}}',"x-decorator":"FormItem","x-component":"Input"},footer:{type:"void","x-component":"Action.Modal.Footer",properties:{submit:{type:"void",title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ useRevisionAction }}"}},cancel:{type:"void",title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}}}}}}}},delete:{type:"void",title:'{{ t("Delete") }}',"x-component":"Action.Link","x-component-props":{confirm:{title:"{{t('Delete record')}}",content:"{{t('Are you sure you want to delete it?')}}"},useAction:"{{ cm.useDestroyActionAndRefreshCM }}"}}}}}}}}}}}}}},P=o(4199),E=o(5588),j=o(1600);function k(e){var t=e.data,o=t.label,r=t.color,c=t.options,a=(0,l.useCompile)();return n().createElement(i.Space,{direction:"vertical"},n().createElement(i.Tag,{color:r},a(o)),n().createElement(i.Typography.Text,{type:"secondary",style:{whiteSpace:"normal"}},a(c.description)))}var F=o(482),D=o(2948),T=o(8875),R=o(467);function I(e,t){(null==t||t>e.length)&&(t=e.length);for(var o=0,r=Array(t);o<t;o++)r[o]=e[o];return r}function V(e,t,o,r,n,i,c){try{var a=e[i](c),l=a.value}catch(e){o(e);return}a.done?t(l):Promise.resolve(l).then(r,n)}function M(e){return function(){var t=this,o=arguments;return new Promise(function(r,n){var i=e.apply(t,o);function c(e){V(i,r,n,c,a,"next",e)}function a(e){V(i,r,n,c,a,"throw",e)}c(void 0)})}}function q(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{},r=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(o).filter(function(e){return Object.getOwnPropertyDescriptor(o,e).enumerable}))),r.forEach(function(t){var r;r=o[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function L(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);o.push.apply(o,r)}return o})(Object(t)).forEach(function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(t,o))}),e}function N(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var o,r,n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var i=[],c=!0,a=!1;try{for(n=n.call(e);!(c=(o=n.next()).done)&&(i.push(o.value),!t||i.length!==t);c=!0);}catch(e){a=!0,r=e}finally{try{c||null==n.return||n.return()}finally{if(a)throw r}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return I(e,t);var o=Object.prototype.toString.call(e).slice(8,-1);if("Object"===o&&e.constructor&&(o=e.constructor.name),"Map"===o||"Set"===o)return Array.from(o);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return I(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 W(e,t){var o,r,n,i,c={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(i){return function(a){var l=[i,a];if(o)throw TypeError("Generator is already executing.");for(;c;)try{if(o=1,r&&(n=2&l[0]?r.return:l[0]?r.throw||((n=r.return)&&n.call(r),0):r.next)&&!(n=n.call(r,l[1])).done)return n;switch(r=0,n&&(l=[2&l[0],n.value]),l[0]){case 0:case 1:n=l;break;case 4:return c.label++,{value:l[1],done:!1};case 5:c.label++,r=l[1],l=[0];continue;case 7:l=c.ops.pop(),c.trys.pop();continue;default:if(!(n=(n=c.trys).length>0&&n[n.length-1])&&(6===l[0]||2===l[0])){c=0;continue}if(3===l[0]&&(!n||l[1]>n[0]&&l[1]<n[3])){c.label=l[1];break}if(6===l[0]&&c.label<n[1]){c.label=n[1],n=l;break}if(n&&c.label<n[2]){c.label=n[2],c.ops.push(l);break}n[2]&&c.ops.pop(),c.trys.pop();continue}l=t.call(e,c)}catch(e){l=[6,e],r=0}finally{o=n=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}function B(){var e,t,o=(e=["\n .ant-tabs-nav-list > :first-child {\n border: none;\n }\n "],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return B=function(){return o},o}function _(e){var t=(0,D.useDraggable)({id:e.id,data:e.data}),o=t.attributes,r=t.listeners,i=t.setNodeRef;return n().createElement("div",q({ref:i},r,o),n().createElement("div",null,e.children))}function z(e){var t=(0,D.useDroppable)({id:e.id,data:e.data}),o=t.isOver,r=t.setNodeRef;return n().createElement("div",{ref:r,style:o?{color:"green"}:void 0},e.children)}var K=(0,a.observer)(function(e){var t=e.item;return n().createElement(z,{id:t.id.toString(),data:t},n().createElement("div",null,n().createElement(_,{id:t.id.toString(),data:t},n().createElement($,{item:t}))))},{displayName:"TabTitle"}),$=function(e){var t=e.item,o=(0,d.useTranslation)().t,r=(0,l.useCompile)();return n().createElement(i.Space,null,n().createElement(i.Badge,{color:t.color}),o(r(t.title)))},G=(0,a.observer)(function(e){var t,o=N((0,r.useState)(null),2),i=o[0],c=o[1],a=(0,r.useContext)(U).refresh,s=(0,l.useAPIClient)(),u=(t=M(function(e){var t,o;return W(this,function(r){switch(r.label){case 0:if(t=e.active,o=e.over,setTimeout(function(){c(null)}),!(o&&o.id!==t.id))return[3,2];return[4,s.resource("workflowCategories").move({sourceId:t.id,targetId:o.id})];case 1:r.sent(),a(),r.label=2;case 2:return[2]}})}),function(e){return t.apply(this,arguments)}),p=(0,D.useSensor)(D.MouseSensor,{activationConstraint:{distance:10}}),m=(0,D.useSensors)(p);return n().createElement(D.DndContext,{sensors:m,onDragEnd:u,onDragStart:function(e){var t;c(null==(t=e.active)?void 0:t.data.current)}},e.children,n().createElement(D.DragOverlay,null,i?n().createElement("span",{style:{whiteSpace:"nowrap"}},n().createElement($,{item:i})):null))},{displayName:"DndProvider"}),U=(0,r.createContext)({});function Q(e){var t=e.values,o=e.onEdit,c=e.onRemove,a=(0,l.useCompile)(),s=(0,r.useCallback)(function(e){switch(e.key){case"edit":o(t);break;case"delete":c(t.id)}},[o,c,t]);return n().createElement(i.Dropdown,{menu:{items:[{key:"edit",label:(0,g.KQ)("Edit category")},{key:"delete",label:(0,g.KQ)("Delete category")}],onClick:s}},n().createElement(F.MenuOutlined,{role:"button","aria-label":a(t.title),style:{padding:8,margin:"-8px"}}))}function H(){var e,t=(0,l.useResourceActionContext)(),o=t.run,s=t.setState,u=t.defaultRequest,p=N((0,r.useState)({tab:"all"}),2),m=p[0],d=p[1],f=N((0,r.useState)(m.tab),2),y=f[0],b=f[1],v=(0,l.useCompile)(),x=(0,l.useAPIClient)(),h=(0,a.useFieldSchema)(),O=i.App.useApp().modal,A=(0,l.useRequest)({resource:"workflowCategories",action:"list",params:{paginate:!1,sort:["sort"]}}),w=A.data,C=A.refresh,S=N((0,r.useState)(!1),2),P=S[0],E=S[1],j=(0,r.useMemo)(function(){return(0,c.createForm)()},[]),k=(0,r.useCallback)(function(e){E(!0);var t=(0,R.cloneDeep)(e);j.setValues(t)},[j]),F=(0,r.useCallback)(function(){E(!1),j.reset()},[j]),D=(0,r.useCallback)(function(e){O.confirm({title:v("{{t('Delete category')}}"),content:v("{{t('Are you sure you want to delete it?')}}"),onOk:M(function(){return W(this,function(t){switch(t.label){case 0:return[4,x.resource("workflowCategories").destroy({filter:{id:e}})];case 1:return t.sent(),e===+m.tab&&d({tab:"all"}),C(),o(),[2]}})})})},[m.tab]),I=(0,r.useMemo)(function(){if(!(null==w?void 0:w.data))return[];var e=w.data.sort(function(e,t){return e.sort-t.sort}).concat().map(function(e){return L(q({},e),{schema:h.properties.main})});return e.find(function(e){return"all"===e.id})||e.unshift({title:'{{t("All", { ns: "'.concat(g.A7,'" })}}'),id:"all",sort:0,closable:!1,schema:h.properties.main}),e.map(function(e){return{label:"all"!==e.id?n().createElement("div",{"data-no-dnd":"true"},n().createElement(K,{item:e})):v(e.title),key:String(e.id),closable:e.closable,closeIcon:n().createElement(Q,{values:e,onEdit:k,onRemove:D}),children:n().createElement(i.Card,{variant:"borderless",style:{borderRadius:"0 0.5em 0.5em 0.5em"}},n().createElement(a.RecursionField,{name:y,schema:e.schema,onlyRenderProperties:!0}))}})},[v,null==w?void 0:w.data,y,k,D,h.properties.main]),V=(0,r.useCallback)(function(e){if(d({tab:e}),b((0,T.uid)()),"all"!==e){var t,r={$and:[null==u||null==(t=u.params)?void 0:t.filter,{"categories.id":e}]};o({filter:r}),null==s||s({categories:[+e],params:[{filter:r}]})}else o(),null==s||s({categories:[],params:[]})},[null==u||null==(e=u.params)?void 0:e.filter,o,s]);return((0,r.useEffect)(function(){"all"!==m.tab&&V(m.tab)},[m.tab,V]),w)?n().createElement(U.Provider,{value:{refresh:C}},n().createElement(G,null,n().createElement(i.Tabs,{addIcon:n().createElement(l.SchemaComponent,{components:{AddCategory:Y},schema:{type:"void",properties:{addCategories:{type:"void",title:'{{ t("Add category", { ns: "'.concat(g.A7,'" }) }}'),"x-component":"AddCategory","x-component-props":{type:"primary"}}}}}),onChange:V,defaultActiveKey:m.tab||"all",type:"editable-card",destroyInactiveTabPane:!0,tabBarStyle:{marginBottom:"0px"},className:(0,l.css)(B()),items:I})),n().createElement(l.ActionContextProvider,{value:{visible:P,setVisible:F,openSize:"small"}},n().createElement(l.SchemaComponent,{scope:{useFormProviderProps:Z,useCancelAction:l.useCancelAction,useEditSubmit:X},schema:{name:(0,T.uid)(),type:"void","x-decorator":"FormV2","x-decorator-props":{form:j},title:'{{ t("Edit category", { ns: "'.concat(g.A7,'" }) }}'),"x-component":"Action.Modal","x-component-props":{delay:0},properties:{title:{type:"string",title:'{{t("Title")}}',required:!0,"x-decorator":"FormItem","x-component":"Input"},color:{type:"string",title:'{{t("Color")}}',required:!1,"x-decorator":"FormItem","x-component":"ColorSelect"},footer:{type:"void","x-component":"Action.Modal.Footer",properties:{cancel:{title:'{{ t("Cancel") }}',"x-component":"Action","x-component-props":{useAction:"{{ useCancelAction }}"}},submit:{title:'{{ t("Submit") }}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ useEditSubmit }}",style:{marginLeft:"8px"}}}}}}}}))):null}function X(){var e=(0,a.useForm)(),t=(0,l.useActionContext)(),o=(0,l.useResourceActionContext)(),n=(0,r.useContext)(U).refresh,i=(0,l.useAPIClient)();return{run:function(){return M(function(){var r;return W(this,function(c){switch(c.label){case 0:return[4,e.submit()];case 1:return c.sent(),[4,i.resource("workflowCategories").update({filterByTk:null==(r=e.values)?void 0:r.id,values:e.values})];case 2:return c.sent(),t.setVisible(!1),[4,e.reset()];case 3:return c.sent(),null==n||n(),null==o||o.refresh(),[2]}})})()}}}function Z(){return{form:(0,a.useForm)()}}function J(){var e=(0,a.useForm)(),t=(0,l.useActionContext)().setVisible,o=(0,r.useContext)(U).refresh,n=(0,l.useAPIClient)();return{run:function(){return M(function(){var r;return W(this,function(i){switch(i.label){case 0:return[4,e.submit()];case 1:return i.sent(),r=(0,R.cloneDeep)(e.values),[4,n.resource("workflowCategories").create({values:r})];case 2:return i.sent(),t(!1),e.reset(),o(),[2]}})})()}}}function Y(e){var t=N((0,r.useState)(!1),2),o=t[0],i=t[1],a=(0,d.useTranslation)().t,s=(0,r.useMemo)(function(){return(0,c.createForm)()},[]);return n().createElement(l.ActionContextProvider,{value:{visible:o,setVisible:i,openSize:"small"}},n().createElement("div",{onClick:function(){return i(!0)},title:a("Add category")},n().createElement(F.PlusOutlined,null)),n().createElement(l.SchemaComponent,{schema:{name:"modal",type:"void","x-decorator":"FormV2","x-decorator-props":{form:s},title:'{{ t("Add category") }}',"x-component":"Action.Modal","x-component-props":L(q({},e),{delay:0}),properties:{title:{type:"string",title:'{{t("Title")}}',required:!0,"x-decorator":"FormItem","x-component":"Input"},color:{type:"string",title:'{{t("Color")}}',required:!1,"x-decorator":"FormItem","x-component":"ColorSelect"},footer:{type:"void","x-component":"Action.Modal.Footer",properties:{cancel:{title:'{{ t("Cancel") }}',"x-component":"Action","x-component-props":{useAction:"{{ useCancelAction }}"}},submit:{title:'{{ t("Submit") }}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ useCreateSubmit }}",style:{marginLeft:"8px"}}}}}}},scope:{useCancelAction:l.useCancelAction,useCreateSubmit:J}}))}function ee(e){var t=e.value,o=e.multiple,r=e.fieldNames,c=void 0===r?l.defaultFieldNames:r,a=(0,l.useCompile)();return(o?null!=t?t:[]:t?[t]:[]).map(function(e){return n().createElement(i.Tag,{key:e[c.value],color:e[c.color]},a(e[c.label]))})}var et=function(){var e,t,o=(0,l.useResourceContext)().collection,r=(0,l.useFilterFieldOptions)(o.fields),n=(0,l.useResourceActionContext)();return(0,l.useFilterFieldProps)({options:r,params:(null==(t=n.state)||null==(e=t.params)?void 0:e[0])||n.params,service:n})};function eo(e,t,o,r,n,i,c){try{var a=e[i](c),l=a.value}catch(e){o(e);return}a.done?t(l):Promise.resolve(l).then(r,n)}function er(e){return function(){var t=this,o=arguments;return new Promise(function(r,n){var i=e.apply(t,o);function c(e){eo(i,r,n,c,a,"next",e)}function a(e){eo(i,r,n,c,a,"throw",e)}c(void 0)})}}function en(e,t){var o,r,n,i,c={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(i){return function(a){var l=[i,a];if(o)throw TypeError("Generator is already executing.");for(;c;)try{if(o=1,r&&(n=2&l[0]?r.return:l[0]?r.throw||((n=r.return)&&n.call(r),0):r.next)&&!(n=n.call(r,l[1])).done)return n;switch(r=0,n&&(l=[2&l[0],n.value]),l[0]){case 0:case 1:n=l;break;case 4:return c.label++,{value:l[1],done:!1};case 5:c.label++,r=l[1],l=[0];continue;case 7:l=c.ops.pop(),c.trys.pop();continue;default:if(!(n=(n=c.trys).length>0&&n[n.length-1])&&(6===l[0]||2===l[0])){c=0;continue}if(3===l[0]&&(!n||l[1]>n[0]&&l[1]<n[3])){c.label=l[1];break}if(6===l[0]&&c.label<n[1]){c.label=n[1],n=l;break}if(n&&c.label<n[2]){c.label=n[2],c.ops.push(l);break}n[2]&&c.ops.pop(),c.trys.pop();continue}l=t.call(e,c)}catch(e){l=[6,e],r=0}finally{o=n=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}function ei(e){var t=(0,a.useField)(),o=(0,l.useRecord)(),i=(0,l.usePlugin)(P.default);return(0,a.useFormEffects)(function(e){(0,c.onFieldChange)("type",function(e){var r=o.id||!e.value;if(e.value){var n=i.triggers.get(e.value);null!=n.sync?(r=!0,t.setValue(n.sync)):t.setInitialValue(!1)}t.setPattern(r?"disabled":"editable")})}),(0,r.useEffect)(function(){if(o.id){t.setPattern("disabled");var r,n=i.triggers.get(o.type);null!=n.sync?t.setValue(n.sync):t.setInitialValue(null!=(r=e.value)&&r)}},[o.id,t,i.triggers,o.type,e.value]),n().createElement(E.W5,e)}function ec(e){var t=(0,l.useApp)();e.visible=!!((0,l.usePlugin)("multi-app-share-collection")||"main"!==t.name)}function ea(){var e=i.App.useApp().message,t=(0,d.useTranslation)().t,o=(0,l.useResourceContext)().resource;return{run:function(){return er(function(){return en(this,function(r){switch(r.label){case 0:return[4,o.sync()];case 1:return r.sent(),e.success(t("Operation succeeded")),[2]}})})()}}}function el(){var e=i.App.useApp().message,t=(0,d.useTranslation)().t,o=(0,l.useResourceActionContext)().refresh,r=(0,l.useResourceContext)(),n=r.resource,c=r.targetKey,s=(0,l.useActionContext)().setVisible,u=(0,l.useRecord)()[c],p=(0,a.useForm)(),m=(0,a.useField)();return{run:function(){return er(function(){return en(this,function(r){switch(r.label){case 0:return r.trys.push([0,3,4,5]),[4,p.submit()];case 1:return r.sent(),m.data=m.data||{},m.data.loading=!0,[4,n.revision({filterByTk:u,values:p.values})];case 2:return r.sent(),e.success(t("Operation succeeded")),o(),s(!1),[3,5];case 3:return console.error(r.sent()),[3,5];case 4:return m.data&&(m.data.loading=!1),[7];case 5:return[2]}})})()}}}function es(){var e,t,o=(0,r.useContext)(l.SchemaComponentContext),c=(0,l.usePlugin)(P.default).useTriggersOptions;return n().createElement(l.SchemaComponentContext.Provider,{value:(e=function(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{},r=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(o).filter(function(e){return Object.getOwnPropertyDescriptor(o,e).enumerable}))),r.forEach(function(t){var r;r=o[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},o),t=t={designable:!1},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);o.push.apply(o,r)}return o})(Object(t)).forEach(function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(t,o))}),e)},n().createElement(l.SchemaComponent,{schema:S,components:{CollectionProvider:l.CollectionProvider,WorkflowLink:b,ExecutionResourceProvider:m,ExecutionLink:s.a,OpenDrawer:x,SyncOptionSelect:ei,ExecutionStatusColumn:w.rV,Tooltip:i.Tooltip,CategoryTabs:H,EnumerationField:ee},scope:{useTriggersOptions:c,useWorkflowSyncReaction:ec,useSyncAction:ea,useWorkflowFilterActionProps:et,useRefreshActionProps:j.X,useRevisionAction:el,TriggerOptionRender:k,ExecutionStatusOptions:O.C6}}))}}}]);
10
+ "use strict";(self.webpackChunk_nocobase_plugin_workflow=self.webpackChunk_nocobase_plugin_workflow||[]).push([["830"],{7482:function(e,t,o){o.r(t),o.d(t,{WorkflowPane:function(){return es}});var r=o(8156),n=o.n(r),i=o(2721),c=o(8563),a=o(3505),l=o(3772),s=o(1113);function u(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{},r=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(o).filter(function(e){return Object.getOwnPropertyDescriptor(o,e).enumerable}))),r.forEach(function(t){var r;r=o[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function p(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);o.push.apply(o,r)}return o})(Object(t)).forEach(function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(t,o))}),e}var m=function(e){var t,o=e.request,r=(e.filter,function(e,t){if(null==e)return{};var o,r,n=function(e,t){if(null==e)return{};var o,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)o=i[r],t.indexOf(o)>=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)o=i[r],!(t.indexOf(o)>=0)&&Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}(e,["request","filter"])),i=(0,l.useRecord)(),c=p(u({},r),{request:p(u({},o),{params:p(u({},null==o?void 0:o.params),{filter:p(u({},null==o||null==(t=o.params)?void 0:t.filter),{key:i.key})})})});return n().createElement(l.ResourceActionProvider,c)},d=o(3238),f=o(6128),y=o(9315),b=function(){var e=(0,d.useTranslation)().t,t=(0,l.useRecord)().id,o=(0,l.useActionContext)().setVisible,r=(0,l.useGetAriaLabelOfAction)("Configure").getAriaLabel;return n().createElement(f.Link,{"aria-label":r(),to:(0,y.SI)(t),onClick:function(){return o(!1)}},e("Configure"))};function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var o=0,r=Array(t);o<t;o++)r[o]=e[o];return r}function x(e){var t,o,i,c=e.component,s=e.children,u=function(e,t){if(null==e)return{};var o,r,n=function(e,t){if(null==e)return{};var o,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)o=i[r],t.indexOf(o)>=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)o=i[r],!(t.indexOf(o)>=0)&&Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}(e,["component","children"]),p=(t=(0,r.useState)(!1),function(e){if(Array.isArray(e))return e}(t)||function(e,t){var o,r,n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var i=[],c=!0,a=!1;try{for(n=n.call(e);!(c=(o=n.next()).done)&&(i.push(o.value),i.length!==t);c=!0);}catch(e){a=!0,r=e}finally{try{c||null==n.return||n.return()}finally{if(a)throw r}}return i}}(t,2)||function(e,t){if(e){if("string"==typeof e)return v(e,2);var o=Object.prototype.toString.call(e).slice(8,-1);if("Object"===o&&e.constructor&&(o=e.constructor.name),"Map"===o||"Set"===o)return Array.from(o);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return v(e,t)}}(t,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),m=p[0],d=p[1],f=(0,a.useFieldSchema)();return n().createElement(l.ActionContextProvider,{value:{visible:m,setVisible:d,fieldSchema:f}},n().createElement(void 0===c?"div":c,(o=function(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{},r=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(o).filter(function(e){return Object.getOwnPropertyDescriptor(o,e).enumerable}))),r.forEach(function(t){var r;r=o[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},u),i=i={onClick:function(){d(!0)}},Object.getOwnPropertyDescriptors?Object.defineProperties(o,Object.getOwnPropertyDescriptors(i)):(function(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);o.push.apply(o,r)}return o})(Object(i)).forEach(function(e){Object.defineProperty(o,e,Object.getOwnPropertyDescriptor(i,e))}),o),s),n().createElement(l.SchemaComponent,{schema:f,onlyRenderProperties:!0}))}var g=o(8551),h=o(1685),O=o(1682),A=o(8833),w=o(4665),C={title:{"x-component":"CollectionField","x-decorator":"FormItem"},type:{"x-decorator":"FormItem",title:'{{t("Trigger type", { ns: "'.concat(g.A7,'" })}}'),"x-component":"Select","x-component-props":{optionRender:"{{TriggerOptionRender}}",popupMatchSelectWidth:!0,listHeight:300},enum:"{{useTriggersOptions()}}",required:!0},sync:{type:"boolean",title:'{{ t("Execute mode", { ns: "'.concat(g.A7,'" }) }}'),description:'{{ t("Execute workflow asynchronously or synchronously based on trigger type, and could not be changed after created.", { ns: "'.concat(g.A7,'" }) }}'),"x-decorator":"FormItem","x-component":"SyncOptionSelect","x-component-props":{options:[{label:'{{ t("Asynchronously", { ns: "'.concat(g.A7,'" }) }}'),value:!1,tooltip:'{{ t("Will be executed in the background as a queued task.", { ns: "'.concat(g.A7,'" }) }}')},{label:'{{ t("Synchronously", { ns: "'.concat(g.A7,'" }) }}'),value:!0,tooltip:'{{ t("For user actions that require immediate feedback. Can not use asynchronous nodes in such mode, and it is not recommended to perform time-consuming operations under synchronous mode.", { ns: "'.concat(g.A7,'" }) }}')}]}},enabled:{"x-component":"CollectionField","x-decorator":"FormItem"},description:{"x-component":"CollectionField","x-decorator":"FormItem"},categories:{type:"array",title:'{{ t("Category", { ns: "'.concat(g.A7,'" }) }}'),"x-decorator":"FormItem","x-component":"CollectionField","x-collection-field":"workflows.categories"},options:{type:"object","x-component":"fieldset",properties:{deleteExecutionOnStatus:{type:"array",title:'{{ t("Auto delete history when execution is on end status", { ns: "'.concat(g.A7,'" }) }}'),"x-decorator":"FormItem","x-component":"Select","x-component-props":{multiple:!0,optionRender:w.uL,tagRender:w.qo},enum:O.C6.filter(function(e){return!!e.value})},stackLimit:{type:"number",title:'{{ t("Maximum number of cycling triggers", { ns: "'.concat(g.A7,'" }) }}'),description:'{{ t("The triggers of same workflow by some node (create, update and sub-flow etc.) more than this number will be ignored. Large number may cause performance issues. Please use with caution.", { ns: "'.concat(g.A7,'" }) }}'),"x-decorator":"FormItem",default:1,"x-component":"InputNumber","x-component-props":{min:1,precision:0,className:"auto-width"}}}}},S={name:"workflow",type:"void",properties:{provider:{type:"void","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:A.Z,resourceName:"workflows",request:{resource:"workflows",action:"list",params:{filter:{current:!0},sort:["-createdAt"],except:["config"]}}},"x-component":"CategoryTabs",properties:{main:{type:"void","x-component":"CardItem",properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:16}},properties:{filter:{type:"void",title:'{{ t("Filter") }}',default:{$and:[{title:{$includes:""}}]},"x-action":"filter","x-component":"Filter.Action","x-use-component-props":"useWorkflowFilterActionProps","x-component-props":{icon:"FilterOutlined",nonfilterable:["description","categories"]},"x-align":"left"},refresher:{type:"void",title:'{{ t("Refresh") }}',"x-component":"Action","x-use-component-props":"useRefreshActionProps","x-component-props":{icon:"ReloadOutlined"}},sync:{type:"void",title:'{{t("Sync", { ns: "'.concat(g.A7,'" })}}'),"x-decorator":"Tooltip","x-decorator-props":{title:'{{ t("Sync enabled status of all workflows from database", { ns: "'.concat(g.A7,'" }) }}')},"x-component":"Action","x-component-props":{icon:"SyncOutlined",useAction:"{{ useSyncAction }}"},"x-reactions":["{{useWorkflowSyncReaction}}"]},delete:{type:"void",title:'{{t("Delete")}}',"x-component":"Action","x-component-props":{icon:"DeleteOutlined",useAction:"{{ cm.useBulkDestroyAction }}",confirm:{title:"{{t('Delete record')}}",content:"{{t('Are you sure you want to delete it?')}}"}}},create:{type:"void",title:'{{t("Add new")}}',"x-component":"Action","x-component-props":{type:"primary",icon:"PlusOutlined"},properties:{drawer:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{initialValue:{current:!0}},title:'{{t("Add new")}}',properties:{title:C.title,type:C.type,sync:C.sync,categories:C.categories,description:C.description,options:C.options,footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{cancel:{title:'{{ t("Cancel") }}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},submit:{title:'{{ t("Submit") }}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ cm.useCreateAction }}"}}}}}}}}}},table:{type:"array","x-component":"Table.Void","x-component-props":{rowKey:"id",rowSelection:{type:"checkbox"},useDataSource:"{{cm.useDataSourceFromRAC }}"},properties:{title:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",title:'{{ t("Title") }}',properties:{title:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},categories:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",title:'{{ t("Category", { ns: "'.concat(g.A7,'" }) }}'),properties:{categories:{type:"array","x-component":"EnumerationField","x-component-props":{multiple:!0,fieldNames:{label:"title",value:"id",color:"color"}}}}},type:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",title:'{{ t("Trigger type", { ns: "'.concat(g.A7,'" }) }}'),properties:{type:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},sync:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",title:'{{ t("Execute mode", { ns: "'.concat(g.A7,'" }) }}'),properties:{sync:{type:"boolean","x-component":"CollectionField","x-read-pretty":!0}}},enabled:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",title:'{{ t("Status", { ns: "'.concat(g.A7,'" }) }}'),properties:{enabled:{type:"boolean","x-component":"CollectionField","x-read-pretty":!0,default:!1}}},"stats.executed":{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",title:'{{ t("Executed", { ns: "'.concat(g.A7,'" }) }}'),properties:{"stats.executed":{type:"number","x-decorator":"OpenDrawer","x-decorator-props":{component:function(e){var t=(0,l.useCollectionRecordData)();return n().createElement("a",function(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{},r=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(o).filter(function(e){return Object.getOwnPropertyDescriptor(o,e).enumerable}))),r.forEach(function(t){var r;r=o[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({"aria-label":"executed-".concat(t.title)},e))}},"x-component":"InputNumber","x-read-pretty":!0,properties:{drawer:h.V}}}},actions:{type:"void",title:'{{ t("Actions") }}',"x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{actions:{type:"void","x-component":"Space","x-component-props":{split:"|"},properties:{configure:{type:"void","x-component":"WorkflowLink"},update:{type:"void",title:'{{ t("Edit") }}',"x-component":"Action.Link","x-component-props":{type:"primary"},properties:{drawer:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{useValues:"{{ cm.useValuesFromRecord }}"},title:'{{ t("Edit") }}',properties:{title:C.title,enabled:C.enabled,sync:C.sync,categories:C.categories,description:C.description,options:C.options,footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{cancel:{title:'{{ t("Cancel") }}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},submit:{title:'{{ t("Submit") }}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ cm.useUpdateAction }}"}}}}}}}},revision:{type:"void",title:'{{t("Duplicate", { ns: "'.concat(g.A7,'" })}}'),"x-component":"Action.Link","x-component-props":{openSize:"small"},properties:{modal:{type:"void",title:'{{t("Duplicate to new workflow", { ns: "'.concat(g.A7,'" })}}'),"x-decorator":"FormV2","x-component":"Action.Modal",properties:{title:{type:"string",title:'{{t("Title")}}',"x-decorator":"FormItem","x-component":"Input"},footer:{type:"void","x-component":"Action.Modal.Footer",properties:{submit:{type:"void",title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ useRevisionAction }}"}},cancel:{type:"void",title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}}}}}}}},delete:{type:"void",title:'{{ t("Delete") }}',"x-component":"Action.Link","x-component-props":{confirm:{title:"{{t('Delete record')}}",content:"{{t('Are you sure you want to delete it?')}}"},useAction:"{{ cm.useDestroyActionAndRefreshCM }}"}}}}}}}}}}}}}},P=o(8956),E=o(5588),j=o(1600);function k(e){var t=e.data,o=t.label,r=t.color,c=t.options,a=(0,l.useCompile)();return n().createElement(i.Space,{direction:"vertical"},n().createElement(i.Tag,{color:r},a(o)),n().createElement(i.Typography.Text,{type:"secondary",style:{whiteSpace:"normal"}},a(c.description)))}var F=o(482),D=o(2948),T=o(8875),R=o(467);function I(e,t){(null==t||t>e.length)&&(t=e.length);for(var o=0,r=Array(t);o<t;o++)r[o]=e[o];return r}function V(e,t,o,r,n,i,c){try{var a=e[i](c),l=a.value}catch(e){o(e);return}a.done?t(l):Promise.resolve(l).then(r,n)}function M(e){return function(){var t=this,o=arguments;return new Promise(function(r,n){var i=e.apply(t,o);function c(e){V(i,r,n,c,a,"next",e)}function a(e){V(i,r,n,c,a,"throw",e)}c(void 0)})}}function q(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{},r=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(o).filter(function(e){return Object.getOwnPropertyDescriptor(o,e).enumerable}))),r.forEach(function(t){var r;r=o[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function L(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);o.push.apply(o,r)}return o})(Object(t)).forEach(function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(t,o))}),e}function N(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var o,r,n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var i=[],c=!0,a=!1;try{for(n=n.call(e);!(c=(o=n.next()).done)&&(i.push(o.value),!t||i.length!==t);c=!0);}catch(e){a=!0,r=e}finally{try{c||null==n.return||n.return()}finally{if(a)throw r}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return I(e,t);var o=Object.prototype.toString.call(e).slice(8,-1);if("Object"===o&&e.constructor&&(o=e.constructor.name),"Map"===o||"Set"===o)return Array.from(o);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return I(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 W(e,t){var o,r,n,i,c={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(i){return function(a){var l=[i,a];if(o)throw TypeError("Generator is already executing.");for(;c;)try{if(o=1,r&&(n=2&l[0]?r.return:l[0]?r.throw||((n=r.return)&&n.call(r),0):r.next)&&!(n=n.call(r,l[1])).done)return n;switch(r=0,n&&(l=[2&l[0],n.value]),l[0]){case 0:case 1:n=l;break;case 4:return c.label++,{value:l[1],done:!1};case 5:c.label++,r=l[1],l=[0];continue;case 7:l=c.ops.pop(),c.trys.pop();continue;default:if(!(n=(n=c.trys).length>0&&n[n.length-1])&&(6===l[0]||2===l[0])){c=0;continue}if(3===l[0]&&(!n||l[1]>n[0]&&l[1]<n[3])){c.label=l[1];break}if(6===l[0]&&c.label<n[1]){c.label=n[1],n=l;break}if(n&&c.label<n[2]){c.label=n[2],c.ops.push(l);break}n[2]&&c.ops.pop(),c.trys.pop();continue}l=t.call(e,c)}catch(e){l=[6,e],r=0}finally{o=n=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}function B(){var e,t,o=(e=["\n .ant-tabs-nav-list > :first-child {\n border: none;\n }\n "],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return B=function(){return o},o}function _(e){var t=(0,D.useDraggable)({id:e.id,data:e.data}),o=t.attributes,r=t.listeners,i=t.setNodeRef;return n().createElement("div",q({ref:i},r,o),n().createElement("div",null,e.children))}function z(e){var t=(0,D.useDroppable)({id:e.id,data:e.data}),o=t.isOver,r=t.setNodeRef;return n().createElement("div",{ref:r,style:o?{color:"green"}:void 0},e.children)}var K=(0,a.observer)(function(e){var t=e.item;return n().createElement(z,{id:t.id.toString(),data:t},n().createElement("div",null,n().createElement(_,{id:t.id.toString(),data:t},n().createElement($,{item:t}))))},{displayName:"TabTitle"}),$=function(e){var t=e.item,o=(0,d.useTranslation)().t,r=(0,l.useCompile)();return n().createElement(i.Space,null,n().createElement(i.Badge,{color:t.color}),o(r(t.title)))},G=(0,a.observer)(function(e){var t,o=N((0,r.useState)(null),2),i=o[0],c=o[1],a=(0,r.useContext)(U).refresh,s=(0,l.useAPIClient)(),u=(t=M(function(e){var t,o;return W(this,function(r){switch(r.label){case 0:if(t=e.active,o=e.over,setTimeout(function(){c(null)}),!(o&&o.id!==t.id))return[3,2];return[4,s.resource("workflowCategories").move({sourceId:t.id,targetId:o.id})];case 1:r.sent(),a(),r.label=2;case 2:return[2]}})}),function(e){return t.apply(this,arguments)}),p=(0,D.useSensor)(D.MouseSensor,{activationConstraint:{distance:10}}),m=(0,D.useSensors)(p);return n().createElement(D.DndContext,{sensors:m,onDragEnd:u,onDragStart:function(e){var t;c(null==(t=e.active)?void 0:t.data.current)}},e.children,n().createElement(D.DragOverlay,null,i?n().createElement("span",{style:{whiteSpace:"nowrap"}},n().createElement($,{item:i})):null))},{displayName:"DndProvider"}),U=(0,r.createContext)({});function Q(e){var t=e.values,o=e.onEdit,c=e.onRemove,a=(0,l.useCompile)(),s=(0,r.useCallback)(function(e){switch(e.key){case"edit":o(t);break;case"delete":c(t.id)}},[o,c,t]);return n().createElement(i.Dropdown,{menu:{items:[{key:"edit",label:(0,g.KQ)("Edit category")},{key:"delete",label:(0,g.KQ)("Delete category")}],onClick:s}},n().createElement(F.MenuOutlined,{role:"button","aria-label":a(t.title),style:{padding:8,margin:"-8px"}}))}function H(){var e,t=(0,l.useResourceActionContext)(),o=t.run,s=t.setState,u=t.defaultRequest,p=N((0,r.useState)({tab:"all"}),2),m=p[0],d=p[1],f=N((0,r.useState)(m.tab),2),y=f[0],b=f[1],v=(0,l.useCompile)(),x=(0,l.useAPIClient)(),h=(0,a.useFieldSchema)(),O=i.App.useApp().modal,A=(0,l.useRequest)({resource:"workflowCategories",action:"list",params:{paginate:!1,sort:["sort"]}}),w=A.data,C=A.refresh,S=N((0,r.useState)(!1),2),P=S[0],E=S[1],j=(0,r.useMemo)(function(){return(0,c.createForm)()},[]),k=(0,r.useCallback)(function(e){E(!0);var t=(0,R.cloneDeep)(e);j.setValues(t)},[j]),F=(0,r.useCallback)(function(){E(!1),j.reset()},[j]),D=(0,r.useCallback)(function(e){O.confirm({title:v("{{t('Delete category')}}"),content:v("{{t('Are you sure you want to delete it?')}}"),onOk:M(function(){return W(this,function(t){switch(t.label){case 0:return[4,x.resource("workflowCategories").destroy({filter:{id:e}})];case 1:return t.sent(),e===+m.tab&&d({tab:"all"}),C(),o(),[2]}})})})},[m.tab]),I=(0,r.useMemo)(function(){if(!(null==w?void 0:w.data))return[];var e=w.data.sort(function(e,t){return e.sort-t.sort}).concat().map(function(e){return L(q({},e),{schema:h.properties.main})});return e.find(function(e){return"all"===e.id})||e.unshift({title:'{{t("All", { ns: "'.concat(g.A7,'" })}}'),id:"all",sort:0,closable:!1,schema:h.properties.main}),e.map(function(e){return{label:"all"!==e.id?n().createElement("div",{"data-no-dnd":"true"},n().createElement(K,{item:e})):v(e.title),key:String(e.id),closable:e.closable,closeIcon:n().createElement(Q,{values:e,onEdit:k,onRemove:D}),children:n().createElement(i.Card,{variant:"borderless",style:{borderRadius:"0 0.5em 0.5em 0.5em"}},n().createElement(a.RecursionField,{name:y,schema:e.schema,onlyRenderProperties:!0}))}})},[v,null==w?void 0:w.data,y,k,D,h.properties.main]),V=(0,r.useCallback)(function(e){if(d({tab:e}),b((0,T.uid)()),"all"!==e){var t,r={$and:[null==u||null==(t=u.params)?void 0:t.filter,{"categories.id":e}]};o({filter:r}),null==s||s({categories:[+e],params:[{filter:r}]})}else o(),null==s||s({categories:[],params:[]})},[null==u||null==(e=u.params)?void 0:e.filter,o,s]);return((0,r.useEffect)(function(){"all"!==m.tab&&V(m.tab)},[m.tab,V]),w)?n().createElement(U.Provider,{value:{refresh:C}},n().createElement(G,null,n().createElement(i.Tabs,{addIcon:n().createElement(l.SchemaComponent,{components:{AddCategory:Y},schema:{type:"void",properties:{addCategories:{type:"void",title:'{{ t("Add category", { ns: "'.concat(g.A7,'" }) }}'),"x-component":"AddCategory","x-component-props":{type:"primary"}}}}}),onChange:V,defaultActiveKey:m.tab||"all",type:"editable-card",destroyInactiveTabPane:!0,tabBarStyle:{marginBottom:"0px"},className:(0,l.css)(B()),items:I})),n().createElement(l.ActionContextProvider,{value:{visible:P,setVisible:F,openSize:"small"}},n().createElement(l.SchemaComponent,{scope:{useFormProviderProps:Z,useCancelAction:l.useCancelAction,useEditSubmit:X},schema:{name:(0,T.uid)(),type:"void","x-decorator":"FormV2","x-decorator-props":{form:j},title:'{{ t("Edit category", { ns: "'.concat(g.A7,'" }) }}'),"x-component":"Action.Modal","x-component-props":{delay:0},properties:{title:{type:"string",title:'{{t("Title")}}',required:!0,"x-decorator":"FormItem","x-component":"Input"},color:{type:"string",title:'{{t("Color")}}',required:!1,"x-decorator":"FormItem","x-component":"ColorSelect"},footer:{type:"void","x-component":"Action.Modal.Footer",properties:{cancel:{title:'{{ t("Cancel") }}',"x-component":"Action","x-component-props":{useAction:"{{ useCancelAction }}"}},submit:{title:'{{ t("Submit") }}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ useEditSubmit }}",style:{marginLeft:"8px"}}}}}}}}))):null}function X(){var e=(0,a.useForm)(),t=(0,l.useActionContext)(),o=(0,l.useResourceActionContext)(),n=(0,r.useContext)(U).refresh,i=(0,l.useAPIClient)();return{run:function(){return M(function(){var r;return W(this,function(c){switch(c.label){case 0:return[4,e.submit()];case 1:return c.sent(),[4,i.resource("workflowCategories").update({filterByTk:null==(r=e.values)?void 0:r.id,values:e.values})];case 2:return c.sent(),t.setVisible(!1),[4,e.reset()];case 3:return c.sent(),null==n||n(),null==o||o.refresh(),[2]}})})()}}}function Z(){return{form:(0,a.useForm)()}}function J(){var e=(0,a.useForm)(),t=(0,l.useActionContext)().setVisible,o=(0,r.useContext)(U).refresh,n=(0,l.useAPIClient)();return{run:function(){return M(function(){var r;return W(this,function(i){switch(i.label){case 0:return[4,e.submit()];case 1:return i.sent(),r=(0,R.cloneDeep)(e.values),[4,n.resource("workflowCategories").create({values:r})];case 2:return i.sent(),t(!1),e.reset(),o(),[2]}})})()}}}function Y(e){var t=N((0,r.useState)(!1),2),o=t[0],i=t[1],a=(0,d.useTranslation)().t,s=(0,r.useMemo)(function(){return(0,c.createForm)()},[]);return n().createElement(l.ActionContextProvider,{value:{visible:o,setVisible:i,openSize:"small"}},n().createElement("div",{onClick:function(){return i(!0)},title:a("Add category")},n().createElement(F.PlusOutlined,null)),n().createElement(l.SchemaComponent,{schema:{name:"modal",type:"void","x-decorator":"FormV2","x-decorator-props":{form:s},title:'{{ t("Add category") }}',"x-component":"Action.Modal","x-component-props":L(q({},e),{delay:0}),properties:{title:{type:"string",title:'{{t("Title")}}',required:!0,"x-decorator":"FormItem","x-component":"Input"},color:{type:"string",title:'{{t("Color")}}',required:!1,"x-decorator":"FormItem","x-component":"ColorSelect"},footer:{type:"void","x-component":"Action.Modal.Footer",properties:{cancel:{title:'{{ t("Cancel") }}',"x-component":"Action","x-component-props":{useAction:"{{ useCancelAction }}"}},submit:{title:'{{ t("Submit") }}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ useCreateSubmit }}",style:{marginLeft:"8px"}}}}}}},scope:{useCancelAction:l.useCancelAction,useCreateSubmit:J}}))}function ee(e){var t=e.value,o=e.multiple,r=e.fieldNames,c=void 0===r?l.defaultFieldNames:r,a=(0,l.useCompile)();return(o?null!=t?t:[]:t?[t]:[]).map(function(e){return n().createElement(i.Tag,{key:e[c.value],color:e[c.color]},a(e[c.label]))})}var et=function(){var e,t,o=(0,l.useResourceContext)().collection,r=(0,l.useFilterFieldOptions)(o.fields),n=(0,l.useResourceActionContext)();return(0,l.useFilterFieldProps)({options:r,params:(null==(t=n.state)||null==(e=t.params)?void 0:e[0])||n.params,service:n})};function eo(e,t,o,r,n,i,c){try{var a=e[i](c),l=a.value}catch(e){o(e);return}a.done?t(l):Promise.resolve(l).then(r,n)}function er(e){return function(){var t=this,o=arguments;return new Promise(function(r,n){var i=e.apply(t,o);function c(e){eo(i,r,n,c,a,"next",e)}function a(e){eo(i,r,n,c,a,"throw",e)}c(void 0)})}}function en(e,t){var o,r,n,i,c={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(i){return function(a){var l=[i,a];if(o)throw TypeError("Generator is already executing.");for(;c;)try{if(o=1,r&&(n=2&l[0]?r.return:l[0]?r.throw||((n=r.return)&&n.call(r),0):r.next)&&!(n=n.call(r,l[1])).done)return n;switch(r=0,n&&(l=[2&l[0],n.value]),l[0]){case 0:case 1:n=l;break;case 4:return c.label++,{value:l[1],done:!1};case 5:c.label++,r=l[1],l=[0];continue;case 7:l=c.ops.pop(),c.trys.pop();continue;default:if(!(n=(n=c.trys).length>0&&n[n.length-1])&&(6===l[0]||2===l[0])){c=0;continue}if(3===l[0]&&(!n||l[1]>n[0]&&l[1]<n[3])){c.label=l[1];break}if(6===l[0]&&c.label<n[1]){c.label=n[1],n=l;break}if(n&&c.label<n[2]){c.label=n[2],c.ops.push(l);break}n[2]&&c.ops.pop(),c.trys.pop();continue}l=t.call(e,c)}catch(e){l=[6,e],r=0}finally{o=n=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}function ei(e){var t=(0,a.useField)(),o=(0,l.useRecord)(),i=(0,l.usePlugin)(P.default);return(0,a.useFormEffects)(function(e){(0,c.onFieldChange)("type",function(e){var r=o.id||!e.value;if(e.value){var n=i.triggers.get(e.value);null!=n.sync?(r=!0,t.setValue(n.sync)):t.setInitialValue(!1)}t.setPattern(r?"disabled":"editable")})}),(0,r.useEffect)(function(){if(o.id){t.setPattern("disabled");var r,n=i.triggers.get(o.type);null!=n.sync?t.setValue(n.sync):t.setInitialValue(null!=(r=e.value)&&r)}},[o.id,t,i.triggers,o.type,e.value]),n().createElement(E.W5,e)}function ec(e){var t=(0,l.useApp)();e.visible=!!((0,l.usePlugin)("multi-app-share-collection")||"main"!==t.name)}function ea(){var e=i.App.useApp().message,t=(0,d.useTranslation)().t,o=(0,l.useResourceContext)().resource;return{run:function(){return er(function(){return en(this,function(r){switch(r.label){case 0:return[4,o.sync()];case 1:return r.sent(),e.success(t("Operation succeeded")),[2]}})})()}}}function el(){var e=i.App.useApp().message,t=(0,d.useTranslation)().t,o=(0,l.useResourceActionContext)().refresh,r=(0,l.useResourceContext)(),n=r.resource,c=r.targetKey,s=(0,l.useActionContext)().setVisible,u=(0,l.useRecord)()[c],p=(0,a.useForm)(),m=(0,a.useField)();return{run:function(){return er(function(){return en(this,function(r){switch(r.label){case 0:return r.trys.push([0,3,4,5]),[4,p.submit()];case 1:return r.sent(),m.data=m.data||{},m.data.loading=!0,[4,n.revision({filterByTk:u,values:p.values})];case 2:return r.sent(),e.success(t("Operation succeeded")),o(),s(!1),[3,5];case 3:return console.error(r.sent()),[3,5];case 4:return m.data&&(m.data.loading=!1),[7];case 5:return[2]}})})()}}}function es(){var e,t,o=(0,r.useContext)(l.SchemaComponentContext),c=(0,l.usePlugin)(P.default).useTriggersOptions;return n().createElement(l.SchemaComponentContext.Provider,{value:(e=function(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{},r=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(o).filter(function(e){return Object.getOwnPropertyDescriptor(o,e).enumerable}))),r.forEach(function(t){var r;r=o[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},o),t=t={designable:!1},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);o.push.apply(o,r)}return o})(Object(t)).forEach(function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(t,o))}),e)},n().createElement(l.SchemaComponent,{schema:S,components:{CollectionProvider:l.CollectionProvider,WorkflowLink:b,ExecutionResourceProvider:m,ExecutionLink:s.a,OpenDrawer:x,SyncOptionSelect:ei,ExecutionStatusColumn:w.rV,Tooltip:i.Tooltip,CategoryTabs:H,EnumerationField:ee},scope:{useTriggersOptions:c,useWorkflowSyncReaction:ec,useSyncAction:ea,useWorkflowFilterActionProps:et,useRefreshActionProps:j.X,useRevisionAction:el,TriggerOptionRender:k,ExecutionStatusOptions:O.C6}}))}}}]);
@@ -0,0 +1,10 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+
10
+ "use strict";(self.webpackChunk_nocobase_plugin_workflow=self.webpackChunk_nocobase_plugin_workflow||[]).push([["771"],{144:function(e,t,n){n.d(t,{g:function(){return x}});var r=n(2721),o=n(8156),l=n.n(o);let a=(0,o.createContext)(null),i={didCatch:!1,error:null};class c extends o.Component{constructor(e){super(e),this.resetErrorBoundary=this.resetErrorBoundary.bind(this),this.state=i}static getDerivedStateFromError(e){return{didCatch:!0,error:e}}resetErrorBoundary(){let{error:e}=this.state;if(null!==e){for(var t,n,r=arguments.length,o=Array(r),l=0;l<r;l++)o[l]=arguments[l];null==(t=(n=this.props).onReset)||t.call(n,{args:o,reason:"imperative-api"}),this.setState(i)}}componentDidCatch(e,t){var n,r;null==(n=(r=this.props).onError)||n.call(r,e,t)}componentDidUpdate(e,t){let{didCatch:n}=this.state,{resetKeys:r}=this.props;if(n&&null!==t.error&&function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return e.length!==t.length||e.some((e,n)=>!Object.is(e,t[n]))}(e.resetKeys,r)){var o,l;null==(o=(l=this.props).onReset)||o.call(l,{next:r,prev:e.resetKeys,reason:"keys"}),this.setState(i)}}render(){let{children:e,fallbackRender:t,FallbackComponent:n,fallback:r}=this.props,{didCatch:l,error:i}=this.state,c=e;if(l){let e={error:i,resetErrorBoundary:this.resetErrorBoundary};if((0,o.isValidElement)(r))c=r;else if("function"==typeof t)c=t(e);else if(n)c=(0,o.createElement)(n,e);else throw i}return(0,o.createElement)(a.Provider,{value:{didCatch:l,error:i,resetErrorBoundary:this.resetErrorBoundary}},c)}}var s=n(482),u=n(3772),d=n(8956),m=n(2415),f=n(7058),p=n(8551),y=n(5329),v=n(4477),b=n(8562);function E(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function h(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function w(){var e=h(["\n margin-top: 0 !important;\n "]);return w=function(){return e},e}function g(){var e=h(["\n margin-bottom: 1em;\n "]);return g=function(){return e},e}function k(){var e=h(["\n margin-top: 0 !important;\n "]);return k=function(){return e},e}function x(e){var t,n,o=e.entry,a=(0,y.Z)().styles,i=(0,b.RY)(),h=(0,f.H)(),x=(0,u.useCompile)(),C=(0,u.usePlugin)(d.default),O=(t=l().useState(100),function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n,r,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var l=[],a=!0,i=!1;try{for(o=o.call(e);!(a=(n=o.next()).done)&&(l.push(n.value),l.length!==t);a=!0);}catch(e){i=!0,r=e}finally{try{a||null==o.return||o.return()}finally{if(i)throw r}}return l}}(t,2)||function(e,t){if(e){if("string"==typeof e)return E(e,2);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return E(e,t)}}(t,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),S=O[0],j=O[1],A=null==h?void 0:h.clipboard,P=A?C.instructions.get(A.type):null,N=A?P?x(P.title):A.type:"";return l().createElement("div",{className:"workflow-canvas-wrapper"},l().createElement(c,{FallbackComponent:u.ErrorFallback,onError:console.error},l().createElement("div",{className:"workflow-canvas",style:{zoom:S/100}},l().createElement("div",{className:(0,u.cx)(a.branchBlockClass,(0,u.css)(w()))},l().createElement("div",{className:a.branchClass},i?l().createElement(r.Alert,{type:"warning",message:(0,p.KQ)("Executed workflow cannot be modified. Could be copied to a new version to modify."),showIcon:!0,className:(0,u.css)(g())}):null,l().createElement(v.Gk,null),l().createElement("div",{className:(0,u.cx)(a.branchBlockClass,(0,u.css)(k()))},l().createElement(m.I0,{entry:o})),l().createElement("div",{className:a.terminalClass},(0,p.KQ)("End")))))),A?l().createElement("div",{className:a.clipboardPreviewClass},l().createElement("div",{className:"workflow-clipboard-header"},l().createElement("span",null,(0,p.KQ)("Copied node")),l().createElement(r.Button,{type:"text",size:"small",icon:l().createElement(s.CloseOutlined,null),onClick:function(){var e;return null==h||null==(e=h.clearClipboard)?void 0:e.call(h)}})),l().createElement("div",{className:"workflow-clipboard-card"},l().createElement("div",{className:"workflow-clipboard-type"},N),l().createElement("div",{className:"workflow-clipboard-title"},null!=(n=A.title)?n:A.type))):null,l().createElement("div",{className:"workflow-canvas-zoomer"},l().createElement(r.Slider,{vertical:!0,reverse:!0,defaultValue:100,step:10,min:10,value:S,onChange:j})))}},2378:function(e,t,n){n.r(t),n.d(t,{ExecutionPage:function(){return P}});var r=n(3772),o=n(8156),l=n.n(o),a=n(6128),i=n(2721),c=n(7584),s=n(482),u=n(3238),d=n(8956),m=n(144),f=n(118),p=n(1682),y=n(8398),v=n(8551),b=n(5329),E=n(9315),h=n(467);function w(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function g(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function k(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var l=[],a=!0,i=!1;try{for(o=o.call(e);!(a=(n=o.next()).done)&&(l.push(n.value),!t||l.length!==t);a=!0);}catch(e){i=!0,r=e}finally{try{a||null==o.return||o.return()}finally{if(i)throw r}}return l}}(e,t)||C(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 x(e){return function(e){if(Array.isArray(e))return w(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||C(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function C(e,t){if(e){if("string"==typeof e)return w(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return w(e,t)}}function O(e){var t,n,o=(0,y.G2)().viewJob,a=(0,r.useRequest)({resource:"jobs",action:"get",params:{filterByTk:o.id}}),c=a.data;if(a.loading)return l().createElement(i.Spin,null);var s=(0,h.get)(c,"data.result");return l().createElement(r.Input.JSON,(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){g(e,t,n[t])})}return e}({},e),n=n={value:s,disabled:!0},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}function S(){var e=(0,r.usePlugin)(d.default).instructions,t=(0,r.useCompile)(),n=(0,y.G2)(),o=n.viewJob,a=n.setViewJob,c=(0,b.Z)().styles,s=(null!=o?o:{}).node,u=void 0===s?{}:s,m=e.get(u.type);return l().createElement(r.ActionContextProvider,{value:{visible:!!o,setVisible:a}},l().createElement(r.SchemaComponent,{components:{JobResult:O},schema:{type:"void",properties:g({},"".concat(null==o?void 0:o.id,"-").concat(null==o?void 0:o.updatedAt,"-modal"),{type:"void","x-decorator":"Form","x-decorator-props":{initialValue:o},"x-component":"Action.Modal",title:l().createElement("div",{className:c.nodeTitleClass},l().createElement(i.Tag,null,t(null==m?void 0:m.title)),l().createElement("strong",null,u.title),l().createElement("span",{className:"workflow-node-id"},"#",u.id)),properties:{status:{type:"number",title:'{{t("Status", { ns: "'.concat(v.A7,'" })}}'),"x-decorator":"FormItem","x-component":"Select",enum:p.Vh,"x-read-pretty":!0},updatedAt:{type:"string",title:'{{t("Executed at", { ns: "'.concat(v.A7,'" })}}'),"x-decorator":"FormItem","x-component":"DatePicker","x-component-props":{showTime:!0},"x-read-pretty":!0},result:{type:"object",title:'{{t("Node result", { ns: "'.concat(v.A7,'" })}}'),"x-decorator":"FormItem","x-component":"JobResult","x-component-props":{className:c.nodeJobResultClass,autoSize:{minRows:4,maxRows:32}}}}})}}))}function j(e){var t=(0,y.G2)().execution,n=(0,r.useAPIClient)(),u=(0,a.useNavigate)(),d=(0,b.Z)().styles,m=(0,r.useResourceActionContext)().refresh,v=k((0,o.useState)([]),2),h=v[0],w=v[1],g=k((0,o.useState)([]),2),C=g[0],O=g[1],S=k((0,o.useState)(null),2),j=S[0],A=S[1],P=k((0,o.useState)(null),2),N=P[0],I=P[1],D=k((0,o.useState)(null),2),R=D[0],B=D[1],T=(0,o.useCallback)(function(e){t&&e&&(j!==t.id&&n.resource("executions").list({filter:{key:t.key,id:{$lt:t.id}},sort:"-id",pageSize:10,fields:["id","status","createdAt"]}).then(function(e){var n=e.data;A(t.id),w(n.data)}).catch(function(){}),(N!==t.id||R&&Date.now()-Number(R)>6e4&&C.length<10)&&n.resource("executions").list({filter:{key:t.key,id:{$gt:t.id}},sort:"id",pageSize:10,fields:["id","status","createdAt"]}).then(function(e){var n=e.data;I(t.id),B(Date.now()),O(n.data.reverse())}).catch(function(){}))},[t,j,N,R,C.length,n]),K=(0,o.useCallback)(function(e){var n=e.key;n!=t.id&&u((0,E.s_)(n))},[t.id,u]);return t?l().createElement(i.Space,null,l().createElement(i.Dropdown,{onOpenChange:T,menu:{onClick:K,defaultSelectedKeys:["".concat(t.id)],className:(0,r.cx)(d.dropdownClass,d.executionsDropdownRowClass),items:x(C).concat([t],x(h)).map(function(e){return{key:e.id,label:l().createElement(l().Fragment,null,l().createElement("span",{className:"id"},"#".concat(e.id)),l().createElement("time",null,(0,c.str2moment)(e.createdAt).format("YYYY-MM-DD HH:mm:ss"))),icon:l().createElement("span",null,l().createElement(f.Y,{statusMap:p.uy,status:e.status}))}})}},l().createElement(i.Space,null,l().createElement("strong",null,"#".concat(t.id)),l().createElement(s.DownOutlined,null))),l().createElement(i.Button,{type:"link",size:"small",icon:l().createElement(s.ReloadOutlined,null),onClick:m})):null}function A(){var e,t=(0,u.useTranslation)().t,n=(0,r.useCompile)(),d=(0,r.useResourceActionContext)(),f=d.data,b=d.loading,h=d.refresh,w=(0,r.useDocumentTitle)().setTitle,g=k((0,o.useState)(null),2),x=g[0],C=g[1],O=(0,r.useApp)(),A=(0,r.useAPIClient)();(0,o.useEffect)(function(){var e,t=(null!=(e=null==f?void 0:f.data)?e:{}).workflow;null==w||w("".concat((null==t?void 0:t.title)?"".concat(t.title," - "):"").concat((0,v.KQ)("Execution history")))},[null==f?void 0:f.data,w]);var P=(0,o.useCallback)(function(){i.Modal.confirm({title:(0,v.KQ)("Cancel the execution"),icon:l().createElement(s.ExclamationCircleFilled,null),content:(0,v.KQ)("Are you sure you want to cancel the execution?"),onOk:function(){A.resource("executions").cancel({filterByTk:null==f?void 0:f.data.id}).then(function(){i.message.success(t("Operation succeeded")),h()}).catch(function(e){console.error(e.data.error)})}})},[null==f?void 0:f.data]),N=(0,o.useCallback)(function(){history.back()},[]);if(!(null==f?void 0:f.data))return b?l().createElement(i.Spin,null):l().createElement(i.Result,{status:"404",title:"Not found"});var I=null!=(e=null==f?void 0:f.data)?e:{},D=I.jobs,R=I.workflow,B=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},l=Object.keys(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)n=l[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(I,["jobs","workflow"]),T=(R||{}).nodes,K=void 0===T?[]:T;(0,E.Yc)(K),function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=new Map;e.forEach(function(e){e.jobs=[],n.set(e.id,e)}),t.forEach(function(e){var t=n.get(e.nodeId);t&&(t.jobs.push(e),e.node={id:t.id,key:t.key,title:t.title,type:t.type})}),e.forEach(function(e){e.jobs=e.jobs.sort(function(e,t){return e.id-t.id})})}(K,void 0===D?[]:D);var M=K.find(function(e){return!e.upstream}),Q=p.uy[B.status];return R?l().createElement(y.iT.Provider,{value:{workflow:R.type?R:null,nodes:K,execution:B,viewJob:x,setViewJob:C}},l().createElement("div",{className:"workflow-toolbar"},l().createElement("header",null,l().createElement(i.Breadcrumb,{items:[{title:l().createElement(a.Link,{to:O.pluginSettingsManager.getRoutePath("workflow")},(0,v.KQ)("Workflow"))},{title:l().createElement(i.Tooltip,{title:"Key: ".concat(R.key)},l().createElement(a.Link,{to:(0,E.SI)(R.id)},R.title))},{title:l().createElement(j,null)}]})),l().createElement("aside",null,l().createElement(i.Tag,{color:Q.color},n(Q.label)),B.status?null:l().createElement(i.Tooltip,{title:(0,v.KQ)("Cancel the execution")},l().createElement(i.Button,{type:"link",danger:!0,onClick:P,shape:"circle",size:"small",icon:l().createElement(s.StopOutlined,null)})),l().createElement("time",null,(0,c.str2moment)(B.updatedAt).format("YYYY-MM-DD HH:mm:ss")))),l().createElement(m.g,{entry:M}),l().createElement(S,null)):l().createElement(i.Result,{status:"404",title:(0,v.KQ)("Not found"),subTitle:(0,v.KQ)("Workflow of execution is not existed"),extra:l().createElement(i.Button,{onClick:N},(0,v.KQ)("Go back"))})}var P=function(){var e,t,n,o=(0,a.useParams)(),i=(0,b.Z)().styles;return l().createElement("div",{className:(0,r.cx)(i.workflowPageClass)},l().createElement(r.SchemaComponent,{schema:{type:"void",properties:(e={},t="execution_".concat(o.id),n={type:"void","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:{name:"executions",fields:[]},resourceName:"executions",request:{resource:"executions",action:"get",params:{filter:o,appends:["jobs","workflow","workflow.nodes","workflow.versionStats","workflow.stats"],except:["jobs.result","workflow.options"]}}},"x-component":"ExecutionCanvas"},t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e)},components:{ExecutionCanvas:A}}))}}}]);
@@ -13,6 +13,7 @@ interface AddButtonProps {
13
13
  [key: string]: any;
14
14
  }
15
15
  export declare function AddButton(props: AddButtonProps): React.JSX.Element;
16
+ export declare function AddNodeSlot(props: AddButtonProps): React.JSX.Element;
16
17
  export declare function useAddNodeContext(): any;
17
18
  export declare function AddNodeContextProvider(props: any): React.JSX.Element;
18
19
  export {};
@@ -0,0 +1,11 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+ import React from 'react';
10
+ export declare function useNodeClipboardContext(): any;
11
+ export declare function NodeClipboardContextProvider(props: any): React.JSX.Element;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+ import React from 'react';
10
+ export declare function useNodeDragContext(): any;
11
+ export declare function NodeDragContextProvider(props: any): React.JSX.Element;
@@ -11,6 +11,7 @@ import { Instruction } from './nodes';
11
11
  import { Trigger } from './triggers';
12
12
  import { VariableOption } from './variable';
13
13
  import { TaskTypeOptions } from './WorkflowTasks';
14
+ import { NodeDetailsModel, NodeValueModel } from './models';
14
15
  type InstructionGroup = {
15
16
  key?: string;
16
17
  label: string;
@@ -43,6 +44,7 @@ export default class PluginWorkflowClient extends Plugin {
43
44
  registerInstructionGroup(key: string, group: InstructionGroup): void;
44
45
  registerSystemVariable(option: VariableOption): void;
45
46
  registerTaskType(key: string, option: TaskTypeOptions): void;
47
+ registerCollectionsToDataSource(collectionOptions: any[]): void;
46
48
  load(): Promise<void>;
47
49
  }
48
50
  export * from './Branch';
@@ -59,3 +61,4 @@ export * from './utils';
59
61
  export * from './variable';
60
62
  export { usePopupRecordContext, useTasksCountsContext } from './WorkflowTasks';
61
63
  export { createTriggerWorkflowsSchema } from './flows/triggerWorkflows';
64
+ export { NodeDetailsModel, NodeValueModel };