Update ScriptableContext, reduce warnings (#8390)

* Update ScriptableContext, reduce warnings

* _parsed is unknown[]

* Add defaults

* static defaults.

* review update

* more cancelables
This commit is contained in:
Jukka Kurkela 2021-02-06 02:59:55 +02:00 committed by GitHub
parent 22ca8af1cd
commit 90758950ad
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 100 additions and 87 deletions

11
types/animation.d.ts vendored
View File

@ -1,9 +1,10 @@
import { Chart } from './index.esm';
import { AnyObject } from './basic';
export class Animation {
constructor(cfg: any, target: any, prop: string, to?: any);
constructor(cfg: AnyObject, target: AnyObject, prop: string, to?: unknown);
active(): boolean;
update(cfg: any, to: any, date: number): void;
update(cfg: AnyObject, to: unknown, date: number): void;
cancel(): void;
tick(date: number): void;
}
@ -25,7 +26,7 @@ export class Animator {
}
export class Animations {
constructor(chart: Chart, animations: {});
configure(animations: {}): void;
update(target: any, values: any): undefined | boolean;
constructor(chart: Chart, animations: AnyObject);
configure(animations: AnyObject): void;
update(target: AnyObject, values: AnyObject): undefined | boolean;
}

3
types/basic.d.ts vendored Normal file
View File

@ -0,0 +1,3 @@
export type AnyObject = Record<string, unknown>;
export type EmptyObject = Record<string, never>;

View File

@ -1,3 +1,5 @@
import { AnyObject } from '../basic';
/**
* An empty function that can be used, for example, for optional callback.
*/
@ -15,27 +17,27 @@ export function uid(): number;
* @returns {boolean}
* @since 2.7.0
*/
export function isNullOrUndef(value: any): value is null | undefined;
export function isNullOrUndef(value: unknown): value is null | undefined;
/**
* Returns true if `value` is an array (including typed arrays), else returns false.
* @param {*} value - The value to test.
* @returns {boolean}
* @function
*/
export function isArray<T = any>(value: any): value is ArrayLike<T>;
export function isArray<T = unknown>(value: unknown): value is ArrayLike<T>;
/**
* Returns true if `value` is an object (excluding null), else returns false.
* @param {*} value - The value to test.
* @returns {boolean}
* @since 2.7.0
*/
export function isObject(value: any): value is object;
export function isObject(value: unknown): value is AnyObject;
/**
* Returns true if `value` is a finite number, else returns false
* @param {*} value - The value to test.
* @returns {boolean}
*/
export function isFinite(value: any): value is number;
export function isFinite(value: unknown): value is number;
/**
* Returns `value` if defined, else returns `defaultValue`.
* @param {*} value - The value to return if defined.
@ -51,9 +53,9 @@ export function valueOrDefault<T>(value: T | undefined, defaultValue: T): T;
* @param [thisArg] - The value of `this` provided for the call to `fn`.
* @returns {*}
*/
export function callback<T extends (this: TA, ...args: any[]) => R, TA, R>(
export function callback<T extends (this: TA, ...args: unknown[]) => R, TA, R>(
fn: T | undefined,
args: any[],
args: unknown[],
thisArg?: TA
): R | undefined;
@ -95,7 +97,7 @@ export function each<T, TA>(
export function clone<T>(source: T): T;
export interface MergeOptions {
merger?: (key: string, target: any, source: any, options: any) => any;
merger?: (key: string, target: AnyObject, source: AnyObject, options: AnyObject) => AnyObject;
}
/**
* Recursively deep copies `source` properties into `target` with the given `options`.
@ -116,7 +118,7 @@ export function merge<T, S1, S2, S3, S4>(
source: [S1, S2, S3, S4],
options?: MergeOptions
): T & S1 & S2 & S3 & S4;
export function merge<T>(target: T, source: any[], options?: MergeOptions): any;
export function merge<T>(target: T, source: AnyObject[], options?: MergeOptions): AnyObject;
/**
* Recursively deep copies `source` properties into `target` *only* if not defined in target.
@ -131,6 +133,6 @@ export function mergeIf<T, S1>(target: T, source: [S1]): T & S1;
export function mergeIf<T, S1, S2>(target: T, source: [S1, S2]): T & S1 & S2;
export function mergeIf<T, S1, S2, S3>(target: T, source: [S1, S2, S3]): T & S1 & S2 & S3;
export function mergeIf<T, S1, S2, S3, S4>(target: T, source: [S1, S2, S3, S4]): T & S1 & S2 & S3 & S4;
export function mergeIf<T>(target: T, source: any[]): any;
export function mergeIf<T>(target: T, source: AnyObject[]): AnyObject;
export function resolveObjectKey(obj: any, key: string): any;
export function resolveObjectKey(obj: AnyObject, key: string): AnyObject;

151
types/index.esm.d.ts vendored
View File

@ -14,6 +14,7 @@
import { TimeUnit } from './adapters';
import { AnimationEvent } from './animation';
import { AnyObject, EmptyObject } from './basic';
import { Color } from './color';
import { Element } from './element';
import { ChartArea, Point } from './geometric';
@ -39,7 +40,8 @@ export {
export interface ScriptableContext {
chart: Chart;
dataPoint: any;
parsed: unknown[];
raw: unknown[];
dataIndex: number;
dataset: ChartDataset;
datasetIndex: number;
@ -140,7 +142,7 @@ export interface BarControllerChartOptions {
skipNull?: boolean;
}
export interface BarController extends DatasetController {}
export type BarController = DatasetController
export const BarController: ChartComponent & {
prototype: BarController;
new (chart: Chart, datasetIndex: number): BarController;
@ -168,7 +170,7 @@ export interface BubbleDataPoint {
r: number;
}
export interface BubbleController extends DatasetController {}
export type BubbleController = DatasetController
export const BubbleController: ChartComponent & {
prototype: BubbleController;
new (chart: Chart, datasetIndex: number): BubbleController;
@ -211,7 +213,7 @@ export interface LineControllerChartOptions {
showLine: boolean;
}
export interface LineController extends DatasetController {}
export type LineController = DatasetController
export const LineController: ChartComponent & {
prototype: LineController;
new (chart: Chart, datasetIndex: number): LineController;
@ -226,7 +228,7 @@ export interface ScatterDataPoint {
export type ScatterControllerChartOptions = LineControllerChartOptions;
export interface ScatterController extends LineController {}
export type ScatterController = LineController
export const ScatterController: ChartComponent & {
prototype: ScatterController;
new (chart: Chart, datasetIndex: number): ScatterController;
@ -316,7 +318,7 @@ export type PieAnimationOptions = DoughnutAnimationOptions;
export type PieDataPoint = DoughnutDataPoint;
export interface PieController extends DoughnutController {}
export type PieController = DoughnutController
export const PieController: ChartComponent & {
prototype: PieController;
new (chart: Chart, datasetIndex: number): PieController;
@ -378,7 +380,7 @@ export interface RadarControllerDatasetOptions
export type RadarControllerChartOptions = LineControllerChartOptions;
export interface RadarController extends DatasetController {}
export type RadarController = DatasetController
export const RadarController: ChartComponent & {
prototype: RadarController;
new (chart: Chart, datasetIndex: number): RadarController;
@ -415,7 +417,7 @@ export interface ChartMeta<TElement extends Element = Element, TDatasetElement e
_sorted: boolean;
_stacked: boolean;
_parsed: any[];
_parsed: unknown[];
}
export interface ActiveDataPoint {
@ -480,13 +482,14 @@ export declare class Chart<
setActiveElements(active: ActiveDataPoint[]): void;
destroy(): void;
toBase64Image(type?: string, quality?: any): string;
toBase64Image(type?: string, quality?: unknown): string;
bindEvents(): void;
unbindEvents(): void;
updateHoverStyle(items: Element, mode: 'dataset', enabled: boolean): void;
notifyPlugins(hook: string, args?: AnyObject): boolean | void;
static readonly defaults: Defaults;
static readonly version: string;
static readonly instances: { [key: string]: Chart };
static readonly registry: Registry;
@ -541,44 +544,44 @@ export class DatasetController<TElement extends Element = Element, TDatasetEleme
addElements(): void;
buildOrUpdateElements(resetNewElements?: boolean): void;
getStyle(index: number, active: boolean): any;
protected resolveDatasetElementOptions(active: boolean): any;
protected resolveDataElementOptions(index: number, mode: UpdateMode): any;
getStyle(index: number, active: boolean): AnyObject;
protected resolveDatasetElementOptions(active: boolean): AnyObject;
protected resolveDataElementOptions(index: number, mode: UpdateMode): AnyObject;
/**
* Utility for checking if the options are shared and should be animated separately.
* @protected
*/
protected getSharedOptions(options: any): undefined | any;
protected getSharedOptions(options: AnyObject): undefined | AnyObject;
/**
* Utility for determining if `options` should be included in the updated properties
* @protected
*/
protected includeOptions(mode: UpdateMode, sharedOptions: any): boolean;
protected includeOptions(mode: UpdateMode, sharedOptions: AnyObject): boolean;
/**
* Utility for updating an element with new properties, using animations when appropriate.
* @protected
*/
protected updateElement(element: TElement | TDatasetElement, index: number | undefined, properties: any, mode: UpdateMode): void;
protected updateElement(element: TElement | TDatasetElement, index: number | undefined, properties: AnyObject, mode: UpdateMode): void;
/**
* Utility to animate the shared options, that are potentially affecting multiple elements.
* @protected
*/
protected updateSharedOptions(sharedOptions: any, mode: UpdateMode, newOptions: any): void;
protected updateSharedOptions(sharedOptions: AnyObject, mode: UpdateMode, newOptions: AnyObject): void;
removeHoverStyle(element: TElement, datasetIndex: number, index: number): void;
setHoverStyle(element: TElement, datasetIndex: number, index: number): void;
parse(start: number, count: number): void;
protected parsePrimitiveData(meta: ChartMeta<TElement, TDatasetElement>, data: any[], start: number, count: number): any[];
protected parseArrayData(meta: ChartMeta<TElement, TDatasetElement>, data: any[], start: number, count: number): any[];
protected parseObjectData(meta: ChartMeta<TElement, TDatasetElement>, data: any[], start: number, count: number): any[];
protected getParsed(index: number): any;
protected applyStack(scale: Scale, parsed: any[]): number;
protected parsePrimitiveData(meta: ChartMeta<TElement, TDatasetElement>, data: AnyObject[], start: number, count: number): AnyObject[];
protected parseArrayData(meta: ChartMeta<TElement, TDatasetElement>, data: AnyObject[], start: number, count: number): AnyObject[];
protected parseObjectData(meta: ChartMeta<TElement, TDatasetElement>, data: AnyObject[], start: number, count: number): AnyObject[];
protected getParsed(index: number): AnyObject;
protected applyStack(scale: Scale, parsed: unknown[]): number;
protected updateRangeFromParsed(
range: { min: number; max: number },
scale: Scale,
parsed: any[],
parsed: unknown[],
stack: boolean
): void;
protected getMinMax(scale: Scale, canStack?: boolean): { min: number; max: number };
@ -593,7 +596,6 @@ export interface DatasetControllerChartComponent extends ChartComponent {
};
}
export type AnyObject = Record<string, unknown>;
export interface Defaults extends CoreChartOptions, ElementChartOptions, PluginChartOptions {
controllers: {
[key in ChartType]: DeepPartial<
@ -729,7 +731,7 @@ export const layouts: {
update(chart: Chart, width: number, height: number): void;
};
export interface Plugin<O = {}> extends ExtendedPlugin {
export interface Plugin<O = AnyObject> extends ExtendedPlugin {
id: string;
/**
@ -739,7 +741,7 @@ export interface Plugin<O = {}> extends ExtendedPlugin {
* @param {object} options - The plugin options.
* @since 3.0.0
*/
install?(chart: Chart, args: {}, options: O): void;
install?(chart: Chart, args: EmptyObject, options: O): void;
/**
* @desc Called when a plugin is starting. This happens when chart is created or plugin is enabled.
* @param {Chart} chart - The chart instance.
@ -747,7 +749,7 @@ export interface Plugin<O = {}> extends ExtendedPlugin {
* @param {object} options - The plugin options.
* @since 3.0.0
*/
start?(chart: Chart, args: {}, options: O): void;
start?(chart: Chart, args: EmptyObject, options: O): void;
/**
* @desc Called when a plugin stopping. This happens when chart is destroyed or plugin is disabled.
* @param {Chart} chart - The chart instance.
@ -755,21 +757,21 @@ export interface Plugin<O = {}> extends ExtendedPlugin {
* @param {object} options - The plugin options.
* @since 3.0.0
*/
stop?(chart: Chart, args: {}, options: O): void;
stop?(chart: Chart, args: EmptyObject, options: O): void;
/**
* @desc Called before initializing `chart`.
* @param {Chart} chart - The chart instance.
* @param {object} args - The call arguments.
* @param {object} options - The plugin options.
*/
beforeInit?(chart: Chart, args: {}, options: O): void;
beforeInit?(chart: Chart, args: EmptyObject, options: O): void;
/**
* @desc Called after `chart` has been initialized and before the first update.
* @param {Chart} chart - The chart instance.
* @param {object} args - The call arguments.
* @param {object} options - The plugin options.
*/
afterInit?(chart: Chart, args: {}, options: O): void;
afterInit?(chart: Chart, args: EmptyObject, options: O): void;
/**
* @desc Called before updating `chart`. If any plugin returns `false`, the update
* is cancelled (and thus subsequent render(s)) until another `update` is triggered.
@ -779,7 +781,7 @@ export interface Plugin<O = {}> extends ExtendedPlugin {
* @param {object} options - The plugin options.
* @returns {boolean} `false` to cancel the chart update.
*/
beforeUpdate?(chart: Chart, args: { mode: UpdateMode }, options: O): boolean | void;
beforeUpdate?(chart: Chart, args: { mode: UpdateMode, cancelable: true }, options: O): boolean | void;
/**
* @desc Called after `chart` has been updated and before rendering. Note that this
* hook will not be called if the chart update has been previously cancelled.
@ -796,7 +798,7 @@ export interface Plugin<O = {}> extends ExtendedPlugin {
* @param {object} args - The call arguments.
* @param {object} options - The plugin options.
*/
beforeElementsUpdate?(chart: Chart, args: {}, options: O): void;
beforeElementsUpdate?(chart: Chart, args: EmptyObject, options: O): void;
/**
* @desc Called during chart reset
* @param {Chart} chart - The chart instance.
@ -804,7 +806,7 @@ export interface Plugin<O = {}> extends ExtendedPlugin {
* @param {object} options - The plugin options.
* @since version 3.0.0
*/
reset?(chart: Chart, args: {}, options: O): void;
reset?(chart: Chart, args: EmptyObject, options: O): void;
/**
* @desc Called before updating the `chart` datasets. If any plugin returns `false`,
* the datasets update is cancelled until another `update` is triggered.
@ -825,7 +827,7 @@ export interface Plugin<O = {}> extends ExtendedPlugin {
* @param {object} options - The plugin options.
* @since version 2.1.5
*/
afterDatasetsUpdate?(chart: Chart, args: { mode: UpdateMode }, options: O): void;
afterDatasetsUpdate?(chart: Chart, args: { mode: UpdateMode, cancelable: true }, options: O): void;
/**
* @desc Called before updating the `chart` dataset at the given `args.index`. If any plugin
* returns `false`, the datasets update is cancelled until another `update` is triggered.
@ -837,7 +839,7 @@ export interface Plugin<O = {}> extends ExtendedPlugin {
* @param {object} options - The plugin options.
* @returns {boolean} `false` to cancel the chart datasets drawing.
*/
beforeDatasetUpdate?(chart: Chart, args: { index: number; meta: ChartMeta, mode: UpdateMode }, options: O): boolean | void;
beforeDatasetUpdate?(chart: Chart, args: { index: number; meta: ChartMeta, mode: UpdateMode, cancelable: true }, options: O): boolean | void;
/**
* @desc Called after the `chart` datasets at the given `args.index` has been updated. Note
* that this hook will not be called if the datasets update has been previously cancelled.
@ -848,7 +850,7 @@ export interface Plugin<O = {}> extends ExtendedPlugin {
* @param {UpdateMode} args.mode - The update mode.
* @param {object} options - The plugin options.
*/
afterDatasetUpdate?(chart: Chart, args: { index: number; meta: ChartMeta, mode: UpdateMode }, options: O): void;
afterDatasetUpdate?(chart: Chart, args: { index: number; meta: ChartMeta, mode: UpdateMode, cancelable: false }, options: O): void;
/**
* @desc Called before laying out `chart`. If any plugin returns `false`,
* the layout update is cancelled until another `update` is triggered.
@ -857,7 +859,7 @@ export interface Plugin<O = {}> extends ExtendedPlugin {
* @param {object} options - The plugin options.
* @returns {boolean} `false` to cancel the chart layout.
*/
beforeLayout?(chart: Chart, args: {}, options: O): boolean | void;
beforeLayout?(chart: Chart, args: { cancelable: true }, options: O): boolean | void;
/**
* @desc Called before scale data limits are calculated. This hook is called separately for each scale in the chart.
* @param {Chart} chart - The chart instance.
@ -897,7 +899,7 @@ export interface Plugin<O = {}> extends ExtendedPlugin {
* @param {object} args - The call arguments.
* @param {object} options - The plugin options.
*/
afterLayout?(chart: Chart, args: {}, options: O): void;
afterLayout?(chart: Chart, args: EmptyObject, options: O): void;
/**
* @desc Called before rendering `chart`. If any plugin returns `false`,
* the rendering is cancelled until another `render` is triggered.
@ -906,7 +908,7 @@ export interface Plugin<O = {}> extends ExtendedPlugin {
* @param {object} options - The plugin options.
* @returns {boolean} `false` to cancel the chart rendering.
*/
beforeRender?(chart: Chart, args: {}, options: O): boolean | void;
beforeRender?(chart: Chart, args: { cancelable: true }, options: O): boolean | void;
/**
* @desc Called after the `chart` has been fully rendered (and animation completed). Note
* that this hook will not be called if the rendering has been previously cancelled.
@ -914,7 +916,7 @@ export interface Plugin<O = {}> extends ExtendedPlugin {
* @param {object} args - The call arguments.
* @param {object} options - The plugin options.
*/
afterRender?(chart: Chart, args: {}, options: O): void;
afterRender?(chart: Chart, args: EmptyObject, options: O): void;
/**
* @desc Called before drawing `chart` at every animation frame. If any plugin returns `false`,
* the frame drawing is cancelled untilanother `render` is triggered.
@ -923,7 +925,7 @@ export interface Plugin<O = {}> extends ExtendedPlugin {
* @param {object} options - The plugin options.
* @returns {boolean} `false` to cancel the chart drawing.
*/
beforeDraw?(chart: Chart, args: {}, options: O): boolean | void;
beforeDraw?(chart: Chart, args: { cancelable: true }, options: O): boolean | void;
/**
* @desc Called after the `chart` has been drawn. Note that this hook will not be called
* if the drawing has been previously cancelled.
@ -931,7 +933,7 @@ export interface Plugin<O = {}> extends ExtendedPlugin {
* @param {object} args - The call arguments.
* @param {object} options - The plugin options.
*/
afterDraw?(chart: Chart, args: {}, options: O): void;
afterDraw?(chart: Chart, args: EmptyObject, options: O): void;
/**
* @desc Called before drawing the `chart` datasets. If any plugin returns `false`,
* the datasets drawing is cancelled until another `render` is triggered.
@ -940,7 +942,7 @@ export interface Plugin<O = {}> extends ExtendedPlugin {
* @param {object} options - The plugin options.
* @returns {boolean} `false` to cancel the chart datasets drawing.
*/
beforeDatasetsDraw?(chart: Chart, args: {}, options: O): boolean | void;
beforeDatasetsDraw?(chart: Chart, args: { cancelable: true }, options: O): boolean | void;
/**
* @desc Called after the `chart` datasets have been drawn. Note that this hook
* will not be called if the datasets drawing has been previously cancelled.
@ -948,7 +950,7 @@ export interface Plugin<O = {}> extends ExtendedPlugin {
* @param {object} args - The call arguments.
* @param {object} options - The plugin options.
*/
afterDatasetsDraw?(chart: Chart, args: {}, options: O): void;
afterDatasetsDraw?(chart: Chart, args: EmptyObject, options: O, cancelable: false): void;
/**
* @desc Called before drawing the `chart` dataset at the given `args.index` (datasets
* are drawn in the reverse order). If any plugin returns `false`, the datasets drawing
@ -981,7 +983,7 @@ export interface Plugin<O = {}> extends ExtendedPlugin {
* @param {boolean} args.replay - True if this event is replayed from `Chart.update`
* @param {object} options - The plugin options.
*/
beforeEvent?(chart: Chart, args: { event: ChartEvent, replay: boolean }, options: O): boolean | void;
beforeEvent?(chart: Chart, args: { event: ChartEvent, replay: boolean, cancelable: true }, options: O): boolean | void;
/**
* @desc Called after the `event` has been consumed. Note that this hook
* will not be called if the `event` has been previously discarded.
@ -992,7 +994,7 @@ export interface Plugin<O = {}> extends ExtendedPlugin {
* @param {boolean} [args.changed] - Set to true if the plugin needs a render. Should only be changed to true, because this args object is passed through all plugins.
* @param {object} options - The plugin options.
*/
afterEvent?(chart: Chart, args: { event: ChartEvent, replay: boolean, changed?: boolean }, options: O): void;
afterEvent?(chart: Chart, args: { event: ChartEvent, replay: boolean, changed?: boolean, cancelable: false }, options: O): void;
/**
* @desc Called after the chart as been resized.
* @param {Chart} chart - The chart instance.
@ -1007,7 +1009,7 @@ export interface Plugin<O = {}> extends ExtendedPlugin {
* @param {object} args - The call arguments.
* @param {object} options - The plugin options.
*/
destroy?(chart: Chart, args: {}, options: O): void;
destroy?(chart: Chart, args: EmptyObject, options: O): void;
/**
* Called after chart is destroyed on all plugins that were installed for that chart. This hook is also invoked for disabled plugins (options === false).
* @param {Chart} chart - The chart instance.
@ -1015,7 +1017,7 @@ export interface Plugin<O = {}> extends ExtendedPlugin {
* @param {object} options - The plugin options.
* @since 3.0.0
*/
uninstall?(chart: Chart, args: {}, options: O): void;
uninstall?(chart: Chart, args: EmptyObject, options: O): void;
}
export declare type ChartComponentLike = ChartComponent | ChartComponent[] | { [key: string]: ChartComponent };
@ -1202,7 +1204,7 @@ export interface Scale<O extends CoreScaleOptions = CoreScaleOptions> extends El
getBasePixel(): number;
init(options: O): void;
parse(raw: any, index: number): any;
parse(raw: unknown, index: number): unknown;
getUserBounds(): { min: number; max: number; minDefined: boolean; maxDefined: boolean };
getMinMax(canStack: boolean): { min: number; max: number };
getTicks(): Tick[];
@ -1233,7 +1235,7 @@ export interface Scale<O extends CoreScaleOptions = CoreScaleOptions> extends El
}
export const Scale: {
prototype: Scale;
new <O extends CoreScaleOptions = CoreScaleOptions>(cfg: any): Scale<O>;
new <O extends CoreScaleOptions = CoreScaleOptions>(cfg: AnyObject): Scale<O>;
};
export interface ScriptableScaleContext {
@ -1250,7 +1252,7 @@ export const Ticks: {
* @param value the value to display
* @return {string|string[]} the label to display
*/
values(value: any): string | string[];
values(value: unknown): string | string[];
/**
* Formatter for numeric ticks
* @param tickValue the value to be formatted
@ -1300,7 +1302,7 @@ export interface ChartEvent {
}
export interface ChartComponent {
id: string;
defaults?: any;
defaults?: AnyObject;
defaultRoutes?: { [property: string]: string };
beforeRegister?(): void;
@ -1618,7 +1620,7 @@ export interface ArcElement<T extends ArcProps = ArcProps, O extends ArcOptions
export const ArcElement: ChartComponent & {
prototype: ArcElement;
new (cfg: any): ArcElement;
new (cfg: AnyObject): ArcElement;
};
export interface LineProps {}
@ -1682,13 +1684,13 @@ export interface LineElement<T extends LineProps = LineProps, O extends LineOpti
first(): Point | false;
last(): Point | false;
interpolate(point: Point, property: 'x' | 'y'): undefined | Point | Point[];
pathSegment(ctx: CanvasRenderingContext2D, segment: Segment, params: any): undefined | boolean;
pathSegment(ctx: CanvasRenderingContext2D, segment: Segment, params: AnyObject): undefined | boolean;
path(ctx: CanvasRenderingContext2D): boolean;
}
export const LineElement: ChartComponent & {
prototype: LineElement;
new (cfg: any): LineElement;
new (cfg: AnyObject): LineElement;
};
export interface PointProps {
@ -1799,7 +1801,7 @@ export interface PointElement<T extends PointProps = PointProps, O extends Point
export const PointElement: ChartComponent & {
prototype: PointElement;
new (cfg: any): PointElement;
new (cfg: AnyObject): PointElement;
};
export interface BarProps {
@ -1848,7 +1850,7 @@ export interface BarElement<
export const BarElement: ChartComponent & {
prototype: BarElement;
new (cfg: any): BarElement;
new (cfg: AnyObject): BarElement;
};
export interface ElementOptionsByType {
@ -2470,7 +2472,12 @@ export interface TooltipItem {
/**
* Parsed data values for the given `dataIndex` and `datasetIndex`
*/
dataPoint: any;
parsed: unknown;
/**
* Raw data values for the given `dataIndex` and `datasetIndex`
*/
raw: unknown;
/**
* Formatted value for the tooltip
@ -2579,7 +2586,7 @@ export interface TickOptions {
/**
* Returns the string representation of the tick value as it should be displayed on the chart. See callback.
*/
callback: (tickValue: any, index: number, ticks: Tick[]) => string;
callback: (tickValue: unknown, index: number, ticks: Tick[]) => string;
/**
* If true, show tick labels.
* @default true
@ -2732,10 +2739,10 @@ export type CategoryScaleOptions = CartesianScaleOptions & {
labels: string[] | string[][];
};
export interface CategoryScale<O extends CategoryScaleOptions = CategoryScaleOptions> extends Scale<O> {}
export type CategoryScale<O extends CategoryScaleOptions = CategoryScaleOptions> = Scale<O>
export const CategoryScale: ChartComponent & {
prototype: CategoryScale;
new <O extends CategoryScaleOptions = CategoryScaleOptions>(cfg: any): CategoryScale<O>;
new <O extends CategoryScaleOptions = CategoryScaleOptions>(cfg: AnyObject): CategoryScale<O>;
};
export type LinearScaleOptions = CartesianScaleOptions & {
@ -2781,10 +2788,10 @@ export type LinearScaleOptions = CartesianScaleOptions & {
};
};
export interface LinearScale<O extends LinearScaleOptions = LinearScaleOptions> extends Scale<O> {}
export type LinearScale<O extends LinearScaleOptions = LinearScaleOptions> = Scale<O>
export const LinearScale: ChartComponent & {
prototype: LinearScale;
new <O extends LinearScaleOptions = LinearScaleOptions>(cfg: any): LinearScale<O>;
new <O extends LinearScaleOptions = LinearScaleOptions>(cfg: AnyObject): LinearScale<O>;
};
export type LogarithmicScaleOptions = CartesianScaleOptions & {
@ -2808,10 +2815,10 @@ export type LogarithmicScaleOptions = CartesianScaleOptions & {
};
};
export interface LogarithmicScale<O extends LogarithmicScaleOptions = LogarithmicScaleOptions> extends Scale<O> {}
export type LogarithmicScale<O extends LogarithmicScaleOptions = LogarithmicScaleOptions> = Scale<O>
export const LogarithmicScale: ChartComponent & {
prototype: LogarithmicScale;
new <O extends LogarithmicScaleOptions = LogarithmicScaleOptions>(cfg: any): LogarithmicScale<O>;
new <O extends LogarithmicScaleOptions = LogarithmicScaleOptions>(cfg: AnyObject): LogarithmicScale<O>;
};
export type TimeScaleOptions = CartesianScaleOptions & {
@ -2829,7 +2836,7 @@ export type TimeScaleOptions = CartesianScaleOptions & {
* options for creating a new adapter instance
*/
adapters: {
date: any;
date: unknown;
};
time: {
@ -2837,7 +2844,7 @@ export type TimeScaleOptions = CartesianScaleOptions & {
* Custom parser for dates.
* @see https://www.chartjs.org/docs/next/axes/cartesian/time#parser
*/
parser: string | ((v: any) => number);
parser: string | ((v: unknown) => number);
/**
* If defined, dates will be rounded to the start of this unit. See Time Units below for the allowed units.
*/
@ -2900,13 +2907,13 @@ export interface TimeScale<O extends TimeScaleOptions = TimeScaleOptions> extend
export const TimeScale: ChartComponent & {
prototype: TimeScale;
new <O extends TimeScaleOptions = TimeScaleOptions>(cfg: any): TimeScale<O>;
new <O extends TimeScaleOptions = TimeScaleOptions>(cfg: AnyObject): TimeScale<O>;
};
export interface TimeSeriesScale<O extends TimeScaleOptions = TimeScaleOptions> extends TimeScale<O> {}
export type TimeSeriesScale<O extends TimeScaleOptions = TimeScaleOptions> = TimeScale<O>
export const TimeSeriesScale: ChartComponent & {
prototype: TimeSeriesScale;
new <O extends TimeScaleOptions = TimeScaleOptions>(cfg: any): TimeSeriesScale<O>;
new <O extends TimeScaleOptions = TimeScaleOptions>(cfg: AnyObject): TimeSeriesScale<O>;
};
export type RadialLinearScaleOptions = CoreScaleOptions & {
@ -3046,7 +3053,7 @@ export interface RadialLinearScale<O extends RadialLinearScaleOptions = RadialLi
}
export const RadialLinearScale: ChartComponent & {
prototype: RadialLinearScale;
new <O extends RadialLinearScaleOptions = RadialLinearScaleOptions>(cfg: any): RadialLinearScale<O>;
new <O extends RadialLinearScaleOptions = RadialLinearScaleOptions>(cfg: AnyObject): RadialLinearScale<O>;
};
// DeepPartial implementation taken from the utility-types NPM package, which is
@ -3059,7 +3066,7 @@ export type DeepPartial<T> = T extends Function
: T extends object
? _DeepPartialObject<T>
: T | undefined;
interface _DeepPartialArray<T> extends Array<DeepPartial<T>> {}
type _DeepPartialArray<T> = Array<DeepPartial<T>>
type _DeepPartialObject<T> = { [P in keyof T]?: DeepPartial<T[P]> };
export type DistributiveArray<T> = T extends unknown ? T[] : never
@ -3113,7 +3120,7 @@ export interface ChartTypeRegistry {
scales: keyof CartesianScaleTypeRegistry;
};
bubble: {
chartOptions: {};
chartOptions: EmptyObject;
datasetOptions: BubbleControllerDatasetOptions;
defaultDataPoint: BubbleDataPoint;
scales: keyof CartesianScaleTypeRegistry;