mirror of
https://github.com/akveo/ngx-admin.git
synced 2025-12-16 23:40:14 +01:00
57 lines
1.4 KiB
TypeScript
57 lines
1.4 KiB
TypeScript
import {Component, ViewEncapsulation} from '@angular/core';
|
|
|
|
import {PieChartService} from './pieChart.service';
|
|
|
|
import './pieChart.loader.ts';
|
|
import 'style-loader!./pieChart.scss';
|
|
|
|
@Component({
|
|
selector: 'pie-chart',
|
|
templateUrl: './pieChart.html'
|
|
})
|
|
// TODO: move easypiechart to component
|
|
export class PieChart {
|
|
|
|
public charts: Array<Object>;
|
|
private _init = false;
|
|
|
|
constructor(private _pieChartService: PieChartService) {
|
|
this.charts = this._pieChartService.getData();
|
|
}
|
|
|
|
ngAfterViewInit() {
|
|
if (!this._init) {
|
|
this._loadPieCharts();
|
|
this._updatePieCharts();
|
|
this._init = true;
|
|
}
|
|
}
|
|
|
|
private _loadPieCharts() {
|
|
|
|
jQuery('.chart').each(function () {
|
|
let chart = jQuery(this);
|
|
chart.easyPieChart({
|
|
easing: 'easeOutBounce',
|
|
onStep: function (from, to, percent) {
|
|
jQuery(this.el).find('.percent').text(Math.round(percent));
|
|
},
|
|
barColor: jQuery(this).attr('data-rel'),
|
|
trackColor: 'rgba(0,0,0,0)',
|
|
size: 84,
|
|
scaleLength: 0,
|
|
animation: 2000,
|
|
lineWidth: 9,
|
|
lineCap: 'round',
|
|
});
|
|
});
|
|
}
|
|
|
|
private _updatePieCharts() {
|
|
let getRandomArbitrary = (min, max) => { return Math.random() * (max - min) + min; };
|
|
|
|
jQuery('.pie-charts .chart').each(function(index, chart) {
|
|
jQuery(chart).data('easyPieChart').update(getRandomArbitrary(55, 90));
|
|
});
|
|
}
|
|
}
|