Skip to content

Upgrading apexcharts 5 to 6

Breaking5.16.0 โ†’ 6.10.0Breaking3Security1New83Changed42Fixed59Other14

BreakingUpgrade verdict

3 breaking changes and a security fix.

  • Clicking a legend item on these charts now hides or shows the slice rather than highlighting it.
  • Some paid features now need a higher plan; existing pro customers using them will see a watermark.
  • If your custom CSS or JavaScript relied on one wrapper element per point in scatter or bubble charts, that no longer works. Selectors that target the marker paths directly still work.
  • Exported CSV files can no longer run spreadsheet formulas from chart data.
4 items need code or config changes

Requires Node.js ^20.19.0 || ^22.12.0 || >=24.0.0 from 6.7.0 (none stated before).

Adds apex-commons ^0.5.0.

Installs 1 package in all (was 0).

Breaking3
Legend click on pie, donut and polarArea now toggles the slice in and out instead of darkening and expanding it.
Premium features now require a premium or enterprise plan; a pro key or free tier keeps them in trial mode with a watermark.
unitstoryboardlinkinkmeasurecontextMenuperspectiveshistory
Scatter and bubble charts now have a single .apexcharts-series-markers group per series, so selectors that targeted per-point wrapper groups break.
.apexcharts-series-markers.apexcharts-marker
Security1
Neutralises CSV export field values starting with a formula character to prevent formula injection.

