UNPKG

vevet

Version:

Vevet is a JavaScript library for creative development that simplifies crafting rich interactions like split text animations, carousels, marquees, preloading, and more.

39 lines 1.51 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createPageLoad = createPageLoad; var Callbacks_1 = require("../../../base/Callbacks"); var cn_1 = require("../../../internal/cn"); var env_1 = require("../../../internal/env"); var listeners_1 = require("../../../utils/listeners"); function createPageLoad(_a) { var prefix = _a.prefix, applyClassNames = _a.applyClassNames; var callbacks = new Callbacks_1.Callbacks(); var isLoaded = false; if (env_1.doc.readyState === 'complete') { setTimeout(function () { return handleLoaded(); }, 0); } else { (0, listeners_1.addEventListener)(window, 'load', function () { return handleLoaded(); }); } /** Callback on page loaded */ function handleLoaded() { var body = document.body; isLoaded = true; if (applyClassNames) { (0, cn_1.cnRemove)(env_1.html, "".concat(prefix, "loading")); (0, cn_1.cnRemove)(body, "".concat(prefix, "loading")); (0, cn_1.cnAdd)(env_1.html, "".concat(prefix, "loaded")); } callbacks.emit('loaded', undefined); } /** Add a callback on page load */ function onLoad(callback) { if (isLoaded) { callback(); return function () { }; } return callbacks.on('loaded', function () { return callback(); }); } return { onLoad: onLoad, getIsLoaded: function () { return isLoaded; } }; } //# sourceMappingURL=index.js.map