Sha256: 95d0292b19e61340346547b89a82d0cb4de08b3f65d58506c7c8f259627e5805
Contents?: true
Size: 1.72 KB
Versions: 5
Compression:
Stored size: 1.72 KB
Contents
/** * -------------------------------------------------------------------------- * Bootstrap (v5.0.0-beta3): dom/selector-engine.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ /** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ const NODE_TEXT = 3 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 while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) { if (ancestor.matches(selector)) { parents.push(ancestor) } ancestor = ancestor.parentNode } return parents }, prev(element, selector) { let previous = element.previousElementSibling while (previous) { if (previous.matches(selector)) { return [previous] } previous = previous.previousElementSibling } return [] }, next(element, selector) { let next = element.nextElementSibling while (next) { if (next.matches(selector)) { return [next] } next = next.nextElementSibling } return [] } } export default SelectorEngine
Version data entries
5 entries across 5 versions & 1 rubygems