mirror of
https://github.com/akveo/ngx-admin.git
synced 2026-03-08 06:32:35 +01:00
42 lines
975 B
TypeScript
42 lines
975 B
TypeScript
|
|
import { Injectable } from '@angular/core';
|
||
|
|
import { of as observableOf, Observable } from 'rxjs';
|
||
|
|
|
||
|
|
@Injectable()
|
||
|
|
export class ProfitBarAnimationChartService {
|
||
|
|
|
||
|
|
private data: any;
|
||
|
|
|
||
|
|
constructor() {
|
||
|
|
this.data = {
|
||
|
|
firstLine: this.getDataForFirstLine(),
|
||
|
|
secondLine: this.getDataForSecondLine(),
|
||
|
|
};
|
||
|
|
}
|
||
|
|
|
||
|
|
getDataForFirstLine(): number[] {
|
||
|
|
return this.createEmptyArray(100)
|
||
|
|
.map((_, index) => {
|
||
|
|
const oneFifth = index / 5;
|
||
|
|
|
||
|
|
return (Math.sin(oneFifth) * (oneFifth - 10) + index / 6) * 5;
|
||
|
|
});
|
||
|
|
}
|
||
|
|
|
||
|
|
getDataForSecondLine(): number[] {
|
||
|
|
return this.createEmptyArray(100)
|
||
|
|
.map((_, index) => {
|
||
|
|
const oneFifth = index / 5;
|
||
|
|
|
||
|
|
return (Math.cos(oneFifth) * (oneFifth - 10) + index / 6) * 5;
|
||
|
|
});
|
||
|
|
}
|
||
|
|
|
||
|
|
createEmptyArray(nPoints: number) {
|
||
|
|
return Array.from(Array(nPoints));
|
||
|
|
}
|
||
|
|
|
||
|
|
getChartData(): Observable<{ firstLine: number[]; secondLine: number[] }> {
|
||
|
|
return observableOf(this.data);
|
||
|
|
}
|
||
|
|
}
|