occam-dom 5.0.4 → 5.0.5

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.
@@ -31,9 +31,8 @@ function topmostNodeFromOuterNodes(Class, outerNodes) {
31
31
  orderNodes(nodes);
32
32
  var topmostNode = _node.default.fromNothing(), outerNodeToNodeMap = new WeakMap();
33
33
  outerNodes.forEach(function(outerNode) {
34
- var ancestorNodes = outerNode.getAncestorNodes();
35
34
  var parentNode = topmostNode; ///
36
- ancestorNodes.some(function(ancestorNode) {
35
+ someAncestorNode(outerNode, function(ancestorNode) {
37
36
  var _$outerNode = ancestorNode, node = outerNodeToNodeMap.get(_$outerNode) || null;
38
37
  if (node !== null) {
39
38
  parentNode = node; ///
@@ -71,6 +70,20 @@ function isLessThan(nodeA, nodeB) {
71
70
  }
72
71
  return lessThan;
73
72
  }
73
+ function someAncestorNode(node, callback) {
74
+ var result = false;
75
+ var parentNode = node.getParentNode();
76
+ while(parentNode !== null){
77
+ var ancestorNode = parentNode; ///
78
+ result = !!callback(ancestorNode); ///
79
+ if (result) {
80
+ break;
81
+ }
82
+ node = parentNode; ///
83
+ parentNode = node.getParentNode();
84
+ }
85
+ return result;
86
+ }
74
87
  function ancestorNodesFromNode(node) {
75
88
  var ancestorNodes = node.getAncestorNodes();
76
89
  ancestorNodes.unshift(node);
@@ -78,4 +91,4 @@ function ancestorNodesFromNode(node) {
78
91
  return ancestorNodes;
79
92
  }
80
93
 
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbm9kZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IE5vZGUgZnJvbSBcIi4uL25vZGVcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHRvcG1vc3ROb2RlRnJvbU91dGVyTm9kZXMoQ2xhc3MsIG91dGVyTm9kZXMpIHtcbiAgaWYgKG91dGVyTm9kZXMgPT09IHVuZGVmaW5lZCkge1xuICAgIG91dGVyTm9kZXMgPSBDbGFzczsgLy8vXG5cbiAgICBDbGFzcyA9IE5vZGU7ICAvLy9cbiAgfVxuXG4gIGNvbnN0IG5vZGVzID0gb3V0ZXJOb2RlczsgLy8vXG5cbiAgb3JkZXJOb2Rlcyhub2Rlcyk7XG5cbiAgY29uc3QgdG9wbW9zdE5vZGUgPSBOb2RlLmZyb21Ob3RoaW5nKCksXG4gICAgICAgIG91dGVyTm9kZVRvTm9kZU1hcCA9IG5ldyBXZWFrTWFwKCk7XG5cbiAgb3V0ZXJOb2Rlcy5mb3JFYWNoKChvdXRlck5vZGUpID0+IHtcbiAgICBjb25zdCBhbmNlc3Rvck5vZGVzID0gb3V0ZXJOb2RlLmdldEFuY2VzdG9yTm9kZXMoKTtcblxuICAgIGxldCBwYXJlbnROb2RlID0gdG9wbW9zdE5vZGU7IC8vL1xuXG4gICAgYW5jZXN0b3JOb2Rlcy5zb21lKChhbmNlc3Rvck5vZGUpID0+IHtcbiAgICAgIGNvbnN0IG91dGVyTm9kZSA9IGFuY2VzdG9yTm9kZSwgLy8vXG4gICAgICAgICAgICBub2RlID0gb3V0ZXJOb2RlVG9Ob2RlTWFwLmdldChvdXRlck5vZGUpIHx8IG51bGw7XG5cbiAgICAgIGlmIChub2RlICE9PSBudWxsKSB7XG4gICAgICAgIHBhcmVudE5vZGUgPSBub2RlOyAgLy8vXG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCBub2RlID0gQ2xhc3MuZnJvbU91dGVyTm9kZShvdXRlck5vZGUpLFxuICAgICAgICAgIGNoaWxkTm9kZSA9IG5vZGUsICAvLy9cbiAgICAgICAgICBtdWx0aXBsaWNpdHkgPSBwYXJlbnROb2RlLmdldE11bHRpcGxpY2l0eSgpLFxuICAgICAgICAgIHN0YXJ0SW5kZXggPSBtdWx0aXBsaWNpdHk7ICAvLy9cblxuICAgIHBhcmVudE5vZGUuYWRkQ2hpbGROb2RlKGNoaWxkTm9kZSwgc3RhcnRJbmRleCk7XG5cbiAgICBvdXRlck5vZGVUb05vZGVNYXAuc2V0KG91dGVyTm9kZSwgbm9kZSk7XG4gIH0pO1xuXG4gIHJldHVybiB0b3Btb3N0Tm9kZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICB0b3Btb3N0Tm9kZUZyb21PdXRlck5vZGVzXG59O1xuXG5mdW5jdGlvbiBvcmRlck5vZGVzKG5vZGVzKSB7XG4gIG5vZGVzLnNvcnQoKG5vZGVBLCBub2RlQikgPT4ge1xuICAgIGNvbnN0IG5vZGVBTGVzc1RoYW5Ob2RlQiA9IGlzTGVzc1RoYW4obm9kZUEsIG5vZGVCKSxcbiAgICAgICAgICByZXN1bHQgPSBub2RlQUxlc3NUaGFuTm9kZUIgP1xuICAgICAgICAgICAgICAgICAgICAgLTEgOlxuICAgICAgICAgICAgICAgICAgICAgICArMTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBpc0xlc3NUaGFuKG5vZGVBLCBub2RlQikge1xuICBsZXQgbGVzc1RoYW4gPSBudWxsO1xuXG4gIGNvbnN0IGFuY2VzdG9yTm9kZXNBID0gYW5jZXN0b3JOb2Rlc0Zyb21Ob2RlKG5vZGVBKSxcbiAgICAgICAgYW5jZXN0b3JOb2Rlc0IgPSBhbmNlc3Rvck5vZGVzRnJvbU5vZGUobm9kZUIpLFxuICAgICAgICBhbmNlc3Rvck5vZGVzQUxlbmd0aCA9IGFuY2VzdG9yTm9kZXNBLmxlbmd0aCxcbiAgICAgICAgYW5jZXN0b3JOb2Rlc0JMZW5ndGggPSBhbmNlc3Rvck5vZGVzQi5sZW5ndGgsXG4gICAgICAgIG1pbmltdW1BbmNlc3Rvck5vZGVzTGVuZ3RoID0gTWF0aC5taW4oYW5jZXN0b3JOb2Rlc0FMZW5ndGgsIGFuY2VzdG9yTm9kZXNCTGVuZ3RoKTtcblxuICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbWluaW11bUFuY2VzdG9yTm9kZXNMZW5ndGg7IGluZGV4KyspIHtcbiAgICBjb25zdCBhbmNlc3Rvck5vZGVBID0gYW5jZXN0b3JOb2Rlc0FbaW5kZXhdLFxuICAgICAgICAgIGFuY2VzdG9yTm9kZUIgPSBhbmNlc3Rvck5vZGVzQltpbmRleF07XG5cbiAgICBpZiAoYW5jZXN0b3JOb2RlQSAhPT0gYW5jZXN0b3JOb2RlQikge1xuICAgICAgY29uc3QgcGFyZW50SW5kZXggPSBpbmRleCAtIDEsXG4gICAgICAgICAgICBhbmNlc3Rvck5vZGVBUGFyZW50Tm9kZSA9IGFuY2VzdG9yTm9kZXNBW3BhcmVudEluZGV4XSxcbiAgICAgICAgICAgIHBhcmVudE5vZGUgPSBhbmNlc3Rvck5vZGVBUGFyZW50Tm9kZSwgLy8vXG4gICAgICAgICAgICBjaGlsZE5vZGVBID0gYW5jZXN0b3JOb2RlQSwgLy8vXG4gICAgICAgICAgICBjaGlsZE5vZGVCID0gYW5jZXN0b3JOb2RlQiwgLy8vXG4gICAgICAgICAgICBpbmRleEEgPSBwYXJlbnROb2RlLmluZGV4T2ZDaGlsZE5vZGUoY2hpbGROb2RlQSksXG4gICAgICAgICAgICBpbmRleEIgPSBwYXJlbnROb2RlLmluZGV4T2ZDaGlsZE5vZGUoY2hpbGROb2RlQik7XG5cbiAgICAgIGxlc3NUaGFuID0gKGluZGV4QSA8IGluZGV4Qik7XG5cbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIGlmIChsZXNzVGhhbiA9PT0gbnVsbCkge1xuICAgIGxlc3NUaGFuID0gKGFuY2VzdG9yTm9kZXNBTGVuZ3RoIDwgYW5jZXN0b3JOb2Rlc0JMZW5ndGgpO1xuICB9XG5cbiAgcmV0dXJuIGxlc3NUaGFuO1xufVxuXG5mdW5jdGlvbiBhbmNlc3Rvck5vZGVzRnJvbU5vZGUobm9kZSkge1xuICBjb25zdCBhbmNlc3Rvck5vZGVzID0gbm9kZS5nZXRBbmNlc3Rvck5vZGVzKCk7XG5cbiAgYW5jZXN0b3JOb2Rlcy51bnNoaWZ0KG5vZGUpO1xuXG4gIGFuY2VzdG9yTm9kZXMucmV2ZXJzZSgpO1xuXG4gIHJldHVybiBhbmNlc3Rvck5vZGVzO1xufSJdLCJuYW1lcyI6WyJ0b3Btb3N0Tm9kZUZyb21PdXRlck5vZGVzIiwiQ2xhc3MiLCJvdXRlck5vZGVzIiwidW5kZWZpbmVkIiwiTm9kZSIsIm5vZGVzIiwib3JkZXJOb2RlcyIsInRvcG1vc3ROb2RlIiwiZnJvbU5vdGhpbmciLCJvdXRlck5vZGVUb05vZGVNYXAiLCJXZWFrTWFwIiwiZm9yRWFjaCIsIm91dGVyTm9kZSIsImFuY2VzdG9yTm9kZXMiLCJnZXRBbmNlc3Rvck5vZGVzIiwicGFyZW50Tm9kZSIsInNvbWUiLCJhbmNlc3Rvck5vZGUiLCJub2RlIiwiZ2V0IiwiZnJvbU91dGVyTm9kZSIsImNoaWxkTm9kZSIsIm11bHRpcGxpY2l0eSIsImdldE11bHRpcGxpY2l0eSIsInN0YXJ0SW5kZXgiLCJhZGRDaGlsZE5vZGUiLCJzZXQiLCJzb3J0Iiwibm9kZUEiLCJub2RlQiIsIm5vZGVBTGVzc1RoYW5Ob2RlQiIsImlzTGVzc1RoYW4iLCJyZXN1bHQiLCJsZXNzVGhhbiIsImFuY2VzdG9yTm9kZXNBIiwiYW5jZXN0b3JOb2Rlc0Zyb21Ob2RlIiwiYW5jZXN0b3JOb2Rlc0IiLCJhbmNlc3Rvck5vZGVzQUxlbmd0aCIsImxlbmd0aCIsImFuY2VzdG9yTm9kZXNCTGVuZ3RoIiwibWluaW11bUFuY2VzdG9yTm9kZXNMZW5ndGgiLCJNYXRoIiwibWluIiwiaW5kZXgiLCJhbmNlc3Rvck5vZGVBIiwiYW5jZXN0b3JOb2RlQiIsInBhcmVudEluZGV4IiwiYW5jZXN0b3JOb2RlQVBhcmVudE5vZGUiLCJjaGlsZE5vZGVBIiwiY2hpbGROb2RlQiIsImluZGV4QSIsImluZGV4T2ZDaGlsZE5vZGUiLCJpbmRleEIiLCJ1bnNoaWZ0IiwicmV2ZXJzZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBK0NBLE9BRUU7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
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbm9kZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IE5vZGUgZnJvbSBcIi4uL25vZGVcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHRvcG1vc3ROb2RlRnJvbU91dGVyTm9kZXMoQ2xhc3MsIG91dGVyTm9kZXMpIHtcbiAgaWYgKG91dGVyTm9kZXMgPT09IHVuZGVmaW5lZCkge1xuICAgIG91dGVyTm9kZXMgPSBDbGFzczsgLy8vXG5cbiAgICBDbGFzcyA9IE5vZGU7ICAvLy9cbiAgfVxuXG4gIGNvbnN0IG5vZGVzID0gb3V0ZXJOb2RlczsgLy8vXG5cbiAgb3JkZXJOb2Rlcyhub2Rlcyk7XG5cbiAgY29uc3QgdG9wbW9zdE5vZGUgPSBOb2RlLmZyb21Ob3RoaW5nKCksXG4gICAgICAgIG91dGVyTm9kZVRvTm9kZU1hcCA9IG5ldyBXZWFrTWFwKCk7XG5cbiAgb3V0ZXJOb2Rlcy5mb3JFYWNoKChvdXRlck5vZGUpID0+IHtcbiAgICBsZXQgcGFyZW50Tm9kZSA9IHRvcG1vc3ROb2RlOyAvLy9cblxuICAgIHNvbWVBbmNlc3Rvck5vZGUob3V0ZXJOb2RlLCAoYW5jZXN0b3JOb2RlKSA9PiB7XG4gICAgICBjb25zdCBvdXRlck5vZGUgPSBhbmNlc3Rvck5vZGUsIC8vL1xuICAgICAgICAgICAgbm9kZSA9IG91dGVyTm9kZVRvTm9kZU1hcC5nZXQob3V0ZXJOb2RlKSB8fCBudWxsO1xuXG4gICAgICBpZiAobm9kZSAhPT0gbnVsbCkge1xuICAgICAgICBwYXJlbnROb2RlID0gbm9kZTsgIC8vL1xuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29uc3Qgbm9kZSA9IENsYXNzLmZyb21PdXRlck5vZGUob3V0ZXJOb2RlKSxcbiAgICAgICAgICBjaGlsZE5vZGUgPSBub2RlLCAgLy8vXG4gICAgICAgICAgbXVsdGlwbGljaXR5ID0gcGFyZW50Tm9kZS5nZXRNdWx0aXBsaWNpdHkoKSxcbiAgICAgICAgICBzdGFydEluZGV4ID0gbXVsdGlwbGljaXR5OyAgLy8vXG5cbiAgICBwYXJlbnROb2RlLmFkZENoaWxkTm9kZShjaGlsZE5vZGUsIHN0YXJ0SW5kZXgpO1xuXG4gICAgb3V0ZXJOb2RlVG9Ob2RlTWFwLnNldChvdXRlck5vZGUsIG5vZGUpO1xuICB9KTtcblxuICByZXR1cm4gdG9wbW9zdE5vZGU7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgdG9wbW9zdE5vZGVGcm9tT3V0ZXJOb2Rlc1xufTtcblxuZnVuY3Rpb24gb3JkZXJOb2Rlcyhub2Rlcykge1xuICBub2Rlcy5zb3J0KChub2RlQSwgbm9kZUIpID0+IHtcbiAgICBjb25zdCBub2RlQUxlc3NUaGFuTm9kZUIgPSBpc0xlc3NUaGFuKG5vZGVBLCBub2RlQiksXG4gICAgICAgICAgcmVzdWx0ID0gbm9kZUFMZXNzVGhhbk5vZGVCID9cbiAgICAgICAgICAgICAgICAgICAgIC0xIDpcbiAgICAgICAgICAgICAgICAgICAgICAgKzE7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9KTtcbn1cblxuZnVuY3Rpb24gaXNMZXNzVGhhbihub2RlQSwgbm9kZUIpIHtcbiAgbGV0IGxlc3NUaGFuID0gbnVsbDtcblxuICBjb25zdCBhbmNlc3Rvck5vZGVzQSA9IGFuY2VzdG9yTm9kZXNGcm9tTm9kZShub2RlQSksXG4gICAgICAgIGFuY2VzdG9yTm9kZXNCID0gYW5jZXN0b3JOb2Rlc0Zyb21Ob2RlKG5vZGVCKSxcbiAgICAgICAgYW5jZXN0b3JOb2Rlc0FMZW5ndGggPSBhbmNlc3Rvck5vZGVzQS5sZW5ndGgsXG4gICAgICAgIGFuY2VzdG9yTm9kZXNCTGVuZ3RoID0gYW5jZXN0b3JOb2Rlc0IubGVuZ3RoLFxuICAgICAgICBtaW5pbXVtQW5jZXN0b3JOb2Rlc0xlbmd0aCA9IE1hdGgubWluKGFuY2VzdG9yTm9kZXNBTGVuZ3RoLCBhbmNlc3Rvck5vZGVzQkxlbmd0aCk7XG5cbiAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IG1pbmltdW1BbmNlc3Rvck5vZGVzTGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgY29uc3QgYW5jZXN0b3JOb2RlQSA9IGFuY2VzdG9yTm9kZXNBW2luZGV4XSxcbiAgICAgICAgICBhbmNlc3Rvck5vZGVCID0gYW5jZXN0b3JOb2Rlc0JbaW5kZXhdO1xuXG4gICAgaWYgKGFuY2VzdG9yTm9kZUEgIT09IGFuY2VzdG9yTm9kZUIpIHtcbiAgICAgIGNvbnN0IHBhcmVudEluZGV4ID0gaW5kZXggLSAxLFxuICAgICAgICAgICAgYW5jZXN0b3JOb2RlQVBhcmVudE5vZGUgPSBhbmNlc3Rvck5vZGVzQVtwYXJlbnRJbmRleF0sXG4gICAgICAgICAgICBwYXJlbnROb2RlID0gYW5jZXN0b3JOb2RlQVBhcmVudE5vZGUsIC8vL1xuICAgICAgICAgICAgY2hpbGROb2RlQSA9IGFuY2VzdG9yTm9kZUEsIC8vL1xuICAgICAgICAgICAgY2hpbGROb2RlQiA9IGFuY2VzdG9yTm9kZUIsIC8vL1xuICAgICAgICAgICAgaW5kZXhBID0gcGFyZW50Tm9kZS5pbmRleE9mQ2hpbGROb2RlKGNoaWxkTm9kZUEpLFxuICAgICAgICAgICAgaW5kZXhCID0gcGFyZW50Tm9kZS5pbmRleE9mQ2hpbGROb2RlKGNoaWxkTm9kZUIpO1xuXG4gICAgICBsZXNzVGhhbiA9IChpbmRleEEgPCBpbmRleEIpO1xuXG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBpZiAobGVzc1RoYW4gPT09IG51bGwpIHtcbiAgICBsZXNzVGhhbiA9IChhbmNlc3Rvck5vZGVzQUxlbmd0aCA8IGFuY2VzdG9yTm9kZXNCTGVuZ3RoKTtcbiAgfVxuXG4gIHJldHVybiBsZXNzVGhhbjtcbn1cblxuZnVuY3Rpb24gc29tZUFuY2VzdG9yTm9kZShub2RlLCBjYWxsYmFjaykge1xuICBsZXQgcmVzdWx0ID0gZmFsc2U7XG5cbiAgbGV0IHBhcmVudE5vZGUgPSBub2RlLmdldFBhcmVudE5vZGUoKTtcblxuICB3aGlsZSAocGFyZW50Tm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGFuY2VzdG9yTm9kZSA9IHBhcmVudE5vZGU7ICAvLy9cblxuICAgIHJlc3VsdCA9ICEhY2FsbGJhY2soYW5jZXN0b3JOb2RlKTsgIC8vL1xuXG4gICAgaWYgKHJlc3VsdCkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgbm9kZSA9IHBhcmVudE5vZGU7ICAvLy9cblxuICAgIHBhcmVudE5vZGUgPSBub2RlLmdldFBhcmVudE5vZGUoKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIGFuY2VzdG9yTm9kZXNGcm9tTm9kZShub2RlKSB7XG4gIGNvbnN0IGFuY2VzdG9yTm9kZXMgPSBub2RlLmdldEFuY2VzdG9yTm9kZXMoKTtcblxuICBhbmNlc3Rvck5vZGVzLnVuc2hpZnQobm9kZSk7XG5cbiAgYW5jZXN0b3JOb2Rlcy5yZXZlcnNlKCk7XG5cbiAgcmV0dXJuIGFuY2VzdG9yTm9kZXM7XG59Il0sIm5hbWVzIjpbInRvcG1vc3ROb2RlRnJvbU91dGVyTm9kZXMiLCJDbGFzcyIsIm91dGVyTm9kZXMiLCJ1bmRlZmluZWQiLCJOb2RlIiwibm9kZXMiLCJvcmRlck5vZGVzIiwidG9wbW9zdE5vZGUiLCJmcm9tTm90aGluZyIsIm91dGVyTm9kZVRvTm9kZU1hcCIsIldlYWtNYXAiLCJmb3JFYWNoIiwib3V0ZXJOb2RlIiwicGFyZW50Tm9kZSIsInNvbWVBbmNlc3Rvck5vZGUiLCJhbmNlc3Rvck5vZGUiLCJub2RlIiwiZ2V0IiwiZnJvbU91dGVyTm9kZSIsImNoaWxkTm9kZSIsIm11bHRpcGxpY2l0eSIsImdldE11bHRpcGxpY2l0eSIsInN0YXJ0SW5kZXgiLCJhZGRDaGlsZE5vZGUiLCJzZXQiLCJzb3J0Iiwibm9kZUEiLCJub2RlQiIsIm5vZGVBTGVzc1RoYW5Ob2RlQiIsImlzTGVzc1RoYW4iLCJyZXN1bHQiLCJsZXNzVGhhbiIsImFuY2VzdG9yTm9kZXNBIiwiYW5jZXN0b3JOb2Rlc0Zyb21Ob2RlIiwiYW5jZXN0b3JOb2Rlc0IiLCJhbmNlc3Rvck5vZGVzQUxlbmd0aCIsImxlbmd0aCIsImFuY2VzdG9yTm9kZXNCTGVuZ3RoIiwibWluaW11bUFuY2VzdG9yTm9kZXNMZW5ndGgiLCJNYXRoIiwibWluIiwiaW5kZXgiLCJhbmNlc3Rvck5vZGVBIiwiYW5jZXN0b3JOb2RlQiIsInBhcmVudEluZGV4IiwiYW5jZXN0b3JOb2RlQVBhcmVudE5vZGUiLCJjaGlsZE5vZGVBIiwiY2hpbGROb2RlQiIsImluZGV4QSIsImluZGV4T2ZDaGlsZE5vZGUiLCJpbmRleEIiLCJjYWxsYmFjayIsImdldFBhcmVudE5vZGUiLCJhbmNlc3Rvck5vZGVzIiwiZ2V0QW5jZXN0b3JOb2RlcyIsInVuc2hpZnQiLCJyZXZlcnNlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUE2Q0EsT0FFRTtlQUZGOztJQXpDZ0JBLHlCQUF5QjtlQUF6QkE7OzsyREFGQzs7Ozs7O0FBRVYsU0FBU0EsMEJBQTBCQyxLQUFLLEVBQUVDLFVBQVU7SUFDekQsSUFBSUEsZUFBZUMsV0FBVztRQUM1QkQsYUFBYUQsT0FBTyxHQUFHO1FBRXZCQSxRQUFRRyxhQUFJLEVBQUcsR0FBRztJQUNwQjtJQUVBLElBQU1DLFFBQVFILFlBQVksR0FBRztJQUU3QkksV0FBV0Q7SUFFWCxJQUFNRSxjQUFjSCxhQUFJLENBQUNJLFdBQVcsSUFDOUJDLHFCQUFxQixJQUFJQztJQUUvQlIsV0FBV1MsT0FBTyxDQUFDLFNBQUNDO1FBQ2xCLElBQUlDLGFBQWFOLGFBQWEsR0FBRztRQUVqQ08saUJBQWlCRixXQUFXLFNBQUNHO1lBQzNCLElBQU1ILGNBQVlHLGNBQ1pDLE9BQU9QLG1CQUFtQlEsR0FBRyxDQUFDTCxnQkFBYztZQUVsRCxJQUFJSSxTQUFTLE1BQU07Z0JBQ2pCSCxhQUFhRyxNQUFPLEdBQUc7Z0JBRXZCLE9BQU87WUFDVDtRQUNGO1FBRUEsSUFBTUEsT0FBT2YsTUFBTWlCLGFBQWEsQ0FBQ04sWUFDM0JPLFlBQVlILE1BQ1pJLGVBQWVQLFdBQVdRLGVBQWUsSUFDekNDLGFBQWFGLGNBQWUsR0FBRztRQUVyQ1AsV0FBV1UsWUFBWSxDQUFDSixXQUFXRztRQUVuQ2IsbUJBQW1CZSxHQUFHLENBQUNaLFdBQVdJO0lBQ3BDO0lBRUEsT0FBT1Q7QUFDVDtJQUVBLFdBQWU7SUFDYlAsMkJBQUFBO0FBQ0Y7QUFFQSxTQUFTTSxXQUFXRCxLQUFLO0lBQ3ZCQSxNQUFNb0IsSUFBSSxDQUFDLFNBQUNDLE9BQU9DO1FBQ2pCLElBQU1DLHFCQUFxQkMsV0FBV0gsT0FBT0MsUUFDdkNHLFNBQVNGLHFCQUNFLENBQUMsSUFDQyxDQUFDO1FBRXBCLE9BQU9FO0lBQ1Q7QUFDRjtBQUVBLFNBQVNELFdBQVdILEtBQUssRUFBRUMsS0FBSztJQUM5QixJQUFJSSxXQUFXO0lBRWYsSUFBTUMsaUJBQWlCQyxzQkFBc0JQLFFBQ3ZDUSxpQkFBaUJELHNCQUFzQk4sUUFDdkNRLHVCQUF1QkgsZUFBZUksTUFBTSxFQUM1Q0MsdUJBQXVCSCxlQUFlRSxNQUFNLEVBQzVDRSw2QkFBNkJDLEtBQUtDLEdBQUcsQ0FBQ0wsc0JBQXNCRTtJQUVsRSxJQUFLLElBQUlJLFFBQVEsR0FBR0EsUUFBUUgsNEJBQTRCRyxRQUFTO1FBQy9ELElBQU1DLGdCQUFnQlYsY0FBYyxDQUFDUyxNQUFNLEVBQ3JDRSxnQkFBZ0JULGNBQWMsQ0FBQ08sTUFBTTtRQUUzQyxJQUFJQyxrQkFBa0JDLGVBQWU7WUFDbkMsSUFBTUMsY0FBY0gsUUFBUSxHQUN0QkksMEJBQTBCYixjQUFjLENBQUNZLFlBQVksRUFDckQvQixhQUFhZ0MseUJBQ2JDLGFBQWFKLGVBQ2JLLGFBQWFKLGVBQ2JLLFNBQVNuQyxXQUFXb0MsZ0JBQWdCLENBQUNILGFBQ3JDSSxTQUFTckMsV0FBV29DLGdCQUFnQixDQUFDRjtZQUUzQ2hCLFdBQVlpQixTQUFTRTtZQUVyQjtRQUNGO0lBQ0Y7SUFFQSxJQUFJbkIsYUFBYSxNQUFNO1FBQ3JCQSxXQUFZSSx1QkFBdUJFO0lBQ3JDO0lBRUEsT0FBT047QUFDVDtBQUVBLFNBQVNqQixpQkFBaUJFLElBQUksRUFBRW1DLFFBQVE7SUFDdEMsSUFBSXJCLFNBQVM7SUFFYixJQUFJakIsYUFBYUcsS0FBS29DLGFBQWE7SUFFbkMsTUFBT3ZDLGVBQWUsS0FBTTtRQUMxQixJQUFNRSxlQUFlRixZQUFhLEdBQUc7UUFFckNpQixTQUFTLENBQUMsQ0FBQ3FCLFNBQVNwQyxlQUFnQixHQUFHO1FBRXZDLElBQUllLFFBQVE7WUFDVjtRQUNGO1FBRUFkLE9BQU9ILFlBQWEsR0FBRztRQUV2QkEsYUFBYUcsS0FBS29DLGFBQWE7SUFDakM7SUFFQSxPQUFPdEI7QUFDVDtBQUVBLFNBQVNHLHNCQUFzQmpCLElBQUk7SUFDakMsSUFBTXFDLGdCQUFnQnJDLEtBQUtzQyxnQkFBZ0I7SUFFM0NELGNBQWNFLE9BQU8sQ0FBQ3ZDO0lBRXRCcUMsY0FBY0csT0FBTztJQUVyQixPQUFPSDtBQUNUIn0=
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-dom",
3
3
  "author": "James Smith",
4
- "version": "5.0.4",
4
+ "version": "5.0.5",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-dom",
7
7
  "description": "Occam's DOM related functionality.",
@@ -17,11 +17,9 @@ export function topmostNodeFromOuterNodes(Class, outerNodes) {
17
17
  outerNodeToNodeMap = new WeakMap();
18
18
 
19
19
  outerNodes.forEach((outerNode) => {
20
- const ancestorNodes = outerNode.getAncestorNodes();
21
-
22
20
  let parentNode = topmostNode; ///
23
21
 
24
- ancestorNodes.some((ancestorNode) => {
22
+ someAncestorNode(outerNode, (ancestorNode) => {
25
23
  const outerNode = ancestorNode, ///
26
24
  node = outerNodeToNodeMap.get(outerNode) || null;
27
25
 
@@ -95,6 +93,28 @@ function isLessThan(nodeA, nodeB) {
95
93
  return lessThan;
96
94
  }
97
95
 
96
+ function someAncestorNode(node, callback) {
97
+ let result = false;
98
+
99
+ let parentNode = node.getParentNode();
100
+
101
+ while (parentNode !== null) {
102
+ const ancestorNode = parentNode; ///
103
+
104
+ result = !!callback(ancestorNode); ///
105
+
106
+ if (result) {
107
+ break;
108
+ }
109
+
110
+ node = parentNode; ///
111
+
112
+ parentNode = node.getParentNode();
113
+ }
114
+
115
+ return result;
116
+ }
117
+
98
118
  function ancestorNodesFromNode(node) {
99
119
  const ancestorNodes = node.getAncestorNodes();
100
120