@orca-fe/pocket
Version:
UI components by orca-team
51 lines (49 loc) • 1.22 kB
JavaScript
;
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;
}