aspnetzero-workflow-designer 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # @aspnetzero/workflow-designer
1
+ # aspnetzero-workflow-designer
2
2
 
3
3
  Framework-neutral custom elements for the ASP.NET Zero workflow & approval builder.
4
4
  One implementation, wrapped by Angular, React and ASP.NET Core MVC — so the three UIs cannot drift apart.
@@ -13,7 +13,7 @@ One implementation, wrapped by Angular, React and ASP.NET Core MVC — so the th
13
13
  Both are registered automatically on import.
14
14
 
15
15
  ```ts
16
- import '@aspnetzero/workflow-designer';
16
+ import 'aspnetzero-workflow-designer';
17
17
  ```
18
18
 
19
19
  ## The host contract
@@ -137,7 +137,7 @@ Swapping the rendering library must never change the persisted JSON.
137
137
  ```html
138
138
  <workflow-designer id="designer"></workflow-designer>
139
139
  <script type="module">
140
- import '@aspnetzero/workflow-designer';
140
+ import 'aspnetzero-workflow-designer';
141
141
 
142
142
  const designer = document.getElementById('designer');
143
143
 
@@ -159,27 +159,59 @@ npm install
159
159
  npm run dev # demo page at demo/index.html
160
160
  npm run typecheck
161
161
  npm test # vitest suite under test/
162
- npm run build # ESM + UMD + rolled-up .d.ts into dist/, then syncs the hosts (see below)
162
+ npm run build # ESM + UMD + rolled-up .d.ts into dist/
163
163
  ```
164
164
 
165
165
  Rendering uses [AntV X6](https://x6.antv.antgroup.com/) — a vanilla-JS graph library, chosen precisely
166
166
  because it carries no framework dependency and therefore works identically inside all three host UIs.
167
167
 
168
- ### After every change: run `npm run build`
168
+ ### How the hosts get the designer
169
169
 
170
- **Whenever you change anything in this package, run `npm run build` here before testing in a host or
171
- committing.** The hosts never compile `src/`; they only consume the built output:
170
+ ASP.NET Zero lives in its own repository and never reads this one. All three of its UIs install the
171
+ published `aspnetzero-workflow-designer` package from npm, so they run the same build:
172
172
 
173
173
  | Host | How it gets the designer |
174
174
  |---|---|
175
- | Angular (`angular/`) | `link:../workflow-designer` dependency, reads `dist/` |
176
- | React (`react/`) | `link:../workflow-designer` dependency, reads `dist/` |
177
- | ASP.NET Core MVC (`Web.Mvc`) | a copy of `dist/workflow-designer.umd.cjs`, committed under `wwwroot/view-resources/Areas/AppAreaName/Views/WorkflowDefinitions/lib/workflow-designer.umd.js` |
178
-
179
- `npm run build` runs `scripts/sync-hosts.mjs` as its `postbuild` step, which copies the fresh UMD bundle
180
- into the MVC host. Skipping the build leaves Angular and React on a stale `dist/` and MVC on a stale
181
- committed bundle, so the three UIs drift apart. Commit the regenerated MVC bundle together with the
182
- source change. (`npm run sync-hosts` re-runs only the copy step.)
175
+ | Angular (`angular/`) | `aspnetzero-workflow-designer` dependency, imports the ESM build |
176
+ | React (`react/`) | `aspnetzero-workflow-designer` dependency, imports the ESM build |
177
+ | ASP.NET Core MVC (`Web.Mvc`) | `aspnetzero-workflow-designer` dependency; `bundles.json` turns `dist/workflow-designer.umd.cjs` into `_Bundles/workflow-designer.min.js` |
178
+
179
+ ### The contract with the server
180
+
181
+ `npm run build` also writes `dist/workflow-contract.json`: the step kinds, input names, default keys,
182
+ vocabularies, schema versions and localization keys this version uses, taken from the same constants the
183
+ bundle is built from (see `src/contract/workflow-contract.ts`). ASP.NET Zero keeps a copy in its test
184
+ project. `WorkflowDesignerContract_Tests` and the other contract tests there compare the server with that
185
+ copy, and fail when the copy is not the version a host locks.
186
+
187
+ ### Releasing a change
188
+
189
+ 1. Change the package, then run `npm test` and `npm run build`.
190
+ 2. Raise `version` in `package.json` (a new step kind or input is a minor version, a fix a patch).
191
+ 3. Run `npm publish`. `prepublishOnly` runs the tests and the build again, so a broken package is not
192
+ published.
193
+ 4. In the ASP.NET Zero repository, in `angular/`, `react/` and
194
+ `aspnet-core/src/MyCompanyName.AbpZeroTemplate.Web.Mvc/`, run
195
+ `pnpm add aspnetzero-workflow-designer@~<version>`.
196
+ 5. At the root of that repository, run `npm run refresh-workflow-designer-contract`, then commit the
197
+ result and the lockfiles with the server change that needed the new version.
198
+
199
+ ### Trying a change in a host before publishing
200
+
201
+ With the two repositories checked out side by side, point a host at this folder for the time being:
202
+
203
+ ```bash
204
+ cd angular # or react
205
+ pnpm link ../../workflow-designer
206
+
207
+ cd aspnet-core/src/MyCompanyName.AbpZeroTemplate.Web.Mvc
208
+ pnpm link ../../../../workflow-designer
209
+ ```
210
+
211
+ The host now reads this folder's `dist/`, so run `npm run build` here after each change (MVC also needs
212
+ `npm run create-bundles`). `pnpm link` adds a `link:` override to the host's `pnpm-workspace.yaml` and
213
+ changes its `pnpm-lock.yaml`; do not commit those. To go back to the published package, revert both files
214
+ and run `pnpm install`.
183
215
 
