wishthis/node_modules/rxjs/dist/cjs/internal/observable/dom/animationFrames.js

33 lines
1.5 KiB
JavaScript
Raw Normal View History

2022-06-08 10:36:39 +00:00
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.animationFrames = void 0;
var Observable_1 = require("../../Observable");
var Subscription_1 = require("../../Subscription");
var performanceTimestampProvider_1 = require("../../scheduler/performanceTimestampProvider");
var animationFrameProvider_1 = require("../../scheduler/animationFrameProvider");
function animationFrames(timestampProvider) {
return timestampProvider ? animationFramesFactory(timestampProvider) : DEFAULT_ANIMATION_FRAMES;
}
exports.animationFrames = animationFrames;
function animationFramesFactory(timestampProvider) {
var schedule = animationFrameProvider_1.animationFrameProvider.schedule;
return new Observable_1.Observable(function (subscriber) {
var subscription = new Subscription_1.Subscription();
var provider = timestampProvider || performanceTimestampProvider_1.performanceTimestampProvider;
var start = provider.now();
var run = function (timestamp) {
var now = provider.now();
subscriber.next({
timestamp: timestampProvider ? now : timestamp,
elapsed: now - start,
});
if (!subscriber.closed) {
subscription.add(schedule(run));
}
};
subscription.add(schedule(run));
return subscription;
});
}
var DEFAULT_ANIMATION_FRAMES = animationFramesFactory();
//# sourceMappingURL=animationFrames.js.map