@qualweb/util
Version:
Utilities module for qualweb
39 lines (38 loc) • 1.53 kB
JavaScript
;
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;