@nocobase/plugin-workflow 0.10.0-alpha.5 → 0.11.0-alpha.1

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 (265) hide show
  1. package/client.d.ts +2 -3
  2. package/client.js +1 -30
  3. package/lib/client/AddButton.js +1 -8
  4. package/lib/client/Branch.js +8 -8
  5. package/lib/client/CanvasContent.js +8 -8
  6. package/lib/client/ExecutionCanvas.js +20 -27
  7. package/lib/client/ExecutionPage.js +1 -8
  8. package/lib/client/WorkflowCanvas.js +3 -10
  9. package/lib/client/WorkflowPage.js +1 -8
  10. package/lib/client/WorkflowProvider.js +3 -42
  11. package/lib/client/components/CollectionFieldset.d.ts +1 -1
  12. package/lib/client/components/CollectionFieldset.js +8 -15
  13. package/lib/client/components/Duration.js +5 -5
  14. package/lib/client/components/DynamicExpression.d.ts +3 -3
  15. package/lib/client/components/DynamicExpression.js +14 -4
  16. package/lib/client/components/FieldsSelect.d.ts +1 -1
  17. package/lib/client/components/FieldsSelect.js +6 -6
  18. package/lib/client/components/NodeDescription.js +11 -11
  19. package/lib/client/components/RadioWithTooltip.js +13 -20
  20. package/lib/client/components/ValueBlock.js +14 -21
  21. package/lib/client/components/renderEngineReference.js +1 -8
  22. package/lib/client/index.d.ts +12 -4
  23. package/lib/client/index.js +78 -15
  24. package/lib/client/nodes/aggregate.d.ts +10 -4
  25. package/lib/client/nodes/aggregate.js +12 -9
  26. package/lib/client/nodes/calculation.d.ts +11 -16
  27. package/lib/client/nodes/calculation.js +72 -52
  28. package/lib/client/nodes/condition.d.ts +2 -6
  29. package/lib/client/nodes/condition.js +20 -24
  30. package/lib/client/nodes/create.d.ts +8 -5
  31. package/lib/client/nodes/create.js +34 -7
  32. package/lib/client/nodes/destroy.d.ts +1 -1
  33. package/lib/client/nodes/index.d.ts +4 -4
  34. package/lib/client/nodes/index.js +79 -86
  35. package/lib/client/nodes/loop.d.ts +3 -1
  36. package/lib/client/nodes/loop.js +48 -35
  37. package/lib/client/nodes/manual/ModeConfig.js +23 -30
  38. package/lib/client/nodes/manual/SchemaConfig.d.ts +3 -3
  39. package/lib/client/nodes/manual/SchemaConfig.js +18 -17
  40. package/lib/client/nodes/manual/WorkflowTodo.js +66 -72
  41. package/lib/client/nodes/manual/WorkflowTodoBlockInitializer.d.ts +2 -5
  42. package/lib/client/nodes/manual/WorkflowTodoBlockInitializer.js +6 -5
  43. package/lib/client/nodes/manual/forms/custom.js +11 -18
  44. package/lib/client/nodes/manual/index.d.ts +11 -5
  45. package/lib/client/nodes/manual/index.js +21 -10
  46. package/lib/client/nodes/parallel.js +20 -20
  47. package/lib/client/nodes/query.d.ts +7 -4
  48. package/lib/client/nodes/query.js +34 -7
  49. package/lib/client/nodes/request.d.ts +10 -6
  50. package/lib/client/nodes/request.js +37 -9
  51. package/lib/client/nodes/update.d.ts +2 -2
  52. package/lib/client/nodes/update.js +1 -1
  53. package/lib/client/schemas/collection.d.ts +1 -1
  54. package/lib/client/schemas/collection.js +3 -10
  55. package/lib/client/style.js +18 -18
  56. package/lib/client/triggers/collection.d.ts +4 -3
  57. package/lib/client/triggers/collection.js +21 -7
  58. package/lib/client/triggers/index.d.ts +2 -2
  59. package/lib/client/triggers/index.js +46 -52
  60. package/lib/client/triggers/schedule/DateFieldsSelect.js +1 -1
  61. package/lib/client/triggers/schedule/EndsByField.js +11 -11
  62. package/lib/client/triggers/schedule/OnField.js +11 -11
  63. package/lib/client/triggers/schedule/RepeatField.js +4 -4
  64. package/lib/client/triggers/schedule/ScheduleConfig.js +17 -24
  65. package/lib/client/triggers/schedule/index.d.ts +3 -4
  66. package/lib/client/triggers/schedule/index.js +21 -11
  67. package/lib/client/variable.d.ts +3 -4
  68. package/lib/client/variable.js +110 -45
  69. package/lib/server/Plugin.d.ts +2 -3
  70. package/lib/server/Plugin.js +8 -9
  71. package/lib/server/Processor.d.ts +2 -4
  72. package/lib/server/actions/nodes.js +7 -7
  73. package/lib/server/fields/expression-field.d.ts +1 -2
  74. package/lib/server/fields/expression-field.js +1 -8
  75. package/lib/server/functions/index.d.ts +2 -3
  76. package/lib/server/index.d.ts +1 -0
  77. package/lib/server/index.js +12 -0
  78. package/lib/server/instructions/aggregate.d.ts +1 -1
  79. package/lib/server/instructions/aggregate.js +5 -5
  80. package/lib/server/instructions/condition.d.ts +2 -1
  81. package/lib/server/instructions/create.d.ts +1 -1
  82. package/lib/server/instructions/delay.d.ts +3 -3
  83. package/lib/server/instructions/delay.js +66 -64
  84. package/lib/server/instructions/destroy.d.ts +1 -1
  85. package/lib/server/instructions/index.d.ts +5 -5
  86. package/lib/server/instructions/loop.d.ts +1 -2
  87. package/lib/server/instructions/manual/actions.js +1 -1
  88. package/lib/server/instructions/manual/forms/index.d.ts +1 -1
  89. package/lib/server/instructions/manual/index.d.ts +1 -1
  90. package/lib/server/instructions/parallel.d.ts +1 -2
  91. package/lib/server/instructions/query.d.ts +1 -1
  92. package/lib/server/instructions/request.d.ts +2 -2
  93. package/lib/server/instructions/request.js +1 -0
  94. package/lib/server/instructions/update.d.ts +1 -1
  95. package/lib/server/migrations/20230221071831-calculation-expression.js +1 -1
  96. package/lib/server/migrations/20230221121203-condition-calculation.js +1 -1
  97. package/lib/server/migrations/20230221162902-jsonb-to-json.js +7 -7
  98. package/lib/server/migrations/20230411034722-manual-multi-form.js +1 -8
  99. package/lib/server/triggers/collection.d.ts +1 -1
  100. package/lib/server/triggers/collection.js +2 -2
  101. package/lib/server/triggers/index.d.ts +1 -1
  102. package/lib/server/triggers/schedule.d.ts +1 -1
  103. package/lib/server/triggers/schedule.js +18 -18
  104. package/lib/server/{models → types}/Execution.d.ts +2 -3
  105. package/lib/server/{models → types}/FlowNode.d.ts +1 -2
  106. package/lib/server/{models → types}/Job.d.ts +1 -2
  107. package/lib/server/{models → types}/Workflow.d.ts +1 -2
  108. package/lib/server/types/index.d.ts +4 -0
  109. package/lib/server/types/index.js +5 -0
  110. package/package.json +40 -20
  111. package/server.d.ts +2 -3
  112. package/server.js +1 -30
  113. package/src/client/AddButton.tsx +99 -0
  114. package/src/client/Branch.tsx +35 -0
  115. package/src/client/CanvasContent.tsx +23 -0
  116. package/src/client/ExecutionCanvas.tsx +168 -0
  117. package/src/client/ExecutionLink.tsx +16 -0
  118. package/src/client/ExecutionPage.tsx +44 -0
  119. package/src/client/ExecutionResourceProvider.tsx +21 -0
  120. package/src/client/FlowContext.ts +7 -0
  121. package/src/client/WorkflowCanvas.tsx +220 -0
  122. package/src/client/WorkflowLink.tsx +16 -0
  123. package/src/client/WorkflowPage.tsx +51 -0
  124. package/src/client/WorkflowProvider.tsx +84 -0
  125. package/src/client/components/CollectionBlockInitializer.tsx +71 -0
  126. package/src/client/components/CollectionFieldset.tsx +158 -0
  127. package/src/client/components/Duration.tsx +45 -0
  128. package/src/client/components/DynamicExpression.tsx +53 -0
  129. package/src/client/components/FieldsSelect.tsx +28 -0
  130. package/src/client/components/FilterDynamicComponent.tsx +15 -0
  131. package/src/client/components/NodeDescription.tsx +44 -0
  132. package/src/client/components/NullRender.tsx +3 -0
  133. package/src/client/components/OpenDrawer.tsx +24 -0
  134. package/src/client/components/RadioWithTooltip.tsx +38 -0
  135. package/src/client/components/ValueBlock.tsx +67 -0
  136. package/src/client/components/renderEngineReference.tsx +30 -0
  137. package/src/client/constants.tsx +91 -0
  138. package/src/client/index.tsx +51 -0
  139. package/src/client/interfaces/expression.tsx +25 -0
  140. package/src/client/locale/en-US.ts +136 -0
  141. package/src/client/locale/es-ES.ts +129 -0
  142. package/src/client/locale/index.ts +18 -0
  143. package/src/client/locale/ja-JP.ts +90 -0
  144. package/src/client/locale/pt-BR.ts +136 -0
  145. package/src/client/locale/ru-RU.ts +90 -0
  146. package/src/client/locale/tr-TR.ts +90 -0
  147. package/src/client/locale/zh-CN.ts +242 -0
  148. package/src/client/nodes/aggregate.tsx +327 -0
  149. package/src/client/nodes/calculation.tsx +217 -0
  150. package/src/client/nodes/condition.tsx +490 -0
  151. package/src/client/nodes/create.tsx +86 -0
  152. package/src/client/nodes/delay.tsx +37 -0
  153. package/src/client/nodes/destroy.tsx +34 -0
  154. package/src/client/nodes/index.tsx +489 -0
  155. package/src/client/nodes/loop.tsx +159 -0
  156. package/src/client/nodes/manual/AssigneesSelect.tsx +33 -0
  157. package/src/client/nodes/manual/DetailsBlockProvider.tsx +80 -0
  158. package/src/client/nodes/manual/FormBlockInitializer.tsx +68 -0
  159. package/src/client/nodes/manual/FormBlockProvider.tsx +75 -0
  160. package/src/client/nodes/manual/ModeConfig.tsx +84 -0
  161. package/src/client/nodes/manual/SchemaConfig.tsx +365 -0
  162. package/src/client/nodes/manual/WorkflowTodo.tsx +611 -0
  163. package/src/client/nodes/manual/WorkflowTodoBlockInitializer.tsx +28 -0
  164. package/src/client/nodes/manual/forms/create.tsx +88 -0
  165. package/src/client/nodes/manual/forms/custom.tsx +388 -0
  166. package/src/client/nodes/manual/forms/update.tsx +130 -0
  167. package/src/client/nodes/manual/index.tsx +162 -0
  168. package/src/client/nodes/manual/utils.ts +28 -0
  169. package/src/client/nodes/parallel.tsx +137 -0
  170. package/src/client/nodes/query.tsx +89 -0
  171. package/src/client/nodes/request.tsx +185 -0
  172. package/src/client/nodes/update.tsx +99 -0
  173. package/src/client/schemas/collection.ts +75 -0
  174. package/src/client/schemas/executions.tsx +169 -0
  175. package/src/client/schemas/workflows.ts +364 -0
  176. package/src/client/style.tsx +312 -0
  177. package/src/client/triggers/collection.tsx +186 -0
  178. package/src/client/triggers/index.tsx +307 -0
  179. package/src/client/triggers/schedule/DateFieldsSelect.tsx +28 -0
  180. package/src/client/triggers/schedule/EndsByField.tsx +40 -0
  181. package/src/client/triggers/schedule/OnField.tsx +50 -0
  182. package/src/client/triggers/schedule/RepeatField.tsx +116 -0
  183. package/src/client/triggers/schedule/ScheduleConfig.tsx +225 -0
  184. package/src/client/triggers/schedule/constants.ts +4 -0
  185. package/src/client/triggers/schedule/index.tsx +72 -0
  186. package/src/client/triggers/schedule/locale/Cron.zh-CN.ts +79 -0
  187. package/src/client/utils.ts +36 -0
  188. package/src/client/variable.tsx +296 -0
  189. package/src/index.ts +1 -0
  190. package/src/server/Plugin.ts +351 -0
  191. package/src/server/Processor.ts +354 -0
  192. package/src/server/__tests__/Plugin.test.ts +398 -0
  193. package/src/server/__tests__/Processor.test.ts +474 -0
  194. package/src/server/__tests__/actions/workflows.test.ts +419 -0
  195. package/src/server/__tests__/collections/categories.ts +23 -0
  196. package/src/server/__tests__/collections/comments.ts +24 -0
  197. package/src/server/__tests__/collections/posts.ts +42 -0
  198. package/src/server/__tests__/collections/replies.ts +9 -0
  199. package/src/server/__tests__/collections/tags.ts +15 -0
  200. package/src/server/__tests__/index.ts +89 -0
  201. package/src/server/__tests__/instructions/aggregate.test.ts +294 -0
  202. package/src/server/__tests__/instructions/calculation.test.ts +265 -0
  203. package/src/server/__tests__/instructions/condition.test.ts +335 -0
  204. package/src/server/__tests__/instructions/create.test.ts +129 -0
  205. package/src/server/__tests__/instructions/delay.test.ts +182 -0
  206. package/src/server/__tests__/instructions/destroy.test.ts +58 -0
  207. package/src/server/__tests__/instructions/loop.test.ts +331 -0
  208. package/src/server/__tests__/instructions/manual.test.ts +854 -0
  209. package/src/server/__tests__/instructions/parallel.test.ts +445 -0
  210. package/src/server/__tests__/instructions/query.test.ts +359 -0
  211. package/src/server/__tests__/instructions/request.test.ts +217 -0
  212. package/src/server/__tests__/instructions/update.test.ts +189 -0
  213. package/src/server/__tests__/triggers/collection.test.ts +298 -0
  214. package/src/server/__tests__/triggers/schedule.test.ts +369 -0
  215. package/src/server/actions/index.ts +25 -0
  216. package/src/server/actions/nodes.ts +214 -0
  217. package/src/server/actions/workflows.ts +178 -0
  218. package/src/server/collections/executions.ts +35 -0
  219. package/src/server/collections/flow_nodes.ts +54 -0
  220. package/src/server/collections/jobs.ts +31 -0
  221. package/src/server/collections/workflows.ts +88 -0
  222. package/src/server/constants.ts +26 -0
  223. package/src/server/fields/expression-field.ts +11 -0
  224. package/src/server/fields/index.ts +7 -0
  225. package/src/server/functions/index.ts +16 -0
  226. package/src/server/index.ts +6 -0
  227. package/src/server/instructions/aggregate.ts +42 -0
  228. package/src/server/instructions/calculation.ts +41 -0
  229. package/src/server/instructions/condition.ts +172 -0
  230. package/src/server/instructions/create.ts +37 -0
  231. package/src/server/instructions/delay.ts +105 -0
  232. package/src/server/instructions/destroy.ts +23 -0
  233. package/src/server/instructions/index.ts +63 -0
  234. package/src/server/instructions/loop.ts +99 -0
  235. package/src/server/instructions/manual/actions.ts +79 -0
  236. package/src/server/instructions/manual/collecions/jobs.ts +17 -0
  237. package/src/server/instructions/manual/collecions/users.ts +15 -0
  238. package/src/server/instructions/manual/collecions/users_jobs.ts +50 -0
  239. package/src/server/instructions/manual/forms/create.ts +22 -0
  240. package/src/server/instructions/manual/forms/index.ts +12 -0
  241. package/src/server/instructions/manual/forms/update.ts +22 -0
  242. package/src/server/instructions/manual/index.ts +184 -0
  243. package/src/server/instructions/parallel.ts +121 -0
  244. package/src/server/instructions/query.ts +31 -0
  245. package/src/server/instructions/request.ts +87 -0
  246. package/src/server/instructions/update.ts +24 -0
  247. package/src/server/migrations/20221129153547-calculation-variables.ts +64 -0
  248. package/src/server/migrations/20230221032941-change-request-body-type.ts +76 -0
  249. package/src/server/migrations/20230221071831-calculation-expression.ts +102 -0
  250. package/src/server/migrations/20230221121203-condition-calculation.ts +82 -0
  251. package/src/server/migrations/20230221162902-jsonb-to-json.ts +51 -0
  252. package/src/server/migrations/20230411034722-manual-multi-form.ts +282 -0
  253. package/src/server/migrations/20230612021134-manual-collection-block.ts +138 -0
  254. package/src/server/triggers/collection.ts +142 -0
  255. package/src/server/triggers/index.ts +22 -0
  256. package/src/server/triggers/schedule.ts +567 -0
  257. package/src/server/types/Execution.ts +26 -0
  258. package/src/server/types/FlowNode.ts +21 -0
  259. package/src/server/types/Job.ts +18 -0
  260. package/src/server/types/Workflow.ts +36 -0
  261. package/src/server/types/index.ts +4 -0
  262. /package/lib/server/{models → types}/Execution.js +0 -0
  263. /package/lib/server/{models → types}/FlowNode.js +0 -0
  264. /package/lib/server/{models → types}/Job.js +0 -0
  265. /package/lib/server/{models → types}/Workflow.js +0 -0
