@nocobase/plugin-workflow 2.2.0-beta.13 → 2.2.0-beta.15

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 (249) hide show
  1. package/client-v2.d.ts +2 -0
  2. package/client-v2.js +1 -0
  3. package/dist/client/119.e7dbd037d52d1286.js +10 -0
  4. package/dist/client/142.fb4936d78fc80007.js +10 -0
  5. package/dist/client/159.cc9a0f2d92cab2c1.js +10 -0
  6. package/dist/client/276.69fb2aea13bc7c37.js +10 -0
  7. package/dist/client/346.66d060d37843d3d1.js +10 -0
  8. package/dist/client/382.d37fba14a6b91b0b.js +10 -0
  9. package/dist/client/394.a37310b78419ad7a.js +10 -0
  10. package/dist/client/438.6c6409d821d8c353.js +10 -0
  11. package/dist/client/509.88792f5bd054b2af.js +10 -0
  12. package/dist/client/54.d81b710f7b4c1cd5.js +10 -0
  13. package/dist/client/618.1aa6c21d0f2840cb.js +10 -0
  14. package/dist/client/635.ff6085589e23d39b.js +10 -0
  15. package/dist/client/67.56a3d15a55ab7d5c.js +10 -0
  16. package/dist/client/719.f011fde3ad54571e.js +10 -0
  17. package/dist/client/728.711fd4f1ed7d4e6a.js +10 -0
  18. package/dist/client/739.49407722fca8d236.js +10 -0
  19. package/dist/client/759.13aab01e6912ed8d.js +10 -0
  20. package/dist/client/772.1ebaef11a0ac8688.js +10 -0
  21. package/dist/client/782.47792ce10fc0d5fb.js +10 -0
  22. package/dist/client/828.6880ab21513b1968.js +10 -0
  23. package/dist/client/87.083467b89aaf3e53.js +10 -0
  24. package/dist/client/938.26493fc09ba1ccbc.js +10 -0
  25. package/dist/client/964.5ab736effd480a42.js +10 -0
  26. package/dist/client/972.dd7f074d5f12e171.js +10 -0
  27. package/dist/client/AddNodeContext.d.ts +1 -9
  28. package/dist/client/BranchContext.d.ts +2 -10
  29. package/dist/client/FlowContext.d.ts +10 -5
  30. package/dist/client/NodeClipboardContext.d.ts +12 -2
  31. package/dist/client/NodeDragContext.d.ts +14 -2
  32. package/dist/client/RemoveNodeContext.d.ts +16 -2
  33. package/dist/client/index.d.ts +1 -1
  34. package/dist/client/index.js +1 -1
  35. package/dist/client/nodeVariableUtils.d.ts +7 -6
  36. package/dist/client/nodes/calculation.d.ts +3 -75
  37. package/dist/client/nodes/condition.d.ts +7 -111
  38. package/dist/client/nodes/create.d.ts +3 -124
  39. package/dist/client/nodes/destroy.d.ts +2 -57
  40. package/dist/client/nodes/end.d.ts +2 -23
  41. package/dist/client/nodes/index.d.ts +2 -91
  42. package/dist/client/nodes/multi-conditions.d.ts +10 -48
  43. package/dist/client/nodes/output.d.ts +2 -44
  44. package/dist/client/nodes/query.d.ts +3 -255
  45. package/dist/client/nodes/update.d.ts +2 -117
  46. package/dist/client/style.d.ts +7 -27
  47. package/dist/client/triggers/collection.d.ts +3 -181
  48. package/dist/client/triggers/index.d.ts +2 -36
  49. package/dist/client/triggers/schedule/index.d.ts +8 -65
  50. package/dist/client/utils.d.ts +4 -5
  51. package/dist/client/variable.d.ts +7 -53
  52. package/dist/client-v2/119.81195bcd0d451279.js +10 -0
  53. package/dist/client-v2/142.a8c8df2a9abb43c5.js +10 -0
  54. package/dist/client-v2/159.cb221540c286cd32.js +10 -0
  55. package/dist/client-v2/276.7f746d899e221e2f.js +10 -0
  56. package/dist/client-v2/326.bdc99ad8e7590970.js +10 -0
  57. package/dist/client-v2/346.8c038b3c99d4fdc9.js +10 -0
  58. package/dist/client-v2/382.05f5482bb512b179.js +10 -0
  59. package/dist/client-v2/387.5e61d648d16dbf1b.js +10 -0
  60. package/dist/client-v2/394.515ed058e7f72797.js +10 -0
  61. package/dist/client-v2/438.b7df0416b66f8f64.js +10 -0
  62. package/dist/client-v2/513.617697f74783a611.js +10 -0
  63. package/dist/client-v2/54.d3daf06e53092726.js +10 -0
  64. package/dist/client-v2/635.14a6f21cf4f16345.js +10 -0
  65. package/dist/client-v2/677.7382807126d9621a.js +10 -0
  66. package/dist/client-v2/719.05cf070ef89a78f4.js +10 -0
  67. package/dist/client-v2/728.4e8322ff8fce87b9.js +10 -0
  68. package/dist/client-v2/739.5b60845103064f8d.js +10 -0
  69. package/dist/client-v2/759.7b162ad3adf450f1.js +10 -0
  70. package/dist/client-v2/772.8e5148d8c1518449.js +10 -0
  71. package/dist/client-v2/938.717e47af39485b29.js +10 -0
  72. package/dist/client-v2/ExecutionCanvas.d.ts +15 -0
  73. package/dist/client-v2/canvas/AddNodeContext.d.ts +35 -0
  74. package/dist/client-v2/canvas/AddNodeContext.shared.d.ts +33 -0
  75. package/dist/client-v2/canvas/AddNodeSlot.d.ts +20 -0
  76. package/dist/client-v2/canvas/Branch.d.ts +32 -0
  77. package/dist/client-v2/canvas/BranchContext.d.ts +29 -0
  78. package/dist/client-v2/canvas/BranchRenderContext.d.ts +14 -0
  79. package/dist/client-v2/canvas/CanvasContent.d.ts +20 -0
  80. package/dist/client-v2/canvas/DownstreamBranchIndex.d.ts +20 -0
  81. package/dist/client-v2/canvas/Instruction.d.ts +139 -0
  82. package/dist/{client/triggers/schedule/EndsByField.d.ts → client-v2/canvas/JobButton.d.ts} +3 -3
  83. package/dist/client-v2/canvas/Node.d.ts +38 -0
  84. package/dist/client-v2/canvas/NodeClipboardContext.d.ts +64 -0
  85. package/dist/client-v2/canvas/NodeConfigDrawer.d.ts +27 -0
  86. package/dist/client-v2/canvas/NodeDragContext.d.ts +83 -0
  87. package/dist/client-v2/canvas/RemoveNodeContext.d.ts +45 -0
  88. package/dist/client-v2/canvas/WorkflowTypedVariableInput.d.ts +16 -0
  89. package/dist/client-v2/canvas/WorkflowVariableInput.d.ts +40 -0
  90. package/dist/client-v2/canvas/WorkflowVariableJsonTextArea.d.ts +15 -0
  91. package/dist/client-v2/canvas/WorkflowVariableTag.d.ts +22 -0
  92. package/dist/client-v2/canvas/WorkflowVariableTextArea.d.ts +18 -0
  93. package/dist/client-v2/canvas/adaptVariableOptionToMetaTree.d.ts +48 -0
  94. package/dist/client-v2/canvas/addNodeController.d.ts +70 -0
  95. package/dist/client-v2/canvas/collectionFieldOptions.d.ts +57 -0
  96. package/dist/client-v2/canvas/contexts.d.ts +86 -0
  97. package/dist/client-v2/canvas/dropImpact.d.ts +28 -0
  98. package/dist/client-v2/canvas/instructionAvailability.d.ts +26 -0
  99. package/dist/client-v2/canvas/nodeRenderDispatch.d.ts +79 -0
  100. package/dist/client-v2/canvas/nodeTree.d.ts +21 -0
  101. package/dist/client-v2/canvas/nodeVariableUtils.d.ts +14 -0
  102. package/dist/client-v2/canvas/removeNodeUtils.d.ts +31 -0
  103. package/dist/client-v2/canvas/style.d.ts +35 -0
  104. package/dist/client-v2/canvas/textAreaInsertion.d.ts +14 -0
  105. package/dist/client-v2/canvas/useWorkflowInstruction.d.ts +23 -0
  106. package/dist/client-v2/canvas/useWorkflowVariableOptions.d.ts +40 -0
  107. package/dist/client-v2/canvas/workflowVariableConverters.d.ts +13 -0
  108. package/dist/client-v2/components/Calculation.d.ts +18 -0
  109. package/dist/client-v2/components/ExecutionStatusIcon.d.ts +18 -0
  110. package/dist/{client/triggers/schedule/RepeatField.d.ts → client-v2/components/ExecutionStatusTag.d.ts} +3 -4
  111. package/dist/client-v2/components/ExecutionViewHeader.d.ts +29 -0
  112. package/dist/client-v2/components/ExecutionsDropdown.d.ts +25 -0
  113. package/dist/client-v2/components/FilterDynamicComponent.d.ts +28 -0
  114. package/dist/client-v2/components/HideVariableContext.d.ts +11 -0
  115. package/dist/client-v2/components/JobResultModal.d.ts +11 -0
  116. package/dist/client-v2/components/RadioWithTooltip.d.ts +23 -0
  117. package/dist/client-v2/components/SyncModeSelect.d.ts +16 -0
  118. package/dist/{client/triggers/schedule/OnField.d.ts → client-v2/components/SyncModeTag.d.ts} +3 -3
  119. package/dist/client-v2/components/TestRunButton.d.ts +36 -0
  120. package/dist/client-v2/components/TimeoutInput.d.ts +15 -0
  121. package/dist/client-v2/components/WorkflowCanvasHeader.d.ts +17 -0
  122. package/dist/client-v2/components/WorkflowDetailsModal.d.ts +25 -0
  123. package/dist/client-v2/components/WorkflowEnabledSwitch.d.ts +16 -0
  124. package/dist/client-v2/components/WorkflowMenu.d.ts +17 -0
  125. package/dist/client-v2/components/WorkflowRevisionsDropdown.d.ts +15 -0
  126. package/dist/client-v2/components/WorkflowVariableWrapper.d.ts +25 -0
  127. package/dist/client-v2/components/collection/AppendsSelect.d.ts +15 -0
  128. package/dist/client-v2/components/collection/AssignedFieldsEditor.d.ts +24 -0
  129. package/dist/client-v2/components/collection/CollectionCascader.d.ts +15 -0
  130. package/dist/client-v2/components/collection/FieldsSelect.d.ts +16 -0
  131. package/dist/client-v2/components/collection/PaginationFields.d.ts +14 -0
  132. package/dist/client-v2/components/collection/SortFieldsInput.d.ts +19 -0
  133. package/dist/client-v2/components/collection/TriggerCollectionRecordSelect.d.ts +15 -0
  134. package/dist/client-v2/components/collection/index.d.ts +16 -0
  135. package/dist/client-v2/components/collection/utils.d.ts +42 -0
  136. package/dist/client-v2/components/formatResultForDisplay.d.ts +17 -0
  137. package/dist/client-v2/components/jobStatus.d.ts +27 -0
  138. package/dist/client-v2/components/renderEngineReference.d.ts +10 -0
  139. package/dist/client-v2/components/workflowCanvas.d.ts +41 -0
  140. package/dist/client-v2/constants.d.ts +19 -0
  141. package/dist/client-v2/hooks/useWorkflowRuntimePaths.d.ts +16 -0
  142. package/dist/client-v2/index.d.ts +48 -0
  143. package/dist/client-v2/index.js +10 -0
  144. package/dist/client-v2/locale.d.ts +41 -0
  145. package/dist/{client → client-v2}/models/NodeDetailsGridModel.d.ts +1 -1
  146. package/dist/{client → client-v2}/models/NodeDetailsModel.d.ts +1 -1
  147. package/dist/{client → client-v2}/models/NodeValueModel.d.ts +1 -1
  148. package/dist/{client → client-v2}/models/TaskCardCommonItemModel.d.ts +1 -1
  149. package/dist/client-v2/models/WorkflowTasksTopbarActionModel.d.ts +18 -0
  150. package/dist/{client → client-v2}/models/index.d.ts +2 -0
  151. package/dist/client-v2/models/triggerWorkflows.d.ts +43 -0
  152. package/dist/client-v2/nodes/calculation.d.ts +38 -0
  153. package/dist/client-v2/nodes/collectionNode.d.ts +29 -0
  154. package/dist/client-v2/nodes/components/calculation.d.ts +11 -0
  155. package/dist/client-v2/nodes/components/collection.d.ts +15 -0
  156. package/dist/client-v2/nodes/components/condition.d.ts +25 -0
  157. package/dist/client-v2/nodes/components/conditionShared.d.ts +20 -0
  158. package/dist/client-v2/nodes/components/create.d.ts +12 -0
  159. package/dist/client-v2/nodes/components/destroy.d.ts +12 -0
  160. package/dist/{client/triggers/schedule/ScheduleConfig.d.ts → client-v2/nodes/components/end.d.ts} +1 -1
  161. package/dist/client-v2/nodes/components/filter.d.ts +17 -0
  162. package/dist/client-v2/nodes/components/multi-conditions.d.ts +13 -0
  163. package/dist/client-v2/nodes/components/multiConditionsShared.d.ts +20 -0
  164. package/dist/client-v2/nodes/components/output.d.ts +10 -0
  165. package/dist/client-v2/nodes/components/query.d.ts +12 -0
  166. package/dist/client-v2/nodes/components/update.d.ts +12 -0
  167. package/dist/client-v2/nodes/condition.d.ts +46 -0
  168. package/dist/client-v2/nodes/create.d.ts +30 -0
  169. package/dist/client-v2/nodes/destroy.d.ts +24 -0
  170. package/dist/client-v2/nodes/end.d.ts +21 -0
  171. package/dist/client-v2/nodes/multi-conditions.d.ts +34 -0
  172. package/dist/client-v2/nodes/output.d.ts +29 -0
  173. package/dist/client-v2/nodes/query.d.ts +32 -0
  174. package/dist/client-v2/nodes/update.d.ts +25 -0
  175. package/dist/client-v2/pages/ExecutionHistoryDrawer.d.ts +13 -0
  176. package/dist/client-v2/pages/ExecutionViewPage.d.ts +10 -0
  177. package/dist/client-v2/pages/WorkflowCanvasPage.d.ts +10 -0
  178. package/dist/client-v2/pages/WorkflowCategoryTabs.d.ts +25 -0
  179. package/dist/client-v2/pages/WorkflowFormDrawer.d.ts +40 -0
  180. package/dist/client-v2/pages/WorkflowPane.d.ts +10 -0
  181. package/dist/client-v2/pages/WorkflowTasksPage.d.ts +10 -0
  182. package/dist/client-v2/plugin.d.ts +119 -0
  183. package/dist/client-v2/taskCenter.d.ts +105 -0
  184. package/dist/client-v2/triggers/ExecuteWorkflowButton.d.ts +35 -0
  185. package/dist/client-v2/triggers/TriggerConfig.d.ts +22 -0
  186. package/dist/client-v2/triggers/TriggerExecutionButton.d.ts +13 -0
  187. package/dist/client-v2/triggers/collection/CollectionConfig.d.ts +14 -0
  188. package/dist/client-v2/triggers/collection/TriggerCollectionConfig.d.ts +11 -0
  189. package/dist/client-v2/triggers/collection/constants.d.ts +28 -0
  190. package/dist/client-v2/triggers/collection/index.d.ts +40 -0
  191. package/dist/client-v2/triggers/index.d.ts +63 -0
  192. package/dist/client-v2/triggers/schedule/EndsByField.d.ts +17 -0
  193. package/dist/client-v2/triggers/schedule/OnField.d.ts +20 -0
  194. package/dist/client-v2/triggers/schedule/RepeatField.d.ts +23 -0
  195. package/dist/client-v2/triggers/schedule/ScheduleConfig.d.ts +17 -0
  196. package/dist/client-v2/triggers/schedule/ScheduleModes.d.ts +41 -0
  197. package/dist/{client → client-v2}/triggers/schedule/TriggerScheduleConfig.d.ts +1 -0
  198. package/dist/{client → client-v2}/triggers/schedule/constants.d.ts +8 -5
  199. package/dist/client-v2/triggers/schedule/index.d.ts +40 -0
  200. package/dist/client-v2/triggers/schedule/locale/Cron.zh-CN.d.ts +11 -0
  201. package/dist/client-v2/utils/contextSingleton.d.ts +9 -0
  202. package/dist/common/collections/workflows.d.ts +16 -0
  203. package/dist/common/collections/workflows.js +5 -0
  204. package/dist/common/defaultWorkflowFilter.d.ts +21 -0
  205. package/dist/common/defaultWorkflowFilter.js +38 -0
  206. package/dist/common/executionStatus.d.ts +44 -0
  207. package/dist/common/executionStatus.js +133 -0
  208. package/dist/externalVersion.js +16 -13
  209. package/dist/locale/de-DE.json +15 -1
  210. package/dist/locale/en-US.json +26 -1
  211. package/dist/locale/es-ES.json +15 -1
  212. package/dist/locale/fr-FR.json +15 -1
  213. package/dist/locale/hu-HU.json +15 -1
  214. package/dist/locale/id-ID.json +15 -1
  215. package/dist/locale/it-IT.json +15 -1
  216. package/dist/locale/ja-JP.json +15 -1
  217. package/dist/locale/ko-KR.json +15 -1
  218. package/dist/locale/nl-NL.json +15 -1
  219. package/dist/locale/pt-BR.json +15 -1
  220. package/dist/locale/ru-RU.json +15 -1
  221. package/dist/locale/tr-TR.json +15 -1
  222. package/dist/locale/uk-UA.json +15 -1
  223. package/dist/locale/vi-VN.json +15 -1
  224. package/dist/locale/zh-CN.json +25 -1
  225. package/dist/locale/zh-TW.json +21 -1
  226. package/dist/node_modules/cron-parser/package.json +1 -1
  227. package/dist/node_modules/joi/package.json +1 -1
  228. package/dist/node_modules/lru-cache/package.json +1 -1
  229. package/dist/node_modules/nodejs-snowflake/package.json +1 -1
  230. package/dist/server/Dispatcher.js +2 -1
  231. package/dist/server/ExecutionTimeoutManager.js +2 -1
  232. package/dist/server/actions/workflows.d.ts +1 -0
  233. package/dist/server/actions/workflows.js +17 -2
  234. package/dist/server/migrations/20260713000000-remove-workflow-validation.d.ts +13 -0
  235. package/dist/server/migrations/20260713000000-remove-workflow-validation.js +56 -0
  236. package/dist/server/triggers/CollectionTrigger.d.ts +1 -1
  237. package/dist/server/triggers/CollectionTrigger.js +3 -0
  238. package/dist/server/triggers/index.d.ts +1 -1
  239. package/dist/server/types/Workflow.d.ts +1 -0
  240. package/dist/server/utils.d.ts +1 -1
  241. package/dist/server/utils.js +14 -1
  242. package/dist/swagger/index.d.ts +1 -0
  243. package/dist/swagger/index.js +4 -2
  244. package/package.json +4 -2
  245. package/dist/client/618.c91be3f6e4d73501.js +0 -10
  246. package/dist/client/67.61e70b8b777f8638.js +0 -10
  247. package/dist/client/964.5e11e1820fece37b.js +0 -10
  248. package/dist/client/triggers/schedule/ScheduleModes.d.ts +0 -170
  249. package/dist/client/triggers/schedule/locale/Cron.zh-CN.d.ts +0 -42
