From: Jukka Kurkela Date: Mon, 15 Nov 2021 17:56:56 +0000 (+0200) Subject: Fix incomplete TS type for Chart.register + others (#9855) X-Git-Tag: v3.6.1~18 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e43730eb4dc0f4752eb2ec9408923f33a870d4e0;p=thirdparty%2FChart.js.git Fix incomplete TS type for Chart.register + others (#9855) --- diff --git a/types/index.esm.d.ts b/types/index.esm.d.ts index f1c37bdd3..e83ea4dbc 100644 --- a/types/index.esm.d.ts +++ b/types/index.esm.d.ts @@ -1060,7 +1060,7 @@ export interface Plugin exte uninstall?(chart: Chart, args: EmptyObject, options: O): void; } -export declare type ChartComponentLike = ChartComponent | ChartComponent[] | { [key: string]: ChartComponent }; +export declare type ChartComponentLike = ChartComponent | ChartComponent[] | { [key: string]: ChartComponent } | Plugin | Plugin[]; /** * Please use the module's default export which provides a singleton instance @@ -1491,7 +1491,7 @@ export interface CoreChartOptions extends ParsingOption onClick(event: ChartEvent, elements: ActiveElement[], chart: Chart): void; layout: { - padding: Scriptable>; + padding: Scriptable, ScriptableContext>; }; } @@ -2538,6 +2538,11 @@ export interface TooltipOptions extends Cor * @default 'rgba(0, 0, 0, 0.8)' */ backgroundColor: Scriptable>; + /** + * Padding between the color box and the text. + * @default 1 + */ + boxPadding: number; /** * Color of title * @default '#fff' diff --git a/types/tests/defaults.ts b/types/tests/defaults.ts index 850eb059a..a3e8e96f5 100644 --- a/types/tests/defaults.ts +++ b/types/tests/defaults.ts @@ -20,3 +20,11 @@ Chart.defaults.font = { family: "'Helvetica Neue', 'Helvetica', 'Arial', sans-serif", size: 10 }; + +Chart.defaults.layout = { + padding: { + bottom: 10, + }, +}; + +Chart.defaults.plugins.tooltip.boxPadding = 3; diff --git a/types/tests/extensions/plugin.ts b/types/tests/extensions/plugin.ts new file mode 100644 index 000000000..fcb0bd0e9 --- /dev/null +++ b/types/tests/extensions/plugin.ts @@ -0,0 +1,28 @@ +import { Chart } from '../../index.esm'; + +Chart.register({ + id: 'my-plugin', + afterDraw: (chart: Chart) => { + // noop + } +}); + +Chart.register([{ + id: 'my-plugin', + afterDraw: (chart: Chart) => { + // noop + }, +}]); + +// @ts-expect-error not assignable +Chart.register({ + id: 'fail', + noComponentHasThisMethod: () => 'test' +}); + +// @ts-expect-error missing id +Chart.register([{ + afterDraw: (chart: Chart) => { + // noop + }, +}]);