|
import { __read, __spreadArray } from "tslib"; |
|
import { Subscription } from '../Subscription'; |
|
export var animationFrameProvider = { |
|
schedule: function (callback) { |
|
var request = requestAnimationFrame; |
|
var cancel = cancelAnimationFrame; |
|
var delegate = animationFrameProvider.delegate; |
|
if (delegate) { |
|
request = delegate.requestAnimationFrame; |
|
cancel = delegate.cancelAnimationFrame; |
|
} |
|
var handle = request(function (timestamp) { |
|
cancel = undefined; |
|
callback(timestamp); |
|
}); |
|
return new Subscription(function () { return cancel === null || cancel === void 0 ? void 0 : cancel(handle); }); |
|
}, |
|
requestAnimationFrame: function () { |
|
var args = []; |
|
for (var _i = 0; _i < arguments.length; _i++) { |
|
args[_i] = arguments[_i]; |
|
} |
|
var delegate = animationFrameProvider.delegate; |
|
return ((delegate === null || delegate === void 0 ? void 0 : delegate.requestAnimationFrame) || requestAnimationFrame).apply(void 0, __spreadArray([], __read(args))); |
|
}, |
|
cancelAnimationFrame: function () { |
|
var args = []; |
|
for (var _i = 0; _i < arguments.length; _i++) { |
|
args[_i] = arguments[_i]; |
|
} |
|
var delegate = animationFrameProvider.delegate; |
|
return ((delegate === null || delegate === void 0 ? void 0 : delegate.cancelAnimationFrame) || cancelAnimationFrame).apply(void 0, __spreadArray([], __read(args))); |
|
}, |
|
delegate: undefined, |
|
}; |
|
|