184
216
  ## Status
185
217
 
@@ -0,0 +1,535 @@
1
+ {
2
+ "packageVersion": "1.0.2",
3
+ "graphSchemaVersion": 3,
4
+ "formSchemaVersion": 1,
5
+ "nodeTypes": {
6
+ "Start": 1,
7
+ "FormSubmission": 2,
8
+ "Approval": 3,
9
+ "Condition": 4,
10
+ "Notification": 5,
11
+ "Action": 6,
12
+ "Approved": 7,
13
+ "Rejected": 8,
14
+ "Cancelled": 9,
15
+ "Parallel": 10,
16
+ "Join": 11,
17
+ "Timer": 12,
18
+ "Subprocess": 13,
19
+ "EventWait": 14,
20
+ "SendSlackMessage": 15,
21
+ "SendTeamsMessage": 16,
22
+ "RunAiAgent": 17
23
+ },
24
+ "selfApprovalPolicies": {
25
+ "TenantDefault": 0,
26
+ "Deny": 1,
27
+ "Allow": 2,
28
+ "SkipStep": 3
29
+ },
30
+ "conditionOperandTypes": {
31
+ "FormField": 1,
32
+ "Constant": 2,
33
+ "RequesterContext": 3,
34
+ "TenantContext": 4,
35
+ "SystemContext": 5,
36
+ "Variable": 6
37
+ },
38
+ "variableTypeNames": [
39
+ "String",
40
+ "Boolean",
41
+ "Int32",
42
+ "Int64",
43
+ "Decimal",
44
+ "Double",
45
+ "DateTime",
46
+ "Guid",
47
+ "Json"
48
+ ],
49
+ "variableScopes": {
50
+ "instance": 1,
51
+ "branch": 2
52
+ },
53
+ "schemaVariableScopes": {
54
+ "instance": 1,
55
+ "branch": 2
56
+ },
57
+ "variableDefinitionFields": [
58
+ "id",
59
+ "name",
60
+ "typeName",
61
+ "isArray",
62
+ "value",
63
+ "scope",
64
+ "isSensitive",
65
+ "displayName"
66
+ ],
67
+ "reservedVariablePrefix": "__out.",
68
+ "uiHints": [
69
+ "singleline",
70
+ "multiline",
71
+ "checkbox",
72
+ "checklist",
73
+ "radiolist",
74
+ "dropdown",
75
+ "multitext",
76
+ "dictionary",
77
+ "json-editor",
78
+ "datetime-picker",
79
+ "variable-picker",
80
+ "output-picker",
81
+ "outcome-picker",
82
+ "dynamic-outcomes",
83
+ "workflow-definition-picker",
84
+ "expression-editor",
85
+ "secret-picker",
86
+ "connection-dropdown",
87
+ "http-status-codes",
88
+ "assignee-picker",
89
+ "role-picker",
90
+ "organization-unit-picker",
91
+ "form-field-picker",
92
+ "condition-builder",
93
+ "field-mapping-table",
94
+ "sla-editor",
95
+ "channel-editor",
96
+ "adaptive-card-editor",
97
+ "event-payload-mapping-table",
98
+ "action-parameter-table",
99
+ "condition-branch-table",
100
+ "parallel-branch-table",
101
+ "start-trigger-editor",
102
+ "notification-recipients"
103
+ ],
104
+ "expressionSyntaxes": [
105
+ "Literal",
106
+ "FormField",
107
+ "Context",
108
+ "Variable",
109
+ "Output",
110
+ "Condition",
111
+ "Template",
112
+ "Secret"
113
+ ],
114
+ "builtInInputs": {
115
+ "FormSubmission": [
116
+ "formSubmission.readOnlyFieldIds",
117
+ "formSubmission.allowAttachments",
118
+ "formSubmission.allowWithdraw",
119
+ "sla"
120
+ ],
121
+ "Approval": [
122
+ "approval.targets",
123
+ "approval.approvalPolicy",
124
+ "approval.quorumCount",
125
+ "approval.allowDelegation",
126
+ "approval.allowRequestChanges",
127
+ "approval.requireReasonOnReject",
128
+ "channels.channels",
129
+ "channels.connectionProfileName",
130
+ "channels.allowDecisionFromChannel",
131
+ "sla"
132
+ ],
133
+ "Condition": [
134
+ "condition.branches"
135
+ ],
136
+ "Notification": [
137
+ "notification.notificationName",
138
+ "notification.subject",
139
+ "notification.body",
140
+ "notification.sendInApp",
141
+ "notification.sendEmail",
142
+ "notification.recipients",
143
+ "channels.channels",
144
+ "channels.connectionProfileName"
145
+ ],
146
+ "Action": [
147
+ "action.kind",
148
+ "action.actionName",
149
+ "action.webhookName",
150
+ "action.connectionProfileName",
151
+ "action.relativePath",
152
+ "action.httpMethod",
153
+ "action.timeoutInSeconds",
154
+ "action.maxAttempts",
155
+ "action.continueOnFailure",
156
+ "action.inputBindings"
157
+ ],
158
+ "Parallel": [
159
+ "parallel.joinNodeId",
160
+ "parallel.cancelRemainingBranchesOnRejection"
161
+ ],
162
+ "Join": [
163
+ "join.parallelNodeId",
164
+ "join.mode",
165
+ "join.requiredBranchCount"
166
+ ],
167
+ "Timer": [
168
+ "timer.mode",
169
+ "timer.durationInMinutes",
170
+ "timer.fieldId",
171
+ "timer.offsetInMinutes",
172
+ "timer.fixedDate",
173
+ "timer.useBusinessCalendar"
174
+ ],
175
+ "Subprocess": [
176
+ "subprocess.workflowDefinitionId",
177
+ "subprocess.waitForCompletion",
178
+ "subprocess.outcomeMode",
179
+ "subprocess.cancelChildOnParentCancel",
180
+ "subprocess.inputMappings"
181
+ ],
182
+ "EventWait": [
183
+ "eventWait.eventName",
184
+ "eventWait.correlationSource",
185
+ "eventWait.correlationFieldKey",
186
+ "eventWait.timeout.dueInMinutes",
187
+ "eventWait.timeout.useBusinessCalendar",
188
+ "eventWait.onTimeout",
189
+ "eventWait.payloadMappings",
190
+ "eventWait.waitingMessage"
191
+ ]
192
+ },
193
+ "builtInInputDefaults": {
194
+ "FormSubmission": [
195
+ "formSubmission.allowAttachments",
196
+ "formSubmission.allowWithdraw"
197
+ ],
198
+ "Approval": [
199
+ "approval.targets",
200
+ "approval.approvalPolicy",
201
+ "approval.rejectionPolicy",
202
+ "approval.selfApprovalPolicy",
203
+ "approval.allowDelegation",
204
+ "approval.allowRequestChanges",
205
+ "approval.requireReasonOnApprove",
206
+ "approval.requireReasonOnReject",
207
+ "approval.requireReasonOnRequestChanges",
208
+ "channels.allowDecisionFromChannel"
209
+ ],
210
+ "Condition": [
211
+ "condition.branches"
212
+ ],
213
+ "Notification": [
214
+ "notification.sendInApp",
215
+ "notification.sendEmail"
216
+ ],
217
+ "Action": [
218
+ "action.kind",
219
+ "action.continueOnFailure"
220
+ ],
221
+ "Parallel": [
222
+ "parallel.cancelRemainingBranchesOnRejection"
223
+ ],
224
+ "Join": [
225
+ "join.mode"
226
+ ],
227
+ "Timer": [
228
+ "timer.mode",
229
+ "timer.durationInMinutes",
230
+ "timer.useBusinessCalendar"
231
+ ],
232
+ "Subprocess": [
233
+ "subprocess.waitForCompletion",
234
+ "subprocess.outcomeMode",
235
+ "subprocess.cancelChildOnParentCancel",
236
+ "subprocess.inputMappings"
237
+ ],
238
+ "EventWait": [
239
+ "eventWait.correlationSource",
240
+ "eventWait.onTimeout",
241
+ "eventWait.payloadMappings"
242
+ ],
243
+ "SendSlackMessage": [
244
+ "sendSlackMessage.severity",
245
+ "sendSlackMessage.includeDeepLink",
246
+ "sendSlackMessage.factFieldIds"
247
+ ],
248
+ "SendTeamsMessage": [
249
+ "sendTeamsMessage.severity",
250
+ "sendTeamsMessage.includeDeepLink",
251
+ "sendTeamsMessage.factFieldIds"
252
+ ],
253
+ "RunAiAgent": [
254
+ "runAiAgent.continueOnFailure"
255
+ ]
256
+ },
257
+ "localizationKeys": [
258
+ "WorkflowActionBinding_Condition",
259
+ "WorkflowActionBinding_Constant",
260
+ "WorkflowActionBinding_Context",
261
+ "WorkflowActionBinding_FormField",
262
+ "WorkflowActionBinding_Output",
263
+ "WorkflowActionBinding_Secret",
264
+ "WorkflowActionBinding_Template",
265
+ "WorkflowActionBinding_Variable",
266
+ "WorkflowActionConnectionProfile",
267
+ "WorkflowActionContinueOnFailure",
268
+ "WorkflowActionHasNoInputs",
269
+ "WorkflowActionHttpMethod",
270
+ "WorkflowActionHttpMethod_Delete",
271
+ "WorkflowActionHttpMethod_Get",
272
+ "WorkflowActionHttpMethod_Patch",
273
+ "WorkflowActionHttpMethod_Post",
274
+ "WorkflowActionHttpMethod_Put",
275
+ "WorkflowActionInputs",
276
+ "WorkflowActionKind",
277
+ "WorkflowActionKind_HttpConnectionProfile",
278
+ "WorkflowActionKind_RegisteredApplicationAction",
279
+ "WorkflowActionKind_Webhook",
280
+ "WorkflowActionMaxAttempts",
281
+ "WorkflowActionMaxLength",
282
+ "WorkflowActionName",
283
+ "WorkflowActionRelativePath",
284
+ "WorkflowActionRequiresFeature",
285
+ "WorkflowActionTimeout",
286
+ "WorkflowActionWebhookName",
287
+ "WorkflowAi_SummaryCouldNotBeProduced",
288
+ "WorkflowApprovalAllowDelegation",
289
+ "WorkflowApprovalAllowRequestChanges",
290
+ "WorkflowApprovalPolicy",
291
+ "WorkflowApprovalPolicy_Anyone",
292
+ "WorkflowApprovalPolicy_Everyone",
293
+ "WorkflowApprovalPolicy_Quorum",
294
+ "WorkflowApprovalQuorumCount",
295
+ "WorkflowApprovalRequireReasonOnReject",
296
+ "WorkflowBranch",
297
+ "WorkflowBranchAdd",
298
+ "WorkflowBranchAdvancedExpression",
299
+ "WorkflowBranchChooseField",
300
+ "WorkflowBranchField",
301
+ "WorkflowBranchName",
302
+ "WorkflowBranchNeedsFormFields",
303
+ "WorkflowBranchNotConnected",
304
+ "WorkflowBranchOperator",
305
+ "WorkflowBranchRemove",
306
+ "WorkflowBranchValue",
307
+ "WorkflowBranchValueList",
308
+ "WorkflowBranches",
309
+ "WorkflowBranchesEmpty",
310
+ "WorkflowChannelAllowDecision",
311
+ "WorkflowChannelConnectionProfile",
312
+ "WorkflowChannel_Slack",
313
+ "WorkflowChannel_Teams",
314
+ "WorkflowChannels",
315
+ "WorkflowChannelsNodeHint",
316
+ "WorkflowConditionSuggest",
317
+ "WorkflowConditionSuggestApply",
318
+ "WorkflowConditionSuggestFailed",
319
+ "WorkflowConditionSuggestHint",
320
+ "WorkflowDesignerAddVariable",
321
+ "WorkflowDesignerAutoLayout",
322
+ "WorkflowDesignerCanvasView",
323
+ "WorkflowDesignerCardNoBody",
324
+ "WorkflowDesignerCardNotAnObject",
325
+ "WorkflowDesignerCardNotJson",
326
+ "WorkflowDesignerCardPlaceholder",
327
+ "WorkflowDesignerCardWrongType",
328
+ "WorkflowDesignerConnection",
329
+ "WorkflowDesignerConnectionOutcome",
330
+ "WorkflowDesignerConnections",
331
+ "WorkflowDesignerCopy",
332
+ "WorkflowDesignerDelete",
333
+ "WorkflowDesignerDropHere",
334
+ "WorkflowDesignerHidePalette",
335
+ "WorkflowDesignerInspector",
336
+ "WorkflowDesignerMarkReviewed",
337
+ "WorkflowDesignerMultiSelection",
338
+ "WorkflowDesignerNoOptions",
339
+ "WorkflowDesignerNoSecrets",
340
+ "WorkflowDesignerNoSelection",
341
+ "WorkflowDesignerNoStepMatches",
342
+ "WorkflowDesignerNotSelected",
343
+ "WorkflowDesignerOutline",
344
+ "WorkflowDesignerOutlineEmpty",
345
+ "WorkflowDesignerOutlineHint",
346
+ "WorkflowDesignerPalette",
347
+ "WorkflowDesignerPaste",
348
+ "WorkflowDesignerRedo",
349
+ "WorkflowDesignerRemoveConnection",
350
+ "WorkflowDesignerRemoveStep",
351
+ "WorkflowDesignerResetZoom",
352
+ "WorkflowDesignerSchemaVersionDesignerOutdated",
353
+ "WorkflowDesignerSchemaVersionServerOutdated",
354
+ "WorkflowDesignerSearchSteps",
355
+ "WorkflowDesignerSecretUnusable",
356
+ "WorkflowDesignerSensitiveKept",
357
+ "WorkflowDesignerShowIssue",
358
+ "WorkflowDesignerShowPalette",
359
+ "WorkflowDesignerStepCount",
360
+ "WorkflowDesignerStepDescription",
361
+ "WorkflowDesignerStepLimitReached",
362
+ "WorkflowDesignerStepName",
363
+ "WorkflowDesignerStepNotReviewed",
364
+ "WorkflowDesignerSummary",
365
+ "WorkflowDesignerSummaryAction",
366
+ "WorkflowDesignerSummaryApproval",
367
+ "WorkflowDesignerSummaryApprovalOutcomes",
368
+ "WorkflowDesignerSummaryApproved",
369
+ "WorkflowDesignerSummaryCancelled",
370
+ "WorkflowDesignerSummaryCondition",
371
+ "WorkflowDesignerSummaryDue",
372
+ "WorkflowDesignerSummaryEmpty",
373
+ "WorkflowDesignerSummaryForm",
374
+ "WorkflowDesignerSummaryHide",
375
+ "WorkflowDesignerSummaryJoin",
376
+ "WorkflowDesignerSummaryNotification",
377
+ "WorkflowDesignerSummaryParallel",
378
+ "WorkflowDesignerSummaryRejected",
379
+ "WorkflowDesignerSummaryShow",
380
+ "WorkflowDesignerSummaryStart",
381
+ "WorkflowDesignerSummarySubprocess",
382
+ "WorkflowDesignerSummaryTimer",
383
+ "WorkflowDesignerSummaryTimerDuration",
384
+ "WorkflowDesignerTabGeneral",
385
+ "WorkflowDesignerUndo",
386
+ "WorkflowDesignerUnknownOutput",
387
+ "WorkflowDesignerUnknownSecret",
388
+ "WorkflowDesignerUnknownVariable",
389
+ "WorkflowDesignerVariableName",
390
+ "WorkflowDesignerVariableNameDuplicate",
391
+ "WorkflowDesignerVariableNameRequired",
392
+ "WorkflowDesignerVariableNameReserved",
393
+ "WorkflowDesignerVariableScope",
394
+ "WorkflowDesignerVariableScopeBranch",
395
+ "WorkflowDesignerVariableScopeInstance",
396
+ "WorkflowDesignerVariableSensitive",
397
+ "WorkflowDesignerVariableType",
398
+ "WorkflowDesignerVariableValue",
399
+ "WorkflowDesignerVariables",
400
+ "WorkflowDesignerVariablesHint",
401
+ "WorkflowDesignerZoomIn",
402
+ "WorkflowDesignerZoomOut",
403
+ "WorkflowDesignerZoomToFit",
404
+ "WorkflowEdgeKind_Approved",
405
+ "WorkflowEdgeKind_ChangesRequested",
406
+ "WorkflowEdgeKind_ConditionBranch",
407
+ "WorkflowEdgeKind_Default",
408
+ "WorkflowEdgeKind_EventReceived",
409
+ "WorkflowEdgeKind_EventTimeout",
410
+ "WorkflowEdgeKind_Otherwise",
411
+ "WorkflowEdgeKind_ParallelBranch",
412
+ "WorkflowEdgeKind_Rejected",
413
+ "WorkflowEdgeKind_SubprocessCompleted",
414
+ "WorkflowEdgeKind_SubprocessRejected",
415
+ "WorkflowEdgeKind_TimerElapsed",
416
+ "WorkflowEdgeKind_Unknown",
417
+ "WorkflowEventCorrelationSource_BusinessKey",
418
+ "WorkflowEventCorrelationSource_FormField",
419
+ "WorkflowEventCorrelationSource_ReferenceNumber",
420
+ "WorkflowEventTimeoutBehavior_ContinueTimeoutPath",
421
+ "WorkflowEventTimeoutBehavior_NeedsAttention",
422
+ "WorkflowEventWaitAddMapping",
423
+ "WorkflowEventWaitCorrelation",
424
+ "WorkflowEventWaitCorrelationField",
425
+ "WorkflowEventWaitEvent",
426
+ "WorkflowEventWaitMappingsEmpty",
427
+ "WorkflowEventWaitNeedsTargetField",
428
+ "WorkflowEventWaitOnTimeout",
429
+ "WorkflowEventWaitPayloadMappings",
430
+ "WorkflowEventWaitRemoveMapping",
431
+ "WorkflowEventWaitSourcePath",
432
+ "WorkflowEventWaitTargetField",
433
+ "WorkflowEventWaitTimeout",
434
+ "WorkflowEventWaitTimeoutEdgeNotAllowedHint",
435
+ "WorkflowEventWaitTimeoutEdgeRequiredHint",
436
+ "WorkflowEventWaitTimeoutHint",
437
+ "WorkflowEventWaitWaitingMessage",
438
+ "WorkflowEvent_EventWaitIsDisabled",
439
+ "WorkflowFieldType_Unknown",
440
+ "WorkflowFormAddOption",
441
+ "WorkflowFormAddSection",
442
+ "WorkflowFormAllowAttachments",
443
+ "WorkflowFormAllowWithdraw",
444
+ "WorkflowFormBuilderAttachmentsHint",
445
+ "WorkflowFormBuilderEmpty",
446
+ "WorkflowFormBuilderFields",
447
+ "WorkflowFormBuilderLayout",
448
+ "WorkflowFormBuilderNoSelection",
449
+ "WorkflowFormFieldKey",
450
+ "WorkflowFormFieldKeyFollowsLabelHint",
451
+ "WorkflowFormFieldKeyHint",
452
+ "WorkflowFormFieldLabel",
453
+ "WorkflowFormFieldSection",
454
+ "WorkflowFormFileAttachmentPublicFormOnly",
455
+ "WorkflowFormMoveDown",
456
+ "WorkflowFormMoveUp",
457
+ "WorkflowFormNewOption",
458
+ "WorkflowFormNewSection",
459
+ "WorkflowFormNoOptions",
460
+ "WorkflowFormOptionText",
461
+ "WorkflowFormReadOnlyFields",
462
+ "WorkflowFormRemoveField",
463
+ "WorkflowFormRemoveOption",
464
+ "WorkflowFormRemoveSection",
465
+ "WorkflowFormRepeaterAddField",
466
+ "WorkflowFormRepeaterFieldType",
467
+ "WorkflowFormRepeaterFields",
468
+ "WorkflowFormRequiredField",
469
+ "WorkflowFormSectionEmpty",
470
+ "WorkflowFormSectionTitle",
471
+ "WorkflowJoinMode",
472
+ "WorkflowJoinMode_WaitAll",
473
+ "WorkflowJoinMode_WaitAny",
474
+ "WorkflowJoinMode_WaitCount",
475
+ "WorkflowJoinParallelNode",
476
+ "WorkflowJoinRequiredBranchCount",
477
+ "WorkflowNodeCategory_Control",
478
+ "WorkflowNodeCategory_Flow",
479
+ "WorkflowNodeCategory_Human",
480
+ "WorkflowNodeCategory_Integration",
481
+ "WorkflowNodeCategory_Terminal",
482
+ "WorkflowNodeType_Unknown",
483
+ "WorkflowNotificationBody",
484
+ "WorkflowNotificationName",
485
+ "WorkflowNotificationRecipientPeople",
486
+ "WorkflowNotificationRecipientPreviousApprovers",
487
+ "WorkflowNotificationRecipientRequester",
488
+ "WorkflowNotificationRecipients",
489
+ "WorkflowNotificationSendEmail",
490
+ "WorkflowNotificationSendInApp",
491
+ "WorkflowNotificationSubject",
492
+ "WorkflowParallelCancelOnRejection",
493
+ "WorkflowParallelJoinNode",
494
+ "WorkflowSla",
495
+ "WorkflowSlaDueInMinutes",
496
+ "WorkflowSlaEscalateAfter",
497
+ "WorkflowSlaEscalateOnOverdue",
498
+ "WorkflowSlaEscalationTarget",
499
+ "WorkflowSlaReminderInterval",
500
+ "WorkflowSlaUseBusinessCalendar",
501
+ "WorkflowSubprocessAddMapping",
502
+ "WorkflowSubprocessCancelChild",
503
+ "WorkflowSubprocessInputMappings",
504
+ "WorkflowSubprocessMappingsEmpty",
505
+ "WorkflowSubprocessOutcomeMode",
506
+ "WorkflowSubprocessOutcomeMode_ApprovalOutcome",
507
+ "WorkflowSubprocessOutcomeMode_SingleOutcome",
508
+ "WorkflowSubprocessRemoveMapping",
509
+ "WorkflowSubprocessSourceField",
510
+ "WorkflowSubprocessTargetKey",
511
+ "WorkflowSubprocessWait",
512
+ "WorkflowSubprocessWorkflow",
513
+ "WorkflowSummaryExplainWithAi",
514
+ "WorkflowTargetAdd",
515
+ "WorkflowTargetRemove",
516
+ "WorkflowTargetSearch",
517
+ "WorkflowTargetType",
518
+ "WorkflowTarget_FallbackRole",
519
+ "WorkflowTarget_OrganizationUnit",
520
+ "WorkflowTarget_RequesterManager",
521
+ "WorkflowTarget_Role",
522
+ "WorkflowTarget_User",
523
+ "WorkflowTargets",
524
+ "WorkflowTargetsEmpty",
525
+ "WorkflowTimerDuration",
526
+ "WorkflowTimerField",
527
+ "WorkflowTimerFixedDate",
528
+ "WorkflowTimerMode",
529
+ "WorkflowTimerMode_Duration",
530
+ "WorkflowTimerMode_FixedDate",
531
+ "WorkflowTimerMode_FormFieldDate",
532
+ "WorkflowTimerOffset",
533
+ "WorkflowValidation_FieldAttachmentsRequireAttachmentsFeature"
534
+ ]
535
+ }