UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

49 lines (48 loc) 1.53 kB
/** * DevExtreme (esm/__internal/core/m_resize_observer.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 { noop } from "../../core/utils/common"; import windowUtils from "./utils/m_window"; const window = windowUtils.getWindow(); const ResizeObserverMock = { observe: noop, unobserve: noop, disconnect: noop }; class ResizeObserverSingleton { constructor() { if (!windowUtils.hasWindow() || !window.ResizeObserver) { return ResizeObserverMock } this._callbacksMap = new Map; this._observer = new window.ResizeObserver((entries => { entries.forEach((entry => { var _this$_callbacksMap$g; null === (_this$_callbacksMap$g = this._callbacksMap.get(entry.target)) || void 0 === _this$_callbacksMap$g || _this$_callbacksMap$g(entry) })) })) } observe(element, callback) { this._callbacksMap.set(element, callback); this._observer.observe(element) } unobserve(element) { this._callbacksMap.delete(element); this._observer.unobserve(element) } disconnect() { this._callbacksMap.clear(); this._observer.disconnect() } } const resizeObserverSingleton = new ResizeObserverSingleton; export { resizeObserverSingleton };