textAlign?: TextAlign;
}
-export interface LegendElement extends Element, LayoutItem {}
+export interface LegendElement<TType extends ChartType> extends Element, LayoutItem {
+ chart: Chart<TType>;
+ ctx: CanvasRenderingContext2D;
+ legendItems?: LegendItem[];
+ options: LegendOptions<TType>;
+}
-export interface LegendOptions {
+export interface LegendOptions<TType extends ChartType> {
/**
* Is the legend shown?
* @default true
/**
* A callback that is called when a click event is registered on a label item.
*/
- onClick(this: LegendElement, e: ChartEvent, legendItem: LegendItem, legend: LegendElement): void;
+ onClick(this: LegendElement<TType>, e: ChartEvent, legendItem: LegendItem, legend: LegendElement<TType>): void;
/**
* A callback that is called when a 'mousemove' event is registered on top of a label item
*/
- onHover(this: LegendElement, e: ChartEvent, legendItem: LegendItem, legend: LegendElement): void;
+ onHover(this: LegendElement<TType>, e: ChartEvent, legendItem: LegendItem, legend: LegendElement<TType>): void;
/**
* A callback that is called when a 'mousemove' event is registered outside of a previously hovered label item.
*/
- onLeave(this: LegendElement, e: ChartEvent, legendItem: LegendItem, legend: LegendElement): void;
+ onLeave(this: LegendElement<TType>, e: ChartEvent, legendItem: LegendItem, legend: LegendElement<TType>): void;
labels: {
/**
tooltipItems: TooltipItem<TType>[];
}
-export interface TooltipOptions<TType extends ChartType> extends CoreInteractionOptions {
+export interface TooltipOptions<TType extends ChartType = ChartType> extends CoreInteractionOptions {
/**
* Are on-canvas tooltips enabled?
* @default true
/**
* Sort tooltip items.
*/
- itemSort: (a: TooltipItem<ChartType>, b: TooltipItem<ChartType>, data: ChartData) => number;
+ itemSort: (a: TooltipItem<TType>, b: TooltipItem<TType>, data: ChartData) => number;
- filter: (e: TooltipItem<ChartType>, index: number, array: TooltipItem<ChartType>[], data: ChartData) => boolean;
+ filter: (e: TooltipItem<TType>, index: number, array: TooltipItem<TType>[], data: ChartData) => boolean;
/**
* Background color of the tooltip.
/**
* The dataset the item comes from
*/
- dataset: ChartDataset;
+ dataset: UnionToIntersection<ChartDataset<TType>>;
/**
* Index of the dataset the item comes from
export interface PluginOptionsByType<TType extends ChartType> {
decimation: DecimationOptions;
filler: FillerOptions;
- legend: LegendOptions;
+ legend: LegendOptions<TType>;
title: TitleOptions;
tooltip: TooltipOptions<TType>;
}