620 Commits

Author SHA1 Message Date
asmenezes
e8c58daf72
Enable scale title stroke (12092) (#12130)
* 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
2025-10-20 18:37:39 -04:00
Bojidar Marinov
6372280085
Do not notify plugins after their uninstall function has been called (#12098)
Fixes #12032
2025-07-12 12:29:51 -04:00
Bojidar Marinov
beb77e475b
Sync Doughnut chart legend options to legend plugin (#12096)
Fixes #12060
2025-07-11 21:52:33 +02:00
Bojidar Marinov
5feebdf7b7
Fix charts shinking in size on certain Zoom values in Chrome (#12097) 2025-07-11 21:38:17 +02:00
Josh Kelley
2f425290ee
[fix] Handle non-primitives in isNumber (#12034)
While investigating https://github.com/chartjs/chartjs-plugin-zoom/issues/928, I found that `isNonPrimitive` will throw TypeError on a Moment.js object after it's passed through Chart.js's options proxy, because the object has its `Symbol.toPrimitive`, `toString`, and `valueOf` all set to null.

(See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String#string_coercion for background reading.)

Since isNumber appears to be a low-level function that can take any arbitrary input, it seems worth letting it handle this case.
2025-02-16 12:24:26 -05:00
Mariss Tubelis
97b564b718
Bugfix: Binary search wrapper returns non-existing index (#11991) 2025-01-05 09:42:33 -05:00
Mariss Tubelis
a77a63b16b
Bugfix: return nearest non-null point on interaction when spanGaps=true (#11986)
* 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
2025-01-03 10:50:56 -05:00
Mariss Tubelis
1e3d6e5711
Bugfix: span gaps over null values beyond scale limits (#11984)
* 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
2025-01-02 19:17:24 -05:00
Nikolai Iakovlev
6dd448b933
Fix: applyStack() returned the sum of all values for hidden dataset indices, which resulted in wrong show animations (#11938) 2024-10-24 11:55:58 -04:00
Jacco van den Berg
3f2968cb41
Add check to colors plugin if defaults are set (#11927) 2024-10-13 09:12:16 +02:00
Jacco van den Berg
680cd227d4
Fix initial dataset stacks (#11882)
* Update cahced _stacked value after updating stacks

* Add test

---------

Co-authored-by: Jacco van den Berg <jacco@jem-id.nl>
2024-08-26 17:13:12 +02:00
Jacco van den Berg
3dac05ed00
Return false from the average tooltip positioner on no valid data (#11863) 2024-08-17 08:52:36 +02:00
huqingkun
b9c01414ba
Bugfix/issue 11804 tooltip show for all invisible (#11858)
* 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>
2024-08-12 11:56:35 -04:00
huqingkun
147ee593ba
fix issue #11717 (#11844)
* fix issue #11717

Signed-off-by: Hu, Vince <Qingkun.Hu@fmr.com>

* unit test for issue #11717

* fixing test lint style issue

* update codes according review comments

---------

Signed-off-by: Hu, Vince <Qingkun.Hu@fmr.com>
2024-08-06 17:32:26 +02:00
Jon Dufresne
5c9e5c66d2
Fix some typos (#11781) 2024-05-21 12:10:07 +02:00
Arun Philip
e7b8fa290f
do not attempt to clear canvas if one does not exist (#11764)
* 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>
2024-05-17 08:16:58 -04:00
Hyun-je Alex Moon
dff44828db
fix(#11615): fix calculating caretX position on stacked bar with index interaction. (#11616) 2023-12-27 07:18:14 +01:00
Josh Kelley
429d99dbc2
Tooltip fixes (getLabelAndValue on null controller, null getParsed) (#11596)
* 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.
2023-11-29 14:51:56 -05:00
stockiNail
5ee0ff1b97
Border is counted as part of ArcElement (#11180)
* Border is counted as part of ArcElement

* improve calculation
2023-04-19 18:22:40 -04:00
stockiNail
82aca7852f
Use custom scale defaults and dataset axis ID options to determine the axis (#11134)
Use custom scale defaults to determine the axis
2023-02-15 09:27:13 -05:00
CodingMarco
e417c60c22
Fix: don't generate ticks > max if max is specified (#11116)
* Fix: don't generate ticks > max if max is specified (#11083)

* Add test "Should not generate any ticks > max if max is specified" (#11083)
2023-02-10 07:57:58 -05:00
stockiNail
e8d9fb579e
Add format method to time scale to format timestamp using scale options (#11063) 2023-01-18 08:27:52 -05:00
stockiNail
4cd68535d7
Remove console.warn from a test case where not needed (#11056) 2023-01-13 09:33:34 -05:00
Guy B
9306d7fd49
fix: avoid resize loop when browser zoom is set to 90% (#10971)
* test: new test to reproduce issue #10951

* test:  validate the canvas style too

* fix: Avoid reassigning the the chart size. For specific values of pixelRatio the assignment would cause the size to reduce by 1px. Since it's called from the ResizeObserver it will be stuck in a loop that constantly reduce the size of the chart and canvas.

* Revert "fix: Avoid reassigning the the chart size. For specific values of pixelRatio the assignment would cause the size to reduce by 1px. Since it's called from the ResizeObserver it will be stuck in a loop that constantly reduce the size of the chart and canvas."

This reverts commit ed7a34814dd01f57eabc2379fc7187b9a41c8732.

* fix: Avoid the resize loop by fixing the rounding error in the retinaScale function.

* fix: getMaximumSize was flooring non-integer height values unnecessarily.

* Revert "fix: Avoid the resize loop by fixing the rounding error in the retinaScale function."

This reverts commit 23525abc6aadc9880f841ff58dbd4a4ea0b14e88.

* fix: Avoid the resize loop by fixing the rounding error in the retinaScale function.
2022-12-17 09:41:21 -05:00
Dan Onoshko
ae264e14e7
add getLabelItems public method (#10966) 2022-12-16 07:36:14 +01:00
Kit PANG
667b28beca
fix: respect minBarLength in stacked bar chart (#10766) 2022-11-22 20:21:02 -05:00
t-mangoe
63993b03b1
check the data set type in DoughnutController (#10867) 2022-11-12 15:41:21 -05:00
stockiNail
5a90b71163
Fix the missing apply for the color on the legend labels (#10855)
* Fix the missing apply for the color on the legend labels
* apply review
2022-11-04 18:55:27 -04:00
Igor Lukanin
1c2f66a00e
Introduce Colors plugin (#10764)
Introduces a colors plugin that provides a color palette

Co-authored-by: Dan Onoshko <danon0404@gmail.com>
Co-authored-by: Jacco van den Berg <jaccoberg2281@gmail.com>
2022-10-21 08:21:08 -04:00
Jonatan
f5cb133551
fix: label text not centered when applied rotation (#10773)
* fix: label text not centered on tick when rotated

#10485

* fix: label text not centered on tick when rotated

#10485
2022-10-17 21:28:31 +03:00
Dan Onoshko
52cf8e8a94
fix: aspect ratio calc (#10693) 2022-09-28 15:31:19 -04:00
Jacco van den Berg
5f37ba6fc4
Add warning if filler plugin is used but not registered (#10702)
* add warning if filler plugin is used but not registered

* fix lint

* increase size limit

* add test, only put warning in dataset controller

* fix register in docs, remove commented code

* remove other mr

* add documentation

* Apply suggestions from code review

Co-authored-by: Jukka Kurkela <jukka.kurkela@gmail.com>

* Also return false if plugin is disabled by options

* improve warning message

* undo docs changes

* update test

Co-authored-by: Jukka Kurkela <jukka.kurkela@gmail.com>
2022-09-26 20:20:54 +02:00
Dan Onoshko
22f32af1bc
fix: calc visible points on update (#10667) 2022-09-24 17:01:47 -04:00
Kartik
1253ceddb1
FIX: render multiline legend items without overlapping (#10532) (#10641)
* FIX: render multiline legend items without overlapping (#10532)

Co-authored-by: Nirav Chavda <nmchavda99@gmail.com>

* CLN: Extract method to fix codeclimate line count

Co-authored-by: Nirav Chavda <nmchavda99@gmail.com>

* CLN: Shift helper methods from class to module scope

Co-authored-by: Nirav Chavda <nmchavda99@gmail.com>

* TST: Add test with fixtures

Co-authored-by: kartik <codebull707@gmail.com>

* FIX: Fix test case for multiline label

Co-authored-by: kartik <codebull707@gmail.com>

* 10532-ENH: Calculate legend item width for multiline labels

Co-authored-by: Nirav Chavda <nmchavda99@gmail.com>

* 10532-TST: use spriteText and non-empty labels for test

Co-authored-by: Nirav Chavda <nmchavda99@gmail.com>

* 10532-FIX: failing test case due to legendItem.text being undefined

Co-authored-by: Nirav Chavda <nmchavda99@gmail.com>

* 10532-FIX: Update compression size

Co-authored-by: kartik <codebull707@gmail.com>

Co-authored-by: Nirav Chavda <nmchavda99@gmail.com>
2022-09-16 09:46:53 -04:00
stockiNail
d4e106cc9c
Provide an empty object when the target of the resolver is undefined (#10655)
* Provide an empty object when the target of the proxy is undefined

* changes check on subGetTarget function

* adds test case

* fixes lint
2022-09-15 12:12:35 -04:00
Jacco van den Berg
cc65c2bac2
Fix autoskip logic (#10663)
* fix autoskip logic

* add test

* fix lint erro

* Update variable name
2022-09-13 19:33:22 +02:00
Dan Onoshko
0c51ecd451
fix: respect aspect ratio with container height (#10646)
* fix: respect aspect ratio with container height

* docs: add info into migration guide
2022-09-02 08:03:41 -04:00
Dan Onoshko
8ff853c60e
feat: remove default axis override when custom id is given (#10643)
* feat: remove default axis override when custom id is given

* docs: add info into migration guide

* test: fix tests for the feat

* docs: add info into migration guide

* test: fix tests for the feat

* feat: review fixes

* feat: review fixes
2022-09-02 07:52:48 +03:00
Jukka Kurkela
3b76488373
Refine logarithmic scaling / tick generation (#9166)
* Refine logarithmic scaling / tick generation

* Disable autoSkip on reverese test

* Reduce ticks, fix min
2022-08-22 14:05:27 -04:00
Jacco van den Berg
3eb947719e
Put the border opts in own object (#10571)
* put borderOpts in own object

* document z option

* remove todo and change scaleId to id

* update some tests

* clean bit, remove console log

* fix failing test

* lint

* Remove comment
2022-08-18 15:07:46 +02:00
Dan Onoshko
e7372ade24
fix: same-looking tooltips on charts (#10548)
* fix: same-looking tooltips on multiseries charts

* fix: same-looknig tooltips on all chart types

* chore: restore tooltip plugin

* docs: additions to migration guide

* docs: remove labels from scatter and bubble examples

* docs: review fix
2022-08-18 07:34:35 -04:00
Jacco van den Berg
d09e424a0a
Use borderRadius for legend and remove fallbacks (#10551)
* Use borderRadius for legend

* re enable test

* fix lint

* add note in migration guide

* Update types/index.d.ts

Co-authored-by: Jukka Kurkela <jukka.kurkela@gmail.com>
2022-08-18 07:34:18 -04:00
Dan Onoshko
ffce0f9f18
feat: tooltip callbacks fallback (#10567)
* feat: tooltip callbacks fallback

* docs: review fixes
2022-08-18 09:03:12 +03:00
Jacco van den Berg
3df687a87c
Remove destroy hook (#10549)
* remove destroy hook

* revert package-lock.json changes

* update test

* add migration guide note

* fix karma failing test

* change way of importing package.json
2022-08-05 19:51:14 +03:00
Dan Onoshko
b19fc0169f
fix: pass timestamp to ticks callback (#10540)
* fix: pass timestamp to ticks callback
* docs: edit labelling page
* docs: additions to the migration guide
2022-08-05 07:59:36 -04:00
Dan Onoshko
a4de430d99
fix: treeshaking (#10504)
* fix: treeshaking
* refactor: DatasetController.datasetElementType and DatasetController.dataElementType as static props
2022-08-04 09:17:40 -04:00
Slava Terekhov
03e9194be5
feat: remove line element from scatter controller (#10439)
* feat: remove line element from scatter controller default config

* feat: move common controllers methods to helpers and add types

* feat: mark methods for scatter and line conntrollers as private

* fix: fix error when showline is true at root options and add tests

* feat: remove else inside scatter controller update

* fix: update getStartAndCountOFVisiblePoints helper code
2022-08-01 22:39:09 +03:00
Dan Onoshko
844270eb5e
feat: pass some chart options to DateAdapter (#10528)
feat: pass some chart options to DateAdapter
2022-07-30 11:25:01 -04:00
Slava Terekhov
f0be17c859
Add circular prop to arc element (#10405)
* feat: add circular prop to arc element draw actions
* test: add test for arc element with circular:false prop
* feat: add circular prop to Arc element options
* docs: add decriptiption for new Polar area chart prop
* docs: fix circular prop description
* docs: add info about arc element circular prop to elements docs
* docs: move circular prop from general options to styling
2022-07-30 11:08:38 -04:00
Dan Onoshko
e800b46ab9
fix: calc visible points on update #10467 (#10523) 2022-07-28 07:46:00 -04:00