UNPKG

@mskcc/carbon-react

Version:

Carbon react components for the MSKCC DSM

66 lines (55 loc) 1.49 kB
/** * MSKCC 2021, 2024 */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var window = require('window-or-global'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var window__default = /*#__PURE__*/_interopDefaultLegacy(window); // mdn resize function const OptimizedResize = function optimizedResize() { const callbacks = []; let running = false; // run the actual callbacks function runCallbacks() { callbacks.forEach(callback => { callback(); }); running = false; } // fired on resize event function resize() { if (!running) { running = true; window__default["default"].requestAnimationFrame(runCallbacks); } } // adds callback to loop function addCallback(callback) { if (callback) { const index = callbacks.indexOf(callback); if (index < 0) { callbacks.push(callback); } } } return { // public method to add additional callback add: callback => { if (!callbacks.length) { window__default["default"].addEventListener('resize', resize); } addCallback(callback); return { release() { const index = callbacks.indexOf(callback); if (index >= 0) { callbacks.splice(index, 1); } } }; } }; }(); var OptimizedResize$1 = OptimizedResize; exports["default"] = OptimizedResize$1;