mirror of
https://github.com/akveo/ngx-admin.git
synced 2026-02-16 04:58:08 +01:00
With this change all components, which used data services before, now use abstract classes of service interfaces, mock services extend interface services, CoreModule contains code to inject a needed implementation of some service.
43 lines
1.1 KiB
TypeScript
43 lines
1.1 KiB
TypeScript
import { Injectable } from '@angular/core';
|
|
import { of as observableOf, Observable } from 'rxjs';
|
|
import { ProfitBarAnimationChartData } from '../data/profit-bar-animation-chart';
|
|
|
|
@Injectable()
|
|
export class ProfitBarAnimationChartService extends ProfitBarAnimationChartData {
|
|
|
|
private data: any;
|
|
|
|
constructor() {
|
|
super();
|
|
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);
|
|
}
|
|
}
|