UNPKG

choerodon-ui

Version:

An enterprise-class UI design language and React-based implementation

44 lines (34 loc) 1.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = focusable; exports.findFirstFocusableElement = findFirstFocusableElement; exports.findFocusableElements = findFocusableElements; exports.findFocusableParent = findFocusableParent; var selector = 'a[href], area[href], input:not([disabled]):not([type="hidden"]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, [tabindex="0"], [contenteditable], audio[controls], video[controls], summary, [tabindex^="0"], [tabindex^="1"], [tabindex^="2"], [tabindex^="3"], [tabindex^="4"], [tabindex^="5"], [tabindex^="6"], [tabindex^="7"], [tabindex^="8"], [tabindex^="9"]'; function focusable(node) { return ['matches', 'msMatchesSelector', 'webkitMatchesSelector', 'mozMatchesSelector'].some(function (method) { return method in node && node[method](selector); }); } function findFirstFocusableElement(node) { return node.querySelector(selector); } function findFocusableElements(node) { return Array.from(node.querySelectorAll(selector)); } function findFocusableParent(node, root) { var parentElement = node.parentElement; if (parentElement) { if (focusable(parentElement)) { return parentElement; } if (root && parentElement === root) { return null; } return findFocusableParent(parentElement, root); } return null; } //# sourceMappingURL=focusable.js.map