@dimanoid/ngx-dm-tour
Version:
32 lines • 3.69 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: lib/utils/elems.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @param {?} elem
* @return {?}
*/
export function isElemVisible(elem) {
if (!(!!elem && !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length))) {
return false;
}
const { top, left, height, width } = elem.getBoundingClientRect();
/** @type {?} */
let el = elem.parentNode;
do {
/** @type {?} */
const rect = el.getBoundingClientRect();
if (rect.height > 0 && rect.width > 0) {
if ((top <= rect.bottom === false)
|| ((top + height) <= rect.top)
|| (left <= rect.right === false)
|| ((left + width) <= rect.left)) {
return false;
}
}
el = el.parentNode;
} while (el != document.body);
return top <= document.documentElement.clientHeight && left <= document.documentElement.clientWidth;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbXMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZGltYW5vaWQvbmd4LWRtLXRvdXIvIiwic291cmNlcyI6WyJsaWIvdXRpbHMvZWxlbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsTUFBTSxVQUFVLGFBQWEsQ0FBQyxJQUFpQjtJQUMzQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRTtRQUN4RixPQUFPLEtBQUssQ0FBQztLQUNoQjtVQUNLLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixFQUFFOztRQUM3RCxFQUFFLEdBQVEsSUFBSSxDQUFDLFVBQVU7SUFDN0IsR0FBRzs7Y0FDTyxJQUFJLEdBQUcsRUFBRSxDQUFDLHFCQUFxQixFQUFFO1FBQ3ZDLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUU7WUFDbkMsSUFDSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQzttQkFDM0IsQ0FBQyxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDO21CQUM1QixDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQzttQkFDOUIsQ0FBQyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQ2xDO2dCQUNFLE9BQU8sS0FBSyxDQUFDO2FBQ2hCO1NBQ0o7UUFDRCxFQUFFLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQztLQUN0QixRQUFRLEVBQUUsSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFO0lBQzlCLE9BQU8sR0FBRyxJQUFJLFFBQVEsQ0FBQyxlQUFlLENBQUMsWUFBWSxJQUFJLElBQUksSUFBSSxRQUFRLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQztBQUN4RyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGlzRWxlbVZpc2libGUoZWxlbTogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICBpZiAoISghIWVsZW0gJiYgISEoZWxlbS5vZmZzZXRXaWR0aCB8fCBlbGVtLm9mZnNldEhlaWdodCB8fCBlbGVtLmdldENsaWVudFJlY3RzKCkubGVuZ3RoKSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCB7IHRvcCwgbGVmdCwgaGVpZ2h0LCB3aWR0aCB9ID0gZWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBsZXQgZWw6IGFueSA9IGVsZW0ucGFyZW50Tm9kZTtcbiAgICBkbyB7XG4gICAgICAgIGNvbnN0IHJlY3QgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgaWYgKHJlY3QuaGVpZ2h0ID4gMCAmJiByZWN0LndpZHRoID4gMCkge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICh0b3AgPD0gcmVjdC5ib3R0b20gPT09IGZhbHNlKVxuICAgICAgICAgICAgICAgIHx8ICgodG9wICsgaGVpZ2h0KSA8PSByZWN0LnRvcClcbiAgICAgICAgICAgICAgICB8fCAobGVmdCA8PSByZWN0LnJpZ2h0ID09PSBmYWxzZSlcbiAgICAgICAgICAgICAgICB8fCAoKGxlZnQgKyB3aWR0aCkgPD0gcmVjdC5sZWZ0KVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsID0gZWwucGFyZW50Tm9kZTtcbiAgICB9IHdoaWxlIChlbCAhPSBkb2N1bWVudC5ib2R5KTtcbiAgICByZXR1cm4gdG9wIDw9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQgJiYgbGVmdCA8PSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGg7XG59XG4iXX0=