carbon-components-angular
Version:
Next generation components
39 lines • 5.14 kB
JavaScript
import { Injectable } from "@angular/core";
import { Subject, from } from "rxjs";
import * as i0 from "@angular/core";
export class AnimationFrameServiceSingleton {
constructor(ngZone) {
this.ngZone = ngZone;
this.frameSource = new Subject();
this.tick = this.frameSource.asObservable();
this.ngZone.runOutsideAngular(() => {
this.animationFrameId = requestAnimationFrame(this.doTick.bind(this));
});
}
ngOnDestroy() {
cancelAnimationFrame(this.animationFrameId);
}
doTick(frame) {
this.frameSource.next(frame);
this.ngZone.runOutsideAngular(() => {
requestAnimationFrame(this.doTick.bind(this));
});
}
}
AnimationFrameServiceSingleton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AnimationFrameServiceSingleton, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
AnimationFrameServiceSingleton.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AnimationFrameServiceSingleton });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AnimationFrameServiceSingleton, decorators: [{
type: Injectable
}], ctorParameters: function () { return [{ type: i0.NgZone }]; } });
export class AnimationFrameService {
constructor(singleton) {
this.singleton = singleton;
this.tick = from(this.singleton.tick);
}
}
AnimationFrameService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AnimationFrameService, deps: [{ token: AnimationFrameServiceSingleton }], target: i0.ɵɵFactoryTarget.Injectable });
AnimationFrameService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AnimationFrameService });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AnimationFrameService, decorators: [{
type: Injectable
}], ctorParameters: function () { return [{ type: AnimationFrameServiceSingleton }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0aW9uLWZyYW1lLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvYW5pbWF0aW9uLWZyYW1lLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLFVBQVUsRUFHVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFHakQsTUFBTSxPQUFPLDhCQUE4QjtJQU8xQyxZQUFzQixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUoxQixnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFLN0MsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzVDLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVc7UUFDVixvQkFBb0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRVMsTUFBTSxDQUFDLEtBQWE7UUFDN0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDbEMscUJBQXFCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMvQyxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OzJIQXZCVyw4QkFBOEI7K0hBQTlCLDhCQUE4QjsyRkFBOUIsOEJBQThCO2tCQUQxQyxVQUFVOztBQTRCWCxNQUFNLE9BQU8scUJBQXFCO0lBR2pDLFlBQXNCLFNBQXlDO1FBQXpDLGNBQVMsR0FBVCxTQUFTLENBQWdDO1FBQzlELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQzs7a0hBTFcscUJBQXFCO3NIQUFyQixxQkFBcUI7MkZBQXJCLHFCQUFxQjtrQkFEakMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdEluamVjdGFibGUsXG5cdE9uRGVzdHJveSxcblx0Tmdab25lXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBmcm9tIH0gZnJvbSBcInJ4anNcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFuaW1hdGlvbkZyYW1lU2VydmljZVNpbmdsZXRvbiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cdHB1YmxpYyB0aWNrOiBPYnNlcnZhYmxlPG51bWJlcj47XG5cblx0cHJvdGVjdGVkIGZyYW1lU291cmNlID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xuXG5cdHByb3RlY3RlZCBhbmltYXRpb25GcmFtZUlkOiBudW1iZXI7XG5cblx0Y29uc3RydWN0b3IocHJvdGVjdGVkIG5nWm9uZTogTmdab25lKSB7XG5cdFx0dGhpcy50aWNrID0gdGhpcy5mcmFtZVNvdXJjZS5hc09ic2VydmFibGUoKTtcblx0XHR0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG5cdFx0XHR0aGlzLmFuaW1hdGlvbkZyYW1lSWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy5kb1RpY2suYmluZCh0aGlzKSk7XG5cdFx0fSk7XG5cdH1cblxuXHRuZ09uRGVzdHJveSgpIHtcblx0XHRjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLmFuaW1hdGlvbkZyYW1lSWQpO1xuXHR9XG5cblx0cHJvdGVjdGVkIGRvVGljayhmcmFtZTogbnVtYmVyKSB7XG5cdFx0dGhpcy5mcmFtZVNvdXJjZS5uZXh0KGZyYW1lKTtcblx0XHR0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG5cdFx0XHRyZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy5kb1RpY2suYmluZCh0aGlzKSk7XG5cdFx0fSk7XG5cdH1cbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFuaW1hdGlvbkZyYW1lU2VydmljZSB7XG5cdHB1YmxpYyB0aWNrOiBPYnNlcnZhYmxlPG51bWJlcj47XG5cblx0Y29uc3RydWN0b3IocHJvdGVjdGVkIHNpbmdsZXRvbjogQW5pbWF0aW9uRnJhbWVTZXJ2aWNlU2luZ2xldG9uKSB7XG5cdFx0dGhpcy50aWNrID0gZnJvbSh0aGlzLnNpbmdsZXRvbi50aWNrKTtcblx0fVxufVxuIl19