@nocobase/plugin-workflow 0.8.0-alpha.9 → 0.8.1-alpha.3

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 (95) hide show
  1. package/lib/client/AddButton.js +21 -13
  2. package/lib/client/ExecutionCanvas.js +9 -21
  3. package/lib/client/ExecutionResourceProvider.d.ts +2 -1
  4. package/lib/client/ExecutionResourceProvider.js +4 -3
  5. package/lib/client/FlowContext.js +1 -1
  6. package/lib/client/WorkflowCanvas.js +135 -36
  7. package/lib/client/WorkflowProvider.d.ts +3 -0
  8. package/lib/client/WorkflowProvider.js +71 -16
  9. package/lib/client/WorkflowShortcut.d.ts +0 -1
  10. package/lib/client/WorkflowShortcut.js +4 -47
  11. package/lib/client/calculators.d.ts +27 -37
  12. package/lib/client/calculators.js +168 -150
  13. package/lib/client/components/CollectionFieldset.js +10 -20
  14. package/lib/client/components/Duration.js +3 -14
  15. package/lib/client/components/EjsTextArea.d.ts +2 -0
  16. package/lib/client/components/EjsTextArea.js +232 -0
  17. package/lib/client/components/OpenDrawer.d.ts +6 -0
  18. package/lib/client/components/OpenDrawer.js +93 -0
  19. package/lib/client/constants.js +11 -9
  20. package/lib/client/index.d.ts +1 -0
  21. package/lib/client/index.js +14 -0
  22. package/lib/client/locale/en-US.d.ts +105 -0
  23. package/lib/client/locale/en-US.js +111 -0
  24. package/lib/client/locale/index.d.ts +3 -0
  25. package/lib/client/locale/index.js +69 -0
  26. package/lib/client/locale/ja-JP.d.ts +88 -0
  27. package/lib/client/locale/ja-JP.js +94 -0
  28. package/lib/client/locale/ru-RU.d.ts +88 -0
  29. package/lib/client/locale/ru-RU.js +94 -0
  30. package/lib/client/locale/tr-TR.d.ts +88 -0
  31. package/lib/client/locale/tr-TR.js +94 -0
  32. package/lib/client/locale/zh-CN.d.ts +130 -0
  33. package/lib/client/locale/zh-CN.js +136 -0
  34. package/lib/client/nodes/calculation.d.ts +0 -1
  35. package/lib/client/nodes/calculation.js +9 -17
  36. package/lib/client/nodes/condition.js +16 -22
  37. package/lib/client/nodes/create.d.ts +3 -1
  38. package/lib/client/nodes/create.js +11 -11
  39. package/lib/client/nodes/delay.js +8 -6
  40. package/lib/client/nodes/index.js +46 -14
  41. package/lib/client/nodes/parallel.d.ts +0 -1
  42. package/lib/client/nodes/parallel.js +11 -32
  43. package/lib/client/nodes/query.js +9 -17
  44. package/lib/client/nodes/request.d.ts +138 -0
  45. package/lib/client/nodes/request.js +167 -0
  46. package/lib/client/nodes/update.js +4 -2
  47. package/lib/client/schemas/collection.js +3 -1
  48. package/lib/client/schemas/executions.d.ts +211 -207
  49. package/lib/client/schemas/executions.js +102 -96
  50. package/lib/client/schemas/workflows.js +112 -22
  51. package/lib/client/style.js +7 -7
  52. package/lib/client/triggers/collection.d.ts +2 -1
  53. package/lib/client/triggers/collection.js +49 -34
  54. package/lib/client/triggers/index.d.ts +3 -3
  55. package/lib/client/triggers/index.js +46 -46
  56. package/lib/client/triggers/schedule/EndsByField.js +13 -39
  57. package/lib/client/triggers/schedule/OnField.js +10 -5
  58. package/lib/client/triggers/schedule/RepeatField.js +6 -14
  59. package/lib/client/triggers/schedule/ScheduleConfig.js +25 -20
  60. package/lib/client/triggers/schedule/constants.d.ts +4 -0
  61. package/lib/client/triggers/schedule/constants.js +11 -0
  62. package/lib/client/triggers/schedule/index.d.ts +2 -3
  63. package/lib/client/triggers/schedule/index.js +55 -40
  64. package/lib/server/Plugin.d.ts +15 -5
  65. package/lib/server/Plugin.js +176 -61
  66. package/lib/server/Processor.d.ts +1 -2
  67. package/lib/server/Processor.js +3 -19
  68. package/lib/server/actions/jobs.js +2 -3
  69. package/lib/server/actions/workflows.js +13 -5
  70. package/lib/server/calculators/index.d.ts +4 -2
  71. package/lib/server/calculators/index.js +6 -4
  72. package/lib/server/collections/executions.js +2 -1
  73. package/lib/server/constants.d.ts +1 -0
  74. package/lib/server/constants.js +1 -0
  75. package/lib/server/extensions/assignees/actions.js +2 -3
  76. package/lib/server/extensions/assignees/collections/users_jobs.js +9 -1
  77. package/lib/server/index.d.ts +3 -4
  78. package/lib/server/index.js +21 -44
  79. package/lib/server/instructions/condition.js +1 -1
  80. package/lib/server/instructions/create.js +3 -1
  81. package/lib/server/instructions/delay.js +2 -3
  82. package/lib/server/instructions/destroy.js +3 -1
  83. package/lib/server/instructions/index.d.ts +3 -2
  84. package/lib/server/instructions/index.js +1 -1
  85. package/lib/server/instructions/prompt.js +2 -1
  86. package/lib/server/instructions/query.js +3 -1
  87. package/lib/server/instructions/request.d.ts +14 -0
  88. package/lib/server/instructions/request.js +154 -0
  89. package/lib/server/instructions/update.d.ts +1 -1
  90. package/lib/server/instructions/update.js +3 -1
  91. package/lib/server/migrations/20221129153547-calculation-variables.d.ts +5 -0
  92. package/lib/server/migrations/20221129153547-calculation-variables.js +116 -0
  93. package/lib/server/triggers/collection.js +5 -7
  94. package/lib/server/triggers/schedule.js +17 -6
  95. package/package.json +13 -8
