Commit Graph

217 Commits

Author SHA1 Message Date
Dominic Jean
0edb2ac604 enable pointStyleWidth for all legend style (#10639) 2022-09-01 06:37:12 -04:00
Evert Timberg
b95ba3d5c3 Convert the easing helpers to typescript (#10627)
Co-authored-by: Chart.js <>
2022-08-31 09:53:54 -04:00
Dan Onoshko
2031cdf051 Preparing the project for TypeScript (#10595)
* Add Typescript to the build
* Converts the `helpers.core` to Typescript as an example
* Converts the `core.element` to Typescript
2022-08-22 11:58:57 -04:00
Jon Dufresne
eaee1ad63b Use the element's window in getComputedstyle (#10608) 2022-08-22 17:29:36 +02:00
Dan Onoshko
ce375a6876 feat: add ESM support (#10525)
* feat: add ESM support

* build: rename UMD bundle

* chore: edit supbackages description

* style: disable es/no-import-meta linter rule

* test: dynamic import in cjs module

* docs: edit integrations page

* docs: review fixes

* chore: remove useless regex in webpack config

* ci: test size-limit only for ESM bundle
2022-08-04 18:43:26 -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
e800b46ab9 fix: calc visible points on update #10467 (#10523) 2022-07-28 07:46:00 -04:00
Jukka Kurkela
a4114e84d9 parsing: support dot(s) in object keys (#10517) 2022-07-26 08:30:52 -04:00
Dominic Jean
5452502b8c Add pointStyleWidth option for legend (#10412)
* add pointStyleWidth for legend

* add drawPointLegend to keep drawPoint signature
2022-07-18 06:49:08 -04:00
Jacco van den Berg
2c268f0943 Resolve canvasGradient is undefined in node (#10328)
* Resolve canvasgradient is not defined in node

* Remove trailing white space

* export isPaternOrGradient helper with typings

* fix lint failure, single qoute

* Allow for string inputs too to function
2022-05-03 08:21:43 -04:00
Josh Kelley
c057c96693 Interaction functions (#10046)
* Refactor get...Items functions to take events rather than positions

To work toward exposing something like the get...Items functions.

* Switch getAxisItems to use optimizedEvaluateItems

optimizedEvaluateItems falls back to evaluating all items for unsorted items, and sorting / optimizing ought to be okay, so this ought to be equivalent.

* Performance

* Consolidate getRelativePosition

helpers.dom.js's getRelativePosition already had logic to handle ChartEvent vs. Event (as demonstrated by the `native` check within `getCanvasPosition`), so it's redundant for core.interaction.js to have its own `native` check.

Update `getRelativePosition` to use the same `native` check as core.interaction.js's version.  As best as I can tell, the ChartEvent's x and y are populated from `getRelativePosition`, so the previous `getCanvasPosition` was effectively just duplicating `getRelativePosition'`s work.  I added a test to verify this; it depends on a local, not-yet-submitted change in chartjs-test-utils' `triggerMouseEvent` to return the mouse event that it triggers.

* Add an API to refactor duplicate isPointInArea

* Rename and update JSDoc to prepare for making this public

* Give functions a consistent, generic interface

* Export functions for discussion

* Code review feedback

Add a non-null assertion, as requested in code review.

Add JSDoc to clarify that `getCanvasPosition` now expects a native `Event`, not a `ChartEvent`.  Add `@ts-ignore`; `getCanvasPosition` relied on some loose conversions between `Event`, `TouchEvent`, and `Touch` that would require several changes to make TypeScript happy.

* Code review feedback

Return the event directly, to speed up the code a bit.  Add JSDoc to help communicate its intent.  Update various comments.

* Finalize exports; add docs and TypeScript

* Update src/helpers/helpers.dom.js

* Update src/helpers/helpers.dom.js

Only thing needed actually is the update of chartjs-test-utils to 0.4.0

* Bump chartjs-test-utils dependency

To get supporting work from https://github.com/chartjs/chartjs-test-utils/pull/19

Co-authored-by: Jukka Kurkela <jukka.kurkela@gmail.com>
2022-03-24 09:02:30 -04:00
CommanderRoot
acc7d9e04a Replace deprecated String.prototype.substr() (#10243)
String.prototype.substr() is deprecated (see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substr) so we replace it with similar functions which aren't deprecated.
Signed-off-by: Tobias Speicher <rootcommander@gmail.com>
2022-03-18 17:38:28 -04:00
Jacco van den Berg
ed68557a99 Make object notation usable for polarArea and radar (#10088)
* start to make object notation usable for polarArea
* enable object notation also for radar chart, test default key
2022-02-12 10:23:31 -05:00
Dimitri Papadopoulos Orfanos
a7d98fb1a0 Fix typos found by codespell (#10103) 2022-01-27 09:24:55 -05:00
Jukka Kurkela
ba6b446b04 Limit active element changes to chartArea (#9970)
* Limit active element changes to chartArea

* CC, remove duplicate ChartEvent interface

* CC2
2021-12-08 16:44:45 +02:00
Jukka Kurkela
d2d5f49953 Pass object from array as value to _fallback (#9969)
* Pass object from array as value to _fallback

* cleanup

* reduce changes

* reduce even more changes
2021-12-08 16:27:55 +02:00
Jukka Kurkela
db995af158 Fix resolver caching issue when setting values (#9938) 2021-12-01 17:53:55 -05:00
Jukka Kurkela
0c5db4973e Fix inRange for full circle arc (#9871)
* Update misleading sample comment

* Fix inRange for full circle arc
2021-11-18 00:10:19 +02:00
Jukka Kurkela
c8b885dd3e Prevent proxying CanvasGradient in Node platform (#9861) 2021-11-15 20:09:43 -05:00
Jukka Kurkela
6a250de81d Add chart, p0.raw, p1.raw to segment context (#9761)
* Add chart, p0.raw, p1.raw to segment context

* Types
2021-10-15 15:56:29 -04:00
Jukka Kurkela
10292c6912 Linear: determine grace amount from range (#9719) 2021-10-04 17:43:04 -04:00
Toni Dietze
93fcec595c cache also undefined values in option resolver (#9661)
Otherwise, repeated lookups of undefined properties always trigger the
comparatively expensive resolution. This can be the case for example in
_calculateBarIndexPixels() in controller.bar.js when looking up
options.skipNull and options.maxBarThickness, which is done for each bar
in a bar chart.
2021-10-04 14:02:45 -04:00
nikethan rai
0093b0fca8 Fix: Typo spaning--> spanning (#9710) 2021-10-03 09:39:20 -04:00
Jukka Kurkela
183a1a9f67 Fix segment styling with gaps (#9644) 2021-09-13 16:31:34 -04:00
Jukka Kurkela
fca0309223 Detect attach/detach from any level (#9557) 2021-08-18 18:14:09 -04:00
Jukka Kurkela
1c837a9c12 Fix _isPointInArea helper when no area is provided (#9489) 2021-07-28 07:57:35 -04:00
Jukka Kurkela
151188e2f2 Add data/dataset indices to line segment context (#9451) 2021-07-21 07:00:05 -04:00
Jukka Kurkela
92e39a295d Apply segment styles with only single segment (#9447) 2021-07-20 08:45:18 -04:00
Jukka Kurkela
566d722431 Don't draw points outside chartArea (#9443) 2021-07-20 07:52:41 -04:00
Jukka Kurkela
bc7c58d46d Fix: config.platform was ignored (#9442) 2021-07-20 07:51:16 -04:00
Evert Timberg
fea3f20762 Account for floating point error in niceNum helper (#9343)
* Account for floating point error in niceNum helper
* Better solution
2021-07-01 15:07:32 -04:00
Jukka Kurkela
8f98515f45 Refactor radialLinear scale and renderText helper (#9276)
* Refactor radialLinear scale and renderText helper
* Undo the big move to make review possible
2021-06-18 14:12:27 -04:00
Evert Timberg
dc373f3aaa Replace [...set] with Array.from(set) (#9260) 2021-06-12 20:34:54 +03:00
Evert Timberg
be011768fe Fix rtl legend text alignment (#9199)
* Start fixing RTL

* Broken test

* Fix right alignment for horizontal legends
2021-06-01 18:36:55 +03:00
Jukka Kurkela
a553d57033 Fix doughnut rotation on float edge cases (#9121) 2021-05-18 19:24:23 -04:00
Akihiko Kusanagi
0ba5c70618 Support monotone cubic interpolation for vertical line charts (#9084)
* Support monotone cubic interpolation for vertical line charts

* Use more more intuitive veriable names
2021-05-14 17:07:26 -04:00
Jukka Kurkela
f1ca99bfd4 Fix setting options in array of objects (#9062)
* Fix setting options in array of objects

* CC
2021-05-12 23:08:17 +03:00
Toni Dietze
c955ffad64 Round canvas.style dimensions to avoid blurring (#9015)
When canvas.height and canvas.width are set, the numbers are rounded to
integers. The same rounding must be applied to canvas.style.height and
canvas.style.width to avoid scaling of the canvas which would lead to
blurring.

Acknowledging that canvas.height and canvas.width are integers, the
framebuffer is now only redrawn if those integer values change.
2021-05-08 08:11:52 +03:00
Jukka Kurkela
137b51d87d Fix line segments with alignToPixel (#9042) 2021-05-06 21:06:40 -04:00
Evert Timberg
e29ba78cd1 Allow the events option to be changed at runtime (#8928) 2021-04-17 14:08:36 -04:00
Jukka Kurkela
f8885ce7a2 Font validate style, move defaults to weight (#8877) 2021-04-10 15:58:11 -04:00
Evert Timberg
7ee498e412 Tooltip colorbox supports configurable borderWidth, borderRadius, and dash effect (#8874)
* Start on extending tooltip style
* Correct borderRadius implementation
* Tests of updated tooltip styling
* Update docs
2021-04-10 13:37:22 -04:00
Jukka Kurkela
ba84cc5c2a Filler: support segment backgroundColor (#8864) 2021-04-09 19:10:48 -04:00
Jukka Kurkela
4eb59454be Allow styling of line segments (#8844)
Allow styling of line segments

* docs & sample
* Types
* update sample
2021-04-08 18:02:12 -04:00
Jukka Kurkela
c6473da16c _boundSegments did not work on rising line (#8838) 2021-04-07 07:32:28 -04:00
Jukka Kurkela
74f118818b Proxy: Only create scopes when setting values (#8799) 2021-04-03 11:10:52 -04:00
Evert Timberg
6f6b1b2d17 Doughnut/Pie chart border radius (#8682)
* Arc with rounded ends implementation
* End style option
* Working border radius implementation for arcs
* Linting
* Fix bug introduced when converting to new border object
* Fix bugs identified by tests
* Arc border radius tests
* Add test to cover small borderRadii
* Reduce the weight of the arc border implementation
* lint fix
2021-04-03 07:58:51 -04:00
Jukka Kurkela
98e890cc7b Patch: option scope might not be an object (#8789) 2021-04-02 16:13:36 -04:00
Jukka Kurkela
515d941df7 Proxy: make sure set value ends up in first scope (#8787) 2021-04-02 13:47:05 -04:00
Evert Timberg
0b21578a3a Improved alignment of pixels in scales at low widths (#8739)
* Improved alignment of pixels in scales at low widths
* Undo scale changes
2021-03-27 15:00:21 -04:00