UNPKG

@nteract/monaco-editor

Version:

A React component for the monaco editor, tailored for nteract

50 lines 1.8 kB
"use strict"; /** * This module is responsible for monitoring elements and call the resizable components. */ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.unobserve = exports.observe = void 0; const windowResizeEventObserver_1 = __importDefault(require("./polyfill/windowResizeEventObserver")); /** * ResizeObserver that monitors the size of the element and calls the resizable component. */ const monitoredResizables = new WeakMap(); /** * ResizeObserver that monitors the size of the element and calls the resizable component. */ let resizeObserver; function getResizeObserverSingleton() { if (!resizeObserver) { const ResizeObserverImpl = window.ResizeObserver || windowResizeEventObserver_1.default; resizeObserver = new ResizeObserverImpl((entries) => { for (const entry of entries) { if (monitoredResizables.has(entry.target)) { const editor = monitoredResizables.get(entry.target); editor === null || editor === void 0 ? void 0 : editor.onResize(); } } }); } return resizeObserver; } /** * Observe the element for resize events. */ function observe(resizable, element) { monitoredResizables.set(element, resizable); getResizeObserverSingleton().observe(element); return () => unobserve(element); } exports.observe = observe; /** * Unobserve the element for resize events. */ function unobserve(element) { getResizeObserverSingleton().unobserve(element); monitoredResizables.delete(element); } exports.unobserve = unobserve; //# sourceMappingURL=resizeObserver.js.map