ng-apexcharts
Version:
An angular implementation of ApexCharts
1 lines • 15.5 kB
Source Map (JSON)
{"version":3,"file":"ng-apexcharts.mjs","sources":["../../../projects/ng-apexcharts/src/lib/chart/chart.component.ts","../../../projects/ng-apexcharts/src/lib/ng-apexcharts.module.ts","../../../projects/ng-apexcharts/src/public_api.ts","../../../projects/ng-apexcharts/src/ng-apexcharts.ts"],"sourcesContent":["import { isPlatformBrowser } from \"@angular/common\";\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n input,\n NgZone,\n OnChanges,\n OnDestroy,\n output,\n PLATFORM_ID,\n signal,\n SimpleChanges,\n viewChild,\n} from \"@angular/core\";\nimport { asapScheduler } from \"rxjs\";\nimport {\n ApexAnnotations,\n ApexAxisChartSeries,\n ApexChart,\n ApexDataLabels,\n ApexFill,\n ApexForecastDataPoints,\n ApexGrid,\n ApexLegend,\n ApexMarkers,\n ApexNoData,\n ApexNonAxisChartSeries,\n ApexPlotOptions,\n ApexResponsive,\n ApexStates,\n ApexStroke,\n ApexTheme,\n ApexTitleSubtitle,\n ApexTooltip,\n ApexXAxis,\n ApexYAxis,\n} from \"../model/apex-types\";\n\ntype ApexCharts = import(\"apexcharts\");\n\ndeclare global {\n interface Window {\n ApexCharts: typeof ApexCharts;\n }\n}\n\n@Component({\n selector: \"apx-chart\",\n template: `<div #chart></div>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class ChartComponent implements OnChanges, OnDestroy {\n readonly chart = input<ApexChart>();\n readonly annotations = input<ApexAnnotations>();\n readonly colors = input<any[]>();\n readonly dataLabels = input<ApexDataLabels>();\n readonly series = input<ApexAxisChartSeries | ApexNonAxisChartSeries>();\n readonly stroke = input<ApexStroke>();\n readonly labels = input<string[]>();\n readonly legend = input<ApexLegend>();\n readonly markers = input<ApexMarkers>();\n readonly noData = input<ApexNoData>();\n readonly fill = input<ApexFill>();\n readonly tooltip = input<ApexTooltip>();\n readonly plotOptions = input<ApexPlotOptions>();\n readonly responsive = input<ApexResponsive[]>();\n readonly xaxis = input<ApexXAxis>();\n readonly yaxis = input<ApexYAxis | ApexYAxis[]>();\n readonly forecastDataPoints = input<ApexForecastDataPoints>();\n readonly grid = input<ApexGrid>();\n readonly states = input<ApexStates>();\n readonly title = input<ApexTitleSubtitle>();\n readonly subtitle = input<ApexTitleSubtitle>();\n readonly theme = input<ApexTheme>();\n\n readonly autoUpdateSeries = input(true);\n\n readonly chartReady = output<{ chartObj: ApexCharts }>();\n\n // If consumers need to capture the `chartInstance` for use, consumers\n // can access the component instance through `viewChild` and use `computed`\n // or `effect` on `component.chartInstance()` to monitor its changes and\n // recompute effects or computations whenever `chartInstance` is updated.\n readonly chartInstance = signal<ApexCharts | null>(null);\n\n private readonly chartElement =\n viewChild.required<ElementRef<HTMLElement>>(\"chart\");\n\n private ngZone = inject(NgZone);\n private isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!this.isBrowser) return;\n\n this.ngZone.runOutsideAngular(() => {\n asapScheduler.schedule(() => this.hydrate(changes));\n });\n }\n\n ngOnDestroy() {\n this.destroy();\n }\n\n private hydrate(changes: SimpleChanges): void {\n const shouldUpdateSeries =\n this.autoUpdateSeries() &&\n Object.keys(changes).filter((c) => c !== \"series\").length === 0;\n\n if (shouldUpdateSeries) {\n this.updateSeries(this.series(), true);\n return;\n }\n\n this.createElement();\n }\n\n private async createElement() {\n const { default: ApexCharts } = await import(\"apexcharts\");\n window.ApexCharts ||= ApexCharts;\n\n const options: any = {};\n\n const properties = [\n \"annotations\",\n \"chart\",\n \"colors\",\n \"dataLabels\",\n \"series\",\n \"stroke\",\n \"labels\",\n \"legend\",\n \"fill\",\n \"tooltip\",\n \"plotOptions\",\n \"responsive\",\n \"markers\",\n \"noData\",\n \"xaxis\",\n \"yaxis\",\n \"forecastDataPoints\",\n \"grid\",\n \"states\",\n \"title\",\n \"subtitle\",\n \"theme\",\n ] as const;\n\n properties.forEach((property) => {\n const value = this[property]();\n if (value) {\n options[property] = value;\n }\n });\n\n this.destroy();\n\n const chartInstance = this.ngZone.runOutsideAngular(\n () => new ApexCharts(this.chartElement().nativeElement, options)\n );\n\n this.chartInstance.set(chartInstance);\n\n this.render();\n this.chartReady.emit({ chartObj: chartInstance });\n }\n\n public render() {\n return this.ngZone.runOutsideAngular(() => this.chartInstance()?.render());\n }\n\n public updateOptions(\n options: any,\n redrawPaths?: boolean,\n animate?: boolean,\n updateSyncedCharts?: boolean\n ) {\n return this.ngZone.runOutsideAngular(() =>\n this.chartInstance()?.updateOptions(\n options,\n redrawPaths,\n animate,\n updateSyncedCharts\n )\n );\n }\n\n public updateSeries(\n newSeries: ApexAxisChartSeries | ApexNonAxisChartSeries,\n animate?: boolean\n ) {\n return this.ngZone.runOutsideAngular(() =>\n this.chartInstance()?.updateSeries(newSeries, animate)\n );\n }\n\n public appendSeries(\n newSeries: ApexAxisChartSeries | ApexNonAxisChartSeries,\n animate?: boolean\n ) {\n this.ngZone.runOutsideAngular(() =>\n this.chartInstance()?.appendSeries(newSeries, animate)\n );\n }\n\n public appendData(newData: any[]) {\n this.ngZone.runOutsideAngular(() =>\n this.chartInstance()?.appendData(newData)\n );\n }\n\n public highlightSeries(seriesName: string): any {\n return this.ngZone.runOutsideAngular(() =>\n this.chartInstance()?.highlightSeries(seriesName)\n );\n }\n\n public toggleSeries(seriesName: string): any {\n return this.ngZone.runOutsideAngular(() =>\n this.chartInstance()?.toggleSeries(seriesName)\n );\n }\n\n public showSeries(seriesName: string) {\n this.ngZone.runOutsideAngular(() =>\n this.chartInstance()?.showSeries(seriesName)\n );\n }\n\n public hideSeries(seriesName: string) {\n this.ngZone.runOutsideAngular(() =>\n this.chartInstance()?.hideSeries(seriesName)\n );\n }\n\n public resetSeries() {\n this.ngZone.runOutsideAngular(() => this.chartInstance()?.resetSeries());\n }\n\n public zoomX(min: number, max: number) {\n this.ngZone.runOutsideAngular(() => this.chartInstance()?.zoomX(min, max));\n }\n\n public toggleDataPointSelection(\n seriesIndex: number,\n dataPointIndex?: number\n ) {\n this.ngZone.runOutsideAngular(() =>\n this.chartInstance()?.toggleDataPointSelection(\n seriesIndex,\n dataPointIndex\n )\n );\n }\n\n public destroy() {\n this.chartInstance()?.destroy();\n this.chartInstance.set(null);\n }\n\n public setLocale(localeName: string) {\n this.ngZone.runOutsideAngular(() =>\n this.chartInstance()?.setLocale(localeName)\n );\n }\n\n public paper() {\n this.ngZone.runOutsideAngular(() => this.chartInstance()?.paper());\n }\n\n public addXaxisAnnotation(\n options: any,\n pushToMemory?: boolean,\n context?: any\n ) {\n this.ngZone.runOutsideAngular(() =>\n this.chartInstance()?.addXaxisAnnotation(options, pushToMemory, context)\n );\n }\n\n public addYaxisAnnotation(\n options: any,\n pushToMemory?: boolean,\n context?: any\n ) {\n this.ngZone.runOutsideAngular(() =>\n this.chartInstance()?.addYaxisAnnotation(options, pushToMemory, context)\n );\n }\n\n public addPointAnnotation(\n options: any,\n pushToMemory?: boolean,\n context?: any\n ) {\n this.ngZone.runOutsideAngular(() =>\n this.chartInstance()?.addPointAnnotation(options, pushToMemory, context)\n );\n }\n\n public removeAnnotation(id: string, options?: any) {\n this.ngZone.runOutsideAngular(() =>\n this.chartInstance()?.removeAnnotation(id, options)\n );\n }\n\n public clearAnnotations(options?: any) {\n this.ngZone.runOutsideAngular(() =>\n this.chartInstance()?.clearAnnotations(options)\n );\n }\n\n public dataURI(options?: any) {\n return this.chartInstance()?.dataURI(options);\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { ChartComponent } from \"./chart/chart.component\";\n\nconst declarations = [ChartComponent];\n\n@NgModule({\n imports: [declarations],\n exports: [declarations],\n})\nexport class NgApexchartsModule {}\n","/*\n * Public API Surface of ng-apexcharts\n */\n\nexport * from './lib/ng-apexcharts.module';\nexport * from './lib/chart/chart.component';\nexport * from './lib/model/apex-types';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}