{"version":3,"file":"ng-apexcharts.mjs","sources":["../../../projects/ng-apexcharts/src/lib/chart/chart.component.ts","../../../projects/ng-apexcharts/src/lib/chart-core/chart-core.component.ts","../../../projects/ng-apexcharts/src/lib/services/chart-ssr.service.ts","../../../projects/ng-apexcharts/src/lib/chart-ssr/chart-ssr.component.ts","../../../projects/ng-apexcharts/src/lib/chart-hydrate/chart-hydrate.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  afterEveryRender,\n  afterNextRender,\n  AfterRenderRef,\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  inject,\n  Injector,\n  input,\n  NgZone,\n  OnChanges,\n  OnDestroy,\n  output,\n  PLATFORM_ID,\n  signal,\n  SimpleChanges,\n  viewChild,\n} from \"@angular/core\";\nimport {\n  ApexAnnotations,\n  ApexAxisChartSeries,\n  ApexChart,\n  ApexDataLabels,\n  ApexFill,\n  ApexForecastDataPoints,\n  ApexGrid,\n  ApexLegend,\n  ApexMarkers,\n  ApexNoData,\n  ApexParsing,\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\";\nimport type ApexChartsType from \"apexcharts\";\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 parsing = input<ApexParsing>();\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: ApexChartsType }>();\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<ApexChartsType | 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  private _destroyed = false;\n  private readonly _injector = inject(Injector);\n  private waitingForConnectedRef: AfterRenderRef | null = null;\n\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (!this.isBrowser) return;\n\n    this.hydrate(changes);\n  }\n\n  ngOnDestroy() {\n    this.destroy();\n    this._destroyed = true;\n  }\n\n  /** Determine if the host element is connected to the document */\n  private get isConnected() {\n    return this.chartElement()?.nativeElement.isConnected;\n  }\n\n  private hydrate(changes: SimpleChanges): void {\n    if (this.waitingForConnectedRef) {\n      return;\n    }\n\n    const shouldUpdateSeries =\n      this.chartInstance() &&\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    // Create the chart after the layout is finalized and ready to be measured.\n    afterNextRender({\n      read: () => this.createElement(),\n    }, { injector: this._injector });\n  }\n\n  /** @internal Extracted to allow subclasses and tests to swap the ApexCharts bundle. */\n  protected importApexCharts(): Promise<{ default: typeof ApexChartsType }> {\n    return import(\"apexcharts/client\");\n  }\n\n  private async createElement() {\n    const { default: ApexCharts } = await this.importApexCharts();\n    (window as any).ApexCharts ||= ApexCharts;\n\n    if (this._destroyed) return;\n    if (!this.isConnected) {\n      this.waitForConnected();\n      return;\n    }\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      \"parsing\",\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    if (this.isConnected) {\n      return this.ngZone.runOutsideAngular(() => this.chartInstance()?.render());\n    } else {\n      this.waitForConnected();\n    }\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 as any, animate)\n    );\n  }\n\n  public appendSeries(\n    newSeries: ApexAxisChartSeries | ApexNonAxisChartSeries,\n    animate?: boolean\n  ) {\n    this.ngZone.runOutsideAngular(() =>\n      this.chartInstance()?.appendSeries(newSeries as any, 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() as any)?.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  private waitForConnected() {\n    if (this.waitingForConnectedRef) {\n      return;\n    }\n\n    this.waitingForConnectedRef = afterEveryRender({\n      read: () => {\n        if (this.isConnected) {\n          this.waitingForConnectedRef.destroy();\n          this.waitingForConnectedRef = null;\n          this.createElement();\n        }\n      },\n    }, { injector: this._injector });\n  }\n}\n","import { ChangeDetectionStrategy, Component } from \"@angular/core\";\nimport { ChartComponent } from \"../chart/chart.component\";\nimport type ApexChartsType from \"apexcharts\";\n\n/**\n * Tree-shakeable variant of `<apx-chart>`.\n *\n * Loads `apexcharts/core` (~611 KB) instead of the full `apexcharts/client`\n * bundle (~942 KB). To register chart types and features, add side-effect\n * imports **before** this component is rendered — typically in `app.config.ts`\n * or at the top of the component that bootstraps the charts:\n *\n * ```ts\n * import \"apexcharts/line\";              // line, area, scatter, bubble\n * import \"apexcharts/bar\";               // bar, column, rangeBar\n * import \"apexcharts/features/legend\";   // opt-in legend\n * import \"apexcharts/features/toolbar\";  // opt-in toolbar\n * ```\n *\n * All inputs/outputs/methods are identical to `<apx-chart>`.\n */\n@Component({\n  selector: \"apx-chart-core\",\n  template: `<div #chart></div>`,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n})\nexport class ChartCoreComponent extends ChartComponent {\n  protected override importApexCharts(): Promise<{ default: typeof ApexChartsType }> {\n    return import(\"apexcharts/core\");\n  }\n}\n","import { Injectable } from \"@angular/core\";\nimport { ApexOptions } from \"../model/apex-types\";\n\nexport interface ApexSSROptions {\n  width?: number;\n  height?: number;\n}\n\n@Injectable({\n  providedIn: \"root\",\n})\nexport class ChartSSRService {\n  /** Per-app-instance counter for stable TransferState keys. Resets on each server bootstrap. */\n  private instanceCounter = 0;\n\n  nextInstanceId(): number {\n    return this.instanceCounter++;\n  }\n  /** @internal Extracted to allow spying in unit tests without importing actual SSR bundle. */\n  protected importSSRModule() {\n    return import(\"apexcharts/ssr\");\n  }\n\n  async renderToHTML(options: ApexOptions, ssrOptions: ApexSSROptions = {}): Promise<string> {\n    const { default: ApexCharts } = await this.importSSRModule();\n    return (ApexCharts as any).renderToHTML(options, ssrOptions);\n  }\n\n  async renderToString(options: ApexOptions, ssrOptions: ApexSSROptions = {}): Promise<string> {\n    const { default: ApexCharts } = await this.importSSRModule();\n    return (ApexCharts as any).renderToString(options, ssrOptions);\n  }\n}\n","import {\n  afterNextRender,\n  Component,\n  ElementRef,\n  inject,\n  Inject,\n  input,\n  makeStateKey,\n  OnInit,\n  PLATFORM_ID,\n  PendingTasks,\n  TransferState,\n} from \"@angular/core\";\nimport { isPlatformServer } from \"@angular/common\";\nimport { ApexOptions } from \"../model/apex-types\";\nimport { ChartSSRService } from \"../services/chart-ssr.service\";\n\n/**\n * Server-side rendering component for ApexCharts.\n *\n * On the server: renders SVG imperatively into the host element, stores HTML in TransferState.\n * On the client: ngSkipHydration tells Angular to leave the host DOM alone.\n * afterNextRender then injects the HTML from TransferState into the host imperatively\n * (as a fallback if ngSkipHydration stripped the content, which it does with empty templates).\n * ChartHydrateComponent also uses afterNextRender so it runs after this, guaranteeing\n * [data-apexcharts-hydrate] is present when Pattern B calls hydrate().\n *\n * @example\n * <apx-chart-ssr [options]=\"chartOptions\" [width]=\"500\" [height]=\"300\" />\n */\n@Component({\n  selector: \"apx-chart-ssr\",\n  template: ``,\n  standalone: true,\n  host: { ngSkipHydration: \"true\" },\n})\nexport class ChartSSRComponent implements OnInit {\n  readonly options = input.required<ApexOptions>();\n  readonly width = input<number>(400);\n  readonly height = input<number>(300);\n\n  private readonly chartSSRService = inject(ChartSSRService);\n  private readonly pendingTasks = inject(PendingTasks);\n  private readonly el = inject(ElementRef<HTMLElement>);\n  private readonly transferState = inject(TransferState);\n  private readonly stateKey = makeStateKey<string>(`apx-chart-ssr-${this.chartSSRService.nextInstanceId()}`);\n  private readonly isServer: boolean;\n\n  constructor(@Inject(PLATFORM_ID) platformId: object) {\n    this.isServer = isPlatformServer(platformId);\n\n    if (!this.isServer) {\n      afterNextRender(() => {\n        const host = this.el.nativeElement;\n        const html = this.transferState.get(this.stateKey, \"\");\n        this.transferState.remove(this.stateKey);\n\n        if (html) {\n          // html is a JSON string: { svgOuter: \"<svg ...>...</svg>\", config: \"base64...\" }\n          const { svgOuter, config } = JSON.parse(html) as { svgOuter: string; config: string };\n\n          // Parse SVG via XML parser to correctly handle self-closing tags and namespaces.\n          // Using innerHTML on an HTML element would corrupt the SVG tree (HTML parser mode).\n          const parser = new DOMParser();\n          const svgDoc = parser.parseFromString(svgOuter, 'image/svg+xml');\n          const svgEl = document.importNode(svgDoc.documentElement, true);\n\n          // Create wrapper div with attributes needed by ApexCharts.hydrate()\n          const wrapper = document.createElement('div');\n          wrapper.className = 'apexcharts-ssr-wrapper';\n          wrapper.setAttribute('data-apexcharts-hydrate', '');\n          if (config) wrapper.setAttribute('data-apexcharts-config', config);\n\n          wrapper.appendChild(svgEl);\n          host.innerHTML = '';\n          host.appendChild(wrapper);\n        }\n      });\n    }\n  }\n\n  async ngOnInit(): Promise<void> {\n    if (!this.isServer) return;\n\n    const done = this.pendingTasks.add();\n    const ssrOptions = { width: this.width(), height: this.height() };\n    try {\n      const [html, svgOuter] = await Promise.all([\n        this.chartSSRService.renderToHTML(this.options(), ssrOptions),\n        this.chartSSRService.renderToString(this.options(), ssrOptions),\n      ]);\n      const configMatch = html.match(/data-apexcharts-config=\"([^\"]*)\"/);\n      const config = configMatch?.[1] ?? '';\n      this.transferState.set(this.stateKey, JSON.stringify({ svgOuter, config }));\n      this.el.nativeElement.innerHTML = html;\n    } finally {\n      done();\n    }\n  }\n}\n","import {\n  afterNextRender,\n  Component,\n  ElementRef,\n  inject,\n  Inject,\n  Injector,\n  input,\n  NgZone,\n  OnDestroy,\n  OnInit,\n  PLATFORM_ID,\n  runInInjectionContext,\n} from \"@angular/core\";\nimport { isPlatformBrowser } from \"@angular/common\";\nimport { ApexOptions } from \"../model/apex-types\";\nimport type ApexChartsType from \"apexcharts\";\n\n/**\n * Client-side hydration component for ApexCharts SSR output.\n *\n * Must be placed immediately after `<apx-chart-ssr>` in the DOM. It finds\n * the server-rendered `[data-apexcharts-hydrate]` element in the preceding\n * `<apx-chart-ssr>` sibling and calls `ApexCharts.hydrate()` on it to\n * attach full interactivity (animations, tooltips, zoom, etc.).\n *\n * Uses afterNextRender so it runs after ChartSSRComponent has injected the\n * server HTML into the DOM (which also happens in afterNextRender).\n *\n * On the server this component does nothing.\n *\n * @example\n * <apx-chart-ssr [options]=\"chartOptions\" />\n * <apx-chart-hydrate [clientOptions]=\"{ chart: { animations: { enabled: true } } }\" />\n */\n@Component({\n  selector: \"apx-chart-hydrate\",\n  template: ``,\n  standalone: true,\n})\nexport class ChartHydrateComponent implements OnInit, OnDestroy {\n  readonly clientOptions = input<Partial<ApexOptions>>({});\n\n  private readonly el = inject(ElementRef<HTMLElement>);\n  private readonly ngZone = inject(NgZone);\n  private readonly injector = inject(Injector);\n  private readonly isBrowser: boolean;\n  private chartObj: ApexChartsType | null = null;\n\n  constructor(@Inject(PLATFORM_ID) platformId: object) {\n    this.isBrowser = isPlatformBrowser(platformId);\n  }\n\n  ngOnInit(): void {\n    if (!this.isBrowser) return;\n\n    runInInjectionContext(this.injector, () => afterNextRender(async () => {\n      // By this point ChartSSRComponent's afterNextRender has already run,\n      // so [data-apexcharts-hydrate] is guaranteed to be in the DOM.\n      const host = this.el.nativeElement;\n      const ssrEl = host.parentElement?.querySelector(\"[data-apexcharts-hydrate]\") as HTMLElement | null;\n\n      if (!ssrEl) {\n        console.warn(\"[ng-apexcharts] ChartHydrateComponent: No [data-apexcharts-hydrate] element found. Ensure <apx-chart-ssr> precedes <apx-chart-hydrate> in the same container.\");\n        return;\n      }\n\n      const { default: ApexCharts } = await this.importClientModule();\n      try {\n        this.chartObj = this.ngZone.runOutsideAngular(() =>\n          (ApexCharts as any).hydrate(ssrEl, this.clientOptions())\n        );\n      } catch (error) {\n        console.error(\"[ng-apexcharts] ChartHydrateComponent: Failed to hydrate chart.\", error);\n      }\n    }));\n  }\n\n  /** @internal Extracted to allow spying in unit tests without importing actual SSR/hydrate bundle. */\n  protected importClientModule() {\n    return import(\"apexcharts/ssr\");\n  }\n\n  ngOnDestroy(): void {\n    this.chartObj?.destroy();\n    this.chartObj = null;\n  }\n}\n","import { NgModule } from \"@angular/core\";\nimport { ChartComponent } from \"./chart/chart.component\";\nimport { ChartCoreComponent } from \"./chart-core/chart-core.component\";\nimport { ChartSSRComponent } from \"./chart-ssr/chart-ssr.component\";\nimport { ChartHydrateComponent } from \"./chart-hydrate/chart-hydrate.component\";\n\nconst declarations = [ChartComponent, ChartCoreComponent, ChartSSRComponent, ChartHydrateComponent];\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/chart-core/chart-core.component';\nexport * from './lib/chart-ssr/chart-ssr.component';\nexport * from './lib/chart-hydrate/chart-hydrate.component';\nexport * from './lib/services/chart-ssr.service';\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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"}