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)

35 lines (28 loc) 1.23 kB
'use strict'; 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;