(e: KeyboardEvent, eventOrigin: HTMLElement, direction: -1 | 1)
| 164 | } |
| 165 | |
| 166 | _handleArrowUpDown(e: KeyboardEvent, eventOrigin: HTMLElement, direction: -1 | 1) { |
| 167 | if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey || e.defaultPrevented || this._isEventFromCurrentItem(e) || /^(input|textarea)$/i.test(eventOrigin.nodeName)) { |
| 168 | return false; |
| 169 | } |
| 170 | |
| 171 | this._setCurrentItem(e, currentItem => { |
| 172 | this._tabPosition = getTabbableElements(currentItem).indexOf(eventOrigin); |
| 173 | this._gridWalker.setRowPos(this._gridWalker.getRowPos() + direction); |
| 174 | let elementToFocus = this._gridWalker.getCurrent() as HTMLElement; |
| 175 | const tabbables = getTabbableElements(elementToFocus); |
| 176 | elementToFocus = tabbables[this._tabPosition] || tabbables.pop() || elementToFocus; |
| 177 | this._focusElement(elementToFocus); |
| 178 | e.preventDefault(); |
| 179 | }); |
| 180 | return false; |
| 181 | } |
| 182 | |
| 183 | _handleArrowUp(e: KeyboardEvent, eventOrigin: HTMLElement) { |
| 184 | return this._handleArrowUpDown(e, eventOrigin, -1); |
no test coverage detected