@@ -61,6 +61,8 @@ var _nodes = require("./nodes");
61
61
 
62
62
  var _style = require("./style");
63
63
 
64
+ var _locale = require("./locale");
65
+
64
66
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
65
67
 
66
68
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
@@ -140,10 +142,13 @@ function AddButton({
140
142
 
141
143
  const groups = [{
142
144
  value: 'control',
143
- name: '{{t("Control")}}'
145
+ name: `{{t("Control", { ns: "${_locale.NAMESPACE}" })}}`
144
146
  }, {
145
147
  value: 'collection',
146
- name: '{{t("Collection operations")}}'
148
+ name: `{{t("Collection operations", { ns: "${_locale.NAMESPACE}" })}}`
149
+ }, {
150
+ value: 'extended',
151
+ name: `{{t("Extended types", { ns: "${_locale.NAMESPACE}" })}}`
147
152
  }];
148
153
  const instructionList = Array.from(_nodes.instructions.getValues());
149
154
  return _react().default.createElement("div", {
@@ -152,17 +157,20 @@ function AddButton({
152
157
  trigger: ['click'],
153
158
  overlay: _react().default.createElement(_antd().Menu, {
154
159
  onClick: ev => onCreate(ev)
155
- }, groups.map(group => _react().default.createElement(_antd().Menu.ItemGroup, {
156
- key: group.value,
157
- title: compile(group.name)
158
- }, instructionList.filter(item => item.group === group.value).map(item => item.options ? _react().default.createElement(_antd().Menu.SubMenu, {
159
- key: item.type,
160
- title: compile(item.title)
161
- }, item.options.map(option => _react().default.createElement(_antd().Menu.Item, {
162
- key: option.key
163
- }, compile(option.label)))) : _react().default.createElement(_antd().Menu.Item, {
164
- key: item.type
165
- }, compile(item.title)))))),
160
+ }, groups.map(group => {
161
+ const groupInstructions = instructionList.filter(item => item.group === group.value);
162
+ return groupInstructions.length ? _react().default.createElement(_antd().Menu.ItemGroup, {
163
+ key: group.value,
164
+ title: compile(group.name)
165
+ }, groupInstructions.map(item => item.options ? _react().default.createElement(_antd().Menu.SubMenu, {
166
+ key: item.type,
167
+ title: compile(item.title)
168
+ }, item.options.map(option => _react().default.createElement(_antd().Menu.Item, {
169
+ key: option.key
170
+ }, compile(option.label)))) : _react().default.createElement(_antd().Menu.Item, {
171
+ key: item.type
172
+ }, compile(item.title)))) : null;
173
+ })),
166
174
  disabled: workflow.executed
167
175
  }, _react().default.createElement(_antd().Button, {
168
176
  shape: "circle",
@@ -35,16 +35,6 @@ function _css() {
35
35
  return data;
36
36
  }
37
37
 
38
- function _reactI18next() {
39
- const data = require("react-i18next");
40
-
41
- _reactI18next = function _reactI18next() {
42
- return data;
43
- };
44
-
45
- return data;
46
- }
47
-
48
38
  function _reactRouterDom() {
49
39
  const data = require("react-router-dom");
50
40
 
@@ -85,6 +75,8 @@ var _Branch = require("./Branch");
85
75
 
86
76
  var _constants = require("./constants");
87
77
 
78
+ var _locale = require("./locale");
79
+
88
80
  const _excluded = ["nodes", "revisions"],
89
81
  _excluded2 = ["jobs", "workflow"];
90
82
 
@@ -137,14 +129,10 @@ function makeNodes(nodes, jobs = []) {
137
129
  function ExecutionCanvas() {
138
130
  var _data$data2;
139
131
 
140
- const _useTranslation = (0, _reactI18next().useTranslation)(),
141
- t = _useTranslation.t;
142
-
143
132
  const compile = (0, _client().useCompile)();
144
133
 
145
134
  const _useResourceActionCon = (0, _client().useResourceActionContext)(),
146
135
  data = _useResourceActionCon.data,
147
- refresh = _useResourceActionCon.refresh,
148
136
  loading = _useResourceActionCon.loading;
149
137
 
150
138
  const _useDocumentTitle = (0, _client().useDocumentTitle)(),
@@ -156,14 +144,14 @@ function ExecutionCanvas() {
156
144
  const _ref = (_data$data = data === null || data === void 0 ? void 0 : data.data) !== null && _data$data !== void 0 ? _data$data : {},
157
145
  workflow = _ref.workflow;
158
146
 
159
- setTitle(`${(workflow === null || workflow === void 0 ? void 0 : workflow.title) ? `${workflow.title} - ` : ''}${t('Execution history')}`);
147
+ setTitle === null || setTitle === void 0 ? void 0 : setTitle(`${(workflow === null || workflow === void 0 ? void 0 : workflow.title) ? `${workflow.title} - ` : ''}${(0, _locale.lang)('Execution history')}`);
160
148
  }, [data === null || data === void 0 ? void 0 : data.data]);
161
149
 
162
150
  if (!(data === null || data === void 0 ? void 0 : data.data)) {
163
151
  if (loading) {
164
- return _react().default.createElement("div", null, t('Loading'));
152
+ return _react().default.createElement("div", null, (0, _locale.lang)('Loading'));
165
153
  } else {
166
- return _react().default.createElement("div", null, t('Load failed'));
154
+ return _react().default.createElement("div", null, (0, _locale.lang)('Load failed'));
167
155
  }
168
156
  }
169
157
 
@@ -190,11 +178,11 @@ function ExecutionCanvas() {
190
178
  }
191
179
  }, _react().default.createElement("div", {
192
180
  className: "workflow-toolbar"
193
- }, _react().default.createElement("header", null, _react().default.createElement("span", null, _react().default.createElement(_reactRouterDom().Link, {
181
+ }, _react().default.createElement("header", null, _react().default.createElement(_antd().Breadcrumb, null, _react().default.createElement(_antd().Breadcrumb.Item, null, _react().default.createElement(_reactRouterDom().Link, {
194
182
  to: `/admin/settings/workflow/workflows`
195
- }, t('Workflow'))), _react().default.createElement("span", null, _react().default.createElement(_reactRouterDom().Link, {
183
+ }, (0, _locale.lang)('Workflow'))), _react().default.createElement(_antd().Breadcrumb.Item, null, _react().default.createElement(_reactRouterDom().Link, {
196
184
  to: `/admin/settings/workflow/workflows/${workflow.id}`
197
- }, workflow.title)), _react().default.createElement("strong", null, `#${execution.id}`)), _react().default.createElement("aside", null, _react().default.createElement(_antd().Tag, {
185
+ }, workflow.title)), _react().default.createElement(_antd().Breadcrumb.Item, null, _react().default.createElement("strong", null, `#${execution.id}`)))), _react().default.createElement("aside", null, _react().default.createElement(_antd().Tag, {
198
186
  color: statusOption.color
199
187
  }, compile(statusOption.label)), _react().default.createElement("time", null, (0, _client2().str2moment)(execution.updatedAt).format('YYYY-MM-DD HH:mm:ss')))), _react().default.createElement("div", {
200
188
  className: "workflow-canvas"
@@ -208,5 +196,5 @@ function ExecutionCanvas() {
208
196
  className: (0, _css().cx)(_style.nodeMetaClass)
209
197
  }, _react().default.createElement(_antd().Tag, {
210
198
  color: "#333"
211
- }, t('End'))))));
199
+ }, (0, _locale.lang)('End'))))));
212
200
  }
