@rytass/bpm-core-shared 0.21.4 → 0.23.0
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 +66 -0
- package/package.json +1 -1
- package/src/lib/field-access-lint.d.ts +26 -6
- package/src/lib/field-access-lint.js +114 -49
- package/src/lib/field-access-lint.js.map +1 -1
- package/src/lib/field-access-matrix.d.ts +34 -9
- package/src/lib/field-access-matrix.js +65 -16
- package/src/lib/field-access-matrix.js.map +1 -1
- package/src/lib/field-access.d.ts +37 -1
- package/src/lib/field-access.js +71 -15
- package/src/lib/field-access.js.map +1 -1
- package/src/lib/form.d.ts +6 -2
- package/src/lib/form.js +5 -2
- package/src/lib/form.js.map +1 -1
- package/src/lib/workflow-command.js +9 -4
- package/src/lib/workflow-command.js.map +1 -1
- package/src/lib/workflow-graph.d.ts +1 -2
- package/src/lib/workflow-graph.js +2 -3
- package/src/lib/workflow-graph.js.map +1 -1
- package/src/lib/workflow-toolset.js +34 -5
- package/src/lib/workflow-toolset.js.map +1 -1
- package/src/lib/workflow.d.ts +14 -0
|
@@ -3,24 +3,35 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.FIELD_ACCESS_CHOICES = void 0;
|
|
4
4
|
exports.readFieldAccessChoice = readFieldAccessChoice;
|
|
5
5
|
exports.readFieldAccessEntryForChoice = readFieldAccessEntryForChoice;
|
|
6
|
+
exports.updateFieldAccessColumnFill = updateFieldAccessColumnFill;
|
|
7
|
+
exports.readTableColumns = readTableColumns;
|
|
6
8
|
exports.readFieldAccessMatrix = readFieldAccessMatrix;
|
|
7
9
|
const field_access_lint_1 = require("./field-access-lint");
|
|
8
10
|
const field_access_1 = require("./field-access");
|
|
11
|
+
const form_1 = require("./form");
|
|
9
12
|
exports.FIELD_ACCESS_CHOICES = [
|
|
10
13
|
'DEFAULT',
|
|
11
14
|
'SHOW',
|
|
12
15
|
'HIDE',
|
|
13
16
|
'FILL_OPTIONAL',
|
|
14
17
|
'FILL_REQUIRED',
|
|
18
|
+
'COLUMNS',
|
|
15
19
|
];
|
|
16
|
-
|
|
20
|
+
/** Every fill choice, whole or per column, a cell cannot take. */
|
|
21
|
+
const BLOCKED_FILL_CHOICES = [
|
|
17
22
|
'FILL_OPTIONAL',
|
|
18
23
|
'FILL_REQUIRED',
|
|
24
|
+
'COLUMNS',
|
|
19
25
|
];
|
|
26
|
+
/** Per-column fill exists only on a table field, so every other field blocks it. */
|
|
27
|
+
const NON_TABLE_DISABLED_CHOICES = ['COLUMNS'];
|
|
20
28
|
function readFieldAccessChoice(entry) {
|
|
21
29
|
if (entry === null) {
|
|
22
30
|
return 'DEFAULT';
|
|
23
31
|
}
|
|
32
|
+
if (entry.columns !== undefined) {
|
|
33
|
+
return 'COLUMNS';
|
|
34
|
+
}
|
|
24
35
|
if (entry.fill === 'REQUIRED') {
|
|
25
36
|
return 'FILL_REQUIRED';
|
|
26
37
|
}
|
|
@@ -35,15 +46,43 @@ const CHOICE_FILLS = {
|
|
|
35
46
|
HIDE: 'NONE',
|
|
36
47
|
SHOW: 'NONE',
|
|
37
48
|
};
|
|
38
|
-
/**
|
|
49
|
+
/**
|
|
50
|
+
* The entry a choice writes for the field, or `null` for `DEFAULT`. `COLUMNS`
|
|
51
|
+
* writes an empty column list, which the publish lint rejects until a column
|
|
52
|
+
* is checked, so the drawer must not apply it on its own.
|
|
53
|
+
*/
|
|
39
54
|
function readFieldAccessEntryForChoice(fieldKey, choice) {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
55
|
+
if (choice === 'DEFAULT') {
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
if (choice === 'COLUMNS') {
|
|
59
|
+
return { display: 'SHOW', fieldKey, fill: 'NONE', columns: [] };
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
display: choice === 'HIDE' ? 'HIDE' : 'SHOW',
|
|
63
|
+
fieldKey,
|
|
64
|
+
fill: CHOICE_FILLS[choice],
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* The entry after one column of a table field is set to `fill`, or cleared
|
|
69
|
+
* when `fill` is `NONE`. The other columns keep their fill and order; a
|
|
70
|
+
* whole-field entry (no `columns`) starts from an empty column list.
|
|
71
|
+
*/
|
|
72
|
+
function updateFieldAccessColumnFill(entry, fieldKey, columnKey, fill) {
|
|
73
|
+
var _a;
|
|
74
|
+
const others = ((_a = entry === null || entry === void 0 ? void 0 : entry.columns) !== null && _a !== void 0 ? _a : []).filter((column) => column.columnKey !== columnKey);
|
|
75
|
+
const columns = fill === 'NONE' ? others : [...others, { columnKey, fill }];
|
|
76
|
+
return { display: 'SHOW', fieldKey, fill: 'NONE', columns };
|
|
77
|
+
}
|
|
78
|
+
/** The table columns a field offers per-column access for; none for other fields. */
|
|
79
|
+
function readTableColumns(field) {
|
|
80
|
+
return (0, form_1.isTableFieldDefinition)(field)
|
|
81
|
+
? field.columns.map((column) => ({
|
|
82
|
+
columnKey: column.fieldKey,
|
|
83
|
+
label: column.label,
|
|
84
|
+
}))
|
|
85
|
+
: [];
|
|
47
86
|
}
|
|
48
87
|
/**
|
|
49
88
|
* The user tasks in flow order: a topological walk from the nodes nothing
|
|
@@ -89,6 +128,13 @@ function readBranchLabel(definition, nodeId) {
|
|
|
89
128
|
return label !== null && label !== void 0 ? label : null;
|
|
90
129
|
}
|
|
91
130
|
function readExplicitEffective(entry) {
|
|
131
|
+
if (entry.columns !== undefined) {
|
|
132
|
+
// Column mode ignores `fill`; an empty list opens nothing.
|
|
133
|
+
if (entry.columns.length > 0) {
|
|
134
|
+
return 'FILL_COLUMNS';
|
|
135
|
+
}
|
|
136
|
+
return entry.display === 'HIDE' ? 'HIDDEN' : 'READ_ONLY';
|
|
137
|
+
}
|
|
92
138
|
if (entry.fill === 'REQUIRED') {
|
|
93
139
|
return 'FILL_REQUIRED';
|
|
94
140
|
}
|
|
@@ -153,17 +199,18 @@ function readFieldAccessMatrix(definition, schema) {
|
|
|
153
199
|
const rows = ((_a = schema === null || schema === void 0 ? void 0 : schema.fields) !== null && _a !== void 0 ? _a : []).map((field) => {
|
|
154
200
|
const { fieldKey } = field;
|
|
155
201
|
const fillNodeIds = userTasks
|
|
156
|
-
.filter((node) => (0, field_access_1.
|
|
202
|
+
.filter((node) => (0, field_access_1.readNodeFillGrantFieldKeys)(node).has(fieldKey))
|
|
157
203
|
.map((node) => node.id);
|
|
158
204
|
const isApproverFilled = fillNodeIds.length > 0;
|
|
159
205
|
const fillBlockers = (0, field_access_lint_1.readFormFieldFillIssues)(field);
|
|
206
|
+
const tableColumns = readTableColumns(field);
|
|
160
207
|
const fieldDisabledChoices = fillBlockers.length > 0
|
|
161
|
-
?
|
|
162
|
-
:
|
|
163
|
-
? [
|
|
164
|
-
:
|
|
208
|
+
? BLOCKED_FILL_CHOICES
|
|
209
|
+
: tableColumns.length > 0
|
|
210
|
+
? []
|
|
211
|
+
: NON_TABLE_DISABLED_CHOICES;
|
|
165
212
|
const cells = userTasks.map((node, index) => {
|
|
166
|
-
var _a, _b;
|
|
213
|
+
var _a, _b, _c;
|
|
167
214
|
const explicit = (_b = (_a = accessByNode.get(node.id)) === null || _a === void 0 ? void 0 : _a.get(fieldKey)) !== null && _b !== void 0 ? _b : null;
|
|
168
215
|
const filledBefore = isFilledBefore(fillNodeIds, index);
|
|
169
216
|
const reason = explicit !== null
|
|
@@ -175,8 +222,9 @@ function readFieldAccessMatrix(definition, schema) {
|
|
|
175
222
|
: 'NOT_YET_FILLED';
|
|
176
223
|
return {
|
|
177
224
|
choice: readFieldAccessChoice(explicit),
|
|
225
|
+
columnFills: (_c = explicit === null || explicit === void 0 ? void 0 : explicit.columns) !== null && _c !== void 0 ? _c : [],
|
|
178
226
|
disabledChoices: columns[index].fillConflicts.length > 0
|
|
179
|
-
?
|
|
227
|
+
? BLOCKED_FILL_CHOICES
|
|
180
228
|
: fieldDisabledChoices,
|
|
181
229
|
effective: explicit !== null
|
|
182
230
|
? readExplicitEffective(explicit)
|
|
@@ -206,6 +254,7 @@ function readFieldAccessMatrix(definition, schema) {
|
|
|
206
254
|
fieldKey,
|
|
207
255
|
nodeId: cell.nodeId,
|
|
208
256
|
})),
|
|
257
|
+
tableColumns,
|
|
209
258
|
};
|
|
210
259
|
});
|
|
211
260
|
return { columns, issues, rows };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-access-matrix.js","sourceRoot":"","sources":["../../../../../libs/shared/src/lib/field-access-matrix.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"field-access-matrix.js","sourceRoot":"","sources":["../../../../../libs/shared/src/lib/field-access-matrix.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,13 @@
|
|
|
1
|
-
import type { FieldAccessEntry, UserTaskNode, WorkflowDefinition } from './workflow';
|
|
1
|
+
import type { FieldAccessEntry, FieldAccessFill, UserTaskNode, WorkflowDefinition } from './workflow';
|
|
2
|
+
/**
|
|
3
|
+
* One unit an approver may fill at a user task: a whole top-level field
|
|
4
|
+
* (`columnKey: null`) or one column of a table field (ADR 27 §4(a)).
|
|
5
|
+
*/
|
|
6
|
+
export interface FieldAccessFillUnit {
|
|
7
|
+
readonly fieldKey: string;
|
|
8
|
+
readonly columnKey: string | null;
|
|
9
|
+
readonly fill: Exclude<FieldAccessFill, 'NONE'>;
|
|
10
|
+
}
|
|
2
11
|
/** What a viewer may do with one top-level form field (`resolveFieldAccess`). */
|
|
3
12
|
export interface ResolvedFieldAccess {
|
|
4
13
|
readonly editable: boolean;
|
|
@@ -12,8 +21,19 @@ export interface ResolvedFieldAccess {
|
|
|
12
21
|
* wins, so every reader agrees on which one counts. An unknown `fill` reads as
|
|
13
22
|
* `NONE`, so a malformed entry never lets anyone write, and an unknown
|
|
14
23
|
* `display` reads as `SHOW`. The deprecated `fieldPermissions` is never read.
|
|
24
|
+
*
|
|
25
|
+
* `columns` (ADR 27 §4(a)) is read the same way, per column: an entry without a
|
|
26
|
+
* non-empty `columnKey` or with an unknown `fill` is skipped, and the first
|
|
27
|
+
* entry for a `columnKey` wins. Once `columns` is an array it stays in column
|
|
28
|
+
* mode even when every column was skipped, so a malformed list opens nothing.
|
|
15
29
|
*/
|
|
16
30
|
export declare const readNodeFieldAccess: (node: UserTaskNode) => readonly FieldAccessEntry[];
|
|
31
|
+
/**
|
|
32
|
+
* Every fill unit a user task grants. An entry in column mode contributes one
|
|
33
|
+
* unit per open column and its own `fill` is ignored; otherwise it contributes
|
|
34
|
+
* one whole-field unit unless `fill` is `NONE`.
|
|
35
|
+
*/
|
|
36
|
+
export declare const readNodeFillUnits: (node: UserTaskNode) => readonly FieldAccessFillUnit[];
|
|
17
37
|
/**
|
|
18
38
|
* The top-level form field a field path addresses: `items.price` and
|
|
19
39
|
* `items[0]` both address `items`.
|
|
@@ -25,7 +45,23 @@ export declare const readTopLevelFieldKey: (fieldPath: string) => string;
|
|
|
25
45
|
* segment, so `form.amount` and ` amount ` both write `amount`.
|
|
26
46
|
*/
|
|
27
47
|
export declare const readFormFieldPathTopLevelKey: (fieldPath: string) => string;
|
|
48
|
+
/**
|
|
49
|
+
* Top-level fields this node lets its approver write, as a whole field. A field
|
|
50
|
+
* granted only per column (ADR 27 §4(a)) is not in this set: the decide path
|
|
51
|
+
* merges column-mode fills per cell through `readNodeFillUnits` and its own
|
|
52
|
+
* column map, so no whole-field write path accepts it.
|
|
53
|
+
*/
|
|
28
54
|
export declare const readNodeFillableFieldKeys: (node: UserTaskNode) => ReadonlySet<string>;
|
|
55
|
+
/**
|
|
56
|
+
* Top-level fields with at least one fill unit at this node, whole or per
|
|
57
|
+
* column. For "does this node grant anything" and visibility, never for
|
|
58
|
+
* writes; use `readNodeFillableFieldKeys` to decide what is writable.
|
|
59
|
+
*/
|
|
60
|
+
export declare const readNodeFillGrantFieldKeys: (node: UserTaskNode) => ReadonlySet<string>;
|
|
61
|
+
/**
|
|
62
|
+
* Top-level fields granted whole at `REQUIRED`. Per-column REQUIRED is not in
|
|
63
|
+
* this set; the engine projects it onto the open cells on APPROVED instead.
|
|
64
|
+
*/
|
|
29
65
|
export declare const readNodeRequiredFieldKeys: (node: UserTaskNode) => ReadonlySet<string>;
|
|
30
66
|
/** Every field some user task lets its approver fill in. */
|
|
31
67
|
export declare const readApproverFilledFieldKeys: (definition: WorkflowDefinition) => ReadonlySet<string>;
|
package/src/lib/field-access.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isFormDataValueEmpty = exports.overlayStoredFormDataKeys = exports.omitFormDataKeys = exports.resolveFieldAccess = exports.readRevealedFieldKeys = exports.readApproverFilledFieldKeys = exports.readNodeRequiredFieldKeys = exports.readNodeFillableFieldKeys = exports.readFormFieldPathTopLevelKey = exports.readTopLevelFieldKey = exports.readNodeFieldAccess = void 0;
|
|
3
|
+
exports.isFormDataValueEmpty = exports.overlayStoredFormDataKeys = exports.omitFormDataKeys = exports.resolveFieldAccess = exports.readRevealedFieldKeys = exports.readApproverFilledFieldKeys = exports.readNodeRequiredFieldKeys = exports.readNodeFillGrantFieldKeys = exports.readNodeFillableFieldKeys = exports.readFormFieldPathTopLevelKey = exports.readTopLevelFieldKey = exports.readNodeFillUnits = exports.readNodeFieldAccess = void 0;
|
|
4
4
|
const hasOwn = (target, key) => Object.prototype.hasOwnProperty.call(target, key);
|
|
5
5
|
const isRecord = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
6
6
|
const isUserTaskNode = (node) => node.type === 'userTask';
|
|
@@ -13,6 +13,11 @@ const findUserTaskNode = (definition, nodeId) => definition.nodes.find((node) =>
|
|
|
13
13
|
* wins, so every reader agrees on which one counts. An unknown `fill` reads as
|
|
14
14
|
* `NONE`, so a malformed entry never lets anyone write, and an unknown
|
|
15
15
|
* `display` reads as `SHOW`. The deprecated `fieldPermissions` is never read.
|
|
16
|
+
*
|
|
17
|
+
* `columns` (ADR 27 §4(a)) is read the same way, per column: an entry without a
|
|
18
|
+
* non-empty `columnKey` or with an unknown `fill` is skipped, and the first
|
|
19
|
+
* entry for a `columnKey` wins. Once `columns` is an array it stays in column
|
|
20
|
+
* mode even when every column was skipped, so a malformed list opens nothing.
|
|
16
21
|
*/
|
|
17
22
|
const readNodeFieldAccess = (node) => {
|
|
18
23
|
const raw = node.data.fieldAccess;
|
|
@@ -27,17 +32,50 @@ const readNodeFieldAccess = (node) => {
|
|
|
27
32
|
return collected;
|
|
28
33
|
}
|
|
29
34
|
const fill = entry['fill'];
|
|
35
|
+
const columns = readFieldAccessColumns(entry['columns']);
|
|
30
36
|
return [
|
|
31
37
|
...collected,
|
|
32
|
-
{
|
|
33
|
-
display: entry['display'] === 'HIDE' ? 'HIDE' : 'SHOW',
|
|
34
|
-
fieldKey: entry['fieldKey'],
|
|
35
|
-
fill: fill === 'OPTIONAL' || fill === 'REQUIRED' ? fill : 'NONE',
|
|
36
|
-
},
|
|
38
|
+
Object.assign({ display: entry['display'] === 'HIDE' ? 'HIDE' : 'SHOW', fieldKey: entry['fieldKey'], fill: fill === 'OPTIONAL' || fill === 'REQUIRED' ? fill : 'NONE' }, (columns === undefined ? {} : { columns })),
|
|
37
39
|
];
|
|
38
40
|
}, []);
|
|
39
41
|
};
|
|
40
42
|
exports.readNodeFieldAccess = readNodeFieldAccess;
|
|
43
|
+
const readFieldAccessColumns = (raw) => {
|
|
44
|
+
if (!Array.isArray(raw)) {
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
return raw.reduce((collected, column) => {
|
|
48
|
+
if (!isRecord(column) ||
|
|
49
|
+
typeof column['columnKey'] !== 'string' ||
|
|
50
|
+
column['columnKey'] === '' ||
|
|
51
|
+
(column['fill'] !== 'OPTIONAL' && column['fill'] !== 'REQUIRED') ||
|
|
52
|
+
collected.some((existing) => existing.columnKey === column['columnKey'])) {
|
|
53
|
+
return collected;
|
|
54
|
+
}
|
|
55
|
+
return [
|
|
56
|
+
...collected,
|
|
57
|
+
{ columnKey: column['columnKey'], fill: column['fill'] },
|
|
58
|
+
];
|
|
59
|
+
}, []);
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* Every fill unit a user task grants. An entry in column mode contributes one
|
|
63
|
+
* unit per open column and its own `fill` is ignored; otherwise it contributes
|
|
64
|
+
* one whole-field unit unless `fill` is `NONE`.
|
|
65
|
+
*/
|
|
66
|
+
const readNodeFillUnits = (node) => (0, exports.readNodeFieldAccess)(node).flatMap((entry) => {
|
|
67
|
+
if (entry.columns !== undefined) {
|
|
68
|
+
return entry.columns.map((column) => ({
|
|
69
|
+
fieldKey: entry.fieldKey,
|
|
70
|
+
columnKey: column.columnKey,
|
|
71
|
+
fill: column.fill,
|
|
72
|
+
}));
|
|
73
|
+
}
|
|
74
|
+
return entry.fill === 'NONE'
|
|
75
|
+
? []
|
|
76
|
+
: [{ fieldKey: entry.fieldKey, columnKey: null, fill: entry.fill }];
|
|
77
|
+
});
|
|
78
|
+
exports.readNodeFillUnits = readNodeFillUnits;
|
|
41
79
|
/**
|
|
42
80
|
* The top-level form field a field path addresses: `items.price` and
|
|
43
81
|
* `items[0]` both address `items`.
|
|
@@ -60,18 +98,35 @@ const readFormFieldPathTopLevelKey = (fieldPath) => {
|
|
|
60
98
|
return (0, exports.readTopLevelFieldKey)(fieldSegments.join('.'));
|
|
61
99
|
};
|
|
62
100
|
exports.readFormFieldPathTopLevelKey = readFormFieldPathTopLevelKey;
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
101
|
+
/**
|
|
102
|
+
* Top-level fields this node lets its approver write, as a whole field. A field
|
|
103
|
+
* granted only per column (ADR 27 §4(a)) is not in this set: the decide path
|
|
104
|
+
* merges column-mode fills per cell through `readNodeFillUnits` and its own
|
|
105
|
+
* column map, so no whole-field write path accepts it.
|
|
106
|
+
*/
|
|
107
|
+
const readNodeFillableFieldKeys = (node) => new Set((0, exports.readNodeFillUnits)(node)
|
|
108
|
+
.filter((unit) => unit.columnKey === null)
|
|
109
|
+
.map((unit) => unit.fieldKey));
|
|
66
110
|
exports.readNodeFillableFieldKeys = readNodeFillableFieldKeys;
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
111
|
+
/**
|
|
112
|
+
* Top-level fields with at least one fill unit at this node, whole or per
|
|
113
|
+
* column. For "does this node grant anything" and visibility, never for
|
|
114
|
+
* writes; use `readNodeFillableFieldKeys` to decide what is writable.
|
|
115
|
+
*/
|
|
116
|
+
const readNodeFillGrantFieldKeys = (node) => new Set((0, exports.readNodeFillUnits)(node).map((unit) => unit.fieldKey));
|
|
117
|
+
exports.readNodeFillGrantFieldKeys = readNodeFillGrantFieldKeys;
|
|
118
|
+
/**
|
|
119
|
+
* Top-level fields granted whole at `REQUIRED`. Per-column REQUIRED is not in
|
|
120
|
+
* this set; the engine projects it onto the open cells on APPROVED instead.
|
|
121
|
+
*/
|
|
122
|
+
const readNodeRequiredFieldKeys = (node) => new Set((0, exports.readNodeFillUnits)(node)
|
|
123
|
+
.filter((unit) => unit.columnKey === null && unit.fill === 'REQUIRED')
|
|
124
|
+
.map((unit) => unit.fieldKey));
|
|
70
125
|
exports.readNodeRequiredFieldKeys = readNodeRequiredFieldKeys;
|
|
71
126
|
/** Every field some user task lets its approver fill in. */
|
|
72
127
|
const readApproverFilledFieldKeys = (definition) => new Set(definition.nodes
|
|
73
128
|
.filter(isUserTaskNode)
|
|
74
|
-
.flatMap((node) => [...(0, exports.
|
|
129
|
+
.flatMap((node) => [...(0, exports.readNodeFillGrantFieldKeys)(node)]));
|
|
75
130
|
exports.readApproverFilledFieldKeys = readApproverFilledFieldKeys;
|
|
76
131
|
/**
|
|
77
132
|
* The approver-filled fields that have been revealed to the applicant: those a
|
|
@@ -80,7 +135,7 @@ exports.readApproverFilledFieldKeys = readApproverFilledFieldKeys;
|
|
|
80
135
|
*/
|
|
81
136
|
const readRevealedFieldKeys = (definition, nodeIdsWithNonAdhocTask) => new Set([...new Set(nodeIdsWithNonAdhocTask)].flatMap((nodeId) => {
|
|
82
137
|
const node = findUserTaskNode(definition, nodeId);
|
|
83
|
-
return node === undefined ? [] : [...(0, exports.
|
|
138
|
+
return node === undefined ? [] : [...(0, exports.readNodeFillGrantFieldKeys)(node)];
|
|
84
139
|
}));
|
|
85
140
|
exports.readRevealedFieldKeys = readRevealedFieldKeys;
|
|
86
141
|
/**
|
|
@@ -99,13 +154,14 @@ const resolveFieldAccess = (input) => {
|
|
|
99
154
|
: findUserTaskNode(input.definition, input.nodeId);
|
|
100
155
|
const listed = new Map((node === undefined ? [] : (0, exports.readNodeFieldAccess)(node)).map((entry) => [entry.fieldKey, entry]));
|
|
101
156
|
const approverFilled = (0, exports.readApproverFilledFieldKeys)(input.definition);
|
|
157
|
+
const fillable = node === undefined ? new Set() : (0, exports.readNodeFillableFieldKeys)(node);
|
|
102
158
|
return Object.fromEntries(input.fieldKeys.map((fieldKey) => {
|
|
103
159
|
const entry = listed.get(fieldKey);
|
|
104
160
|
if (entry !== undefined) {
|
|
105
161
|
return [
|
|
106
162
|
fieldKey,
|
|
107
163
|
{
|
|
108
|
-
editable: !input.isAdhocTask &&
|
|
164
|
+
editable: !input.isAdhocTask && fillable.has(fieldKey),
|
|
109
165
|
visible: entry.display === 'SHOW',
|
|
110
166
|
},
|
|
111
167
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-access.js","sourceRoot":"","sources":["../../../../../libs/shared/src/lib/field-access.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"field-access.js","sourceRoot":"","sources":["../../../../../libs/shared/src/lib/field-access.ts"],"names":[],"mappings":";;;AAwBA,MAAM,MAAM,GAAG,CAAC,MAAc,EAAE,GAAW,EAAW,EAAE,CACtD,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEpD,MAAM,QAAQ,GAAG,CAAC,KAAc,EAA8C,EAAE,CAC9E,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAEvE,MAAM,cAAc,GAAG,CAAC,IAEvB,EAAwB,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC;AAErD,MAAM,gBAAgB,GAAG,CACvB,UAA8B,EAC9B,MAAc,EACY,EAAE,CAC5B,UAAU,CAAC,KAAK,CAAC,IAAI,CACnB,CAAC,IAAI,EAAwB,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM,CAC3E,CAAC;AAEJ;;;;;;;;;;;;;GAaG;AACI,MAAM,mBAAmB,GAAG,CACjC,IAAkB,EACW,EAAE;IAC/B,MAAM,GAAG,GAAY,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;IAE3C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,GAAG,CAAC,MAAM,CACf,CAAC,SAAS,EAAE,KAAc,EAAE,EAAE;QAC5B,IACE,CAAC,QAAQ,CAAC,KAAK,CAAC;YAChB,OAAO,KAAK,CAAC,UAAU,CAAC,KAAK,QAAQ;YACrC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE;YACxB,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,KAAK,KAAK,CAAC,UAAU,CAAC,CAAC,EACrE,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3B,MAAM,OAAO,GAAG,sBAAsB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAEzD,OAAO;YACL,GAAG,SAAS;4BAEV,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EACtD,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,EAC3B,IAAI,EAAE,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAC7D,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;SAEhD,CAAC;IACJ,CAAC,EACD,EAAE,CACH,CAAC;AACJ,CAAC,CAAC;AAnCW,QAAA,mBAAmB,uBAmC9B;AAEF,MAAM,sBAAsB,GAAG,CAC7B,GAAY,EACmC,EAAE;IACjD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,GAAG,CAAC,MAAM,CACf,CAAC,SAAS,EAAE,MAAe,EAAE,EAAE;QAC7B,IACE,CAAC,QAAQ,CAAC,MAAM,CAAC;YACjB,OAAO,MAAM,CAAC,WAAW,CAAC,KAAK,QAAQ;YACvC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE;YAC1B,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,UAAU,CAAC;YAChE,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,KAAK,MAAM,CAAC,WAAW,CAAC,CAAC,EACxE,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO;YACL,GAAG,SAAS;YACZ,EAAE,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE;SACzD,CAAC;IACJ,CAAC,EACD,EAAE,CACH,CAAC;AACJ,CAAC,CAAC;AAEF;;;;GAIG;AACI,MAAM,iBAAiB,GAAG,CAC/B,IAAkB,EACc,EAAE,CAClC,IAAA,2BAAmB,EAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAkC,EAAE;IAC1E,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACpC,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,CAAC,CAAC,CAAC;IACN,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,KAAK,MAAM;QAC1B,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AACxE,CAAC,CAAC,CAAC;AAfQ,QAAA,iBAAiB,qBAezB;AAEL;;;GAGG;AACI,MAAM,oBAAoB,GAAG,CAAC,SAAiB,EAAU,EAAE,CAChE,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAD3B,QAAA,oBAAoB,wBACO;AAExC;;;;GAIG;AACI,MAAM,4BAA4B,GAAG,CAAC,SAAiB,EAAU,EAAE;IACxE,MAAM,QAAQ,GAAG,SAAS;SACvB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;SAChC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,MAAM,aAAa,GACjB,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,UAAU;QAClD,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACnB,CAAC,CAAC,QAAQ,CAAC;IAEf,OAAO,IAAA,4BAAoB,EAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACvD,CAAC,CAAC;AAXW,QAAA,4BAA4B,gCAWvC;AAEF;;;;;GAKG;AACI,MAAM,yBAAyB,GAAG,CACvC,IAAkB,EACG,EAAE,CACvB,IAAI,GAAG,CACL,IAAA,yBAAiB,EAAC,IAAI,CAAC;KACpB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC;KACzC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAChC,CAAC;AAPS,QAAA,yBAAyB,6BAOlC;AAEJ;;;;GAIG;AACI,MAAM,0BAA0B,GAAG,CACxC,IAAkB,EACG,EAAE,CACvB,IAAI,GAAG,CAAC,IAAA,yBAAiB,EAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAHnD,QAAA,0BAA0B,8BAGyB;AAEhE;;;GAGG;AACI,MAAM,yBAAyB,GAAG,CACvC,IAAkB,EACG,EAAE,CACvB,IAAI,GAAG,CACL,IAAA,yBAAiB,EAAC,IAAI,CAAC;KACpB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC;KACrE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAChC,CAAC;AAPS,QAAA,yBAAyB,6BAOlC;AAEJ,4DAA4D;AACrD,MAAM,2BAA2B,GAAG,CACzC,UAA8B,EACT,EAAE,CACvB,IAAI,GAAG,CACL,UAAU,CAAC,KAAK;KACb,MAAM,CAAC,cAAc,CAAC;KACtB,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,IAAA,kCAA0B,EAAC,IAAI,CAAC,CAAC,CAAC,CAC5D,CAAC;AAPS,QAAA,2BAA2B,+BAOpC;AAEJ;;;;GAIG;AACI,MAAM,qBAAqB,GAAG,CACnC,UAA8B,EAC9B,uBAAyC,EACpB,EAAE,CACvB,IAAI,GAAG,CACL,CAAC,GAAG,IAAI,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;IACvD,MAAM,IAAI,GAAG,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAElD,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAA,kCAA0B,EAAC,IAAI,CAAC,CAAC,CAAC;AACzE,CAAC,CAAC,CACH,CAAC;AAVS,QAAA,qBAAqB,yBAU9B;AAEJ;;;;;;;;;GASG;AACI,MAAM,kBAAkB,GAAG,CAAC,KAMlC,EAAiD,EAAE;IAClD,MAAM,IAAI,GACR,KAAK,CAAC,MAAM,KAAK,IAAI;QACnB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,IAAI,GAAG,CACpB,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAA,2BAAmB,EAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CACvD,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAU,CAC5C,CACF,CAAC;IACF,MAAM,cAAc,GAAG,IAAA,mCAA2B,EAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACrE,MAAM,QAAQ,GACZ,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,EAAU,CAAC,CAAC,CAAC,IAAA,iCAAyB,EAAC,IAAI,CAAC,CAAC;IAE3E,OAAO,MAAM,CAAC,WAAW,CACvB,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAA0C,EAAE;QACvE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEnC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO;gBACL,QAAQ;gBACR;oBACE,QAAQ,EAAE,CAAC,KAAK,CAAC,WAAW,IAAI,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;oBACtD,OAAO,EAAE,KAAK,CAAC,OAAO,KAAK,MAAM;iBAClC;aACF,CAAC;QACJ,CAAC;QAED,IAAI,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,OAAO;gBACL,QAAQ;gBACR,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;aACpE,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC,CAAC,CACH,CAAC;AACJ,CAAC,CAAC;AA5CW,QAAA,kBAAkB,sBA4C7B;AAEK,MAAM,gBAAgB,GAAG,CAC9B,QAA2C,EAC3C,IAAyB,EACU,EAAE,CACrC,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAC3D,CAAC;AANS,QAAA,gBAAgB,oBAMzB;AAEJ;;;;GAIG;AACI,MAAM,yBAAyB,GAAG,CACvC,SAA4C,EAC5C,MAAyC,EACzC,IAAyB,EACU,EAAE,CAAC,iCACnC,IAAA,wBAAgB,EAAC,SAAS,EAAE,IAAI,CAAC,GACjC,MAAM,CAAC,WAAW,CACnB,CAAC,GAAG,IAAI,CAAC;KACN,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KACpC,GAAG,CAAC,CAAC,GAAG,EAA8B,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAChE,EACD,CAAC;AAXU,QAAA,yBAAyB,6BAWnC;AAEH,wEAAwE;AACjE,MAAM,oBAAoB,GAAG,CAAC,KAAc,EAAW,EAAE,CAC9D,KAAK,KAAK,SAAS;IACnB,KAAK,KAAK,IAAI;IACd,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;IAClD,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;AAJlC,QAAA,oBAAoB,wBAIc"}
|
package/src/lib/form.d.ts
CHANGED
|
@@ -349,19 +349,23 @@ export type FormStaticOptionFieldDefinition = (SelectFieldDefinition & {
|
|
|
349
349
|
* Why a form data value was refused. Machine-readable: the Chinese `message`
|
|
350
350
|
* of an issue is for display, the reason and `path` are what a client keys on.
|
|
351
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"];
|
|
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", "HOST_RULE", "VALUE_NOT_RESOLVED"];
|
|
353
353
|
export type FormDataIssueReason = (typeof FORM_DATA_ISSUE_REASONS)[number];
|
|
354
354
|
/**
|
|
355
355
|
* One refused form data value. `path` addresses it the way the form renderer
|
|
356
356
|
* keys its errors: a top-level field key (`note`), a table row (`items[1]`),
|
|
357
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.
|
|
358
|
+
* MIN_LENGTH / MAX_LENGTH / MIN_ROWS / MAX_ROWS / MAX_FILES. `code` is set
|
|
359
|
+
* for HOST_RULE (the host's own machine-readable reason, passed through
|
|
360
|
+
* unchanged from the decision guard) and for VALUE_NOT_RESOLVED (the
|
|
361
|
+
* `FORM_DATA_SOURCE_VALUE_NOT_RESOLVED` error code).
|
|
359
362
|
*/
|
|
360
363
|
export interface FormDataIssue {
|
|
361
364
|
readonly path: string;
|
|
362
365
|
readonly reason: FormDataIssueReason;
|
|
363
366
|
readonly message: string;
|
|
364
367
|
readonly limit?: number;
|
|
368
|
+
readonly code?: string;
|
|
365
369
|
}
|
|
366
370
|
export declare function isFormDataIssue(value: unknown): value is FormDataIssue;
|
|
367
371
|
export {};
|
package/src/lib/form.js
CHANGED
|
@@ -370,16 +370,19 @@ exports.FORM_DATA_ISSUE_REASONS = [
|
|
|
370
370
|
'MAX_ROWS',
|
|
371
371
|
'UNKNOWN_COLUMN',
|
|
372
372
|
'MAX_FILES',
|
|
373
|
+
'HOST_RULE',
|
|
374
|
+
'VALUE_NOT_RESOLVED',
|
|
373
375
|
];
|
|
374
376
|
function isFormDataIssue(value) {
|
|
375
377
|
if (typeof value !== 'object' || value === null) {
|
|
376
378
|
return false;
|
|
377
379
|
}
|
|
378
|
-
const { path, message, reason, limit } = value;
|
|
380
|
+
const { path, message, reason, limit, code } = value;
|
|
379
381
|
return (typeof path === 'string' &&
|
|
380
382
|
typeof message === 'string' &&
|
|
381
383
|
typeof reason === 'string' &&
|
|
382
384
|
exports.FORM_DATA_ISSUE_REASONS.includes(reason) &&
|
|
383
|
-
(limit === undefined || typeof limit === 'number')
|
|
385
|
+
(limit === undefined || typeof limit === 'number') &&
|
|
386
|
+
(code === undefined || typeof code === 'string'));
|
|
384
387
|
}
|
|
385
388
|
//# 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":";;;AA+SA,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;
|
|
1
|
+
{"version":3,"file":"form.js","sourceRoot":"","sources":["../../../../../libs/shared/src/lib/form.ts"],"names":[],"mappings":"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"}
|
|
@@ -335,11 +335,16 @@ function applySetFieldAccessMatrix(state, command) {
|
|
|
335
335
|
}
|
|
336
336
|
const fieldAccess = command.entries
|
|
337
337
|
.filter((entry) => entry.nodeId === node.id)
|
|
338
|
-
.map(({ display, fieldKey, fill }) => ({
|
|
339
|
-
display,
|
|
338
|
+
.map(({ columns, display, fieldKey, fill }) => (Object.assign({ display,
|
|
340
339
|
fieldKey,
|
|
341
|
-
fill,
|
|
342
|
-
|
|
340
|
+
fill }, (columns === undefined
|
|
341
|
+
? {}
|
|
342
|
+
: {
|
|
343
|
+
columns: columns.map(({ columnKey, fill: columnFill }) => ({
|
|
344
|
+
columnKey,
|
|
345
|
+
fill: columnFill,
|
|
346
|
+
})),
|
|
347
|
+
}))));
|
|
343
348
|
return fieldAccess.length
|
|
344
349
|
? Object.assign(Object.assign({}, node), { data: Object.assign(Object.assign({}, node.data), { fieldAccess }) }) : Object.assign(Object.assign({}, node), { data: omitKey(node.data, 'fieldAccess') });
|
|
345
350
|
}) });
|