import { Subscription } from '../Subscription'; export const animationFrameProvider = { schedule(callback) { let request = requestAnimationFrame; let cancel = cancelAnimationFrame; const { delegate } = animationFrameProvider; if (delegate) { request = delegate.requestAnimationFrame; cancel = delegate.cancelAnimationFrame; } const handle = request((timestamp) => { cancel = undefined; callback(timestamp); }); return new Subscription(() => cancel === null || cancel === void 0 ? void 0 : cancel(handle)); }, requestAnimationFrame(...args) { const { delegate } = animationFrameProvider; return ((delegate === null || delegate === void 0 ? void 0 : delegate.requestAnimationFrame) || requestAnimationFrame)(...args); }, cancelAnimationFrame(...args) { const { delegate } = animationFrameProvider; return ((delegate === null || delegate === void 0 ? void 0 : delegate.cancelAnimationFrame) || cancelAnimationFrame)(...args); }, delegate: undefined, }; //# sourceMappingURL=animationFrameProvider.js.map