| 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 |