UNPKG

@orca-fe/pocket

Version:

UI components by orca-team

51 lines (49 loc) 1.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = isIn; exports.isInBy = isInBy; /** * check is `dom` inside parent with `classNames` * @param dom * @param classNames * @param parent */ function isIn(dom, classNames) { var parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : document.body; var cName = classNames; if (typeof classNames === 'string') { cName = [classNames]; } if (dom) { for (var i = 0; i < cName.length; i += 1) { var className = cName[i]; if (dom.classList.contains(className)) { return true; } } if (dom === parent) { return false; } if (dom.parentElement) return isIn(dom.parentElement, classNames, parent); } return false; } /** * check is `dom` inside something * @param dom * @param callback * @param parent */ function isInBy(dom, callback) { var parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : document.body; if (dom) { if (dom === parent) { return false; } if (callback(dom)) return true; if (dom.parentElement) return isInBy(dom.parentElement, callback, parent); } return false; }