@rytass/bpm-core-shared 0.20.1 → 0.21.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 +74 -0
- package/README.md +5 -0
- package/package.json +1 -1
- package/src/index.d.ts +1 -0
- package/src/index.js +1 -0
- package/src/index.js.map +1 -1
- package/src/lib/form-filter.d.ts +166 -0
- package/src/lib/form-filter.js +388 -0
- package/src/lib/form-filter.js.map +1 -0
- package/src/lib/form.d.ts +26 -0
- package/src/lib/form.js +29 -1
- package/src/lib/form.js.map +1 -1
- package/src/lib/organization.d.ts +7 -0
- package/src/lib/organization.js +8 -0
- package/src/lib/organization.js.map +1 -1
- package/src/lib/workflow-command.d.ts +18 -1
- package/src/lib/workflow-command.js +30 -0
- package/src/lib/workflow-command.js.map +1 -1
- package/src/lib/workflow-graph.d.ts +104 -5
- package/src/lib/workflow-graph.js +321 -32
- package/src/lib/workflow-graph.js.map +1 -1
- package/src/lib/workflow-toolset.js +190 -24
- package/src/lib/workflow-toolset.js.map +1 -1
- package/src/lib/workflow.d.ts +135 -0
- package/src/lib/workflow.js +132 -0
- package/src/lib/workflow.js.map +1 -1
|
@@ -0,0 +1,388 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FILTERABLE_FIELD_ISSUE_SAMPLE_LIMIT = exports.APPROVAL_INSTANCE_FIELD_FILTER_OPERATORS = exports.APPROVAL_INSTANCE_SORT_TIME_FIELDS = exports.FILTERABLE_TABLE_COLUMN_TYPES = exports.FILTERABLE_FIELD_TYPES = void 0;
|
|
4
|
+
exports.isApprovalInstanceSortTimeField = isApprovalInstanceSortTimeField;
|
|
5
|
+
exports.isFilterableFieldType = isFilterableFieldType;
|
|
6
|
+
exports.readFilterableValueKind = readFilterableValueKind;
|
|
7
|
+
exports.readFilterOperatorsForFieldType = readFilterOperatorsForFieldType;
|
|
8
|
+
exports.isFilterableFieldSortable = isFilterableFieldSortable;
|
|
9
|
+
exports.readFilterableFieldPaths = readFilterableFieldPaths;
|
|
10
|
+
exports.findFilterableFieldPath = findFilterableFieldPath;
|
|
11
|
+
exports.readFormFieldTypesByPath = readFormFieldTypesByPath;
|
|
12
|
+
exports.checkFilterableFieldValue = checkFilterableFieldValue;
|
|
13
|
+
exports.isCanonicalDate = isCanonicalDate;
|
|
14
|
+
exports.isCanonicalDateTime = isCanonicalDateTime;
|
|
15
|
+
exports.readFilterableValueProblems = readFilterableValueProblems;
|
|
16
|
+
exports.readFilterableFieldIssues = readFilterableFieldIssues;
|
|
17
|
+
exports.describeFilterableFieldIssue = describeFilterableFieldIssue;
|
|
18
|
+
const form_1 = require("./form");
|
|
19
|
+
/**
|
|
20
|
+
* Filtering and sorting the approval-instance list by form fields (ADR 25).
|
|
21
|
+
*
|
|
22
|
+
* Everything that decides "is this value right for a filterable field" lives
|
|
23
|
+
* here so the write-time check, the enable-time scan of old instances, the
|
|
24
|
+
* query compiler and the designer all answer the same way.
|
|
25
|
+
*/
|
|
26
|
+
/** Top-level field types a form designer may mark `filterable` (ADR 25 §5.2). */
|
|
27
|
+
exports.FILTERABLE_FIELD_TYPES = [
|
|
28
|
+
'autocomplete',
|
|
29
|
+
'boolean',
|
|
30
|
+
'checkbox',
|
|
31
|
+
'date',
|
|
32
|
+
'datetime',
|
|
33
|
+
'member',
|
|
34
|
+
'money',
|
|
35
|
+
'number',
|
|
36
|
+
'org_unit',
|
|
37
|
+
'radio',
|
|
38
|
+
'select',
|
|
39
|
+
'text',
|
|
40
|
+
'textarea',
|
|
41
|
+
];
|
|
42
|
+
/** Table column types a form designer may mark `filterable`: every column type. */
|
|
43
|
+
exports.FILTERABLE_TABLE_COLUMN_TYPES = form_1.TABLE_COLUMN_FIELD_TYPES;
|
|
44
|
+
/**
|
|
45
|
+
* Sort keys that are not form fields. A filterable field must not use one of
|
|
46
|
+
* these as its `fieldKey`, or a sort request would be ambiguous.
|
|
47
|
+
*/
|
|
48
|
+
exports.APPROVAL_INSTANCE_SORT_TIME_FIELDS = [
|
|
49
|
+
'submittedAt',
|
|
50
|
+
'updatedAt',
|
|
51
|
+
'completedAt',
|
|
52
|
+
];
|
|
53
|
+
function isApprovalInstanceSortTimeField(value) {
|
|
54
|
+
return exports.APPROVAL_INSTANCE_SORT_TIME_FIELDS.includes(value);
|
|
55
|
+
}
|
|
56
|
+
function isFilterableFieldType(type, placement = 'top-level') {
|
|
57
|
+
return placement === 'column'
|
|
58
|
+
? exports.FILTERABLE_TABLE_COLUMN_TYPES.includes(type)
|
|
59
|
+
: exports.FILTERABLE_FIELD_TYPES.includes(type);
|
|
60
|
+
}
|
|
61
|
+
exports.APPROVAL_INSTANCE_FIELD_FILTER_OPERATORS = ['EQUALS', 'NOT_EQUALS', 'IN', 'RANGE', 'CONTAINS'];
|
|
62
|
+
function readFilterableValueKind(type) {
|
|
63
|
+
switch (type) {
|
|
64
|
+
case 'text':
|
|
65
|
+
case 'textarea':
|
|
66
|
+
return 'text';
|
|
67
|
+
case 'number':
|
|
68
|
+
case 'money':
|
|
69
|
+
return 'number';
|
|
70
|
+
case 'date':
|
|
71
|
+
return 'date';
|
|
72
|
+
case 'datetime':
|
|
73
|
+
return 'datetime';
|
|
74
|
+
case 'boolean':
|
|
75
|
+
return 'boolean';
|
|
76
|
+
case 'select':
|
|
77
|
+
case 'autocomplete':
|
|
78
|
+
case 'radio':
|
|
79
|
+
case 'checkbox':
|
|
80
|
+
return 'option';
|
|
81
|
+
case 'member':
|
|
82
|
+
return 'member';
|
|
83
|
+
case 'org_unit':
|
|
84
|
+
return 'org_unit';
|
|
85
|
+
default:
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/** Operators a field type accepts (ADR 25 §7.2). */
|
|
90
|
+
function readFilterOperatorsForFieldType(type) {
|
|
91
|
+
if (type === 'textarea') {
|
|
92
|
+
return ['CONTAINS'];
|
|
93
|
+
}
|
|
94
|
+
if (type === 'boolean') {
|
|
95
|
+
return ['EQUALS'];
|
|
96
|
+
}
|
|
97
|
+
switch (readFilterableValueKind(type)) {
|
|
98
|
+
case 'text':
|
|
99
|
+
return ['EQUALS', 'NOT_EQUALS', 'IN', 'CONTAINS'];
|
|
100
|
+
case 'number':
|
|
101
|
+
return ['EQUALS', 'NOT_EQUALS', 'IN', 'RANGE'];
|
|
102
|
+
case 'date':
|
|
103
|
+
case 'datetime':
|
|
104
|
+
return ['EQUALS', 'NOT_EQUALS', 'RANGE'];
|
|
105
|
+
case 'option':
|
|
106
|
+
return ['EQUALS', 'NOT_EQUALS', 'IN', 'CONTAINS'];
|
|
107
|
+
case 'member':
|
|
108
|
+
case 'org_unit':
|
|
109
|
+
return ['EQUALS', 'NOT_EQUALS', 'IN'];
|
|
110
|
+
default:
|
|
111
|
+
return [];
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
/** A filterable top-level field can be sorted on; a table column cannot (ADR 25 §7.5). */
|
|
115
|
+
function isFilterableFieldSortable(path) {
|
|
116
|
+
return path.tableKey === null && path.field.type !== 'textarea';
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* The fields of `schema` a list query may filter on: every field (or table
|
|
120
|
+
* column) marked `filterable` whose type allows it. A field marked filterable
|
|
121
|
+
* with a type that does not allow it is skipped here; the schema lint reports
|
|
122
|
+
* it.
|
|
123
|
+
*/
|
|
124
|
+
function readFilterableFieldPaths(schema) {
|
|
125
|
+
if (!schema || !Array.isArray(schema.fields)) {
|
|
126
|
+
return [];
|
|
127
|
+
}
|
|
128
|
+
return schema.fields.flatMap((field) => {
|
|
129
|
+
if ((0, form_1.isTableFieldDefinition)(field)) {
|
|
130
|
+
const table = field;
|
|
131
|
+
return table.columns
|
|
132
|
+
.filter((column) => column.filterable === true &&
|
|
133
|
+
isFilterableFieldType(column.type, 'column'))
|
|
134
|
+
.map((column) => toFilterableFieldPath(column, table.fieldKey, table.label));
|
|
135
|
+
}
|
|
136
|
+
return field.filterable === true && isFilterableFieldType(field.type)
|
|
137
|
+
? [toFilterableFieldPath(field, null, null)]
|
|
138
|
+
: [];
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
function findFilterableFieldPath(schema, path) {
|
|
142
|
+
var _a;
|
|
143
|
+
return (_a = readFilterableFieldPaths(schema).find((item) => item.path === path)) !== null && _a !== void 0 ? _a : null;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Every field and column of a schema by path, filterable or not. The enable
|
|
147
|
+
* check compares a new filterable field against what older versions stored
|
|
148
|
+
* at the same path, whether or not they were filterable then.
|
|
149
|
+
*/
|
|
150
|
+
function readFormFieldTypesByPath(schema) {
|
|
151
|
+
if (!schema || !Array.isArray(schema.fields)) {
|
|
152
|
+
return new Map();
|
|
153
|
+
}
|
|
154
|
+
return new Map(schema.fields.flatMap((field) => (0, form_1.isTableFieldDefinition)(field)
|
|
155
|
+
? [
|
|
156
|
+
[field.fieldKey, field.type],
|
|
157
|
+
...field.columns.map((column) => [
|
|
158
|
+
`${field.fieldKey}.${column.fieldKey}`,
|
|
159
|
+
column.type,
|
|
160
|
+
]),
|
|
161
|
+
]
|
|
162
|
+
: [[field.fieldKey, field.type]]));
|
|
163
|
+
}
|
|
164
|
+
function toFilterableFieldPath(field, tableKey, tableLabel) {
|
|
165
|
+
var _a;
|
|
166
|
+
const asField = field;
|
|
167
|
+
const staticOptions = (0, form_1.isFormStaticOptionFieldDefinition)(asField)
|
|
168
|
+
? asField.options
|
|
169
|
+
: null;
|
|
170
|
+
return {
|
|
171
|
+
field,
|
|
172
|
+
key: field.fieldKey,
|
|
173
|
+
kind: (_a = readFilterableValueKind(field.type)) !== null && _a !== void 0 ? _a : 'text',
|
|
174
|
+
label: tableLabel
|
|
175
|
+
? `${tableLabel}/${field.label || field.fieldKey}`
|
|
176
|
+
: field.label || field.fieldKey,
|
|
177
|
+
path: tableKey ? `${tableKey}.${field.fieldKey}` : field.fieldKey,
|
|
178
|
+
staticOptions,
|
|
179
|
+
tableKey,
|
|
180
|
+
usesOptionSnapshot: tableKey === null && (0, form_1.isFormDataSourceFieldDefinition)(asField),
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* The canonical stored formats (ADR 25 §6), matching what the form renderer
|
|
185
|
+
* writes: `formatDatePickerValue` for a date, `Date#toISOString` for a
|
|
186
|
+
* datetime, `Number(...)` for a number.
|
|
187
|
+
*/
|
|
188
|
+
const DATE_PATTERN = /^\d{4}-\d{2}-\d{2}$/u;
|
|
189
|
+
const DATETIME_PATTERN = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/u;
|
|
190
|
+
const EMPTY = { status: 'empty' };
|
|
191
|
+
const VALID = { status: 'valid' };
|
|
192
|
+
function invalid(expected) {
|
|
193
|
+
return { expected, status: 'invalid' };
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Whether one stored value fits a filterable field (ADR 25 §5.4, §6).
|
|
197
|
+
*
|
|
198
|
+
* - Missing and `null` are "no value". So is `""` for a number, money, date,
|
|
199
|
+
* datetime or boolean field (a cleared input), and `[]` for a multi-value
|
|
200
|
+
* field.
|
|
201
|
+
* - An option or member field accepts a string or an array of strings either
|
|
202
|
+
* way: its `mode` / `multiple` may change between versions without changing
|
|
203
|
+
* its type, and the query matches both shapes.
|
|
204
|
+
*/
|
|
205
|
+
function checkFilterableFieldValue(field, value) {
|
|
206
|
+
if (value === undefined || value === null) {
|
|
207
|
+
return EMPTY;
|
|
208
|
+
}
|
|
209
|
+
switch (readFilterableValueKind(field.type)) {
|
|
210
|
+
case 'text':
|
|
211
|
+
return typeof value === 'string' ? VALID : invalid('文字');
|
|
212
|
+
case 'number':
|
|
213
|
+
if (value === '') {
|
|
214
|
+
return EMPTY;
|
|
215
|
+
}
|
|
216
|
+
return typeof value === 'number' && Number.isFinite(value)
|
|
217
|
+
? VALID
|
|
218
|
+
: invalid('數字');
|
|
219
|
+
case 'date':
|
|
220
|
+
if (value === '') {
|
|
221
|
+
return EMPTY;
|
|
222
|
+
}
|
|
223
|
+
return isCanonicalDate(value) ? VALID : invalid('日期(YYYY-MM-DD)');
|
|
224
|
+
case 'datetime':
|
|
225
|
+
if (value === '') {
|
|
226
|
+
return EMPTY;
|
|
227
|
+
}
|
|
228
|
+
return isCanonicalDateTime(value)
|
|
229
|
+
? VALID
|
|
230
|
+
: invalid('日期時間(ISO 8601 UTC,例如 2026-11-03T08:30:00.000Z)');
|
|
231
|
+
case 'boolean':
|
|
232
|
+
if (value === '') {
|
|
233
|
+
return EMPTY;
|
|
234
|
+
}
|
|
235
|
+
return typeof value === 'boolean' ? VALID : invalid('布林值(true 或 false)');
|
|
236
|
+
case 'option':
|
|
237
|
+
case 'member':
|
|
238
|
+
return checkStringOrStringArray(value);
|
|
239
|
+
case 'org_unit':
|
|
240
|
+
return typeof value === 'string' ? VALID : invalid('組織單位 ID(文字)');
|
|
241
|
+
default:
|
|
242
|
+
return VALID;
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
function checkStringOrStringArray(value) {
|
|
246
|
+
if (typeof value === 'string') {
|
|
247
|
+
return VALID;
|
|
248
|
+
}
|
|
249
|
+
if (Array.isArray(value) && value.every((item) => typeof item === 'string')) {
|
|
250
|
+
return value.length === 0 ? EMPTY : VALID;
|
|
251
|
+
}
|
|
252
|
+
return invalid('文字或文字清單');
|
|
253
|
+
}
|
|
254
|
+
function isCanonicalDate(value) {
|
|
255
|
+
if (typeof value !== 'string' || !DATE_PATTERN.test(value)) {
|
|
256
|
+
return false;
|
|
257
|
+
}
|
|
258
|
+
const [year, month, day] = value.split('-').map(Number);
|
|
259
|
+
const date = new Date(Date.UTC(year, month - 1, day));
|
|
260
|
+
return (date.getUTCFullYear() === year &&
|
|
261
|
+
date.getUTCMonth() === month - 1 &&
|
|
262
|
+
date.getUTCDate() === day);
|
|
263
|
+
}
|
|
264
|
+
function isCanonicalDateTime(value) {
|
|
265
|
+
if (typeof value !== 'string' || !DATETIME_PATTERN.test(value)) {
|
|
266
|
+
return false;
|
|
267
|
+
}
|
|
268
|
+
const time = Date.parse(value);
|
|
269
|
+
return Number.isFinite(time) && new Date(time).toISOString() === value;
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Every value in `formData` that does not fit one of `paths`. Used both when
|
|
273
|
+
* writing (refuse the write) and when enabling a field (refuse to enable while
|
|
274
|
+
* old instances hold such values). A table that is not an array, or a row that
|
|
275
|
+
* is not an object, is a problem of every filterable column in it.
|
|
276
|
+
*/
|
|
277
|
+
function readFilterableValueProblems(paths, formData) {
|
|
278
|
+
const data = formData !== null && formData !== void 0 ? formData : {};
|
|
279
|
+
return paths.flatMap((item) => {
|
|
280
|
+
if (item.tableKey === null) {
|
|
281
|
+
const value = ownValue(data, item.key);
|
|
282
|
+
const check = checkFilterableFieldValue(item.field, value);
|
|
283
|
+
return check.status === 'invalid'
|
|
284
|
+
? [{ expected: check.expected, path: item.path, rowIndex: null, value }]
|
|
285
|
+
: [];
|
|
286
|
+
}
|
|
287
|
+
const tableKey = item.tableKey;
|
|
288
|
+
// A malformed table or row is one problem however many of its columns are
|
|
289
|
+
// filterable, so only the table's first filterable column reports it.
|
|
290
|
+
const reportsTable = paths.find((candidate) => candidate.tableKey === tableKey) === item;
|
|
291
|
+
const rows = ownValue(data, tableKey);
|
|
292
|
+
if (rows === undefined || rows === null) {
|
|
293
|
+
return [];
|
|
294
|
+
}
|
|
295
|
+
if (!Array.isArray(rows)) {
|
|
296
|
+
return reportsTable
|
|
297
|
+
? [{ expected: '表格列的清單', path: tableKey, rowIndex: null, value: rows }]
|
|
298
|
+
: [];
|
|
299
|
+
}
|
|
300
|
+
return rows.flatMap((row, rowIndex) => {
|
|
301
|
+
if (typeof row !== 'object' || row === null || Array.isArray(row)) {
|
|
302
|
+
return reportsTable
|
|
303
|
+
? [{ expected: '物件', path: tableKey, rowIndex, value: row }]
|
|
304
|
+
: [];
|
|
305
|
+
}
|
|
306
|
+
const value = ownValue(row, item.key);
|
|
307
|
+
const check = checkFilterableFieldValue(item.field, value);
|
|
308
|
+
return check.status === 'invalid'
|
|
309
|
+
? [{ expected: check.expected, path: item.path, rowIndex, value }]
|
|
310
|
+
: [];
|
|
311
|
+
});
|
|
312
|
+
});
|
|
313
|
+
}
|
|
314
|
+
function ownValue(record, key) {
|
|
315
|
+
return Object.prototype.hasOwnProperty.call(record, key)
|
|
316
|
+
? record[key]
|
|
317
|
+
: undefined;
|
|
318
|
+
}
|
|
319
|
+
exports.FILTERABLE_FIELD_ISSUE_SAMPLE_LIMIT = 5;
|
|
320
|
+
/**
|
|
321
|
+
* The enable check (ADR 25 §5.4), pure: given the schema about to take effect,
|
|
322
|
+
* the schemas of older versions that hold instances, and those instances'
|
|
323
|
+
* form data, report every filterable field that may not be enabled.
|
|
324
|
+
*/
|
|
325
|
+
function readFilterableFieldIssues(input) {
|
|
326
|
+
const paths = readFilterableFieldPaths(input.schema);
|
|
327
|
+
const historyTypes = input.history.map((version) => ({
|
|
328
|
+
types: readFormFieldTypesByPath(version.schema),
|
|
329
|
+
versionNumber: version.versionNumber,
|
|
330
|
+
}));
|
|
331
|
+
return paths.flatMap((item) => {
|
|
332
|
+
const conflicts = historyTypes
|
|
333
|
+
.map((version) => ({
|
|
334
|
+
type: version.types.get(item.path),
|
|
335
|
+
versionNumber: version.versionNumber,
|
|
336
|
+
}))
|
|
337
|
+
.filter((version) => version.type !== undefined && version.type !== item.field.type)
|
|
338
|
+
.sort((left, right) => left.versionNumber - right.versionNumber);
|
|
339
|
+
if (conflicts.length > 0) {
|
|
340
|
+
return [
|
|
341
|
+
{
|
|
342
|
+
conflicts,
|
|
343
|
+
kind: 'TYPE_CHANGED',
|
|
344
|
+
label: item.label,
|
|
345
|
+
path: item.path,
|
|
346
|
+
type: item.field.type,
|
|
347
|
+
},
|
|
348
|
+
];
|
|
349
|
+
}
|
|
350
|
+
const problems = input.instances.flatMap((instance) => readFilterableValueProblems([item], instance.formData).map((problem) => ({
|
|
351
|
+
expected: problem.expected,
|
|
352
|
+
instanceId: instance.id,
|
|
353
|
+
rowIndex: problem.rowIndex,
|
|
354
|
+
})));
|
|
355
|
+
if (problems.length === 0) {
|
|
356
|
+
return [];
|
|
357
|
+
}
|
|
358
|
+
return [
|
|
359
|
+
{
|
|
360
|
+
invalidInstanceCount: new Set(problems.map((problem) => problem.instanceId)).size,
|
|
361
|
+
kind: 'INVALID_VALUES',
|
|
362
|
+
label: item.label,
|
|
363
|
+
path: item.path,
|
|
364
|
+
samples: problems.slice(0, exports.FILTERABLE_FIELD_ISSUE_SAMPLE_LIMIT),
|
|
365
|
+
type: item.field.type,
|
|
366
|
+
},
|
|
367
|
+
];
|
|
368
|
+
});
|
|
369
|
+
}
|
|
370
|
+
/** One line per issue, in the words the designer and the publish error use. */
|
|
371
|
+
function describeFilterableFieldIssue(issue) {
|
|
372
|
+
if (issue.kind === 'TYPE_CHANGED') {
|
|
373
|
+
const versions = issue.conflicts
|
|
374
|
+
.map((conflict) => `v${conflict.versionNumber}(${conflict.type})`)
|
|
375
|
+
.join('、');
|
|
376
|
+
return (`欄位「${issue.label}」(${issue.path})無法啟用篩選:已有案件的舊版本 ${versions} ` +
|
|
377
|
+
`在這個欄位存的是不同型別,現在是 ${issue.type}。請改用新的欄位 key 再勾選可篩選。`);
|
|
378
|
+
}
|
|
379
|
+
// The stored values are deliberately left out: a designer need not be able
|
|
380
|
+
// to read the instances, and could otherwise read any key's values by
|
|
381
|
+
// declaring it filterable. Instance ids and row numbers locate the problem.
|
|
382
|
+
const samples = issue.samples
|
|
383
|
+
.map((sample) => `${sample.instanceId}${sample.rowIndex === null ? '' : `(第 ${sample.rowIndex + 1} 列)`}`)
|
|
384
|
+
.join('、');
|
|
385
|
+
return (`欄位「${issue.label}」(${issue.path})無法啟用篩選:有 ${issue.invalidInstanceCount} 筆舊案件` +
|
|
386
|
+
`的值不符合 ${issue.type} 型別(例如 ${samples})。舊案件的值無法修改,請改用新的欄位 key 再勾選可篩選。`);
|
|
387
|
+
}
|
|
388
|
+
//# sourceMappingURL=form-filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-filter.js","sourceRoot":"","sources":["../../../../../libs/shared/src/lib/form-filter.ts"],"names":[],"mappings":"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"}
|
package/src/lib/form.d.ts
CHANGED
|
@@ -7,6 +7,13 @@ interface BaseFormFieldDefinition<TType extends string> {
|
|
|
7
7
|
readonly defaultValue?: FormFieldValue;
|
|
8
8
|
readonly description?: string;
|
|
9
9
|
readonly fieldKey: string;
|
|
10
|
+
/**
|
|
11
|
+
* 可篩選:列表查詢可依此欄位篩選(頂層欄位另可排序),見 ADR 25。勾選後此
|
|
12
|
+
* 欄位的 key 與型別在之後的版本不能再改,且值在每次寫入時都檢查型別
|
|
13
|
+
* ({@link checkFilterableFieldValue})。可用型別見
|
|
14
|
+
* {@link isFilterableFieldType};table 欄也可勾選。
|
|
15
|
+
*/
|
|
16
|
+
readonly filterable?: boolean;
|
|
10
17
|
/**
|
|
11
18
|
* 只存不顯示:值照存進 `form_data`,填寫、唯讀、重送畫面都不渲染;供宿主
|
|
12
19
|
* 系統放技術欄位(單據編號、版本等)。不是權限邊界 — API 回傳的 `formData`
|
|
@@ -338,4 +345,23 @@ export type FormStaticOptionFieldDefinition = (SelectFieldDefinition & {
|
|
|
338
345
|
}) | (CheckboxFieldDefinition & {
|
|
339
346
|
readonly options: readonly FormFieldOption[];
|
|
340
347
|
});
|
|
348
|
+
/**
|
|
349
|
+
* Why a form data value was refused. Machine-readable: the Chinese `message`
|
|
350
|
+
* of an issue is for display, the reason and `path` are what a client keys on.
|
|
351
|
+
*/
|
|
352
|
+
export declare const FORM_DATA_ISSUE_REASONS: readonly ["REQUIRED", "TYPE", "MIN_LENGTH", "MAX_LENGTH", "PATTERN", "PATTERN_TIMEOUT", "MIN_ROWS", "MAX_ROWS", "UNKNOWN_COLUMN", "MAX_FILES"];
|
|
353
|
+
export type FormDataIssueReason = (typeof FORM_DATA_ISSUE_REASONS)[number];
|
|
354
|
+
/**
|
|
355
|
+
* One refused form data value. `path` addresses it the way the form renderer
|
|
356
|
+
* keys its errors: a top-level field key (`note`), a table row (`items[1]`),
|
|
357
|
+
* or a table cell (`items[1].qty`). Rows are 0-based. `limit` is set for
|
|
358
|
+
* MIN_LENGTH / MAX_LENGTH / MIN_ROWS / MAX_ROWS / MAX_FILES.
|
|
359
|
+
*/
|
|
360
|
+
export interface FormDataIssue {
|
|
361
|
+
readonly path: string;
|
|
362
|
+
readonly reason: FormDataIssueReason;
|
|
363
|
+
readonly message: string;
|
|
364
|
+
readonly limit?: number;
|
|
365
|
+
}
|
|
366
|
+
export declare function isFormDataIssue(value: unknown): value is FormDataIssue;
|
|
341
367
|
export {};
|
package/src/lib/form.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
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 = exports.ATTACHMENT_NOT_BINDABLE_ERROR_CODE = exports.isFormDataSourceBindingKind = exports.FORM_DATA_SOURCE_BINDING_KINDS = void 0;
|
|
3
|
+
exports.FORM_DATA_ISSUE_REASONS = 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 = exports.ATTACHMENT_NOT_BINDABLE_ERROR_CODE = exports.isFormDataSourceBindingKind = exports.FORM_DATA_SOURCE_BINDING_KINDS = void 0;
|
|
4
4
|
exports.isFormOptionFieldDefinition = isFormOptionFieldDefinition;
|
|
5
5
|
exports.isMemberFieldDefinition = isMemberFieldDefinition;
|
|
6
6
|
exports.isOrgUnitFieldDefinition = isOrgUnitFieldDefinition;
|
|
@@ -21,6 +21,7 @@ exports.isFormDataSourceFieldDefinition = isFormDataSourceFieldDefinition;
|
|
|
21
21
|
exports.isFormStaticOptionFieldDefinition = isFormStaticOptionFieldDefinition;
|
|
22
22
|
exports.readFormFieldSelectionMode = readFormFieldSelectionMode;
|
|
23
23
|
exports.normalizeFormDefinitionSchema = normalizeFormDefinitionSchema;
|
|
24
|
+
exports.isFormDataIssue = isFormDataIssue;
|
|
24
25
|
/** Every `FormDataSourceBindingSource` kind this version understands. */
|
|
25
26
|
exports.FORM_DATA_SOURCE_BINDING_KINDS = [
|
|
26
27
|
'CONSTANT',
|
|
@@ -354,4 +355,31 @@ function normalizeTableColumnDefinition(column) {
|
|
|
354
355
|
}
|
|
355
356
|
return column;
|
|
356
357
|
}
|
|
358
|
+
/**
|
|
359
|
+
* Why a form data value was refused. Machine-readable: the Chinese `message`
|
|
360
|
+
* of an issue is for display, the reason and `path` are what a client keys on.
|
|
361
|
+
*/
|
|
362
|
+
exports.FORM_DATA_ISSUE_REASONS = [
|
|
363
|
+
'REQUIRED',
|
|
364
|
+
'TYPE',
|
|
365
|
+
'MIN_LENGTH',
|
|
366
|
+
'MAX_LENGTH',
|
|
367
|
+
'PATTERN',
|
|
368
|
+
'PATTERN_TIMEOUT',
|
|
369
|
+
'MIN_ROWS',
|
|
370
|
+
'MAX_ROWS',
|
|
371
|
+
'UNKNOWN_COLUMN',
|
|
372
|
+
'MAX_FILES',
|
|
373
|
+
];
|
|
374
|
+
function isFormDataIssue(value) {
|
|
375
|
+
if (typeof value !== 'object' || value === null) {
|
|
376
|
+
return false;
|
|
377
|
+
}
|
|
378
|
+
const { path, message, reason, limit } = value;
|
|
379
|
+
return (typeof path === 'string' &&
|
|
380
|
+
typeof message === 'string' &&
|
|
381
|
+
typeof reason === 'string' &&
|
|
382
|
+
exports.FORM_DATA_ISSUE_REASONS.includes(reason) &&
|
|
383
|
+
(limit === undefined || typeof limit === 'number'));
|
|
384
|
+
}
|
|
357
385
|
//# sourceMappingURL=form.js.map
|
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":"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"}
|
|
@@ -11,6 +11,13 @@
|
|
|
11
11
|
*/
|
|
12
12
|
export type OrgUnitType = 'COMPANY' | 'DIVISION' | 'DEPARTMENT' | 'TEAM';
|
|
13
13
|
export type ManagerResolutionScopeType = 'MEMBER' | 'ORG_UNIT' | 'POSITION';
|
|
14
|
+
/**
|
|
15
|
+
* IANA time zone in which BPM reads "today" against the date-only
|
|
16
|
+
* `effectiveFrom` / `effectiveTo` of memberships and manager resolutions when
|
|
17
|
+
* the host sets no `organizationTimeZone`: the product's business time zone.
|
|
18
|
+
* The engine (`BPMRootModule`) and the React designer share this default.
|
|
19
|
+
*/
|
|
20
|
+
export declare const DEFAULT_BPM_ORGANIZATION_TIME_ZONE = "Asia/Taipei";
|
|
14
21
|
export interface OrgUnit {
|
|
15
22
|
readonly id: string;
|
|
16
23
|
readonly parentId: string | null;
|
package/src/lib/organization.js
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFAULT_BPM_ORGANIZATION_TIME_ZONE = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* IANA time zone in which BPM reads "today" against the date-only
|
|
6
|
+
* `effectiveFrom` / `effectiveTo` of memberships and manager resolutions when
|
|
7
|
+
* the host sets no `organizationTimeZone`: the product's business time zone.
|
|
8
|
+
* The engine (`BPMRootModule`) and the React designer share this default.
|
|
9
|
+
*/
|
|
10
|
+
exports.DEFAULT_BPM_ORGANIZATION_TIME_ZONE = 'Asia/Taipei';
|
|
3
11
|
//# sourceMappingURL=organization.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"organization.js","sourceRoot":"","sources":["../../../../../libs/shared/src/lib/organization.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"organization.js","sourceRoot":"","sources":["../../../../../libs/shared/src/lib/organization.ts"],"names":[],"mappings":";;;AAeA;;;;;GAKG;AACU,QAAA,kCAAkC,GAAG,aAAa,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FormDefinitionSchema } from './form';
|
|
2
|
-
import { ApproverResolver, DecisionPolicy, ExcludeInitiatorConfig, FieldAccessEntry, ReturnBehavior, ReturnResubmitStrategy, ServiceAction, SlaConfig, WorkflowDefinition, WorkflowEdgeConditionOperator, WorkflowNodeTriggerMode } from './workflow';
|
|
2
|
+
import { ApproverResolver, DecisionPolicy, ExcludeInitiatorConfig, ExcludeNodeActorsConfig, FieldAccessEntry, ReturnBehavior, ReturnResubmitStrategy, ServiceAction, SlaConfig, WorkflowDefinition, WorkflowEdgeConditionOperator, WorkflowNodeTriggerMode } from './workflow';
|
|
3
3
|
import { NodePaletteType, WorkflowEdgeIdFactory } from './workflow-graph';
|
|
4
4
|
/**
|
|
5
5
|
* The serialisable command layer that the template designer — and the LLM
|
|
@@ -58,6 +58,14 @@ export type WorkflowCommand = {
|
|
|
58
58
|
readonly type: 'setUserTaskReturnRequireComment';
|
|
59
59
|
readonly nodeId: string;
|
|
60
60
|
readonly requireComment: boolean;
|
|
61
|
+
} | {
|
|
62
|
+
/**
|
|
63
|
+
* Requires a comment whenever a person approves at this node. `false`
|
|
64
|
+
* removes the key, which is the "unchanged behaviour" default.
|
|
65
|
+
*/
|
|
66
|
+
readonly type: 'setUserTaskRequireApprovalComment';
|
|
67
|
+
readonly nodeId: string;
|
|
68
|
+
readonly requireApprovalComment: boolean;
|
|
61
69
|
} | {
|
|
62
70
|
/** Replaces the node SLA outright; `null` removes the SLA entirely. */
|
|
63
71
|
readonly type: 'setUserTaskSla';
|
|
@@ -76,6 +84,15 @@ export type WorkflowCommand = {
|
|
|
76
84
|
readonly type: 'setUserTaskExcludeInitiator';
|
|
77
85
|
readonly nodeId: string;
|
|
78
86
|
readonly excludeInitiator: ExcludeInitiatorConfig | null;
|
|
87
|
+
} | {
|
|
88
|
+
/**
|
|
89
|
+
* Separation of duties between stages: keeps the people who approved the
|
|
90
|
+
* listed earlier user tasks out of this node's approvers. `null` removes
|
|
91
|
+
* the setting entirely.
|
|
92
|
+
*/
|
|
93
|
+
readonly type: 'setUserTaskExcludeNodeActors';
|
|
94
|
+
readonly nodeId: string;
|
|
95
|
+
readonly excludeNodeActors: ExcludeNodeActorsConfig | null;
|
|
79
96
|
} | {
|
|
80
97
|
readonly type: 'setUserTaskOptions';
|
|
81
98
|
readonly nodeId: string;
|