UNPKG

ng2-charts

Version:

Reactive, responsive, beautiful charts for Angular based on Chart.js

1 lines 20.7 kB
{"version":3,"file":"ng2-charts.mjs","sources":["../../../projects/ng2-charts/src/lib/theme.service.ts","../../../projects/ng2-charts/src/lib/base-chart.directive.ts","../../../projects/ng2-charts/src/lib/base-colors.ts","../../../projects/ng2-charts/src/lib/get-colors.ts","../../../projects/ng2-charts/src/lib/ng-charts.module.ts","../../../projects/ng2-charts/src/public_api.ts","../../../projects/ng2-charts/src/ng2-charts.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { ChartConfiguration, ChartOptions } from 'chart.js';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThemeService {\n private pColorschemesOptions?: ChartOptions;\n public colorschemesOptions: BehaviorSubject<ChartOptions | undefined> = new BehaviorSubject<ChartOptions | undefined>(undefined);\n\n constructor() {\n }\n\n setColorschemesOptions(options: ChartConfiguration['options']): void {\n this.pColorschemesOptions = options;\n this.colorschemesOptions.next(options);\n }\n\n getColorschemesOptions(): ChartConfiguration['options'] {\n return this.pColorschemesOptions;\n }\n}\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport {\n Chart,\n ChartConfiguration,\n ChartEvent,\n ChartType,\n DefaultDataPoint,\n Plugin\n} from 'chart.js';\n\nimport { ThemeService } from './theme.service';\nimport { Subscription } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\n\nimport { merge } from 'lodash-es';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'canvas[baseChart]',\n exportAs: 'base-chart',\n})\nexport class BaseChartDirective<TType extends ChartType = ChartType,\n TData = DefaultDataPoint<TType>,\n TLabel = unknown> implements OnDestroy, OnChanges {\n\n @Input() public type: ChartConfiguration<TType, TData, TLabel>['type'] = 'bar' as TType;\n @Input() public legend?: boolean;\n @Input() public data?: ChartConfiguration<TType, TData, TLabel>['data'];\n @Input() public options: ChartConfiguration<TType, TData, TLabel>['options'];\n @Input() public plugins: Plugin<TType>[] = [];\n\n @Input() public labels?: ChartConfiguration<TType, TData, TLabel>['data']['labels'];\n @Input() public datasets?: ChartConfiguration<TType, TData, TLabel>['data']['datasets'];\n\n @Output() public chartClick: EventEmitter<{ event?: ChartEvent, active?: {}[] }> = new EventEmitter();\n @Output() public chartHover: EventEmitter<{ event: ChartEvent, active: {}[] }> = new EventEmitter();\n\n public ctx: string;\n public chart?: Chart<TType, TData, TLabel>;\n\n private subs: Subscription[] = [];\n private themeOverrides: ChartConfiguration['options'] = {};\n\n public constructor(element: ElementRef, private zone: NgZone, private themeService: ThemeService) {\n this.ctx = element.nativeElement.getContext('2d');\n this.subs.push(this.themeService.colorschemesOptions\n .pipe(distinctUntilChanged())\n .subscribe(r => this.themeChanged(r)));\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const requireRender = [ 'type' ];\n const propertyNames = Object.getOwnPropertyNames(changes);\n\n if (propertyNames.some(key => requireRender.includes(key)) ||\n propertyNames.every(key => changes[key].isFirstChange())\n ) {\n this.render();\n } else {\n const config = this.getChartConfiguration();\n\n // Using assign to avoid changing the original object reference\n if (this.chart) {\n Object.assign(this.chart.config.data, config.data);\n if (this.chart.config.plugins) {\n Object.assign(this.chart.config.plugins, config.plugins);\n }\n if (this.chart.config.options) {\n Object.assign(this.chart.config.options, config.options);\n }\n }\n\n this.update();\n }\n }\n\n public ngOnDestroy(): void {\n if (this.chart) {\n this.chart.destroy();\n this.chart = void 0;\n }\n this.subs.forEach(s => s.unsubscribe());\n }\n\n public render(): Chart<TType, TData, TLabel> {\n if (this.chart) {\n this.chart.destroy();\n }\n\n return this.zone.runOutsideAngular(() => this.chart = new Chart(this.ctx, this.getChartConfiguration()));\n }\n\n public update(duration?: any): void {\n if (this.chart) {\n this.zone.runOutsideAngular(() => this.chart?.update(duration));\n }\n }\n\n public hideDataset(index: number, hidden: boolean): void {\n if (this.chart) {\n this.chart.getDatasetMeta(index).hidden = hidden;\n this.update();\n }\n }\n\n public isDatasetHidden(index: number): boolean | undefined {\n return this.chart?.getDatasetMeta(index)?.hidden;\n }\n\n public toBase64Image(): string | undefined {\n return this.chart?.toBase64Image();\n }\n\n private themeChanged(options: ChartConfiguration['options']): void {\n this.themeOverrides = options;\n if (this.chart) {\n if (this.chart.config.options) {\n Object.assign(this.chart.config.options, this.getChartOptions());\n }\n\n this.update();\n }\n }\n\n private getChartOptions(): ChartConfiguration<TType, TData, TLabel>['options'] {\n return merge({\n onHover: (event: ChartEvent, active: {}[]) => {\n if (!this.chartHover.observed && !this.chartHover.observers?.length) {\n return;\n }\n\n this.zone.run(() => this.chartHover.emit({ event, active }));\n },\n onClick: (event?: ChartEvent, active?: {}[]) => {\n if (!this.chartClick.observed && !this.chartClick.observers?.length) {\n return;\n }\n\n this.zone.run(() => this.chartClick.emit({ event, active }));\n }\n },\n this.themeOverrides,\n this.options,\n {\n plugins: {\n legend: {\n display: this.legend\n }\n }\n });\n }\n\n private getChartConfiguration(): ChartConfiguration<TType, TData, TLabel> {\n return {\n type: this.type,\n data: this.getChartData(),\n options: this.getChartOptions(),\n plugins: this.plugins\n };\n }\n\n private getChartData(): ChartConfiguration<TType, TData, TLabel>['data'] {\n return this.data ? this.data : {\n labels: this.labels || [],\n datasets: this.datasets || []\n }\n }\n}\n","export const baseColors: Array<number[]> = [\n [255, 99, 132],\n [54, 162, 235],\n [255, 206, 86],\n [231, 233, 237],\n [75, 192, 192],\n [151, 187, 205],\n [220, 220, 220],\n [247, 70, 74],\n [70, 191, 189],\n [253, 180, 92],\n [148, 159, 177],\n [77, 83, 96]\n];\n","import { baseColors } from './base-colors';\nimport { Color } from 'chart.js';\n\nexport const builtInDefaults = {\n plugins: { colors: {enabled: false }},\n datasets: {\n line: {\n backgroundColor: (context: any) => rgba(generateColor(context.datasetIndex), 0.4),\n borderColor: (context: any) => rgba(generateColor(context.datasetIndex), 1),\n pointBackgroundColor: (context: any) => rgba(generateColor(context.datasetIndex), 1),\n pointBorderColor: '#fff',\n },\n bar: {\n backgroundColor: (context: any) => rgba(generateColor(context.datasetIndex), 0.6),\n borderColor: (context: any) => rgba(generateColor(context.datasetIndex), 1)\n },\n get radar(): {[key: string]: ((context: any) => Color) | Color } {\n return this.line;\n },\n doughnut: {\n backgroundColor: (context: any) => rgba(generateColor(context.dataIndex), 0.6),\n borderColor: '#fff'\n },\n get pie(): {[key: string]: ((context: any) => Color) | Color } {\n return this.doughnut;\n },\n polarArea: {\n backgroundColor: (context: any) => rgba(generateColor(context.dataIndex), 0.6),\n borderColor: (context: any) => rgba(generateColor(context.dataIndex), 1),\n },\n get bubble(): {[key: string]: ((context: any) => Color) | Color } {\n return this.doughnut;\n },\n get scatter(): {[key: string]: ((context: any) => Color) | Color } {\n return this.doughnut;\n },\n get area(): {[key: string]: ((context: any) => Color) | Color } {\n return this.polarArea;\n }\n }\n};\n\nfunction rgba(colour: Array<number>, alpha: number): Color {\n return 'rgba(' + colour.concat(alpha).join(',') + ')';\n}\n\nfunction getRandomInt(min: number, max: number): number {\n return Math.floor(Math.random() * (max - min + 1)) + min;\n}\n\nfunction getRandomColor(): number[] {\n return [ getRandomInt(0, 255), getRandomInt(0, 255), getRandomInt(0, 255) ];\n}\n\n/**\n * Generate colors\n */\nfunction generateColor(index = 0): number[] {\n return baseColors[index] || getRandomColor();\n}\n","import { Injectable, ModuleWithProviders, NgModule, Optional } from '@angular/core';\nimport { BaseChartDirective } from './base-chart.directive';\nimport { Chart, registerables, ChartComponentLike, Defaults, defaults } from 'chart.js';\nimport { merge } from \"lodash-es\";\nimport { builtInDefaults } from \"./get-colors\";\n\n@Injectable({ providedIn: 'root' })\nexport class NgChartsConfiguration {\n public plugins?: ChartComponentLike[];\n public defaults?: Partial<Defaults>;\n public generateColors = true;\n}\n\nChart.register(...registerables);\n\n@NgModule({\n imports: [],\n declarations: [ BaseChartDirective ],\n exports: [ BaseChartDirective ]\n})\nexport class NgChartsModule {\n\n constructor(@Optional() config?: NgChartsConfiguration) {\n if (config?.plugins)\n Chart.register(...config?.plugins);\n\n const ngChartsDefaults = merge(config?.generateColors ? builtInDefaults : {}, config?.defaults || {});\n\n defaults.set(ngChartsDefaults);\n }\n\n public static forRoot(config?: NgChartsConfiguration): ModuleWithProviders<NgChartsModule> {\n return {\n ngModule: NgChartsModule,\n providers: [\n { provide: NgChartsConfiguration, useValue: config }\n ]\n };\n }\n}\n","/*\n * Public API Surface of ng2-charts\n */\n\nexport * from './lib/ng-charts.module';\nexport * from './lib/base-chart.directive';\nexport * from './lib/theme.service';\nexport * from './lib/base-colors';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.ThemeService"],"mappings":"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"}