jobiqo-cl
Version:
[](https://circleci.com/gh/jobiqo/jobiqo-cl)
48 lines (38 loc) • 1.64 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var constants = require('../constants.js');
var array = require('./array.js');
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
var filterNested = function filterNested(nodes) {
var l = nodes.length;
for (var i = 0; i < l; i += 1) {
var _loop = function _loop(j) {
if (i !== j) {
if (nodes[i].contains(nodes[j])) {
return {
v: filterNested(nodes.filter(function (x) {
return x !== nodes[j];
}))
};
}
}
};
for (var j = 0; j < l; j += 1) {
var _ret = _loop(j);
if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === "object") return _ret.v;
}
}
return nodes;
};
var getTopParent = function getTopParent(node) {
return node.parentNode ? getTopParent(node.parentNode) : node;
};
var getAllAffectedNodes = function getAllAffectedNodes(node) {
var nodes = array.asArray(node);
return nodes.filter(Boolean).reduce(function (acc, currentNode) {
var group = currentNode.getAttribute(constants.FOCUS_GROUP);
acc.push.apply(acc, group ? filterNested(array.toArray(getTopParent(currentNode).querySelectorAll('[' + constants.FOCUS_GROUP + '="' + group + '"]:not([' + constants.FOCUS_DISABLED + '="disabled"])'))) : [currentNode]);
return acc;
}, []);
};
exports.default = getAllAffectedNodes;