]> git.ipfire.org Git - thirdparty/Chart.js.git/commitdiff
Fix incomplete TS type for Chart.register + others (#9855)
authorJukka Kurkela <jukka.kurkela@gmail.com>
Mon, 15 Nov 2021 17:56:56 +0000 (19:56 +0200)
committerGitHub <noreply@github.com>
Mon, 15 Nov 2021 17:56:56 +0000 (12:56 -0500)
types/index.esm.d.ts
types/tests/defaults.ts
types/tests/extensions/plugin.ts [new file with mode: 0644]

index f1c37bdd32cb30abb99ee2904c10928e5655def7..e83ea4dbc01881ccaa52758abb77f61c544c6b47 100644 (file)
@@ -1060,7 +1060,7 @@ export interface Plugin<TType extends ChartType = ChartType, O = AnyObject> 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<TType extends ChartType> extends ParsingOption
   onClick(event: ChartEvent, elements: ActiveElement[], chart: Chart): void;
 
   layout: {
-    padding: Scriptable<number | ChartArea, ScriptableContext<TType>>;
+    padding: Scriptable<number | Partial<ChartArea>, ScriptableContext<TType>>;
   };
 }
 
@@ -2538,6 +2538,11 @@ export interface TooltipOptions<TType extends ChartType = ChartType> extends Cor
    * @default 'rgba(0, 0, 0, 0.8)'
    */
   backgroundColor: Scriptable<Color, ScriptableTooltipContext<TType>>;
+  /**
+   * Padding between the color box and the text.
+   * @default 1
+   */
+  boxPadding: number;
   /**
    * Color of title
    * @default '#fff'
index 850eb059acc63faa94e0e9d1e46e1f2962b0402c..a3e8e96f5fee836c29602f70a687b19968d8065d 100644 (file)
@@ -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 (file)
index 0000000..fcb0bd0
--- /dev/null
@@ -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
+  },
+}]);