UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

38 lines (37 loc) 1.13 kB
/** * DevExtreme (esm/core/utils/ready_callbacks.js) * Version: 23.2.6 * Build date: Wed May 01 2024 * * Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/ */ import domAdapter from "../dom_adapter"; import injector from "./dependency_injector"; import { hasWindow } from "./window"; import callOnce from "./call_once"; var callbacks = []; var subscribeReady = callOnce(() => { var removeListener = domAdapter.listen(domAdapter.getDocument(), "DOMContentLoaded", () => { readyCallbacks.fire(); removeListener() }) }); var readyCallbacks = { add: callback => { var windowExists = hasWindow(); if (windowExists && "loading" !== domAdapter.getReadyState()) { callback() } else { callbacks.push(callback); windowExists && subscribeReady() } }, fire: () => { callbacks.forEach(callback => callback()); callbacks = [] } }; export default injector(readyCallbacks);