jobiqo-cl
Version:
[](https://circleci.com/gh/jobiqo/jobiqo-cl)
35 lines (28 loc) • 1.23 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var constants = require('../constants.js');
var array = require('./array.js');
var tabbables = require('./tabbables.js');
var queryTabbables = tabbables.default.join(',');
var queryGuardTabbables = queryTabbables + ', [data-focus-guard]';
var getFocusables = function getFocusables(parents, withGuards) {
return parents.reduce(function (acc, parent) {
return acc.concat(
// add all tabbables inside
array.toArray(parent.querySelectorAll(withGuards ? queryGuardTabbables : queryTabbables)),
// add if node is tabble itself
parent.parentNode ? array.toArray(parent.parentNode.querySelectorAll(tabbables.default.join(','))).filter(function (node) {
return node === parent;
}) : []);
}, []);
};
var getParentAutofocusables = function getParentAutofocusables(parent) {
var parentFocus = parent.querySelectorAll('[' + constants.FOCUS_AUTO + ']');
return array.toArray(parentFocus).map(function (node) {
return getFocusables([node]);
}).reduce(function (acc, nodes) {
return acc.concat(nodes);
}, []);
};
exports.getFocusables = getFocusables;
exports.getParentAutofocusables = getParentAutofocusables;