angular-advance-chart
Version:
Angular Advance Chart provides chart solution for Angular.Currently supports Bar, Pie and Donut chart
1 lines • 27.3 kB
Source Map (JSON)
{"version":3,"file":"angular-advance-chart.js","sources":["ng://angular-advance-chart/lib/_component/bar-chart/bar-chart.component.ts","ng://angular-advance-chart/lib/_component/donut-chart/donut-chart.component.ts","ng://angular-advance-chart/lib/_component/pie-chart/pie-chart.component.ts","ng://angular-advance-chart/lib/_directive/tooltip.directive.ts","ng://angular-advance-chart/lib/angular-advance-chart.module.ts","ng://angular-advance-chart/public-api.ts","ng://angular-advance-chart/angular-advance-chart.ts"],"sourcesContent":["import {\n AfterViewInit, Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild,\n} from '@angular/core';\nimport { BarChartOption } from '../../_model/barChartOptions';\nimport { ChartData, ChartView } from '../../_model/chartData';\n\n\n@Component({\n selector: 'ngx-bar-chart',\n templateUrl: './bar-chart.component.html',\n styleUrls: ['./bar-chart.component.scss']\n})\nexport class BarChartComponent implements OnInit, AfterViewInit {\n @Output() selectedItem = new EventEmitter<string>();\n @Input() chartData: ChartData[] = [];\n @Input() chartOptions: BarChartOption = {\n roundedCorners: false,\n isHorizontal: false,\n showLegend: true,\n legendTitle: 'Total',\n };\n @Input() view: ChartView = {\n height: 200,\n width: 200\n };\n lines = [];\n totalSum = 0;\n isHorizontal = true;\n barLineType = 'round'\n chartView = [];\n scale = 100;\n constructor() { }\n\n ngOnInit(): void {\n\n this.chartView.push(this.view.height + 'px')\n this.chartView.push(this.view.width + 'px')\n\n this.barLineType = this.chartOptions['roundedCorners'] ? 'round' : 'butt'\n this.isHorizontal = this.chartOptions['isHorizontal'] ? true : false;\n this.scale = this.isHorizontal ? this.view.width : this.view.height;\n\n \n\n this.getTotalSum(this.chartData);\n let value = Math.max.apply(\n Math,\n this.chartData.map(function (o) {\n return o.value;\n })\n );\n if (value > this.scale) {\n let normalizedValue = value / this.scale;\n this.chartData.map((y, index) => {\n this.chartData[index]['normalized'] = Number(y.value) / normalizedValue;\n });\n } else {\n let normalizedValue = this.scale / value;\n this.chartData.map((y, index) => {\n this.chartData[index]['normalized'] = Number(y.value) * normalizedValue;\n });\n }\n\n this.lines = this.isHorizontal ? this.calculateHorizontalBarLines(this.chartData) : this.calculateVerticalBarLines(this.chartData);\n }\n\n ngAfterViewInit(): void { }\n\n getItemClicked(line) {\n let selectedbar = {\n name: line.name,\n value: line.value\n }\n this.selectedItem.emit(JSON.stringify(selectedbar));\n }\n\n calculateHorizontalBarLines(graphData) {\n let barLines = [];\n graphData.map((x, index) => {\n let background = {\n x1: 10,\n y1: index * 20 + 20,\n y2: index * 20 + 20,\n x2: this.view.width,\n color: '#EBEBEB',\n name: x.name,\n value: x.value\n };\n barLines.push(background)\n\n if (x.value > 0) {\n let line = {\n x1: 10,\n y1: index * 20 + 20,\n y2: index * 20 + 20,\n x2: x.normalized < 10 ? this.barLineType == 'butt' ? 11 : 10 : x.normalized,\n color: x.color,\n name: x.name,\n value: x.value\n };\n barLines.push(line);\n }\n\n });\n return barLines;\n }\n\n\n calculateVerticalBarLines(graphData) {\n let barLines = [];\n\n graphData.map((x, index) => {\n let background = {\n x1: index * 20 + 20,\n y1: 10,\n x2: index * 20 + 20,\n y2: this.scale,\n color: '#EBEBEB',\n name: x.name,\n value: x.value\n };\n barLines.push(background)\n\n if (x.value > 0) {\n let line = {\n x1: index * 20 + 20,\n y1: (this.scale+10) - x.normalized > this.scale ? this.barLineType == 'butt' ? (this.scale-1) : this.scale : (this.scale+10) - x.normalized,\n x2: index * 20 + 20,\n y2: this.scale,\n color: x.color,\n name: x.name,\n value: x.value\n };\n barLines.push(line);\n\n }\n\n });\n console.log(barLines)\n return barLines;\n }\n\n\n\n getTotalSum(chartData) {\n // Get total number of records\n this.totalSum = chartData.reduce(function (a, b) {\n return a + parseInt(b.value);\n }, 0);\n }\n}","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, QueryList, ViewChildren } from '@angular/core';\nimport { ChartData, ChartOption } from '../../_model/chartData';\nimport { DonutChartView } from '../../_model/donutChartOptions';\n\n\n@Component({\n selector: 'ngx-donut-chart',\n templateUrl: './donut-chart.component.html',\n styleUrls: ['./donut-chart.component.scss']\n})\nexport class DonutChartComponent implements OnInit {\n\n @Input() chartData: ChartData[];\n @Output() selectedItem = new EventEmitter<any>();\n @ViewChildren('el') span: QueryList<ElementRef>;\n @Input() chartOptions: ChartOption = {\n showLegend: true,\n legendTitle: 'Total',\n }\n @Input() view: DonutChartView = {\n height: 200,\n width: 200,\n radius: 80,\n donutSize: 20\n }\n totalSum = 0;\n processedData = [];\n legendData = [];\n chartView = [];\n constructor() { }\n\n ngOnInit(): void {\n if (this.chartData) {\n this.view['donutSize'] = this.view['donutSize'] ? this.view['donutSize'] : 20;\n this.chartView.push(this.view.height + 'px')\n this.chartView.push(this.view.width + 'px')\n\n // Get total number of records\n this.totalSum = this.chartData.reduce(function (a, b) {\n return a + b.value;\n }, 0);\n\n //generate Data for list\n let prevAngle = 0\n this.chartData.map((x, index) => {\n let legend = {\n name: x.name,\n value: x.value,\n color: x.color\n }\n\n this.legendData.push(legend)\n let percentage = this.getPercentage(x.value, this.totalSum);\n if (percentage > 0) {\n let circlePercentage = percentage / 10 * 36;\n let pieData = {\n color: x.color,\n a1: prevAngle,\n a2: prevAngle + circlePercentage,\n name: x.name\n }\n prevAngle = prevAngle + circlePercentage\n this.processedData.push(pieData);\n }\n });\n }\n }\n\n\n getPercentage(partialValue, totalValue): number {\n return (100 * partialValue) / totalValue;\n }\n\n ngAfterViewInit(): void {\n\n //create svg\n if (this.processedData.length > 0) {\n this.span.map((item: ElementRef, index) => {\n item.nativeElement.setAttribute('d', this.describeArc(this.view.height / 2, this.view.width / 2, this.view.radius, this.processedData[index].a1, this.processedData[index].a2 == 360 ? 359.99 : this.processedData[index].a2));\n item.nativeElement.setAttribute('stroke', this.processedData[index].color);\n });\n }\n\n }\n\n\n polarToCartesian(centerX, centerY, radius, angleInDegrees) {\n let angleInRadians = (angleInDegrees - 90) * Math.PI / 180.0;\n\n return {\n x: centerX + (radius * Math.cos(angleInRadians)),\n y: centerY + (radius * Math.sin(angleInRadians))\n };\n }\n\n describeArc(x, y, radius, startAngle, endAngle) {\n let start = this.polarToCartesian(x, y, radius, endAngle);\n let end = this.polarToCartesian(x, y, radius, startAngle);\n let largeArcFlag = endAngle - startAngle <= 180 ? \"0\" : \"1\";\n\n let d = [\n \"M\", start.x, start.y,\n \"A\", radius, radius, 0, largeArcFlag, 0, end.x, end.y\n ].join(\" \");\n\n return d;\n }\n\n getItemClicked(item) {\n let selected = {\n name: item.name,\n value: item.value\n }\n this.selectedItem.emit(selected);\n }\n\n show(status) {\n }\n}\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, QueryList, ViewChildren } from '@angular/core';\nimport { ChartData, ChartOption } from '../../_model/chartData';\nimport { PieChartView } from '../../_model/pieChartOptions';\n\n\n@Component({\n selector: 'ngx-pie-chart',\n templateUrl: './pie-chart.component.html',\n styleUrls: ['./pie-chart.component.scss']\n})\nexport class PieChartComponent implements OnInit {\n\n @Input() chartData: ChartData[];\n @ViewChildren('el') span: QueryList<ElementRef>;\n @Output() selectedItem = new EventEmitter<any>();\n @Input() chartOptions: ChartOption = {\n showLegend : true,\n legendTitle: 'Total',\n }\n @Input() view: PieChartView = {\n height: 200,\n width: 200,\n radius : 80\n }\n chartView = [];\n totalSum = 0;\n processedData = []\n legendData = []\n\n constructor() { }\n\n ngOnInit(): void {\n\n this.chartView.push(this.view.height+'px')\n this.chartView.push(this.view.width+'px')\n\n if (this.chartData) {\n // Get total number of records\n this.totalSum = this.chartData.reduce(function (a, b) {\n return a + b.value;\n }, 0);\n\n\n\n //generate Data for piechart\n let prevAngle = 0\n this.chartData.map((x, index) => {\n\n let legend = {\n name: x.name,\n value: x.value,\n color: x.color\n }\n\n this.legendData.push(legend)\n\n let percentage = this.getPercentage(x.value, this.totalSum);\n if (percentage > 0) {\n let circlePercentage = percentage / 10 * 36;\n let pieData = {\n color: x.color,\n a1: prevAngle,\n a2: prevAngle + circlePercentage,\n name: x.name\n }\n prevAngle = prevAngle + circlePercentage\n this.processedData.push(pieData);\n }\n });\n }\n\n }\n\n\n ngAfterViewInit(): void {\n // create svg \n if (this.processedData.length > 0) {\n this.span.map((item: ElementRef, index) => {\n this.processedData[index].a2 = this.processedData[index].a2 >= 360 ? 359.9 : this.processedData[index].a2;\n item.nativeElement.setAttribute('d', this.describeArc(this.view.height/2, this.view.height/2, this.view.radius, this.processedData[index].a1, this.processedData[index].a2));\n item.nativeElement.setAttribute('fill', this.processedData[index].color);\n });\n }\n\n }\n\n polarToCartesian(centerX, centerY, radius, angleInDegrees) {\n let angleInRadians = (angleInDegrees - 90) * Math.PI / 180.0;\n\n return {\n x: centerX + (radius * Math.cos(angleInRadians)),\n y: centerY + (radius * Math.sin(angleInRadians))\n };\n }\n\n describeArc(x, y, radius, startAngle, endAngle) {\n let start = this.polarToCartesian(x, y, radius, endAngle);\n let end = this.polarToCartesian(x, y, radius, startAngle);\n\n let arcSweep = endAngle - startAngle <= 180 ? \"0\" : \"1\";\n\n let d = [\n \"M\", start.x, start.y,\n \"A\", radius, radius, 0, arcSweep, 0, end.x, end.y,\n \"L\", x, y,\n \"L\", start.x, start.y\n ].join(\" \");\n return d;\n }\n\n getPercentage(partialValue, totalValue): number {\n return (100 * partialValue) / totalValue;\n }\n getItemClicked(item) {\n let selected = {\n name:item.name,\n value:item.value\n }\n this.selectedItem.emit(selected); }\n\n}","import { Directive, Input, ElementRef, HostListener, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[chartTooltip]'\n})\nexport class TooltipDirective {\n @Input('tooltip') tooltipTitle: string;\n tooltip: HTMLElement;\n\n constructor(private el: ElementRef, private renderer: Renderer2) { }\n\n @HostListener('mouseenter', ['$event']) onMouseEnter(event:any) {\n if (!this.tooltip) { this.show(event); }\n }\n\n @HostListener('mouseleave') onMouseLeave() {\n if (this.tooltip) { this.hide(); }\n }\n\n show(event) {\n this.create();\n this.setPosition(event);\n this.renderer.addClass(this.tooltip, 'chart-tooltip-show');\n }\n\n hide() {\n this.renderer.removeClass(this.tooltip, 'chart-tooltip-show');\n this.renderer.removeChild(document.body, this.tooltip);\n this.tooltip = null;\n\n }\n\n create() {\n this.tooltip = this.renderer.createElement('span');\n\n this.renderer.appendChild(\n this.tooltip,\n this.renderer.createText(this.tooltipTitle) // textNode\n );\n\n this.renderer.appendChild(document.body, this.tooltip);\n this.renderer.addClass(this.tooltip, 'chart-tooltip');\n }\n\n setPosition(event) {\n\n const scrollPos = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\n\n let top=event.y;\n let left=event.x\n this.renderer.setStyle(this.tooltip, 'top', `${top + scrollPos}px`);\n this.renderer.setStyle(this.tooltip, 'left', `${left}px`);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { BarChartComponent } from './_component/bar-chart/bar-chart.component';\nimport { DonutChartComponent } from './_component/donut-chart/donut-chart.component';\nimport { PieChartComponent } from './_component/pie-chart/pie-chart.component';\nimport { TooltipDirective } from './_directive/tooltip.directive';\n\n@NgModule({\n declarations: [PieChartComponent, BarChartComponent, DonutChartComponent, TooltipDirective],\n imports: [\n CommonModule\n ],\n exports: [PieChartComponent, BarChartComponent, DonutChartComponent]\n})\nexport class AngularAdvanceChartModule { }\n","/*\n * Public API Surface of angular-advance-chart\n */\n\nexport * from './lib/angular-advance-chart.module';\nexport * from './lib/_component/bar-chart/bar-chart.component';\nexport * from './lib/_component/donut-chart/donut-chart.component';\nexport * from './lib/_component/pie-chart/pie-chart.component';\nexport * from './lib/_model/index'","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {TooltipDirective as ɵa} from './lib/_directive/tooltip.directive';"],"names":[],"mappings":"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"}