@openforis/arena-core 2.3.42 → 2.4.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/dist/esm/record/_records/recordCompletion.js +3 -3
- package/dist/esm/record/_records/recordCompletion.js.map +1 -1
- package/dist/esm/record/_records/recordGetters.js +221 -143
- package/dist/esm/record/_records/recordGetters.js.map +1 -1
- package/dist/esm/record/_records/recordPagesValidation.js +5 -5
- package/dist/esm/record/_records/recordPagesValidation.js.map +1 -1
- package/dist/esm/record/_records/recordUtils.js +3 -7
- package/dist/esm/record/_records/recordUtils.js.map +1 -1
- package/dist/esm/record/nodePointers.js +1 -1
- package/dist/esm/record/nodePointers.js.map +1 -1
- package/dist/esm/record/recordCloner.js +1 -1
- package/dist/esm/record/recordCloner.js.map +1 -1
- package/dist/esm/record/recordExpressionEvaluator/functions.js +4 -5
- package/dist/esm/record/recordExpressionEvaluator/functions.js.map +1 -1
- package/dist/esm/record/recordExpressionEvaluator/node/identifier/identifier.js +1 -1
- package/dist/esm/record/recordExpressionEvaluator/node/identifier/identifier.js.map +1 -1
- package/dist/esm/record/recordExpressionEvaluator/node/identifier/nodesFinder.js +2 -2
- package/dist/esm/record/recordExpressionEvaluator/node/identifier/nodesFinder.js.map +1 -1
- package/dist/esm/record/recordExpressionEvaluator/recordExpressionEvaluator.js +1 -1
- package/dist/esm/record/recordExpressionEvaluator/recordExpressionEvaluator.js.map +1 -1
- package/dist/esm/record/recordFixer.js +5 -5
- package/dist/esm/record/recordFixer.js.map +1 -1
- package/dist/esm/record/recordNodesUpdater/recordExpressionValueConverter.js +2 -8
- package/dist/esm/record/recordNodesUpdater/recordExpressionValueConverter.js.map +1 -1
- package/dist/esm/record/recordNodesUpdater/recordNodeDependentsApplicableUpdater.js +6 -6
- package/dist/esm/record/recordNodesUpdater/recordNodeDependentsApplicableUpdater.js.map +1 -1
- package/dist/esm/record/recordNodesUpdater/recordNodeDependentsCodeAttributesUpdater.js +1 -1
- package/dist/esm/record/recordNodesUpdater/recordNodeDependentsCodeAttributesUpdater.js.map +1 -1
- package/dist/esm/record/recordNodesUpdater/recordNodeDependentsCountUpdater.js +1 -6
- package/dist/esm/record/recordNodesUpdater/recordNodeDependentsCountUpdater.js.map +1 -1
- package/dist/esm/record/recordNodesUpdater/recordNodeDependentsDefaultValuesUpdater.js +3 -4
- package/dist/esm/record/recordNodesUpdater/recordNodeDependentsDefaultValuesUpdater.js.map +1 -1
- package/dist/esm/record/recordNodesUpdater/recordNodeDependentsEnumeratedEntitiesUpdater.js +3 -3
- package/dist/esm/record/recordNodesUpdater/recordNodeDependentsEnumeratedEntitiesUpdater.js.map +1 -1
- package/dist/esm/record/recordNodesUpdater/recordNodeDependentsEnumeratingItemsUpdater.js +4 -9
- package/dist/esm/record/recordNodesUpdater/recordNodeDependentsEnumeratingItemsUpdater.js.map +1 -1
- package/dist/esm/record/recordNodesUpdater/recordNodeDependentsFileNamesEvaluator.js +2 -3
- package/dist/esm/record/recordNodesUpdater/recordNodeDependentsFileNamesEvaluator.js.map +1 -1
- package/dist/esm/record/recordNodesUpdater/recordNodesDeleter.js +1 -5
- package/dist/esm/record/recordNodesUpdater/recordNodesDeleter.js.map +1 -1
- package/dist/esm/record/recordNodesUpdater/recordNodesDependentsUpdaterCommons.js +2 -9
- package/dist/esm/record/recordNodesUpdater/recordNodesDependentsUpdaterCommons.js.map +1 -1
- package/dist/esm/record/recordNodesUpdater/recordNodesUpdater.js +1 -1
- package/dist/esm/record/recordNodesUpdater/recordNodesUpdater.js.map +1 -1
- package/dist/esm/record/recordPrettyPrinter.js +14 -12
- package/dist/esm/record/recordPrettyPrinter.js.map +1 -1
- package/dist/esm/record/recordUpdater.js +2 -2
- package/dist/esm/record/recordUpdater.js.map +1 -1
- package/dist/esm/record/recordValidator/attributeKeyValidator.js +4 -4
- package/dist/esm/record/recordValidator/attributeKeyValidator.js.map +1 -1
- package/dist/esm/record/recordValidator/attributeUniqueValidator.js +1 -1
- package/dist/esm/record/recordValidator/attributeUniqueValidator.js.map +1 -1
- package/dist/esm/record/recordValidator/attributeValidator.js +8 -10
- package/dist/esm/record/recordValidator/attributeValidator.js.map +1 -1
- package/dist/esm/record/recordValidator/countVaildator.js +2 -2
- package/dist/esm/record/recordValidator/countVaildator.js.map +1 -1
- package/dist/esm/record/recordValidator/recordValidator.js +1 -2
- package/dist/esm/record/recordValidator/recordValidator.js.map +1 -1
- package/dist/record/_records/recordCompletion.js +3 -3
- package/dist/record/_records/recordCompletion.js.map +1 -1
- package/dist/record/_records/recordGetters.d.ts +104 -51
- package/dist/record/_records/recordGetters.js +221 -170
- package/dist/record/_records/recordGetters.js.map +1 -1
- package/dist/record/_records/recordPagesValidation.js +5 -5
- package/dist/record/_records/recordPagesValidation.js.map +1 -1
- package/dist/record/_records/recordUtils.js +3 -7
- package/dist/record/_records/recordUtils.js.map +1 -1
- package/dist/record/nodePointers.js +1 -1
- package/dist/record/nodePointers.js.map +1 -1
- package/dist/record/recordCloner.js +1 -1
- package/dist/record/recordCloner.js.map +1 -1
- package/dist/record/recordExpressionEvaluator/functions.js +4 -5
- package/dist/record/recordExpressionEvaluator/functions.js.map +1 -1
- package/dist/record/recordExpressionEvaluator/node/identifier/identifier.js +1 -1
- package/dist/record/recordExpressionEvaluator/node/identifier/identifier.js.map +1 -1
- package/dist/record/recordExpressionEvaluator/node/identifier/nodesFinder.js +2 -2
- package/dist/record/recordExpressionEvaluator/node/identifier/nodesFinder.js.map +1 -1
- package/dist/record/recordExpressionEvaluator/recordExpressionEvaluator.js +1 -1
- package/dist/record/recordExpressionEvaluator/recordExpressionEvaluator.js.map +1 -1
- package/dist/record/recordFixer.js +5 -5
- package/dist/record/recordFixer.js.map +1 -1
- package/dist/record/recordNodesUpdater/recordExpressionValueConverter.js +2 -8
- package/dist/record/recordNodesUpdater/recordExpressionValueConverter.js.map +1 -1
- package/dist/record/recordNodesUpdater/recordNodeDependentsApplicableUpdater.js +6 -6
- package/dist/record/recordNodesUpdater/recordNodeDependentsApplicableUpdater.js.map +1 -1
- package/dist/record/recordNodesUpdater/recordNodeDependentsCodeAttributesUpdater.js +1 -1
- package/dist/record/recordNodesUpdater/recordNodeDependentsCodeAttributesUpdater.js.map +1 -1
- package/dist/record/recordNodesUpdater/recordNodeDependentsCountUpdater.js +1 -6
- package/dist/record/recordNodesUpdater/recordNodeDependentsCountUpdater.js.map +1 -1
- package/dist/record/recordNodesUpdater/recordNodeDependentsDefaultValuesUpdater.js +3 -4
- package/dist/record/recordNodesUpdater/recordNodeDependentsDefaultValuesUpdater.js.map +1 -1
- package/dist/record/recordNodesUpdater/recordNodeDependentsEnumeratedEntitiesUpdater.js +3 -3
- package/dist/record/recordNodesUpdater/recordNodeDependentsEnumeratedEntitiesUpdater.js.map +1 -1
- package/dist/record/recordNodesUpdater/recordNodeDependentsEnumeratingItemsUpdater.js +4 -9
- package/dist/record/recordNodesUpdater/recordNodeDependentsEnumeratingItemsUpdater.js.map +1 -1
- package/dist/record/recordNodesUpdater/recordNodeDependentsFileNamesEvaluator.js +2 -3
- package/dist/record/recordNodesUpdater/recordNodeDependentsFileNamesEvaluator.js.map +1 -1
- package/dist/record/recordNodesUpdater/recordNodesDeleter.js +1 -5
- package/dist/record/recordNodesUpdater/recordNodesDeleter.js.map +1 -1
- package/dist/record/recordNodesUpdater/recordNodesDependentsUpdaterCommons.js +2 -9
- package/dist/record/recordNodesUpdater/recordNodesDependentsUpdaterCommons.js.map +1 -1
- package/dist/record/recordNodesUpdater/recordNodesUpdater.js +1 -1
- package/dist/record/recordNodesUpdater/recordNodesUpdater.js.map +1 -1
- package/dist/record/recordPrettyPrinter.js +14 -12
- package/dist/record/recordPrettyPrinter.js.map +1 -1
- package/dist/record/recordUpdater.js +2 -2
- package/dist/record/recordUpdater.js.map +1 -1
- package/dist/record/recordValidator/attributeKeyValidator.js +4 -4
- package/dist/record/recordValidator/attributeKeyValidator.js.map +1 -1
- package/dist/record/recordValidator/attributeUniqueValidator.js +1 -1
- package/dist/record/recordValidator/attributeUniqueValidator.js.map +1 -1
- package/dist/record/recordValidator/attributeValidator.js +8 -10
- package/dist/record/recordValidator/attributeValidator.js.map +1 -1
- package/dist/record/recordValidator/countVaildator.js +2 -2
- package/dist/record/recordValidator/countVaildator.js.map +1 -1
- package/dist/record/recordValidator/recordValidator.js +1 -2
- package/dist/record/recordValidator/recordValidator.js.map +1 -1
- package/dist/record/records.d.ts +140 -34
- package/package.json +1 -1
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
2
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
14
|
exports.isInAnalysisStep = exports.getStep = exports.isEmpty = exports.isNodeEmpty = exports.isNodeFilledByUser = exports.getCategoryItemUuid = exports.getAncestorCodePath = exports.getDependentNodePointers = exports.findEntityWithSameKeysInAnotherRecord = exports.findEntityByKeyValues = exports.getNodeIndex = exports.getAttributeSiblings = exports.getEntitySiblings = exports.getEntityKeyValues = exports.getEntityKeyValuesByDefUuid = exports.getEntityKeyNodes = exports.getEntityKeyNodesByDefUuid = exports.findDescendantOrSelf = exports.visitDescendantsAndSelf = exports.isDescendantOf = exports.getDescendant = exports.getDescendantsOrSelf = exports.getAncestorsAndSelf = exports.getAncestor = exports.findAncestor = exports.visitAncestorsAndSelf = exports.getParentCodeAttribute = exports.getDependentCodeAttributes = exports.isNodeVisible = exports.isNodeEditable = exports.isNodeApplicable = exports.getNodesByDefUuid = exports.getParent = exports.getChild = exports.getChildren = exports.getRoot = exports.getNodesByUuids = exports.getNodeByUuid = exports.getNodesArray = exports.getNodes = exports.getCycle = void 0;
|
|
4
15
|
const common_1 = require("../../common");
|
|
@@ -12,62 +23,93 @@ const record_1 = require("../record");
|
|
|
12
23
|
const recordStep_1 = require("../recordStep");
|
|
13
24
|
const recordNodesIndexReader_1 = require("./recordNodesIndexReader");
|
|
14
25
|
const nodeDefSelfReferences_1 = require("./nodeDefSelfReferences");
|
|
26
|
+
const isRecordParams = (params) => 'record' in params;
|
|
27
|
+
const recordGetter = (getter) => ((params) => isRecordParams(params)
|
|
28
|
+
? getter(params)
|
|
29
|
+
: (record) => getter(Object.assign(Object.assign({}, params), { record })));
|
|
30
|
+
const positionalRecordGetter = (params) => {
|
|
31
|
+
const { getter, isPositional, toParams } = params;
|
|
32
|
+
return ((...args) => {
|
|
33
|
+
const getterParams = isPositional(args[0]) ? toParams(...args) : args[0];
|
|
34
|
+
return (record) => getter(Object.assign(Object.assign({}, getterParams), { record }));
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
const isRecordNode = (arg) => typeof arg === 'object' && arg !== null && 'uuid' in arg && 'nodeDefUuid' in arg;
|
|
38
|
+
const isString = (arg) => typeof arg === 'string';
|
|
15
39
|
const getCycle = (record) => { var _a; return (_a = record.cycle) !== null && _a !== void 0 ? _a : survey_1.defaultCycle; };
|
|
16
40
|
exports.getCycle = getCycle;
|
|
17
41
|
const getNodes = (record) => { var _a; return (_a = record.nodes) !== null && _a !== void 0 ? _a : {}; };
|
|
18
42
|
exports.getNodes = getNodes;
|
|
19
43
|
const getNodesArray = (record) => Object.values((0, exports.getNodes)(record));
|
|
20
44
|
exports.getNodesArray = getNodesArray;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
45
|
+
exports.getNodeByUuid = positionalRecordGetter({
|
|
46
|
+
getter: ({ record, uuid }) => { var _a; return (_a = record.nodes) === null || _a === void 0 ? void 0 : _a[uuid]; },
|
|
47
|
+
isPositional: isString,
|
|
48
|
+
toParams: (uuid) => ({ uuid }),
|
|
49
|
+
});
|
|
50
|
+
exports.getNodesByUuids = positionalRecordGetter({
|
|
51
|
+
getter: ({ record, uuids }) => uuids.map((uuid) => { var _a; return (_a = record.nodes) === null || _a === void 0 ? void 0 : _a[uuid]; }),
|
|
52
|
+
isPositional: Array.isArray,
|
|
53
|
+
toParams: (uuids) => ({ uuids }),
|
|
54
|
+
});
|
|
25
55
|
const getRoot = (record) => {
|
|
26
56
|
const rootUuid = record._nodesIndex ? recordNodesIndexReader_1.RecordNodesIndexReader.getNodeRootUuid(record._nodesIndex) : null;
|
|
27
57
|
if (rootUuid) {
|
|
28
|
-
return (0, exports.getNodeByUuid)(rootUuid)(record);
|
|
58
|
+
return (0, exports.getNodeByUuid)({ uuid: rootUuid })(record);
|
|
29
59
|
}
|
|
30
60
|
return (0, exports.getNodesArray)(record).find((node) => !node.parentUuid);
|
|
31
61
|
};
|
|
32
62
|
exports.getRoot = getRoot;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
63
|
+
exports.getChildren = positionalRecordGetter({
|
|
64
|
+
getter: ({ record, parentNode, childDefUuid, }) => {
|
|
65
|
+
if (record._nodesIndex) {
|
|
66
|
+
const childrenUuids = childDefUuid
|
|
67
|
+
? recordNodesIndexReader_1.RecordNodesIndexReader.getNodeUuidsByParentAndChildDef({
|
|
68
|
+
parentNodeUuid: parentNode.uuid,
|
|
69
|
+
childDefUuid,
|
|
70
|
+
})(record._nodesIndex)
|
|
71
|
+
: recordNodesIndexReader_1.RecordNodesIndexReader.getNodeUuidsByParent(parentNode.uuid)(record._nodesIndex);
|
|
72
|
+
return (0, exports.getNodesByUuids)({ uuids: childrenUuids })(record);
|
|
73
|
+
}
|
|
74
|
+
return (0, exports.getNodesArray)(record).filter((node) => node.parentUuid === parentNode.uuid && (!childDefUuid || node.nodeDefUuid == childDefUuid));
|
|
75
|
+
},
|
|
76
|
+
isPositional: isRecordNode,
|
|
77
|
+
toParams: (parentNode, childDefUuid) => ({ parentNode, childDefUuid }),
|
|
78
|
+
});
|
|
79
|
+
exports.getChild = positionalRecordGetter({
|
|
80
|
+
getter: ({ record, parentNode, childDefUuid, }) => {
|
|
81
|
+
const children = (0, exports.getChildren)({ parentNode, childDefUuid })(record);
|
|
82
|
+
const errorParams = { childDefUuid, parentNodeUuid: parentNode.uuid, recordUuid: record.uuid };
|
|
83
|
+
if (children.length === 1) {
|
|
84
|
+
return children[0];
|
|
85
|
+
}
|
|
86
|
+
if (children.length > 1) {
|
|
87
|
+
throw new error_1.SystemError('systemError.record.multipleNodesFound', errorParams);
|
|
88
|
+
}
|
|
89
|
+
throw new error_1.SystemError('systemError.record.childNotFound', errorParams);
|
|
90
|
+
},
|
|
91
|
+
isPositional: isRecordNode,
|
|
92
|
+
toParams: (parentNode, childDefUuid) => ({ parentNode, childDefUuid }),
|
|
93
|
+
});
|
|
94
|
+
exports.getParent = positionalRecordGetter({
|
|
95
|
+
getter: ({ record, node }) => node.parentUuid ? (0, exports.getNodeByUuid)({ uuid: node.parentUuid })(record) : undefined,
|
|
96
|
+
isPositional: isRecordNode,
|
|
97
|
+
toParams: (node) => ({ node }),
|
|
98
|
+
});
|
|
99
|
+
exports.getNodesByDefUuid = positionalRecordGetter({
|
|
100
|
+
getter: ({ record, nodeDefUuid }) => {
|
|
101
|
+
if (record._nodesIndex) {
|
|
102
|
+
const nodeUuids = recordNodesIndexReader_1.RecordNodesIndexReader.getNodeUuidsByDef(nodeDefUuid)(record._nodesIndex);
|
|
103
|
+
return (0, exports.getNodesByUuids)({ uuids: nodeUuids })(record);
|
|
104
|
+
}
|
|
105
|
+
return (0, exports.getNodesArray)(record).filter((node) => node.nodeDefUuid === nodeDefUuid);
|
|
106
|
+
},
|
|
107
|
+
isPositional: isString,
|
|
108
|
+
toParams: (nodeDefUuid) => ({ nodeDefUuid }),
|
|
109
|
+
});
|
|
110
|
+
const isNodeFlagTrue = (isChildFlagTrue) => recordGetter((params) => {
|
|
69
111
|
const { record, node } = params;
|
|
70
|
-
const ancestorsAndSelf = (0, exports.getAncestorsAndSelf)({
|
|
112
|
+
const ancestorsAndSelf = (0, exports.getAncestorsAndSelf)({ node })(record);
|
|
71
113
|
for (let i = 0; i < ancestorsAndSelf.length - 1; i++) {
|
|
72
114
|
const child = ancestorsAndSelf[i];
|
|
73
115
|
const parent = ancestorsAndSelf[i + 1];
|
|
@@ -75,26 +117,29 @@ const isNodeFlagTrue = (isChildFlagTrue) => (params) => {
|
|
|
75
117
|
return false;
|
|
76
118
|
}
|
|
77
119
|
return true;
|
|
78
|
-
};
|
|
120
|
+
});
|
|
79
121
|
exports.isNodeApplicable = isNodeFlagTrue((parent, nodeDefUuid) => node_1.Nodes.isChildApplicable(parent, nodeDefUuid));
|
|
80
122
|
exports.isNodeEditable = isNodeFlagTrue((parent, nodeDefUuid) => node_1.Nodes.isChildEditable(parent, nodeDefUuid));
|
|
81
123
|
exports.isNodeVisible = isNodeFlagTrue((parent, nodeDefUuid) => node_1.Nodes.isChildVisible(parent, nodeDefUuid));
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
124
|
+
exports.getDependentCodeAttributes = positionalRecordGetter({
|
|
125
|
+
getter: ({ record, node }) => {
|
|
126
|
+
if (record._nodesIndex) {
|
|
127
|
+
const nodeUuids = recordNodesIndexReader_1.RecordNodesIndexReader.getNodeCodeDependentUuids(node.uuid)(record._nodesIndex);
|
|
128
|
+
return (0, exports.getNodesByUuids)({ uuids: nodeUuids })(record);
|
|
129
|
+
}
|
|
130
|
+
throw new error_1.SystemError('record.nodesIndexNotInitialized');
|
|
131
|
+
},
|
|
132
|
+
isPositional: isRecordNode,
|
|
133
|
+
toParams: (node) => ({ node }),
|
|
134
|
+
});
|
|
90
135
|
const getParentCodeAttribute = (params) => (record) => {
|
|
91
136
|
const { parentNode, nodeDef } = params;
|
|
92
137
|
const parentCodeDefUuid = nodeDef_1.NodeDefs.getParentCodeDefUuid(nodeDef);
|
|
93
138
|
if (!parentCodeDefUuid)
|
|
94
139
|
return undefined;
|
|
95
|
-
const ancestors = (0, exports.getAncestorsAndSelf)({
|
|
140
|
+
const ancestors = (0, exports.getAncestorsAndSelf)({ node: parentNode })(record);
|
|
96
141
|
for (const ancestor of ancestors) {
|
|
97
|
-
const children = (0, exports.getChildren)(ancestor, parentCodeDefUuid)(record);
|
|
142
|
+
const children = (0, exports.getChildren)({ parentNode: ancestor, childDefUuid: parentCodeDefUuid })(record);
|
|
98
143
|
if (children.length === 1) {
|
|
99
144
|
return children[0];
|
|
100
145
|
}
|
|
@@ -103,51 +148,73 @@ const getParentCodeAttribute = (params) => (record) => {
|
|
|
103
148
|
};
|
|
104
149
|
exports.getParentCodeAttribute = getParentCodeAttribute;
|
|
105
150
|
// ancestors
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
exports.
|
|
116
|
-
const findAncestor = (node, predicate) => (record) => {
|
|
117
|
-
let result = undefined;
|
|
118
|
-
(0, exports.visitAncestorsAndSelf)(node, (visitedNode) => {
|
|
119
|
-
if (predicate(visitedNode)) {
|
|
120
|
-
result = visitedNode;
|
|
151
|
+
/**
|
|
152
|
+
* Visits the specified node and its ancestors, from the node up to the root: the visit stops when the visitor returns true.
|
|
153
|
+
*/
|
|
154
|
+
exports.visitAncestorsAndSelf = positionalRecordGetter({
|
|
155
|
+
getter: ({ record, node, visitor, }) => {
|
|
156
|
+
let currentNode = node;
|
|
157
|
+
while (currentNode) {
|
|
158
|
+
if (visitor(currentNode))
|
|
159
|
+
return;
|
|
160
|
+
currentNode = (0, exports.getParent)({ node: currentNode })(record);
|
|
121
161
|
}
|
|
122
|
-
},
|
|
162
|
+
},
|
|
163
|
+
isPositional: isRecordNode,
|
|
164
|
+
// deprecated form: the visit stops when stopIfFn returns true
|
|
165
|
+
toParams: (node, visitor, stopIfFn) => ({
|
|
166
|
+
node,
|
|
167
|
+
visitor: (visitedNode) => {
|
|
168
|
+
visitor(visitedNode);
|
|
169
|
+
return !!(stopIfFn === null || stopIfFn === void 0 ? void 0 : stopIfFn());
|
|
170
|
+
},
|
|
171
|
+
}),
|
|
172
|
+
});
|
|
173
|
+
/**
|
|
174
|
+
* Returns the first node satisfying the predicate among the specified node and its ancestors (from the node up to the root).
|
|
175
|
+
*/
|
|
176
|
+
const findAncestor = (params) => (record) => {
|
|
177
|
+
const { node, predicate } = params;
|
|
178
|
+
let result = undefined;
|
|
179
|
+
(0, exports.visitAncestorsAndSelf)({
|
|
180
|
+
node,
|
|
181
|
+
visitor: (visitedNode) => {
|
|
182
|
+
if (predicate(visitedNode)) {
|
|
183
|
+
result = visitedNode;
|
|
184
|
+
return true;
|
|
185
|
+
}
|
|
186
|
+
return false;
|
|
187
|
+
},
|
|
188
|
+
})(record);
|
|
123
189
|
return result;
|
|
124
190
|
};
|
|
125
191
|
exports.findAncestor = findAncestor;
|
|
126
|
-
|
|
192
|
+
exports.getAncestor = recordGetter((params) => {
|
|
127
193
|
const { record, node, ancestorDefUuid } = params;
|
|
128
194
|
if (node.nodeDefUuid === ancestorDefUuid)
|
|
129
195
|
return node;
|
|
130
|
-
let ancestor = (0, exports.getParent)(node)(record);
|
|
196
|
+
let ancestor = (0, exports.getParent)({ node })(record);
|
|
131
197
|
while (ancestor && ancestor.nodeDefUuid !== ancestorDefUuid) {
|
|
132
|
-
ancestor = (0, exports.getParent)(ancestor)(record);
|
|
198
|
+
ancestor = (0, exports.getParent)({ node: ancestor })(record);
|
|
133
199
|
}
|
|
134
200
|
return ancestor;
|
|
135
|
-
};
|
|
136
|
-
exports.getAncestor = getAncestor;
|
|
201
|
+
});
|
|
137
202
|
/**
|
|
138
203
|
* Returns the list of ancestors from the given node to the root entity
|
|
139
204
|
*/
|
|
140
|
-
|
|
205
|
+
exports.getAncestorsAndSelf = recordGetter((params) => {
|
|
141
206
|
const { record, node } = params;
|
|
142
207
|
const ancestors = [];
|
|
143
|
-
(0, exports.visitAncestorsAndSelf)(
|
|
144
|
-
|
|
208
|
+
(0, exports.visitAncestorsAndSelf)({
|
|
209
|
+
node,
|
|
210
|
+
visitor: (currentNode) => {
|
|
211
|
+
ancestors.push(currentNode);
|
|
212
|
+
},
|
|
145
213
|
})(record);
|
|
146
214
|
return ancestors;
|
|
147
|
-
};
|
|
148
|
-
exports.getAncestorsAndSelf = getAncestorsAndSelf;
|
|
215
|
+
});
|
|
149
216
|
// descendants
|
|
150
|
-
|
|
217
|
+
exports.getDescendantsOrSelf = recordGetter((params) => {
|
|
151
218
|
const { record, node, nodeDefDescendant } = params;
|
|
152
219
|
if (nodeDefDescendant.uuid === node.nodeDefUuid)
|
|
153
220
|
return [node];
|
|
@@ -159,25 +226,23 @@ const getDescendantsOrSelf = (params) => {
|
|
|
159
226
|
let currentDescendants = [];
|
|
160
227
|
for (const currentDescendantDefUuid of descendantNodeDefUuids) {
|
|
161
228
|
for (const currentAncestor of currentAncestors) {
|
|
162
|
-
currentDescendants.push(...(0, exports.getChildren)(currentAncestor, currentDescendantDefUuid)(record));
|
|
229
|
+
currentDescendants.push(...(0, exports.getChildren)({ parentNode: currentAncestor, childDefUuid: currentDescendantDefUuid })(record));
|
|
163
230
|
}
|
|
164
231
|
currentAncestors = currentDescendants;
|
|
165
232
|
currentDescendants = [];
|
|
166
233
|
}
|
|
167
234
|
return currentAncestors; // currentAncestors is equal to the currentDescendants of the last level
|
|
168
|
-
};
|
|
169
|
-
exports.
|
|
170
|
-
const getDescendant = (params) => {
|
|
235
|
+
});
|
|
236
|
+
exports.getDescendant = recordGetter((params) => {
|
|
171
237
|
const { record, node, nodeDefDescendant } = params;
|
|
172
|
-
return (0, exports.getDescendantsOrSelf)({
|
|
173
|
-
};
|
|
174
|
-
exports.getDescendant = getDescendant;
|
|
238
|
+
return (0, exports.getDescendantsOrSelf)({ node, nodeDefDescendant })(record)[0];
|
|
239
|
+
});
|
|
175
240
|
const isDescendantOf = (params) => {
|
|
176
241
|
const { node, ancestor } = params;
|
|
177
242
|
return node_1.Nodes.getHierarchy(node).includes(ancestor.uuid);
|
|
178
243
|
};
|
|
179
244
|
exports.isDescendantOf = isDescendantOf;
|
|
180
|
-
|
|
245
|
+
exports.visitDescendantsAndSelf = recordGetter((params) => {
|
|
181
246
|
const { record, node, visitor, traverseMethod = common_1.TraverseMethod.bfs } = params;
|
|
182
247
|
if (traverseMethod === common_1.TraverseMethod.bfs) {
|
|
183
248
|
const queue = new utils_1.Queue();
|
|
@@ -201,7 +266,7 @@ const visitDescendantsAndSelf = (params) => {
|
|
|
201
266
|
// stop if visitor returns true
|
|
202
267
|
return;
|
|
203
268
|
}
|
|
204
|
-
const children = (0, exports.getChildren)(visitedNode)(record);
|
|
269
|
+
const children = (0, exports.getChildren)({ parentNode: visitedNode })(record);
|
|
205
270
|
// add children to stack in reverse order
|
|
206
271
|
for (let index = children.length - 1; index >= 0; index--) {
|
|
207
272
|
const child = children[index];
|
|
@@ -209,12 +274,11 @@ const visitDescendantsAndSelf = (params) => {
|
|
|
209
274
|
}
|
|
210
275
|
}
|
|
211
276
|
}
|
|
212
|
-
};
|
|
213
|
-
|
|
214
|
-
const
|
|
277
|
+
});
|
|
278
|
+
const findDescendantOrSelf = (params) => (record) => {
|
|
279
|
+
const { node, predicate } = params;
|
|
215
280
|
let found = undefined;
|
|
216
281
|
(0, exports.visitDescendantsAndSelf)({
|
|
217
|
-
record,
|
|
218
282
|
node,
|
|
219
283
|
visitor: (currentNode) => {
|
|
220
284
|
if (predicate(currentNode)) {
|
|
@@ -223,11 +287,11 @@ const findDescendantOrSelf = (node, predicate) => (record) => {
|
|
|
223
287
|
}
|
|
224
288
|
return false;
|
|
225
289
|
},
|
|
226
|
-
});
|
|
290
|
+
})(record);
|
|
227
291
|
return found;
|
|
228
292
|
};
|
|
229
293
|
exports.findDescendantOrSelf = findDescendantOrSelf;
|
|
230
|
-
const getClosestAncestorNode = (params) => {
|
|
294
|
+
const getClosestAncestorNode = recordGetter((params) => {
|
|
231
295
|
const { record, node, nodeDef, dependentDef, dependencyType } = params;
|
|
232
296
|
// 1a if dependent def is the same as node def, potentially all nodes with
|
|
233
297
|
// nodeDefUuid === dependentDef.uuid in record could be dependent of nodeDef;
|
|
@@ -235,7 +299,7 @@ const getClosestAncestorNode = (params) => {
|
|
|
235
299
|
// unless the node def references itself only among the children of its parent entity (e.g. validation "dbh > 0")
|
|
236
300
|
if (nodeDef.uuid === dependentDef.uuid) {
|
|
237
301
|
return nodeDefSelfReferences_1.NodeDefSelfReferences.isSelfReferenceLocal({ nodeDef, dependencyType })
|
|
238
|
-
? (0, exports.getParent)(node)(record)
|
|
302
|
+
? (0, exports.getParent)({ node })(record)
|
|
239
303
|
: (0, exports.getRoot)(record);
|
|
240
304
|
}
|
|
241
305
|
// 1 find common ancestor def
|
|
@@ -243,76 +307,71 @@ const getClosestAncestorNode = (params) => {
|
|
|
243
307
|
if (!commonAncestorDefUuid)
|
|
244
308
|
return undefined;
|
|
245
309
|
// 2 get ancestor node with common parent def
|
|
246
|
-
return (0, exports.getAncestor)({
|
|
247
|
-
};
|
|
248
|
-
|
|
310
|
+
return (0, exports.getAncestor)({ node, ancestorDefUuid: commonAncestorDefUuid })(record);
|
|
311
|
+
});
|
|
312
|
+
exports.getEntityKeyNodesByDefUuid = recordGetter((params) => {
|
|
249
313
|
const { survey, cycle, record, entity, keyDefs } = params;
|
|
250
314
|
const nodeDef = survey_1.Surveys.getNodeDefByUuid({ survey, uuid: entity.nodeDefUuid });
|
|
251
315
|
const nodeDefKeys = keyDefs !== null && keyDefs !== void 0 ? keyDefs : survey_1.Surveys.getNodeDefKeys({ survey, cycle, nodeDef });
|
|
252
316
|
return nodeDefKeys.reduce((acc, nodeDefKey) => {
|
|
253
|
-
const nodeKey = (0, exports.getDescendant)({
|
|
317
|
+
const nodeKey = (0, exports.getDescendant)({ node: entity, nodeDefDescendant: nodeDefKey })(record);
|
|
254
318
|
acc[nodeDefKey.uuid] = nodeKey;
|
|
255
319
|
return acc;
|
|
256
320
|
}, {});
|
|
257
|
-
};
|
|
258
|
-
exports.
|
|
259
|
-
|
|
260
|
-
exports.
|
|
261
|
-
|
|
262
|
-
|
|
321
|
+
});
|
|
322
|
+
exports.getEntityKeyNodes = recordGetter((_a) => {
|
|
323
|
+
var { record } = _a, otherParams = __rest(_a, ["record"]);
|
|
324
|
+
return Object.values((0, exports.getEntityKeyNodesByDefUuid)(otherParams)(record));
|
|
325
|
+
});
|
|
326
|
+
exports.getEntityKeyValuesByDefUuid = recordGetter((params) => {
|
|
327
|
+
const { record } = params, otherParams = __rest(params, ["record"]);
|
|
328
|
+
const keyNodesByDefUuid = (0, exports.getEntityKeyNodesByDefUuid)(otherParams)(record);
|
|
263
329
|
return Object.entries(keyNodesByDefUuid).reduce((acc, [uuid, keyNode]) => {
|
|
264
330
|
acc[uuid] = keyNode === null || keyNode === void 0 ? void 0 : keyNode.value;
|
|
265
331
|
return acc;
|
|
266
332
|
}, {});
|
|
267
|
-
};
|
|
268
|
-
exports.
|
|
269
|
-
|
|
270
|
-
exports.
|
|
271
|
-
|
|
333
|
+
});
|
|
334
|
+
exports.getEntityKeyValues = recordGetter((_a) => {
|
|
335
|
+
var { record } = _a, otherParams = __rest(_a, ["record"]);
|
|
336
|
+
return Object.values((0, exports.getEntityKeyValuesByDefUuid)(otherParams)(record));
|
|
337
|
+
});
|
|
338
|
+
exports.getEntitySiblings = recordGetter((params) => {
|
|
272
339
|
const { record, entity, includeSelf = false } = params;
|
|
273
|
-
const parentEntity = (0, exports.getParent)(entity)(record);
|
|
340
|
+
const parentEntity = (0, exports.getParent)({ node: entity })(record);
|
|
274
341
|
if (!parentEntity)
|
|
275
342
|
return [];
|
|
276
|
-
const siblingEntities = (0, exports.getChildren)(parentEntity, entity.nodeDefUuid)(record);
|
|
343
|
+
const siblingEntities = (0, exports.getChildren)({ parentNode: parentEntity, childDefUuid: entity.nodeDefUuid })(record);
|
|
277
344
|
return includeSelf ? siblingEntities : siblingEntities.filter((sibling) => !node_1.Nodes.areEqual(sibling, entity));
|
|
278
|
-
};
|
|
279
|
-
exports.
|
|
280
|
-
const getAttributeSiblings = (params) => {
|
|
345
|
+
});
|
|
346
|
+
exports.getAttributeSiblings = recordGetter((params) => {
|
|
281
347
|
const { record, node, nodeDef } = params;
|
|
282
|
-
const parentEntity = (0, exports.getParent)(node)(record);
|
|
348
|
+
const parentEntity = (0, exports.getParent)({ node })(record);
|
|
283
349
|
if (!parentEntity)
|
|
284
350
|
return [];
|
|
285
|
-
const siblingParentEntities = (0, exports.getEntitySiblings)({
|
|
351
|
+
const siblingParentEntities = (0, exports.getEntitySiblings)({ entity: parentEntity })(record);
|
|
286
352
|
return siblingParentEntities.reduce((siblingsAcc, siblingEntity) => {
|
|
287
|
-
siblingsAcc.push(...(0, exports.getChildren)(siblingEntity, nodeDef.uuid)(record));
|
|
353
|
+
siblingsAcc.push(...(0, exports.getChildren)({ parentNode: siblingEntity, childDefUuid: nodeDef.uuid })(record));
|
|
288
354
|
return siblingsAcc;
|
|
289
355
|
}, []);
|
|
290
|
-
};
|
|
291
|
-
exports.
|
|
292
|
-
const getNodeIndex = (params) => {
|
|
356
|
+
});
|
|
357
|
+
exports.getNodeIndex = recordGetter((params) => {
|
|
293
358
|
const { record, node } = params;
|
|
294
|
-
const parentEntity = (0, exports.getParent)(node)(record);
|
|
359
|
+
const parentEntity = (0, exports.getParent)({ node })(record);
|
|
295
360
|
if (!parentEntity)
|
|
296
361
|
return 0; // root entity
|
|
297
|
-
const siblings = (0, exports.getChildren)(parentEntity, node.nodeDefUuid)(record);
|
|
362
|
+
const siblings = (0, exports.getChildren)({ parentNode: parentEntity, childDefUuid: node.nodeDefUuid })(record);
|
|
298
363
|
return siblings.indexOf(node);
|
|
299
|
-
};
|
|
300
|
-
exports.
|
|
301
|
-
const findEntityByKeyValues = (params) => {
|
|
364
|
+
});
|
|
365
|
+
exports.findEntityByKeyValues = recordGetter((params) => {
|
|
302
366
|
const { survey, cycle, record, parentEntity, entityDefUuid, keyValuesByDefUuid } = params;
|
|
303
367
|
const entityDef = survey_1.Surveys.getNodeDefByUuid({ survey, uuid: entityDefUuid });
|
|
304
|
-
const siblingEntities = (0, exports.getChildren)(parentEntity, entityDefUuid)(record);
|
|
368
|
+
const siblingEntities = (0, exports.getChildren)({ parentNode: parentEntity, childDefUuid: entityDefUuid })(record);
|
|
305
369
|
if (nodeDef_1.NodeDefs.isSingle(entityDef)) {
|
|
306
370
|
return siblingEntities[0];
|
|
307
371
|
}
|
|
308
372
|
const keyDefs = survey_1.Surveys.getNodeDefKeys({ survey, cycle, nodeDef: entityDef });
|
|
309
373
|
return siblingEntities.find((siblingEntity) => {
|
|
310
|
-
const siblingEntityKeyValuesByDefUuid = (0, exports.getEntityKeyValuesByDefUuid)({
|
|
311
|
-
survey,
|
|
312
|
-
record,
|
|
313
|
-
entity: siblingEntity,
|
|
314
|
-
keyDefs,
|
|
315
|
-
});
|
|
374
|
+
const siblingEntityKeyValuesByDefUuid = (0, exports.getEntityKeyValuesByDefUuid)({ survey, entity: siblingEntity, keyDefs })(record);
|
|
316
375
|
return keyDefs.every((keyDef) => {
|
|
317
376
|
const keyValue = siblingEntityKeyValuesByDefUuid[keyDef.uuid];
|
|
318
377
|
const keyValueSearch = keyValuesByDefUuid[keyDef.uuid];
|
|
@@ -324,27 +383,19 @@ const findEntityByKeyValues = (params) => {
|
|
|
324
383
|
});
|
|
325
384
|
});
|
|
326
385
|
});
|
|
327
|
-
};
|
|
328
|
-
exports.
|
|
329
|
-
const findEntityWithSameKeysInAnotherRecord = (params) => {
|
|
386
|
+
});
|
|
387
|
+
exports.findEntityWithSameKeysInAnotherRecord = recordGetter((params) => {
|
|
330
388
|
const { survey, cycle, entityUuid, record, recordOther } = params;
|
|
331
|
-
const entity = (0, exports.getNodeByUuid)(entityUuid)(record);
|
|
389
|
+
const entity = (0, exports.getNodeByUuid)({ uuid: entityUuid })(record);
|
|
332
390
|
if (!entity)
|
|
333
391
|
return undefined;
|
|
334
392
|
let otherRecordCurrentParentEntity = (0, exports.getRoot)(recordOther);
|
|
335
393
|
if (!otherRecordCurrentParentEntity)
|
|
336
394
|
return undefined;
|
|
337
|
-
const entityAncestorsAndSelf = (0, exports.getAncestorsAndSelf)({
|
|
338
|
-
record,
|
|
339
|
-
node: entity,
|
|
340
|
-
});
|
|
395
|
+
const entityAncestorsAndSelf = (0, exports.getAncestorsAndSelf)({ node: entity })(record);
|
|
341
396
|
const ancestorDefUuidsAndKeys = entityAncestorsAndSelf.map((ancestor) => ({
|
|
342
397
|
entityDefUuid: ancestor.nodeDefUuid,
|
|
343
|
-
keyValuesByDefUuid: (0, exports.getEntityKeyValuesByDefUuid)({
|
|
344
|
-
survey,
|
|
345
|
-
record,
|
|
346
|
-
entity: ancestor,
|
|
347
|
-
}),
|
|
398
|
+
keyValuesByDefUuid: (0, exports.getEntityKeyValuesByDefUuid)({ survey, entity: ancestor })(record),
|
|
348
399
|
}));
|
|
349
400
|
const ancestorDefUuidsAndKeysToVisit = [...ancestorDefUuidsAndKeys].reverse();
|
|
350
401
|
for (let index = 1; otherRecordCurrentParentEntity && index < ancestorDefUuidsAndKeysToVisit.length; index++) {
|
|
@@ -352,16 +403,14 @@ const findEntityWithSameKeysInAnotherRecord = (params) => {
|
|
|
352
403
|
otherRecordCurrentParentEntity = (0, exports.findEntityByKeyValues)({
|
|
353
404
|
survey,
|
|
354
405
|
cycle,
|
|
355
|
-
record: recordOther,
|
|
356
406
|
parentEntity: otherRecordCurrentParentEntity,
|
|
357
407
|
entityDefUuid,
|
|
358
408
|
keyValuesByDefUuid,
|
|
359
|
-
});
|
|
409
|
+
})(recordOther);
|
|
360
410
|
}
|
|
361
411
|
return otherRecordCurrentParentEntity;
|
|
362
|
-
};
|
|
363
|
-
exports.
|
|
364
|
-
const getDependentNodePointers = (params) => {
|
|
412
|
+
});
|
|
413
|
+
exports.getDependentNodePointers = recordGetter((params) => {
|
|
365
414
|
const { survey, record, node, dependencyType, includeSelf = false, filterFn = null } = params;
|
|
366
415
|
const nodeDefUuid = node.nodeDefUuid;
|
|
367
416
|
const nodeDef = survey_1.Surveys.getNodeDefByUuid({ survey, uuid: nodeDefUuid });
|
|
@@ -374,7 +423,7 @@ const getDependentNodePointers = (params) => {
|
|
|
374
423
|
};
|
|
375
424
|
for (const dependentDef of dependentDefs) {
|
|
376
425
|
// 1 find common ancestor node
|
|
377
|
-
const commonAncestorNode = getClosestAncestorNode({
|
|
426
|
+
const commonAncestorNode = getClosestAncestorNode({ node, nodeDef, dependentDef, dependencyType })(record);
|
|
378
427
|
if (!commonAncestorNode)
|
|
379
428
|
continue;
|
|
380
429
|
const nodeDefDependentParent = survey_1.Surveys.getNodeDefParent({ survey, nodeDef: dependentDef });
|
|
@@ -382,10 +431,9 @@ const getDependentNodePointers = (params) => {
|
|
|
382
431
|
throw new error_1.SystemError('record.nodes.dependents.dependencyOnRootFound');
|
|
383
432
|
// 2 find descendant nodes of common parent node with nodeDefUuid = dependentDef uuid
|
|
384
433
|
const dependentContextNodes = (0, exports.getDescendantsOrSelf)({
|
|
385
|
-
record,
|
|
386
434
|
node: commonAncestorNode,
|
|
387
435
|
nodeDefDescendant: nodeDefDependentParent,
|
|
388
|
-
});
|
|
436
|
+
})(record);
|
|
389
437
|
for (const dependentContextNode of dependentContextNodes) {
|
|
390
438
|
addToNodePointers({
|
|
391
439
|
nodeCtx: dependentContextNode,
|
|
@@ -394,7 +442,7 @@ const getDependentNodePointers = (params) => {
|
|
|
394
442
|
}
|
|
395
443
|
}
|
|
396
444
|
if (includeSelf) {
|
|
397
|
-
const parentNode = (0, exports.getParent)(node)(record);
|
|
445
|
+
const parentNode = (0, exports.getParent)({ node })(record);
|
|
398
446
|
if (parentNode) {
|
|
399
447
|
addToNodePointers({
|
|
400
448
|
nodeCtx: parentNode,
|
|
@@ -403,9 +451,8 @@ const getDependentNodePointers = (params) => {
|
|
|
403
451
|
}
|
|
404
452
|
}
|
|
405
453
|
return nodePointers;
|
|
406
|
-
};
|
|
407
|
-
exports.
|
|
408
|
-
const getAncestorCodePath = (params) => {
|
|
454
|
+
});
|
|
455
|
+
exports.getAncestorCodePath = recordGetter((params) => {
|
|
409
456
|
const { record, parentNode, nodeDef, survey } = params;
|
|
410
457
|
const getCodeAttributeItemCode = (codeAttribute) => {
|
|
411
458
|
var _a;
|
|
@@ -427,23 +474,27 @@ const getAncestorCodePath = (params) => {
|
|
|
427
474
|
currentParentCodeAttribute = (0, exports.getParentCodeAttribute)({ parentNode, nodeDef: ancestorCodeDef })(record);
|
|
428
475
|
}
|
|
429
476
|
return codePaths;
|
|
430
|
-
};
|
|
431
|
-
exports.
|
|
432
|
-
const getCategoryItemUuid = (params) => {
|
|
477
|
+
});
|
|
478
|
+
exports.getCategoryItemUuid = recordGetter((params) => {
|
|
433
479
|
const { survey, nodeDef, record, parentNode, code } = params;
|
|
434
480
|
const categoryUuid = nodeDef.props.categoryUuid;
|
|
435
|
-
const codePaths = [...(0, exports.getAncestorCodePath)({ survey,
|
|
481
|
+
const codePaths = [...(0, exports.getAncestorCodePath)({ survey, parentNode, nodeDef })(record), code];
|
|
436
482
|
const item = survey_1.Surveys.getCategoryItemByCodePaths({ survey, categoryUuid, codePaths });
|
|
437
483
|
return item === null || item === void 0 ? void 0 : item.uuid;
|
|
438
|
-
};
|
|
439
|
-
exports.
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
484
|
+
});
|
|
485
|
+
exports.isNodeFilledByUser = positionalRecordGetter({
|
|
486
|
+
getter: ({ record, node }) => !!(0, exports.findDescendantOrSelf)({ node, predicate: (visitedNode) => node_1.Nodes.hasUserInputValue(visitedNode) })(record),
|
|
487
|
+
isPositional: isRecordNode,
|
|
488
|
+
toParams: (node) => ({ node }),
|
|
489
|
+
});
|
|
490
|
+
exports.isNodeEmpty = positionalRecordGetter({
|
|
491
|
+
getter: ({ record, node }) => !(0, exports.isNodeFilledByUser)({ node })(record),
|
|
492
|
+
isPositional: isRecordNode,
|
|
493
|
+
toParams: (node) => ({ node }),
|
|
494
|
+
});
|
|
444
495
|
const isEmpty = (record) => {
|
|
445
496
|
const rootNode = (0, exports.getRoot)(record);
|
|
446
|
-
return rootNode ? (0, exports.isNodeEmpty)(rootNode)(record) : true;
|
|
497
|
+
return rootNode ? (0, exports.isNodeEmpty)({ node: rootNode })(record) : true;
|
|
447
498
|
};
|
|
448
499
|
exports.isEmpty = isEmpty;
|
|
449
500
|
const getStep = (record) => { var _a; return (_a = record.step) !== null && _a !== void 0 ? _a : record_1.RECORD_STEP_DEFAULT; };
|