UNPKG

jobiqo-cl

Version:

[![CircleCI](https://circleci.com/gh/jobiqo/jobiqo-cl.svg?style=svg&circle-token=5a24efa5b8bbc4879276123e77d0d3f35ca7144c)](https://circleci.com/gh/jobiqo/jobiqo-cl)

48 lines (38 loc) 1.64 kB
'use strict'; 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;