@@ -102,6 +102,9 @@
102
102
  "Executed at": "Executed at",
103
103
  "Executed workflow cannot be modified. Could be copied to a new version to modify.": "Executed workflow cannot be modified. Could be copied to a new version to modify.",
104
104
  "Execution history": "Execution history",
105
+ "Version ID": "Version ID",
106
+ "Parent execution ID": "Parent execution ID",
107
+ "Triggered manually": "Triggered manually",
105
108
  "Timeout settings": "逾時設定",
106
109
  "0 means unlimited. If you set any other value and the execution is still not completed when the timeout is reached, the execution plan will be terminated and the remaining nodes will not be executed. Time spent in queue is not counted; timing starts only after it first enters a processor.": "0 表示不限制,設定其他任意值在到期仍未執行完成時,執行計畫將被終止,剩餘節點不再執行。處於佇列中的執行計畫不計時,僅在首次進入處理器後開始計時。",
107
110
  "Exit when query result is null": "Exit when query result is null",
@@ -111,6 +114,7 @@
111
114
  "Failed to satisfy node configurations.": "Failed to satisfy node configurations.",
112
115
  "False": "False",
113
116
  "Fields that are not assigned a value will be set to the default value, and those that do not have a default value are set to null.": "Fields that are not assigned a value will be set to the default value, and those that do not have a default value are set to null.",
117
+ "Failed to save trigger": "保存觸發器失敗",
114
118
  "First condition": "First condition",
115
119
  "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.": "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.",
116
120
  "From left to right, attempt each branch sequentially based on the configured conditions. Only branches that meet the conditions will be executed. Otherwise, the next branch will be attempted. If none of the branches meet the conditions, it can either exit the process or continue to the next node based on configuration.": "From left to right, attempt each branch sequentially based on the configured conditions. Only branches that meet the conditions will be executed. Otherwise, the next branch will be attempted. If none of the branches meet the conditions, it can either exit the process or continue to the next node based on configuration.",
@@ -183,6 +187,7 @@
183
187
  "Scope variables": "Scope variables",
184
188
  "Seconds": "秒",
185
189
  "Select context": "Select context",
190
+ "Select field": "選擇欄位",
186
191
  "Select users": "Select users",
187
192
  "Select workflow": "Select workflow",
188
193
  "Single record": "Single record",
@@ -251,7 +256,10 @@
251
256
  "When no condition matches": "When no condition matches",
252
257
  "Will be executed in the background as a queued task.": "Will be executed in the background as a queued task.",
253
258
  "Workflow": "Workflow",
259
+ "Workflow title": "工作流名稱",
260
+ "Workflow not executed": "工作流未執行",
254
261
  "Workflow executed, the result status is <1>{{statusText}}</1><2>View the execution</2>": "Workflow executed, the result status is <1>{{statusText}}</1><2>View the execution</2>",
262
+ "Workflow was not triggered because the current request did not meet the trigger requirements.": "目前請求未滿足觸發要求,工作流未觸發。",
255
263
  "Workflow of execution is not existed": "Workflow of execution is not existed",
256
264
  "Workflow tasks": "Workflow tasks",
257
265
  "Workflow todos": "Workflow todos",
@@ -266,5 +274,17 @@
266
274
  "Impacted dependent node variables": "引用目前節點變數的節點",
267
275
  "Keep variable references": "保留變數引用",
268
276
  "Keeping variable references requires manual adjustment, otherwise workflow may fail.": "已保留變數引用,請手動調整,否則工作流執行可能出錯。",
269
- "Failed to update node variables": "更新節點變數失敗"
277
+ "Failed to update node variables": "更新節點變數失敗",
278
+ "Unsupported node": "Unsupported node",
279
+ "This node type is not available in the new canvas yet.": "This node type is not available in the new canvas yet.",
280
+ "This node's configuration has not been migrated to the new canvas yet.": "This node's configuration has not been migrated to the new canvas yet.",
281
+ "This trigger type is not available in the new canvas yet.": "此觸發器類型尚未在新畫布中支援。",
282
+ "This trigger's configuration has not been migrated to the new canvas yet.": "此觸發器的配置尚未遷移到新畫布。",
283
+ "Node title": "Node title",
284
+ "Trigger title": "觸發器標題",
285
+ "Failed to add node": "Failed to add node",
286
+ "Failed to delete node": "Failed to delete node",
287
+ "Failed to save node": "Failed to save node",
288
+ "Failed to run": "Failed to run",
289
+ "Copied node": "Copied node"
270
290
  }
