DuyTa's picture
Upload folder using huggingface_hub
bc20498 verified
import { isHTMLElement } from './is.js';
export function focus(element) {
if (isHTMLElement(element)) {
element.focus();
}
else if (typeof element === 'string') {
const el = document.querySelector(element);
if (!el)
return;
el.focus();
}
}
/**
* Returns a list of nodes that can be in the tab sequence.
* @see: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker
*/
export function getTabbableNodes(container) {
const nodes = [];
const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {
acceptNode: (node) => {
// `.tabIndex` is not the same as the `tabindex` attribute. It works on the
// runtime's understanding of tabbability, so this automatically accounts
// for any kind of element that could be tabbed to.
return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
},
});
while (walker.nextNode()) {
nodes.push(walker.currentNode);
}
return nodes;
}
export function isHidden(el) {
return el.offsetParent === null;
}