/*! * Bootstrap selector-engine.js v5.0.0-alpha1 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./polyfill.js')) : typeof define === 'function' && define.amd ? define(['./polyfill.js'], factory) : (global = global || self, global.SelectorEngine = factory(global.Polyfill)); }(this, (function (polyfill_js) { 'use strict'; /** * -------------------------------------------------------------------------- * Bootstrap (v5.0.0-alpha1): dom/selector-engine.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ /** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ var NODE_TEXT = 3; var SelectorEngine = { matches: function matches(element, selector) { return element.matches(selector); }, find: function find(selector, element) { var _ref; if (element === void 0) { element = document.documentElement; } return (_ref = []).concat.apply(_ref, polyfill_js.find.call(element, selector)); }, findOne: function findOne(selector, element) { if (element === void 0) { element = document.documentElement; } return polyfill_js.findOne.call(element, selector); }, children: function children(element, selector) { var _ref2; var children = (_ref2 = []).concat.apply(_ref2, element.children); return children.filter(function (child) { return child.matches(selector); }); }, parents: function parents(element, selector) { var parents = []; var ancestor = element.parentNode; while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) { if (this.matches(ancestor, selector)) { parents.push(ancestor); } ancestor = ancestor.parentNode; } return parents; }, prev: function prev(element, selector) { var previous = element.previousElementSibling; while (previous) { if (previous.matches(selector)) { return [previous]; } previous = previous.previousElementSibling; } return []; }, next: function next(element, selector) { var next = element.nextElementSibling; while (next) { if (this.matches(next, selector)) { return [next]; } next = next.nextElementSibling; } return []; } }; return SelectorEngine; }))); //# sourceMappingURL=selector-engine.js.map