/**
* @summary is-in-viewport
* @version 3.0.0
* @since 1.0.0
* @author Arian Khosravi <arian.khosravi@aofl.com>
*/
/**
* isInViewPort() check whether or not the supplied element is within the visible area of the
* screen. The threshold values are multipliers of their respective dimension. 0 means the exact
* viewport dimensions and .5 means viewport + half of viewport.
* @memberof module:@aofl/component-utils
*
* @param {HTMLElement} node
* @param {Number} widthThreshold
* @param {Number} heightThreshold
* @return {Boolean}
*/
const isInViewport = (node, widthThreshold = 0, heightThreshold = 0) => {
const {top, right, bottom, left} = node.getBoundingClientRect();
const vWidth = window.innerWidth;
const vHeight = window.innerHeight;
const wThreshold = vWidth * widthThreshold;
const hThreshold = vHeight * heightThreshold;
return bottom > (-1 * hThreshold) && right > (-1 * vWidth) &&
left < (vWidth + wThreshold) && top < (vHeight + hThreshold);
};
export {
isInViewport
};