UNPKG

@qualweb/util

Version:
39 lines (38 loc) 1.53 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const elementHasOnePixel_1 = __importDefault(require("./elementHasOnePixel")); const elementHasContent_1 = __importDefault(require("./elementHasContent")); function isElementVisible(element) { const offScreen = element.isOffScreen(); const cssHidden = window.DomUtils.isElementHiddenByCSS(element); const hasContent = (0, elementHasContent_1.default)(element, true); const hasOnePixelHeight = (0, elementHasOnePixel_1.default)(element); const opacityProperty = element.getElementStyleProperty('opacity', ''); let opacity; if (opacityProperty) { opacity = parseInt(opacityProperty); } let opaqueParent = false; if (element.getElementParent()) { opaqueParent = isParentOpaque(element.getElementParent()); } return !(offScreen || hasOnePixelHeight || cssHidden || !hasContent || (opacity && opacity === 0) || opaqueParent); } function isParentOpaque(element) { const opacityProperty = element.getElementStyleProperty('opacity', ''); let opacity; if (opacityProperty) { opacity = parseInt(opacityProperty); } if (opacity && opacity === 0) { return true; } if (element.getElementParent()) { return isParentOpaque(element.getElementParent()); } return false; } exports.default = isElementVisible;