Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | 13x 3170x 370x 3x 23x 23x 23x 19x 19x 23x 34x 34x 8x 7x 1x 27x 91x 91x 82x 81x 1x 10x 206x 1648x 206x | /** * -------------------------------------------------------------------------- * Bootstrap (v5.2.3): dom/selector-engine.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ import { isDisabled, isVisible } from '../util/index' /** * Constants */ const SelectorEngine = { find(selector, element = document.documentElement) { return [].concat(...Element.prototype.querySelectorAll.call(element, selector)) }, findOne(selector, element = document.documentElement) { return Element.prototype.querySelector.call(element, selector) }, children(element, selector) { return [].concat(...element.children).filter(child => child.matches(selector)) }, parents(element, selector) { const parents = [] let ancestor = element.parentNode.closest(selector) while (ancestor) { parents.push(ancestor) ancestor = ancestor.parentNode.closest(selector) } return parents }, prev(element, selector) { let previous = element.previousElementSibling while (previous) { if (previous.matches(selector)) { return [previous] } previous = previous.previousElementSibling } return [] }, // TODO: this is now unused; remove later along with prev() next(element, selector) { let next = element.nextElementSibling while (next) { if (next.matches(selector)) { return [next] } next = next.nextElementSibling } return [] }, focusableChildren(element) { const focusables = [ 'a', 'button', 'input', 'textarea', 'select', 'details', '[tabindex]', '[contenteditable="true"]' ].map(selector => `${selector}:not([tabindex^="-"])`).join(',') return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el)) } } export default SelectorEngine |