@@ -1 +1 @@
1
- {"name":"cron-parser","version":"4.4.0","description":"Node.js library for parsing crontab instructions","main":"lib/parser.js","types":"index.d.ts","typesVersions":{"<4.1":{"*":["types/ts3/*"]}},"directories":{"test":"test"},"scripts":{"test:tsd":"tsd","test:unit":"TZ=UTC tap ./test/*.js","test:cover":"TZ=UTC tap --coverage-report=html ./test/*.js","lint":"eslint .","lint:fix":"eslint --fix .","test":"npm run lint && npm run test:unit && npm run test:tsd"},"repository":{"type":"git","url":"https://github.com/harrisiirak/cron-parser.git"},"keywords":["cron","crontab","parser"],"author":"Harri Siirak","contributors":["Nicholas Clawson","Daniel Prentis <daniel@salsitasoft.com>","Renault John Lecoultre","Richard Astbury <richard.astbury@gmail.com>","Meaglin Wasabi <Meaglin.wasabi@gmail.com>","Mike Kusold <hello@mikekusold.com>","Alex Kit <alex.kit@atmajs.com>","Santiago Gimeno <santiago.gimeno@gmail.com>","Daniel <darc.tec@gmail.com>","Christian Steininger <christian.steininger.cs@gmail.com>","Mykola Piskovyi <m.piskovyi@gmail.com>","Brian Vaughn <brian.david.vaughn@gmail.com>","Nicholas Clawson <nickclaw@gmail.com>","Yasuhiroki <yasuhiroki.duck@gmail.com>","Nicholas Clawson <nickclaw@gmail.com>","Brendan Warkentin <faazshift@gmail.com>","Charlie Fish <fishcharlie.code@gmail.com>","Ian Graves <ian+diskimage@iangrav.es>","Andy Thompson <me@andytson.com>","Regev Brody <regevbr@gmail.com>"],"license":"MIT","dependencies":{"luxon":"^1.28.0"},"devDependencies":{"eslint":"^8.2.0","sinon":"^10.0.0","tap":"^16.0.1","tsd":"^0.19.0"},"engines":{"node":">=0.8"},"browser":{"fs":false},"tap":{"check-coverage":false},"tsd":{"directory":"test","compilerOptions":{"lib":["es2017","dom"]}},"_lastModified":"2026-07-11T16:39:33.444Z"}
1
+ {"name":"cron-parser","version":"4.4.0","description":"Node.js library for parsing crontab instructions","main":"lib/parser.js","types":"index.d.ts","typesVersions":{"<4.1":{"*":["types/ts3/*"]}},"directories":{"test":"test"},"scripts":{"test:tsd":"tsd","test:unit":"TZ=UTC tap ./test/*.js","test:cover":"TZ=UTC tap --coverage-report=html ./test/*.js","lint":"eslint .","lint:fix":"eslint --fix .","test":"npm run lint && npm run test:unit && npm run test:tsd"},"repository":{"type":"git","url":"https://github.com/harrisiirak/cron-parser.git"},"keywords":["cron","crontab","parser"],"author":"Harri Siirak","contributors":["Nicholas Clawson","Daniel Prentis <daniel@salsitasoft.com>","Renault John Lecoultre","Richard Astbury <richard.astbury@gmail.com>","Meaglin Wasabi <Meaglin.wasabi@gmail.com>","Mike Kusold <hello@mikekusold.com>","Alex Kit <alex.kit@atmajs.com>","Santiago Gimeno <santiago.gimeno@gmail.com>","Daniel <darc.tec@gmail.com>","Christian Steininger <christian.steininger.cs@gmail.com>","Mykola Piskovyi <m.piskovyi@gmail.com>","Brian Vaughn <brian.david.vaughn@gmail.com>","Nicholas Clawson <nickclaw@gmail.com>","Yasuhiroki <yasuhiroki.duck@gmail.com>","Nicholas Clawson <nickclaw@gmail.com>","Brendan Warkentin <faazshift@gmail.com>","Charlie Fish <fishcharlie.code@gmail.com>","Ian Graves <ian+diskimage@iangrav.es>","Andy Thompson <me@andytson.com>","Regev Brody <regevbr@gmail.com>"],"license":"MIT","dependencies":{"luxon":"^1.28.0"},"devDependencies":{"eslint":"^8.2.0","sinon":"^10.0.0","tap":"^16.0.1","tsd":"^0.19.0"},"engines":{"node":">=0.8"},"browser":{"fs":false},"tap":{"check-coverage":false},"tsd":{"directory":"test","compilerOptions":{"lib":["es2017","dom"]}},"_lastModified":"2026-07-16T13:29:05.586Z"}
@@ -1 +1 @@
1
- {"name":"joi","description":"Object schema validation","version":"17.13.3","repository":"git://github.com/hapijs/joi","main":"lib/index.js","types":"lib/index.d.ts","browser":"dist/joi-browser.min.js","files":["lib/**/*","dist/*"],"keywords":["schema","validation"],"dependencies":{"@hapi/hoek":"^9.3.0","@hapi/topo":"^5.1.0","@sideway/address":"^4.1.5","@sideway/formula":"^3.0.1","@sideway/pinpoint":"^2.0.0"},"devDependencies":{"@hapi/bourne":"2.x.x","@hapi/code":"8.x.x","@hapi/joi-legacy-test":"npm:@hapi/joi@15.x.x","@hapi/lab":"^25.1.3","@types/node":"^14.18.63","typescript":"4.3.x"},"scripts":{"prepublishOnly":"cd browser && npm install && npm run build","test":"lab -t 100 -a @hapi/code -L -Y","test-cov-html":"lab -r html -o coverage.html -a @hapi/code"},"license":"BSD-3-Clause","_lastModified":"2026-07-11T16:39:33.172Z"}
1
+ {"name":"joi","description":"Object schema validation","version":"17.13.3","repository":"git://github.com/hapijs/joi","main":"lib/index.js","types":"lib/index.d.ts","browser":"dist/joi-browser.min.js","files":["lib/**/*","dist/*"],"keywords":["schema","validation"],"dependencies":{"@hapi/hoek":"^9.3.0","@hapi/topo":"^5.1.0","@sideway/address":"^4.1.5","@sideway/formula":"^3.0.1","@sideway/pinpoint":"^2.0.0"},"devDependencies":{"@hapi/bourne":"2.x.x","@hapi/code":"8.x.x","@hapi/joi-legacy-test":"npm:@hapi/joi@15.x.x","@hapi/lab":"^25.1.3","@types/node":"^14.18.63","typescript":"4.3.x"},"scripts":{"prepublishOnly":"cd browser && npm install && npm run build","test":"lab -t 100 -a @hapi/code -L -Y","test-cov-html":"lab -r html -o coverage.html -a @hapi/code"},"license":"BSD-3-Clause","_lastModified":"2026-07-16T13:29:05.297Z"}
@@ -1 +1 @@
1
- {"name":"lru-cache","description":"A cache object that deletes the least-recently-used items.","version":"11.3.5","author":"Isaac Z. Schlueter <i@izs.me>","keywords":["mru","lru","cache"],"sideEffects":false,"scripts":{"build":"npm run prepare","prepare":"tshy && bash scripts/build.sh","pretest":"npm run prepare","presnap":"npm run prepare","test":"tap","snap":"tap","preversion":"npm test","postversion":"npm publish","prepublishOnly":"git push origin --follow-tags","format":"prettier --write .","typedoc":"typedoc --tsconfig ./.tshy/esm.json ./src/*.ts","benchmark-results-typedoc":"bash scripts/benchmark-results-typedoc.sh","prebenchmark":"npm run prepare","benchmark":"make -C benchmark","preprofile":"npm run prepare","profile":"make -C benchmark profile","lint":"oxlint --fix src test","postsnap":"npm run lint","postlint":"npm run format"},"main":"./dist/commonjs/index.min.js","types":"./dist/commonjs/index.d.ts","tshy":{"esmDialects":["node","browser"],"exports":{"./raw":"./src/index.ts",".":{"import":{"node":{"types":"./dist/esm/node/index.d.ts","default":"./dist/esm/node/index.min.js"},"browser":{"types":"./dist/esm/browser/index.d.ts","default":"./dist/esm/browser/index.min.js"},"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.min.js"},"require":{"types":"./dist/commonjs/index.d.ts","default":"./dist/commonjs/index.min.js"}}},"selfLink":false},"repository":{"type":"git","url":"git+ssh://git@github.com/isaacs/node-lru-cache.git"},"devDependencies":{"benchmark":"^2.1.4","esbuild":"^0.25.9","marked":"^4.2.12","mkdirp":"^3.0.1","oxlint":"^1.58.0","oxlint-tsgolint":"^0.19.0","prettier":"^3.8.1","tap":"^21.6.3","tshy":"^4.1.1","typedoc":"^0.28.18"},"license":"BlueOak-1.0.0","files":["dist"],"engines":{"node":"20 || >=22"},"exports":{"./raw":{"import":{"node":{"types":"./dist/esm/node/index.d.ts","default":"./dist/esm/node/index.js"},"browser":{"types":"./dist/esm/browser/index.d.ts","default":"./dist/esm/browser/index.js"},"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/commonjs/index.d.ts","default":"./dist/commonjs/index.js"}},".":{"import":{"node":{"types":"./dist/esm/node/index.d.ts","default":"./dist/esm/node/index.min.js"},"browser":{"types":"./dist/esm/browser/index.d.ts","default":"./dist/esm/browser/index.min.js"},"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.min.js"},"require":{"types":"./dist/commonjs/index.d.ts","default":"./dist/commonjs/index.min.js"}}},"type":"module","module":"./dist/esm/index.min.js","_lastModified":"2026-07-11T16:39:32.419Z"}
1
+ {"name":"lru-cache","description":"A cache object that deletes the least-recently-used items.","version":"11.3.5","author":"Isaac Z. Schlueter <i@izs.me>","keywords":["mru","lru","cache"],"sideEffects":false,"scripts":{"build":"npm run prepare","prepare":"tshy && bash scripts/build.sh","pretest":"npm run prepare","presnap":"npm run prepare","test":"tap","snap":"tap","preversion":"npm test","postversion":"npm publish","prepublishOnly":"git push origin --follow-tags","format":"prettier --write .","typedoc":"typedoc --tsconfig ./.tshy/esm.json ./src/*.ts","benchmark-results-typedoc":"bash scripts/benchmark-results-typedoc.sh","prebenchmark":"npm run prepare","benchmark":"make -C benchmark","preprofile":"npm run prepare","profile":"make -C benchmark profile","lint":"oxlint --fix src test","postsnap":"npm run lint","postlint":"npm run format"},"main":"./dist/commonjs/index.min.js","types":"./dist/commonjs/index.d.ts","tshy":{"esmDialects":["node","browser"],"exports":{"./raw":"./src/index.ts",".":{"import":{"node":{"types":"./dist/esm/node/index.d.ts","default":"./dist/esm/node/index.min.js"},"browser":{"types":"./dist/esm/browser/index.d.ts","default":"./dist/esm/browser/index.min.js"},"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.min.js"},"require":{"types":"./dist/commonjs/index.d.ts","default":"./dist/commonjs/index.min.js"}}},"selfLink":false},"repository":{"type":"git","url":"git+ssh://git@github.com/isaacs/node-lru-cache.git"},"devDependencies":{"benchmark":"^2.1.4","esbuild":"^0.25.9","marked":"^4.2.12","mkdirp":"^3.0.1","oxlint":"^1.58.0","oxlint-tsgolint":"^0.19.0","prettier":"^3.8.1","tap":"^21.6.3","tshy":"^4.1.1","typedoc":"^0.28.18"},"license":"BlueOak-1.0.0","files":["dist"],"engines":{"node":"20 || >=22"},"exports":{"./raw":{"import":{"node":{"types":"./dist/esm/node/index.d.ts","default":"./dist/esm/node/index.js"},"browser":{"types":"./dist/esm/browser/index.d.ts","default":"./dist/esm/browser/index.js"},"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/commonjs/index.d.ts","default":"./dist/commonjs/index.js"}},".":{"import":{"node":{"types":"./dist/esm/node/index.d.ts","default":"./dist/esm/node/index.min.js"},"browser":{"types":"./dist/esm/browser/index.d.ts","default":"./dist/esm/browser/index.min.js"},"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.min.js"},"require":{"types":"./dist/commonjs/index.d.ts","default":"./dist/commonjs/index.min.js"}}},"type":"module","module":"./dist/esm/index.min.js","_lastModified":"2026-07-16T13:29:04.515Z"}
@@ -1 +1 @@
1
- {"name":"nodejs-snowflake","collaborators":["Utkarsh Srivastava <utkarsh@sagacious.dev>"],"description":"Generate time sortable 64 bits unique ids for distributed systems (inspired from twitter snowflake)","version":"2.0.1","license":"Apache 2.0","repository":{"type":"git","url":"https://github.com/utkarsh-pro/nodejs-snowflake.git"},"files":["nodejs_snowflake_bg.wasm","nodejs_snowflake.js","nodejs_snowflake.d.ts"],"main":"nodejs_snowflake.js","types":"nodejs_snowflake.d.ts","_lastModified":"2026-07-11T16:39:32.246Z"}
1
+ {"name":"nodejs-snowflake","collaborators":["Utkarsh Srivastava <utkarsh@sagacious.dev>"],"description":"Generate time sortable 64 bits unique ids for distributed systems (inspired from twitter snowflake)","version":"2.0.1","license":"Apache 2.0","repository":{"type":"git","url":"https://github.com/utkarsh-pro/nodejs-snowflake.git"},"files":["nodejs_snowflake_bg.wasm","nodejs_snowflake.js","nodejs_snowflake.d.ts"],"main":"nodejs_snowflake.js","types":"nodejs_snowflake.d.ts","_lastModified":"2026-07-16T13:29:04.336Z"}
@@ -547,7 +547,8 @@ class Dispatcher {
547
547
  }