@@ -1,4 +1,5 @@
1
- export declare const ExecutionResourceProvider: ({ request, ...others }: {
1
+ export declare const ExecutionResourceProvider: ({ request, filter, ...others }: {
2
2
  [x: string]: any;
3
3
  request: any;
4
+ filter?: {};
4
5
  }) => JSX.Element;
@@ -25,7 +25,7 @@ function _client() {
25
25
  return data;
26
26
  }
27
27
 
28
- const _excluded = ["request"];
28
+ const _excluded = ["request", "filter"];
29
29
 
30
30
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
31
31
 
@@ -43,6 +43,8 @@ const ExecutionResourceProvider = _ref => {
43
43
  var _request$params;
44
44
 
45
45
  let request = _ref.request,
46
+ _ref$filter = _ref.filter,
47
+ filter = _ref$filter === void 0 ? {} : _ref$filter,
46
48
  others = _objectWithoutProperties(_ref, _excluded);
47
49
 
48
50
  const workflow = (0, _client().useRecord)();
@@ -54,8 +56,7 @@ const ExecutionResourceProvider = _ref => {
54
56
  key: workflow.key
55
57
  })
56
58
  })
57
- }),
58
- workflow
59
+ })
59
60
  });
60
61
 
61
62
  return _react().default.createElement(_client().ResourceActionProvider, _objectSpread({}, props));
