UNPKG

@mtdt.temp/browser-rum-core

Version:
37 lines 1.48 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.initViewportObservable = initViewportObservable; exports.createViewportObservable = createViewportObservable; exports.getViewportDimension = getViewportDimension; const browser_core_1 = require("@mtdt.temp/browser-core"); let viewportObservable; function initViewportObservable(configuration) { if (!viewportObservable) { viewportObservable = createViewportObservable(configuration); } return viewportObservable; } function createViewportObservable(configuration) { return new browser_core_1.Observable((observable) => { const { throttled: updateDimension } = (0, browser_core_1.throttle)(() => { observable.notify(getViewportDimension()); }, 200); return (0, browser_core_1.addEventListener)(configuration, window, "resize" /* DOM_EVENT.RESIZE */, updateDimension, { capture: true, passive: true }) .stop; }); } // excludes the width and height of any rendered classic scrollbar that is fixed to the visual viewport function getViewportDimension() { const visual = window.visualViewport; if (visual) { return { width: Number(visual.width * visual.scale), height: Number(visual.height * visual.scale), }; } return { width: Number(window.innerWidth || 0), height: Number(window.innerHeight || 0), }; } //# sourceMappingURL=viewportObservable.js.map