Commit Graph

238 Commits

Author SHA1 Message Date
Ben McCann
3abe9bfebf Replace Object.entries with Object.keys (#6862) 2019-12-26 08:49:22 -05:00
Evert Timberg
c8bdca62e8 Move all helpers to src/helpers (#6841)
* Move all helpers into src/helpers

* Move curve helpers to their own file

* DOM helpers moved to their own file

* Update migration docs

* Remove migration docs on new functions
2019-12-17 08:04:40 -05:00
Evert Timberg
374b7491a3 Allow axes to be centered on the chart area (#6818)
Allow axes to be centered on the chart area or at a dynamic position based on another axis
2019-12-16 18:17:42 -05:00
Jukka Kurkela
15785fdc54 Cache sorting order of dataset metas (#6757)
* Cache sorting order of dataset metas
* Cache dataset visibility
2019-12-14 13:03:09 -05:00
Ben McCann
b7caa2410c Store parsed data more similarly to provided data (#6814)
* Store parsed data more similarly to provided data

* Add test
2019-12-08 08:52:11 -05:00
Jukka Kurkela
ce74eb76a1 Convert axis options from arrays to objects (#6773)
* Convert axis options from arrays to objects

* Updated all chart type defaults
* Throw errors when axis type or position are not specified
* Avoid raising unnecessary errors when merging options into the default configs

* Fix additional tests

* Ensure scale defaults are set if type is not explicitly defined

* Another step

* Include `scale` as `firstIDs.r`

* update docs

* Update for buildOrUpdateScales

* Update migration guide

* Add test back
2019-11-21 18:46:49 -05:00
Ben McCann
ea90365972 Don't store _meta on dataset (#6778) 2019-11-21 07:20:18 -05:00
Ben McCann
64bc48ab53 Remove Element.initialize (#6777) 2019-11-21 07:06:15 -05:00
Jukka Kurkela
7f97adf5a0 Move scale defining options up from ticks (#6738)
* Move scale defining options up from `ticks`
* Include `ticks.reverse` in v3-migration
2019-11-15 12:11:13 -05:00
Jukka Kurkela
aa3e4c4d27 Tooltip label and value via controller (#6744) 2019-11-15 11:51:45 -05:00
Jukka Kurkela
76a89f0922 determineDataLimits optimizations (#6695) 2019-11-12 19:24:07 -05:00
Jukka Kurkela
11ef1e5e89 Versatile clipping (#6642)
Versatile clipping algorithm for different chart types
2019-11-10 17:41:01 -05:00
Ben McCann
a3392e0e59 Remove index and datasetIndex from Element (#6688)
Remove `index` and `datasetIndex` properties from elements.
2019-11-10 07:52:12 -05:00
Jukka Kurkela
81f5cf416a Performance optimizations when animations are disabled (#6710)
* Don't copy _model when animations are disabled

* Review comments
2019-11-09 21:57:54 -05:00
Ben McCann
83d447f317 Fix doughnut sample (#6690) 2019-11-05 07:10:01 -05:00
Ben McCann
80587bb68d Remove unused parameters (#6674) 2019-11-02 15:20:19 -04:00
Ben McCann
9c2baa3c23 Remove backwards compatibility for update second arg (#6675) 2019-11-02 09:18:42 -04:00
RatherLogical
50fd869334 Update tooltip content and styling on update() (#6635)
Update tooltip content and styling on update()
2019-10-29 06:39:07 -04:00
Jukka Kurkela
0228776e66 Remove deprecated interaction modes (#6625)
* Remove deprecated interaction modes
* Use default modes
2019-10-28 18:11:38 -04:00
Jukka Kurkela
d6ba91f732 Remove deprecated code from animations and core (#6624) 2019-10-27 18:28:47 -04:00
Ben McCann
4d69119d18 Remove mergeTicksOptions (#6621) 2019-10-27 18:12:05 -04:00
Ben McCann
08d133817b Remove xLabel and yLabel from tooltip and chart and scales from element (#6606)
* Element should not have reference to chart
* Remove scales from element
* Remove deprecated xLabel and yLabel
2019-10-27 16:35:15 -04:00
Jukka Kurkela
db4a0d4569 Limit onClick to chartArea (#6227)
* Limit onClick to chartArea
* Utilize helpers.canvas._isPointInArea
2019-10-27 16:29:07 -04:00
Jukka Kurkela
333118bff6 Hover styling for dataset in 'dataset' mode (#6527)
* Hover styling for dataset in 'dataset' mode
2019-10-25 13:22:37 -04:00
Ben McCann
4d7fefcdb6 Remove a couple calls to helpers.each (#6594) 2019-10-25 07:14:07 -04:00
Jukka Kurkela
cec2d2652e Remove duplicate scale building (#6247) 2019-10-22 19:15:15 -04:00
Jukka Kurkela
6b6f1a4c51 Implement dataset.order (#6268)
Allow sorting datasets based on the `order` property
2019-10-22 19:14:54 -04:00
Jukka Kurkela
cbace1cfe2 Handle reverse support in core.scale (#6343)
* Move log10 from core.helpers to helpers.math

* Refactor scales
2019-07-15 17:20:16 -04:00
Akihiko Kusanagi
bf094c59db Assign unique scale IDs (#6291) 2019-06-09 15:45:12 +08:00
Jukka Kurkela
2a96d83c2c Implement layers (z-index) for layout items (#6241) 2019-05-09 15:54:05 +02:00
Ben McCann
d6a5ea0d36 Implement per-dataset type (default and per-chart) options (#5999) 2019-05-06 22:52:40 +02:00
Ben McCann
2f874fde62 Use lowercase for primitives in jsdocs (#6033) 2019-02-11 08:51:39 +01:00
Jukka Kurkela
97da221f27 Prevent infinite resize when vertical scrollbar appears (#6011)
If the container size shrank during chart resize, let's assume scrollbar appeared. So we resize again with the scrollbar visible effectively making chart smaller and the scrollbar hidden again. Because we are inside `throttled`, and currently `ticking`, scroll events are ignored during this whole 2 resize process. If we assumed wrong and something else happened, we are resizing twice in a frame (potential performance issue)
2019-01-30 11:48:56 +01:00
Simon Brunel
0697d0de90 Deprecate configMerge and scaleMerge helpers (#6022)
These methods shouldn't have been public since they are specific to the chart controller internal logic. Note that this scale custom merging will be removed in v3.
2019-01-29 17:52:21 +01:00
Jukka Kurkela
7c0ad5a05b Stop drawing radialLinear scale twice (#6007) 2019-01-23 15:45:01 +01:00
Simon Brunel
e03d8d8d7b Make the main controller importable (#5969)
Merge `core/core.js` in `core/core.controller.js`, split default options next to their associated code and deprecate `Chart.types` (not sure what it was for).
2019-01-09 14:40:11 +01:00
Akihiko Kusanagi
820debf452 Refactoring using helpers.options.resolve (#5965) 2019-01-08 16:50:33 +01:00
serhii-yakymuk
c51ac8a64a Make animation duration consistent across browsers (#5331) 2019-01-02 16:13:56 +01:00
Simon Brunel
be8d78a900 Make Chart.controllers.* importable (#5871)
`controllers.*.js` and `core.datasetController.js` are now importable (no more function export), that's why there is so many changes mainly due to one indentation level removed. Split code for `bar/horizontalBar` and `doughnut/pie` in separate files, added a global controllers import (`src/controllers/index.js`) and add tests to check that all dataset controllers are correctly registered under `chart.controllers.{type}`.
2018-11-29 21:06:34 +01:00
Akihiko Kusanagi
7cf132316a Call update() and render() with a config object (#5592) 2018-06-24 14:31:51 -04:00
jcopperfield
25b7f41bac Bug: Avoid updating Chart when responsive: true and Chart is hidden. (#5172)
* Bug: Avoid updating Chart when `responsive: true` and Chart is hidden.

* Prevent `drawing` when width/height is invalid.
2018-05-22 21:11:28 -04:00
Simon Brunel
bee8e3cd9b Make Chart.Scale/scaleService importable (#5383) 2018-04-02 17:43:28 -04:00
Simon Brunel
d284686452 Make Chart.Animation/animations/Tooltip importable (#5382) 2018-04-02 10:55:52 +02:00
Simon Brunel
2d7f0a46c3 Fix updating plugin options (#5144)
Cached plugin descriptors hold a reference on the plugin options, which break if the plugin options object is replaced. That case happens when the user updates the plugin options with a new object, but also since the new config update logic (#4198) that now always clones the plugin options. The fix consists in explicitly invalidating that cache before updating the chart.
2018-01-13 08:23:50 -05:00
Simon Brunel
6bea15e7cf Rename Chart.layout to Chart.layouts (#5118)
Chart.layouts seems more consistent with other service names (Chart.plugins, Chart.scales, etc.) but also more inline with the service which handle many layout (one per charts).
2018-01-09 14:12:40 +01:00
Simon Brunel
fb3ea03440 Make Chart.plugins importable (#5114)
Explicitly deprecate (since 2.1.5) `Chart.Legend` and `Chart.Title`.
2018-01-08 11:48:59 +01:00
Simon Brunel
ce27fe5ea6 Make Chart.layout(Service) importable (#5113)
Rename (and deprecate) `Chart.layoutService` to `Chart.layout` and make it importable.
2018-01-07 23:38:26 +01:00
jcopperfield
4e47c178e4 Fix tooltip animation when target changes while animating (#5005)
* Fix issue #4989
 - tooltip in 'index' mode doesn't animate smoothly.

* Change: different approach for smooth tooltip animation in 'index'
        mode, when target doesn't change.

* Fix: jslint error

* Fix: remove spyOn pivot from test

* Add: setAnimating-flag in transition used to set on tooltip.transition
     to keep track of tooltip animation.

* Decrease code complexity

* Revert transition and complexity changes
Add: use 'tooltip._start' as workaround check for tooltip animation status
2017-12-12 18:43:17 -05:00
Xingan Wang
333f2eba99 Fix scale options update (#4198)
- allow options to be updated in-place or as a new object
- re-merge new options and rebuild scales & tooltips
- preserve reference to old scale if id/type not changed
- related tests and new sample also added.
- update document about options update
- update doc and example
2017-11-29 22:52:23 +01:00
Ben McCann
d415e617d8 Reset only when animating (#4923) 2017-11-07 18:26:37 -05:00