'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = inViewport; var _getElementPosition = require('./getElementPosition'); var _getElementPosition2 = _interopRequireDefault(_getElementPosition); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var isHidden = function isHidden(element) { return element.offsetParent === null; }; function inViewport(element, container, customOffset) { if (isHidden(element)) { return false; } var top = void 0; var bottom = void 0; var left = void 0; var right = void 0; if (typeof container === 'undefined' || container === window) { top = window.pageYOffset; left = window.pageXOffset; bottom = top + window.innerHeight; right = left + window.innerWidth; } else { if (!inViewport(container, window, customOffset)) return false; var containerPosition = (0, _getElementPosition2.default)(container); top = containerPosition.top; left = containerPosition.left; bottom = top + container.offsetHeight; right = left + container.offsetWidth; } var elementPosition = (0, _getElementPosition2.default)(element); return top <= elementPosition.top + element.offsetHeight + customOffset.top && bottom >= elementPosition.top - customOffset.bottom && left <= elementPosition.left + element.offsetWidth + customOffset.left && right >= elementPosition.left - customOffset.right; }