/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2026 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the package root for more information *------------------------------------------------------------------------------------------- */ import { AxisLabelClickEvent, DragEvent, DragStartEvent, DragEndEvent, LegendItemClickEvent, LegendItemHoverEvent, NoteClickEvent, NoteHoverEvent, PlotAreaClickEvent, PlotAreaHoverEvent, RenderEvent, SeriesClickEvent, SeriesHoverEvent, ZoomEvent, ZoomStartEvent, ZoomEndEvent, SelectEvent, SelectStartEvent, SelectEndEvent } from './common/events'; import { AxisDefaults, DragAction, Pane, PaneDefaults, SeriesDefaults, Zoomable } from './common/property-types'; /** * @hidden */ export interface BaseChartPrivateProps extends BaseChartProps { /** * @hidden */ deriveOptionsFromParent?: (options: any) => any; /** * @hidden */ chartConstructor: any; /** * @hidden */ className: string; /** * @hidden */ chartStyle: object; /** * @hidden */ wrapper: string; /** * @hidden */ getTarget: () => any; /** * @hidden */ onRefresh?: (chartOptions: any, themeOptions: any, chartInstance: any) => void; /** * @hidden */ dataItems?: any; /** * @hidden */ onBasechartevent?: (event: any) => void; } /** * @hidden */ export interface BaseChartProps { /** * Represents the `dir` HTML attribute. */ dir?: string; /** * Sets the preferred rendering engine ([see example]({% slug rendering_chart_charts %})). If not supported by the browser, the Chart switches to the first available mode. * * The supported values are: * - `"svg"`—If available, renders the component as an inline `.svg` file. * - `"canvas"`—If available, renders the component as a `canvas` element. */ renderAs?: string; /** * Specifies if the Chart can be panned ([see example]({% slug panzoom_chart_charts %})). */ pannable?: boolean | DragAction; /** * Specifies if the Chart can be zoomed ([see example]({% slug panzoom_chart_charts %})). */ zoomable?: boolean | Zoomable; /** * The default colors for the Chart series. When all colors are used, new colors are pulled from the start again. */ seriesColors?: string[]; /** * If set to `true`, the Chart plays animations when it displays the series. By default, animations are enabled. */ transitions?: boolean; /** * This option allows to override the default pane options. */ paneDefaults?: PaneDefaults; /** * The chart panes configuration. */ panes?: Pane[]; /** * This option allows to override the default series options. */ seriesDefaults?: SeriesDefaults; /** * This option allows to override the default axis options. */ axisDefaults?: AxisDefaults; /** * @hidden */ allListeners?: object; /** * Fires when the user clicks an axis label. */ onAxislabelclick?: (event: AxisLabelClickEvent) => void; /** * Fires as long as the user is dragging the Chart with the mouse or through swipe gestures. */ onDrag?: (event: DragEvent) => void; /** * Fires when the user stops dragging the Chart. */ onDragend?: (event: DragEndEvent) => void; /** * Fires when the user starts dragging the Chart. */ onDragstart?: (event: DragStartEvent) => void; /** * Fires when the user hovers over a legend item. */ onLegenditemhover?: (event: LegendItemHoverEvent) => void; /** * Fires when the user clicks a legend item ([see example]({% slug legend_chart_charts %}#toc-clicking-legend-items)). */ onLegenditemclick?: (event: LegendItemClickEvent) => void; /** * Fires when the user clicks a note. */ onNoteclick?: (event: NoteClickEvent) => void; /** * Fires when the user hovers over a note. */ onNotehover?: (event: NoteHoverEvent) => void; /** * Fires when the user clicks the plot area. The `click` event is triggered by the `tap` and `contextmenu` events. To distinguish between the original events, inspect the `e.originalEvent.type` field. */ onPlotareaclick?: (event: PlotAreaClickEvent) => void; /** * Fires when the user hovers the plot area ([see example]({% slug crosshairs_chart_charts %}#toc-current-cursor-values)). */ onPlotareahover?: (event: PlotAreaHoverEvent) => void; /** * Fires when the Chart is ready to render on screen ([see example]({% slug plotbands_chart_charts %}#toc-custom-plot-bands)). For example, you can use it to remove loading indicators. Any changes made to the options are ignored. */ onRender?: (event: RenderEvent) => void; /** * Fires when the user modifies the selection. * * The range units are: * - Generic axis—Category index (0-based). * - Date axis—Date instance. */ onSelect?: (event: SelectEvent) => void; /** * Fires when the user completes the modification of the selection ([see example]({% slug selection_chart_charts %}#toc-using-selection-as-navigator)). * * The range units are: * - Generic axis—Category index (0-based). * - Date axis—Date instance. */ onSelectend?: (event: SelectEndEvent) => void; /** * Fires when the user starts modifying the axis selection. * * The range units are: * - Generic axis—Category index (0-based). * - Date axis—Date instance. */ onSelectstart?: (event: SelectStartEvent) => void; /** * Fires when the user clicks the Chart series. * * The `click` event will be triggered by the `tap` and `contextmenu` events. To distinguish between the original events, inspect the `e.originalEvent.type` field. */ onSeriesclick?: (event: SeriesClickEvent) => void; /** * Fires when the user hovers over the Chart series. */ onSerieshover?: (event: SeriesHoverEvent) => void; /** * Fires as long as the user is zooming the Chart by using the mousewheel operation. */ onZoom?: (event: ZoomEvent) => void; /** * Fires when the user stops zooming the Chart. */ onZoomend?: (event: ZoomEndEvent) => void; /** * Fires when the user uses the mousewheel to zoom the Chart. */ onZoomstart?: (event: ZoomStartEvent) => void; }