occam-dom 5.2.22 → 5.2.24
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/example.js +22 -17
- package/lib/node.js +2 -1
- package/lib/utilities/node.js +21 -17
- package/package.json +1 -1
- package/src/node.js +2 -0
- package/src/utilities/node.js +36 -35
package/lib/node.js
CHANGED
|
@@ -248,6 +248,7 @@ var Node = /*#__PURE__*/ function() {
|
|
|
248
248
|
parentNode,
|
|
249
249
|
childNodes
|
|
250
250
|
].concat(_to_consumable_array(remainingArguments)));
|
|
251
|
+
node.setChildNodesParentNode();
|
|
251
252
|
return node;
|
|
252
253
|
}
|
|
253
254
|
}
|
|
@@ -256,4 +257,4 @@ var Node = /*#__PURE__*/ function() {
|
|
|
256
257
|
}();
|
|
257
258
|
Object.assign(Node.prototype, _occamparsers.nodeMixins);
|
|
258
259
|
|
|
259
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
260
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ub2RlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBub2RlTWl4aW5zIH0gZnJvbSBcIm9jY2FtLXBhcnNlcnNcIjtcblxuaW1wb3J0IE5vZGVQYXJzZVRyZWUgZnJvbSBcIi4vcGFyc2VUcmVlL25vZGVcIjtcblxuaW1wb3J0IHsgRU1QVFlfU1RSSU5HIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5vZGUge1xuICBjb25zdHJ1Y3RvcihvdXRlck5vZGUsIHBhcmVudE5vZGUsIGNoaWxkTm9kZXMpIHtcbiAgICB0aGlzLm91dGVyTm9kZSA9IG91dGVyTm9kZTtcbiAgICB0aGlzLnBhcmVudE5vZGUgPSBwYXJlbnROb2RlO1xuICAgIHRoaXMuY2hpbGROb2RlcyA9IGNoaWxkTm9kZXM7XG4gIH1cblxuICBnZXRPdXRlck5vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMub3V0ZXJOb2RlO1xuICB9XG5cbiAgZ2V0UGFyZW50Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnROb2RlO1xuICB9XG5cbiAgZ2V0Q2hpbGROb2RlcygpIHtcbiAgICByZXR1cm4gdGhpcy5jaGlsZE5vZGVzO1xuICB9XG5cbiAgc2V0T3V0ZXJOb2RlKG91dGVyTm9kZSkge1xuICAgIHRoaXMub3V0ZXJOb2RlID0gb3V0ZXJOb2RlO1xuICB9XG5cbiAgc2V0UGFyZW50Tm9kZShwYXJlbnROb2RlKSB7XG4gICAgdGhpcy5wYXJlbnROb2RlID0gcGFyZW50Tm9kZTtcbiAgfVxuXG4gIHNldENoaWxkTm9kZXMoY2hpbGROb2Rlcykge1xuICAgIGNvbnN0IHN0YXJ0SW5kZXggPSAwLFxuICAgICAgICAgIGRlbGV0ZUNvdW50ID0gSW5maW5pdHksXG4gICAgICAgICAgYWRkZWRDaGlsZE5vZGVzID0gY2hpbGROb2RlczsgIC8vL1xuXG4gICAgdGhpcy5zcGxpY2VDaGlsZE5vZGVzKHN0YXJ0SW5kZXgsIGRlbGV0ZUNvdW50LCBhZGRlZENoaWxkTm9kZXMpO1xuICB9XG5cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLm91dGVyTm9kZSA9IG51bGw7XG5cbiAgICBzdXBlci5kZXN0cm95KCk7XG4gIH1cblxuICBhc1N0cmluZygpIHtcbiAgICBsZXQgc3RyaW5nID0gRU1QVFlfU1RSSU5HO1xuXG4gICAgaWYgKHRoaXMub3V0ZXJOb2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBub2RlVGVybWluYWxOb2RlID0gdGhpcy5vdXRlck5vZGUuaXNUZXJtaW5hbE5vZGUoKTtcblxuICAgICAgaWYgKG5vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICAgICAgY29uc3QgdGVybWluYWxOb2RlID0gdGhpcy5vdXRlck5vZGUsXG4gICAgICAgICAgICAgIHR5cGUgPSB0ZXJtaW5hbE5vZGUuZ2V0VHlwZSgpLFxuICAgICAgICAgICAgICBjb250ZW50ID0gdGVybWluYWxOb2RlLmdldENvbnRlbnQoKTtcblxuICAgICAgICBzdHJpbmcgPSBgXCIke2NvbnRlbnR9XCIgWyR7dHlwZX1dYDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IHRoaXMub3V0ZXJOb2RlLFxuICAgICAgICAgICAgICBydWxlTmFtZSA9IG5vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpO1xuXG4gICAgICAgIHN0cmluZyA9IHJ1bGVOYW1lOyAgLy8vXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIGFzUGFyc2VUcmVlKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLCAgLy8vXG4gICAgICAgICAgbm9kZVBhcnNlVHJlZSA9IE5vZGVQYXJzZVRyZWUuZnJvbU5vZGUobm9kZSksXG4gICAgICAgICAgcGFyc2VUcmVlID0gbm9kZVBhcnNlVHJlZTsgIC8vL1xuXG4gICAgcmV0dXJuIHBhcnNlVHJlZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTm90aGluZyhDbGFzcywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgaWYgKENsYXNzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIENsYXNzID0gTm9kZTsgLy8vXG4gICAgfVxuXG4gICAgY29uc3Qgb3V0ZXJOb2RlID0gbnVsbCxcbiAgICAgICAgICBwYXJlbnROb2RlID0gbnVsbCxcbiAgICAgICAgICBjaGlsZE5vZGVzID0gW10sXG4gICAgICAgICAgbm9kZSA9IG5ldyBDbGFzcyhvdXRlck5vZGUsIHBhcmVudE5vZGUsIGNoaWxkTm9kZXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tT3V0ZXJOb2RlKENsYXNzLCBvdXRlck5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGlmIChvdXRlck5vZGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgb3V0ZXJOb2RlID0gQ2xhc3M7ICAvLy9cblxuICAgICAgQ2xhc3MgPSBOb2RlOyAvLy9cbiAgICB9XG5cbiAgICBjb25zdCBwYXJlbnROb2RlID0gbnVsbCxcbiAgICAgICAgICBjaGlsZE5vZGVzID0gW10sXG4gICAgICAgICAgbm9kZSA9IG5ldyBDbGFzcyhvdXRlck5vZGUsIHBhcmVudE5vZGUsIGNoaWxkTm9kZXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tQ2hpbGROb2RlcyhDbGFzcywgY2hpbGROb2RlcywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgaWYgKGNoaWxkTm9kZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgY2hpbGROb2RlcyA9IENsYXNzOyAgLy8vXG5cbiAgICAgIENsYXNzID0gTm9kZTsgLy8vXG4gICAgfVxuXG4gICAgY29uc3Qgb3V0ZXJOb2RlID0gbnVsbCxcbiAgICAgICAgICBwYXJlbnROb2RlID0gbnVsbCxcbiAgICAgICAgICBub2RlID0gbmV3IENsYXNzKG91dGVyTm9kZSwgcGFyZW50Tm9kZSwgY2hpbGROb2RlcywgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgIG5vZGUuc2V0Q2hpbGROb2Rlc1BhcmVudE5vZGUoKTtcblxuICAgIHJldHVybiBub2RlO1xuICB9XG59XG5cbk9iamVjdC5hc3NpZ24oTm9kZS5wcm90b3R5cGUsIG5vZGVNaXhpbnMpO1xuIl0sIm5hbWVzIjpbIk5vZGUiLCJvdXRlck5vZGUiLCJwYXJlbnROb2RlIiwiY2hpbGROb2RlcyIsImdldE91dGVyTm9kZSIsImdldFBhcmVudE5vZGUiLCJnZXRDaGlsZE5vZGVzIiwic2V0T3V0ZXJOb2RlIiwic2V0UGFyZW50Tm9kZSIsInNldENoaWxkTm9kZXMiLCJzdGFydEluZGV4IiwiZGVsZXRlQ291bnQiLCJJbmZpbml0eSIsImFkZGVkQ2hpbGROb2RlcyIsInNwbGljZUNoaWxkTm9kZXMiLCJkZXN0cm95IiwiYXNTdHJpbmciLCJzdHJpbmciLCJFTVBUWV9TVFJJTkciLCJub2RlVGVybWluYWxOb2RlIiwiaXNUZXJtaW5hbE5vZGUiLCJ0ZXJtaW5hbE5vZGUiLCJ0eXBlIiwiZ2V0VHlwZSIsImNvbnRlbnQiLCJnZXRDb250ZW50Iiwibm9uVGVybWluYWxOb2RlIiwicnVsZU5hbWUiLCJnZXRSdWxlTmFtZSIsImFzUGFyc2VUcmVlIiwibm9kZSIsIm5vZGVQYXJzZVRyZWUiLCJOb2RlUGFyc2VUcmVlIiwiZnJvbU5vZGUiLCJwYXJzZVRyZWUiLCJmcm9tTm90aGluZyIsIkNsYXNzIiwicmVtYWluaW5nQXJndW1lbnRzIiwidW5kZWZpbmVkIiwiZnJvbU91dGVyTm9kZSIsImZyb21DaGlsZE5vZGVzIiwic2V0Q2hpbGROb2Rlc1BhcmVudE5vZGUiLCJPYmplY3QiLCJhc3NpZ24iLCJwcm90b3R5cGUiLCJub2RlTWl4aW5zIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQVFxQkE7Ozs0QkFOTTsyREFFRDt5QkFFRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
|
package/lib/utilities/node.js
CHANGED
|
@@ -12,6 +12,9 @@ _export(exports, {
|
|
|
12
12
|
default: function() {
|
|
13
13
|
return _default;
|
|
14
14
|
},
|
|
15
|
+
isLessThan: function() {
|
|
16
|
+
return isLessThan;
|
|
17
|
+
},
|
|
15
18
|
topmostNodeFromOuterNodes: function() {
|
|
16
19
|
return topmostNodeFromOuterNodes;
|
|
17
20
|
}
|
|
@@ -22,6 +25,22 @@ function _interop_require_default(obj) {
|
|
|
22
25
|
default: obj
|
|
23
26
|
};
|
|
24
27
|
}
|
|
28
|
+
function isLessThan(nodeA, nodeB) {
|
|
29
|
+
var lessThan = null;
|
|
30
|
+
var nodeAAncestorNodes = ancestorNodesFromNode(nodeA), nodeBAncestorNodes = ancestorNodesFromNode(nodeB), nodeAAncestorNodesLength = nodeAAncestorNodes.length, nodeBAncestorNodesLength = nodeBAncestorNodes.length, minimumAncestorNodesLength = Math.min(nodeAAncestorNodesLength, nodeBAncestorNodesLength);
|
|
31
|
+
for(var index = 0; index < minimumAncestorNodesLength; index++){
|
|
32
|
+
var nodeAAncestorNode = nodeAAncestorNodes[index], nodeBAncestorNode = nodeBAncestorNodes[index];
|
|
33
|
+
if (nodeAAncestorNode !== nodeBAncestorNode) {
|
|
34
|
+
var parentIndex = index - 1, nodeAAncestorNodeParentNode = nodeAAncestorNodes[parentIndex], parentNode = nodeAAncestorNodeParentNode, childNodeA = nodeAAncestorNode, childNodeB = nodeBAncestorNode, indexA = parentNode.indexOfChildNode(childNodeA), indexB = parentNode.indexOfChildNode(childNodeB);
|
|
35
|
+
lessThan = indexA < indexB;
|
|
36
|
+
break;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
if (lessThan === null) {
|
|
40
|
+
lessThan = nodeAAncestorNodesLength < nodeBAncestorNodesLength;
|
|
41
|
+
}
|
|
42
|
+
return lessThan;
|
|
43
|
+
}
|
|
25
44
|
function topmostNodeFromOuterNodes(ClassFromOuterNode, outerNodes) {
|
|
26
45
|
if (outerNodes === undefined) {
|
|
27
46
|
outerNodes = ClassFromOuterNode; ///
|
|
@@ -48,6 +67,7 @@ function topmostNodeFromOuterNodes(ClassFromOuterNode, outerNodes) {
|
|
|
48
67
|
return topmostNode;
|
|
49
68
|
}
|
|
50
69
|
var _default = {
|
|
70
|
+
isLessThan: isLessThan,
|
|
51
71
|
topmostNodeFromOuterNodes: topmostNodeFromOuterNodes
|
|
52
72
|
};
|
|
53
73
|
function orderNodes(nodes) {
|
|
@@ -56,22 +76,6 @@ function orderNodes(nodes) {
|
|
|
56
76
|
return result;
|
|
57
77
|
});
|
|
58
78
|
}
|
|
59
|
-
function isLessThan(nodeA, nodeB) {
|
|
60
|
-
var lessThan = null;
|
|
61
|
-
var nodeAAncestorNodes = ancestorNodesFromNode(nodeA), nodeBAncestorNodes = ancestorNodesFromNode(nodeB), nodeAAncestorNodesLength = nodeAAncestorNodes.length, nodeBAncestorNodesLength = nodeBAncestorNodes.length, minimumAncestorNodesLength = Math.min(nodeAAncestorNodesLength, nodeBAncestorNodesLength);
|
|
62
|
-
for(var index = 0; index < minimumAncestorNodesLength; index++){
|
|
63
|
-
var nodeAAncestorNode = nodeAAncestorNodes[index], nodeBAncestorNode = nodeBAncestorNodes[index];
|
|
64
|
-
if (nodeAAncestorNode !== nodeBAncestorNode) {
|
|
65
|
-
var parentIndex = index - 1, nodeAAncestorNodeParentNode = nodeAAncestorNodes[parentIndex], parentNode = nodeAAncestorNodeParentNode, childNodeA = nodeAAncestorNode, childNodeB = nodeBAncestorNode, indexA = parentNode.indexOfChildNode(childNodeA), indexB = parentNode.indexOfChildNode(childNodeB);
|
|
66
|
-
lessThan = indexA < indexB;
|
|
67
|
-
break;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
if (lessThan === null) {
|
|
71
|
-
lessThan = nodeAAncestorNodesLength < nodeBAncestorNodesLength;
|
|
72
|
-
}
|
|
73
|
-
return lessThan;
|
|
74
|
-
}
|
|
75
79
|
function ancestorNodesFromNode(node) {
|
|
76
80
|
var ancestorNodes = node.getAncestorNodes();
|
|
77
81
|
ancestorNodes.unshift(node);
|
|
@@ -79,4 +83,4 @@ function ancestorNodesFromNode(node) {
|
|
|
79
83
|
return ancestorNodes;
|
|
80
84
|
}
|
|
81
85
|
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbm9kZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IE5vZGUgZnJvbSBcIi4uL25vZGVcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzTGVzc1RoYW4obm9kZUEsIG5vZGVCKSB7XG4gIGxldCBsZXNzVGhhbiA9IG51bGw7XG5cbiAgY29uc3Qgbm9kZUFBbmNlc3Rvck5vZGVzID0gYW5jZXN0b3JOb2Rlc0Zyb21Ob2RlKG5vZGVBKSxcbiAgICBub2RlQkFuY2VzdG9yTm9kZXMgPSBhbmNlc3Rvck5vZGVzRnJvbU5vZGUobm9kZUIpLFxuICAgIG5vZGVBQW5jZXN0b3JOb2Rlc0xlbmd0aCA9IG5vZGVBQW5jZXN0b3JOb2Rlcy5sZW5ndGgsXG4gICAgbm9kZUJBbmNlc3Rvck5vZGVzTGVuZ3RoID0gbm9kZUJBbmNlc3Rvck5vZGVzLmxlbmd0aCxcbiAgICBtaW5pbXVtQW5jZXN0b3JOb2Rlc0xlbmd0aCA9IE1hdGgubWluKG5vZGVBQW5jZXN0b3JOb2Rlc0xlbmd0aCwgbm9kZUJBbmNlc3Rvck5vZGVzTGVuZ3RoKTtcblxuICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbWluaW11bUFuY2VzdG9yTm9kZXNMZW5ndGg7IGluZGV4KyspIHtcbiAgICBjb25zdCBub2RlQUFuY2VzdG9yTm9kZSA9IG5vZGVBQW5jZXN0b3JOb2Rlc1tpbmRleF0sXG4gICAgICBub2RlQkFuY2VzdG9yTm9kZSA9IG5vZGVCQW5jZXN0b3JOb2Rlc1tpbmRleF07XG5cbiAgICBpZiAobm9kZUFBbmNlc3Rvck5vZGUgIT09IG5vZGVCQW5jZXN0b3JOb2RlKSB7XG4gICAgICBjb25zdCBwYXJlbnRJbmRleCA9IGluZGV4IC0gMSxcbiAgICAgICAgbm9kZUFBbmNlc3Rvck5vZGVQYXJlbnROb2RlID0gbm9kZUFBbmNlc3Rvck5vZGVzW3BhcmVudEluZGV4XSxcbiAgICAgICAgcGFyZW50Tm9kZSA9IG5vZGVBQW5jZXN0b3JOb2RlUGFyZW50Tm9kZSwgLy8vXG4gICAgICAgIGNoaWxkTm9kZUEgPSBub2RlQUFuY2VzdG9yTm9kZSwgLy8vXG4gICAgICAgIGNoaWxkTm9kZUIgPSBub2RlQkFuY2VzdG9yTm9kZSwgLy8vXG4gICAgICAgIGluZGV4QSA9IHBhcmVudE5vZGUuaW5kZXhPZkNoaWxkTm9kZShjaGlsZE5vZGVBKSxcbiAgICAgICAgaW5kZXhCID0gcGFyZW50Tm9kZS5pbmRleE9mQ2hpbGROb2RlKGNoaWxkTm9kZUIpO1xuXG4gICAgICBsZXNzVGhhbiA9IChpbmRleEEgPCBpbmRleEIpO1xuXG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBpZiAobGVzc1RoYW4gPT09IG51bGwpIHtcbiAgICBsZXNzVGhhbiA9IChub2RlQUFuY2VzdG9yTm9kZXNMZW5ndGggPCBub2RlQkFuY2VzdG9yTm9kZXNMZW5ndGgpO1xuICB9XG5cbiAgcmV0dXJuIGxlc3NUaGFuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9wbW9zdE5vZGVGcm9tT3V0ZXJOb2RlcyhDbGFzc0Zyb21PdXRlck5vZGUsIG91dGVyTm9kZXMpIHtcbiAgaWYgKG91dGVyTm9kZXMgPT09IHVuZGVmaW5lZCkge1xuICAgIG91dGVyTm9kZXMgPSBDbGFzc0Zyb21PdXRlck5vZGU7IC8vL1xuXG4gICAgQ2xhc3NGcm9tT3V0ZXJOb2RlID0gKG91dGVyTm9kZSkgPT4gTm9kZTsgIC8vL1xuICB9XG5cbiAgY29uc3Qgbm9kZXMgPSBvdXRlck5vZGVzOyAvLy9cblxuICBvcmRlck5vZGVzKG5vZGVzKTtcblxuICBjb25zdCBvdXRlck5vZGUgPSBudWxsLFxuICAgICAgICBDbGFzcyA9IENsYXNzRnJvbU91dGVyTm9kZShvdXRlck5vZGUpLFxuICAgICAgICB0b3Btb3N0Tm9kZSA9IENsYXNzLmZyb21Ob3RoaW5nKCksXG4gICAgICAgIG91dGVyTm9kZVRvTm9kZU1hcCA9IG5ldyBXZWFrTWFwKCk7XG5cbiAgb3V0ZXJOb2Rlcy5mb3JFYWNoKChvdXRlck5vZGUpID0+IHtcbiAgICBsZXQgcGFyZW50Tm9kZSA9IHRvcG1vc3ROb2RlOyAvLy9cblxuICAgIG91dGVyTm9kZS5zb21lQW5jZXN0b3JOb2RlKChhbmNlc3Rvck5vZGUpID0+IHtcbiAgICAgIGNvbnN0IG91dGVyTm9kZSA9IGFuY2VzdG9yTm9kZSwgLy8vXG4gICAgICAgICAgICBub2RlID0gb3V0ZXJOb2RlVG9Ob2RlTWFwLmdldChvdXRlck5vZGUpIHx8IG51bGw7XG5cbiAgICAgIGlmIChub2RlICE9PSBudWxsKSB7XG4gICAgICAgIHBhcmVudE5vZGUgPSBub2RlOyAgLy8vXG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCBDbGFzcyA9IENsYXNzRnJvbU91dGVyTm9kZShvdXRlck5vZGUpLFxuICAgICAgICAgIG5vZGUgPSBDbGFzcy5mcm9tT3V0ZXJOb2RlKG91dGVyTm9kZSksXG4gICAgICAgICAgYXBwZW5kZWRDaGlsZE5vZGUgPSBub2RlOyAvLy9cblxuICAgIHBhcmVudE5vZGUuYXBwZW5kQ2hpbGROb2RlKGFwcGVuZGVkQ2hpbGROb2RlKTtcblxuICAgIG91dGVyTm9kZVRvTm9kZU1hcC5zZXQob3V0ZXJOb2RlLCBub2RlKTtcbiAgfSk7XG5cbiAgcmV0dXJuIHRvcG1vc3ROb2RlO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGlzTGVzc1RoYW4sXG4gIHRvcG1vc3ROb2RlRnJvbU91dGVyTm9kZXNcbn07XG5cbmZ1bmN0aW9uIG9yZGVyTm9kZXMobm9kZXMpIHtcbiAgbm9kZXMuc29ydCgobm9kZUEsIG5vZGVCKSA9PiB7XG4gICAgY29uc3Qgbm9kZUFMZXNzVGhhbk5vZGVCID0gaXNMZXNzVGhhbihub2RlQSwgbm9kZUIpLFxuICAgICAgICAgIHJlc3VsdCA9IG5vZGVBTGVzc1RoYW5Ob2RlQiA/XG4gICAgICAgICAgICAgICAgICAgICAtMSA6XG4gICAgICAgICAgICAgICAgICAgICAgICsxO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGFuY2VzdG9yTm9kZXNGcm9tTm9kZShub2RlKSB7XG4gIGNvbnN0IGFuY2VzdG9yTm9kZXMgPSBub2RlLmdldEFuY2VzdG9yTm9kZXMoKTtcblxuICBhbmNlc3Rvck5vZGVzLnVuc2hpZnQobm9kZSk7XG5cbiAgYW5jZXN0b3JOb2Rlcy5yZXZlcnNlKCk7XG5cbiAgcmV0dXJuIGFuY2VzdG9yTm9kZXM7XG59XG4iXSwibmFtZXMiOlsiaXNMZXNzVGhhbiIsInRvcG1vc3ROb2RlRnJvbU91dGVyTm9kZXMiLCJub2RlQSIsIm5vZGVCIiwibGVzc1RoYW4iLCJub2RlQUFuY2VzdG9yTm9kZXMiLCJhbmNlc3Rvck5vZGVzRnJvbU5vZGUiLCJub2RlQkFuY2VzdG9yTm9kZXMiLCJub2RlQUFuY2VzdG9yTm9kZXNMZW5ndGgiLCJsZW5ndGgiLCJub2RlQkFuY2VzdG9yTm9kZXNMZW5ndGgiLCJtaW5pbXVtQW5jZXN0b3JOb2Rlc0xlbmd0aCIsIk1hdGgiLCJtaW4iLCJpbmRleCIsIm5vZGVBQW5jZXN0b3JOb2RlIiwibm9kZUJBbmNlc3Rvck5vZGUiLCJwYXJlbnRJbmRleCIsIm5vZGVBQW5jZXN0b3JOb2RlUGFyZW50Tm9kZSIsInBhcmVudE5vZGUiLCJjaGlsZE5vZGVBIiwiY2hpbGROb2RlQiIsImluZGV4QSIsImluZGV4T2ZDaGlsZE5vZGUiLCJpbmRleEIiLCJDbGFzc0Zyb21PdXRlck5vZGUiLCJvdXRlck5vZGVzIiwidW5kZWZpbmVkIiwib3V0ZXJOb2RlIiwiTm9kZSIsIm5vZGVzIiwib3JkZXJOb2RlcyIsIkNsYXNzIiwidG9wbW9zdE5vZGUiLCJmcm9tTm90aGluZyIsIm91dGVyTm9kZVRvTm9kZU1hcCIsIldlYWtNYXAiLCJmb3JFYWNoIiwic29tZUFuY2VzdG9yTm9kZSIsImFuY2VzdG9yTm9kZSIsIm5vZGUiLCJnZXQiLCJmcm9tT3V0ZXJOb2RlIiwiYXBwZW5kZWRDaGlsZE5vZGUiLCJhcHBlbmRDaGlsZE5vZGUiLCJzZXQiLCJzb3J0Iiwibm9kZUFMZXNzVGhhbk5vZGVCIiwicmVzdWx0IiwiYW5jZXN0b3JOb2RlcyIsImdldEFuY2VzdG9yTm9kZXMiLCJ1bnNoaWZ0IiwicmV2ZXJzZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBaUZBLE9BR0U7ZUFIRjs7SUE3RWdCQSxVQUFVO2VBQVZBOztJQW1DQUMseUJBQXlCO2VBQXpCQTs7OzJEQXJDQzs7Ozs7O0FBRVYsU0FBU0QsV0FBV0UsS0FBSyxFQUFFQyxLQUFLO0lBQ3JDLElBQUlDLFdBQVc7SUFFZixJQUFNQyxxQkFBcUJDLHNCQUFzQkosUUFDL0NLLHFCQUFxQkQsc0JBQXNCSCxRQUMzQ0ssMkJBQTJCSCxtQkFBbUJJLE1BQU0sRUFDcERDLDJCQUEyQkgsbUJBQW1CRSxNQUFNLEVBQ3BERSw2QkFBNkJDLEtBQUtDLEdBQUcsQ0FBQ0wsMEJBQTBCRTtJQUVsRSxJQUFLLElBQUlJLFFBQVEsR0FBR0EsUUFBUUgsNEJBQTRCRyxRQUFTO1FBQy9ELElBQU1DLG9CQUFvQlYsa0JBQWtCLENBQUNTLE1BQU0sRUFDakRFLG9CQUFvQlQsa0JBQWtCLENBQUNPLE1BQU07UUFFL0MsSUFBSUMsc0JBQXNCQyxtQkFBbUI7WUFDM0MsSUFBTUMsY0FBY0gsUUFBUSxHQUMxQkksOEJBQThCYixrQkFBa0IsQ0FBQ1ksWUFBWSxFQUM3REUsYUFBYUQsNkJBQ2JFLGFBQWFMLG1CQUNiTSxhQUFhTCxtQkFDYk0sU0FBU0gsV0FBV0ksZ0JBQWdCLENBQUNILGFBQ3JDSSxTQUFTTCxXQUFXSSxnQkFBZ0IsQ0FBQ0Y7WUFFdkNqQixXQUFZa0IsU0FBU0U7WUFFckI7UUFDRjtJQUNGO0lBRUEsSUFBSXBCLGFBQWEsTUFBTTtRQUNyQkEsV0FBWUksMkJBQTJCRTtJQUN6QztJQUVBLE9BQU9OO0FBQ1Q7QUFFTyxTQUFTSCwwQkFBMEJ3QixrQkFBa0IsRUFBRUMsVUFBVTtJQUN0RSxJQUFJQSxlQUFlQyxXQUFXO1FBQzVCRCxhQUFhRCxvQkFBb0IsR0FBRztRQUVwQ0EscUJBQXFCLFNBQUNHO21CQUFjQyxhQUFJO1dBQUcsR0FBRztJQUNoRDtJQUVBLElBQU1DLFFBQVFKLFlBQVksR0FBRztJQUU3QkssV0FBV0Q7SUFFWCxJQUFNRixZQUFZLE1BQ1pJLFFBQVFQLG1CQUFtQkcsWUFDM0JLLGNBQWNELE1BQU1FLFdBQVcsSUFDL0JDLHFCQUFxQixJQUFJQztJQUUvQlYsV0FBV1csT0FBTyxDQUFDLFNBQUNUO1FBQ2xCLElBQUlULGFBQWFjLGFBQWEsR0FBRztRQUVqQ0wsVUFBVVUsZ0JBQWdCLENBQUMsU0FBQ0M7WUFDMUIsSUFBTVgsY0FBWVcsY0FDWkMsT0FBT0wsbUJBQW1CTSxHQUFHLENBQUNiLGdCQUFjO1lBRWxELElBQUlZLFNBQVMsTUFBTTtnQkFDakJyQixhQUFhcUIsTUFBTyxHQUFHO2dCQUV2QixPQUFPO1lBQ1Q7UUFDRjtRQUVBLElBQU1SLFFBQVFQLG1CQUFtQkcsWUFDM0JZLE9BQU9SLE1BQU1VLGFBQWEsQ0FBQ2QsWUFDM0JlLG9CQUFvQkgsTUFBTSxHQUFHO1FBRW5DckIsV0FBV3lCLGVBQWUsQ0FBQ0Q7UUFFM0JSLG1CQUFtQlUsR0FBRyxDQUFDakIsV0FBV1k7SUFDcEM7SUFFQSxPQUFPUDtBQUNUO0lBRUEsV0FBZTtJQUNiakMsWUFBQUE7SUFDQUMsMkJBQUFBO0FBQ0Y7QUFFQSxTQUFTOEIsV0FBV0QsS0FBSztJQUN2QkEsTUFBTWdCLElBQUksQ0FBQyxTQUFDNUMsT0FBT0M7UUFDakIsSUFBTTRDLHFCQUFxQi9DLFdBQVdFLE9BQU9DLFFBQ3ZDNkMsU0FBU0QscUJBQ0UsQ0FBQyxJQUNDLENBQUM7UUFFcEIsT0FBT0M7SUFDVDtBQUNGO0FBRUEsU0FBUzFDLHNCQUFzQmtDLElBQUk7SUFDakMsSUFBTVMsZ0JBQWdCVCxLQUFLVSxnQkFBZ0I7SUFFM0NELGNBQWNFLE9BQU8sQ0FBQ1g7SUFFdEJTLGNBQWNHLE9BQU87SUFFckIsT0FBT0g7QUFDVCJ9
|
package/package.json
CHANGED
package/src/node.js
CHANGED
package/src/utilities/node.js
CHANGED
|
@@ -2,6 +2,41 @@
|
|
|
2
2
|
|
|
3
3
|
import Node from "../node";
|
|
4
4
|
|
|
5
|
+
export function isLessThan(nodeA, nodeB) {
|
|
6
|
+
let lessThan = null;
|
|
7
|
+
|
|
8
|
+
const nodeAAncestorNodes = ancestorNodesFromNode(nodeA),
|
|
9
|
+
nodeBAncestorNodes = ancestorNodesFromNode(nodeB),
|
|
10
|
+
nodeAAncestorNodesLength = nodeAAncestorNodes.length,
|
|
11
|
+
nodeBAncestorNodesLength = nodeBAncestorNodes.length,
|
|
12
|
+
minimumAncestorNodesLength = Math.min(nodeAAncestorNodesLength, nodeBAncestorNodesLength);
|
|
13
|
+
|
|
14
|
+
for (let index = 0; index < minimumAncestorNodesLength; index++) {
|
|
15
|
+
const nodeAAncestorNode = nodeAAncestorNodes[index],
|
|
16
|
+
nodeBAncestorNode = nodeBAncestorNodes[index];
|
|
17
|
+
|
|
18
|
+
if (nodeAAncestorNode !== nodeBAncestorNode) {
|
|
19
|
+
const parentIndex = index - 1,
|
|
20
|
+
nodeAAncestorNodeParentNode = nodeAAncestorNodes[parentIndex],
|
|
21
|
+
parentNode = nodeAAncestorNodeParentNode, ///
|
|
22
|
+
childNodeA = nodeAAncestorNode, ///
|
|
23
|
+
childNodeB = nodeBAncestorNode, ///
|
|
24
|
+
indexA = parentNode.indexOfChildNode(childNodeA),
|
|
25
|
+
indexB = parentNode.indexOfChildNode(childNodeB);
|
|
26
|
+
|
|
27
|
+
lessThan = (indexA < indexB);
|
|
28
|
+
|
|
29
|
+
break;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
if (lessThan === null) {
|
|
34
|
+
lessThan = (nodeAAncestorNodesLength < nodeBAncestorNodesLength);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return lessThan;
|
|
38
|
+
}
|
|
39
|
+
|
|
5
40
|
export function topmostNodeFromOuterNodes(ClassFromOuterNode, outerNodes) {
|
|
6
41
|
if (outerNodes === undefined) {
|
|
7
42
|
outerNodes = ClassFromOuterNode; ///
|
|
@@ -45,6 +80,7 @@ export function topmostNodeFromOuterNodes(ClassFromOuterNode, outerNodes) {
|
|
|
45
80
|
}
|
|
46
81
|
|
|
47
82
|
export default {
|
|
83
|
+
isLessThan,
|
|
48
84
|
topmostNodeFromOuterNodes
|
|
49
85
|
};
|
|
50
86
|
|
|
@@ -59,41 +95,6 @@ function orderNodes(nodes) {
|
|
|
59
95
|
});
|
|
60
96
|
}
|
|
61
97
|
|
|
62
|
-
function isLessThan(nodeA, nodeB) {
|
|
63
|
-
let lessThan = null;
|
|
64
|
-
|
|
65
|
-
const nodeAAncestorNodes = ancestorNodesFromNode(nodeA),
|
|
66
|
-
nodeBAncestorNodes = ancestorNodesFromNode(nodeB),
|
|
67
|
-
nodeAAncestorNodesLength = nodeAAncestorNodes.length,
|
|
68
|
-
nodeBAncestorNodesLength = nodeBAncestorNodes.length,
|
|
69
|
-
minimumAncestorNodesLength = Math.min(nodeAAncestorNodesLength, nodeBAncestorNodesLength);
|
|
70
|
-
|
|
71
|
-
for (let index = 0; index < minimumAncestorNodesLength; index++) {
|
|
72
|
-
const nodeAAncestorNode = nodeAAncestorNodes[index],
|
|
73
|
-
nodeBAncestorNode = nodeBAncestorNodes[index];
|
|
74
|
-
|
|
75
|
-
if (nodeAAncestorNode !== nodeBAncestorNode) {
|
|
76
|
-
const parentIndex = index - 1,
|
|
77
|
-
nodeAAncestorNodeParentNode = nodeAAncestorNodes[parentIndex],
|
|
78
|
-
parentNode = nodeAAncestorNodeParentNode, ///
|
|
79
|
-
childNodeA = nodeAAncestorNode, ///
|
|
80
|
-
childNodeB = nodeBAncestorNode, ///
|
|
81
|
-
indexA = parentNode.indexOfChildNode(childNodeA),
|
|
82
|
-
indexB = parentNode.indexOfChildNode(childNodeB);
|
|
83
|
-
|
|
84
|
-
lessThan = (indexA < indexB);
|
|
85
|
-
|
|
86
|
-
break;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
if (lessThan === null) {
|
|
91
|
-
lessThan = (nodeAAncestorNodesLength < nodeBAncestorNodesLength);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
return lessThan;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
98
|
function ancestorNodesFromNode(node) {
|
|
98
99
|
const ancestorNodes = node.getAncestorNodes();
|
|
99
100
|
|