occam-dom 6.1.2 → 6.1.4
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/lib/index.js +5 -1
- package/lib/node.js +30 -1
- package/lib/utilities/incremental.js +129 -0
- package/package.json +1 -1
- package/src/index.js +1 -0
- package/src/node.js +42 -0
- package/src/utilities/incremental.js +150 -0
package/lib/index.js
CHANGED
|
@@ -18,6 +18,9 @@ _export(exports, {
|
|
|
18
18
|
get domUtilities () {
|
|
19
19
|
return _dom.default;
|
|
20
20
|
},
|
|
21
|
+
get incrementalUtilities () {
|
|
22
|
+
return _incremental.default;
|
|
23
|
+
},
|
|
21
24
|
get nodeUtilities () {
|
|
22
25
|
return _node1.default;
|
|
23
26
|
},
|
|
@@ -34,10 +37,11 @@ const _dom = /*#__PURE__*/ _interop_require_default(require("./utilities/dom"));
|
|
|
34
37
|
const _node1 = /*#__PURE__*/ _interop_require_default(require("./utilities/node"));
|
|
35
38
|
const _query = /*#__PURE__*/ _interop_require_default(require("./utilities/query"));
|
|
36
39
|
const _transform1 = /*#__PURE__*/ _interop_require_default(require("./utilities/transform"));
|
|
40
|
+
const _incremental = /*#__PURE__*/ _interop_require_default(require("./utilities/incremental"));
|
|
37
41
|
function _interop_require_default(obj) {
|
|
38
42
|
return obj && obj.__esModule ? obj : {
|
|
39
43
|
default: obj
|
|
40
44
|
};
|
|
41
45
|
}
|
|
42
46
|
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBOb2RlIH0gZnJvbSBcIi4vbm9kZVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUcmFuc2Zvcm0gfSBmcm9tIFwiLi90cmFuc2Zvcm1cIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZG9tVXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2RvbVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBub2RlVXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL25vZGVcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgcXVlcnlVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvcXVlcnlcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgdHJhbnNmb3JtVXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3RyYW5zZm9ybVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBpbmNyZW1lbnRhbFV0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9pbmNyZW1lbnRhbFwiO1xuIl0sIm5hbWVzIjpbIk5vZGUiLCJUcmFuc2Zvcm0iLCJkb21VdGlsaXRpZXMiLCJpbmNyZW1lbnRhbFV0aWxpdGllcyIsIm5vZGVVdGlsaXRpZXMiLCJxdWVyeVV0aWxpdGllcyIsInRyYW5zZm9ybVV0aWxpdGllcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBRW9CQTtlQUFBQSxhQUFJOztRQUNKQztlQUFBQSxrQkFBUzs7UUFDVEM7ZUFBQUEsWUFBWTs7UUFJWkM7ZUFBQUEsb0JBQW9COztRQUhwQkM7ZUFBQUEsY0FBYTs7UUFDYkM7ZUFBQUEsY0FBYzs7UUFDZEM7ZUFBQUEsbUJBQWtCOzs7NkRBTE47a0VBQ0s7NERBQ0c7OERBQ0M7OERBQ0M7bUVBQ0k7b0VBQ0UifQ==
|
package/lib/node.js
CHANGED
|
@@ -42,6 +42,35 @@ class Node {
|
|
|
42
42
|
const startIndex = 0, deleteCount = Infinity, addedChildNodes = childNodes; ///
|
|
43
43
|
this.spliceChildNodes(startIndex, deleteCount, addedChildNodes);
|
|
44
44
|
}
|
|
45
|
+
getDescendantNodes(descendantNodes = []) {
|
|
46
|
+
const childNodes = this.getChildNodes();
|
|
47
|
+
childNodes.forEach((childNode)=>{
|
|
48
|
+
const descendantNode = childNode; ///
|
|
49
|
+
descendantNodes.push(descendantNode);
|
|
50
|
+
childNode.getDescendantNodes(descendantNodes);
|
|
51
|
+
});
|
|
52
|
+
return descendantNodes;
|
|
53
|
+
}
|
|
54
|
+
retrieveNode(callback) {
|
|
55
|
+
let node = null;
|
|
56
|
+
if (node === null) {
|
|
57
|
+
const childNodes = this.getChildNodes();
|
|
58
|
+
childNodes.some((childNode)=>{
|
|
59
|
+
node = childNode.retrieveNode(callback);
|
|
60
|
+
if (node !== null) {
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
if (node === null) {
|
|
66
|
+
node = this;
|
|
67
|
+
const result = callback(node);
|
|
68
|
+
if (!result) {
|
|
69
|
+
node = null;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return node;
|
|
73
|
+
}
|
|
45
74
|
isLessThan(node) {
|
|
46
75
|
const nodeA = this, nodeB = node, lessThan = (0, _node1.isLessThan)(nodeA, nodeB);
|
|
47
76
|
return lessThan;
|
|
@@ -127,4 +156,4 @@ function cloneChildNodes(childNodes) {
|
|
|
127
156
|
return childNodes;
|
|
128
157
|
}
|
|
129
158
|
|
|
130
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ub2RlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBub2RlTWl4aW5zIH0gZnJvbSBcIm9jY2FtLXBhcnNlcnNcIjtcblxuaW1wb3J0IE5vZGVQYXJzZVRyZWUgZnJvbSBcIi4vcGFyc2VUcmVlL25vZGVcIjtcblxuaW1wb3J0IHsgRU1QVFlfU1RSSU5HIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBpc0xlc3NUaGFuLCBpc0dyZWF0ZXJUaGFuLCBpc0xlc3NUaGFuT3JFcXVhbFRvLCBpc0dyZWF0ZXJUaGFuT3JFcXVhbFRvIH0gZnJvbSBcIi4vdXRpbGl0aWVzL25vZGVcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTm9kZSB7XG4gIGNvbnN0cnVjdG9yKG91dGVyTm9kZSwgcGFyZW50Tm9kZSwgY2hpbGROb2Rlcykge1xuICAgIHRoaXMub3V0ZXJOb2RlID0gb3V0ZXJOb2RlO1xuICAgIHRoaXMucGFyZW50Tm9kZSA9IHBhcmVudE5vZGU7XG4gICAgdGhpcy5jaGlsZE5vZGVzID0gY2hpbGROb2RlcztcbiAgfVxuXG4gIGdldE91dGVyTm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5vdXRlck5vZGU7XG4gIH1cblxuICBnZXRQYXJlbnROb2RlKCkge1xuICAgIHJldHVybiB0aGlzLnBhcmVudE5vZGU7XG4gIH1cblxuICBnZXRDaGlsZE5vZGVzKCkge1xuICAgIHJldHVybiB0aGlzLmNoaWxkTm9kZXM7XG4gIH1cblxuICBzZXRPdXRlck5vZGUob3V0ZXJOb2RlKSB7XG4gICAgdGhpcy5vdXRlck5vZGUgPSBvdXRlck5vZGU7XG4gIH1cblxuICBzZXRQYXJlbnROb2RlKHBhcmVudE5vZGUpIHtcbiAgICB0aGlzLnBhcmVudE5vZGUgPSBwYXJlbnROb2RlO1xuICB9XG5cbiAgc2V0Q2hpbGROb2RlcyhjaGlsZE5vZGVzKSB7XG4gICAgY29uc3Qgc3RhcnRJbmRleCA9IDAsXG4gICAgICAgICAgZGVsZXRlQ291bnQgPSBJbmZpbml0eSxcbiAgICAgICAgICBhZGRlZENoaWxkTm9kZXMgPSBjaGlsZE5vZGVzOyAgLy8vXG5cbiAgICB0aGlzLnNwbGljZUNoaWxkTm9kZXMoc3RhcnRJbmRleCwgZGVsZXRlQ291bnQsIGFkZGVkQ2hpbGROb2Rlcyk7XG4gIH1cblxuICBpc0xlc3NUaGFuKG5vZGUpIHtcbiAgICBjb25zdCBub2RlQSA9IHRoaXMsIC8vL1xuICAgICAgICAgIG5vZGVCID0gbm9kZSwgLy8vXG4gICAgICAgICAgbGVzc1RoYW4gPSBpc0xlc3NUaGFuKG5vZGVBLCBub2RlQik7XG5cbiAgICByZXR1cm4gbGVzc1RoYW47XG4gIH1cblxuICBpc0dyZWF0ZXJUaGFuKG5vZGUpIHtcbiAgICBjb25zdCBub2RlQSA9IHRoaXMsIC8vL1xuICAgICAgICAgIG5vZGVCID0gbm9kZSwgLy8vXG4gICAgICAgICAgZ3JlYXRlclRoYW4gPSBpc0dyZWF0ZXJUaGFuKG5vZGVBLCBub2RlQik7XG5cbiAgICByZXR1cm4gZ3JlYXRlclRoYW47XG4gIH1cblxuICBpc0xlc3NUaGFuT3JFcXVhbFRvKG5vZGUpIHtcbiAgICBjb25zdCBub2RlQSA9IHRoaXMsIC8vL1xuICAgICAgICAgIG5vZGVCID0gbm9kZSwgLy8vXG4gICAgICAgICAgbGVzc1RoYW5PckVxdWFsVG8gPSBpc0xlc3NUaGFuT3JFcXVhbFRvKG5vZGVBLCBub2RlQik7XG5cbiAgICByZXR1cm4gbGVzc1RoYW5PckVxdWFsVG87XG4gIH1cblxuICBpc0dyZWF0ZXJUaGFuT3JFcXVhbFRvKG5vZGUpIHtcbiAgICBjb25zdCBub2RlQSA9IHRoaXMsIC8vL1xuICAgICAgICBub2RlQiA9IG5vZGUsIC8vL1xuICAgICAgICBncmVhdGVyVGhhbk9yRXF1YWxUbyA9IGlzR3JlYXRlclRoYW5PckVxdWFsVG8obm9kZUEsIG5vZGVCKTtcblxuICAgIHJldHVybiBncmVhdGVyVGhhbk9yRXF1YWxUbztcbiAgfVxuXG4gIG1hdGNoT3V0ZXJOb2RlKG91dGVyTm9kZSkge1xuICAgIGNvbnN0IG91dGVyTm9kZU1hdGNoZXMgPSAodGhpcy5vdXRlck5vZGUgPT09IG91dGVyTm9kZSk7XG5cbiAgICByZXR1cm4gb3V0ZXJOb2RlTWF0Y2hlcztcbiAgfVxuXG4gIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5mb3JFYWNoQ2hpbGROb2RlKChjaGlsZE5vZGUpID0+IHtcbiAgICAgIGNoaWxkTm9kZS5kZXN0cm95KCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLm91dGVyTm9kZSA9IG51bGw7XG4gICAgdGhpcy5wYXJlbnROb2RlID0gbnVsbDtcbiAgICB0aGlzLmNoaWxkTm9kZXMgPSBudWxsO1xuICB9XG5cbiAgYXNTdHJpbmcoKSB7XG4gICAgbGV0IHN0cmluZyA9IEVNUFRZX1NUUklORztcblxuICAgIGlmICh0aGlzLm91dGVyTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgbm9kZVRlcm1pbmFsTm9kZSA9IHRoaXMub3V0ZXJOb2RlLmlzVGVybWluYWxOb2RlKCk7XG5cbiAgICAgIGlmIChub2RlVGVybWluYWxOb2RlKSB7XG4gICAgICAgIGNvbnN0IHRlcm1pbmFsTm9kZSA9IHRoaXMub3V0ZXJOb2RlLFxuICAgICAgICAgICAgICB0eXBlID0gdGVybWluYWxOb2RlLmdldFR5cGUoKSxcbiAgICAgICAgICAgICAgY29udGVudCA9IHRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCk7XG5cbiAgICAgICAgc3RyaW5nID0gYFwiJHtjb250ZW50fVwiIFske3R5cGV9XWA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSB0aGlzLm91dGVyTm9kZSxcbiAgICAgICAgICAgICAgcnVsZU5hbWUgPSBub25UZXJtaW5hbE5vZGUuZ2V0UnVsZU5hbWUoKTtcblxuICAgICAgICBzdHJpbmcgPSBydWxlTmFtZTsgIC8vL1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICBhc1BhcnNlVHJlZSgpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcywgIC8vL1xuICAgICAgICAgIG5vZGVQYXJzZVRyZWUgPSBOb2RlUGFyc2VUcmVlLmZyb21Ob2RlKG5vZGUpLFxuICAgICAgICAgIHBhcnNlVHJlZSA9IG5vZGVQYXJzZVRyZWU7ICAvLy9cblxuICAgIHJldHVybiBwYXJzZVRyZWU7XG4gIH1cblxuICBjbG9uZSguLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBDbGFzcyA9IHRoaXMuY29uc3RydWN0b3IsXG4gICAgICAgICAgb3V0ZXJOb2RlID0gdGhpcy5vdXRlck5vZGUsXG4gICAgICAgICAgcGFyZW50Tm9kZSA9IG51bGwsXG4gICAgICAgICAgY2hpbGROb2RlcyA9IGNsb25lQ2hpbGROb2Rlcyh0aGlzLmNoaWxkTm9kZXMpLFxuICAgICAgICAgIG5vZGUgPSBuZXcgQ2xhc3Mob3V0ZXJOb2RlLCBwYXJlbnROb2RlLCBjaGlsZE5vZGVzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuXG4gICAgbm9kZS5zZXRDaGlsZE5vZGVzUGFyZW50Tm9kZSgpO1xuXG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vdGhpbmcoQ2xhc3MsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGlmIChDbGFzcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBDbGFzcyA9IE5vZGU7IC8vL1xuICAgIH1cblxuICAgIGNvbnN0IG91dGVyTm9kZSA9IG51bGwsXG4gICAgICAgICAgcGFyZW50Tm9kZSA9IG51bGwsXG4gICAgICAgICAgY2hpbGROb2RlcyA9IFtdLFxuICAgICAgICAgIG5vZGUgPSBuZXcgQ2xhc3Mob3V0ZXJOb2RlLCBwYXJlbnROb2RlLCBjaGlsZE5vZGVzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuXG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbU91dGVyTm9kZShDbGFzcywgb3V0ZXJOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBpZiAob3V0ZXJOb2RlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIG91dGVyTm9kZSA9IENsYXNzOyAgLy8vXG5cbiAgICAgIENsYXNzID0gTm9kZTsgLy8vXG4gICAgfVxuXG4gICAgY29uc3QgcGFyZW50Tm9kZSA9IG51bGwsXG4gICAgICAgICAgY2hpbGROb2RlcyA9IFtdLFxuICAgICAgICAgIG5vZGUgPSBuZXcgQ2xhc3Mob3V0ZXJOb2RlLCBwYXJlbnROb2RlLCBjaGlsZE5vZGVzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuXG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbUNoaWxkTm9kZXMoQ2xhc3MsIGNoaWxkTm9kZXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGlmIChjaGlsZE5vZGVzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNoaWxkTm9kZXMgPSBDbGFzczsgIC8vL1xuXG4gICAgICBDbGFzcyA9IE5vZGU7IC8vL1xuICAgIH1cblxuICAgIGNvbnN0IG91dGVyTm9kZSA9IG51bGwsXG4gICAgICAgICAgcGFyZW50Tm9kZSA9IG51bGwsXG4gICAgICAgICAgbm9kZSA9IG5ldyBDbGFzcyhvdXRlck5vZGUsIHBhcmVudE5vZGUsIGNoaWxkTm9kZXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICBub2RlLnNldENoaWxkTm9kZXNQYXJlbnROb2RlKCk7XG5cbiAgICByZXR1cm4gbm9kZTtcbiAgfVxufVxuXG5PYmplY3QuYXNzaWduKE5vZGUucHJvdG90eXBlLCBub2RlTWl4aW5zKTtcblxuZnVuY3Rpb24gY2xvbmVDaGlsZE5vZGVzKGNoaWxkTm9kZXMpIHtcbiAgY2hpbGROb2RlcyA9IGNoaWxkTm9kZXMubWFwKChjaGlsZE5vZGUpID0+IHsgIC8vL1xuICAgIGNoaWxkTm9kZSA9IGNoaWxkTm9kZS5jbG9uZSgpOyAgLy8vXG5cbiAgICByZXR1cm4gY2hpbGROb2RlO1xuICB9KTtcblxuICByZXR1cm4gY2hpbGROb2Rlcztcbn1cbiJdLCJuYW1lcyI6WyJOb2RlIiwib3V0ZXJOb2RlIiwicGFyZW50Tm9kZSIsImNoaWxkTm9kZXMiLCJnZXRPdXRlck5vZGUiLCJnZXRQYXJlbnROb2RlIiwiZ2V0Q2hpbGROb2RlcyIsInNldE91dGVyTm9kZSIsInNldFBhcmVudE5vZGUiLCJzZXRDaGlsZE5vZGVzIiwic3RhcnRJbmRleCIsImRlbGV0ZUNvdW50IiwiSW5maW5pdHkiLCJhZGRlZENoaWxkTm9kZXMiLCJzcGxpY2VDaGlsZE5vZGVzIiwiaXNMZXNzVGhhbiIsIm5vZGUiLCJub2RlQSIsIm5vZGVCIiwibGVzc1RoYW4iLCJpc0dyZWF0ZXJUaGFuIiwiZ3JlYXRlclRoYW4iLCJpc0xlc3NUaGFuT3JFcXVhbFRvIiwibGVzc1RoYW5PckVxdWFsVG8iLCJpc0dyZWF0ZXJUaGFuT3JFcXVhbFRvIiwiZ3JlYXRlclRoYW5PckVxdWFsVG8iLCJtYXRjaE91dGVyTm9kZSIsIm91dGVyTm9kZU1hdGNoZXMiLCJkZXN0cm95IiwiZm9yRWFjaENoaWxkTm9kZSIsImNoaWxkTm9kZSIsImFzU3RyaW5nIiwic3RyaW5nIiwiRU1QVFlfU1RSSU5HIiwibm9kZVRlcm1pbmFsTm9kZSIsImlzVGVybWluYWxOb2RlIiwidGVybWluYWxOb2RlIiwidHlwZSIsImdldFR5cGUiLCJjb250ZW50IiwiZ2V0Q29udGVudCIsIm5vblRlcm1pbmFsTm9kZSIsInJ1bGVOYW1lIiwiZ2V0UnVsZU5hbWUiLCJhc1BhcnNlVHJlZSIsIm5vZGVQYXJzZVRyZWUiLCJOb2RlUGFyc2VUcmVlIiwiZnJvbU5vZGUiLCJwYXJzZVRyZWUiLCJjbG9uZSIsInJlbWFpbmluZ0FyZ3VtZW50cyIsIkNsYXNzIiwiY2xvbmVDaGlsZE5vZGVzIiwic2V0Q2hpbGROb2Rlc1BhcmVudE5vZGUiLCJmcm9tTm90aGluZyIsInVuZGVmaW5lZCIsImZyb21PdXRlck5vZGUiLCJmcm9tQ2hpbGROb2RlcyIsIk9iamVjdCIsImFzc2lnbiIsInByb3RvdHlwZSIsIm5vZGVNaXhpbnMi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
|
|
159
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ub2RlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBub2RlTWl4aW5zIH0gZnJvbSBcIm9jY2FtLXBhcnNlcnNcIjtcblxuaW1wb3J0IE5vZGVQYXJzZVRyZWUgZnJvbSBcIi4vcGFyc2VUcmVlL25vZGVcIjtcblxuaW1wb3J0IHsgRU1QVFlfU1RSSU5HIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBpc0xlc3NUaGFuLCBpc0dyZWF0ZXJUaGFuLCBpc0xlc3NUaGFuT3JFcXVhbFRvLCBpc0dyZWF0ZXJUaGFuT3JFcXVhbFRvIH0gZnJvbSBcIi4vdXRpbGl0aWVzL25vZGVcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTm9kZSB7XG4gIGNvbnN0cnVjdG9yKG91dGVyTm9kZSwgcGFyZW50Tm9kZSwgY2hpbGROb2Rlcykge1xuICAgIHRoaXMub3V0ZXJOb2RlID0gb3V0ZXJOb2RlO1xuICAgIHRoaXMucGFyZW50Tm9kZSA9IHBhcmVudE5vZGU7XG4gICAgdGhpcy5jaGlsZE5vZGVzID0gY2hpbGROb2RlcztcbiAgfVxuXG4gIGdldE91dGVyTm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5vdXRlck5vZGU7XG4gIH1cblxuICBnZXRQYXJlbnROb2RlKCkge1xuICAgIHJldHVybiB0aGlzLnBhcmVudE5vZGU7XG4gIH1cblxuICBnZXRDaGlsZE5vZGVzKCkge1xuICAgIHJldHVybiB0aGlzLmNoaWxkTm9kZXM7XG4gIH1cblxuICBzZXRPdXRlck5vZGUob3V0ZXJOb2RlKSB7XG4gICAgdGhpcy5vdXRlck5vZGUgPSBvdXRlck5vZGU7XG4gIH1cblxuICBzZXRQYXJlbnROb2RlKHBhcmVudE5vZGUpIHtcbiAgICB0aGlzLnBhcmVudE5vZGUgPSBwYXJlbnROb2RlO1xuICB9XG5cbiAgc2V0Q2hpbGROb2RlcyhjaGlsZE5vZGVzKSB7XG4gICAgY29uc3Qgc3RhcnRJbmRleCA9IDAsXG4gICAgICAgICAgZGVsZXRlQ291bnQgPSBJbmZpbml0eSxcbiAgICAgICAgICBhZGRlZENoaWxkTm9kZXMgPSBjaGlsZE5vZGVzOyAgLy8vXG5cbiAgICB0aGlzLnNwbGljZUNoaWxkTm9kZXMoc3RhcnRJbmRleCwgZGVsZXRlQ291bnQsIGFkZGVkQ2hpbGROb2Rlcyk7XG4gIH1cblxuICBnZXREZXNjZW5kYW50Tm9kZXMoZGVzY2VuZGFudE5vZGVzID0gW10pIHtcbiAgICBjb25zdCBjaGlsZE5vZGVzID0gdGhpcy5nZXRDaGlsZE5vZGVzKCk7XG5cbiAgICBjaGlsZE5vZGVzLmZvckVhY2goKGNoaWxkTm9kZSkgPT4ge1xuICAgICAgY29uc3QgZGVzY2VuZGFudE5vZGUgPSBjaGlsZE5vZGU7IC8vL1xuXG4gICAgICBkZXNjZW5kYW50Tm9kZXMucHVzaChkZXNjZW5kYW50Tm9kZSk7XG5cbiAgICAgIGNoaWxkTm9kZS5nZXREZXNjZW5kYW50Tm9kZXMoZGVzY2VuZGFudE5vZGVzKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBkZXNjZW5kYW50Tm9kZXM7XG4gIH1cblxuICByZXRyaWV2ZU5vZGUoY2FsbGJhY2spIHtcbiAgICBsZXQgbm9kZSA9IG51bGw7XG5cbiAgICBpZiAobm9kZSA9PT0gbnVsbCkge1xuICAgICAgY29uc3QgY2hpbGROb2RlcyA9IHRoaXMuZ2V0Q2hpbGROb2RlcygpO1xuXG4gICAgICBjaGlsZE5vZGVzLnNvbWUoKGNoaWxkTm9kZSkgPT4ge1xuICAgICAgICBub2RlID0gY2hpbGROb2RlLnJldHJpZXZlTm9kZShjYWxsYmFjayk7XG5cbiAgICAgICAgaWYgKG5vZGUgIT09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKG5vZGUgPT09IG51bGwpIHtcbiAgICAgIG5vZGUgPSB0aGlzO1xuXG4gICAgICBjb25zdCByZXN1bHQgPSBjYWxsYmFjayhub2RlKTtcblxuICAgICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgICAgbm9kZSA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cblxuICBpc0xlc3NUaGFuKG5vZGUpIHtcbiAgICBjb25zdCBub2RlQSA9IHRoaXMsIC8vL1xuICAgICAgICAgIG5vZGVCID0gbm9kZSwgLy8vXG4gICAgICAgICAgbGVzc1RoYW4gPSBpc0xlc3NUaGFuKG5vZGVBLCBub2RlQik7XG5cbiAgICByZXR1cm4gbGVzc1RoYW47XG4gIH1cblxuICBpc0dyZWF0ZXJUaGFuKG5vZGUpIHtcbiAgICBjb25zdCBub2RlQSA9IHRoaXMsIC8vL1xuICAgICAgICAgIG5vZGVCID0gbm9kZSwgLy8vXG4gICAgICAgICAgZ3JlYXRlclRoYW4gPSBpc0dyZWF0ZXJUaGFuKG5vZGVBLCBub2RlQik7XG5cbiAgICByZXR1cm4gZ3JlYXRlclRoYW47XG4gIH1cblxuICBpc0xlc3NUaGFuT3JFcXVhbFRvKG5vZGUpIHtcbiAgICBjb25zdCBub2RlQSA9IHRoaXMsIC8vL1xuICAgICAgICAgIG5vZGVCID0gbm9kZSwgLy8vXG4gICAgICAgICAgbGVzc1RoYW5PckVxdWFsVG8gPSBpc0xlc3NUaGFuT3JFcXVhbFRvKG5vZGVBLCBub2RlQik7XG5cbiAgICByZXR1cm4gbGVzc1RoYW5PckVxdWFsVG87XG4gIH1cblxuICBpc0dyZWF0ZXJUaGFuT3JFcXVhbFRvKG5vZGUpIHtcbiAgICBjb25zdCBub2RlQSA9IHRoaXMsIC8vL1xuICAgICAgICBub2RlQiA9IG5vZGUsIC8vL1xuICAgICAgICBncmVhdGVyVGhhbk9yRXF1YWxUbyA9IGlzR3JlYXRlclRoYW5PckVxdWFsVG8obm9kZUEsIG5vZGVCKTtcblxuICAgIHJldHVybiBncmVhdGVyVGhhbk9yRXF1YWxUbztcbiAgfVxuXG4gIG1hdGNoT3V0ZXJOb2RlKG91dGVyTm9kZSkge1xuICAgIGNvbnN0IG91dGVyTm9kZU1hdGNoZXMgPSAodGhpcy5vdXRlck5vZGUgPT09IG91dGVyTm9kZSk7XG5cbiAgICByZXR1cm4gb3V0ZXJOb2RlTWF0Y2hlcztcbiAgfVxuXG4gIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5mb3JFYWNoQ2hpbGROb2RlKChjaGlsZE5vZGUpID0+IHtcbiAgICAgIGNoaWxkTm9kZS5kZXN0cm95KCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLm91dGVyTm9kZSA9IG51bGw7XG4gICAgdGhpcy5wYXJlbnROb2RlID0gbnVsbDtcbiAgICB0aGlzLmNoaWxkTm9kZXMgPSBudWxsO1xuICB9XG5cbiAgYXNTdHJpbmcoKSB7XG4gICAgbGV0IHN0cmluZyA9IEVNUFRZX1NUUklORztcblxuICAgIGlmICh0aGlzLm91dGVyTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgbm9kZVRlcm1pbmFsTm9kZSA9IHRoaXMub3V0ZXJOb2RlLmlzVGVybWluYWxOb2RlKCk7XG5cbiAgICAgIGlmIChub2RlVGVybWluYWxOb2RlKSB7XG4gICAgICAgIGNvbnN0IHRlcm1pbmFsTm9kZSA9IHRoaXMub3V0ZXJOb2RlLFxuICAgICAgICAgICAgICB0eXBlID0gdGVybWluYWxOb2RlLmdldFR5cGUoKSxcbiAgICAgICAgICAgICAgY29udGVudCA9IHRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCk7XG5cbiAgICAgICAgc3RyaW5nID0gYFwiJHtjb250ZW50fVwiIFske3R5cGV9XWA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSB0aGlzLm91dGVyTm9kZSxcbiAgICAgICAgICAgICAgcnVsZU5hbWUgPSBub25UZXJtaW5hbE5vZGUuZ2V0UnVsZU5hbWUoKTtcblxuICAgICAgICBzdHJpbmcgPSBydWxlTmFtZTsgIC8vL1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICBhc1BhcnNlVHJlZSgpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcywgIC8vL1xuICAgICAgICAgIG5vZGVQYXJzZVRyZWUgPSBOb2RlUGFyc2VUcmVlLmZyb21Ob2RlKG5vZGUpLFxuICAgICAgICAgIHBhcnNlVHJlZSA9IG5vZGVQYXJzZVRyZWU7ICAvLy9cblxuICAgIHJldHVybiBwYXJzZVRyZWU7XG4gIH1cblxuICBjbG9uZSguLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBDbGFzcyA9IHRoaXMuY29uc3RydWN0b3IsXG4gICAgICAgICAgb3V0ZXJOb2RlID0gdGhpcy5vdXRlck5vZGUsXG4gICAgICAgICAgcGFyZW50Tm9kZSA9IG51bGwsXG4gICAgICAgICAgY2hpbGROb2RlcyA9IGNsb25lQ2hpbGROb2Rlcyh0aGlzLmNoaWxkTm9kZXMpLFxuICAgICAgICAgIG5vZGUgPSBuZXcgQ2xhc3Mob3V0ZXJOb2RlLCBwYXJlbnROb2RlLCBjaGlsZE5vZGVzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuXG4gICAgbm9kZS5zZXRDaGlsZE5vZGVzUGFyZW50Tm9kZSgpO1xuXG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vdGhpbmcoQ2xhc3MsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGlmIChDbGFzcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBDbGFzcyA9IE5vZGU7IC8vL1xuICAgIH1cblxuICAgIGNvbnN0IG91dGVyTm9kZSA9IG51bGwsXG4gICAgICAgICAgcGFyZW50Tm9kZSA9IG51bGwsXG4gICAgICAgICAgY2hpbGROb2RlcyA9IFtdLFxuICAgICAgICAgIG5vZGUgPSBuZXcgQ2xhc3Mob3V0ZXJOb2RlLCBwYXJlbnROb2RlLCBjaGlsZE5vZGVzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuXG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbU91dGVyTm9kZShDbGFzcywgb3V0ZXJOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBpZiAob3V0ZXJOb2RlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIG91dGVyTm9kZSA9IENsYXNzOyAgLy8vXG5cbiAgICAgIENsYXNzID0gTm9kZTsgLy8vXG4gICAgfVxuXG4gICAgY29uc3QgcGFyZW50Tm9kZSA9IG51bGwsXG4gICAgICAgICAgY2hpbGROb2RlcyA9IFtdLFxuICAgICAgICAgIG5vZGUgPSBuZXcgQ2xhc3Mob3V0ZXJOb2RlLCBwYXJlbnROb2RlLCBjaGlsZE5vZGVzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuXG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbUNoaWxkTm9kZXMoQ2xhc3MsIGNoaWxkTm9kZXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGlmIChjaGlsZE5vZGVzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNoaWxkTm9kZXMgPSBDbGFzczsgIC8vL1xuXG4gICAgICBDbGFzcyA9IE5vZGU7IC8vL1xuICAgIH1cblxuICAgIGNvbnN0IG91dGVyTm9kZSA9IG51bGwsXG4gICAgICAgICAgcGFyZW50Tm9kZSA9IG51bGwsXG4gICAgICAgICAgbm9kZSA9IG5ldyBDbGFzcyhvdXRlck5vZGUsIHBhcmVudE5vZGUsIGNoaWxkTm9kZXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICBub2RlLnNldENoaWxkTm9kZXNQYXJlbnROb2RlKCk7XG5cbiAgICByZXR1cm4gbm9kZTtcbiAgfVxufVxuXG5PYmplY3QuYXNzaWduKE5vZGUucHJvdG90eXBlLCBub2RlTWl4aW5zKTtcblxuZnVuY3Rpb24gY2xvbmVDaGlsZE5vZGVzKGNoaWxkTm9kZXMpIHtcbiAgY2hpbGROb2RlcyA9IGNoaWxkTm9kZXMubWFwKChjaGlsZE5vZGUpID0+IHsgIC8vL1xuICAgIGNoaWxkTm9kZSA9IGNoaWxkTm9kZS5jbG9uZSgpOyAgLy8vXG5cbiAgICByZXR1cm4gY2hpbGROb2RlO1xuICB9KTtcblxuICByZXR1cm4gY2hpbGROb2Rlcztcbn1cbiJdLCJuYW1lcyI6WyJOb2RlIiwib3V0ZXJOb2RlIiwicGFyZW50Tm9kZSIsImNoaWxkTm9kZXMiLCJnZXRPdXRlck5vZGUiLCJnZXRQYXJlbnROb2RlIiwiZ2V0Q2hpbGROb2RlcyIsInNldE91dGVyTm9kZSIsInNldFBhcmVudE5vZGUiLCJzZXRDaGlsZE5vZGVzIiwic3RhcnRJbmRleCIsImRlbGV0ZUNvdW50IiwiSW5maW5pdHkiLCJhZGRlZENoaWxkTm9kZXMiLCJzcGxpY2VDaGlsZE5vZGVzIiwiZ2V0RGVzY2VuZGFudE5vZGVzIiwiZGVzY2VuZGFudE5vZGVzIiwiZm9yRWFjaCIsImNoaWxkTm9kZSIsImRlc2NlbmRhbnROb2RlIiwicHVzaCIsInJldHJpZXZlTm9kZSIsImNhbGxiYWNrIiwibm9kZSIsInNvbWUiLCJyZXN1bHQiLCJpc0xlc3NUaGFuIiwibm9kZUEiLCJub2RlQiIsImxlc3NUaGFuIiwiaXNHcmVhdGVyVGhhbiIsImdyZWF0ZXJUaGFuIiwiaXNMZXNzVGhhbk9yRXF1YWxUbyIsImxlc3NUaGFuT3JFcXVhbFRvIiwiaXNHcmVhdGVyVGhhbk9yRXF1YWxUbyIsImdyZWF0ZXJUaGFuT3JFcXVhbFRvIiwibWF0Y2hPdXRlck5vZGUiLCJvdXRlck5vZGVNYXRjaGVzIiwiZGVzdHJveSIsImZvckVhY2hDaGlsZE5vZGUiLCJhc1N0cmluZyIsInN0cmluZyIsIkVNUFRZX1NUUklORyIsIm5vZGVUZXJtaW5hbE5vZGUiLCJpc1Rlcm1pbmFsTm9kZSIsInRlcm1pbmFsTm9kZSIsInR5cGUiLCJnZXRUeXBlIiwiY29udGVudCIsImdldENvbnRlbnQiLCJub25UZXJtaW5hbE5vZGUiLCJydWxlTmFtZSIsImdldFJ1bGVOYW1lIiwiYXNQYXJzZVRyZWUiLCJub2RlUGFyc2VUcmVlIiwiTm9kZVBhcnNlVHJlZSIsImZyb21Ob2RlIiwicGFyc2VUcmVlIiwiY2xvbmUiLCJyZW1haW5pbmdBcmd1bWVudHMiLCJDbGFzcyIsImNsb25lQ2hpbGROb2RlcyIsInNldENoaWxkTm9kZXNQYXJlbnROb2RlIiwiZnJvbU5vdGhpbmciLCJ1bmRlZmluZWQiLCJmcm9tT3V0ZXJOb2RlIiwiZnJvbUNoaWxkTm9kZXMiLCJPYmplY3QiLCJhc3NpZ24i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
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
get addedNodesFromAddedOuterNodes () {
|
|
13
|
+
return addedNodesFromAddedOuterNodes;
|
|
14
|
+
},
|
|
15
|
+
get default () {
|
|
16
|
+
return _default;
|
|
17
|
+
},
|
|
18
|
+
get findSiblingNodeIndex () {
|
|
19
|
+
return findSiblingNodeIndex;
|
|
20
|
+
},
|
|
21
|
+
get getDescendantNodes () {
|
|
22
|
+
return getDescendantNodes;
|
|
23
|
+
},
|
|
24
|
+
get removedNodesFromRemovedOuterNodes () {
|
|
25
|
+
return removedNodesFromRemovedOuterNodes;
|
|
26
|
+
},
|
|
27
|
+
get retrieveNode () {
|
|
28
|
+
return retrieveNode;
|
|
29
|
+
},
|
|
30
|
+
get retrieveParentNode () {
|
|
31
|
+
return retrieveParentNode;
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
const _necessary = require("necessary");
|
|
35
|
+
const _node = require("../utilities/node");
|
|
36
|
+
const _dom = require("../utilities/dom");
|
|
37
|
+
const { first, backwardsFindIndex } = _necessary.arrayUtilities;
|
|
38
|
+
function retrieveNode(outerNode, topmostNode) {
|
|
39
|
+
let node;
|
|
40
|
+
if (outerNode === null) {
|
|
41
|
+
node = topmostNode; ///
|
|
42
|
+
} else {
|
|
43
|
+
const ancestorNodes = outerNode.getAncestorNodes(), outerNodes = [
|
|
44
|
+
outerNode,
|
|
45
|
+
...ancestorNodes
|
|
46
|
+
];
|
|
47
|
+
node = topmostNode.retrieveNode((node)=>{
|
|
48
|
+
const outerNode = node.getOuterNode(), outerNodesIncludesOuterNode = outerNodes.includes(outerNode);
|
|
49
|
+
if (outerNodesIncludesOuterNode) {
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
return node;
|
|
55
|
+
}
|
|
56
|
+
function getDescendantNodes(nodes) {
|
|
57
|
+
const descendantNodes = nodes; ///
|
|
58
|
+
descendantNodes.forEach((descendantNode)=>{
|
|
59
|
+
descendantNode.getDescendantNodes(descendantNodes);
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
function retrieveParentNode(parentOuterNode, topmostNode) {
|
|
63
|
+
const outerNode = parentOuterNode, node = retrieveNode(outerNode, topmostNode), parentNode = node !== null ? node : topmostNode; ///
|
|
64
|
+
return parentNode;
|
|
65
|
+
}
|
|
66
|
+
function findSiblingNodeIndex(startOuterIndex, parentOuterNode, parentNode) {
|
|
67
|
+
let siblingNodeIndex = -1;
|
|
68
|
+
if (parentOuterNode !== null) {
|
|
69
|
+
const childNodes = parentNode.getChildNodes(), outerChildNodes = parentOuterNode.getChildNodes(), outerChildNodesLength = outerChildNodes.length;
|
|
70
|
+
if (outerChildNodesLength === startOuterIndex) {
|
|
71
|
+
const childNodesLength = childNodes.length;
|
|
72
|
+
siblingNodeIndex = childNodesLength - 1;
|
|
73
|
+
} else {
|
|
74
|
+
const startOuterChildNode = outerChildNodes[startOuterIndex];
|
|
75
|
+
siblingNodeIndex = backwardsFindIndex(childNodes, (childNode)=>{
|
|
76
|
+
const outerNode = childNode.getOuterNode(), outerNodeLessThanStartOuterChildNode = (0, _node.isLessThan)(outerNode, startOuterChildNode);
|
|
77
|
+
if (outerNodeLessThanStartOuterChildNode) {
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return siblingNodeIndex;
|
|
84
|
+
}
|
|
85
|
+
function addedNodesFromAddedOuterNodes(addedOuterNodes, queries, ClassFromOuterNode, outerNodeFromChildOuterNodes) {
|
|
86
|
+
let addedNodes;
|
|
87
|
+
const childOuterNodes = addedOuterNodes, parentOuterNode = parentOuterNodeFromChildOuterNodes(childOuterNodes), outerNode = outerNodeFromChildOuterNodes(childOuterNodes), topmostNode = (0, _dom.topmostNodeFromOuterNodeAndQueries)(outerNode, queries, ClassFromOuterNode), removedChildNodes = topmostNode.removeChildNodes();
|
|
88
|
+
addedNodes = removedChildNodes; ///
|
|
89
|
+
setChildOuterNodesParentOuterNode(childOuterNodes, parentOuterNode);
|
|
90
|
+
return addedNodes;
|
|
91
|
+
}
|
|
92
|
+
function removedNodesFromRemovedOuterNodes(removedOuterNodes, queries, ClassFromOuterNode, outerNodeFromChildOuterNodes) {
|
|
93
|
+
let removedNodes;
|
|
94
|
+
const childOuterNodes = removedOuterNodes, outerNode = outerNodeFromChildOuterNodes(childOuterNodes), topmostNode = (0, _dom.topmostNodeFromOuterNodeAndQueries)(outerNode, queries, ClassFromOuterNode), removedChildNodes = topmostNode.removeChildNodes();
|
|
95
|
+
removedNodes = removedChildNodes; ///
|
|
96
|
+
resetChildOuterNodesParentOuterNode(childOuterNodes);
|
|
97
|
+
return removedNodes;
|
|
98
|
+
}
|
|
99
|
+
const _default = {
|
|
100
|
+
retrieveNode,
|
|
101
|
+
getDescendantNodes,
|
|
102
|
+
retrieveParentNode,
|
|
103
|
+
findSiblingNodeIndex,
|
|
104
|
+
addedNodesFromAddedOuterNodes,
|
|
105
|
+
removedNodesFromRemovedOuterNodes
|
|
106
|
+
};
|
|
107
|
+
function resetChildOuterNodesParentOuterNode(childOuterNodes) {
|
|
108
|
+
const parentNode = null;
|
|
109
|
+
childOuterNodes.forEach((childOuterNode)=>{
|
|
110
|
+
childOuterNode.setParentNode(parentNode);
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
function setChildOuterNodesParentOuterNode(childOuterNodes, parentOuterNode) {
|
|
114
|
+
const parentNode = parentOuterNode; ///
|
|
115
|
+
childOuterNodes.forEach((childOuterNode)=>{
|
|
116
|
+
childOuterNode.setParentNode(parentNode);
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
function parentOuterNodeFromChildOuterNodes(childOuterNodes) {
|
|
120
|
+
let parentOuterNode = null; ///
|
|
121
|
+
const childOuterNodesLength = childOuterNodes.length;
|
|
122
|
+
if (childOuterNodesLength > 0) {
|
|
123
|
+
const firstChildOuterNode = first(childOuterNodes);
|
|
124
|
+
parentOuterNode = firstChildOuterNode.getParentNode();
|
|
125
|
+
}
|
|
126
|
+
return parentOuterNode;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvaW5jcmVtZW50YWwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgeyBpc0xlc3NUaGFuIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9ub2RlXCI7XG5pbXBvcnQgeyB0b3Btb3N0Tm9kZUZyb21PdXRlck5vZGVBbmRRdWVyaWVzIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9kb21cIjtcblxuY29uc3QgeyBmaXJzdCwgYmFja3dhcmRzRmluZEluZGV4IH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGZ1bmN0aW9uIHJldHJpZXZlTm9kZShvdXRlck5vZGUsIHRvcG1vc3ROb2RlKSB7XG4gIGxldCBub2RlO1xuXG4gIGlmIChvdXRlck5vZGUgPT09IG51bGwpIHtcbiAgICBub2RlID0gdG9wbW9zdE5vZGU7IC8vL1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGFuY2VzdG9yTm9kZXMgPSBvdXRlck5vZGUuZ2V0QW5jZXN0b3JOb2RlcygpLFxuICAgICAgICAgIG91dGVyTm9kZXMgPSBbXG4gICAgICAgICAgICBvdXRlck5vZGUsXG4gICAgICAgICAgICAuLi5hbmNlc3Rvck5vZGVzXG4gICAgICAgICAgXTtcblxuICAgIG5vZGUgPSB0b3Btb3N0Tm9kZS5yZXRyaWV2ZU5vZGUoKG5vZGUpID0+IHtcbiAgICAgIGNvbnN0IG91dGVyTm9kZSA9IG5vZGUuZ2V0T3V0ZXJOb2RlKCksXG4gICAgICAgICAgICBvdXRlck5vZGVzSW5jbHVkZXNPdXRlck5vZGUgPSBvdXRlck5vZGVzLmluY2x1ZGVzKG91dGVyTm9kZSk7XG5cbiAgICAgIGlmIChvdXRlck5vZGVzSW5jbHVkZXNPdXRlck5vZGUpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gbm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlc2NlbmRhbnROb2Rlcyhub2Rlcykge1xuICBjb25zdCBkZXNjZW5kYW50Tm9kZXMgPSBub2RlczsgIC8vL1xuXG4gIGRlc2NlbmRhbnROb2Rlcy5mb3JFYWNoKChkZXNjZW5kYW50Tm9kZSkgPT4ge1xuICAgIGRlc2NlbmRhbnROb2RlLmdldERlc2NlbmRhbnROb2RlcyhkZXNjZW5kYW50Tm9kZXMpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJldHJpZXZlUGFyZW50Tm9kZShwYXJlbnRPdXRlck5vZGUsIHRvcG1vc3ROb2RlKSB7XG4gIGNvbnN0IG91dGVyTm9kZSA9IHBhcmVudE91dGVyTm9kZSwgIC8vL1xuICAgICAgICBub2RlID0gcmV0cmlldmVOb2RlKG91dGVyTm9kZSwgdG9wbW9zdE5vZGUpLFxuICAgICAgICBwYXJlbnROb2RlID0gKG5vZGUgIT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgICAgbm9kZSA6ICAvLy9cbiAgICAgICAgICAgICAgICAgICAgICAgICB0b3Btb3N0Tm9kZTsgLy8vXG5cbiAgcmV0dXJuIHBhcmVudE5vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kU2libGluZ05vZGVJbmRleChzdGFydE91dGVySW5kZXgsIHBhcmVudE91dGVyTm9kZSwgcGFyZW50Tm9kZSkge1xuICBsZXQgc2libGluZ05vZGVJbmRleCA9IC0xO1xuXG4gIGlmIChwYXJlbnRPdXRlck5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBjaGlsZE5vZGVzID0gcGFyZW50Tm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgb3V0ZXJDaGlsZE5vZGVzID0gcGFyZW50T3V0ZXJOb2RlLmdldENoaWxkTm9kZXMoKSwgIC8vL1xuICAgICAgICAgIG91dGVyQ2hpbGROb2Rlc0xlbmd0aCA9IG91dGVyQ2hpbGROb2Rlcy5sZW5ndGg7XG5cbiAgICBpZiAob3V0ZXJDaGlsZE5vZGVzTGVuZ3RoID09PSBzdGFydE91dGVySW5kZXgpIHtcbiAgICAgIGNvbnN0IGNoaWxkTm9kZXNMZW5ndGggPSBjaGlsZE5vZGVzLmxlbmd0aDtcblxuICAgICAgc2libGluZ05vZGVJbmRleCA9IGNoaWxkTm9kZXNMZW5ndGggLSAxO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBzdGFydE91dGVyQ2hpbGROb2RlID0gb3V0ZXJDaGlsZE5vZGVzW3N0YXJ0T3V0ZXJJbmRleF07XG5cbiAgICAgIHNpYmxpbmdOb2RlSW5kZXggPSBiYWNrd2FyZHNGaW5kSW5kZXgoY2hpbGROb2RlcywgKGNoaWxkTm9kZSkgPT4ge1xuICAgICAgICBjb25zdCBvdXRlck5vZGUgPSBjaGlsZE5vZGUuZ2V0T3V0ZXJOb2RlKCksXG4gICAgICAgICAgICAgIG91dGVyTm9kZUxlc3NUaGFuU3RhcnRPdXRlckNoaWxkTm9kZSA9IGlzTGVzc1RoYW4ob3V0ZXJOb2RlLCBzdGFydE91dGVyQ2hpbGROb2RlKTtcblxuICAgICAgICBpZiAob3V0ZXJOb2RlTGVzc1RoYW5TdGFydE91dGVyQ2hpbGROb2RlKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzaWJsaW5nTm9kZUluZGV4O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkZWROb2Rlc0Zyb21BZGRlZE91dGVyTm9kZXMoYWRkZWRPdXRlck5vZGVzLCBxdWVyaWVzLCBDbGFzc0Zyb21PdXRlck5vZGUsIG91dGVyTm9kZUZyb21DaGlsZE91dGVyTm9kZXMpIHtcbiAgbGV0IGFkZGVkTm9kZXM7XG5cbiAgY29uc3QgY2hpbGRPdXRlck5vZGVzID0gYWRkZWRPdXRlck5vZGVzLCAgLy8vXG4gICAgICAgIHBhcmVudE91dGVyTm9kZSA9IHBhcmVudE91dGVyTm9kZUZyb21DaGlsZE91dGVyTm9kZXMoY2hpbGRPdXRlck5vZGVzKSxcbiAgICAgICAgb3V0ZXJOb2RlID0gb3V0ZXJOb2RlRnJvbUNoaWxkT3V0ZXJOb2RlcyhjaGlsZE91dGVyTm9kZXMpLFxuICAgICAgICB0b3Btb3N0Tm9kZSA9IHRvcG1vc3ROb2RlRnJvbU91dGVyTm9kZUFuZFF1ZXJpZXMob3V0ZXJOb2RlLCBxdWVyaWVzLCBDbGFzc0Zyb21PdXRlck5vZGUpLFxuICAgICAgICByZW1vdmVkQ2hpbGROb2RlcyA9IHRvcG1vc3ROb2RlLnJlbW92ZUNoaWxkTm9kZXMoKTtcblxuICBhZGRlZE5vZGVzID0gcmVtb3ZlZENoaWxkTm9kZXM7ICAvLy9cblxuICBzZXRDaGlsZE91dGVyTm9kZXNQYXJlbnRPdXRlck5vZGUoY2hpbGRPdXRlck5vZGVzLCBwYXJlbnRPdXRlck5vZGUpO1xuXG4gIHJldHVybiBhZGRlZE5vZGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlZE5vZGVzRnJvbVJlbW92ZWRPdXRlck5vZGVzKHJlbW92ZWRPdXRlck5vZGVzLCBxdWVyaWVzLCBDbGFzc0Zyb21PdXRlck5vZGUsIG91dGVyTm9kZUZyb21DaGlsZE91dGVyTm9kZXMpIHtcbiAgbGV0IHJlbW92ZWROb2RlcztcblxuICBjb25zdCBjaGlsZE91dGVyTm9kZXMgPSByZW1vdmVkT3V0ZXJOb2RlcywgIC8vL1xuICAgICAgICBvdXRlck5vZGUgPSBvdXRlck5vZGVGcm9tQ2hpbGRPdXRlck5vZGVzKGNoaWxkT3V0ZXJOb2RlcyksXG4gICAgICAgIHRvcG1vc3ROb2RlID0gdG9wbW9zdE5vZGVGcm9tT3V0ZXJOb2RlQW5kUXVlcmllcyhvdXRlck5vZGUsIHF1ZXJpZXMsIENsYXNzRnJvbU91dGVyTm9kZSksXG4gICAgICAgIHJlbW92ZWRDaGlsZE5vZGVzID0gdG9wbW9zdE5vZGUucmVtb3ZlQ2hpbGROb2RlcygpO1xuXG4gIHJlbW92ZWROb2RlcyA9IHJlbW92ZWRDaGlsZE5vZGVzOyAvLy9cblxuICByZXNldENoaWxkT3V0ZXJOb2Rlc1BhcmVudE91dGVyTm9kZShjaGlsZE91dGVyTm9kZXMpO1xuXG4gIHJldHVybiByZW1vdmVkTm9kZXM7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgcmV0cmlldmVOb2RlLFxuICBnZXREZXNjZW5kYW50Tm9kZXMsXG4gIHJldHJpZXZlUGFyZW50Tm9kZSxcbiAgZmluZFNpYmxpbmdOb2RlSW5kZXgsXG4gIGFkZGVkTm9kZXNGcm9tQWRkZWRPdXRlck5vZGVzLFxuICByZW1vdmVkTm9kZXNGcm9tUmVtb3ZlZE91dGVyTm9kZXNcbn07XG5cbmZ1bmN0aW9uIHJlc2V0Q2hpbGRPdXRlck5vZGVzUGFyZW50T3V0ZXJOb2RlKGNoaWxkT3V0ZXJOb2Rlcykge1xuICBjb25zdCBwYXJlbnROb2RlID0gbnVsbDtcblxuICBjaGlsZE91dGVyTm9kZXMuZm9yRWFjaCgoY2hpbGRPdXRlck5vZGUpID0+IHtcbiAgICBjaGlsZE91dGVyTm9kZS5zZXRQYXJlbnROb2RlKHBhcmVudE5vZGUpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gc2V0Q2hpbGRPdXRlck5vZGVzUGFyZW50T3V0ZXJOb2RlKGNoaWxkT3V0ZXJOb2RlcywgcGFyZW50T3V0ZXJOb2RlKSB7XG4gIGNvbnN0IHBhcmVudE5vZGUgPSBwYXJlbnRPdXRlck5vZGU7ICAvLy9cblxuICBjaGlsZE91dGVyTm9kZXMuZm9yRWFjaCgoY2hpbGRPdXRlck5vZGUpID0+IHtcbiAgICBjaGlsZE91dGVyTm9kZS5zZXRQYXJlbnROb2RlKHBhcmVudE5vZGUpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gcGFyZW50T3V0ZXJOb2RlRnJvbUNoaWxkT3V0ZXJOb2RlcyhjaGlsZE91dGVyTm9kZXMpIHtcbiAgbGV0IHBhcmVudE91dGVyTm9kZSA9IG51bGw7ICAvLy9cblxuICBjb25zdCBjaGlsZE91dGVyTm9kZXNMZW5ndGggPSBjaGlsZE91dGVyTm9kZXMubGVuZ3RoO1xuXG4gIGlmIChjaGlsZE91dGVyTm9kZXNMZW5ndGggPiAwKSB7XG4gICAgY29uc3QgZmlyc3RDaGlsZE91dGVyTm9kZSA9IGZpcnN0KGNoaWxkT3V0ZXJOb2Rlcyk7XG5cbiAgICBwYXJlbnRPdXRlck5vZGUgPSBmaXJzdENoaWxkT3V0ZXJOb2RlLmdldFBhcmVudE5vZGUoKTtcbiAgfVxuXG4gIHJldHVybiBwYXJlbnRPdXRlck5vZGU7XG59XG4iXSwibmFtZXMiOlsiYWRkZWROb2Rlc0Zyb21BZGRlZE91dGVyTm9kZXMiLCJmaW5kU2libGluZ05vZGVJbmRleCIsImdldERlc2NlbmRhbnROb2RlcyIsInJlbW92ZWROb2Rlc0Zyb21SZW1vdmVkT3V0ZXJOb2RlcyIsInJldHJpZXZlTm9kZSIsInJldHJpZXZlUGFyZW50Tm9kZSIsImZpcnN0IiwiYmFja3dhcmRzRmluZEluZGV4IiwiYXJyYXlVdGlsaXRpZXMiLCJvdXRlck5vZGUiLCJ0b3Btb3N0Tm9kZSIsIm5vZGUiLCJhbmNlc3Rvck5vZGVzIiwiZ2V0QW5jZXN0b3JOb2RlcyIsIm91dGVyTm9kZXMiLCJnZXRPdXRlck5vZGUiLCJvdXRlck5vZGVzSW5jbHVkZXNPdXRlck5vZGUiLCJpbmNsdWRlcyIsIm5vZGVzIiwiZGVzY2VuZGFudE5vZGVzIiwiZm9yRWFjaCIsImRlc2NlbmRhbnROb2RlIiwicGFyZW50T3V0ZXJOb2RlIiwicGFyZW50Tm9kZSIsInN0YXJ0T3V0ZXJJbmRleCIsInNpYmxpbmdOb2RlSW5kZXgiLCJjaGlsZE5vZGVzIiwiZ2V0Q2hpbGROb2RlcyIsIm91dGVyQ2hpbGROb2RlcyIsIm91dGVyQ2hpbGROb2Rlc0xlbmd0aCIsImxlbmd0aCIsImNoaWxkTm9kZXNMZW5ndGgiLCJzdGFydE91dGVyQ2hpbGROb2RlIiwiY2hpbGROb2RlIiwib3V0ZXJOb2RlTGVzc1RoYW5TdGFydE91dGVyQ2hpbGROb2RlIiwiaXNMZXNzVGhhbiIsImFkZGVkT3V0ZXJOb2RlcyIsInF1ZXJpZXMiLCJDbGFzc0Zyb21PdXRlck5vZGUiLCJvdXRlck5vZGVGcm9tQ2hpbGRPdXRlck5vZGVzIiwiYWRkZWROb2RlcyIsImNoaWxkT3V0ZXJOb2RlcyIsInBhcmVudE91dGVyTm9kZUZyb21DaGlsZE91dGVyTm9kZXMiLCJ0b3Btb3N0Tm9kZUZyb21PdXRlck5vZGVBbmRRdWVyaWVzIiwicmVtb3ZlZENoaWxkTm9kZXMiLCJyZW1vdmVDaGlsZE5vZGVzIiwic2V0Q2hpbGRPdXRlck5vZGVzUGFyZW50T3V0ZXJOb2RlIiwicmVtb3ZlZE91dGVyTm9kZXMiLCJyZW1vdmVkTm9kZXMiLCJyZXNldENoaWxkT3V0ZXJOb2Rlc1BhcmVudE91dGVyTm9kZSIsImNoaWxkT3V0ZXJOb2RlIiwic2V0UGFyZW50Tm9kZSIsImNoaWxkT3V0ZXJOb2Rlc0xlbmd0aCIsImZpcnN0Q2hpbGRPdXRlck5vZGUiLCJnZXRQYXJlbnROb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFpRmdCQTtlQUFBQTs7UUErQmhCO2VBQUE7O1FBNURnQkM7ZUFBQUE7O1FBbEJBQztlQUFBQTs7UUErREFDO2VBQUFBOztRQXhGQUM7ZUFBQUE7O1FBaUNBQztlQUFBQTs7OzJCQXhDZTtzQkFFSjtxQkFDd0I7QUFFbkQsTUFBTSxFQUFFQyxLQUFLLEVBQUVDLGtCQUFrQixFQUFFLEdBQUdDLHlCQUFjO0FBRTdDLFNBQVNKLGFBQWFLLFNBQVMsRUFBRUMsV0FBVztJQUNqRCxJQUFJQztJQUVKLElBQUlGLGNBQWMsTUFBTTtRQUN0QkUsT0FBT0QsYUFBYSxHQUFHO0lBQ3pCLE9BQU87UUFDTCxNQUFNRSxnQkFBZ0JILFVBQVVJLGdCQUFnQixJQUMxQ0MsYUFBYTtZQUNYTDtlQUNHRztTQUNKO1FBRVBELE9BQU9ELFlBQVlOLFlBQVksQ0FBQyxDQUFDTztZQUMvQixNQUFNRixZQUFZRSxLQUFLSSxZQUFZLElBQzdCQyw4QkFBOEJGLFdBQVdHLFFBQVEsQ0FBQ1I7WUFFeEQsSUFBSU8sNkJBQTZCO2dCQUMvQixPQUFPO1lBQ1Q7UUFDRjtJQUNGO0lBRUEsT0FBT0w7QUFDVDtBQUVPLFNBQVNULG1CQUFtQmdCLEtBQUs7SUFDdEMsTUFBTUMsa0JBQWtCRCxPQUFRLEdBQUc7SUFFbkNDLGdCQUFnQkMsT0FBTyxDQUFDLENBQUNDO1FBQ3ZCQSxlQUFlbkIsa0JBQWtCLENBQUNpQjtJQUNwQztBQUNGO0FBRU8sU0FBU2QsbUJBQW1CaUIs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
|
package/package.json
CHANGED
package/src/index.js
CHANGED
|
@@ -6,3 +6,4 @@ export { default as domUtilities } from "./utilities/dom";
|
|
|
6
6
|
export { default as nodeUtilities } from "./utilities/node";
|
|
7
7
|
export { default as queryUtilities } from "./utilities/query";
|
|
8
8
|
export { default as transformUtilities } from "./utilities/transform";
|
|
9
|
+
export { default as incrementalUtilities } from "./utilities/incremental";
|
package/src/node.js
CHANGED
|
@@ -42,6 +42,48 @@ export default class Node {
|
|
|
42
42
|
this.spliceChildNodes(startIndex, deleteCount, addedChildNodes);
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
+
getDescendantNodes(descendantNodes = []) {
|
|
46
|
+
const childNodes = this.getChildNodes();
|
|
47
|
+
|
|
48
|
+
childNodes.forEach((childNode) => {
|
|
49
|
+
const descendantNode = childNode; ///
|
|
50
|
+
|
|
51
|
+
descendantNodes.push(descendantNode);
|
|
52
|
+
|
|
53
|
+
childNode.getDescendantNodes(descendantNodes);
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
return descendantNodes;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
retrieveNode(callback) {
|
|
60
|
+
let node = null;
|
|
61
|
+
|
|
62
|
+
if (node === null) {
|
|
63
|
+
const childNodes = this.getChildNodes();
|
|
64
|
+
|
|
65
|
+
childNodes.some((childNode) => {
|
|
66
|
+
node = childNode.retrieveNode(callback);
|
|
67
|
+
|
|
68
|
+
if (node !== null) {
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
if (node === null) {
|
|
75
|
+
node = this;
|
|
76
|
+
|
|
77
|
+
const result = callback(node);
|
|
78
|
+
|
|
79
|
+
if (!result) {
|
|
80
|
+
node = null;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
return node;
|
|
85
|
+
}
|
|
86
|
+
|
|
45
87
|
isLessThan(node) {
|
|
46
88
|
const nodeA = this, ///
|
|
47
89
|
nodeB = node, ///
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { arrayUtilities } from "necessary";
|
|
4
|
+
|
|
5
|
+
import { isLessThan } from "../utilities/node";
|
|
6
|
+
import { topmostNodeFromOuterNodeAndQueries } from "../utilities/dom";
|
|
7
|
+
|
|
8
|
+
const { first, backwardsFindIndex } = arrayUtilities;
|
|
9
|
+
|
|
10
|
+
export function retrieveNode(outerNode, topmostNode) {
|
|
11
|
+
let node;
|
|
12
|
+
|
|
13
|
+
if (outerNode === null) {
|
|
14
|
+
node = topmostNode; ///
|
|
15
|
+
} else {
|
|
16
|
+
const ancestorNodes = outerNode.getAncestorNodes(),
|
|
17
|
+
outerNodes = [
|
|
18
|
+
outerNode,
|
|
19
|
+
...ancestorNodes
|
|
20
|
+
];
|
|
21
|
+
|
|
22
|
+
node = topmostNode.retrieveNode((node) => {
|
|
23
|
+
const outerNode = node.getOuterNode(),
|
|
24
|
+
outerNodesIncludesOuterNode = outerNodes.includes(outerNode);
|
|
25
|
+
|
|
26
|
+
if (outerNodesIncludesOuterNode) {
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return node;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export function getDescendantNodes(nodes) {
|
|
36
|
+
const descendantNodes = nodes; ///
|
|
37
|
+
|
|
38
|
+
descendantNodes.forEach((descendantNode) => {
|
|
39
|
+
descendantNode.getDescendantNodes(descendantNodes);
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export function retrieveParentNode(parentOuterNode, topmostNode) {
|
|
44
|
+
const outerNode = parentOuterNode, ///
|
|
45
|
+
node = retrieveNode(outerNode, topmostNode),
|
|
46
|
+
parentNode = (node !== null) ?
|
|
47
|
+
node : ///
|
|
48
|
+
topmostNode; ///
|
|
49
|
+
|
|
50
|
+
return parentNode;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export function findSiblingNodeIndex(startOuterIndex, parentOuterNode, parentNode) {
|
|
54
|
+
let siblingNodeIndex = -1;
|
|
55
|
+
|
|
56
|
+
if (parentOuterNode !== null) {
|
|
57
|
+
const childNodes = parentNode.getChildNodes(),
|
|
58
|
+
outerChildNodes = parentOuterNode.getChildNodes(), ///
|
|
59
|
+
outerChildNodesLength = outerChildNodes.length;
|
|
60
|
+
|
|
61
|
+
if (outerChildNodesLength === startOuterIndex) {
|
|
62
|
+
const childNodesLength = childNodes.length;
|
|
63
|
+
|
|
64
|
+
siblingNodeIndex = childNodesLength - 1;
|
|
65
|
+
} else {
|
|
66
|
+
const startOuterChildNode = outerChildNodes[startOuterIndex];
|
|
67
|
+
|
|
68
|
+
siblingNodeIndex = backwardsFindIndex(childNodes, (childNode) => {
|
|
69
|
+
const outerNode = childNode.getOuterNode(),
|
|
70
|
+
outerNodeLessThanStartOuterChildNode = isLessThan(outerNode, startOuterChildNode);
|
|
71
|
+
|
|
72
|
+
if (outerNodeLessThanStartOuterChildNode) {
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
return siblingNodeIndex;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export function addedNodesFromAddedOuterNodes(addedOuterNodes, queries, ClassFromOuterNode, outerNodeFromChildOuterNodes) {
|
|
83
|
+
let addedNodes;
|
|
84
|
+
|
|
85
|
+
const childOuterNodes = addedOuterNodes, ///
|
|
86
|
+
parentOuterNode = parentOuterNodeFromChildOuterNodes(childOuterNodes),
|
|
87
|
+
outerNode = outerNodeFromChildOuterNodes(childOuterNodes),
|
|
88
|
+
topmostNode = topmostNodeFromOuterNodeAndQueries(outerNode, queries, ClassFromOuterNode),
|
|
89
|
+
removedChildNodes = topmostNode.removeChildNodes();
|
|
90
|
+
|
|
91
|
+
addedNodes = removedChildNodes; ///
|
|
92
|
+
|
|
93
|
+
setChildOuterNodesParentOuterNode(childOuterNodes, parentOuterNode);
|
|
94
|
+
|
|
95
|
+
return addedNodes;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export function removedNodesFromRemovedOuterNodes(removedOuterNodes, queries, ClassFromOuterNode, outerNodeFromChildOuterNodes) {
|
|
99
|
+
let removedNodes;
|
|
100
|
+
|
|
101
|
+
const childOuterNodes = removedOuterNodes, ///
|
|
102
|
+
outerNode = outerNodeFromChildOuterNodes(childOuterNodes),
|
|
103
|
+
topmostNode = topmostNodeFromOuterNodeAndQueries(outerNode, queries, ClassFromOuterNode),
|
|
104
|
+
removedChildNodes = topmostNode.removeChildNodes();
|
|
105
|
+
|
|
106
|
+
removedNodes = removedChildNodes; ///
|
|
107
|
+
|
|
108
|
+
resetChildOuterNodesParentOuterNode(childOuterNodes);
|
|
109
|
+
|
|
110
|
+
return removedNodes;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
export default {
|
|
114
|
+
retrieveNode,
|
|
115
|
+
getDescendantNodes,
|
|
116
|
+
retrieveParentNode,
|
|
117
|
+
findSiblingNodeIndex,
|
|
118
|
+
addedNodesFromAddedOuterNodes,
|
|
119
|
+
removedNodesFromRemovedOuterNodes
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
function resetChildOuterNodesParentOuterNode(childOuterNodes) {
|
|
123
|
+
const parentNode = null;
|
|
124
|
+
|
|
125
|
+
childOuterNodes.forEach((childOuterNode) => {
|
|
126
|
+
childOuterNode.setParentNode(parentNode);
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
function setChildOuterNodesParentOuterNode(childOuterNodes, parentOuterNode) {
|
|
131
|
+
const parentNode = parentOuterNode; ///
|
|
132
|
+
|
|
133
|
+
childOuterNodes.forEach((childOuterNode) => {
|
|
134
|
+
childOuterNode.setParentNode(parentNode);
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
function parentOuterNodeFromChildOuterNodes(childOuterNodes) {
|
|
139
|
+
let parentOuterNode = null; ///
|
|
140
|
+
|
|
141
|
+
const childOuterNodesLength = childOuterNodes.length;
|
|
142
|
+
|
|
143
|
+
if (childOuterNodesLength > 0) {
|
|
144
|
+
const firstChildOuterNode = first(childOuterNodes);
|
|
145
|
+
|
|
146
|
+
parentOuterNode = firstChildOuterNode.getParentNode();
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
return parentOuterNode;
|
|
150
|
+
}
|