devextreme
Version:
JavaScript/TypeScript Component Suite for Responsive Web Development
52 lines (48 loc) • 1.96 kB
JavaScript
/**
* DevExtreme (cjs/__internal/common/core/animation/frame.js)
* Version: 25.2.7
* Build date: Tue May 05 2026
*
* Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.cancelAnimationFrame = cancelAnimationFrame;
exports.requestAnimationFrame = requestAnimationFrame;
var _call_once = _interopRequireDefault(require("../../../../core/utils/call_once"));
var _window = require("../../../../core/utils/window");
function _interopRequireDefault(e) {
return e && e.__esModule ? e : {
default: e
}
}
const window = (0, _window.hasWindow)() ? (0, _window.getWindow)() : {};
const FRAME_ANIMATION_STEP_TIME = 1e3 / 60;
let request = function(callback) {
return setTimeout(callback, 16.666666666666668)
};
let cancel = function(requestID) {
clearTimeout(requestID)
};
const setAnimationFrameMethods = (0, _call_once.default)(() => {
const nativeRequest = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame;
const nativeCancel = window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || window.oCancelAnimationFrame || window.msCancelAnimationFrame;
if (nativeRequest && nativeCancel) {
request = nativeRequest;
cancel = nativeCancel
}
});
function requestAnimationFrame() {
setAnimationFrameMethods();
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key]
}
return request.apply(window, args)
}
function cancelAnimationFrame(requestID) {
setAnimationFrameMethods();
cancel.apply(window, [requestID])
}