gitlab-org--gitlab-foss/app/assets/javascripts/extensions/element.js.es6

21 lines
846 B
JavaScript
Raw Normal View History

/* global Element */
/* eslint-disable consistent-return, max-len, no-empty, no-plusplus, func-names */
2016-11-23 09:56:28 -05:00
Element.prototype.closest = Element.prototype.closest || function closest(selector, selectedElement = this) {
2016-10-20 17:18:39 -04:00
if (!selectedElement) return;
return selectedElement.matches(selector) ? selectedElement : Element.prototype.closest(selector, selectedElement.parentElement);
};
2016-11-29 05:35:53 -05:00
Element.prototype.matches = Element.prototype.matches ||
Element.prototype.matchesSelector ||
Element.prototype.mozMatchesSelector ||
Element.prototype.msMatchesSelector ||
Element.prototype.oMatchesSelector ||
Element.prototype.webkitMatchesSelector ||
function (s) {
const matches = (this.document || this.ownerDocument).querySelectorAll(s);
let i = matches.length;
while (--i >= 0 && matches.item(i) !== this) {}
return i > -1;
};