* Enable text stroke on scale titles
* update documentation
* specify stroke width units
* Simplify usage of strokeColor and strokeWidth
* Add scale title stroke test
* Enable text stroke on scale titles
* update documentation
* specify stroke width units
* Simplify usage of strokeColor and strokeWidth
* Add scale title stroke test
* Implement non image based tests
* Remove image based test
The `numeric` and `logarithmic` tick formatters require that `this` be provided. That happens automatically if they're used directly as a tick callback but not if they're invoked manually. Failing to pass `this` results in runtime errors similar to the following:
```
TypeError: Cannot read properties of undefined (reading 'chart')
```
* adapted filler plugin to make above/below colors work with pivoted line charts
resolved conflicts in src/plugins/plugin.filler/filler.drawing.js
* fixed doFill; added tests
* fix(plugin.filler): respect dataset clipping area when filling line charts
The filling area must respect the dataset's clipping area when clipping is enabled. Before this change, the line would be clipped according to the dataset's area but the fill would overlap other datasets.
Closes#12052
* chore(plugin.filler): use @ts-expect-error instead of @ts-ignore
helpers.dom.ts functions referenced the internal `Chart` JavaScript class rather than the published `Chart<TType, TData, TLabel>` TypeScript definition. This causes errors when outside code tries to call helper functions.
The two `Chart` interfaces are incompatible - the `width`, `height`, and `currentDevicePixelRatio` properties are declared as readonly in the TS declaration but are manipulated by helpers.dom.ts functions, and helpers.dom.ts functions need to be invoked both by internal Chart.js code (which uses the JS class) and by outside code (which uses the TS types). To address this, I'm importing the JS version as `PrivateChart`. There may be a better solution.
It's my understanding that the comment about "typedefs are auto-exported" is obsolete now that helpers.dom is a native TS file.
Fixes#11153
* First step in fixing the bug of spanGaps null point interaction
* Complete bugfix of spanGaps null point interaction
* Add two tests in core.interaction.tests for the bugfix change
* Remove odd line break
* Use isNullOrUndef helper for point value checks
* Add 10 more test cases for nearest interaction when spanGaps=true
* Bugfix: spanGaps not working near min and max limits
* Fix error when meta.dataset.options = null
* Add tests for correct setting of line controller properties _drawStart and _drawCount
* Fix spacing in controller line tests
* Add tension to test
* Add a better test case
* Avoid the use of FindLastIndex
* Avoid taking 0 for null value and improve naming
* exclude 0 angle from inRange to not showing tooltip when all data are hidden
Signed-off-by: Hu, Vince <Qingkun.Hu@fmr.com>
* test 0 angle point not in arc range
---------
Signed-off-by: Hu, Vince <Qingkun.Hu@fmr.com>
* do not attempt to clear canvas if one does not exist
* update test to explicitly run clearCanvas method to ensure it doesn't throw an error
* explicitly set canvas and ctx to null in test since the helper in test code didn't
* Update test/specs/helpers.canvas.tests.js
---------
Co-authored-by: Jacco van den Berg <jaccoberg2281@gmail.com>
* Fix for getLabelAndValue on null controller
I encountered #11315 under the following circumstances:
1. Position the cursor over the chart area, such that it causes a
tooltip to be shown.
2. Move the cursor out of the chart area, such that the tooltip remains
visible.
3. Cause the chart contents to be changed, such that the dataset
referenced by the active tooltip element is no longer valid.
4. Move the mouse again. This triggers an `inChartArea = false` event,
so it reuses the previous, now invalid, active elements.
This fixes#11315 under the circumstances for which I've reproduced it,
but there may be others.
* Further fixes for elements added / changed
This possibly fixes#11365.