548
548
  return processor;
549
549
  };
550
- const lock = await this.plugin.app.lockManager.tryAcquire((0, import_utils.getExecutionLockKey)(execution.id), 6e4);
550
+ const lockManager = this.plugin.app.lockManager;
551
+ const lock = await lockManager.tryAcquire((0, import_utils.getExecutionLockKey)(execution.id), 6e4);
551
552
  try {
552
553
  return await lock.runExclusive(run, 6e4);
553
554
  } catch (error) {
@@ -108,7 +108,8 @@ class ExecutionTimeoutManager {
108
108
  }
109
109
  async abortExecutionIfExpiredWithLock(executionOrId) {
110
110
  const executionId = typeof executionOrId === "object" ? executionOrId.id : executionOrId;
111
- const lock = await this.plugin.app.lockManager.tryAcquire((0, import_utils.getExecutionLockKey)(executionId), EXECUTION_LOCK_TIMEOUT);
111
+ const lockManager = this.plugin.app.lockManager;
112
+ const lock = await lockManager.tryAcquire((0, import_utils.getExecutionLockKey)(executionId), EXECUTION_LOCK_TIMEOUT);
112
113
  return lock.runExclusive(async () => {
113
114
  const execution = await this.plugin.db.getRepository("executions").findOne({
114
115
  filterByTk: executionId
@@ -12,6 +12,7 @@ export declare class WorkflowValidationError extends Error {
12
12
  errors: Record<string, string>;
13
13
  constructor(errors: Record<string, string>);
14
14
  }
15
+ export declare function list(context: Context, next: any): Promise<void>;
15
16
  export declare function create(context: Context, next: any): Promise<void>;
16
17
  export declare function update(context: Context, next: any): Promise<void>;
17
18
  export declare function destroy(context: Context, next: any): Promise<void>;
@@ -40,6 +40,7 @@ __export(workflows_exports, {
40
40
  create: () => create,
41
41
  destroy: () => destroy,
42
42
  execute: () => execute,
43
+ list: () => list,
43
44
  revision: () => revision,
44
45
  sync: () => sync,
45
46
  update: () => update
@@ -72,9 +73,14 @@ function validateWorkflow(context, plugin, { type, config }) {
72
73
  }
73
74
  }
74
75
  }
76
+ async function list(context, next) {
77
+ return import_actions.default.list(context, next);
78
+ }
75
79
  async function create(context, next) {
76
80
  const plugin = context.app.pm.get(import_Plugin.default);
77
- const { values } = context.action.params;
81
+ const values = { ...context.action.params.values || {} };
82
+ delete values.invalid;
83
+ context.action.mergeParams({ values }, { values: "overwrite" });
78
84
  validateWorkflow(context, plugin, values);
79
85
  return import_actions.default.create(context, next);
80
86
  }
@@ -139,10 +145,12 @@ async function destroy(context, next) {
139
145
  async function revision(context, next) {
140
146
  const repository = import_actions.utils.getRepositoryFromParams(context);
141
147
  const { filterByTk, filter = {}, values = {} } = context.action.params;
148
+ const revisionValues = { ...values };
149
+ delete revisionValues.invalid;
142
150
  context.body = await repository.revision({
143
151
  filterByTk,
144
152
  filter,
145
- values,
153
+ values: revisionValues,
146
154
  context
147
155
  });
148
156
  await next();
@@ -184,6 +192,12 @@ async function execute(context, next) {
184
192
  let processor;
185
193
  try {
186
194
  processor = await plugin.execute(workflow, values, { manually: true });
195
+ if (processor === null) {
196
+ context.body = {
197
+ execution: null
198
+ };
199
+ return next();
200
+ }
187
201
  if (!processor) {
188
202
  return context.throw(400, "workflow not triggered");
189
203
  }
@@ -220,6 +234,7 @@ async function execute(context, next) {
220
234
  create,
221
235
  destroy,
222
236
  execute,
237
+ list,
223
238
  revision,
224
239
  sync,
225
240
  update
@@ -0,0 +1,13 @@
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 { Migration } from '@nocobase/server';
10
+ export default class extends Migration {
11
+ on: string;
12
+ up(): Promise<void>;
13
+ }
@@ -0,0 +1,56 @@
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
+ var __defProp = Object.defineProperty;
11
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
12
+ var __getOwnPropNames = Object.getOwnPropertyNames;
13
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
14
+ var __export = (target, all) => {
15
+ for (var name in all)
16
+ __defProp(target, name, { get: all[name], enumerable: true });
17
+ };
18
+ var __copyProps = (to, from, except, desc) => {
19
+ if (from && typeof from === "object" || typeof from === "function") {
20
+ for (let key of __getOwnPropNames(from))
21
+ if (!__hasOwnProp.call(to, key) && key !== except)
22
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
23
+ }
24
+ return to;
25
+ };
26
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
27
+ var remove_workflow_validation_exports = {};
28
+ __export(remove_workflow_validation_exports, {
29
+ default: () => remove_workflow_validation_default
30
+ });
31
+ module.exports = __toCommonJS(remove_workflow_validation_exports);
32
+ var import_server = require("@nocobase/server");
33
+ class remove_workflow_validation_default extends import_server.Migration {
34
+ on = "afterSync";
35
+ async up() {
36
+ const { db } = this.context;
37
+ const workflows = db.getCollection("workflows");
38
+ const tableInfo = workflows.getTableNameWithSchema();
39
+ await db.sequelize.transaction(async (transaction) => {
40
+ const tableExists = await this.queryInterface.tableExists(tableInfo, { transaction });
41
+ if (!tableExists) {
42
+ return;
43
+ }
44
+ const describeTable = this.queryInterface.describeTable.bind(this.queryInterface);
45
+ const columns = await describeTable(tableInfo, { transaction });
46
+ if (!columns.validation) {
47
+ return;
48
+ }
49
+ await this.queryInterface.removeColumn(tableInfo, "validation", { transaction });
50
+ if (db.sequelize.getDialect() === "sqlite") {
51
+ const syncOptions = { hooks: false, transaction };
52
+ await workflows.model.sync(syncOptions);
53
+ }
54
+ });
55
+ }
56
+ }
@@ -30,7 +30,7 @@ export default class CollectionTrigger extends Trigger {
30
30
  code?: string;
31
31
  };
32
32
  prepare(workflow: WorkflowModel, data: Model | Record<string, any> | string | number, options: any): Promise<{
33
- data: any;
33
+ data: string | number | Record<string, any> | Model<any, any>;
34
34
  }>;
35
35
  on(workflow: WorkflowModel): void;
36
36
  off(workflow: WorkflowModel): void;
@@ -305,6 +305,9 @@ class CollectionTrigger extends import__.default {
305
305
  // }
306
306
  async execute(workflow, values, options) {
307
307
  const ctx = await this.prepare(workflow, values == null ? void 0 : values.data, options);
308
+ if (!ctx) {
309
+ return null;
310
+ }
308
311
  const [dataSourceName] = (0, import_data_source_manager.parseCollectionName)(workflow.config.collection);
309
312
  const { transaction } = options;
310
313
  return this.workflow.trigger(workflow, ctx, {
@@ -26,6 +26,6 @@ export declare abstract class Trigger {
26
26
  [key: string]: string;
27
27
  };
28
28
  sync?: boolean;
29
- execute?(workflow: WorkflowModel, values: any, options: Transactionable): void | Processor | Promise<void | Processor>;
29
+ execute?(workflow: WorkflowModel, values: any, options: Transactionable): void | Processor | null | Promise<void | Processor | null>;
30
30
  }
31
31
  export default Trigger;
@@ -19,6 +19,7 @@ export default class WorkflowModel extends Model {
19
19
  description?: string;
20
20
  type: string;
21
21
  config: any;
22
+ invalid: boolean;
22
23
  options: {
23
24
  timeout?: number;
24
25
  stackLimit?: number;
@@ -32,5 +32,5 @@ export declare function getWorkflowExecutionLogMeta(workflow: WorkflowModel, pro
32
32
  lastJobStatus: number;
33
33
  };
34
34
  export declare function abortExecution(plugin: PluginWorkflowServer, execution: ExecutionModel, options?: AbortOptions): Promise<boolean>;
35
- export declare function toJSON(data: any): any;
35
+ export declare function toJSON<T>(data: T): T;
36
36
  export {};
@@ -164,6 +164,16 @@ async function abortExecution(plugin, execution, options = {}) {
164
164
  throw error;
165
165
  }
166
166
  }
167
+ function getHiddenFieldNames(model) {
168
+ const { collection } = model.constructor;
169
+ if (!(collection == null ? void 0 : collection.fields)) {
170
+ return [];
171
+ }
172
+ return Array.from(collection.fields.values()).filter((field) => {
173
+ var _a;
174
+ return (_a = field == null ? void 0 : field.options) == null ? void 0 : _a.hidden;
175
+ }).map((field) => field.options.name).filter((name) => typeof name === "string");
176
+ }
167
177
  function toJSON(data) {
168
178
  if (Array.isArray(data)) {
169
179
  return data.map(toJSON);
@@ -171,7 +181,10 @@ function toJSON(data) {
171
181
  if (!(data instanceof import_database.Model) || !data) {
172
182
  return data;
173
183
  }
174
- const result = data.get();
184
+ const result = { ...data.get() };
185
+ for (const fieldName of getHiddenFieldNames(data)) {
186
+ delete result[fieldName];
187
+ }
175
188
  Object.keys(data.constructor.associations).forEach((key) => {
176
189
  if (result[key] != null && typeof result[key] === "object") {
177
190
  result[key] = toJSON(result[key]);
@@ -428,6 +428,7 @@ declare const _default: {
428
428
  properties: {
429
429
  execution: {
430
430
  type: string;
431
+ nullable: boolean;
431
432
  properties: {
432
433
  id: {
433
434
  type: string;
@@ -394,7 +394,8 @@ var swagger_default = {
394
394
  "**autoRevision:** When set to `1`, if the workflow has never been executed",
395
395
  "(`executed === 0`), a new revision is created automatically after execution.",
396
396
  "",
397
- "**Returns:** `{ execution: { id, status }, newVersionId? }`"
397
+ "**Returns:** `{ execution: { id, status } | null, newVersionId? }`.",
398
+ "`execution` is `null` when the request is valid but no execution is started."
398
399
  ].join("\n"),
399
400
  parameters: [
400
401
  {
@@ -433,6 +434,7 @@ var swagger_default = {
433
434
  properties: {
434
435
  execution: {
435
436
  type: "object",
437
+ nullable: true,
436
438
  properties: {
437
439
  id: { type: "integer", description: "Execution ID" },
438
440
  status: { type: "integer", description: "Execution status code" }
@@ -449,7 +451,7 @@ var swagger_default = {
449
451
  }
450
452
  },
451
453
  400: {
452
- description: "Bad Request. Request body or `filterByTk` is missing/invalid, or workflow not triggered."
454
+ description: "Bad Request. Request body or `filterByTk` is missing/invalid."
453
455
  },
454
456
  404: { description: "Not Found. Workflow does not exist." }
455
457
  }
package/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "description": "A powerful BPM tool that provides foundational support for business automation, with the capability to extend unlimited triggers and nodes.",
7
7
  "description.zh-CN": "一个强大的 BPM 工具,为业务自动化提供基础支持,并且可任意扩展更多的触发器和节点。",
8
8
  "description.ru-RU": "Мощный инструмент BPM, обеспечивающий базовую поддержку автоматизации бизнес-процессов с возможностью неограниченного расширения триггеров и узлов.",
9
- "version": "2.2.0-beta.13",
9
+ "version": "2.2.0-beta.15",
10
10
  "license": "Apache-2.0",
11
11
  "main": "./dist/server/index.js",
12
12
  "homepage": "https://docs.nocobase.com/handbook/workflow",
@@ -18,6 +18,7 @@
18
18
  "@formily/core": "2.x",
19
19
  "@formily/react": "2.x",
20
20
  "@types/ejs": "^3.1.1",
21
+ "ahooks": "^3.7.2",
21
22
  "antd": "5.x",
22
23
  "classnames": "^2.3.1",
23
24
  "cron-parser": "4.4.0",
@@ -36,6 +37,7 @@
36
37
  "peerDependencies": {
37
38
  "@nocobase/actions": "2.x",
38
39
  "@nocobase/client": "2.x",
40
+ "@nocobase/client-v2": "2.x",
39
41
  "@nocobase/database": "2.x",
40
42
  "@nocobase/evaluators": "2.x",
41
43
  "@nocobase/logger": "2.x",
@@ -49,7 +51,7 @@
49
51
  "@nocobase/test": "2.x",
50
52
  "@nocobase/utils": "2.x"
51
53
  },
52
- "gitHead": "8fff12b34f41f4336075cdafcc700ec694f9b78a",
54
+ "gitHead": "4c471f6b7d26adc412b2cc1d91264572296ca873",
53
55
  "keywords": [
54
56
  "Workflow"
55
57
  ]
@@ -1,10 +0,0 @@
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([["618"],{5705:function(e,t,r){r.r(t),r.d(t,{WorkflowPane:function(){return eC}});var n,o,i=r(9155),c=r.n(i),a=r(2059),l=r(9452),u=r(5230),s=r(3342),p=r(4421);function m(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 d(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}var f=function(e){var t,r=e.request,n=(e.filter,function(e,t){if(null==e)return{};var r,n,o,i={};if("u">typeof Reflect&&Reflect.ownKeys){for(o=0,r=Reflect.ownKeys(Object(e));o<r.length;o++)n=r[o],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n]);return i}if(i=function(e,t){if(null==e)return{};var r,n,o={},i=Object.getOwnPropertyNames(e);for(n=0;n<i.length;n++)r=i[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r]);return o}(e,t),Object.getOwnPropertySymbols)for(o=0,r=Object.getOwnPropertySymbols(e);o<r.length;o++)n=r[o],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n]);return i}(e,["request","filter"])),o=(0,s.useRecord)(),i=d(m({},n),{request:d(m({},r),{params:d(m({disableDefaultAppends:!0},null==r?void 0:r.params),{filter:d(m({},null==r||null==(t=r.params)?void 0:t.filter),{key:o.key})})})});return c().createElement(s.ResourceActionProvider,i)},y=r(5953),b=r(4442),v=r(6072),g=function(){var e=(0,y.useTranslation)().t,t=(0,s.useRecord)().id,r=(0,s.useActionContext)().setVisible,n=(0,s.useGetAriaLabelOfAction)("Configure").getAriaLabel;return c().createElement(b.Link,{"aria-label":n(),to:(0,v.Yz)(t),onClick:function(){return r(!1)}},e("Configure"))};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 x(e){var t,r,n,o=e.component,a=e.children,l=function(e,t){if(null==e)return{};var r,n,o,i={};if("u">typeof Reflect&&Reflect.ownKeys){for(o=0,r=Reflect.ownKeys(Object(e));o<r.length;o++)n=r[o],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n]);return i}if(i=function(e,t){if(null==e)return{};var r,n,o={},i=Object.getOwnPropertyNames(e);for(n=0;n<i.length;n++)r=i[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r]);return o}(e,t),Object.getOwnPropertySymbols)for(o=0,r=Object.getOwnPropertySymbols(e);o<r.length;o++)n=r[o],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n]);return i}(e,["component","children"]),p=function(e){if(Array.isArray(e))return e}(t=(0,i.useState)(!1))||function(e){var t,r,n=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var o=[],i=!0,c=!1;try{for(n=n.call(e);!(i=(t=n.next()).done)&&(o.push(t.value),2!==o.length);i=!0);}catch(e){c=!0,r=e}finally{try{i||null==n.return||n.return()}finally{if(c)throw r}}return o}}(t)||function(e){if(e){if("string"==typeof e)return h(e,2);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return h(e,2)}}(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.")}(),m=p[0],d=p[1],f=(0,u.useFieldSchema)();return c().createElement(s.ActionContextProvider,{value:{visible:m,setVisible:d,fieldSchema:f}},c().createElement(void 0===o?"div":o,(r=function(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}({},l),n=n={onClick:function(){d(!0)}},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}),r),a),c().createElement(s.SchemaComponent,{schema:f,onlyRenderProperties:!0}))}var O=r(3872),w=r(6481),C=r(7428),A=r(5827),S=r(2662);function P(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}var j={title:{"x-component":"CollectionField","x-decorator":"FormItem"},type:{"x-decorator":"FormItem",title:'{{t("Trigger type", { ns: "'.concat(O.CU,'" })}}'),"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(O.CU,'" }) }}'),description:'{{ t("Execute workflow asynchronously or synchronously based on trigger type, and could not be changed after created.", { ns: "'.concat(O.CU,'" }) }}'),"x-decorator":"FormItem","x-component":"SyncOptionSelect","x-component-props":{options:[{label:'{{ t("Asynchronously", { ns: "'.concat(O.CU,'" }) }}'),value:!1,tooltip:'{{ t("Will be executed in the background as a queued task.", { ns: "'.concat(O.CU,'" }) }}')},{label:'{{ t("Synchronously", { ns: "'.concat(O.CU,'" }) }}'),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(O.CU,'" }) }}')}]}},triggerPreset:{type:"void","x-component":"TriggerPresetFieldset"},enabled:{"x-component":"CollectionField","x-decorator":"FormItem"},description:{"x-component":"CollectionField","x-decorator":"FormItem"},categories:{type:"array",title:'{{ t("Category", { ns: "'.concat(O.CU,'" }) }}'),"x-decorator":"FormItem","x-component":"CollectionField","x-collection-field":"workflows.categories"},options:{type:"object","x-decorator":"FormItem",title:'{{ t("Advance options", { ns: "'.concat(O.CU,'" }) }}'),"x-component":"Fieldset",properties:{timeout:{type:"number",title:'{{ t("Timeout settings", { ns: "'.concat(O.CU,'" }) }}'),description:'{{ t("0 means unlimited. If you set any other value and the execution is still not completed when the timeout is reached, the execution plan will be terminated and the remaining nodes will not be executed. Time spent in queue is not counted; timing starts only after it first enters a processor.", { ns: "'.concat(O.CU,'" }) }}'),"x-decorator":"FormItem","x-component":"TimeoutInput",default:0},stackLimit:{type:"number",title:'{{ t("Maximum number of cycling triggers", { ns: "'.concat(O.CU,'" }) }}'),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(O.CU,'" }) }}'),"x-decorator":"FormItem",default:1,"x-component":"InputNumber","x-component-props":{min:1,precision:0,className:"auto-width"}},deleteExecutionOnStatus:{type:"array",title:'{{ t("Auto delete history when execution is on end status", { ns: "'.concat(O.CU,'" }) }}'),"x-decorator":"FormItem","x-component":"Select","x-component-props":{multiple:!0,optionRender:S.Qg,tagRender:S.lP},enum:C.$A.filter(function(e){return!!e.value})}}}},E={name:"workflow",type:"void",properties:{provider:{type:"void","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:A.A,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":"useResourceFilterActionProps","x-component-props":{icon:"FilterOutlined",nonfilterable:["id","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(O.CU,'" })}}'),"x-decorator":"Tooltip","x-decorator-props":{title:'{{ t("Sync enabled status of all workflows from database", { ns: "'.concat(O.CU,'" }) }}')},"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:j.title,type:j.type,triggerPreset:j.triggerPreset,sync:j.sync,categories:j.categories,description:j.description,options:j.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(O.CU,'" }) }}'),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(O.CU,'" }) }}'),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(O.CU,'" }) }}'),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("Enabled", { ns: "'.concat(O.CU,'" }) }}'),properties:{enabled:{type:"boolean","x-component":"WorkflowEnabledSwitch",default:!1}}},"stats.executed":{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",title:'{{ t("Executed", { ns: "'.concat(O.CU,'" }) }}'),properties:{"stats.executed":{type:"number","x-decorator":"OpenDrawer","x-decorator-props":{component:function(e){var t=(0,s.useCollectionRecordData)();return c().createElement("a",P({"aria-label":"executed-".concat(t.title)},e))}},"x-component":"InputNumber","x-read-pretty":!0,properties:{drawer:w.M}}}},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:j.title,type:(n=P({},j.type),o=o={"x-disabled":!0},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n),sync:j.sync,categories:j.categories,description:j.description,options:j.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(O.CU,'" })}}'),"x-component":"Action.Link","x-component-props":{openSize:"small"},properties:{modal:{type:"void",title:'{{t("Duplicate to new workflow", { ns: "'.concat(O.CU,'" })}}'),"x-decorator":"FormV2","x-use-decorator-props":"useDuplicateWorkflowFormProps","x-component":"Action.Modal",properties:{title:j.title,description:j.description,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 }}"}}}}}}}}}}}}}},k=r(5324),F=r(9603),D=r(512);function T(e){var t=e.data,r=t.label,n=t.color,o=t.options,i=(0,s.useCompile)();return c().createElement(a.Space,{direction:"vertical"},c().createElement(a.Tag,{color:n},i(r)),c().createElement(a.Typography.Text,{type:"secondary",style:{whiteSpace:"normal"}},i(o.description)))}var I=r(7375),R=r(6799),U=r(166),V=r(6773);function M(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 N(e,t,r,n,o,i,c){try{var a=e[i](c),l=a.value}catch(e){r(e);return}a.done?t(l):Promise.resolve(l).then(n,o)}function q(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function c(e){N(i,n,o,c,a,"next",e)}function a(e){N(i,n,o,c,a,"throw",e)}c(void 0)})}}function L(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 W(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function $(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,o=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var i=[],c=!0,a=!1;try{for(o=o.call(e);!(c=(r=o.next()).done)&&(i.push(r.value),!t||i.length!==t);c=!0);}catch(e){a=!0,n=e}finally{try{c||null==o.return||o.return()}finally{if(a)throw n}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return M(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 M(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 B(e,t){var r,n,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},c=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),a=Object.defineProperty;return a(c,"next",{value:l(0)}),a(c,"throw",{value:l(1)}),a(c,"return",{value:l(2)}),"function"==typeof Symbol&&a(c,Symbol.iterator,{value:function(){return this}}),c;function l(a){return function(l){var u=[a,l];if(r)throw TypeError("Generator is already executing.");for(;c&&(c=0,u[0]&&(i=0)),i;)try{if(r=1,n&&(o=2&u[0]?n.return:u[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,u[1])).done)return o;switch(n=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return i.label++,{value:u[1],done:!1};case 5:i.label++,n=u[1],u=[0];continue;case 7:u=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){i=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){i.label=u[1];break}if(6===u[0]&&i.label<o[1]){i.label=o[1],o=u;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(u);break}o[2]&&i.ops.pop(),i.trys.pop();continue}u=t.call(e,i)}catch(e){u=[6,e],n=0}finally{r=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}function z(){var e,t,r=(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 z=function(){return r},r}function K(e){var t=(0,R.useDraggable)({id:e.id,data:e.data}),r=t.attributes,n=t.listeners,o=t.setNodeRef;return c().createElement("div",L({ref:o},n,r),c().createElement("div",null,e.children))}function _(e){var t=(0,R.useDroppable)({id:e.id,data:e.data}),r=t.isOver,n=t.setNodeRef;return c().createElement("div",{ref:n,style:r?{color:"green"}:void 0},e.children)}var G=(0,u.observer)(function(e){var t=e.item;return c().createElement(_,{id:t.id.toString(),data:t},c().createElement("div",null,c().createElement(K,{id:t.id.toString(),data:t},c().createElement(H,{item:t}))))},{displayName:"TabTitle"}),H=function(e){var t=e.item,r=(0,y.useTranslation)().t,n=(0,s.useCompile)();return c().createElement(a.Space,null,c().createElement(a.Badge,{color:t.color}),r(n(t.title)))},Q=(0,u.observer)(function(e){var t=$((0,i.useState)(null),2),r=t[0],n=t[1],o=(0,i.useContext)(Y).refresh,a=(0,s.useAPIClient)(),l=(0,R.useSensor)(R.MouseSensor,{activationConstraint:{distance:10}}),u=(0,R.useSensors)(l);return c().createElement(R.DndContext,{sensors:u,onDragEnd:function(e){return q(function(){var t,r;return B(this,function(i){switch(i.label){case 0:if(t=e.active,r=e.over,setTimeout(function(){n(null)}),!(r&&r.id!==t.id))return[3,2];return[4,a.resource("workflowCategories").move({sourceId:t.id,targetId:r.id})];case 1:i.sent(),o(),i.label=2;case 2:return[2]}})})()},onDragStart:function(e){var t;n(null==(t=e.active)?void 0:t.data.current)}},e.children,c().createElement(R.DragOverlay,null,r?c().createElement("span",{style:{whiteSpace:"nowrap"}},c().createElement(H,{item:r})):null))},{displayName:"DndProvider"}),Y=(0,i.createContext)({});function J(e){var t=e.values,r=e.onEdit,n=e.onRemove,o=(0,s.useCompile)(),l=(0,i.useCallback)(function(e){switch(e.key){case"edit":r(t);break;case"delete":n(t.id)}},[r,n,t]);return c().createElement(a.Dropdown,{menu:{items:[{key:"edit",label:(0,O.vV)("Edit category")},{key:"delete",label:(0,O.vV)("Delete category")}],onClick:l}},c().createElement(I.MenuOutlined,{role:"button","aria-label":o(t.title),style:{padding:8,margin:"-8px"}}))}function X(){var e,t=(0,s.useResourceActionContext)(),r=t.run,n=t.setState,o=t.defaultRequest,p=$((0,i.useState)({tab:"all"}),2),m=p[0],d=p[1],f=$((0,i.useState)(m.tab),2),y=f[0],b=f[1],v=(0,s.useCompile)(),g=(0,s.useAPIClient)(),h=(0,u.useFieldSchema)(),x=a.App.useApp().modal,w=(0,s.useRequest)({resource:"workflowCategories",action:"list",params:{paginate:!1,sort:["sort"]}}),C=w.data,A=w.refresh,S=$((0,i.useState)(!1),2),P=S[0],j=S[1],E=(0,i.useMemo)(function(){return(0,l.createForm)()},[]),k=(0,i.useCallback)(function(e){j(!0);var t=(0,V.cloneDeep)(e);E.setValues(t)},[E]),F=(0,i.useCallback)(function(){j(!1),E.reset()},[E]),D=(0,i.useCallback)(function(e){x.confirm({title:v("{{t('Delete category')}}"),content:v("{{t('Are you sure you want to delete it?')}}"),onOk:function(){return q(function(){return B(this,function(t){switch(t.label){case 0:return[4,g.resource("workflowCategories").destroy({filter:{id:e}})];case 1:return t.sent(),e===+m.tab&&d({tab:"all"}),A(),r(),[2]}})})()}})},[m.tab]),T=(0,i.useMemo)(function(){if(!(null==C?void 0:C.data))return[];var e=C.data.sort(function(e,t){return e.sort-t.sort}).concat().map(function(e){return W(L({},e),{schema:h.properties.main})});return e.find(function(e){return"all"===e.id})||e.unshift({title:'{{t("All", { ns: "'.concat(O.CU,'" })}}'),id:"all",sort:0,closable:!1,schema:h.properties.main}),e.map(function(e){return{label:"all"!==e.id?c().createElement("div",{"data-no-dnd":"true"},c().createElement(G,{item:e})):v(e.title),key:String(e.id),closable:e.closable,closeIcon:c().createElement(J,{values:e,onEdit:k,onRemove:D}),children:c().createElement(a.Card,{variant:"borderless",style:{borderRadius:"0 0.5em 0.5em 0.5em"}},c().createElement(u.RecursionField,{name:y,schema:e.schema,onlyRenderProperties:!0}))}})},[v,null==C?void 0:C.data,y,k,D,h.properties.main]),I=(0,i.useCallback)(function(e){if(d({tab:e}),b((0,U.uid)()),"all"!==e){var t,i={$and:[null==o||null==(t=o.params)?void 0:t.filter,{"categories.id":e}]};r({filter:i}),null==n||n({categories:[+e],params:[{filter:i}]})}else r(),null==n||n({categories:[],params:[]})},[null==o||null==(e=o.params)?void 0:e.filter,r,n]);return((0,i.useEffect)(function(){"all"!==m.tab&&I(m.tab)},[m.tab,I]),C)?c().createElement(Y.Provider,{value:{refresh:A}},c().createElement(Q,null,c().createElement(a.Tabs,{addIcon:c().createElement(s.SchemaComponent,{components:{AddCategory:er},schema:{type:"void",properties:{addCategories:{type:"void",title:'{{ t("Add category", { ns: "'.concat(O.CU,'" }) }}'),"x-component":"AddCategory","x-component-props":{type:"primary"}}}}}),onChange:I,defaultActiveKey:m.tab||"all",type:"editable-card",destroyInactiveTabPane:!0,tabBarStyle:{marginBottom:"0px"},className:(0,s.css)(z()),items:T})),c().createElement(s.ActionContextProvider,{value:{visible:P,setVisible:F,openSize:"small"}},c().createElement(s.SchemaComponent,{scope:{useFormProviderProps:ee,useCancelAction:s.useCancelAction,useEditSubmit:Z},schema:{name:(0,U.uid)(),type:"void","x-decorator":"FormV2","x-decorator-props":{form:E},title:'{{ t("Edit category", { ns: "'.concat(O.CU,'" }) }}'),"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 Z(){var e=(0,u.useForm)(),t=(0,s.useActionContext)(),r=(0,s.useResourceActionContext)(),n=(0,i.useContext)(Y).refresh,o=(0,s.useAPIClient)();return{run:function(){return q(function(){var i;return B(this,function(c){switch(c.label){case 0:return[4,e.submit()];case 1:return c.sent(),[4,o.resource("workflowCategories").update({filterByTk:null==(i=e.values)?void 0:i.id,values:e.values})];case 2:return c.sent(),t.setVisible(!1),[4,e.reset()];case 3:return c.sent(),null==n||n(),null==r||r.refresh(),[2]}})})()}}}function ee(){return{form:(0,u.useForm)()}}function et(){var e=(0,u.useForm)(),t=(0,s.useActionContext)().setVisible,r=(0,i.useContext)(Y).refresh,n=(0,s.useAPIClient)();return{run:function(){return q(function(){var o;return B(this,function(i){switch(i.label){case 0:return[4,e.submit()];case 1:return i.sent(),o=(0,V.cloneDeep)(e.values),[4,n.resource("workflowCategories").create({values:o})];case 2:return i.sent(),t(!1),e.reset(),r(),[2]}})})()}}}function er(e){var t=$((0,i.useState)(!1),2),r=t[0],n=t[1],o=(0,y.useTranslation)().t,a=(0,i.useMemo)(function(){return(0,l.createForm)()},[]);return c().createElement(s.ActionContextProvider,{value:{visible:r,setVisible:n,openSize:"small"}},c().createElement("div",{onClick:function(){return n(!0)},title:o("Add category")},c().createElement(I.PlusOutlined,null)),c().createElement(s.SchemaComponent,{schema:{name:"modal",type:"void","x-decorator":"FormV2","x-decorator-props":{form:a},title:'{{ t("Add category") }}',"x-component":"Action.Modal","x-component-props":W(L({},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:s.useCancelAction,useCreateSubmit:et}}))}function en(e){var t=e.value,r=e.multiple,n=e.fieldNames,o=void 0===n?s.defaultFieldNames:n,i=(0,s.useCompile)();return(r?null!=t?t:[]:t?[t]:[]).map(function(e){return c().createElement(a.Tag,{key:e[o.value],color:e[o.color]},i(e[o.label]))})}var eo=r(2815);function ei(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}var ec=[{value:1e3,label:"Seconds"},{value:6e4,label:"Minutes"},{value:36e5,label:"Hours"},{value:864e5,label:"Days"}];function ea(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:15552e6;return Math.min(Math.max(e,0),t)}function el(e){var t,r,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:6e4;return e&&null!=(t=null==(r=ec.findLast(function(t){return e%t.value==0}))?void 0:r.value)?t:n}var eu=(0,u.connect)(function(e){var t,r,n=ea(Number(null!=(r=e.value)?r:0)),o=function(e){if(Array.isArray(e))return e}(t=c().useState(function(){return el(n)}))||function(e){var t,r,n=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var o=[],i=!0,c=!1;try{for(n=n.call(e);!(i=(t=n.next()).done)&&(o.push(t.value),2!==o.length);i=!0);}catch(e){c=!0,r=e}finally{try{i||null==n.return||n.return()}finally{if(c)throw r}}return o}}(t)||function(e){if(e){if("string"==typeof e)return ei(e,2);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return ei(e,2)}}(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.")}(),i=o[0],l=o[1];c().useEffect(function(){0!==n&&l(function(e){return el(n,e)})},[n]);var u=0===n?0:n/i,s=15552e6/i;return c().createElement(a.Space.Compact,null,c().createElement(a.InputNumber,{min:0,max:s,precision:0,value:u,onChange:function(t){var r;return null==(r=e.onChange)?void 0:r.call(e,ea(Number(t)||0,s)*i)},className:"auto-width"}),c().createElement(a.Select,{value:i,options:ec.map(function(e){var t,r;return t=function(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}({},e),r=r={label:(0,O.vV)(e.label)},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t}),onChange:function(t){var r,n,o=ea(Number(null!=(r=e.value)?r:0)),c=0===o?0:o/i;l(t),null==(n=e.onChange)||n.call(e,ea(c*t))},className:"auto-width"}))},(0,u.mapProps)(function(e){return e}),(0,u.mapReadPretty)(function(e){var t,r=Number(null!=(t=e.value)?t:0);if(0===r)return c().createElement(c().Fragment,null,(0,O.vV)("Unlimited"));var n=el(r),o=ec.find(function(e){return e.value===n});return c().createElement(c().Fragment,null,r/n," ",o?(0,O.vV)(o.label):"")}));function es(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 ep(e,t,r,n,o,i,c){try{var a=e[i](c),l=a.value}catch(e){r(e);return}a.done?t(l):Promise.resolve(l).then(n,o)}function em(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function c(e){ep(i,n,o,c,a,"next",e)}function a(e){ep(i,n,o,c,a,"throw",e)}c(void 0)})}}function ed(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,o=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var i=[],c=!0,a=!1;try{for(o=o.call(e);!(c=(r=o.next()).done)&&(i.push(r.value),!t||i.length!==t);c=!0);}catch(e){a=!0,n=e}finally{try{c||null==o.return||o.return()}finally{if(a)throw n}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return es(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 es(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 ef(e,t){var r,n,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},c=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),a=Object.defineProperty;return a(c,"next",{value:l(0)}),a(c,"throw",{value:l(1)}),a(c,"return",{value:l(2)}),"function"==typeof Symbol&&a(c,Symbol.iterator,{value:function(){return this}}),c;function l(a){return function(l){var u=[a,l];if(r)throw TypeError("Generator is already executing.");for(;c&&(c=0,u[0]&&(i=0)),i;)try{if(r=1,n&&(o=2&u[0]?n.return:u[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,u[1])).done)return o;switch(n=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return i.label++,{value:u[1],done:!1};case 5:i.label++,n=u[1],u=[0];continue;case 7:u=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){i=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){i.label=u[1];break}if(6===u[0]&&i.label<o[1]){i.label=o[1],o=u;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(u);break}o[2]&&i.ops.pop(),i.trys.pop();continue}u=t.call(e,i)}catch(e){u=[6,e],n=0}finally{r=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}function ey(e){var t=(0,u.useField)(),r=(0,s.useRecord)(),n=(0,s.usePlugin)(k.default);return(0,u.useFormEffects)(function(e){(0,l.onFieldChange)("type",function(e){var o=r.id||!e.value;if(e.value){var i=n.triggers.get(e.value);null!=i.sync?(o=!0,t.setValue(i.sync)):t.setInitialValue(!1)}t.setPattern(o?"disabled":"editable")})}),(0,i.useEffect)(function(){if(r.id){t.setPattern("disabled");var o,i=n.triggers.get(r.type);null!=i.sync?t.setValue(i.sync):t.setInitialValue(null!=(o=e.value)&&o)}},[r.id,t,n.triggers,r.type,e.value]),c().createElement(F.$i,e)}function eb(e){var t=(0,s.useApp)();e.visible=!!((0,s.usePlugin)("multi-app-share-collection")||"main"!==t.name)}function ev(){var e=a.App.useApp().message,t=(0,y.useTranslation)().t,r=(0,s.useResourceContext)().resource;return{run:function(){return em(function(){return ef(this,function(n){switch(n.label){case 0:return[4,r.sync()];case 1:return n.sent(),e.success(t("Operation succeeded")),[2]}})})()}}}function eg(){var e=a.App.useApp().message,t=(0,y.useTranslation)().t,r=(0,s.useResourceActionContext)().refresh,n=(0,s.useResourceContext)(),o=n.resource,i=n.targetKey,c=(0,s.useActionContext)().setVisible,l=(0,s.useRecord)()[i],p=(0,u.useForm)(),m=(0,u.useField)();return{run:function(){return em(function(){return ef(this,function(n){switch(n.label){case 0:return n.trys.push([0,3,4,5]),[4,p.submit()];case 1:return n.sent(),m.data=m.data||{},m.data.loading=!0,[4,o.revision({filterByTk:l,values:p.values})];case 2:return n.sent(),e.success(t("Operation succeeded")),r(),c(!1),[3,5];case 3:return console.error(n.sent()),[3,5];case 4:return m.data&&(m.data.loading=!1),[7];case 5:return[2]}})})()}}}function eh(e){var t,r;return{title:null!=(t=e.title)?t:"",description:null!=(r=e.description)?r:""}}function ex(){var e,t=null!=(e=(0,s.useRecord)())?e:{},r=t.title,n=t.description,o=(0,s.useActionContext)(),c=o.visible,a=o.setFormValueChanged,u=(0,i.useMemo)(function(){return(0,l.createForm)({initialValues:eh({title:r,description:n})})},[n,r]);return(0,i.useEffect)(function(){if(c){var e=eh({title:r,description:n});u.setInitialValues(e),u.setValues(e),u.reset(),null==a||a(!1)}},[n,u,a,r,c]),{form:u}}function eO(){var e=(0,s.usePlugin)(k.default),t=ed((0,i.useState)(null),2),r=t[0],n=t[1],o=(0,u.useForm)();(0,u.useFormEffects)(function(){(0,l.onFieldValueChange)("type",function(e){var t;n(null!=(t=e.value)?t:null),o.clearFormGraph("config.*")})});var a=r?e.triggers.get(r):null;return(null==a?void 0:a.presetFieldset)?c().createElement(s.SchemaComponent,{key:r,components:a.components,scope:a.scope,schema:{type:"void",properties:{config:{type:"object","x-decorator":"FormItem",title:'{{t("Trigger configuration", { ns: "'.concat(O.CU,'" })}}'),"x-component":"Fieldset",properties:a.presetFieldset}}}}):null}function ew(){var e=a.App.useApp().message,t=(0,y.useTranslation)().t,r=(0,s.useRecord)(),n=(0,s.useResourceContext)().resource,o=(0,s.useResourceActionContext)().refresh,l=ed((0,i.useState)(!1),2),u=l[0],p=l[1],m=(0,i.useCallback)(function(i){return em(function(){return ef(this,function(c){switch(c.label){case 0:if(!(null==r?void 0:r.id))return[2];p(!0),c.label=1;case 1:return c.trys.push([1,3,4,5]),[4,n.update({filterByTk:r.id,values:{enabled:i}})];case 2:return c.sent(),setTimeout(function(){return null==o?void 0:o()},0),[3,5];case 3:return console.error(c.sent()),e.error(t("Operation failed")),[3,5];case 4:return p(!1),[7];case 5:return[2]}})})()},[e,r,o,n,t]);return c().createElement(a.Switch,{checked:!!(null==r?void 0:r.enabled),size:"small",disabled:u||!(null==r?void 0:r.id),loading:u,onClick:function(e,t){var r;return null==t||null==(r=t.stopPropagation)?void 0:r.call(t)},onChange:m})}function eC(){var e,t,r=(0,i.useContext)(s.SchemaComponentContext),n=(0,s.usePlugin)(k.default).useTriggersOptions;return c().createElement(s.SchemaComponentContext.Provider,{value:(e=function(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}({},r),t=t={designable:!1},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e)},c().createElement(s.SchemaComponent,{schema:E,components:{CollectionProvider:s.CollectionProvider,WorkflowLink:g,ExecutionResourceProvider:f,ExecutionLink:p.d,OpenDrawer:x,SyncOptionSelect:ey,ExecutionStatusColumn:S.t_,Tooltip:a.Tooltip,CategoryTabs:X,EnumerationField:en,WorkflowEnabledSwitch:ew,TriggerPresetFieldset:eO,TimeoutInput:eu},scope:{useTriggersOptions:n,useWorkflowSyncReaction:eb,useSyncAction:ev,useResourceFilterActionProps:eo.A,useRefreshActionProps:D.t,useRevisionAction:eg,useDuplicateWorkflowFormProps:ex,TriggerOptionRender:T,ExecutionStatusOptions:C.$A}}))}}}]);
@@ -1,10 +0,0 @@
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([["67"],{2596:function(e,t,r){r.d(t,{i:function(){return x}});var n=r(2059),o=r(9155),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(7375),u=r(3342),d=r(5324),f=r(8083),p=r(404),m=r(3872),v=r(6660),y=r(8201),b=r(4562);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.A)().styles,i=(0,b.sD)(),w=(0,p.x)(),x=(0,u.useCompile)(),C=(0,u.usePlugin)(d.default),A=function(e){if(Array.isArray(e))return e}(t=l().useState(100))||function(e){var t,r,n=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var o=[],l=!0,a=!1;try{for(n=n.call(e);!(l=(t=n.next()).done)&&(o.push(t.value),2!==o.length);l=!0);}catch(e){a=!0,r=e}finally{try{l||null==n.return||n.return()}finally{if(a)throw r}}return o}}(t)||function(e){if(e){if("string"==typeof e)return h(e,2);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return h(e,2)}}(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.")}(),O=A[0],S=A[1],j=null==w?void 0:w.clipboard,P=j?C.instructions.get(j.type):null,D=j?P?x(P.title):j.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.vV)("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.Vo,null),l().createElement("div",{className:(0,u.cx)(a.branchBlockClass,(0,u.css)(k()))},l().createElement(f.lg,{entry:o})),l().createElement("div",{className:a.terminalClass},(0,m.vV)("End")))))),j?l().createElement("div",{className:a.clipboardPreviewClass},l().createElement("div",{className:"workflow-clipboard-header"},l().createElement("span",null,(0,m.vV)("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"},D),l().createElement("div",{className:"workflow-clipboard-title"},null!=(r=j.title)?r:j.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})))}},1110:function(e,t,r){r.r(t),r.d(t,{WorkflowPage:function(){return G}});var n=r(3342),o=r(9155),l=r.n(o),a=r(4442),i=r(6660),c=r(5953),s=r(2059),u=r(7375),d=r(5230),f=r(7768),p=r(2596),m=r(2662),v=r(4421),y=r(7846),b=r(3872),h=r(6481),w=r(6072),g=r(6864),E=r(512),k=r(8201),x=r(7428),C=r(7107),A=r(4562),O=r(5433),S=r(3610),j=r(3312),P=r(404),D=r(2815);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 V(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){V(l,n,o,a,i,"next",e)}function i(e){V(l,n,o,a,i,"throw",e)}a(void 0)})}}function T(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 B(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function I(e,t){if(null==e)return{};var r,n,o,l={};if("u">typeof Reflect&&Reflect.ownKeys){for(o=0,r=Reflect.ownKeys(Object(e));o<r.length;o++)n=r[o],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n]);return l}if(l=function(e,t){if(null==e)return{};var r,n,o={},l=Object.getOwnPropertyNames(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}(e,t),Object.getOwnPropertySymbols)for(o=0,r=Object.getOwnPropertySymbols(e);o<r.length;o++)n=r[o],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n]);return l}function F(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,o=null==e?null:"u">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 z(e,t){var r,n,o,l={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(a,"next",{value:c(0)}),i(a,"throw",{value:c(1)}),i(a,"return",{value:c(2)}),"function"==typeof Symbol&&i(a,Symbol.iterator,{value:function(){return this}}),a;function c(i){return function(c){var s=[i,c];if(r)throw TypeError("Generator is already executing.");for(;a&&(a=0,s[0]&&(l=0)),l;)try{if(r=1,n&&(o=2&s[0]?n.return:s[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,s[1])).done)return o;switch(n=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return l.label++,{value:s[1],done:!1};case 5:l.label++,n=s[1],s=[0];continue;case 7:s=l.ops.pop(),l.trys.pop();continue;default:if(!(o=(o=l.trys).length>0&&o[o.length-1])&&(6===s[0]||2===s[0])){l=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){l.label=s[1];break}if(6===s[0]&&l.label<o[1]){l.label=o[1],o=s;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(s);break}o[2]&&l.ops.pop(),l.trys.pop();continue}s=t.call(e,l)}catch(e){s=[6,e],n=0}finally{r=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}}}function K(){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 K=function(){return r},r}function M(e){var t,r=e.request,o=(e.filter,I(e,["request","filter"])),a=(0,y.$K)().workflow,i=B(T({},o),{request:B(T({},r),{params:B(T({},null==r?void 0:r.params),{filter:B(T({},null==r||null==(t=r.params)?void 0:t.filter),{key:a.key})})})});return l().createElement(n.ResourceActionProvider,i)}function U(e){var t=e.data,r=e.option,o=(0,n.useCompile)()(r.label);return l().createElement(c.Trans,{ns:b.CU,values:{statusText:o}},"Workflow executed, the result status is ",l().createElement(s.Tag,{color:r.color},"{{statusText}}"),l().createElement(a.Link,{to:(0,w.mz)(t.id)},"View the execution"))}function Y(){var e=(0,y.$K)().workflow,t=(0,d.useForm)(),r=(0,n.useResourceContext)().resource,a=(0,n.useActionContext)(),i=(0,n.useNavigateNoUpdate)(),c=s.App.useApp().message,u=(0,A.sD)(),f=F((0,o.useState)(!1),2),p=f[0],m=f[1];return{loading:p,run:function(){return R(function(){var n,o,s,d;return z(this,function(f){switch(f.label){case 0:m(!0),f.label=1;case 1:return f.trys.push([1,,4,5]),o=(n=t.values).autoRevision,s=I(n,["autoRevision"]),[4,t.submit()];case 2:return f.sent(),[4,r.execute(T({filterByTk:e.id,values:s},!u&&o?{autoRevision:1}:{}))];case 3:var p,v,y,b;return d=f.sent().data.data,t.reset(),a.setFormValueChanged(!1),a.setVisible(!1),null==c||c.open((v=(p=d.execution).id,y=p.status,(b=x.$Y[y])?{type:"info",content:l().createElement(U,{data:{id:v},option:b})}:null)),d.newVersionId&&i((0,w.Yz)(d.newVersionId)),[3,5];case 4:return m(!1),[7];case 5:return[2]}})})()}}}function $(e){var t=e.children,r=(0,d.useField)(),n=(0,y.$K)().workflow,o=(0,k.s5)(),a=o.validate(n.config),i="";switch(!0){case!a:i=(0,b.vV)("The trigger is not configured correctly, please check the trigger configuration.");break;case!o.triggerFieldset:i=(0,b.vV)("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 _(){var e,t=(0,y.$K)().workflow,r=(0,A.sD)(),o=(0,k.s5)();return l().createElement(y.AA.Provider,{value:t},l().createElement(C.Ws.Provider,{value:!0},l().createElement(n.SchemaComponent,{components:T({Alert:s.Alert,Fieldset:g.L,ActionDisabledProvider:$},o.components),scope:T({useCancelAction:n.useCancelAction,useExecuteConfirmAction:Y},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.CU,'" })}}'),properties:{drawer:{type:"void","x-decorator":"FormV2","x-component":"Action.Modal",title:"{{t('Execute manually', { ns: \"".concat(b.CU,'" })}}'),properties:B(T(B(T({},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.CU,'" })}}'),className:(0,n.css)(K())}}}:{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.CU,'" })}}')}}),{fieldset:{type:"void","x-decorator":"FormItem","x-component":"Fieldset",title:"{{t('Trigger variables', { ns: \"".concat(b.CU,'" })}}'),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.CU,'" })}}'),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 L(){var e=(0,y.$K)(),t=e.workflow,r=e.revisions,d=void 0===r?[]:r,p=F((0,o.useState)(!1),2),g=p[0],k=p[1],C=F((0,o.useState)(!1),2),O=C[0],S=C[1],j=F((0,o.useState)(""),2),P=j[0],N=j[1],V=(0,a.useNavigate)(),T=(0,c.useTranslation)().t,B=s.App.useApp().modal,I=(0,n.useApp)(),K=(0,n.useResourceContext)().resource,U=(0,n.useResourceActionContext)().refresh,Y=s.App.useApp().message,$=(0,i.A)().styles,_=(0,A.Eh)(),L=(0,o.useCallback)(function(){return R(function(){var e;return z(this,function(r){switch(r.label){case 0:return[4,K.revision({filterByTk:t.id,filter:{key:t.key}})];case 1:return e=r.sent().data.data,Y.success(T("Operation succeeded")),V((0,w.Yz)(e.id)),[2]}})})()},[K,t.id,t.key,Y,T,V]),W=(0,o.useCallback)(function(){return R(function(){var e;return z(this,function(r){return e=t.current?(0,b.vV)("This is a main version, delete it will cause the whole workflow to be deleted (including all other revisions)."):(0,b.vV)("Current version will be deleted (without affecting other versions)."),B.confirm({title:T("Are you sure you want to delete it?"),content:e,onOk:function(){return R(function(){var e,r,n,o;return z(this,function(l){switch(l.label){case 0:return[4,K.destroy({filterByTk:t.id})];case 1:if(l.sent(),Y.success(T("Operation succeeded")),e=I.pluginSettingsManager.getRoutePath("workflow"),t.current)return[2,V(e)];return d.length&&V((0,w.Yz)(null==(r=d.find(function(e){return e.current}))?void 0:r.id)),[4,K.list({filter:{key:t.key,current:!0},fields:["id"],pageSize:1})];case 2:if(200!==(n=l.sent()).status)return[2];if(!(o=F(n.data.data,1)[0]))return[2,V(e)];return[2,V((0,w.Yz)(o.id))]}})})()}}),[2]})})()},[t,B,T,K,Y,V,I.pluginSettingsManager,d]),q=(0,o.useCallback)(function(e){switch(e.key){case"details":S(!0);return;case"refresh":U();return;case"history":k(!0);return;case"revision":return L();case"delete":return W()}},[W,L,U]),G=(0,o.useCallback)(function(e){return(null==e?void 0:e.nickname)||(null==e?void 0:e.username)||(null==e?void 0:e.email)||(null==e?void 0:e.id)||"-"},[]),H=(0,o.useCallback)(function(e){return e?(0,f.dayjs)(e).format("YYYY-MM-DD HH:mm:ss"):"-"},[]);(0,o.useEffect)(function(){if(O){var e;N(null!=(e=t.description)?e:"")}},[O,t.description]);var J=(0,o.useCallback)(function(e){N(e.target.value)},[]),Q=(0,o.useCallback)(function(e){return R(function(){var r,n;return z(this,function(o){switch(o.label){case 0:if((n=e.target.value)===(null!=(r=t.description)?r:""))return[2];return[4,K.update({filterByTk:t.id,values:{description:n}})];case 1:return o.sent(),U(),[2]}})})()},[U,K,t.description,t.id]);return l().createElement(l().Fragment,null,l().createElement(s.Dropdown,{menu:{items:[{role:"button","aria-label":"details",key:"details",label:T("Details")},{type:"divider"},{role:"button","aria-label":"refresh",key:"refresh",label:T("Refresh")},{role:"button","aria-label":"history",key:"history",label:(0,b.vV)("Execution history"),disabled:!_},{role:"button","aria-label":"revision",key:"revision",label:(0,b.vV)("Copy to new version")},{type:"divider"},{role:"button","aria-label":"delete",danger:!0,key:"delete",label:T("Delete")}],onClick:q}},l().createElement(s.Button,{"aria-label":"more",type:"text",icon:l().createElement(u.EllipsisOutlined,null)})),l().createElement(s.Modal,{open:O,title:T("Details"),width:640,footer:null,onCancel:function(){return S(!1)}},l().createElement(s.Descriptions,{bordered:!0,column:2,size:"small"},l().createElement(s.Descriptions.Item,{label:"Key",span:2},t.key||"-"),l().createElement(s.Descriptions.Item,{label:T("Created by")},G(t.createdBy)),l().createElement(s.Descriptions.Item,{label:T("Created at")},H(t.createdAt)),l().createElement(s.Descriptions.Item,{label:T("Last updated by")},G(t.updatedBy)),l().createElement(s.Descriptions.Item,{label:T("Last updated at")},H(t.updatedAt)),l().createElement(s.Descriptions.Item,{label:T("Description"),span:2},l().createElement(s.Input.TextArea,{"aria-label":T("Description"),value:P,onChange:J,onBlur:Q,placeholder:"-",className:$.workflowDetailsDescriptionClass,autoSize:{minRows:3,maxRows:8}})))),l().createElement(n.ActionContextProvider,{value:{visible:g,setVisible:k}},l().createElement(n.SchemaComponent,{schema:h.M,components:{ExecutionResourceProvider:M,ExecutionLink:v.d,ExecutionStatusColumn:m.t_},scope:{useRefreshActionProps:E.t,useResourceFilterActionProps:D.A,ExecutionStatusOptions:x.$A}})))}function W(){var e,t=(0,i.A)().styles,r=(0,a.useNavigate)(),c=(0,y.$K)().workflow,d=(0,o.useCallback)(function(e){var t=e.key;t!=c.id&&r((0,w.Yz)(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.vV)("Version")),l().createElement("span",null,(null==c?void 0:c.id)?"#".concat(c.id):null),l().createElement(u.DownOutlined,null)))}function q(){var e,t,r,i=(0,a.useNavigate)(),c=(0,n.useApp)(),u=(0,n.useResourceActionContext)(),d=u.data,f=u.refresh,m=u.loading,v=(0,n.useResourceContext)().resource,h=(0,n.useDocumentTitle)().setTitle,g=F((0,o.useState)(null!=(e=null==d||null==(r=d.data)?void 0:r.enabled)&&e),2),E=g[0],k=g[1],x=F((0,o.useState)(!1),2),C=x[0],A=x[1],D=null!=(t=null==d?void 0:d.data)?t:{},N=D.nodes,V=void 0===N?[]:N,T=I(D,["nodes"]);(0,w.KD)(V),(0,o.useEffect)(function(){var e,t=null!=(e=null==d?void 0:d.data)?e:{},r=t.title,n=t.enabled;null==h||h("".concat((0,b.vV)("Workflow")).concat(r?": ".concat(r):"")),k(n)},[null==d?void 0:d.data,h]);var B=(0,o.useCallback)(function(e){return R(function(){return z(this,function(t){switch(t.label){case 0:return A(!0),[4,v.update({filterByTk:T.id,values:{enabled:e}})];case 1:return t.sent(),A(!1),k(e),[2]}})})()},[v,T.id]);if(!(null==d?void 0:d.data))return m?l().createElement(s.Spin,null):l().createElement(s.Result,{status:"404",title:"Not found",extra:l().createElement(s.Button,{onClick:function(){return i(-1)}},(0,b.vV)("Go back"))});var K=V.find(function(e){return!e.upstream});return l().createElement(y.cB.Provider,{value:{workflow:T,nodes:V,refresh:f}},l().createElement("div",{className:"workflow-toolbar"},l().createElement("header",null,l().createElement(s.Breadcrumb,{items:[{title:l().createElement(a.Link,{to:c.pluginSettingsManager.getRoutePath("workflow")},(0,b.vV)("Workflow"))},{title:l().createElement(s.Tooltip,{title:"Key: ".concat(T.key)},l().createElement("strong",null,T.title))}]}),T.sync?l().createElement(s.Tag,{color:"orange"},(0,b.vV)("Synchronously")):l().createElement(s.Tag,{color:"cyan"},(0,b.vV)("Asynchronously"))),l().createElement("aside",null,l().createElement(_,null),l().createElement(W,null),l().createElement(s.Switch,{checked:E,onChange:B,checkedChildren:(0,b.vV)("On"),unCheckedChildren:(0,b.vV)("Off"),loading:C}),l().createElement(L,null))),l().createElement(O.yf,null,l().createElement(S.J,null,l().createElement(j.b,null,l().createElement(P.L,null,l().createElement(p.i,{entry:K}))))))}var G=function(){var e,t,r,o=(0,a.useParams)(),c=(0,i.A)().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","createdBy","updatedBy"]}}},"x-component":"WorkflowCanvas"},t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e)},components:{WorkflowCanvas:q}}))}}}]);