Commit Graph

224 Commits

Author SHA1 Message Date
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
Evert Timberg
13e9676625 Reset tooltip when calling Chart.update (#4840) 2017-10-28 10:20:34 +02:00
JewelsJLF
8ac0257f8d Add "beforeTooltipDraw" and "afterTooltipDraw" plugin hooks (#4793) 2017-10-14 23:29:35 +02:00
Xingan Wang
b9afeaf973 remove redundant tooltip initialize (#4655) 2017-08-14 07:37:17 -04:00
Akihiko Kusanagi
7dc71d009b Make offsetGridLines consistent and add new offset scale option (#4545)
Add a new `offset` option to scales to add extra space at edges and remove the `includeOffset` argument from `getPixelForValue()` and `getPixelForTick()`. The bar controller now automatically calculates the bar width to avoid overlaps. When `offsetGridLines` is true, grid lines move to the left by one half of the tick interval, and labels don't move.
2017-08-14 10:09:33 +02:00
Ben McCann
2922dc96cf Allow updating dataset types (#4586) 2017-08-02 07:29:34 +02:00
Simon Brunel
2c52209ba7 Replace the IFRAME resizer by DIVs (#4596)
Resize detection is now based on scroll events from two divs nested under a main one. Implementation inspired from https://github.com/marcj/css-element-queries.
2017-08-02 07:25:55 +02:00
Simon Brunel
4c763bff44 Enforce spaces around infix/unary words operators (#4547)
Enable ESLint `space-infix-ops` and `space-unary-ops` (for words only) rules. Also added `samples` to the linting task to match Code Climate expectations.

http://eslint.org/docs/rules/space-infix-ops
http://eslint.org/docs/rules/space-unary-ops
2017-07-22 14:13:09 +02:00
Ben McCann
f6b6956a3a Fix ESLint errors (#4485) 2017-07-22 09:19:06 +02:00
Simon Brunel
889ecd560b Make Chart.defaults/Ticks/Interaction importable (#4512)
Default options can now be accessed by importing `core/core.defaults`. The returned object acts as a singleton and is populated when importing classes that expose their own default values (meaning that importing only `code.defaults` results in an empty object). Also make `Chart.Ticks` and `Chart.Interaction` importable since existing defaults rely on these values.

Add the `defaults._set` method that make easier declaring new defaults by merging given values with existing ones for a specific scope (`global`, `scale`, `bar`, etc).
2017-07-16 19:38:19 +02:00
Simon Brunel
1833614e1d Make Chart.platform importable (#4509) 2017-07-16 11:02:25 +02:00
Simon Brunel
717e8d950a Make Chart.helpers importable (#4479)
Properly export helpers and remove dependencies to `Chart.helpers`. Helpers can now be accessed from `src/helpers/index.js` (`var helpers = require('path/to/helpers/index')`, instead of `var helpers = Chart.helpers`).
2017-07-15 15:13:56 +02:00
Simon Brunel
56050dc9b7 Move easing effects in separate file + unit tests 2017-07-08 12:02:33 -04:00
Simon Brunel
5d95280d7b Change valueAtIndexOrDefault behavior (#4423)
For consistency with `valueOrDefault`, `valueAtIndexOrDefault` now returns null if `value` (expected array) is null. Also get rid of the superfluous `get` prefix in `getValueOrDefault` and `getValueAtIndexOrDefault`.
2017-06-25 10:54:37 +02:00
Simon Brunel
5196e05062 Cleanup and reorganize core and canvas helpers
Move some of the "core" and "canvas" utils in `helpers.core.js` and `helpers.canvas.js` and introduce the new `isNullOrUndef` and `isObject` helpers. Deprecate `indexOf` and rename `drawRoundedRectangle` to `roundedRect` which now creates a simple `rect` path if radius is 0. Write missing unit tests for the moved helpers.
2017-06-24 13:28:52 -04:00