UNPKG

jqwidgets-framework

Version:

jQWidgets is an advanced Angular, Vue, Blazor, React, Web Components, jquery, ASP .NET MVC, Custom Elements and HTML5 UI framework.

101 lines (84 loc) 3.18 kB
import { Component, ViewChild, AfterViewInit } from '@angular/core'; import { jqxChartComponent } from 'jqwidgets-ng/jqxchart'; @Component({ selector: 'app-root', templateUrl: './app.component.html' }) export class AppComponent implements AfterViewInit { @ViewChild('myChart', { static: false }) myChart: jqxChartComponent; getWidth() : any { if (document.body.offsetWidth < 850) { return '90%'; } return 850; } ngAfterViewInit(): void { let data = this.myChart.source(); let timer = setInterval(() => { let max = 800; for (let i = 0; i < data.length; i++) { data[i].a = Math.max(100, (Math.random() * 1000) % max); data[i].b = Math.max(100, (Math.random() * 1000) % max); } this.myChart.update(); }, 3000); } data: any[] = [ { a: 100, b: 200, c: 1 }, { a: 120, b: 140, c: 2 }, { a: 100, b: 110, c: 3 }, { a: 90, b: 135, c: 4 }, { a: 70, b: 210, c: 5 }, { a: 170, b: 210, c: 5 }, { a: 270, b: 350, c: 5 }, { a: 710, b: 410, c: 5 }, { a: 230, b: 305, c: 5 } ]; padding: any = { left: 5, top: 5, right: 5, bottom: 5 }; titlePadding: any = { left: 0, top: 0, right: 0, bottom: 10 }; xAxis: any = { unitInterval: 1, gridLines: { interval: 2 }, valuesOnTicks: false }; valueAxis: any = { minValue: 0, maxValue: 1000, title: { text: 'Index Value' }, labels: { horizontalAlignment: 'right' } }; seriesGroups: any[] = [ { type: 'column', columnsGapPercent: 50, alignEndPointsWithIntervals: true, series: [ { dataField: 'a', displayText: 'a', opacity: 1, lineWidth: 1, symbolType: 'circle', fillColorSymbolSelected: 'white', radius: 15 }, { dataField: 'b', displayText: 'b', opacity: 1, lineWidth: 1, symbolType: 'circle', fillColorSymbolSelected: 'white', radius: 15 } ] } ]; colorsSchemesList: string[] = ['scheme01', 'scheme02', 'scheme03', 'scheme04', 'scheme05', 'scheme06', 'scheme07', 'scheme08']; seriesList: string[] = ['splinearea', 'spline', 'column', 'scatter', 'stackedcolumn', 'stackedsplinearea', 'stackedspline']; colorsOnChange(event: any): void { let value = event.args.item.value; this.myChart.colorScheme(value); this.myChart.update(); } seriesOnChange(event: any): void { let args = event.args; if (args) { let value = args.item.value; let isLine = value.indexOf('line') != -1; let isArea = value.indexOf('area') != -1; let group = this.myChart.seriesGroups()[0]; group.series[0].opacity = group.series[1].opacity = isArea ? 0.7 : 1; group.series[0].lineWidth = group.series[1].lineWidth = isLine ? 2 : 1; group.type = value; this.myChart.update(); } } }