{"version":3,"file":"ngx-echarts.mjs","sources":["../../../projects/ngx-echarts/src/lib/change-filter.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 { Observable, of, EMPTY } from 'rxjs';\n\nexport class ChangeFilter {\n  constructor(private changes: SimpleChanges) { }\n\n  static of(changes: SimpleChanges) {\n    return new ChangeFilter(changes);\n  }\n\n  notEmpty<T>(key: string): Observable<T> {\n    if (this.changes[key]) {\n      const value: T = this.changes[key].currentValue;\n\n      if (value !== undefined && value !== null) {\n        return of(value);\n      }\n    }\n    return EMPTY;\n  }\n\n  has<T>(key: string): Observable<T> {\n    if (this.changes[key]) {\n      const value: T = this.changes[key].currentValue;\n      return of(value);\n    }\n    return EMPTY;\n  }\n\n  notFirst<T>(key: string): Observable<T> {\n    if (this.changes[key] && !this.changes[key].isFirstChange()) {\n      const value: T = this.changes[key].currentValue;\n      return of(value);\n    }\n    return EMPTY;\n  }\n\n  notFirstAndEmpty<T>(key: string): Observable<T> {\n    if (this.changes[key] && !this.changes[key].isFirstChange()) {\n      const value: T = this.changes[key].currentValue;\n\n      if (value !== undefined && value !== null) {\n        return of(value);\n      }\n    }\n    return EMPTY;\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, Subject, Subscription, asyncScheduler } from 'rxjs';\nimport { switchMap, throttleTime } from 'rxjs/operators';\nimport { ChangeFilter } from './change-filter';\nimport type { EChartsOption, ECharts } from 'echarts';\n\nexport interface NgxEchartsConfig {\n  echarts: any | (() => Promise<any>);\n}\n\nexport type ThemeOption = Record<string, any>;\n\nexport const NGX_ECHARTS_CONFIG = new InjectionToken<NgxEchartsConfig>('NGX_ECHARTS_CONFIG');\n\n@Directive({\n  selector: 'echarts, [echarts]',\n  exportAs: 'echarts',\n})\nexport class NgxEchartsDirective implements OnChanges, OnDestroy, OnInit, AfterViewInit {\n  @Input() options: EChartsOption;\n  @Input() theme: string | ThemeOption;\n  @Input() loading: boolean;\n  @Input() initOpts: {\n    devicePixelRatio?: number;\n    renderer?: string;\n    width?: number | string;\n    height?: number | string;\n    locale?: string;\n  };\n  @Input() merge: EChartsOption;\n  @Input() autoResize = true;\n  @Input() loadingType = 'default';\n  @Input() loadingOpts: object;\n\n  // ngx-echarts events\n  @Output() chartInit = new EventEmitter<any>();\n  @Output() optionsError = new EventEmitter<Error>();\n\n  // echarts mouse events\n  @Output() chartClick = this.createLazyEvent('click');\n  @Output() chartDblClick = this.createLazyEvent('dblclick');\n  @Output() chartMouseDown = this.createLazyEvent('mousedown');\n  @Output() chartMouseMove = this.createLazyEvent('mousemove');\n  @Output() chartMouseUp = this.createLazyEvent('mouseup');\n  @Output() chartMouseOver = this.createLazyEvent('mouseover');\n  @Output() chartMouseOut = this.createLazyEvent('mouseout');\n  @Output() chartGlobalOut = this.createLazyEvent('globalout');\n  @Output() chartContextMenu = this.createLazyEvent('contextmenu');\n\n  // echarts mouse events\n  @Output() chartLegendSelectChanged = this.createLazyEvent('legendselectchanged');\n  @Output() chartLegendSelected = this.createLazyEvent('legendselected');\n  @Output() chartLegendUnselected = this.createLazyEvent('legendunselected');\n  @Output() chartLegendScroll = this.createLazyEvent('legendscroll');\n  @Output() chartDataZoom = this.createLazyEvent('datazoom');\n  @Output() chartDataRangeSelected = this.createLazyEvent('datarangeselected');\n  @Output() chartTimelineChanged = this.createLazyEvent('timelinechanged');\n  @Output() chartTimelinePlayChanged = this.createLazyEvent('timelineplaychanged');\n  @Output() chartRestore = this.createLazyEvent('restore');\n  @Output() chartDataViewChanged = this.createLazyEvent('dataviewchanged');\n  @Output() chartMagicTypeChanged = this.createLazyEvent('magictypechanged');\n  @Output() chartPieSelectChanged = this.createLazyEvent('pieselectchanged');\n  @Output() chartPieSelected = this.createLazyEvent('pieselected');\n  @Output() chartPieUnselected = this.createLazyEvent('pieunselected');\n  @Output() chartMapSelectChanged = this.createLazyEvent('mapselectchanged');\n  @Output() chartMapSelected = this.createLazyEvent('mapselected');\n  @Output() chartMapUnselected = this.createLazyEvent('mapunselected');\n  @Output() chartAxisAreaSelected = this.createLazyEvent('axisareaselected');\n  @Output() chartFocusNodeAdjacency = this.createLazyEvent('focusnodeadjacency');\n  @Output() chartUnfocusNodeAdjacency = this.createLazyEvent('unfocusnodeadjacency');\n  @Output() chartBrush = this.createLazyEvent('brush');\n  @Output() chartBrushEnd = this.createLazyEvent('brushend');\n  @Output() chartBrushSelected = this.createLazyEvent('brushselected');\n  @Output() chartRendered = this.createLazyEvent('rendered');\n  @Output() chartFinished = this.createLazyEvent('finished');\n\n  public animationFrameID = null;\n  private chart: ECharts;\n  private echarts: any;\n  private resizeOb: ResizeObserver;\n  private resize$ = new Subject<void>();\n  private resizeSub: Subscription;\n  private initChartTimer?: number;\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  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    const filter = ChangeFilter.of(changes);\n    filter.notFirstAndEmpty<any>('options').subscribe((opt) => this.onOptionsChange(opt));\n    filter.notFirstAndEmpty<any>('merge').subscribe((opt) => this.setOption(opt));\n    filter.has<boolean>('loading').subscribe((v) => this.toggleLoading(!!v));\n    filter.notFirst<string | ThemeOption>('theme').subscribe(() => this.refreshChart());\n  }\n\n  ngOnInit() {\n    if (!window.ResizeObserver) {\n      throw new Error('please install a polyfill for ResizeObserver');\n    }\n    this.resizeSub = this.resize$.pipe(\n      throttleTime(100, asyncScheduler, { leading: false, trailing: true })\n    ).subscribe(() => this.resize())\n\n    if (this.autoResize) {\n      this.resizeOb = this.ngZone.runOutsideAngular(() => new window.ResizeObserver(() => {\n        this.animationFrameID = window.requestAnimationFrame(() => this.resize$.next())\n      }))\n      this.resizeOb.observe(this.el.nativeElement);\n    }\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    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    }\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.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 } from '@angular/core';\nimport { NgxEchartsDirective, NgxEchartsConfig, NGX_ECHARTS_CONFIG, ThemeOption } from './ngx-echarts.directive';\n\n@NgModule({\n  imports: [],\n  declarations: [NgxEchartsDirective],\n  exports: [NgxEchartsDirective],\n})\nexport class NgxEchartsModule {\n  static forRoot(config: NgxEchartsConfig): ModuleWithProviders<NgxEchartsModule> {\n    return {\n      ngModule: NgxEchartsModule,\n      providers: [{ provide: NGX_ECHARTS_CONFIG, useValue: config }],\n    };\n  }\n  static forChild(): ModuleWithProviders<NgxEchartsModule> {\n    return {\n      ngModule: NgxEchartsModule,\n    };\n  }\n}\n\nexport { NgxEchartsDirective, NGX_ECHARTS_CONFIG, ThemeOption };\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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"}