@mskcc/carbon-react
Version:
Carbon react components for the MSKCC DSM
66 lines (55 loc) • 1.49 kB
JavaScript
/**
* MSKCC 2021, 2024
*/
;
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;