UNPKG

@pnp/spfx-controls-react

Version:

Reusable React controls for SharePoint Framework solutions

54 lines 1.74 kB
"use strict"; 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