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
JavaScript
;
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