devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
35 lines (34 loc) • 1.06 kB
JavaScript
/**
* DevExtreme (esm/__internal/core/environment/hide_callback.js)
* Version: 25.2.3
* Build date: Fri Dec 12 2025
*
* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
export const hideCallback = function() {
let callbacks = [];
return {
add(callback) {
if (!callbacks.includes(callback)) {
callbacks.push(callback)
}
},
remove(callback) {
const indexOfCallback = callbacks.indexOf(callback);
if (-1 !== indexOfCallback) {
callbacks.splice(indexOfCallback, 1)
}
},
fire() {
const callback = callbacks.pop();
const result = !!callback;
if (result) {
callback()
}
return result
},
hasCallback: () => callbacks.length > 0
}
}();
export const fireCallback = () => hideCallback.fire();