UNPKG

apexcharts

Version:

A JavaScript Chart Library

857 lines (829 loc) 18 kB
// Typescript declarations for Apex class and module. // Note: When you have a class and a module with the same name; the module is merged // with the class. This is necessary since apexcharts exports the main ApexCharts class only. // // This is a sparse typed declarations of chart interfaces. See Apex Chart documentation // for comprehensive API: https://apexcharts.com/docs/options // // There is on-going work to provide a comprehensive typed definition for this component. // See https://github.com/DefinitelyTyped/DefinitelyTyped/pull/28733 declare class ApexCharts { constructor(el: any, options: any); render(): Promise<void>; updateOptions(options: any, redrawPaths: boolean, animate: boolean): Promise<void>; updateSeries(newSeries: ApexAxisChartSeries | ApexNonAxisChartSeries, animate: boolean): void; toggleSeries(seriesName: string): void; destroy(): void; addXaxisAnnotation(options: any, pushToMemory?: boolean, context?: any): void; addYaxisAnnotation(options: any, pushToMemory?: boolean, context?: any): void; addPointAnnotation(options: any, pushToMemory?: boolean, context?: any): void; addText(options: any, pushToMemory?: boolean, context?: any): void; dataURI(): void; static exec(chartID: string, fn: () => void, options: any): any; static initOnLoad(): void; } declare module ApexCharts { export interface ApexOptions { annotations?: ApexAnnotations; chart?: ApexChart; colors?: string[]; dataLabels?: ApexDataLabels; series?: ApexAxisChartSeries | ApexNonAxisChartSeries; stroke?: ApexStroke; labels?: string[]; legend?: ApexLegend; fill?: ApexFill; tooltip?: ApexTooltip; plotOptions?: ApexPlotOptions; responsive?: ApexResponsive[]; xaxis?: ApexXAxis; yaxis?: ApexYAxis | ApexYAxis[]; grid?: ApexGrid; states?: ApexStates; title?: ApexTitleSubtitle; subtitle?: ApexTitleSubtitle; theme?: ApexTheme; } } /** * Main Chart options * See https://apexcharts.com/docs/options/chart/ */ type ApexChart = { width?: string | number; height?: string | number; type: "line" | "area" | "bar" | "histogram" | "pie" | "donut" | "radialBar" | "scatter" | "bubble" | "heatmap" | "candlestick" | "radar"; foreColor?: string; fontFamily: string; background?: string; offsetX?: number; offsetY?: number; dropShadow?: { enabled?: boolean; top?: number; left?: number; blur?: number; opacity?: number; }; events?: { animationEnd?(chart: any, options: any): void; beforeMount?(chart: any, options: any): void; mounted?(chart: any, options: any): void; updated?(chart: any, options: any): void; click?(e: any, chart: any, options: any): void; legendClick?(chart: any, seriesIndex: number, options: any): void; selection?(chart: any, options: any): void; dataPointSelection?(e: any, chart: any, options: any): void; dataPointMouseEnter?(e: any, chart: any, options: any): void; dataPointMouseLeave?(e: any, chart: any, options: any): void; beforeZoom?(chart: any, options: any): void; zoomed?(chart: any, options: any): void; scrolled?(chart: any, options: any): void; }; brush?: { enabled?: boolean; autoScaleYaxis: boolean, target?: string; }; id?: string; locales?: ApexLocale[]; defaultLocale?: string; sparkline?: { enabled?: boolean; }; stacked?: boolean; stackType?: "normal" | "100%"; toolbar?: { show?: boolean; tools?: { download?: boolean; selection?: boolean; zoom?: boolean; zoomin?: boolean; zoomout?: boolean; pan?: boolean; reset?: boolean; }; autoSelected?: "zoom" | "selection" | "pan"; }; zoom?: { enabled?: boolean; type?: "x" | "y" | "xy"; zoomedArea?: { fill?: { color?: string; opacity?: number }; stroke?: { color?: string; opacity?: number; width?: number } } }; selection?: { enabled?: boolean; type?: string; fill?: { color?: string; opacity?: number; }; stroke?: { width?: number; color?: string; opacity?: number; dashArray?: number }; xaxis?: { min?: number; max?: number; }; yaxis?: { min?: number; max?: number }; }; animations?: { enabled?: boolean; easing?: "linear" | "easein" | "easeout" | "easeinout"; speed?: number; animateGradually?: { enabled?: boolean; delay?: number; } dynamicAnimation?: { enabled?: boolean; speed?: number; } }; }; type ApexStates = { normal?: { filter?: { type?: string, value?: number } }, hover?: { filter?: { type?: string, value?: number } }, active?: { allowMultipleDataPointsSelection?: boolean, filter?: { type?: string, value?: number } } }; /** * Chart Title options * See https://apexcharts.com/docs/options/title/ */ type ApexTitleSubtitle = { text?: string; align?: "left" | "center" | "right"; margin?: number; offsetX?: number; offsetY?: number; floating?: number; style?: { fontSize?: string; color?: string; }; }; /** * Chart Series options. * Use ApexNonAxisChartSeries for Pie and Donut charts. * See https://apexcharts.com/docs/options/series/ */ type ApexAxisChartSeries = { name: string; data: number[] | { x: string; y: number }[]; }[]; type ApexNonAxisChartSeries = number[]; /** * Options for the line drawn on line and area charts. * See https://apexcharts.com/docs/options/stroke/ */ type ApexStroke = { show?: boolean; curve?: "smooth" | "straight" | "stepline"; lineCap?: "butt" | "square" | "round"; colors?: string; width?: number; dashArray?: number | number[] }; type ApexAnnotations = { position?: string; yaxis?: YAxisAnnotations[]; xaxis?: XAxisAnnotations[]; points?: PointAnnotations[]; }; type AnnotationLabel = { borderColor?: string; borderWidth?: number; text?: string; textAnchor?: string; offsetX?: number; offsetY?: number; style?: AnnotationStyle; position?: string; orientation?: string; }; type AnnotationStyle = { background: string; color: string; fontSize: string; cssClass: string; padding?: { left?: number; right?: number; top?: number; bottom?: number; }; }; type XAxisAnnotations = { x?: number; strokeDashArray?: number; borderColor?: string; offsetX?: number; offsetY?: number; label?: { borderColor?: string; borderWidth?: number; text?: string; textAnchor?: string; position?: string; orientation?: string; offsetX?: number; offsetY?: number; style?: AnnotationStyle; }; }; type YAxisAnnotations = { y?: number; strokeDashArray?: number; borderColor?: string; offsetX?: number; offsetY?: number; yAxisIndex?: number; label?: AnnotationLabel; }; type PointAnnotations = { x?: number; y?: null; yAxisIndex?: number; seriesIndex?: number; marker?: { size?: number; fillColor?: string; strokeColor?: string; strokeWidth?: number; shape?: string; radius?: number; }; label?: AnnotationLabel; }; /** * Options for localization. * See https://apexcharts.com/docs/options/chart/locales */ type ApexLocale = { name?: string; options?: { months?: string[]; shortMonths?: string[]; days?: string[]; shortDays?: string[]; toolbar?: { download?: string; selection?: string; selectionZoom?: string; zoomIn?: string; zoomOut?: string; pan?: string; reset?: string; } } } /** * PlotOptions for specifying chart-type-specific configuration. * See https://apexcharts.com/docs/options/plotoptions/bar/ */ type ApexPlotOptions = { bar?: { horizontal?: boolean; endingShape?: "flat" | "rounded" | "arrow"; columnWidth?: string; barHeight?: string; distributed?: boolean; colors?: { ranges?: { from?: number; to?: number; color?: string; }[]; backgroundBarColors?: string[]; backgroundBarOpacity?: number; }; dataLabels?: { position?: string; } }; candlestick?: { colors?: { upward?: string; downward?: string; }; wick?: { useFillColor?: boolean } }; heatmap?: { radius?: number; enableShades?: boolean; shadeIntensity?: number; distributed?: boolean; colorScale?: { inverse?: boolean; ranges?: { from?: number; to?: number; color?: string; }[]; min?: number; max?: number; } }; pie?: { size?: number; donut?: { size?: string; background?: string; labels: { show?: boolean; name?: { show?: boolean; fontSize?: string; fontFamily?: string; color?: string; offsetY?: number }; value?: { show?: boolean; fontSize?: string; fontFamily?: string; color?: string; offsetY?: number; formatter?(val: string): string; }; total?: { show?: boolean; label?: string; color?: string; formatter?(w: any): string; } } }; customScale?: number; offsetX?: number; offsetY?: number; dataLabels?: { offset?: number; } }; radar: { size?: number; offsetX?: number; offsetY?: number; polygons?: { strokeColor?: string; fill?: { colors?: string[] } } }; radialBar?: { size?: number; inverseOrder?: boolean; startAngle?: number; endAngle?: number; offsetX?: number; offsetY?: number; hollow?: { margin?: number; size?: string; background?: string; image?: string; width?: number; height?: number; offsetX?: number; offsetY?: number; clipped?: boolean; position?: "front" | "back"; }; track?: { show?: boolean; startAngle?: number; endAngle?: number; background?: string; strokeWidth?: string; opacity?: number; margin?: number; dropShadow?: { enabled?: boolean; top?: number; left?: number; blur?: number; opacity?: number } }; dataLabels?: { show?: boolean; name?: { show?: boolean; fontSize?: string; color?: string; offsetY?: number; }; value?: { show?: boolean; fontSize?: string; color?: string; offsetY?: number; formatter?(val: number): string; }; total?: { show?: boolean; label?: string; color?: string; formatter?(opts: any): string; }; } } }; type ApexFill = { colors?: string[]; opacity?: number; type?: string; gradient?: { shade?: string; type?: string; shadeIntensity?: number; gradientToColors?: string[]; inverseColors?: boolean; opacityFrom?: number; opacityTo?: number; stops?: number[] }; image?: { src?: string[]; width?: number; height?: number }; pattern?: { style?: string; width?: number; height?: number; strokeWidth?: number; }; }; /** * Chart Legend configuration options. * See https://apexcharts.com/docs/options/legend/ */ type ApexLegend = { show?: boolean; showForSingleSeries?: boolean; showForNullSeries?: boolean; showForZeroSeries?: boolean; floating?: boolean; position?: "top" | "right" | "bottom" | "left"; horizontalAlign?: "left" | "center" | "right"; fontSize?: string; fontFamily?: string; width?: number; height?: number; offsetX?: number; offsetY?: number; formatter?(val: string, opts: any): string; textAnchor?: string; labels?: { color?: string useSeriesColors?: boolean; }; markers?: { width?: number; height?: number; strokeColor?: string strokeWidth?: number; offsetX?: number; offsetY?: number; radius?: number; shape?: "circle" | "square"; customHTML?(): string; onClick?(): void; }; itemMargin?: { horizontal?: number; vertical?: number; }; containerMargin?: { left?: number; top?: number; }; onItemClick?: { toggleDataSeries?: boolean; }; onItemHover?: { highlightDataSeries?: boolean; } }; /** * Chart Datalabels options * See https://apexcharts.com/docs/options/datalabels/ */ type ApexDataLabels = { enabled?: boolean; formatter?(val: number, opts: any): string; textAnchor?: "start" | "middle" | "end"; offsetX?: number; offsetY?: number; style?: { fontSize?: string; fontFamily?: string; colors?: string[]; }; dropShadow?: { enabled: boolean; top?: number; left?: number; blur?: number; opacity?: number; } }; type ApexResponsive = { breakpoint?: number; options?: any; }; /** * Chart Tooltip options * See https://apexcharts.com/docs/options/tooltip/ */ type ApexTooltip = { enabled?: boolean; shared: true; followCursor?: boolean; intersect?: boolean; inverseOrder?: boolean; custom?(options: any): void; theme?: string; fillSeriesColor?: boolean; onDatasetHover?: { highlightDAtaSeries?: boolean; }; x?: { show?: boolean; format?: string; formatter?(val: number): string; } y?: { show?: boolean; formatter?(val: number): string; title?: { formatter?(seriesName: string): string; } }; z?: { formatter?(val: number): string; title?: string }; marker?: { show?: boolean }; items: { display: string }; fixed: { enabled: boolean; position: string; // topRight; topLeft; bottomRight; bottomLeft offsetX: number; offsetY: number } }; /** * X Axis options * See https://apexcharts.com/docs/options/xaxis/ */ type ApexXAxis = { type?: "categories" | "datetime" | "numeric"; categories?: string[] | number[]; labels?: { show?: boolean; rotate?: number; rotateAlways?: boolean; hideOverlappingLabels?: boolean; showDuplicates?: boolean; trim?: boolean; minHeight?: number; maxHeight?: number; style?: { colors?: string[]; fontSize?: string; fontFamily?: string; cssClass?: string; }; offsetX?: number; offsetY?: number; format?: string; formatter?(value: string, timestamp: number): string; datetimeFormatter?: { year?: string; month?: string; day?: string; hour?: string; minute?: string; }; }; axisBorder?: { show: boolean; color: string; offsetX: number; offsetY: number; strokeWidth: number; }; axisTicks?: { show?: boolean; borderType?: string; color?: string; height?: number; offsetX?: number; offsetY?: number; }; tickAmount?: number; min?: number; max?: number; range?: number; floating?: boolean; position?: string; title?: { text?: string; offsetX?: number; offsetY?: number; style?: { color?: string; fontSize?: string; cssClass?: string; }; }; crosshairs?: { show?: boolean; width?: number | string; position?: string; opacity?: number; stroke?: { color?: string; width?: number; dashArray?: number; }; fill?: { type?: string; color?: string; gradient?: { colorFrom?: string; colorTo?: string; stops?: number[]; opacityFrom?: number; opacityTo?: number; }; }; dropShadow?: { enabled?: boolean; top?: number; left?: number; blur?: number; opacity?: number; }; }; tooltip?: { enabled?: boolean; offsetY?: number; }; }; /** * Y Axis options * See https://apexcharts.com/docs/options/yaxis/ */ type ApexYAxis = { seriesName?: string; opposite?: boolean; tickAmount?: number; min?: number; max?: number; floating?: boolean; decimalsInFloat?: number; labels?: { show?: boolean; maxWidth?: number; style?: { color?: string; fontSize?: string; cssClass?: string; }; offsetX?: number; offsetY?: number; formatter?(val: number): string; }; axisBorder?: { show?: boolean; color?: string; offsetX?: number; offsetY?: number }; axisTicks?: { show?: boolean; borderType?: string; color?: string; width?: number; offsetX?: number; offsetY?: number }; title?: { text?: string; rotate?: number; offsetX?: number; offsetY?: number; style?: { color?: string; fontSize?: string; cssClass?: string; }; }; crosshairs?: { show?: boolean; position?: string; stroke?: { color?: string; width?: number; dashArray?: number }; }; tooltip?: { enabled?: boolean; offsetX?: number; }; }; /** * Plot X and Y grid options * See https://apexcharts.com/docs/options/grid/ */ type ApexGrid = { show?: boolean; borderColor?: string; strokeDashArray?: number; position?: "front" | "back"; xaxis?: { lines?: { show?: boolean; offsetX?: number; offsetY?: number; } }; yaxis?: { lines?: { show?: boolean; offsetX?: number; offsetY?: number; } }; row?: { colors?: string[]; opacity?: number }; column?: { colors?: string[]; opacity?: number; }; padding?: { top?: number; right?: number; bottom?: number; left?: number; }; }; type ApexTheme = { palette?: string; monochrome?: { enabled?: boolean, color?: string; shadeTo?: "light" | "dark"; shadeIntensity?: number } } declare module "apexcharts" { export = ApexCharts; }