@@ -12,13 +12,6 @@ exports.instructions = void 0;
12
12
  exports.useAvailableUpstreams = useAvailableUpstreams;
13
13
  exports.useNodeContext = useNodeContext;
14
14
  exports.useUpstreamScopes = useUpstreamScopes;
15
- function _react() {
16
- const data = _interopRequireWildcard(require("react"));
17
- _react = function _react() {
18
- return data;
19
- };
20
- return data;
21
- }
22
15
  function _icons() {
23
16
  const data = require("@ant-design/icons");
24
17
  _icons = function _icons() {
@@ -26,66 +19,66 @@ function _icons() {
26
19
  };
27
20
  return data;
28
21
  }
29
- function _css() {
30
- const data = require("@emotion/css");
31
- _css = function _css() {
22
+ function _react() {
23
+ const data = require("@formily/react");
24
+ _react = function _react() {
32
25
  return data;
33
26
  };
34
27
  return data;
35
28
  }
36
- function _react2() {
37
- const data = require("@formily/react");
38
- _react2 = function _react2() {
29
+ function _client() {
30
+ const data = require("@nocobase/client");
31
+ _client = function _client() {
39
32
  return data;
40
33
  };
41
34
  return data;
42
35
  }
43
- function _antd() {
44
- const data = require("antd");
45
- _antd = function _antd() {
36
+ function _client2() {
37
+ const data = require("@nocobase/utils/client");
38
+ _client2 = function _client2() {
46
39
  return data;
47
40
  };
48
41
  return data;
49
42
  }
50
- function _reactI18next() {
51
- const data = require("react-i18next");
52
- _reactI18next = function _reactI18next() {
43
+ function _antd() {
44
+ const data = require("antd");
45
+ _antd = function _antd() {
53
46
  return data;
54
47
  };
55
48
  return data;
56
49
  }
57
- function _client() {
58
- const data = require("@nocobase/utils/client");
59
- _client = function _client() {
50
+ function _react2() {
51
+ const data = _interopRequireWildcard(require("react"));
52
+ _react2 = function _react2() {
60
53
  return data;
61
54
  };
62
55
  return data;
63
56
  }
64
- function _client2() {
65
- const data = require("@nocobase/client");
66
- _client2 = function _client2() {
57
+ function _reactI18next() {
58
+ const data = require("react-i18next");
59
+ _reactI18next = function _reactI18next() {
67
60
  return data;
68
61
  };
69
62
  return data;
70
63
  }
71
- var _style = require("../style");
72
64
  var _AddButton = require("../AddButton");
73
65
  var _FlowContext = require("../FlowContext");
66
+ var _NodeDescription = require("../components/NodeDescription");
67
+ var _constants = require("../constants");
68
+ var _locale = require("../locale");
69
+ var _style = require("../style");
70
+ var _aggregate = _interopRequireDefault(require("./aggregate"));
74
71
  var _calculation = _interopRequireDefault(require("./calculation"));
75
72
  var _condition = _interopRequireDefault(require("./condition"));
76
- var _parallel = _interopRequireDefault(require("./parallel"));
77
- var _loop = _interopRequireDefault(require("./loop"));
73
+ var _create = _interopRequireDefault(require("./create"));
78
74
  var _delay = _interopRequireDefault(require("./delay"));
75
+ var _destroy = _interopRequireDefault(require("./destroy"));
76
+ var _loop = _interopRequireDefault(require("./loop"));
79
77
  var _manual = _interopRequireDefault(require("./manual"));
78
+ var _parallel = _interopRequireDefault(require("./parallel"));
80
79
  var _query = _interopRequireDefault(require("./query"));
81
- var _create = _interopRequireDefault(require("./create"));
82
- var _update = _interopRequireDefault(require("./update"));
83
- var _destroy = _interopRequireDefault(require("./destroy"));
84
- var _aggregate = _interopRequireDefault(require("./aggregate"));
85
- var _constants = require("../constants");
86
- var _locale = require("../locale");
87
80
  var _request = _interopRequireDefault(require("./request"));
88
- var _NodeDescription = require("../components/NodeDescription");
81
+ var _update = _interopRequireDefault(require("./update"));
89
82
  const _excluded = ["job"];
90
83
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
91
84
  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); }
@@ -105,7 +98,7 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
105
98
  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; }
106
99
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
107
100
  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); }); }; }
108
- const instructions = new (_client().Registry)();
101
+ const instructions = new (_client2().Registry)();
109
102
  exports.instructions = instructions;
110
103
  instructions.register('calculation', _calculation.default);
111
104
  instructions.register('condition', _condition.default);
@@ -120,10 +113,10 @@ instructions.register('destroy', _destroy.default);
120
113
  instructions.register('aggregate', _aggregate.default);
121
114
  instructions.register('request', _request.default);
122
115
  function useUpdateAction() {
123
- const form = (0, _react2().useForm)();
124
- const api = (0, _client2().useAPIClient)();
125
- const ctx = (0, _client2().useActionContext)();
126
- const _useResourceActionCon = (0, _client2().useResourceActionContext)(),
116
+ const form = (0, _react().useForm)();
117
+ const api = (0, _client().useAPIClient)();
118
+ const ctx = (0, _client().useActionContext)();
119
+ const _useResourceActionCon = (0, _client().useResourceActionContext)(),
127
120
  refresh = _useResourceActionCon.refresh;
128
121
  const data = useNodeContext();
129
122
  const _useFlowContext = (0, _FlowContext.useFlowContext)(),
@@ -149,10 +142,10 @@ function useUpdateAction() {
149
142
  }
150
143
  };
151
144
  }
152
- const NodeContext = _react().default.createContext({});
145
+ const NodeContext = _react2().default.createContext({});
153
146
  exports.NodeContext = NodeContext;
154
147
  function useNodeContext() {
155
- return (0, _react().useContext)(NodeContext);
148
+ return (0, _react2().useContext)(NodeContext);
156
149
  }
157
150
  function useAvailableUpstreams(node) {
158
151
  const stack = [];
@@ -183,16 +176,16 @@ function Node({
183
176
  _instructions$get$com = _instructions$get.component,
184
177
  Component = _instructions$get$com === void 0 ? NodeDefaultView : _instructions$get$com,
185
178
  endding = _instructions$get.endding;
186
- return _react().default.createElement(NodeContext.Provider, {
179
+ return _react2().default.createElement(NodeContext.Provider, {
187
180
  value: data
188
- }, _react().default.createElement("div", {
189
- className: (0, _css().cx)(_style.nodeBlockClass)
190
- }, _react().default.createElement(Component, {
181
+ }, _react2().default.createElement("div", {
182
+ className: (0, _client().cx)(_style.nodeBlockClass)
183
+ }, _react2().default.createElement(Component, {
191
184
  data: data
192
- }), !endding ? _react().default.createElement(_AddButton.AddButton, {
185
+ }), !endding ? _react2().default.createElement(_AddButton.AddButton, {
193
186
  upstream: data
194
- }) : _react().default.createElement("div", {
195
- className: (0, _css().css)`
187
+ }) : _react2().default.createElement("div", {
188
+ className: (0, _client().css)`
196
189
  flex-grow: 1;
197
190
  display: flex;
198
191
  flex-direction: column;
@@ -201,20 +194,20 @@ function Node({
201
194
  width: 1px;
202
195
  height: 6em;
203
196
  padding: 2em 0;
204
- background-color: #f0f2f5;
197
+ background-color: var(--nb-box-bg);
205
198
 
206
199
  .anticon {
207
200
  font-size: 1.5em;
208
201
  line-height: 100%;
209
202
  }
210
203
  `
211
- }, _react().default.createElement(_icons().CloseOutlined, null))));
204
+ }, _react2().default.createElement(_icons().CloseOutlined, null))));
212
205
  }
213
206
  function RemoveButton() {
214
207
  var _useFlowContext2;
215
208
  const _useTranslation = (0, _reactI18next().useTranslation)(),
216
209
  t = _useTranslation.t;
217
- const api = (0, _client2().useAPIClient)();
210
+ const api = (0, _client().useAPIClient)();
218
211
  const _ref = (_useFlowContext2 = (0, _FlowContext.useFlowContext)()) !== null && _useFlowContext2 !== void 0 ? _useFlowContext2 : {},
219
212
  workflow = _ref.workflow,
220
213
  nodes = _ref.nodes,
@@ -246,7 +239,7 @@ function RemoveButton() {
246
239
  if (node === current) {
247
240
  return false;
248
241
  }
249
- const template = (0, _client().parse)(node.config);
242
+ const template = (0, _client2().parse)(node.config);
250
243
  const refs = template.parameters.filter(({
251
244
  key
252
245
  }) => key.startsWith(`$jobsMapByNodeId.${current.id}.`) || key === `$jobsMapByNodeId.${current.id}`);
@@ -271,10 +264,10 @@ function RemoveButton() {
271
264
  });
272
265
  return _onRemove.apply(this, arguments);
273
266
  }
274
- return workflow.executed ? null : _react().default.createElement(_antd().Button, {
267
+ return workflow.executed ? null : _react2().default.createElement(_antd().Button, {
275
268
  type: "text",
276
269
  shape: "circle",
277
- icon: _react().default.createElement(_icons().DeleteOutlined, null),
270
+ icon: _react2().default.createElement(_icons().DeleteOutlined, null),
278
271
  onClick: onRemove,
279
272
  className: "workflow-node-remove-button"
280
273
  });
@@ -285,10 +278,10 @@ function InnerJobButton(_ref2) {
285
278
  const _JobStatusOptionsMap$ = _constants.JobStatusOptionsMap[job.status],
286
279
  icon = _JobStatusOptionsMap$.icon,
287
280
  color = _JobStatusOptionsMap$.color;
288
- return _react().default.createElement(_antd().Button, _objectSpread(_objectSpread({}, props), {}, {
281
+ return _react2().default.createElement(_antd().Button, _objectSpread(_objectSpread({}, props), {}, {
289
282
  shape: "circle",
290
- className: (0, _css().cx)(_style.nodeJobButtonClass, props.className)
291
- }), _react().default.createElement(_antd().Tag, {
283
+ className: (0, _client().cx)(_style.nodeJobButtonClass, props.className)
284
+ }), _react2().default.createElement(_antd().Tag, {
292
285
  color: color
293
286
  }, icon));
294
287
  }
@@ -303,8 +296,8 @@ function JobButton() {
303
296
  return null;
304
297
  }
305
298
  if (!jobs.length) {
306
- return _react().default.createElement("span", {
307
- className: (0, _css().cx)(_style.nodeJobButtonClass, (0, _css().css)`
299
+ return _react2().default.createElement("span", {
300
+ className: (0, _client().cx)(_style.nodeJobButtonClass, (0, _client().css)`
308
301
  border: 2px solid #d9d9d9;
309
302
  border-radius: 50%;
310
303
  cursor: not-allowed;
@@ -317,7 +310,7 @@ function JobButton() {
317
310
  const job = jobs.find(item => item.id == key);
318
311
  setViewJob(job);
319
312
  }
320
- return jobs.length > 1 ? _react().default.createElement(_antd().Dropdown, {
313
+ return jobs.length > 1 ? _react2().default.createElement(_antd().Dropdown, {
321
314
  menu: {
322
315
  items: jobs.map(job => {
323
316
  const _JobStatusOptionsMap$2 = _constants.JobStatusOptionsMap[job.status],
@@ -325,8 +318,8 @@ function JobButton() {
325
318
  color = _JobStatusOptionsMap$2.color;
326
319
  return {
327
320
  key: job.id,
328
- label: _react().default.createElement("div", {
329
- className: (0, _css().css)`
321
+ label: _react2().default.createElement("div", {
322
+ className: (0, _client().css)`
330
323
  display: flex;
331
324
  gap: 0.5em;
332
325
 
@@ -335,18 +328,18 @@ function JobButton() {
335
328
  font-size: 0.8em;
336
329
  }
337
330
  `
338
- }, _react().default.createElement("span", {
339
- className: (0, _css().cx)(_style.nodeJobButtonClass, 'inner')
340
- }, _react().default.createElement(_antd().Tag, {
331
+ }, _react2().default.createElement("span", {
332
+ className: (0, _client().cx)(_style.nodeJobButtonClass, 'inner')
333
+ }, _react2().default.createElement(_antd().Tag, {
341
334
  color: color
342
- }, icon)), _react().default.createElement("time", null, (0, _client().str2moment)(job.updatedAt).format('YYYY-MM-DD HH:mm:ss')))
335
+ }, icon)), _react2().default.createElement("time", null, (0, _client2().str2moment)(job.updatedAt).format('YYYY-MM-DD HH:mm:ss')))
343
336
  };
344
337
  }),
345
338
  onClick: onOpenJob
346
339
  }
347
- }, _react().default.createElement(InnerJobButton, {
340
+ }, _react2().default.createElement(InnerJobButton, {
348
341
  job: jobs[jobs.length - 1]
349
- })) : _react().default.createElement(InnerJobButton, {
342
+ })) : _react2().default.createElement(InnerJobButton, {
350
343
  job: jobs[0],
351
344
  onClick: () => setViewJob(jobs[0])
352
345
  });
@@ -355,19 +348,19 @@ function NodeDefaultView(props) {
355
348
  var _useFlowContext4, _data$title;
356
349
  const data = props.data,
357
350
  children = props.children;
358
- const compile = (0, _client2().useCompile)();
359
- const api = (0, _client2().useAPIClient)();
351
+ const compile = (0, _client().useCompile)();
352
+ const api = (0, _client().useAPIClient)();
360
353
  const _ref4 = (_useFlowContext4 = (0, _FlowContext.useFlowContext)()) !== null && _useFlowContext4 !== void 0 ? _useFlowContext4 : {},
361
354
  workflow = _ref4.workflow,
362
355
  refresh = _ref4.refresh;
363
356
  const instruction = instructions.get(data.type);
364
357
  const detailText = workflow.executed ? '{{t("View")}}' : '{{t("Configure")}}';
365
358
  const typeTitle = compile(instruction.title);
366
- const _useState = (0, _react().useState)((_data$title = data.title) !== null && _data$title !== void 0 ? _data$title : typeTitle),
359
+ const _useState = (0, _react2().useState)((_data$title = data.title) !== null && _data$title !== void 0 ? _data$title : typeTitle),
367
360
  _useState2 = _slicedToArray(_useState, 2),
368
361
  editingTitle = _useState2[0],
369
362
  setEditingTitle = _useState2[1];
370
- const _useState3 = (0, _react().useState)(false),
363
+ const _useState3 = (0, _react2().useState)(false),
371
364
  _useState4 = _slicedToArray(_useState3, 2),
372
365
  editingConfig = _useState4[0],
373
366
  setEditingConfig = _useState4[1];
@@ -406,29 +399,29 @@ function NodeDefaultView(props) {
406
399
  }
407
400
  }
408
401
  }
409
- return _react().default.createElement("div", {
410
- className: (0, _css().cx)(_style.nodeClass, `workflow-node-type-${data.type}`)
411
- }, _react().default.createElement("div", {
412
- className: (0, _css().cx)(_style.nodeCardClass, {
402
+ return _react2().default.createElement("div", {
403
+ className: (0, _client().cx)(_style.nodeClass, `workflow-node-type-${data.type}`)
404
+ }, _react2().default.createElement("div", {
405
+ className: (0, _client().cx)(_style.nodeCardClass, {
413
406
  configuring: editingConfig
414
407
  }),
415
408
  onClick: onOpenDrawer
416
- }, _react().default.createElement("div", {
417
- className: (0, _css().cx)(_style.nodeMetaClass, 'workflow-node-meta')
418
- }, _react().default.createElement(_antd().Tag, null, typeTitle), _react().default.createElement("span", {
409
+ }, _react2().default.createElement("div", {
410
+ className: (0, _client().cx)(_style.nodeMetaClass, 'workflow-node-meta')
411
+ }, _react2().default.createElement(_antd().Tag, null, typeTitle), _react2().default.createElement("span", {
419
412
  className: "workflow-node-id"
420
- }, data.id)), _react().default.createElement("div", null, _react().default.createElement(_antd().Input.TextArea, {
413
+ }, data.id)), _react2().default.createElement("div", null, _react2().default.createElement(_antd().Input.TextArea, {
421
414
  disabled: workflow.executed,
422
415
  value: editingTitle,
423
416
  onChange: ev => setEditingTitle(ev.target.value),
424
417
  onBlur: ev => onChangeTitle(ev.target.value),
425
418
  autoSize: true
426
- })), _react().default.createElement(RemoveButton, null), _react().default.createElement(JobButton, null), _react().default.createElement(_client2().ActionContextProvider, {
419
+ })), _react2().default.createElement(RemoveButton, null), _react2().default.createElement(JobButton, null), _react2().default.createElement(_client().ActionContextProvider, {
427
420
  value: {
428
421
  visible: editingConfig,
429
422
  setVisible: setEditingConfig
430
423
  }
431
- }, _react().default.createElement(_client2().SchemaComponent, {
424
+ }, _react2().default.createElement(_client().SchemaComponent, {
432
425
  scope: instruction.scope,
433
426
  components: instruction.components,
434
427
  schema: {
@@ -455,7 +448,7 @@ function NodeDefaultView(props) {
455
448
  useValues(options) {
456
449
  const _useNodeContext2 = useNodeContext(),
457
450
  config = _useNodeContext2.config;
458
- return (0, _client2().useRequest)(() => {
451
+ return (0, _client().useRequest)(() => {
459
452
  return Promise.resolve({
460
453
  data: config
461
454
  });
@@ -470,7 +463,7 @@ function NodeDefaultView(props) {
470
463
  type: 'warning',
471
464
  showIcon: true,
472
465
  message: `{{t("Node in executed workflow cannot be modified", { ns: "${_locale.NAMESPACE}" })}}`,
473
- className: (0, _css().css)`
466
+ className: (0, _client().css)`
474
467
  width: 100%;
475
468
  font-size: 85%;
476
469
  margin-bottom: 2em;
@@ -490,7 +483,7 @@ function NodeDefaultView(props) {
490
483
  type: 'void',
491
484
  'x-component': 'fieldset',
492
485
  'x-component-props': {
493
- className: (0, _css().css)`
486
+ className: (0, _client().css)`
494
487
  .ant-select,
495
488
  .ant-cascader-picker,
496
489
  .ant-picker,
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { useWorkflowVariableOptions, VariableOption } from '../variable';
2
+ import { VariableOption, useWorkflowVariableOptions } from '../variable';
3
3
  declare const _default: {
4
4
  title: string;
5
5
  type: string;
@@ -14,7 +14,9 @@ declare const _default: {
14
14
  'x-component': string;
15
15
  'x-component-props': {
16
16
  scope: string;
17
+ changeOnSelect: boolean;
17
18
  useTypedConstant: string[];
19
+ className: string;
18
20
  };
19
21
  required: boolean;
20
22
  };
@@ -4,13 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- function _react() {
8
- const data = _interopRequireDefault(require("react"));
9
- _react = function _react() {
10
- return data;
11
- };
12
- return data;
13
- }
14
7
  function _icons() {
15
8
  const data = require("@ant-design/icons");
16
9
  _icons = function _icons() {
@@ -18,40 +11,47 @@ function _icons() {
18
11
  };
19
12
  return data;
20
13
  }
21
- function _css() {
22
- const data = require("@emotion/css");
23
- _css = function _css() {
14
+ function _client() {
15
+ const data = require("@nocobase/client");
16
+ _client = function _client() {
24
17
  return data;
25
18
  };
26
19
  return data;
27
20
  }
28
- function _client() {
29
- const data = require("@nocobase/client");
30
- _client = function _client() {
21
+ function _react() {
22
+ const data = _interopRequireDefault(require("react"));
23
+ _react = function _react() {
31
24
  return data;
32
25
  };
33
26
  return data;
34
27
  }
35
28
  var _ = require(".");
29
+ var _Branch = require("../Branch");
36
30
  var _FlowContext = require("../FlowContext");
37
31
  var _locale = require("../locale");
38
- var _variable = require("../variable");
39
32
  var _style = require("../style");
40
- var _Branch = require("../Branch");
33
+ var _variable = require("../variable");
41
34
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
35
+ 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; }
36
+ 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; }
37
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
38
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
39
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
42
40
  function findOption(options, paths) {
43
- let current = options;
41
+ let opts = options;
42
+ let option = null;
44
43
  for (let i = 0; i < paths.length; i++) {
45
44
  const path = paths[i];
46
- const option = current.find(item => item.value === path);
47
- if (!option) {
48
- return null;
45
+ const current = opts.find(item => item.value === path);
46
+ if (!current) {
47
+ break;
49
48
  }
50
- if (option.children) {
51
- current = option.children;
49
+ option = current;
50
+ if (current.children) {
51
+ opts = current.children;
52
52
  }
53
53
  }
54
- return current;
54
+ return option;
55
55
  }
56
56
  var _default = {
57
57
  title: `{{t("Loop", { ns: "${_locale.NAMESPACE}" })}}`,
@@ -66,8 +66,20 @@ var _default = {
66
66
  'x-decorator': 'FormItem',
67
67
  'x-component': 'Variable.Input',
68
68
  'x-component-props': {
69
- scope: '{{useWorkflowVariableOptions}}',
70
- useTypedConstant: ['string', 'number', 'null']
69
+ scope: '{{useWorkflowVariableOptions()}}',
70
+ changeOnSelect: true,
71
+ useTypedConstant: ['string', 'number', 'null'],
72
+ className: (0, _client().css)`
73
+ width: 100%;
74
+
75
+ .variable {
76
+ flex: 1;
77
+ }
78
+
79
+ .ant-input.null-value {
80
+ width: 100%;
81
+ }
82
+ `
71
83
  },
72
84
  required: true
73
85
  }
@@ -83,9 +95,9 @@ var _default = {
83
95
  return _react().default.createElement(_.NodeDefaultView, {
84
96
  data: data
85
97
  }, _react().default.createElement("div", {
86
- className: (0, _css().cx)(_style.nodeSubtreeClass)
98
+ className: (0, _client().cx)(_style.nodeSubtreeClass)
87
99
  }, _react().default.createElement("div", {
88
- className: (0, _css().cx)(_style.branchBlockClass, (0, _css().css)`
100
+ className: (0, _client().cx)(_style.branchBlockClass, (0, _client().css)`
89
101
  padding-left: 20em;
90
102
  `)
91
103
  }, _react().default.createElement(_Branch.Branch, {
@@ -93,11 +105,11 @@ var _default = {
93
105
  entry: entry,
94
106
  branchIndex: (_entry$branchIndex = entry === null || entry === void 0 ? void 0 : entry.branchIndex) !== null && _entry$branchIndex !== void 0 ? _entry$branchIndex : 0
95
107
  }), _react().default.createElement("div", {
96
- className: (0, _css().cx)(_style.branchClass)
108
+ className: (0, _client().cx)(_style.branchClass)
97
109
  }, _react().default.createElement("div", {
98
110
  className: "workflow-branch-lines"
99
111
  }), _react().default.createElement("div", {
100
- className: (0, _css().cx)(_style.addButtonClass, (0, _css().css)`
112
+ className: (0, _client().cx)(_style.addButtonClass, (0, _client().css)`
101
113
  display: flex;
102
114
  justify-content: center;
103
115
  align-items: center;
@@ -108,11 +120,11 @@ var _default = {
108
120
  height: 6em;
109
121
  `)
110
122
  }, _react().default.createElement(_icons().ArrowUpOutlined, {
111
- className: (0, _css().css)`
112
- background-color: #f0f2f5;
123
+ className: (0, _client().css)`
124
+ background-color: var(--nb-box-bg);
113
125
  `
114
126
  })))), _react().default.createElement("div", {
115
- className: (0, _css().css)`
127
+ className: (0, _client().css)`
116
128
  position: relative;
117
129
  height: 2em;
118
130
  `
@@ -134,7 +146,7 @@ var _default = {
134
146
  // find target data model by path described in `config.target`
135
147
  // 1. get options from $context/$jobsMapByNodeId
136
148
  // 2. route to sub-options and use as loop target options
137
- const targetOption = {
149
+ let targetOption = {
138
150
  key: 'item',
139
151
  value: 'item',
140
152
  label: (0, _locale.lang)('Loop target')
@@ -142,16 +154,17 @@ var _default = {
142
154
  if (typeof target === 'string' && target.startsWith('{{') && target.endsWith('}}')) {
143
155
  const paths = target.slice(2, -2).split('.').map(path => path.trim());
144
156
  const targetOptions = [_variable.nodesOptions, _variable.triggerOptions].map(item => {
145
- const opts = typeof item.useOptions === 'function' ? item.useOptions(options).filter(Boolean) : null;
157
+ const opts = item.useOptions(options).filter(Boolean);
146
158
  return {
147
159
  label: compile(item.title),
148
160
  value: item.value,
149
161
  key: item.value,
150
- children: compile(opts),
162
+ children: opts,
151
163
  disabled: opts && !opts.length
152
164
  };
153
165
  });
154
- targetOption.children = findOption(targetOptions, paths);
166
+ const found = findOption(targetOptions, paths);
167
+ targetOption = Object.assign(_objectSpread({}, targetOption), found, targetOption);
155
168
  }
156
169
  return [targetOption, {
157
170
  key: 'index',