export const getVisibleFocusingElements = () => [].map.call(document.getElementsByName('paymentMethodSelection'), e => e) .filter(element => window.getComputedStyle(element, null).display !== 'none' && (element).offsetParent); export const focusNextEl = target => { const focusingElements = getVisibleFocusingElements(); const currentElementIndex = focusingElements.indexOf(target); const nextElementIndex = currentElementIndex >= focusingElements.length - 1 ? 0 : currentElementIndex + 1; focusEl(focusingElements[nextElementIndex]); }; export const focusPrevEl = target => { const focusingElements = getVisibleFocusingElements(); const currentElementIndex = focusingElements.indexOf(target); const prevElementIndex = currentElementIndex <= 0 ? focusingElements.length - 1 : currentElementIndex - 1; focusEl(focusingElements[prevElementIndex]); }; const focusEl = elementToFocus => { if (elementToFocus) { (elementToFocus).focus(); (elementToFocus).click(); } };