@@ -20,7 +20,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
20
20
 
21
21
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
22
22
 
23
- const FlowContext = _react().default.createContext(null);
23
+ const FlowContext = _react().default.createContext({});
24
24
 
25
25
  exports.FlowContext = FlowContext;
26
26
 
@@ -55,20 +55,20 @@ function _css() {
55
55
  return data;
56
56
  }
57
57
 
58
- function _reactI18next() {
59
- const data = require("react-i18next");
58
+ function _classnames() {
59
+ const data = _interopRequireDefault(require("classnames"));
60
60
 
61
- _reactI18next = function _reactI18next() {
61
+ _classnames = function _classnames() {
62
62
  return data;
63
63
  };
64
64
 
65
65
  return data;
66
66
  }
67
67
 
68
- function _classnames() {
69
- const data = _interopRequireDefault(require("classnames"));
68
+ function _reactI18next() {
69
+ const data = require("react-i18next");
70
70
 
71
- _classnames = function _classnames() {
71
+ _reactI18next = function _reactI18next() {
72
72
  return data;
73
73
  };
74
74
 
@@ -93,7 +93,14 @@ var _triggers = require("./triggers");
93
93
 
94
94
  var _Branch = require("./Branch");
95
95
 
96
- const _excluded = ["nodes", "revisions"];
96
+ var _executions = require("./schemas/executions");
97
+
98
+ var _ExecutionLink = require("./ExecutionLink");
99
+
100
+ var _locale = require("./locale");
101
+
102
+ const _excluded = ["request", "filter"],
103
+ _excluded2 = ["nodes", "revisions"];
97
104
 
98
105
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
99
106
 
@@ -105,16 +112,54 @@ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try
105
112
 
106
113
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
107
114
 
108
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
115
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
109
116
 
110
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
117
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
118
+
119
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
111
120
 
112
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
121
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
122
+
123
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
113
124
 
114
125
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
115
126
 
116
127
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
117
128
 
129
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
130
+
131
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
132
+
133
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
134
+
135
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
136
+
137
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
138
+
139
+ function ExecutionResourceProvider(_ref) {
140
+ var _request$params;
141
+
142
+ let request = _ref.request,
143
+ _ref$filter = _ref.filter,
144
+ filter = _ref$filter === void 0 ? {} : _ref$filter,
145
+ others = _objectWithoutProperties(_ref, _excluded);
146
+
147
+ const _useFlowContext = (0, _FlowContext.useFlowContext)(),
148
+ workflow = _useFlowContext.workflow;
149
+
150
+ const props = _objectSpread(_objectSpread({}, others), {}, {
151
+ request: _objectSpread(_objectSpread({}, request), {}, {
152
+ params: _objectSpread(_objectSpread({}, request === null || request === void 0 ? void 0 : request.params), {}, {
153
+ filter: _objectSpread(_objectSpread({}, request === null || request === void 0 ? void 0 : (_request$params = request.params) === null || _request$params === void 0 ? void 0 : _request$params.filter), {}, {
154
+ key: workflow.key
155
+ })
156
+ })
157
+ })
158
+ });
159
+
160
+ return _react().default.createElement(_client().ResourceActionProvider, _objectSpread({}, props));
161
+ }
162
+
118
163
  function makeNodes(nodes) {
119
164
  const nodesMap = new Map();
120
165
  nodes.forEach(item => nodesMap.set(item.id, item));
@@ -144,11 +189,11 @@ function makeNodes(nodes) {
144
189
  function WorkflowCanvas() {
145
190
  var _data$data2;
146
191
 
192
+ const history = (0, _reactRouterDom().useHistory)();
193
+
147
194
  const _useTranslation = (0, _reactI18next().useTranslation)(),
148
195
  t = _useTranslation.t;
149
196
 
150
- const history = (0, _reactRouterDom().useHistory)();
151
-
152
197
  const _useResourceActionCon = (0, _client().useResourceActionContext)(),
153
198
  data = _useResourceActionCon.data,
154
199
  refresh = _useResourceActionCon.refresh,
@@ -161,25 +206,30 @@ function WorkflowCanvas() {
161
206
  const _useDocumentTitle = (0, _client().useDocumentTitle)(),
162
207
  setTitle = _useDocumentTitle.setTitle;
163
208
 
209
+ const _useState = (0, _react().useState)(false),
210
+ _useState2 = _slicedToArray(_useState, 2),
211
+ visible = _useState2[0],
212
+ setVisible = _useState2[1];
213
+
164
214
  (0, _react().useEffect)(() => {
165
215
  var _data$data;
166
216
 
167
- const _ref = (_data$data = data === null || data === void 0 ? void 0 : data.data) !== null && _data$data !== void 0 ? _data$data : {},
168
- title = _ref.title;
217
+ const _ref2 = (_data$data = data === null || data === void 0 ? void 0 : data.data) !== null && _data$data !== void 0 ? _data$data : {},
218
+ title = _ref2.title;
169
219
 
170
- setTitle(`${t('Workflow')}${title ? `: ${title}` : ''}`);
220
+ setTitle === null || setTitle === void 0 ? void 0 : setTitle(`${(0, _locale.lang)('Workflow')}${title ? `: ${title}` : ''}`);
171
221
  }, [data === null || data === void 0 ? void 0 : data.data]);
172
222
 
173
223
  if (!(data === null || data === void 0 ? void 0 : data.data) && !loading) {
174
- return _react().default.createElement("div", null, t('Load failed'));
224
+ return _react().default.createElement("div", null, (0, _locale.lang)('Load failed'));
175
225
  }
176
226
 
177
- const _ref2 = (_data$data2 = data === null || data === void 0 ? void 0 : data.data) !== null && _data$data2 !== void 0 ? _data$data2 : {},
178
- _ref2$nodes = _ref2.nodes,
179
- nodes = _ref2$nodes === void 0 ? [] : _ref2$nodes,
180
- _ref2$revisions = _ref2.revisions,
181
- revisions = _ref2$revisions === void 0 ? [] : _ref2$revisions,
182
- workflow = _objectWithoutProperties(_ref2, _excluded);
227
+ const _ref3 = (_data$data2 = data === null || data === void 0 ? void 0 : data.data) !== null && _data$data2 !== void 0 ? _data$data2 : {},
228
+ _ref3$nodes = _ref3.nodes,
229
+ nodes = _ref3$nodes === void 0 ? [] : _ref3$nodes,
230
+ _ref3$revisions = _ref3.revisions,
231
+ revisions = _ref3$revisions === void 0 ? [] : _ref3$revisions,
232
+ workflow = _objectWithoutProperties(_ref3, _excluded2);
183
233
 
184
234
  makeNodes(nodes);
185
235
  const entry = nodes.find(item => !item.upstream);
@@ -218,7 +268,10 @@ function WorkflowCanvas() {
218
268
  function _onRevision() {
219
269
  _onRevision = _asyncToGenerator(function* () {
220
270
  const _yield$resource$revis = yield resource.revision({
221
- filterByTk: workflow[targetKey]
271
+ filterByTk: workflow[targetKey],
272
+ filter: {
273
+ key: workflow.key
274
+ }
222
275
  }),
223
276
  revision = _yield$resource$revis.data.data;
224
277
 
@@ -229,6 +282,30 @@ function WorkflowCanvas() {
229
282
  return _onRevision.apply(this, arguments);
230
283
  }
231
284
 
285
+ function onMenuCommand(_x2) {
286
+ return _onMenuCommand.apply(this, arguments);
287
+ }
288
+
289
+ function _onMenuCommand() {
290
+ _onMenuCommand = _asyncToGenerator(function* ({
291
+ key
292
+ }) {
293
+ switch (key) {
294
+ case 'history':
295
+ setVisible(true);
296
+ return;
297
+
298
+ case 'revision':
299
+ return onRevision();
300
+
301
+ default:
302
+ break;
303
+ }
304
+ });
305
+ return _onMenuCommand.apply(this, arguments);
306
+ }
307
+
308
+ const revisionable = workflow.executed && !revisions.find(item => !item.executed && new Date(item.createdAt) > new Date(workflow.createdAt));
232
309
  return _react().default.createElement(_FlowContext.FlowContext.Provider, {
233
310
  value: {
234
311
  workflow,
@@ -238,18 +315,18 @@ function WorkflowCanvas() {
238
315
  }
239
316
  }, _react().default.createElement("div", {
240
317
  className: "workflow-toolbar"
241
- }, _react().default.createElement("header", null, _react().default.createElement("span", null, _react().default.createElement(_reactRouterDom().Link, {
318
+ }, _react().default.createElement("header", null, _react().default.createElement(_antd().Breadcrumb, null, _react().default.createElement(_antd().Breadcrumb.Item, null, _react().default.createElement(_reactRouterDom().Link, {
242
319
  to: `/admin/settings/workflow/workflows`
243
- }, t('Workflow'))), _react().default.createElement("strong", null, workflow.title)), _react().default.createElement("aside", null, _react().default.createElement("div", {
320
+ }, (0, _locale.lang)('Workflow'))), _react().default.createElement(_antd().Breadcrumb.Item, null, _react().default.createElement("strong", null, workflow.title)))), _react().default.createElement("aside", null, _react().default.createElement("div", {
244
321
  className: "workflow-versions"
245
- }, _react().default.createElement("label", null, t('Version')), _react().default.createElement(_antd().Dropdown, {
322
+ }, _react().default.createElement(_antd().Dropdown, {
246
323
  trigger: ['click'],
247
324
  overlay: _react().default.createElement(_antd().Menu, {
248
325
  onClick: onSwitchVersion,
249
- defaultSelectedKeys: [workflow.id],
326
+ defaultSelectedKeys: [`${workflow.id}`],
250
327
  className: (0, _css().cx)(_style.workflowVersionDropdownClass)
251
328
  }, revisions.sort((a, b) => b.id - a.id).map((item, index) => _react().default.createElement(_antd().Menu.Item, {
252
- key: item.id,
329
+ key: `${item.id}`,
253
330
  icon: item.current ? _react().default.createElement(_icons().RightOutlined, null) : null,
254
331
  className: (0, _classnames().default)({
255
332
  executed: item.executed,
@@ -258,15 +335,37 @@ function WorkflowCanvas() {
258
335
  })
259
336
  }, _react().default.createElement("strong", null, `#${item.id}`), _react().default.createElement("time", null, new Date(item.createdAt).toLocaleString()))))
260
337
  }, _react().default.createElement(_antd().Button, {
261
- type: "link"
262
- }, (workflow === null || workflow === void 0 ? void 0 : workflow.id) ? `#${workflow.id}` : null, _react().default.createElement(_icons().DownOutlined, null)))), _react().default.createElement(_antd().Switch, {
338
+ type: "text"
339
+ }, _react().default.createElement("label", null, (0, _locale.lang)('Version')), _react().default.createElement("span", null, (workflow === null || workflow === void 0 ? void 0 : workflow.id) ? `#${workflow.id}` : null), _react().default.createElement(_icons().DownOutlined, null)))), _react().default.createElement(_antd().Switch, {
263
340
  checked: workflow.enabled,
264
341
  onChange: onToggle,
265
- checkedChildren: t('On'),
266
- unCheckedChildren: t('Off')
267
- }), workflow.executed && !revisions.find(item => !item.executed && new Date(item.createdAt) > new Date(workflow.createdAt)) ? _react().default.createElement(_antd().Button, {
268
- onClick: onRevision
269
- }, t('Copy to new version')) : null)), _react().default.createElement("div", {
342
+ checkedChildren: (0, _locale.lang)('On'),
343
+ unCheckedChildren: (0, _locale.lang)('Off')
344
+ }), _react().default.createElement(_antd().Dropdown, {
345
+ overlay: _react().default.createElement(_antd().Menu, {
346
+ onClick: onMenuCommand
347
+ }, _react().default.createElement(_antd().Menu.Item, {
348
+ key: "history",
349
+ disabled: !workflow.allExecuted
350
+ }, (0, _locale.lang)('Execution history')), _react().default.createElement(_antd().Menu.Item, {
351
+ key: "revision",
352
+ disabled: !revisionable
353
+ }, (0, _locale.lang)('Copy to new version')))
354
+ }, _react().default.createElement(_antd().Button, {
355
+ type: "text",
356
+ icon: _react().default.createElement(_icons().EllipsisOutlined, null)
357
+ })), _react().default.createElement(_client().ActionContext.Provider, {
358
+ value: {
359
+ visible,
360
+ setVisible
361
+ }
362
+ }, _react().default.createElement(_client().SchemaComponent, {
363
+ schema: _executions.executionSchema,
364
+ components: {
365
+ ExecutionResourceProvider,
366
+ ExecutionLink: _ExecutionLink.ExecutionLink
367
+ }
368
+ })))), _react().default.createElement("div", {
270
369
  className: "workflow-canvas"
271
370
  }, _react().default.createElement(_triggers.TriggerConfig, null), _react().default.createElement("div", {
272
371
  className: _style.branchBlockClass
@@ -278,5 +377,5 @@ function WorkflowCanvas() {
278
377
  className: (0, _css().cx)(_style.nodeMetaClass)
279
378
  }, _react().default.createElement(_antd().Tag, {
280
379
  color: "#333"
281
- }, t('End'))))));
380
+ }, (0, _locale.lang)('End'))))));
282
381
  }
@@ -1 +1,4 @@
1
+ import React from 'react';
2
+ export declare const WorkflowContext: React.Context<{}>;
3
+ export declare function useWorkflowContext(): {};
1
4
  export declare const WorkflowProvider: (props: any) => JSX.Element;
@@ -3,36 +3,63 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.WorkflowProvider = void 0;
6
+ exports.WorkflowProvider = exports.WorkflowContext = void 0;
7
+ exports.useWorkflowContext = useWorkflowContext;
7
8
 
8
- function _client() {
9
- const data = require("@nocobase/client");
9
+ function _react() {
10
+ const data = _interopRequireWildcard(require("react"));
10
11
 
11
- _client = function _client() {
12
+ _react = function _react() {
12
13
  return data;
13
14
  };
14
15
 
15
16
  return data;
16
17
  }
17
18
 
18
- function _react() {
19
- const data = _interopRequireWildcard(require("react"));
19
+ function _antd() {
20
+ const data = require("antd");
20
21
 
21
- _react = function _react() {
22
+ _antd = function _antd() {
22
23
  return data;
23
24
  };
24
25
 
25
26
  return data;
26
27
  }
27
28
 
28
- var _WorkflowPage = require("./WorkflowPage");
29
+ function _client() {
30
+ const data = require("@nocobase/client");
31
+
32
+ _client = function _client() {
33
+ return data;
34
+ };
29
35
 
30
- var _WorkflowShortcut = require("./WorkflowShortcut");
36
+ return data;
37
+ }
38
+
39
+ var _WorkflowPage = require("./WorkflowPage");
31
40
 
32
41
  var _ExecutionPage = require("./ExecutionPage");
33
42
 
43
+ var _triggers = require("./triggers");
44
+
45
+ var _nodes = require("./nodes");
46
+
47
+ var _locale = require("./locale");
48
+
49
+ var _workflows = require("./schemas/workflows");
50
+
51
+ var _WorkflowLink = require("./WorkflowLink");
52
+
53
+ var _ExecutionResourceProvider = require("./ExecutionResourceProvider");
54
+
55
+ var _ExecutionLink = require("./ExecutionLink");
56
+
57
+ var _OpenDrawer = _interopRequireDefault(require("./components/OpenDrawer"));
58
+
34
59
  const _excluded = ["routes", "components"];
35
60
 
61
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
62
+
36
63
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
37
64
 
38
65
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -47,6 +74,30 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
47
74
 
48
75
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
49
76
 
77
+ const WorkflowContext = _react().default.createContext({});
78
+
79
+ exports.WorkflowContext = WorkflowContext;
80
+
81
+ function useWorkflowContext() {
82
+ return (0, _react().useContext)(WorkflowContext);
83
+ }
84
+
85
+ function WorkflowPane() {
86
+ return _react().default.createElement(_antd().Card, {
87
+ bordered: false
88
+ }, _react().default.createElement(_client().SchemaComponent, {
89
+ schema: _workflows.workflowSchema,
90
+ components: {
91
+ WorkflowLink: _WorkflowLink.WorkflowLink,
92
+ ExecutionResourceProvider: _ExecutionResourceProvider.ExecutionResourceProvider,
93
+ ExecutionLink: _ExecutionLink.ExecutionLink,
94
+ OpenDrawer: _OpenDrawer.default
95
+ }
96
+ }));
97
+ }
98
+
99
+ ;
100
+
50
101
  const WorkflowProvider = props => {
51
102
  const ctx = (0, _react().useContext)(_client().PluginManagerContext);
52
103
 
@@ -68,20 +119,19 @@ const WorkflowProvider = props => {
68
119
  settings: {
69
120
  workflow: {
70
121
  icon: 'PartitionOutlined',
71
- title: '{{t("Workflow")}}',
122
+ // title: `{{t("Workflow", { ns: "${NAMESPACE}" })}}`,
123
+ title: (0, _locale.lang)('Workflow'),
72
124
  tabs: {
73
125
  workflows: {
74
- title: '{{t("Workflow")}}',
75
- component: _WorkflowShortcut.WorkflowPane
126
+ title: (0, _locale.lang)('Workflow'),
127
+ component: WorkflowPane
76
128
  }
77
129
  }
78
130
  }
79
131
  }
80
132
  }, _react().default.createElement(_client().PluginManagerContext.Provider, {
81
133
  value: {
82
- components: _objectSpread(_objectSpread({}, ctx === null || ctx === void 0 ? void 0 : ctx.components), {}, {
83
- WorkflowShortcut: _WorkflowShortcut.WorkflowShortcut
84
- })
134
+ components: _objectSpread({}, ctx === null || ctx === void 0 ? void 0 : ctx.components)
85
135
  }
86
136
  }, _react().default.createElement(_client().RouteSwitchContext.Provider, {
87
137
  value: _objectSpread(_objectSpread({
@@ -92,7 +142,12 @@ const WorkflowProvider = props => {
92
142
  }, others), {}, {
93
143
  routes
94
144
  })
95
- }, props.children)));
145
+ }, _react().default.createElement(WorkflowContext.Provider, {
146
+ value: {
147
+ triggers: _triggers.triggers,
148
+ instructions: _nodes.instructions
149
+ }
150
+ }, props.children))));
96
151
  };
97
152
 
98
153
  exports.WorkflowProvider = WorkflowProvider;
@@ -1,2 +1 @@
1
- export declare const WorkflowPane: () => JSX.Element;
2
1
  export declare const WorkflowShortcut: () => JSX.Element;