From 578e3a44f7e94080c176ae1fd29be6181ddb2520 Mon Sep 17 00:00:00 2001 From: stockiNail Date: Wed, 17 May 2023 11:02:50 +0200 Subject: [PATCH 1/3] Enable drawTime related to a specific dataset drawing --- src/annotation.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/annotation.js b/src/annotation.js index 006416329..ee7c49c98 100644 --- a/src/annotation.js +++ b/src/annotation.js @@ -82,6 +82,10 @@ export default { draw(chart, 'afterDatasetsDraw', options.clip); }, + beforeDatasetDraw(chart, _args, options) { + draw(chart, _args.index, options.clip); + }, + beforeDraw(chart, _args, options) { draw(chart, 'beforeDraw', options.clip); }, From c5c48eb4e487f83fbb56dfb2b58a829b851a2a1c Mon Sep 17 00:00:00 2001 From: stockiNail Date: Wed, 17 May 2023 13:07:12 +0200 Subject: [PATCH 2/3] add test cases and update types --- test/fixtures/box/drawTime.js | 127 +++++++++++++++++++++ test/fixtures/box/drawTime.png | Bin 0 -> 22569 bytes test/fixtures/box/labelDrawTime.js | 121 ++++++++++++++++++++ test/fixtures/box/labelDrawTime.png | Bin 0 -> 20734 bytes test/fixtures/ellipse/drawTime.js | 127 +++++++++++++++++++++ test/fixtures/ellipse/drawTime.png | Bin 0 -> 32618 bytes test/fixtures/ellipse/labelDrawTime.js | 121 ++++++++++++++++++++ test/fixtures/ellipse/labelDrawTime.png | Bin 0 -> 30788 bytes test/fixtures/line/drawTime.js | 145 ++++++++++++++++++++++++ test/fixtures/line/drawTime.png | Bin 0 -> 31152 bytes types/options.d.ts | 2 +- types/tests/exports.ts | 1 + 12 files changed, 643 insertions(+), 1 deletion(-) create mode 100644 test/fixtures/box/drawTime.js create mode 100644 test/fixtures/box/drawTime.png create mode 100644 test/fixtures/box/labelDrawTime.js create mode 100644 test/fixtures/box/labelDrawTime.png create mode 100644 test/fixtures/ellipse/drawTime.js create mode 100644 test/fixtures/ellipse/drawTime.png create mode 100644 test/fixtures/ellipse/labelDrawTime.js create mode 100644 test/fixtures/ellipse/labelDrawTime.png create mode 100644 test/fixtures/line/drawTime.js create mode 100644 test/fixtures/line/drawTime.png diff --git a/test/fixtures/box/drawTime.js b/test/fixtures/box/drawTime.js new file mode 100644 index 000000000..0e3bee1e0 --- /dev/null +++ b/test/fixtures/box/drawTime.js @@ -0,0 +1,127 @@ +module.exports = { + tolerance: 0.0055, + config: { + type: 'bar', + data: { + labels: ['a', 'b', 'c', 'd', 'e', 'f'], + datasets: [{ + data: [0, 5, 10, 15, 20, 22], + backgroundColor: 'gray' + }, { + data: [0, 5, 10, 15, 20, 22], + backgroundColor: 'lightGray' + }, { + data: [0, 5, 10, 15, 20, 22], + backgroundColor: 'lightGray' + }] + }, + options: { + scales: { + x: { + display: false + }, + y: { + display: false, + min: 0, + max: 25 + } + }, + animation: false, + plugins: { + legend: false, + tooltip: false, + annotation: { + annotations: { + beforeDraw: { + type: 'box', + drawTime: 'beforeDraw', + xMin: 0.5, + xMax: 1.5, + yMin: 0.5, + yMax: 4.5, + backgroundColor: 'rgb(33, 101, 171)', + label: { + display: true, + drawTime: 'afterDraw', + content: 'beforeDraw' + } + }, + afterDraw: { + type: 'box', + drawTime: 'afterDraw', + xMin: 1.5, + xMax: 2.5, + yMin: 5.5, + yMax: 9.5, + backgroundColor: 'rgb(33, 101, 171)', + label: { + display: true, + drawTime: 'afterDraw', + content: 'afterDraw' + } + }, + beforeDatasetsDraw: { + type: 'box', + drawTime: 'beforeDatasetsDraw', + xMin: 2.5, + xMax: 3.5, + yMin: 10.5, + yMax: 14.5, + backgroundColor: 'rgb(33, 101, 171)', + label: { + display: true, + drawTime: 'afterDraw', + content: 'beforeDatasetsDraw' + } + }, + afterDatasetsDraw: { + type: 'box', + drawTime: 'afterDatasetsDraw', + xMin: 3.5, + xMax: 4.5, + yMin: 15.5, + yMax: 19.5, + backgroundColor: 'rgb(33, 101, 171)', + label: { + display: true, + drawTime: 'afterDraw', + content: 'afterDatasetsDraw' + } + }, + dataset0: { + type: 'box', + drawTime: 0, + xMin: 4.5, + xMax: 5.5, + yMin: 10.5, + yMax: 14.5, + backgroundColor: 'rgb(33, 101, 171)', + label: { + display: true, + drawTime: 'afterDraw', + content: ['dataset', 'index 0'] + } + }, + dataset1: { + type: 'box', + drawTime: 1, + xMin: 3.5, + xMax: 4.5, + yMin: 5.5, + yMax: 9.5, + backgroundColor: 'rgb(33, 101, 171)', + label: { + display: true, + drawTime: 'afterDraw', + content: ['dataset', 'index 1'] + } + } + } + } + } + } + }, + options: { + spriteText: true + } +}; diff --git a/test/fixtures/box/drawTime.png b/test/fixtures/box/drawTime.png new file mode 100644 index 0000000000000000000000000000000000000000..04ff2e5e85583f8d732ab830eddc12f9a08e32ce GIT binary patch literal 22569 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 literal 0 HcmV?d00001 diff --git a/test/fixtures/box/labelDrawTime.js b/test/fixtures/box/labelDrawTime.js new file mode 100644 index 000000000..422c59622 --- /dev/null +++ b/test/fixtures/box/labelDrawTime.js @@ -0,0 +1,121 @@ +module.exports = { + tolerance: 0.0055, + config: { + type: 'bar', + data: { + labels: ['a', 'b', 'c', 'd', 'e', 'f'], + datasets: [{ + data: [0, 5, 10, 15, 20, 22], + backgroundColor: 'gray' + }, { + data: [0, 5, 10, 15, 20, 22], + backgroundColor: 'lightGray' + }, { + data: [0, 5, 10, 15, 20, 22], + backgroundColor: 'lightGray' + }] + }, + options: { + scales: { + x: { + display: false + }, + y: { + display: false, + min: 0, + max: 25 + } + }, + animation: false, + plugins: { + legend: false, + tooltip: false, + annotation: { + annotations: { + beforeDraw: { + type: 'box', + drawTime: 'beforeDraw', + xMin: 0.5, + xMax: 1.5, + yMin: 0.5, + yMax: 4.5, + backgroundColor: 'rgb(33, 101, 171)', + label: { + display: true, + content: 'beforeDraw' + } + }, + afterDraw: { + type: 'box', + drawTime: 'afterDraw', + xMin: 1.5, + xMax: 2.5, + yMin: 5.5, + yMax: 9.5, + backgroundColor: 'rgb(33, 101, 171)', + label: { + display: true, + content: 'afterDraw' + } + }, + beforeDatasetsDraw: { + type: 'box', + drawTime: 'beforeDatasetsDraw', + xMin: 2.5, + xMax: 3.5, + yMin: 10.5, + yMax: 14.5, + backgroundColor: 'rgb(33, 101, 171)', + label: { + display: true, + content: 'beforeDatasetsDraw' + } + }, + afterDatasetsDraw: { + type: 'box', + drawTime: 'afterDatasetsDraw', + xMin: 3.5, + xMax: 4.5, + yMin: 15.5, + yMax: 19.5, + backgroundColor: 'rgb(33, 101, 171)', + label: { + display: true, + content: 'afterDatasetsDraw' + } + }, + dataset0: { + type: 'box', + drawTime: 0, + xMin: 4.5, + xMax: 5.5, + yMin: 10.5, + yMax: 14.5, + backgroundColor: 'rgb(33, 101, 171)', + label: { + display: true, + content: ['dataset', 'index 0'] + } + }, + dataset1: { + type: 'box', + drawTime: 1, + xMin: 3.5, + xMax: 4.5, + yMin: 5.5, + yMax: 9.5, + backgroundColor: 'rgb(33, 101, 171)', + label: { + display: true, + content: ['dataset', 'index 1'] + } + } + } + } + } + } + }, + options: { + spriteText: true + } +}; diff --git a/test/fixtures/box/labelDrawTime.png b/test/fixtures/box/labelDrawTime.png new file mode 100644 index 0000000000000000000000000000000000000000..5e7ef364c591c43c043fbc0b392efe6950a30e2b GIT binary patch literal 20734 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 literal 0 HcmV?d00001 diff --git a/test/fixtures/ellipse/drawTime.js b/test/fixtures/ellipse/drawTime.js new file mode 100644 index 000000000..b3ae48e7c --- /dev/null +++ b/test/fixtures/ellipse/drawTime.js @@ -0,0 +1,127 @@ +module.exports = { + tolerance: 0.0055, + config: { + type: 'bar', + data: { + labels: ['a', 'b', 'c', 'd', 'e', 'f'], + datasets: [{ + data: [0, 5, 10, 15, 20, 22], + backgroundColor: 'gray' + }, { + data: [0, 5, 10, 15, 20, 22], + backgroundColor: 'lightGray' + }, { + data: [0, 5, 10, 15, 20, 22], + backgroundColor: 'lightGray' + }] + }, + options: { + scales: { + x: { + display: false + }, + y: { + display: false, + min: 0, + max: 25 + } + }, + animation: false, + plugins: { + legend: false, + tooltip: false, + annotation: { + annotations: { + beforeDraw: { + type: 'ellipse', + drawTime: 'beforeDraw', + xMin: 0.5, + xMax: 1.5, + yMin: 0.5, + yMax: 4.5, + backgroundColor: 'rgb(33, 101, 171)', + label: { + display: true, + drawTime: 'afterDraw', + content: 'beforeDraw' + } + }, + afterDraw: { + type: 'ellipse', + drawTime: 'afterDraw', + xMin: 1.5, + xMax: 2.5, + yMin: 5.5, + yMax: 9.5, + backgroundColor: 'rgb(33, 101, 171)', + label: { + display: true, + drawTime: 'afterDraw', + content: 'afterDraw' + } + }, + beforeDatasetsDraw: { + type: 'ellipse', + drawTime: 'beforeDatasetsDraw', + xMin: 2.5, + xMax: 3.5, + yMin: 10.5, + yMax: 14.5, + backgroundColor: 'rgb(33, 101, 171)', + label: { + display: true, + drawTime: 'afterDraw', + content: 'beforeDatasetsDraw' + } + }, + afterDatasetsDraw: { + type: 'ellipse', + drawTime: 'afterDatasetsDraw', + xMin: 3.5, + xMax: 4.5, + yMin: 15.5, + yMax: 19.5, + backgroundColor: 'rgb(33, 101, 171)', + label: { + display: true, + drawTime: 'afterDraw', + content: 'afterDatasetsDraw' + } + }, + dataset0: { + type: 'ellipse', + drawTime: 0, + xMin: 4.5, + xMax: 5.5, + yMin: 10.5, + yMax: 14.5, + backgroundColor: 'rgb(33, 101, 171)', + label: { + display: true, + drawTime: 'afterDraw', + content: ['dataset', 'index 0'] + } + }, + dataset1: { + type: 'ellipse', + drawTime: 1, + xMin: 3.5, + xMax: 4.5, + yMin: 5.5, + yMax: 9.5, + backgroundColor: 'rgb(33, 101, 171)', + label: { + display: true, + drawTime: 'afterDraw', + content: ['dataset', 'index 1'] + } + } + } + } + } + } + }, + options: { + spriteText: true + } +}; diff --git a/test/fixtures/ellipse/drawTime.png b/test/fixtures/ellipse/drawTime.png new file mode 100644 index 0000000000000000000000000000000000000000..f69bb35bcd85879de39a50980a91d6044bf57c89 GIT binary patch literal 32618 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 literal 0 HcmV?d00001 diff --git a/test/fixtures/ellipse/labelDrawTime.js b/test/fixtures/ellipse/labelDrawTime.js new file mode 100644 index 000000000..b8737728d --- /dev/null +++ b/test/fixtures/ellipse/labelDrawTime.js @@ -0,0 +1,121 @@ +module.exports = { + tolerance: 0.0055, + config: { + type: 'bar', + data: { + labels: ['a', 'b', 'c', 'd', 'e', 'f'], + datasets: [{ + data: [0, 5, 10, 15, 20, 22], + backgroundColor: 'gray' + }, { + data: [0, 5, 10, 15, 20, 22], + backgroundColor: 'lightGray' + }, { + data: [0, 5, 10, 15, 20, 22], + backgroundColor: 'lightGray' + }] + }, + options: { + scales: { + x: { + display: false + }, + y: { + display: false, + min: 0, + max: 25 + } + }, + animation: false, + plugins: { + legend: false, + tooltip: false, + annotation: { + annotations: { + beforeDraw: { + type: 'ellipse', + drawTime: 'beforeDraw', + xMin: 0.5, + xMax: 1.5, + yMin: 0.5, + yMax: 4.5, + backgroundColor: 'rgb(33, 101, 171)', + label: { + display: true, + content: 'beforeDraw' + } + }, + afterDraw: { + type: 'ellipse', + drawTime: 'afterDraw', + xMin: 1.5, + xMax: 2.5, + yMin: 5.5, + yMax: 9.5, + backgroundColor: 'rgb(33, 101, 171)', + label: { + display: true, + content: 'afterDraw' + } + }, + beforeDatasetsDraw: { + type: 'ellipse', + drawTime: 'beforeDatasetsDraw', + xMin: 2.5, + xMax: 3.5, + yMin: 10.5, + yMax: 14.5, + backgroundColor: 'rgb(33, 101, 171)', + label: { + display: true, + content: 'beforeDatasetsDraw' + } + }, + afterDatasetsDraw: { + type: 'ellipse', + drawTime: 'afterDatasetsDraw', + xMin: 3.5, + xMax: 4.5, + yMin: 15.5, + yMax: 19.5, + backgroundColor: 'rgb(33, 101, 171)', + label: { + display: true, + content: 'afterDatasetsDraw' + } + }, + dataset0: { + type: 'ellipse', + drawTime: 0, + xMin: 4.5, + xMax: 5.5, + yMin: 10.5, + yMax: 14.5, + backgroundColor: 'rgb(33, 101, 171)', + label: { + display: true, + content: ['dataset', 'index 0'] + } + }, + dataset1: { + type: 'ellipse', + drawTime: 1, + xMin: 3.5, + xMax: 4.5, + yMin: 5.5, + yMax: 9.5, + backgroundColor: 'rgb(33, 101, 171)', + label: { + display: true, + content: ['dataset', 'index 1'] + } + } + } + } + } + } + }, + options: { + spriteText: true + } +}; diff --git a/test/fixtures/ellipse/labelDrawTime.png b/test/fixtures/ellipse/labelDrawTime.png new file mode 100644 index 0000000000000000000000000000000000000000..fd092e10bcf8b70c154cf067543b0a7eb3f4e5a3 GIT binary patch literal 30788 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 CCZ0C{ literal 0 HcmV?d00001 diff --git a/test/fixtures/line/drawTime.js b/test/fixtures/line/drawTime.js new file mode 100644 index 000000000..eba089edf --- /dev/null +++ b/test/fixtures/line/drawTime.js @@ -0,0 +1,145 @@ +module.exports = { + tolerance: 0.0055, + config: { + type: 'bar', + data: { + labels: ['a', 'b', 'c', 'd', 'e', 'f'], + datasets: [{ + data: [0, 5, 10, 15, 20, 22], + backgroundColor: 'gray' + }, { + data: [0, 5, 10, 15, 20, 22], + backgroundColor: 'lightGray' + }, { + data: [0, 5, 10, 15, 20, 22], + backgroundColor: 'lightGray' + }] + }, + options: { + scales: { + x: { + display: false + }, + y: { + display: false, + min: 0, + max: 25 + } + }, + animation: false, + plugins: { + legend: false, + tooltip: false, + annotation: { + annotations: { + beforeDraw: { + type: 'line', + drawTime: 'beforeDraw', + xMin: 0.5, + xMax: 1.5, + yMin: 0.5, + yMax: 4.5, + borderColor: 'rgb(33, 101, 171)', + borderWidth: 4, + label: { + display: true, + drawTime: 'afterDraw', + content: 'beforeDraw', + position: 'start', + xAdjust: 50 + } + }, + afterDraw: { + type: 'line', + drawTime: 'afterDraw', + xMin: 1.5, + xMax: 2.5, + yMin: 5.5, + yMax: 9.5, + borderColor: 'rgb(33, 101, 171)', + borderWidth: 4, + label: { + display: true, + drawTime: 'afterDraw', + content: 'afterDraw', + position: 'start', + xAdjust: 50 + } + }, + beforeDatasetsDraw: { + type: 'line', + drawTime: 'beforeDatasetsDraw', + xMin: 2.5, + xMax: 3.5, + yMin: 10.5, + yMax: 14.5, + borderColor: 'rgb(33, 101, 171)', + borderWidth: 4, + label: { + display: true, + drawTime: 'afterDraw', + content: 'beforeDatasetsDraw', + position: 'start', + xAdjust: 80 + } + }, + afterDatasetsDraw: { + type: 'line', + drawTime: 'afterDatasetsDraw', + xMin: 3.5, + xMax: 4.5, + yMin: 15.5, + yMax: 19.5, + borderColor: 'rgb(33, 101, 171)', + borderWidth: 4, + label: { + display: true, + drawTime: 'afterDraw', + content: 'afterDatasetsDraw', + position: 'start', + xAdjust: 80 + } + }, + dataset0: { + type: 'line', + drawTime: 0, + xMin: 4.5, + xMax: 5.5, + yMin: 10.5, + yMax: 14.5, + borderColor: 'rgb(33, 101, 171)', + borderWidth: 4, + label: { + display: true, + drawTime: 'afterDraw', + content: ['dataset', 'index 0'], + position: 'start', + xAdjust: 50 + } + }, + dataset1: { + type: 'line', + drawTime: 1, + xMin: 3.5, + xMax: 4.5, + yMin: 5.5, + yMax: 9.5, + borderColor: 'rgb(33, 101, 171)', + borderWidth: 4, + label: { + display: true, + drawTime: 'afterDraw', + content: ['dataset', 'index 1'], + position: 'start', + xAdjust: 50 + } + } + } + } + } + } + }, + options: { + spriteText: true + } +}; diff --git a/test/fixtures/line/drawTime.png b/test/fixtures/line/drawTime.png new file mode 100644 index 0000000000000000000000000000000000000000..af546212154fc34c1c8dca7ea943c64276eac6f5 GIT binary patch literal 31152 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 HmXH4neMyVD literal 0 HcmV?d00001 diff --git a/types/options.d.ts b/types/options.d.ts index c36c55fd4..aaf0b0979 100644 --- a/types/options.d.ts +++ b/types/options.d.ts @@ -3,7 +3,7 @@ import { AnnotationEvents, PartialEventContext, EventContext } from './events'; import { LabelOptions, BoxLabelOptions, LabelTypeOptions } from './label'; import { AnnotationBoxModel, AnnotationElement } from './element'; -export type DrawTime = 'afterDraw' | 'afterDatasetsDraw' | 'beforeDraw' | 'beforeDatasetsDraw'; +export type DrawTime = 'afterDraw' | 'afterDatasetsDraw' | 'beforeDraw' | 'beforeDatasetsDraw' | number; export interface AnnotationTypeRegistry { box: BoxAnnotationOptions diff --git a/types/tests/exports.ts b/types/tests/exports.ts index 5cacbc570..16ec7ee37 100644 --- a/types/tests/exports.ts +++ b/types/tests/exports.ts @@ -31,6 +31,7 @@ const chart = new Chart('id', { }, annotations: [{ type: 'line', + drawTime: 1, label: { content: ['test', 'multiple'], font: { From 67c0ebd2d7843fadfd537dc0ee2c2076cdcfac68 Mon Sep 17 00:00:00 2001 From: stockiNail Date: Wed, 17 May 2023 13:19:40 +0200 Subject: [PATCH 3/3] update doc --- docs/guide/configuration.md | 2 +- docs/guide/options.md | 4 +++- docs/guide/types/_commonInnerLabel.md | 2 +- docs/guide/types/_commonOptions.md | 2 +- docs/guide/types/line.md | 2 +- 5 files changed, 7 insertions(+), 5 deletions(-) diff --git a/docs/guide/configuration.md b/docs/guide/configuration.md index c2291d63e..70af4dcfc 100644 --- a/docs/guide/configuration.md +++ b/docs/guide/configuration.md @@ -63,7 +63,7 @@ The following options apply to all annotations unless they are overwritten on a | Name | Type | [Scriptable](options.md#scriptable-options) | Default | Notes | ---- | ---- | :----: | ---- | ---- -| `drawTime` | `string` | Yes | `'afterDatasetsDraw'` | See [drawTime](options#draw-time). +| `drawTime` | `string`\|`number` | Yes | `'afterDatasetsDraw'` | See [drawTime](options#draw-time). | `init` | `boolean` | [See initial animation](#initial-animation) | `false` | Enable the animation to the annotations when they are drawing at chart initialization ### Initial animation diff --git a/docs/guide/options.md b/docs/guide/options.md index eae6097d9..2e0ae2232 100644 --- a/docs/guide/options.md +++ b/docs/guide/options.md @@ -83,7 +83,7 @@ module.exports = { ## Draw Time -The `drawTime` option for an annotation determines where in the chart lifecycle the drawing occurs. Four potential options are available: +The `drawTime` option for an annotation determines where in the chart lifecycle the drawing occurs. Four potential predefined options are available: | Option | Notes | ---- | ---- @@ -92,6 +92,8 @@ The `drawTime` option for an annotation determines where in the chart lifecycle | `'afterDatasetsDraw'` | Occurs after drawing of datasets but before items such as the tooltip | `'afterDraw'` | After other drawing is completed. +Furthermore, the `drawTime` option can be set as number which represents the dataset index used to draw the annotation, before that dataset will be. + ## Option Context The option context is used to give contextual information when resolving options and only applies to scriptable options. The object is preserved, so it can be used to store and pass information between calls / options. diff --git a/docs/guide/types/_commonInnerLabel.md b/docs/guide/types/_commonInnerLabel.md index b193ba977..e3fff7569 100644 --- a/docs/guide/types/_commonInnerLabel.md +++ b/docs/guide/types/_commonInnerLabel.md @@ -9,7 +9,7 @@ All of these options can be [Scriptable](../options.md#scriptable-options) | [`color`](#fonts-and-colors) | [`Color`\|`Color[]`](../options#color) | `'black'` | Text color. | `content` | `string`\|`string[]`\|[`Image`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/Image)\|[`HTMLCanvasElement`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement) | `null` | The content to show in the label. | `display` | `boolean` | `false` | Whether or not the label is shown. -| `drawTime` | `string` | `options.drawTime` | See [drawTime](../options#draw-time). Defaults to the annotation draw time if unset +| `drawTime` | `string`\|`number` | `options.drawTime` | See [drawTime](../options#draw-time). Defaults to the annotation draw time if unset | [`font`](#fonts-and-colors) | [`Font`\|`Font[]`](../options#font) | `{ weight: 'bold' }` | Label font | `height` | `number`\|`string` | `undefined` | Overrides the height of the image or canvas element. Could be set in pixel by a number, or in percentage of current height of image or canvas element by a string. If undefined, uses the height of the image or canvas element. It is used only when the content is an image or canvas element. | `opacity` | `number` | `undefined` | Overrides the opacity of the image or canvas element. Could be set a number in the range 0.0 to 1.0, inclusive. If undefined, uses the opacity of the image or canvas element. It is used only when the content is an image or canvas element. diff --git a/docs/guide/types/_commonOptions.md b/docs/guide/types/_commonOptions.md index 4a9bbaf92..d2eeb8e95 100644 --- a/docs/guide/types/_commonOptions.md +++ b/docs/guide/types/_commonOptions.md @@ -11,7 +11,7 @@ The following options are available for all annotations. | [`borderDashOffset`](#styling) | `number` | Yes | `0` | [`borderShadowColor`](#styling) | [`Color`](../options.md#color) | Yes | `'transparent'` | [`display`](#general) | `boolean` | Yes | `true` -| [`drawTime`](#general) | `string` | Yes | `'afterDatasetsDraw'` +| [`drawTime`](#general) | `string`\|`number` | Yes | `'afterDatasetsDraw'` | [`init`](../configuration.html#common) | `boolean` | [See initial animation](../configuration.html#initial-animation) | `undefined` | [`id`](#general) | `string` | No | `undefined` | [`shadowBlur`](#styling) | `number` | Yes | `0` diff --git a/docs/guide/types/line.md b/docs/guide/types/line.md index 7bd13d26e..bd9091e44 100644 --- a/docs/guide/types/line.md +++ b/docs/guide/types/line.md @@ -134,7 +134,7 @@ All of these options can be [Scriptable](../options.md#scriptable-options) | [`color`](#fonts-and-colors) | [`Color`\|`Color[]`](../options#color) | `'#fff'` | Text color. | `content` | `string`\|`string[]`\|[`Image`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/Image)\|[`HTMLCanvasElement`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement) | `null` | The content to show in the label. | `display` | `boolean` | `false` | Whether or not the label is shown. -| `drawTime` | `string` | `options.drawTime` | See [drawTime](../options#draw-time). Defaults to the line annotation draw time if unset. +| `drawTime` | `string`\|`number` | `options.drawTime` | See [drawTime](../options#draw-time). Defaults to the line annotation draw time if unset. | [`font`](#fonts-and-colors) | [`Font`\|`Font[]`](../options#font) | `{ weight: 'bold' }` | Label font. | `height` | `number`\|`string` | `undefined` | Overrides the height of the image or canvas element. Could be set in pixel by a number, or in percentage of current height of image or canvas element by a string. If undefined, uses the height of the image or canvas element. It is used only when the content is an image or canvas element. | `opacity` | `number` | `undefined` | Overrides the opacity of the image or canvas element. Could be set a number in the range 0.0 to 1.0, inclusive. If undefined, uses the opacity of the image or canvas element. It is used only when the content is an image or canvas element.