mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-05-17 18:25:26 +00:00
66 lines
1.4 KiB
TypeScript
66 lines
1.4 KiB
TypeScript
import { Chart } from 'chart.js';
|
|
import { SearchResults } from '../documents';
|
|
|
|
import { Component, OnInit } from '@angular/core';
|
|
import { Subject, Observable } from 'rxjs';
|
|
|
|
@Component({
|
|
selector: 'app-timeseries',
|
|
templateUrl: './timeseries.component.html',
|
|
styleUrls: ['./timeseries.component.css']
|
|
})
|
|
export class TimeseriesComponent implements OnInit {
|
|
timeseries;
|
|
|
|
constructor() {}
|
|
|
|
ngOnInit() {}
|
|
|
|
update(agg: SearchResults.BucketAggregation) {
|
|
if (this.timeseries) {
|
|
this.timeseries.destroy();
|
|
}
|
|
if (!agg || agg.buckets.length == 0) {
|
|
this.timeseries = null;
|
|
return
|
|
}
|
|
|
|
let buckets = agg.buckets
|
|
.filter(bucket => new Date(bucket.key) > new Date(2017, 1));
|
|
|
|
let labels = buckets.map(bucket => new Date(bucket.key))
|
|
let counts = buckets.map(bucket => bucket.count);
|
|
|
|
let sum = 0;
|
|
for (let i = 0; i < counts.length; i++) {
|
|
sum += counts[i];
|
|
counts[i] = sum;
|
|
}
|
|
|
|
this.timeseries = new Chart('timeseries', {
|
|
type: 'line',
|
|
data: {
|
|
datasets: [{
|
|
label: 'Kustomizations Over time',
|
|
data: counts,
|
|
type: 'line',
|
|
pointRadius: 0,
|
|
lineTension: 0,
|
|
}],
|
|
labels: labels,
|
|
},
|
|
options: {
|
|
scales: {
|
|
xAxes: [{
|
|
type: 'time',
|
|
distribution: 'linear',
|
|
ticks: {
|
|
autoSkip: true,
|
|
},
|
|
}],
|
|
}
|
|
},
|
|
})
|
|
}
|
|
}
|