UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

42 lines (41 loc) 1.31 kB
/** * DevExtreme (esm/__internal/core/utils/m_ready_callbacks.js) * Version: 24.2.6 * Build date: Mon Mar 17 2025 * * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/ */ import domAdapter from "../../../core/dom_adapter"; import callOnce from "../../../core/utils/call_once"; import injector from "../../../core/utils/dependency_injector"; import { hasWindow } from "../../../core/utils/window"; let callbacks = []; const subscribeReady = callOnce((() => { const removeListener = domAdapter.listen(domAdapter.getDocument(), "DOMContentLoaded", (() => { readyCallbacks.fire(); removeListener() })) })); const readyCallbacks = { add: callback => { const windowExists = hasWindow(); if (windowExists && "loading" !== domAdapter.getReadyState()) { callback() } else { callbacks.push(callback); windowExists && subscribeReady() } }, fire: () => { callbacks.forEach((callback => callback())); callbacks = [] } }; const readyCallbacksModule = injector(readyCallbacks); export { readyCallbacksModule }; export default readyCallbacksModule;