@pnp/spfx-controls-react
Version:
Reusable React controls for SharePoint Framework solutions
54 lines • 1.74 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getClosestAccordion = getClosestAccordion;
exports.getSiblingButtons = getSiblingButtons;
exports.focusFirstSiblingOf = focusFirstSiblingOf;
exports.focusLastSiblingOf = focusLastSiblingOf;
exports.focusNextSiblingOf = focusNextSiblingOf;
exports.focusPreviousSiblingOf = focusPreviousSiblingOf;
function getClosestAccordion(el) {
return (el &&
(el.matches('[data-accordion-component="Accordion"]')
? el
: getClosestAccordion(el.parentElement)));
}
function getSiblingButtons(item) {
var parentAccordion = getClosestAccordion(item);
return (parentAccordion &&
Array.from(parentAccordion.querySelectorAll('[data-accordion-component="AccordionItemButton"]')));
}
function focusFirstSiblingOf(item) {
var siblings = getSiblingButtons(item) || [];
var first = siblings[0];
if (first) {
first.focus();
}
}
function focusLastSiblingOf(item) {
var siblings = getSiblingButtons(item) || [];
var last = siblings[siblings.length - 1];
if (last) {
last.focus();
}
}
function focusNextSiblingOf(item) {
var siblings = getSiblingButtons(item) || [];
var currentIndex = siblings.indexOf(item);
if (currentIndex !== -1) {
var next = siblings[currentIndex + 1];
if (next) {
next.focus();
}
}
}
function focusPreviousSiblingOf(item) {
var siblings = getSiblingButtons(item) || [];
var currentIndex = siblings.indexOf(item);
if (currentIndex !== -1) {
var previous = siblings[currentIndex - 1];
if (previous) {
previous.focus();
}
}
}
//# sourceMappingURL=focus.js.map