define(["dom"], function(dom) { "use strict"; function visibleInViewport(elem, partial, thresholdX, thresholdY) { if (thresholdX = thresholdX || 0, thresholdY = thresholdY || 0, !elem.getBoundingClientRect) return !0; var windowSize = dom.getWindowSize(), vpWidth = windowSize.innerWidth, vpHeight = windowSize.innerHeight, rec = elem.getBoundingClientRect(), tViz = rec.top >= 0 && rec.top < vpHeight + thresholdY, bViz = rec.bottom > 0 && rec.bottom <= vpHeight + thresholdY, lViz = rec.left >= 0 && rec.left < vpWidth + thresholdX, rViz = rec.right > 0 && rec.right <= vpWidth + thresholdX, vVisible = partial ? tViz || bViz : tViz && bViz, hVisible = partial ? lViz || rViz : lViz && rViz; return vVisible && hVisible } return visibleInViewport });