@rytass/bpm-core-shared 0.18.0 → 0.18.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/package.json +1 -1
- package/src/lib/field-access-lint.d.ts +3 -8
- package/src/lib/field-access-lint.js +8 -32
- package/src/lib/field-access-lint.js.map +1 -1
- package/src/lib/form.d.ts +10 -1
- package/src/lib/form.js +9 -0
- package/src/lib/form.js.map +1 -1
- package/src/lib/workflow-graph.d.ts +39 -1
- package/src/lib/workflow-graph.js +133 -8
- package/src/lib/workflow-graph.js.map +1 -1
- package/src/lib/workflow-reachability.d.ts +22 -0
- package/src/lib/workflow-reachability.js +48 -0
- package/src/lib/workflow-reachability.js.map +1 -0
- package/src/lib/workflow-toolset.js +55 -10
- package/src/lib/workflow-toolset.js.map +1 -1
- package/src/lib/workflow.d.ts +38 -2
- package/src/lib/workflow.js +65 -0
- package/src/lib/workflow.js.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,18 @@
|
|
|
1
|
+
## 0.18.1 (2026-11-01)
|
|
2
|
+
|
|
3
|
+
### 🚀 Features
|
|
4
|
+
|
|
5
|
+
- add form-field and prior-node approver sources ([#132](https://github.com/Rytass/BPMCore/pull/132))
|
|
6
|
+
|
|
7
|
+
### 🩹 Fixes
|
|
8
|
+
|
|
9
|
+
- **bpm-core-react:** fill timeline rows only from their own decision ([f336c1d](https://github.com/Rytass/BPMCore/commit/f336c1d))
|
|
10
|
+
|
|
11
|
+
### ❤️ Thank You
|
|
12
|
+
|
|
13
|
+
- Chia Yu Pai @fantasywind
|
|
14
|
+
- Kai-Chieh Yang @coollugi
|
|
15
|
+
|
|
1
16
|
## 0.18.0 (2026-10-28)
|
|
2
17
|
|
|
3
18
|
### 🚀 Features
|
package/package.json
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { FormDefinitionSchema, FormFieldDefinition } from './form';
|
|
2
|
-
import type { FieldAccessDisplay, FieldAccessEntry, FieldAccessFill, UserTaskNode, WorkflowDefinition
|
|
2
|
+
import type { FieldAccessDisplay, FieldAccessEntry, FieldAccessFill, UserTaskNode, WorkflowDefinition } from './workflow';
|
|
3
|
+
import { isOnOwnParallelBranch, readReachableWorkflowNodeIds, readWorkflowParallelBranchSets } from './workflow-reachability';
|
|
4
|
+
export { isOnOwnParallelBranch, readReachableWorkflowNodeIds, readWorkflowParallelBranchSets, };
|
|
3
5
|
/**
|
|
4
6
|
* The field access rules (ADR 20 §4) as structured issues. The publish lint
|
|
5
7
|
* turns each into its `message` line, and the designer's field access matrix
|
|
@@ -52,13 +54,6 @@ export declare function isFieldAccessEntryValid(entry: unknown): entry is FieldA
|
|
|
52
54
|
* the form is checked against the form (`readFormFieldAccessIssues`).
|
|
53
55
|
*/
|
|
54
56
|
export declare function readNodeFieldAccessIssues(node: UserTaskNode): readonly FieldAccessIssue[];
|
|
55
|
-
/**
|
|
56
|
-
* The nodes reachable from `startNodeIds` along `edges` without entering one
|
|
57
|
-
* of `blockedNodeIds`, the start nodes included unless blocked. Walks the
|
|
58
|
-
* graph one frontier at a time and drops every node it has already seen, so a
|
|
59
|
-
* cycle ends the walk instead of feeding it.
|
|
60
|
-
*/
|
|
61
|
-
export declare function readReachableWorkflowNodeIds(edges: readonly WorkflowEdge[], startNodeIds: readonly string[], blockedNodeIds?: ReadonlySet<string>): ReadonlySet<string>;
|
|
62
57
|
/**
|
|
63
58
|
* Whether two nodes can both run in one case: one reaches the other, or a
|
|
64
59
|
* parallel split sends each down a branch of its own (reachable from one
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FIELD_ACCESS_FILLS = exports.FIELD_ACCESS_DISPLAYS = void 0;
|
|
3
|
+
exports.FIELD_ACCESS_FILLS = exports.FIELD_ACCESS_DISPLAYS = exports.readWorkflowParallelBranchSets = exports.readReachableWorkflowNodeIds = exports.isOnOwnParallelBranch = void 0;
|
|
4
4
|
exports.readUserTaskFillConflicts = readUserTaskFillConflicts;
|
|
5
5
|
exports.isFieldAccessEntryValid = isFieldAccessEntryValid;
|
|
6
6
|
exports.readNodeFieldAccessIssues = readNodeFieldAccessIssues;
|
|
7
|
-
exports.readReachableWorkflowNodeIds = readReachableWorkflowNodeIds;
|
|
8
7
|
exports.createWorkflowCoRunReader = createWorkflowCoRunReader;
|
|
9
8
|
exports.readDefinitionFieldAccessIssues = readDefinitionFieldAccessIssues;
|
|
10
9
|
exports.readFormFieldFillIssues = readFormFieldFillIssues;
|
|
@@ -13,6 +12,10 @@ exports.readFormFieldAccessIssues = readFormFieldAccessIssues;
|
|
|
13
12
|
const form_1 = require("./form");
|
|
14
13
|
const field_access_1 = require("./field-access");
|
|
15
14
|
const workflow_graph_1 = require("./workflow-graph");
|
|
15
|
+
const workflow_reachability_1 = require("./workflow-reachability");
|
|
16
|
+
Object.defineProperty(exports, "isOnOwnParallelBranch", { enumerable: true, get: function () { return workflow_reachability_1.isOnOwnParallelBranch; } });
|
|
17
|
+
Object.defineProperty(exports, "readReachableWorkflowNodeIds", { enumerable: true, get: function () { return workflow_reachability_1.readReachableWorkflowNodeIds; } });
|
|
18
|
+
Object.defineProperty(exports, "readWorkflowParallelBranchSets", { enumerable: true, get: function () { return workflow_reachability_1.readWorkflowParallelBranchSets; } });
|
|
16
19
|
function readUserTaskFillConflicts(node) {
|
|
17
20
|
var _a, _b, _c, _d;
|
|
18
21
|
return [
|
|
@@ -143,23 +146,6 @@ function readNodeFieldAccessIssues(node) {
|
|
|
143
146
|
})),
|
|
144
147
|
];
|
|
145
148
|
}
|
|
146
|
-
/**
|
|
147
|
-
* The nodes reachable from `startNodeIds` along `edges` without entering one
|
|
148
|
-
* of `blockedNodeIds`, the start nodes included unless blocked. Walks the
|
|
149
|
-
* graph one frontier at a time and drops every node it has already seen, so a
|
|
150
|
-
* cycle ends the walk instead of feeding it.
|
|
151
|
-
*/
|
|
152
|
-
function readReachableWorkflowNodeIds(edges, startNodeIds, blockedNodeIds = new Set()) {
|
|
153
|
-
const walk = (frontier, visited) => {
|
|
154
|
-
const fresh = [...new Set(frontier)].filter((nodeId) => !visited.has(nodeId) && !blockedNodeIds.has(nodeId));
|
|
155
|
-
return fresh.length
|
|
156
|
-
? walk(edges
|
|
157
|
-
.filter((edge) => fresh.includes(edge.source))
|
|
158
|
-
.map((edge) => edge.target), new Set([...visited, ...fresh]))
|
|
159
|
-
: visited;
|
|
160
|
-
};
|
|
161
|
-
return walk(startNodeIds, new Set());
|
|
162
|
-
}
|
|
163
149
|
/**
|
|
164
150
|
* Whether two nodes can both run in one case: one reaches the other, or a
|
|
165
151
|
* parallel split sends each down a branch of its own (reachable from one
|
|
@@ -175,24 +161,14 @@ function createWorkflowCoRunReader(definition) {
|
|
|
175
161
|
if (cached !== undefined) {
|
|
176
162
|
return cached;
|
|
177
163
|
}
|
|
178
|
-
const reachable = readReachableWorkflowNodeIds(definition.edges, [nodeId]);
|
|
164
|
+
const reachable = (0, workflow_reachability_1.readReachableWorkflowNodeIds)(definition.edges, [nodeId]);
|
|
179
165
|
reachableCache.set(nodeId, reachable);
|
|
180
166
|
return reachable;
|
|
181
167
|
};
|
|
182
|
-
const parallelBranches = definition
|
|
183
|
-
.filter((node) => node.type === 'parallelGateway')
|
|
184
|
-
.map((node) => definition.edges
|
|
185
|
-
.filter((edge) => edge.source === node.id)
|
|
186
|
-
.map((edge) => readReachable(edge.target)))
|
|
187
|
-
.filter((branches) => branches.length >= 2);
|
|
188
|
-
const isOnOwnBranch = (branches, nodeId, otherNodeId) => branches.some((branch, index) => branch.has(nodeId) &&
|
|
189
|
-
!branch.has(otherNodeId) &&
|
|
190
|
-
branches.some((other, otherIndex) => otherIndex !== index &&
|
|
191
|
-
other.has(otherNodeId) &&
|
|
192
|
-
!other.has(nodeId)));
|
|
168
|
+
const parallelBranches = (0, workflow_reachability_1.readWorkflowParallelBranchSets)(definition, readReachable);
|
|
193
169
|
return (nodeId, otherNodeId) => readReachable(nodeId).has(otherNodeId) ||
|
|
194
170
|
readReachable(otherNodeId).has(nodeId) ||
|
|
195
|
-
parallelBranches.some((branches) =>
|
|
171
|
+
parallelBranches.some((branches) => (0, workflow_reachability_1.isOnOwnParallelBranch)(branches, nodeId, otherNodeId));
|
|
196
172
|
}
|
|
197
173
|
/**
|
|
198
174
|
* The issues read from the whole definition, in publish-lint order: a system
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-access-lint.js","sourceRoot":"","sources":["../../../../../libs/shared/src/lib/field-access-lint.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"field-access-lint.js","sourceRoot":"","sources":["../../../../../libs/shared/src/lib/field-access-lint.ts"],"names":[],"mappings":"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"}
|
package/src/lib/form.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ export interface FormDefinitionSchema {
|
|
|
2
2
|
readonly fields: readonly FormFieldDefinition[];
|
|
3
3
|
readonly schemaVersion: 1;
|
|
4
4
|
}
|
|
5
|
-
export type FormFieldDefinition = TextFieldDefinition | NumberFieldDefinition | DateFieldDefinition | SelectFieldDefinition | AutoCompleteFieldDefinition | RadioFieldDefinition | CheckboxFieldDefinition | BooleanFieldDefinition | FileUploadFieldDefinition | MemberFieldDefinition | TableFieldDefinition;
|
|
5
|
+
export type FormFieldDefinition = TextFieldDefinition | NumberFieldDefinition | DateFieldDefinition | SelectFieldDefinition | AutoCompleteFieldDefinition | RadioFieldDefinition | CheckboxFieldDefinition | BooleanFieldDefinition | FileUploadFieldDefinition | MemberFieldDefinition | OrgUnitFieldDefinition | TableFieldDefinition;
|
|
6
6
|
interface BaseFormFieldDefinition<TType extends string> {
|
|
7
7
|
readonly defaultValue?: FormFieldValue;
|
|
8
8
|
readonly description?: string;
|
|
@@ -127,6 +127,12 @@ export type FileUploadFieldDefinition = BaseFormFieldDefinition<'file_upload'> &
|
|
|
127
127
|
export type MemberFieldDefinition = BaseFormFieldDefinition<'member'> & {
|
|
128
128
|
readonly multiple?: boolean;
|
|
129
129
|
};
|
|
130
|
+
/**
|
|
131
|
+
* 組織選擇. The stored value is a single organization unit id (string) — id
|
|
132
|
+
* only, so it feeds a `FORM_ORG_UNIT_MANAGER` approver resolver unchanged.
|
|
133
|
+
* `multiple` is not supported and it is not a table column type.
|
|
134
|
+
*/
|
|
135
|
+
export type OrgUnitFieldDefinition = BaseFormFieldDefinition<'org_unit'>;
|
|
130
136
|
/**
|
|
131
137
|
* Field types a table column may use. `textarea`, `radio`, `checkbox`,
|
|
132
138
|
* `file_upload` and nested `table` are intentionally excluded in V1
|
|
@@ -165,6 +171,9 @@ export interface FormLayoutItem {
|
|
|
165
171
|
}
|
|
166
172
|
export declare function isFormOptionFieldDefinition(field: FormFieldDefinition): field is FormOptionFieldDefinition;
|
|
167
173
|
export declare function isMemberFieldDefinition(field: FormFieldDefinition): field is MemberFieldDefinition;
|
|
174
|
+
export declare function isOrgUnitFieldDefinition(field: FormFieldDefinition): field is OrgUnitFieldDefinition;
|
|
175
|
+
/** Whether `value` is a well-formed stored org unit value: a non-blank string. */
|
|
176
|
+
export declare function isFormOrgUnitValue(value: unknown): boolean;
|
|
168
177
|
/**
|
|
169
178
|
* Whether `value` is a well-formed stored member value: a non-empty string
|
|
170
179
|
* (`multiple` false) or an array of non-empty strings (`multiple` true). `[]`
|
package/src/lib/form.js
CHANGED
|
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.TEXT_FIELD_PATTERN_ERROR_MESSAGE_MAX_LENGTH = exports.TEXT_FIELD_PATTERN_MAX_LENGTH = exports.TEXT_FIELD_PATTERN_TIME_BUDGET_MS = exports.FORM_TABLE_MAX_ROWS = exports.TABLE_COLUMN_FIELD_TYPES = void 0;
|
|
4
4
|
exports.isFormOptionFieldDefinition = isFormOptionFieldDefinition;
|
|
5
5
|
exports.isMemberFieldDefinition = isMemberFieldDefinition;
|
|
6
|
+
exports.isOrgUnitFieldDefinition = isOrgUnitFieldDefinition;
|
|
7
|
+
exports.isFormOrgUnitValue = isFormOrgUnitValue;
|
|
6
8
|
exports.isFormMemberValue = isFormMemberValue;
|
|
7
9
|
exports.readFormMemberIds = readFormMemberIds;
|
|
8
10
|
exports.compileTextFieldPattern = compileTextFieldPattern;
|
|
@@ -48,6 +50,13 @@ function isFormOptionFieldDefinition(field) {
|
|
|
48
50
|
function isMemberFieldDefinition(field) {
|
|
49
51
|
return field.type === 'member';
|
|
50
52
|
}
|
|
53
|
+
function isOrgUnitFieldDefinition(field) {
|
|
54
|
+
return field.type === 'org_unit';
|
|
55
|
+
}
|
|
56
|
+
/** Whether `value` is a well-formed stored org unit value: a non-blank string. */
|
|
57
|
+
function isFormOrgUnitValue(value) {
|
|
58
|
+
return typeof value === 'string' && value.trim().length > 0;
|
|
59
|
+
}
|
|
51
60
|
/**
|
|
52
61
|
* Whether `value` is a well-formed stored member value: a non-empty string
|
|
53
62
|
* (`multiple` false) or an array of non-empty strings (`multiple` true). `[]`
|
package/src/lib/form.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.js","sourceRoot":"","sources":["../../../../../libs/shared/src/lib/form.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"form.js","sourceRoot":"","sources":["../../../../../libs/shared/src/lib/form.ts"],"names":[],"mappings":";;;AAiQA,kEASC;AAED,0DAIC;AAED,4DAIC;AAGD,gDAEC;AAQD,8CASC;AAMD,8CAaC;AA2CD,0DAqBC;AAiFD,4EA2BC;AAeD,0DA4CC;AAED,wDAIC;AAED,wDAMC;AAED,oDAUC;AAED,kDASC;AASD,oDAIC;AAOD,wDAIC;AAQD,kDAEC;AAED,0EAQC;AAED,8EAQC;AAED,gEAYC;AAED,sEAOC;AApcD;;;;GAIG;AACU,QAAA,wBAAwB,GACnC;IACE,cAAc;IACd,SAAS;IACT,MAAM;IACN,UAAU;IACV,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,MAAM;CACP,CAAC;AAEJ;;;GAGG;AACU,QAAA,mBAAmB,GAAG,GAAG,CAAC;AAwBvC,SAAgB,2BAA2B,CACzC,KAA0B;IAE1B,OAAO,CACL,KAAK,CAAC,IAAI,KAAK,QAAQ;QACvB,KAAK,CAAC,IAAI,KAAK,cAAc;QAC7B,KAAK,CAAC,IAAI,KAAK,OAAO;QACtB,KAAK,CAAC,IAAI,KAAK,UAAU,CAC1B,CAAC;AACJ,CAAC;AAED,SAAgB,uBAAuB,CACrC,KAA0B;IAE1B,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;AACjC,CAAC;AAED,SAAgB,wBAAwB,CACtC,KAA0B;IAE1B,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC;AACnC,CAAC;AAED,kFAAkF;AAClF,SAAgB,kBAAkB,CAAC,KAAc;IAC/C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAC,KAAc,EAAE,QAAiB;IACjE,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CACL,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YACpB,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAC1E,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9D,CAAC;AAED;;;GAGG;AACH,SAAgB,iBAAiB,CAC/B,KAAiC;IAEjC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACrC,CAAC;IAED,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACzB,CAAC,CAAC,KAAK,CAAC,MAAM,CACV,CAAC,IAAI,EAAkB,EAAE,CACvB,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CACrD;QACH,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AASD,SAAS,wBAAwB,CAC/B,OAAe,EACf,KAAa,EACb,WAAiC;IAEjC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAElD,OAAO,QAAQ,KAAK,IAAI,IAAI,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC3D,CAAC;AAQD,wEAAwE;AACxE,MAAM,sCAAsC,GAAG,GAAG,CAAC;AAEnD,MAAM,yBAAyB,GAAG,IAAI,GAAG,EAAyB,CAAC;AAEnE;;;;;;;;;;;;GAYG;AACH,SAAgB,uBAAuB,CAAC,OAAe;IACrD,MAAM,MAAM,GAAG,yBAAyB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAEtD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,QAAQ,GAAG,+BAA+B,CAAC,OAAO,CAAC,CAAC;IAE1D,IACE,yBAAyB,CAAC,IAAI,IAAI,sCAAsC,EACxE,CAAC;QACD,2EAA2E;QAC3E,yBAAyB,CAAC,MAAM,CAC9B,yBAAyB,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAe,CACxD,CAAC;IACJ,CAAC;IAED,yBAAyB,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAEjD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,+BAA+B,CAAC,OAAe;IACtD,IAAI,CAAC;QACH,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAEzB,OAAO,IAAI,MAAM,CAAC,OAAO,OAAO,IAAI,EAAE,GAAG,CAAC,CAAC;IAC7C,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACU,QAAA,iCAAiC,GAAG,EAAE,CAAC;AAEpD,iDAAiD;AACpC,QAAA,6BAA6B,GAAG,GAAG,CAAC;AAEjD,6DAA6D;AAChD,QAAA,2CAA2C,GAAG,GAAG,CAAC;AAE/D,MAAM,oBAAoB,GAAG,mCAAmC,CAAC;AACjE,MAAM,aAAa,GAAG,mBAAmB,CAAC;AAC1C,MAAM,YAAY,GAAG,2DAA2D,CAAC;AAEjF;;;;GAIG;AACH,SAAS,6BAA6B,CAAC,OAAe,EAAE,KAAa;IACnE,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAE9D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC;IAChE,MAAM,OAAO,GAAG,UAAU;QACxB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,KAAK,KAAK,SAAS;YACnB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;YACrB,CAAC,CAAC,OAAO,KAAK,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAE5C,OAAO,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,mFAAmF;AACnF,SAAS,gBAAgB,CAAC,OAAe,EAAE,KAAa;;IACtD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,MAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,mCAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAElE,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,gCAAgC,CAAC,OAAe;IAC9D,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,OAAgB,EAAW,EAAE;QACxD,IAAI,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAE5B,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,KAAK,GAAG,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC;QAED,OAAO,CACL,CAAC,IAAI,KAAK,GAAG,IAAI,6BAA6B,CAAC,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACvE,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC,CACvB,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACxB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,uBAAuB,CACrC,KAGC,EACD,KAAc,EACd,EACE,WAAW,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MACA,EAAE;;IAEvD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ;YACxC,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ;YACnC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;YACtB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;YAClB,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;IAExC,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;QACpE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;IACvD,CAAC;IAED,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;QACpE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;IACvD,CAAC;IAED,IACE,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;QACjC,KAAK,CAAC,OAAO,KAAK,EAAE;QACpB,CAAC,wBAAwB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,EAC5D,CAAC;QACD,OAAO;YACL,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,CAAA,MAAA,KAAK,CAAC,mBAAmB,0CAAE,IAAI,EAAE,KAAI,IAAI;SACnD,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,sBAAsB,CACpC,KAA0B;IAE1B,OAAO,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC;AAChC,CAAC;AAED,SAAgB,sBAAsB,CACpC,IAAiC;IAEjC,OAAO,gCAAwB,CAAC,QAAQ,CACtC,IAAqC,CACtC,CAAC;AACJ,CAAC;AAED,SAAgB,oBAAoB,CAClC,KAAc;IAEd,OAAO,CACL,KAAK,KAAK,IAAI;QACd,OAAO,KAAK,KAAK,SAAS;QAC1B,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,KAAK,KAAK,QAAQ;QACzB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAC1E,CAAC;AACJ,CAAC;AAED,SAAgB,mBAAmB,CACjC,KAAc;IAEd,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACrB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CACjD,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,oBAAoB,CAClC,KAAc;IAEd,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;AAClE,CAAC;AAED;;;;GAIG;AACH,SAAgB,sBAAsB,CACpC,KAAiC;IAEjC,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACzD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,mBAAmB,CAAC,KAAa;IAC/C,OAAO,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjD,CAAC;AAED,SAAgB,+BAA+B,CAC7C,KAA0B;IAE1B,OAAO,CACL,2BAA2B,CAAC,KAAK,CAAC;QAClC,YAAY,IAAI,KAAK;QACrB,OAAO,KAAK,CAAC,UAAU,KAAK,WAAW,CACxC,CAAC;AACJ,CAAC;AAED,SAAgB,iCAAiC,CAC/C,KAA0B;IAE1B,OAAO,CACL,2BAA2B,CAAC,KAAK,CAAC;QAClC,SAAS,IAAI,KAAK;QAClB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAC7B,CAAC;AACJ,CAAC;AAED,SAAgB,0BAA0B,CACxC,KAAgC;;IAEhC,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC9B,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,MAAA,KAAK,CAAC,IAAI,mCAAI,QAAQ,CAAC;AAChC,CAAC;AAED,SAAgB,6BAA6B,CAC3C,MAA4B;IAE5B,uCACK,MAAM,KACT,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,IACvD;AACJ,CAAC;AAsBD,SAAS,4BAA4B,CACnC,KAA0B;;IAE1B,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3B,uCACK,KAAK,KACR,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,IAC1D;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QAC7D,uCACK,KAAK,KACR,IAAI,EAAE,MAAA,KAAK,CAAC,IAAI,mCAAI,QAAQ,IAC5B;IACJ,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,8BAA8B,CACrC,MAA6B;;IAE7B,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QAC/D,uCACK,MAAM,KACT,IAAI,EAAE,MAAA,MAAM,CAAC,IAAI,mCAAI,QAAQ,IAC7B;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FormDefinitionSchema, FormFieldDefinition, FormFieldOption } from './form';
|
|
2
|
-
import { ApproverResolver, DecisionPolicy, ExcludeInitiatorConfig, ExcludeInitiatorWhenEmpty, NotifyWebhookContextPath, NotifyWebhookEndpointReference, NotifyWebhookParameterType, NotifyWebhookTarget, ServiceAction, SlaCalendarMode, SlaConfig, WorkflowDefinition, WorkflowEdge, WorkflowEdgeConditionOperator, WorkflowEdgeData, WorkflowNode, WorkflowNodeTriggerMode } from './workflow';
|
|
2
|
+
import { ApproverResolver, DecisionPolicy, ExcludeInitiatorConfig, ExcludeInitiatorWhenEmpty, NotifyWebhookContextPath, NotifyWebhookEndpointReference, NotifyWebhookParameterType, NotifyWebhookTarget, ServiceAction, SlaCalendarMode, SlaConfig, UserTaskNode, WorkflowDefinition, WorkflowEdge, WorkflowEdgeConditionOperator, WorkflowEdgeData, WorkflowNode, WorkflowNodeTriggerMode } from './workflow';
|
|
3
3
|
/**
|
|
4
4
|
* Pure, framework-agnostic structural operations over a {@link WorkflowDefinition}.
|
|
5
5
|
*
|
|
@@ -266,6 +266,44 @@ export declare function readExcludeInitiatorIssue(config: ExcludeInitiatorConfig
|
|
|
266
266
|
*/
|
|
267
267
|
export declare function isOrgManagerChainDecisionPolicyInvalid(resolver: ApproverResolver, decisionPolicy: DecisionPolicy | undefined): boolean;
|
|
268
268
|
export declare function readApproverResolverIssue(resolver: ApproverResolver): string | null;
|
|
269
|
+
/**
|
|
270
|
+
* Why a user task may finish with nobody having approved it, which rules it
|
|
271
|
+
* out as a `NODE_ACTOR` / `NODE_ACTOR_MANAGER` source:
|
|
272
|
+
*
|
|
273
|
+
* - `entryCondition`: the node can be skipped outright;
|
|
274
|
+
* - `skipNode`: `excludeInitiator.whenEmpty: 'SKIP_NODE'` skips it when
|
|
275
|
+
* removing the initiator leaves nobody;
|
|
276
|
+
* - `autoApprove`: `sla.onTimeout: 'AUTO_APPROVE'` lets the timeout approve
|
|
277
|
+
* it, and the engine does not count an SLA approval as anyone's signature.
|
|
278
|
+
*
|
|
279
|
+
* `[]` means the node always has a real signer once it has run. The designer's
|
|
280
|
+
* stage picker and `readNodeActorSourceIssues` both read this list, so the
|
|
281
|
+
* two cannot disagree on which stages qualify.
|
|
282
|
+
*/
|
|
283
|
+
export type NodeActorSourceSkipReason = 'autoApprove' | 'entryCondition' | 'skipNode';
|
|
284
|
+
export declare function readNodeActorSourceSkipReasons(node: UserTaskNode): readonly NodeActorSourceSkipReason[];
|
|
285
|
+
/**
|
|
286
|
+
* The graph checks behind a `NODE_ACTOR` / `NODE_ACTOR_MANAGER` node: the
|
|
287
|
+
* "who signed earlier" source only works when every case reaches `nodeId`
|
|
288
|
+
* through one of `sourceNodeIds`, and that source actually signed. Returns
|
|
289
|
+
* Chinese issue lines for the designer and the publish lint; `[]` means the
|
|
290
|
+
* source is sound. `nodeId` is the node that uses the source.
|
|
291
|
+
*
|
|
292
|
+
* 1. at least one source, no repeats, never the node itself;
|
|
293
|
+
* 2. every source exists and is a `userTask`;
|
|
294
|
+
* 3. no source may be skipped or pass without a signer: see
|
|
295
|
+
* {@link readNodeActorSourceSkipReasons};
|
|
296
|
+
* 4. coverage: walking from the start without entering any source must not
|
|
297
|
+
* reach `nodeId` (else some case never passes a source);
|
|
298
|
+
* 5. no two sources on different branches of one parallel split (they would
|
|
299
|
+
* both run, and "the earlier signer" would not be one person).
|
|
300
|
+
* 6. every source is upstream of `nodeId`: some path leads from it to the
|
|
301
|
+
* node (rule 4 alone passes a source that sits after the node or off the
|
|
302
|
+
* graph whenever another listed source already covers every path).
|
|
303
|
+
*
|
|
304
|
+
* The graph is a DAG: the publish lint refuses cycles before this runs.
|
|
305
|
+
*/
|
|
306
|
+
export declare function readNodeActorSourceIssues(definition: WorkflowDefinition, nodeId: string, sourceNodeIds: readonly string[]): readonly string[];
|
|
269
307
|
export declare function hasConfiguredConditionEdges(definition: WorkflowDefinition): boolean;
|
|
270
308
|
export declare function readServiceTaskMemberIds(action: ServiceAction): readonly string[];
|
|
271
309
|
export declare const NOTIFY_WEBHOOK_TARGET_LIMIT = 10;
|
|
@@ -36,6 +36,8 @@ exports.readNotifyServiceTaskIssue = readNotifyServiceTaskIssue;
|
|
|
36
36
|
exports.readExcludeInitiatorIssue = readExcludeInitiatorIssue;
|
|
37
37
|
exports.isOrgManagerChainDecisionPolicyInvalid = isOrgManagerChainDecisionPolicyInvalid;
|
|
38
38
|
exports.readApproverResolverIssue = readApproverResolverIssue;
|
|
39
|
+
exports.readNodeActorSourceSkipReasons = readNodeActorSourceSkipReasons;
|
|
40
|
+
exports.readNodeActorSourceIssues = readNodeActorSourceIssues;
|
|
39
41
|
exports.hasConfiguredConditionEdges = hasConfiguredConditionEdges;
|
|
40
42
|
exports.readServiceTaskMemberIds = readServiceTaskMemberIds;
|
|
41
43
|
exports.defaultNotifyWebhookTargetId = defaultNotifyWebhookTargetId;
|
|
@@ -67,6 +69,8 @@ exports.readFormFieldReference = readFormFieldReference;
|
|
|
67
69
|
exports.readConditionExpressionOperator = readConditionExpressionOperator;
|
|
68
70
|
exports.readConditionExpressionValue = readConditionExpressionValue;
|
|
69
71
|
const form_1 = require("./form");
|
|
72
|
+
const workflow_1 = require("./workflow");
|
|
73
|
+
const workflow_reachability_1 = require("./workflow-reachability");
|
|
70
74
|
exports.EXCLUDE_INITIATOR_WHEN_EMPTY_VALUES = ['FAIL', 'INITIATOR_MANAGER', 'SKIP_NODE'];
|
|
71
75
|
exports.WORKFLOW_INPUT_HANDLE_ID = 'input';
|
|
72
76
|
exports.WORKFLOW_OUTPUT_HANDLE_ID = 'output';
|
|
@@ -750,6 +754,9 @@ function isOrgManagerChainDecisionPolicyInvalid(resolver, decisionPolicy) {
|
|
|
750
754
|
}
|
|
751
755
|
function readApproverResolverIssue(resolver) {
|
|
752
756
|
var _a, _b;
|
|
757
|
+
if ((0, workflow_1.readUnsupportedApproverResolverType)(resolver) !== null) {
|
|
758
|
+
return '簽核節點的簽核來源不在這個版本支援的範圍內,請改選其他簽核來源。';
|
|
759
|
+
}
|
|
753
760
|
if (resolver.type === 'DIRECT' && resolver.memberIds.length === 0) {
|
|
754
761
|
return '簽核節點需要指定簽核會員。';
|
|
755
762
|
}
|
|
@@ -770,16 +777,29 @@ function readApproverResolverIssue(resolver) {
|
|
|
770
777
|
!Number.isInteger(resolver.minPositionLevel)) {
|
|
771
778
|
return '簽核節點需要指定有效的職等門檻。';
|
|
772
779
|
}
|
|
773
|
-
if ((resolver.type === '
|
|
774
|
-
resolver.type === '
|
|
775
|
-
resolver.
|
|
780
|
+
if ((resolver.type === 'FORM_MEMBER_MANAGER' ||
|
|
781
|
+
resolver.type === 'FORM_ORG_UNIT_MANAGER') &&
|
|
782
|
+
!resolver.formPath.trim()) {
|
|
783
|
+
return '簽核節點需要指定表單欄位。';
|
|
784
|
+
}
|
|
785
|
+
if ((resolver.type === 'FORM_MEMBER_MANAGER' ||
|
|
786
|
+
resolver.type === 'NODE_ACTOR_MANAGER') &&
|
|
787
|
+
!(Number.isInteger(resolver.levelsUp) && resolver.levelsUp >= 1)) {
|
|
788
|
+
return '簽核節點需要指定有效的主管層級。';
|
|
789
|
+
}
|
|
790
|
+
if ((resolver.type === 'NODE_ACTOR' ||
|
|
791
|
+
resolver.type === 'NODE_ACTOR_MANAGER') &&
|
|
792
|
+
resolver.nodeIds.length === 0) {
|
|
793
|
+
return '簽核節點需要指定前面的簽核關卡。';
|
|
794
|
+
}
|
|
795
|
+
if ((0, workflow_1.isFallbackCapableApproverResolverType)(resolver.type) &&
|
|
796
|
+
'fallback' in resolver &&
|
|
776
797
|
((_a = resolver.fallback) === null || _a === void 0 ? void 0 : _a.type) === 'DIRECT' &&
|
|
777
798
|
!resolver.fallback.memberId.trim()) {
|
|
778
799
|
return '簽核節點需要指定改派固定人。';
|
|
779
800
|
}
|
|
780
|
-
if ((resolver.type
|
|
781
|
-
|
|
782
|
-
resolver.type === 'ORG_MANAGER_CHAIN') &&
|
|
801
|
+
if ((0, workflow_1.isFallbackCapableApproverResolverType)(resolver.type) &&
|
|
802
|
+
'fallback' in resolver &&
|
|
783
803
|
((_b = resolver.fallback) === null || _b === void 0 ? void 0 : _b.type) === 'POSITION' &&
|
|
784
804
|
!resolver.fallback.positionId.trim()) {
|
|
785
805
|
return '簽核節點需要指定改派職位。';
|
|
@@ -792,6 +812,96 @@ function readApproverResolverIssue(resolver) {
|
|
|
792
812
|
}
|
|
793
813
|
return null;
|
|
794
814
|
}
|
|
815
|
+
function readNodeActorSourceSkipReasons(node) {
|
|
816
|
+
var _a, _b, _c;
|
|
817
|
+
return [
|
|
818
|
+
...(((_a = node.data.entryCondition) === null || _a === void 0 ? void 0 : _a.trim()) ? ['entryCondition'] : []),
|
|
819
|
+
...(((_b = node.data.excludeInitiator) === null || _b === void 0 ? void 0 : _b.whenEmpty) === 'SKIP_NODE'
|
|
820
|
+
? ['skipNode']
|
|
821
|
+
: []),
|
|
822
|
+
...(((_c = node.data.sla) === null || _c === void 0 ? void 0 : _c.onTimeout) === 'AUTO_APPROVE'
|
|
823
|
+
? ['autoApprove']
|
|
824
|
+
: []),
|
|
825
|
+
];
|
|
826
|
+
}
|
|
827
|
+
const NODE_ACTOR_SOURCE_SKIP_ISSUES = {
|
|
828
|
+
autoApprove: (label) => `簽核來源的前面關卡 ${label} 設有逾時自動核准,可能沒有人實際簽核。`,
|
|
829
|
+
entryCondition: (label) => `簽核來源的前面關卡 ${label} 設有進入條件,可能被跳過、沒有人簽核。`,
|
|
830
|
+
skipNode: (label) => `簽核來源的前面關卡 ${label} 在排除發起人後沒人時會跳過此關,可能沒有人簽核。`,
|
|
831
|
+
};
|
|
832
|
+
/**
|
|
833
|
+
* The graph checks behind a `NODE_ACTOR` / `NODE_ACTOR_MANAGER` node: the
|
|
834
|
+
* "who signed earlier" source only works when every case reaches `nodeId`
|
|
835
|
+
* through one of `sourceNodeIds`, and that source actually signed. Returns
|
|
836
|
+
* Chinese issue lines for the designer and the publish lint; `[]` means the
|
|
837
|
+
* source is sound. `nodeId` is the node that uses the source.
|
|
838
|
+
*
|
|
839
|
+
* 1. at least one source, no repeats, never the node itself;
|
|
840
|
+
* 2. every source exists and is a `userTask`;
|
|
841
|
+
* 3. no source may be skipped or pass without a signer: see
|
|
842
|
+
* {@link readNodeActorSourceSkipReasons};
|
|
843
|
+
* 4. coverage: walking from the start without entering any source must not
|
|
844
|
+
* reach `nodeId` (else some case never passes a source);
|
|
845
|
+
* 5. no two sources on different branches of one parallel split (they would
|
|
846
|
+
* both run, and "the earlier signer" would not be one person).
|
|
847
|
+
* 6. every source is upstream of `nodeId`: some path leads from it to the
|
|
848
|
+
* node (rule 4 alone passes a source that sits after the node or off the
|
|
849
|
+
* graph whenever another listed source already covers every path).
|
|
850
|
+
*
|
|
851
|
+
* The graph is a DAG: the publish lint refuses cycles before this runs.
|
|
852
|
+
*/
|
|
853
|
+
function readNodeActorSourceIssues(definition, nodeId, sourceNodeIds) {
|
|
854
|
+
if (sourceNodeIds.length === 0) {
|
|
855
|
+
return ['簽核節點需要指定前面的簽核關卡。'];
|
|
856
|
+
}
|
|
857
|
+
if (new Set(sourceNodeIds).size !== sourceNodeIds.length) {
|
|
858
|
+
return ['簽核來源的前面關卡不可重複。'];
|
|
859
|
+
}
|
|
860
|
+
if (sourceNodeIds.includes(nodeId)) {
|
|
861
|
+
return ['簽核來源的前面關卡不可以是自己。'];
|
|
862
|
+
}
|
|
863
|
+
const labelOf = (id) => {
|
|
864
|
+
const node = definition.nodes.find((candidate) => candidate.id === id);
|
|
865
|
+
return (node === null || node === void 0 ? void 0 : node.data.label) ? `「${node.data.label}」` : `「${id}」`;
|
|
866
|
+
};
|
|
867
|
+
const sourceNodes = sourceNodeIds.map((id) => definition.nodes.find((candidate) => candidate.id === id));
|
|
868
|
+
const missingId = sourceNodeIds.find((id, index) => sourceNodes[index] === undefined);
|
|
869
|
+
if (missingId !== undefined) {
|
|
870
|
+
return [`簽核來源的前面關卡「${missingId}」不存在。`];
|
|
871
|
+
}
|
|
872
|
+
const notUserTaskId = sourceNodeIds.find((id, index) => { var _a; return ((_a = sourceNodes[index]) === null || _a === void 0 ? void 0 : _a.type) !== 'userTask'; });
|
|
873
|
+
if (notUserTaskId !== undefined) {
|
|
874
|
+
return [`簽核來源的前面關卡 ${labelOf(notUserTaskId)} 不是簽核關卡。`];
|
|
875
|
+
}
|
|
876
|
+
const skippableIssues = sourceNodes.flatMap((node) => (node === null || node === void 0 ? void 0 : node.type) === 'userTask'
|
|
877
|
+
? readNodeActorSourceSkipReasons(node).map((reason) => NODE_ACTOR_SOURCE_SKIP_ISSUES[reason](labelOf(node.id)))
|
|
878
|
+
: []);
|
|
879
|
+
const startNodeIds = definition.nodes
|
|
880
|
+
.filter((node) => node.type === 'startEvent')
|
|
881
|
+
.map((node) => node.id);
|
|
882
|
+
const reachableWithoutSource = (0, workflow_reachability_1.readReachableWorkflowNodeIds)(definition.edges, startNodeIds, new Set(sourceNodeIds));
|
|
883
|
+
const coverageIssues = reachableWithoutSource.has(nodeId)
|
|
884
|
+
? [
|
|
885
|
+
`有一條路徑不會經過所選的前面關卡(${sourceNodeIds
|
|
886
|
+
.map(labelOf)
|
|
887
|
+
.join('、')})就走到 ${labelOf(nodeId)},那一趟沒有人可以當簽核人。`,
|
|
888
|
+
]
|
|
889
|
+
: [];
|
|
890
|
+
const notUpstreamIssues = sourceNodeIds
|
|
891
|
+
.filter((id) => !(0, workflow_reachability_1.readReachableWorkflowNodeIds)(definition.edges, [id]).has(nodeId))
|
|
892
|
+
.map((id) => `前面關卡 ${labelOf(id)} 不在 ${labelOf(nodeId)} 的上游,走不到這個節點,不能當簽核來源。`);
|
|
893
|
+
const parallelBranches = (0, workflow_reachability_1.readWorkflowParallelBranchSets)(definition);
|
|
894
|
+
const parallelIssues = sourceNodeIds.flatMap((id, index) => sourceNodeIds
|
|
895
|
+
.slice(index + 1)
|
|
896
|
+
.filter((otherId) => parallelBranches.some((branches) => (0, workflow_reachability_1.isOnOwnParallelBranch)(branches, id, otherId)))
|
|
897
|
+
.map((otherId) => `前面關卡 ${labelOf(id)} 與 ${labelOf(otherId)} 在平行分支的不同路線上,兩關會同時簽核,不能一起當簽核來源。`));
|
|
898
|
+
return [
|
|
899
|
+
...skippableIssues,
|
|
900
|
+
...coverageIssues,
|
|
901
|
+
...notUpstreamIssues,
|
|
902
|
+
...parallelIssues,
|
|
903
|
+
];
|
|
904
|
+
}
|
|
795
905
|
function hasConfiguredConditionEdges(definition) {
|
|
796
906
|
return definition.edges.some((edge) => isExclusiveGatewaySourceEdge(edge, definition.nodes) &&
|
|
797
907
|
Boolean(edge.data.condition ||
|
|
@@ -852,6 +962,9 @@ function isNotifyRecipientsEmpty(recipients) {
|
|
|
852
962
|
* depends on the node's webhooks.
|
|
853
963
|
*/
|
|
854
964
|
function readNotifyRecipientsIssue(recipients) {
|
|
965
|
+
if (!(0, workflow_1.isNotifyRecipientResolverType)(recipients.type)) {
|
|
966
|
+
return '知會節點的知會對象不支援這種來源,請改選成員、職位、組織、表單欄位或運算式。';
|
|
967
|
+
}
|
|
855
968
|
if (recipients.type === 'POSITION' && !recipients.positionId.trim()) {
|
|
856
969
|
return '知會節點需要指定職位。';
|
|
857
970
|
}
|
|
@@ -914,6 +1027,7 @@ function isFormFieldCompatibleWithWebhookParameter(field, type) {
|
|
|
914
1027
|
(field.type === 'member' && field.multiple === true));
|
|
915
1028
|
}
|
|
916
1029
|
return ((field.type === 'member' && field.multiple !== true) ||
|
|
1030
|
+
field.type === 'org_unit' ||
|
|
917
1031
|
field.type === 'text' ||
|
|
918
1032
|
field.type === 'textarea' ||
|
|
919
1033
|
field.type === 'date' ||
|
|
@@ -1222,10 +1336,11 @@ function readConditionOperator(value) {
|
|
|
1222
1336
|
: null;
|
|
1223
1337
|
}
|
|
1224
1338
|
function readConditionOperatorIds(field) {
|
|
1225
|
-
// A member id is an opaque directory key: nobody can type the
|
|
1226
|
-
// a condition, so only "was someone picked" is offered.
|
|
1339
|
+
// A member or org unit id is an opaque directory key: nobody can type the
|
|
1340
|
+
// right one into a condition, so only "was someone picked" is offered.
|
|
1227
1341
|
if (field.type === 'file_upload' ||
|
|
1228
1342
|
field.type === 'member' ||
|
|
1343
|
+
field.type === 'org_unit' ||
|
|
1229
1344
|
field.type === 'table') {
|
|
1230
1345
|
return ['IS_FILLED', 'IS_EMPTY'];
|
|
1231
1346
|
}
|
|
@@ -1362,6 +1477,16 @@ function readConditionExpression(field, operator, value) {
|
|
|
1362
1477
|
}
|
|
1363
1478
|
return undefined;
|
|
1364
1479
|
}
|
|
1480
|
+
if (field.type === 'org_unit') {
|
|
1481
|
+
// One org unit id (a string): only "was one picked" compiles, like member.
|
|
1482
|
+
if (operator === 'IS_FILLED') {
|
|
1483
|
+
return `${fieldReference} != null && ${fieldReference} != ""`;
|
|
1484
|
+
}
|
|
1485
|
+
if (operator === 'IS_EMPTY') {
|
|
1486
|
+
return `${fieldReference} == null || ${fieldReference} == ""`;
|
|
1487
|
+
}
|
|
1488
|
+
return undefined;
|
|
1489
|
+
}
|
|
1365
1490
|
if (field.type === 'table') {
|
|
1366
1491
|
// A table value is a list, so emptiness means row count, not `== ""`.
|
|
1367
1492
|
// cel-js supports the global `size()` macro but not a `.size()` method,
|