Generated by DepDelta from published .d.ts files. Not mixed with prose notes.

  • removed: property InteractState.lastWheelExecution: number
  • changed: method ChartContext.fastUpdate(options?: any): Promise<any> โ†’ method ChartContext.fastUpdate(animate?: boolean, prevAxisScaleSig?: string): Promise<any>
  • changed: property ChartGlobals.ancillaryCollapsedSeries: Array<{ index: number; data: number[]; type: string }> โ†’ property ChartGlobals.ancillaryCollapsedSeries: Array<{ index: number; data: any; type: string; name?: string }>
  • changed: property ChartGlobals.collapsedSeries: Array<{ index: number; data: number[]; type: string }> โ†’ property ChartGlobals.collapsedSeries: Array<{ index: number; data: any; type: string; name?: string }>
  • changed: property ChartGlobals.delayedElements: Array<{ el: Element; index?: number }> โ†’ property ChartGlobals.delayedElements: Array<{ el: Element; index?: number; holdUntilComplete?: boolean }>
  • added: interface HistogramData
  • added: property ChartContext.contextMenu: any
  • added: property ChartContext.history: any
  • added: property ChartContext.ink: any
  • added: property ChartContext.linkedViews: any
  • added: property ChartContext.measure: any
  • added: property ChartContext.perspectives: any
  • added: property ChartContext.renderer: any
  • added: property ChartContext.rendererController: any
  • added: property ChartContext.storyboard: any
  • added: property ChartContext.weave: any
  • added: property ChartGlobals._initialSeriesPeek: ApexOptions['series']
  • added: property ChartGlobals.activeRenderer: any
  • added: property ChartGlobals.barCanvasCoords: Record<number, Record<number, any>> | null
  • added: property ChartGlobals.histogramRawSeries: Array<{ data: any }> | null
  • added: property ChartGlobals.lastResizeSignature: { w: number; h: number; iw?: number } | null
  • added: property ChartGlobals.prevChromeFrame: { xLabels: { text: string; display: string; pos: number; transform: string | null }[]; yLabels: { text: string; display: string; pos: number; transform: string | null }[]; vGrid: number[]; hGrid: number[]; xScale: { min: number; max: number; width: number } | null; yAnchors: { min: number; max: number; pLo: number; pHi: number } | null } | null
  • added: property ChartGlobals.prevDataLabels: Map<string, { cx: number; cy: number; val: number }> | null
  • added: property ChartGlobals.prevPolarAngles: number[] | null
  • added: property ChartGlobals.prevStreamFrame: { seriesX: (number | null)[][]; seriesY: (number | null)[][]; xPixels: (number | null)[][]; yPixels: (number | null)[][]; rPixels?: number[][]; labels: any[]; isXNumeric: boolean } | null
  • added: property ChartGlobals.radialNeedleRAF: number | null
  • added: property ChartGlobals.seriesRangeName: Record<number, Record<number, string>>
  • added: property ChartGlobals.tokenSurface: string | undefined
  • added: property ChartGlobals.treemapFocusKey: string | null
  • added: property ChartGlobals.treemapMaxDepth: number
  • added: property ChartGlobals.treemapRawSeries: Array<{ data: any }> | null
  • added: property ChartGlobals.treemapRoots: any[] | null
  • added: property ChartGlobals.unitExitRAF: number | null
  • added: property ChartGlobals.unitGatherRAF: number | null
  • added: property ChartStateW.histogramData: HistogramData
  • added: property HistogramData.binWidth: number
  • added: property HistogramData.capped: boolean
  • added: property HistogramData.counts: number[][]
  • added: property HistogramData.edges: number[]
  • added: property HistogramData.rule: string
  • added: property InteractState.measureEnabled: boolean
  • added: property InteractState.momentum?: { busy: boolean; pinch: any; panState: any; samples: { x: number; t: number }[]; inertiaRAF: number | null }
  • added: property InteractState.shiftWasPressed?: boolean
  • added: property InteractState.wheel?: { factor: number; clientX: number; rafId: number | null; endTimer: any }
  • added: property LayoutCoords.gridPad: { top: number; right: number; bottom: number; left: number }
  • added: property SeriesData._parsedExtrema?: Array<| { ref: Array<number | null>; len: number; maxY: number; lowestY: number; negMinY: number; hasNulls: boolean; yDec: number; xref: any[]; xNumeric: boolean; minX: number; maxX: number; xSorted: boolean; minXDiff: number } | undefined>
  • added: property SeriesData.unitData?: any[][]
  • added: method ApexCharts.clearCrossfilter(): void
  • added: method ApexCharts.clearDrilldownCache(id?: string | number): ApexCharts
  • added: method ApexCharts.clearMeasures(): void
  • added: method ApexCharts.getActiveRenderer(): 'svg' | 'canvas' | 'gpu'
  • added: method ApexCharts.refreshTokens(): Promise<any>
  • added: method ApexCharts.rowSeries(opts?: { maxRows?: number }): ApexUnitRowSeries[] | null
  • added: method ApexCharts.startMeasure(): void
  • added: method ApexCharts.stopMeasure(): void
  • added: property ApexCharts.ApexDrilldown.cache?: boolean
  • added: property ApexCharts.ApexDrilldown.loading?: | false | { show?: boolean; text?: string }
  • added: property ApexCharts.ApexDrilldown.marker?: { show?: boolean; size?: number; shape?: 'circle' | 'square' | 'rect'; fillColor?: string; strokeColor?: string }
  • added: property ApexCharts.ApexDrilldownContext.id: string | number | null
  • added: property ApexCharts.ApexOptions.plugins?: ApexPluginActivation[]
  • added: property ApexCharts.history: { undo(animate?: boolean): void; redo(animate?: boolean): void; canUndo(): boolean; canRedo(): boolean; jump(id: string, animate?: boolean): void; clear(): void; transaction(fn: () => void | Promise<any>, opts?: { label?: string }): Promise<void>; entries(): ApexHistoryEntry[] }
  • added: property ApexCharts.perspectives: { capture(): ApexPerspective; encode(token?: ApexPerspective): string; decode(str: string): ApexPerspective | null; toURL(): string; apply(token: ApexPerspective | string, opts?: { animate?: boolean; mergeOptions?: ApexCharts.ApexOptions }): void; save(name: string): string; list(): { id: string; name: string; token: ApexPerspective }[]; delete(id: string): void }
  • added: property ApexCharts.storyboard: { bind(opts?: ApexStoryboardBindOptions): number; unbind(): void; goTo(beat: number | string, opts?: { animate?: boolean }): void; current(): { index: number; key: string | null } | null }
  • added: static method ApexCharts.crossfilter(opts: { id: string; records?: any[] }): ApexCrossfilter | null
  • added: static method ApexCharts.getCrossfilter(id: string): ApexCrossfilter | null
  • added: static method ApexCharts.hydrate(el: HTMLElement, clientOptions?: ApexCharts.ApexOptions): ApexCharts
  • added: static method ApexCharts.hydrateAll(selector?: string, clientOptions?: ApexCharts.ApexOptions): ApexCharts[]
  • added: static method ApexCharts.isHydrated(el: HTMLElement): boolean
  • added: static method ApexCharts.registerEasing(name: string, fn: (t: number) => number): typeof ApexCharts
  • added: static method ApexCharts.registerPlugin(def: ApexPlugin): typeof ApexCharts
  • added: static method ApexCharts.registerRenderer(kind: string, factory: (w: any, ctx: any) => any): void
  • added: static method ApexCharts.registerRowSource(name: string, fn: ApexRowSource): typeof ApexCharts
  • added: static method ApexCharts.registerSeriesType(name: string, def: ApexSeriesTypeDef): typeof ApexCharts
  • added: static method ApexCharts.registerTheme(name: string, def: ApexThemeDef): typeof ApexCharts
  • added: static method ApexCharts.registerUnitLayout(name: string, fn: ApexUnitLayout): typeof ApexCharts
  • added: static method ApexCharts.renderToHTML(options: ApexCharts.ApexOptions, ssrOptions?: { width?: number; height?: number; scale?: number; className?: string }): Promise<string>
  • added: static method ApexCharts.renderToString(options: ApexCharts.ApexOptions, ssrOptions?: { width?: number; height?: number; scale?: number }): Promise<string>
  • added: static method ApexCharts.setLicense(key: string): typeof ApexCharts
  • added: static method ApexCharts.unregisterPlugin(name: string): typeof ApexCharts
  • added: static method ApexCharts.unregisterRenderer(kind: string): void
  • added: static method ApexCharts.unregisterRowSource(name: string): typeof ApexCharts
  • added: static method ApexCharts.unregisterSeriesType(name: string): typeof ApexCharts
  • added: static method ApexCharts.unregisterTheme(name: string): typeof ApexCharts
  • added: static method ApexCharts.unregisterUnitLayout(name: string): typeof ApexCharts
  • added: static property ApexCharts.perspectives: { decode(str: string): ApexPerspective | null; fromURL(href?: string): ApexPerspective | null }
  • added: call ApexUnitShape(objects: ApexUnitShapeObject[], rect: ApexUnitShapeRect): ApexUnitShapePosition[]
  • added: const arrow: ApexUnitShape
  • added: const battery: ApexUnitShape
  • added: const bolt: ApexUnitShape
  • added: const bulb: ApexUnitShape
  • added: const car: ApexUnitShape
  • added: const catalog: ApexUnitShape[]
  • added: const check: ApexUnitShape
  • added: const cross: ApexUnitShape
  • added: const crown: ApexUnitShape
  • added: const droplet: ApexUnitShape
  • added: const fish: ApexUnitShape
  • added: const flame: ApexUnitShape
  • added: const flask: ApexUnitShape
  • added: const funnel: ApexUnitShape
  • added: const gear: ApexUnitShape
  • added: const globe: ApexUnitShape
  • added: const group: ApexUnitShape
  • added: const heart: ApexUnitShape
  • added: const house: ApexUnitShape
  • added: const human: ApexUnitShape
  • added: const leaf: ApexUnitShape
  • added: const moneybag: ApexUnitShape
  • added: const mountain: ApexUnitShape
  • added: const percent: ApexUnitShape
  • added: const pin: ApexUnitShape
  • added: const plane: ApexUnitShape
  • added: const pulse: ApexUnitShape
  • added: const pyramid: ApexUnitShape
  • added: const question: ApexUnitShape
  • added: const robot: ApexUnitShape
  • added: const rocket: ApexUnitShape
  • added: const shield: ApexUnitShape
  • added: const spiral: ApexUnitShape
  • added: const star: ApexUnitShape
  • added: const sun: ApexUnitShape
  • added: const target: ApexUnitShape
  • added: const tree: ApexUnitShape
  • added: const trophy: ApexUnitShape
  • added: const wifi: ApexUnitShape
  • added: const xmark: ApexUnitShape
  • added: function digitsPath(text: string | number, gap?: number): string
  • added: function glyphs(text: string | number, opts?: Partial<ApexUnitShapeMeta> & { gap?: number }): ApexUnitShape
  • added: function outlined(shape: ApexUnitShape, width?: number): ApexUnitShape
  • added: function preview(shape: ApexUnitShape, opts?: { count?: number; series?: number[]; width?: number; height?: number; padding?: number; fill?: string | string[]; r?: number; svg?: boolean }): string
  • added: function registerShapes(shapes: ApexUnitShape[] | Record<string, ApexUnitShape>): string[]
  • added: function registeredShapeNames(): string[]
  • added: function rings(meta: ApexUnitShapeMeta): ApexUnitShape
  • added: function shapeFrom(path: string, opts?: Partial<ApexUnitShapeMeta>): ApexUnitShape
  • added: function silhouette(meta: ApexUnitShapeMeta): ApexUnitShape
  • added: function sphere(meta: ApexUnitShapeMeta): ApexUnitShape
  • added: function stroke(meta: ApexUnitShapeMeta): ApexUnitShape
  • added: function strokeFrom(path: string, opts?: Partial<ApexUnitShapeMeta>): ApexUnitShape
  • added: function tiers(meta: ApexUnitShapeMeta): ApexUnitShape
  • added: function unregisterShapes(names: string[] | string): void
  • added: interface ApexUnitShape
  • added: interface ApexUnitShapeMeta
  • added: interface ApexUnitShapeObject
  • added: interface ApexUnitShapePosition
  • added: interface ApexUnitShapeRect
  • added: method ApexUnitShape.with(overrides: Partial<ApexUnitShapeMeta>): ApexUnitShape
  • added: property ApexUnitShapeMeta.category?: ApexUnitShapeCategory
  • added: property ApexUnitShapeMeta.fillRule?: 'nonzero' | 'evenodd'
  • added: property ApexUnitShapeMeta.kind?: 'silhouette' | 'stroke' | 'rings' | 'globe' | 'tiers'
  • added: property ApexUnitShapeMeta.lint?: { minSeparation?: number }
  • added: property ApexUnitShapeMeta.minUnits?: number
  • added: property ApexUnitShapeMeta.name: string
  • added: property ApexUnitShapeMeta.order?: ApexUnitShapeOrder
  • added: property ApexUnitShapeMeta.padding?: number
  • added: property ApexUnitShapeMeta.path?: string
  • added: property ApexUnitShapeMeta.rowRatio?: number
  • added: property ApexUnitShapeMeta.sampling?: number
  • added: property ApexUnitShapeMeta.source?: 'original' | 'generated'
  • added: property ApexUnitShapeMeta.tilt?: number
  • added: property ApexUnitShapeMeta.twist?: number
  • added: property ApexUnitShapeMeta.width?: number
  • added: property ApexUnitShapeObject.dataPointIndex: number
  • added: property ApexUnitShapeObject.datum: any
  • added: property ApexUnitShapeObject.id: string
  • added: property ApexUnitShapeObject.index: number
  • added: property ApexUnitShapeObject.label: string
  • added: property ApexUnitShapeObject.r: number
  • added: property ApexUnitShapeObject.seriesIndex: number
  • added: property ApexUnitShapeObject.value?: number
  • added: property ApexUnitShapePosition.id: string
  • added: property ApexUnitShapePosition.r?: number
  • added: property ApexUnitShapePosition.x: number
  • added: property ApexUnitShapePosition.y: number
  • added: property ApexUnitShapeRect.height: number
  • added: property ApexUnitShapeRect.width: number
  • added: property ApexUnitShapeRect.x: number
  • added: property ApexUnitShapeRect.y: number
  • added: readonly property ApexUnitShape.shape: Readonly<ApexUnitShapeMeta>
  • added: type ApexUnitShapeCategory = 'nature' | 'objects' | 'people' | 'business' | 'technology' | 'symbols' | 'geography'
  • added: type ApexUnitShapeOrder = 'rows' | 'rowsUp' | 'cols' | 'colsRev' | 'centerOut' | 'centerIn'