export interface DateAdapter {
// Override one or multiple of the methods to adjust to the logic of the current date library.
override(members: Partial<DateAdapter>): void;
- readonly options: any;
+ readonly options: unknown;
/**
* Returns a map of time formats for the supported formatting units defined
formats(): { [key: string]: string };
/**
* Parses the given `value` and return the associated timestamp.
- * @param {any} value - the value to parse (usually comes from the data)
+ * @param {unknown} value - the value to parse (usually comes from the data)
* @param {string} [format] - the expected data format
*/
- parse(value: any, format?: TimeUnit): number | null;
+ parse(value: unknown, format?: TimeUnit): number | null;
/**
* Returns the formatted date in the specified `format` for a given `timestamp`.
* @param {number} timestamp - the timestamp to format
+import { AnyObject } from './basic';
import { Point } from './geometric';
-export interface Element<T = {}, O = {}> {
+export interface Element<T = AnyObject, O = AnyObject> {
readonly x: number;
readonly y: number;
readonly active: boolean;
tooltipPosition(useFinalPosition?: boolean): Point;
hasValue(): boolean;
- getProps<P extends keyof T>(props: [P], final?: boolean): Pick<T, P>;
- getProps<P extends keyof T, P2 extends keyof T>(props: [P, P2], final?: boolean): Pick<T, P | P2>;
- getProps<P extends keyof T, P2 extends keyof T, P3 extends keyof T>(
- props: [P, P2, P3],
- final?: boolean
- ): Pick<T, P | P2 | P3>;
- getProps<P extends keyof T, P2 extends keyof T, P3 extends keyof T, P4 extends keyof T>(
- props: [P, P2, P3, P4],
- final?: boolean
- ): Pick<T, P | P2 | P3 | P4>;
- getProps<P extends keyof T, P2 extends keyof T, P3 extends keyof T, P4 extends keyof T, P5 extends keyof T>(
- props: [P, P2, P3, P4, P5],
- final?: boolean
- ): Pick<T, P | P2 | P3 | P4 | P5>;
- getProps(props: (keyof T)[], final?: boolean): T;
+ getProps<P extends (keyof T)[]>(props: P, final?: boolean): Pick<T, P[number]>;
}
export const Element: {
prototype: Element;
- new <T = {}, O = {}>(): Element<T, O>;
+ new <T = AnyObject, O = AnyObject>(): Element<T, O>;
};
export function color(value: CanvasGradient): CanvasGradient;
export function color(value: CanvasPattern): CanvasPattern;
+export function color(
+ value:
+ | string
+ | { r: number; g: number; b: number; a: number }
+ | [number, number, number]
+ | [number, number, number, number]
+): ColorModel;
export interface ColorModel {
rgbString(): string;
desaturate(ratio: number): ColorModel;
rotate(deg: number): this;
}
-export function color(
- value:
- | string
- | { r: number; g: number; b: number; a: number }
- | [number, number, number]
- | [number, number, number, number]
-): ColorModel;
export function getHoverColor(value: CanvasGradient): CanvasGradient;
export function getHoverColor(value: CanvasPattern): CanvasPattern;
* @param {*} thisArg
* @param {function} [updateFn]
*/
-export function throttled(fn: (...args: any[]) => void, thisArg: any, updateFn?: (...args: any[]) => any[]): (...args: any[]) => void;
+export function throttled(fn: (...args: unknown[]) => void, thisArg: unknown, updateFn?: (...args: unknown[]) => unknown[]): (...args: unknown[]) => void;
/**
* Debounces calling `fn` for `delay` ms
export function log10(x: number): number;
-export function isNumber(v: any): boolean;
+export function isNumber(v: unknown): boolean;
export function almostEquals(x: number, y: number, epsilon: number): boolean;
export function almostWhole(x: number, epsilon: number): number;
export function sign(x: number): number;
afterUpdate(axis: Scale): void;
}
-export interface Scale<O extends CoreScaleOptions = CoreScaleOptions> extends Element<{}, O>, LayoutItem {
+export interface Scale<O extends CoreScaleOptions = CoreScaleOptions> extends Element<unknown, O>, LayoutItem {
readonly id: string;
readonly type: string;
readonly ctx: CanvasRenderingContext2D;
new (cfg: AnyObject): ArcElement;
};
-export interface LineProps {}
+export interface LineProps {
+ points: Point[]
+}
export interface LineOptions extends CommonElementOptions {
/**
+/* eslint-disable @typescript-eslint/ban-types */
// DeepPartial implementation taken from the utility-types NPM package, which is
// Copyright (c) 2016 Piotr Witek <piotrek.witek@gmail.com> (http://piotrwitek.github.io)
: T extends object
? _DeepPartialObject<T>
: T | undefined;
- type _DeepPartialArray<T> = 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] ? Array<T> : never
// From https://stackoverflow.com/a/50375286
-export type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;
+export type UnionToIntersection<U> = (U extends unknown ? (k: U) => void : never) extends (k: infer I) => void ? I : never;