* 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
* 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
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)
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.
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).
`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}`.
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.
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).
* 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
- 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