From e4fa1e69e7ebfb627c7198fd1a9881e9327ec4d4 Mon Sep 17 00:00:00 2001 From: Pinapelz Date: Sat, 28 Jun 2025 17:26:46 -0700 Subject: initial commit: scaffolding --- .../esm/internal/observable/dom/animationFrames.js | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 node_modules/rxjs/dist/esm/internal/observable/dom/animationFrames.js (limited to 'node_modules/rxjs/dist/esm/internal/observable/dom/animationFrames.js') diff --git a/node_modules/rxjs/dist/esm/internal/observable/dom/animationFrames.js b/node_modules/rxjs/dist/esm/internal/observable/dom/animationFrames.js new file mode 100644 index 0000000..d29825f --- /dev/null +++ b/node_modules/rxjs/dist/esm/internal/observable/dom/animationFrames.js @@ -0,0 +1,34 @@ +import { Observable } from '../../Observable'; +import { performanceTimestampProvider } from '../../scheduler/performanceTimestampProvider'; +import { animationFrameProvider } from '../../scheduler/animationFrameProvider'; +export function animationFrames(timestampProvider) { + return timestampProvider ? animationFramesFactory(timestampProvider) : DEFAULT_ANIMATION_FRAMES; +} +function animationFramesFactory(timestampProvider) { + return new Observable((subscriber) => { + const provider = timestampProvider || performanceTimestampProvider; + const start = provider.now(); + let id = 0; + const run = () => { + if (!subscriber.closed) { + id = animationFrameProvider.requestAnimationFrame((timestamp) => { + id = 0; + const now = provider.now(); + subscriber.next({ + timestamp: timestampProvider ? now : timestamp, + elapsed: now - start, + }); + run(); + }); + } + }; + run(); + return () => { + if (id) { + animationFrameProvider.cancelAnimationFrame(id); + } + }; + }); +} +const DEFAULT_ANIMATION_FRAMES = animationFramesFactory(); +//# sourceMappingURL=animationFrames.js.map \ No newline at end of file -- cgit v1.2.3