ngx-echarts
Version:
<div align="center"> <a href="https://xieziyu.github.io/ngx-echarts"> <img src="./src/assets/img/logo.svg" alt="Logo" width="80"> </a> <h3 align="center">NGX-ECHARTS</h3> <p align="center"> Angular directive for <a href="https://github.com
1 lines • 26.7 kB
Source Map (JSON)
{"version":3,"file":"ngx-echarts.mjs","sources":["../../../projects/ngx-echarts/src/lib/change-filter-v2.ts","../../../projects/ngx-echarts/src/lib/ngx-echarts.directive.ts","../../../projects/ngx-echarts/src/lib/ngx-echarts.module.ts","../../../projects/ngx-echarts/src/public-api.ts","../../../projects/ngx-echarts/src/ngx-echarts.ts"],"sourcesContent":["import { SimpleChanges } from '@angular/core';\nimport { ReplaySubject, Subscription } from 'rxjs';\n\nexport class ChangeFilterV2 {\n private subject = new ReplaySubject<SimpleChanges>(1);\n private subscriptions: Subscription = new Subscription();\n\n doFilter(changes: SimpleChanges) {\n this.subject.next(changes);\n }\n\n dispose() {\n this.subscriptions.unsubscribe();\n }\n\n notEmpty<T>(key: string, handler: (t: T) => void) {\n this.subscriptions.add(\n this.subject.subscribe(changes => {\n if (changes[key]) {\n const value: T = changes[key].currentValue;\n if (value !== undefined && value !== null) {\n handler(value);\n }\n }\n })\n );\n }\n\n has<T>(key: string, handler: (t: T) => void) {\n this.subscriptions.add(\n this.subject.subscribe(changes => {\n if (changes[key]) {\n const value: T = changes[key].currentValue;\n handler(value);\n }\n })\n );\n }\n\n notFirst<T>(key: string, handler: (t: T) => void) {\n this.subscriptions.add(\n this.subject.subscribe(changes => {\n if (changes[key] && !changes[key].isFirstChange()) {\n const value: T = changes[key].currentValue;\n handler(value);\n }\n })\n );\n }\n\n notFirstAndEmpty<T>(key: string, handler: (t: T) => void) {\n this.subscriptions.add(\n this.subject.subscribe(changes => {\n if (changes[key] && !changes[key].isFirstChange()) {\n const value: T = changes[key].currentValue;\n if (value !== undefined && value !== null) {\n handler(value);\n }\n }\n })\n );\n }\n}\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n EventEmitter,\n Inject,\n InjectionToken,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { Observable, ReplaySubject, Subject, Subscription, asyncScheduler } from 'rxjs';\nimport { switchMap, throttleTime } from 'rxjs/operators';\nimport { ChangeFilterV2 } from './change-filter-v2';\nimport type { EChartsCoreOption, ECharts, ECElementEvent } from 'echarts/core';\n\nexport interface NgxEchartsConfig {\n echarts: any | (() => Promise<any>);\n theme?: string | ThemeOption;\n}\n\nexport type ThemeOption = Record<string, any>;\n\nexport const NGX_ECHARTS_CONFIG = new InjectionToken<NgxEchartsConfig>('NGX_ECHARTS_CONFIG');\n\n@Directive({\n standalone: true,\n selector: 'echarts, [echarts]',\n exportAs: 'echarts',\n})\nexport class NgxEchartsDirective implements OnChanges, OnDestroy, OnInit, AfterViewInit {\n @Input() options: EChartsCoreOption | null = null;\n @Input() theme: string | ThemeOption | null = null;\n @Input() initOpts: {\n devicePixelRatio?: number;\n renderer?: string;\n width?: number | string;\n height?: number | string;\n locale?: string;\n } | null = null;\n @Input() merge: EChartsCoreOption | null = null;\n @Input() autoResize = true;\n @Input() loading = false;\n @Input() loadingType = 'default';\n @Input() loadingOpts: object | null = null;\n\n // ngx-echarts events\n @Output() chartInit = new EventEmitter<ECharts>();\n @Output() optionsError = new EventEmitter<Error>();\n\n // echarts mouse events\n @Output() chartClick = this.createLazyEvent<ECElementEvent>('click');\n @Output() chartDblClick = this.createLazyEvent<ECElementEvent>('dblclick');\n @Output() chartMouseDown = this.createLazyEvent<ECElementEvent>('mousedown');\n @Output() chartMouseMove = this.createLazyEvent<ECElementEvent>('mousemove');\n @Output() chartMouseUp = this.createLazyEvent<ECElementEvent>('mouseup');\n @Output() chartMouseOver = this.createLazyEvent<ECElementEvent>('mouseover');\n @Output() chartMouseOut = this.createLazyEvent<ECElementEvent>('mouseout');\n @Output() chartGlobalOut = this.createLazyEvent<ECElementEvent>('globalout');\n @Output() chartContextMenu = this.createLazyEvent<ECElementEvent>('contextmenu');\n\n // echarts events\n @Output() chartHighlight = this.createLazyEvent<any>('highlight');\n @Output() chartDownplay = this.createLazyEvent<any>('downplay');\n @Output() chartSelectChanged = this.createLazyEvent<any>('selectchanged');\n @Output() chartLegendSelectChanged = this.createLazyEvent<any>('legendselectchanged');\n @Output() chartLegendSelected = this.createLazyEvent<any>('legendselected');\n @Output() chartLegendUnselected = this.createLazyEvent<any>('legendunselected');\n @Output() chartLegendLegendSelectAll = this.createLazyEvent<any>('legendselectall');\n @Output() chartLegendLegendInverseSelect = this.createLazyEvent<any>('legendinverseselect');\n @Output() chartLegendScroll = this.createLazyEvent<any>('legendscroll');\n @Output() chartDataZoom = this.createLazyEvent<any>('datazoom');\n @Output() chartDataRangeSelected = this.createLazyEvent<any>('datarangeselected');\n @Output() chartGraphRoam = this.createLazyEvent<any>('graphroam');\n @Output() chartGeoRoam = this.createLazyEvent<any>('georoam');\n @Output() chartTreeRoam = this.createLazyEvent<any>('treeroam');\n @Output() chartTimelineChanged = this.createLazyEvent<any>('timelinechanged');\n @Output() chartTimelinePlayChanged = this.createLazyEvent<any>('timelineplaychanged');\n @Output() chartRestore = this.createLazyEvent<any>('restore');\n @Output() chartDataViewChanged = this.createLazyEvent<any>('dataviewchanged');\n @Output() chartMagicTypeChanged = this.createLazyEvent<any>('magictypechanged');\n @Output() chartGeoSelectChanged = this.createLazyEvent<any>('geoselectchanged');\n @Output() chartGeoSelected = this.createLazyEvent<any>('geoselected');\n @Output() chartGeoUnselected = this.createLazyEvent<any>('geounselected');\n @Output() chartAxisAreaSelected = this.createLazyEvent<any>('axisareaselected');\n @Output() chartBrush = this.createLazyEvent<any>('brush');\n @Output() chartBrushEnd = this.createLazyEvent<any>('brushend');\n @Output() chartBrushSelected = this.createLazyEvent<any>('brushselected');\n @Output() chartGlobalCursorTaken = this.createLazyEvent<any>('globalcursortaken');\n @Output() chartRendered = this.createLazyEvent<any>('rendered');\n @Output() chartFinished = this.createLazyEvent<any>('finished');\n\n public animationFrameID = null;\n private chart: ECharts;\n private chart$ = new ReplaySubject<ECharts>(1);\n private echarts: any;\n private resizeOb: ResizeObserver;\n private resize$ = new Subject<void>();\n private resizeSub: Subscription;\n private initChartTimer?: number;\n private changeFilter = new ChangeFilterV2();\n private loadingSub: Subscription;\n private resizeObFired: boolean = false;\n\n constructor(\n @Inject(NGX_ECHARTS_CONFIG) config: NgxEchartsConfig,\n private el: ElementRef,\n private ngZone: NgZone\n ) {\n this.echarts = config.echarts;\n this.theme = config.theme || null;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.changeFilter.doFilter(changes);\n }\n\n ngOnInit() {\n if (!window.ResizeObserver) {\n throw new Error('please install a polyfill for ResizeObserver');\n }\n this.resizeSub = this.resize$\n .pipe(throttleTime(100, asyncScheduler, { leading: false, trailing: true }))\n .subscribe(() => this.resize());\n\n if (this.autoResize) {\n // https://github.com/xieziyu/ngx-echarts/issues/413\n this.resizeOb = this.ngZone.runOutsideAngular(\n () =>\n new window.ResizeObserver(entries => {\n for (const entry of entries) {\n if (entry.target === this.el.nativeElement) {\n // Ignore first fire on insertion, no resize actually happened\n if (!this.resizeObFired) {\n this.resizeObFired = true;\n } else {\n this.animationFrameID = window.requestAnimationFrame(() => {\n this.resize$.next();\n });\n }\n }\n }\n })\n );\n this.resizeOb.observe(this.el.nativeElement);\n }\n\n this.changeFilter.notFirstAndEmpty('options', opt => this.onOptionsChange(opt));\n this.changeFilter.notFirstAndEmpty('merge', opt => this.setOption(opt));\n this.changeFilter.has<boolean>('loading', v => this.toggleLoading(!!v));\n this.changeFilter.notFirst<string | ThemeOption>('theme', () => this.refreshChart());\n }\n\n ngOnDestroy() {\n window.clearTimeout(this.initChartTimer);\n if (this.resizeSub) {\n this.resizeSub.unsubscribe();\n }\n if (this.animationFrameID) {\n window.cancelAnimationFrame(this.animationFrameID);\n }\n if (this.resizeOb) {\n this.resizeOb.unobserve(this.el.nativeElement);\n }\n if (this.loadingSub) {\n this.loadingSub.unsubscribe();\n }\n this.changeFilter.dispose();\n this.dispose();\n }\n\n ngAfterViewInit() {\n this.initChartTimer = window.setTimeout(() => this.initChart());\n }\n\n private dispose() {\n if (this.chart) {\n if (!this.chart.isDisposed()) {\n this.chart.dispose();\n }\n this.chart = null;\n }\n }\n\n /**\n * resize chart\n */\n resize() {\n if (this.chart) {\n this.chart.resize();\n }\n }\n\n private toggleLoading(loading: boolean) {\n if (this.chart) {\n loading\n ? this.chart.showLoading(this.loadingType, this.loadingOpts)\n : this.chart.hideLoading();\n } else {\n this.loadingSub = this.chart$.subscribe(chart =>\n loading ? chart.showLoading(this.loadingType, this.loadingOpts) : chart.hideLoading()\n );\n }\n }\n\n private setOption(option: any, opts?: any) {\n if (this.chart) {\n try {\n this.chart.setOption(option, opts);\n } catch (e) {\n console.error(e);\n this.optionsError.emit(e);\n }\n }\n }\n\n /**\n * dispose old chart and create a new one.\n */\n async refreshChart() {\n this.dispose();\n await this.initChart();\n }\n\n private createChart() {\n const dom = this.el.nativeElement;\n\n if (window && window.getComputedStyle) {\n const prop = window.getComputedStyle(dom, null).getPropertyValue('height');\n if ((!prop || prop === '0px') && (!dom.style.height || dom.style.height === '0px')) {\n dom.style.height = '400px';\n }\n }\n\n // here a bit tricky: we check if the echarts module is provided as function returning native import('...') then use the promise\n // otherwise create the function that imitates behaviour above with a provided as is module\n return this.ngZone.runOutsideAngular(() => {\n const load =\n typeof this.echarts === 'function' ? this.echarts : () => Promise.resolve(this.echarts);\n\n return load().then(({ init }) => init(dom, this.theme, this.initOpts));\n });\n }\n\n private async initChart() {\n await this.onOptionsChange(this.options);\n\n if (this.merge && this.chart) {\n this.setOption(this.merge);\n }\n }\n\n private async onOptionsChange(opt: any) {\n if (!opt) {\n return;\n }\n\n if (this.chart) {\n this.setOption(this.options, true);\n } else {\n this.chart = await this.createChart();\n this.chart$.next(this.chart);\n this.chartInit.emit(this.chart);\n this.setOption(this.options, true);\n }\n }\n\n // allows to lazily bind to only those events that are requested through the `@Output` by parent components\n // see https://stackoverflow.com/questions/51787972/optimal-reentering-the-ngzone-from-eventemitter-event for more info\n private createLazyEvent<T>(eventName: string): EventEmitter<T> {\n return this.chartInit.pipe(\n switchMap(\n (chart: any) =>\n new Observable(observer => {\n chart.on(eventName, (data: T) => this.ngZone.run(() => observer.next(data)));\n return () => {\n if (this.chart) {\n if (!this.chart.isDisposed()) {\n chart.off(eventName);\n }\n }\n };\n })\n )\n ) as EventEmitter<T>;\n }\n}\n","import { NgModule, ModuleWithProviders, Provider } from '@angular/core';\nimport {\n NgxEchartsDirective,\n NgxEchartsConfig,\n NGX_ECHARTS_CONFIG,\n ThemeOption,\n} from './ngx-echarts.directive';\n\nconst provideEchartsCore = (config: NgxEchartsConfig): Provider => {\n return {\n provide: NGX_ECHARTS_CONFIG,\n useValue: config,\n };\n};\n\n@NgModule({\n imports: [NgxEchartsDirective],\n exports: [NgxEchartsDirective],\n})\nexport class NgxEchartsModule {\n static forRoot(config: NgxEchartsConfig): ModuleWithProviders<NgxEchartsModule> {\n return {\n ngModule: NgxEchartsModule,\n providers: [provideEchartsCore(config)],\n };\n }\n static forChild(): ModuleWithProviders<NgxEchartsModule> {\n return {\n ngModule: NgxEchartsModule,\n };\n }\n}\n\nexport { NgxEchartsDirective, NGX_ECHARTS_CONFIG, ThemeOption, provideEchartsCore };\n","/*\n * Public API Surface of ngx-echarts\n */\n\nexport * from './lib/ngx-echarts.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}