export default function closest(element, selector) { if (!element) { throw new TypeError('element can`t be empty') } if (!document.contains(element)) { return null } if (typeof selector === 'string') { return element.closest(selector) } let next = element while (next !== null) { if (next === selector) { return next } next = next.parentElement } return null }