Commit Graph

102 Commits

Author SHA1 Message Date
Ricardo Brizido
314f398887 Fix tooltip body 2016-04-29 12:11:15 +01:00
Simon Brunel
29115c9d2c Handle data visibility per chart
New Chart.Element.hidden bool flag storing the visibility state of its associated data. Since elements belong to a specific chart, this change allows to manage data visibility per chart (e.g. when clicking the legend of some charts).

This commit also changes (fixes?) the polar chart animation when data visibility changes. Previous implementation was affected by an edge effect due to the use of NaN as hidden implementation.
2016-04-26 12:46:29 +02:00
Simon Brunel
82b1e5cd99 Handle effective dataset visibility per chart
Introduced a new meta.hidden 3 states flag (null|true|false) to be able to override dataset.hidden when interacting with the chart (i.e., true or false to ignore the dataset.hidden value). This is required in order to be able to correctly share dataset.hidden between multiple charts.

For example: 2 charts are sharing the same data and dataset.hidden is initially false: the dataset will be displayed on both charts because meta.hidden is null. If the user clicks the legend of the first chart, meta.hidden is changed to true and the dataset is only hidden on the first chart. If dataset.hidden changes, only the second chart will have the dataset visibility updated and that until the user click again on the first chart legend, switching the meta.hidden to null.
2016-04-26 12:46:27 +02:00
Simon Brunel
f3457c9941 Handle dataset type per chart
Dataset effective type is now stored under meta.type, allowing many charts to share the same dataset but with different types. Also move dataset.bar flag to meta.bar.
2016-04-26 12:46:26 +02:00
Simon Brunel
51aa9b4a27 Allow multiple charts sharing the same data
Meta info are now scoped by chart and moved under the dataset._meta map { chart.id -> meta }. Meta for a specific chart (and dataset) can be accessed using chart.getDatasetMeta(datasetIndex) or from the dataset controller using getMeta(). Note that helpers.uid() now generates an int (instead of a string) to make lookups in the _meta map faster.
2016-04-26 12:46:24 +02:00
Evert Timberg
8f0caed24b Fix adding data to pie, doughnut, and polar area charts 2016-04-23 10:52:02 -04:00
Evert Timberg
f6f8fe5959 Add in a beforeRender plugin event. Makes it easier to handle things that need to happen once at the start of animation but not on every frame 2016-04-22 21:04:55 -04:00
Jan Potoms
58563fddf9 Fix typo in plugin 'destroy' 2016-04-21 17:25:37 +02:00
Evert Timberg
76b3494a0a Fix build and update to latest node js version. 2016-04-21 07:50:20 -04:00
Evert Timberg
9abc63b11e Plugin event in destroy 2016-04-17 18:55:20 -04:00
Evert Timberg
d131e7d07a Use apply instead of call so that the animation easing can be passed to the draw callbacks 2016-04-17 12:25:47 -04:00
Evert Timberg
7fa4c4c1b8 Initial plugin calls 2016-04-17 12:02:42 -04:00
Evert Timberg
95bd0a54dd Clip out the chart area so that things outside do not draw 2016-04-02 21:41:57 -04:00
etimberg
d8347039cf Better handling when data.datasets does not exist 2016-03-29 20:10:29 -04:00
Evert Timberg
e090691ef7 Better use of default scale types. 2016-03-19 08:50:50 -04:00
Evert Timberg
04e6926961 Fix bar chart and doughnut chart animations 2016-02-27 12:32:20 -05:00
Tanner Linsley
ac5be9bde2 Proper line and bar stacking order
Stacked line and bar charts now behave predictably with the first
dataset on the bottom stacked upwards.
2016-02-17 12:41:32 -07:00
etimberg
01b88f19df Clean up code climate style issues and formatting. 2016-02-14 17:06:00 -05:00
etimberg
f6951816a0 Improve joshing reporting. Added a JSHint config file.
Fixed JSHint warnings.
2016-02-13 20:12:26 -05:00
Tanner Linsley
813d18bd78 Passing All Tests, Updated Dependencies 2016-02-11 23:16:43 -07:00
Tanner Linsley
f2780bb825 Browserify for easier UMD consumptions and vanilla builds 2016-02-11 20:30:53 -07:00
Evert Timberg
59e3ccb42a buildOrUpdateControllers now returns an array of all the new controllers that were created. Build controllers before updating the scales but only reset them afterwards because the scales need to update label moments first. 2016-01-21 22:00:21 -05:00
Mathias Küsel
33303d8d8a Fixes resize() function 2016-01-18 17:46:11 +01:00
Mathias Küsel
25d6c2f064 Removes unused context bindings 2016-01-14 18:17:14 +01:00
Evert Timberg
8c68f78ec3 Don't try to use undefined Scale constructors 2016-01-09 11:55:44 -05:00
Evert Timberg
310eada01a Do not force resize if the size has not changed 2016-01-05 20:16:18 -05:00
Evert Timberg
f170fd1b8d Improvements to tooltip alignment to avoid the canvas edges 2015-12-22 21:35:23 -05:00
Evert Timberg
716e303230 Call animation callbacks. Created a sample file that shows their use by updating a progress bar during the animation. Updated the documentation to show how they are called. 2015-12-12 10:01:08 -05:00
Evert Timberg
95332e39f5 Merge branch 'v2.0-dev' into fix/1725
Conflicts:
	src/core/core.controller.js
2015-12-12 09:01:59 -05:00
Evert Timberg
d689e0fc47 When only the dataset array changes scales did not update correctly. This was due to the fact that the new datasets did not have scale IDs yet. By building the controllers first, the IDs are mapped if necessary. Then we can correctly update scales. 2015-12-08 19:57:58 -05:00
Evert Timberg
819f865723 Merge branch 'v2.0-dev' into v2.0-legend
Conflicts:
	src/controllers/controller.doughnut.js
2015-12-07 22:10:38 -05:00
Evert Timberg
792ee587ae Split legend and title block functionality into 2 separate blocks. This allows the title to be on the top of the chart while the legend is on the bottom 2015-12-06 10:20:38 -05:00
Evert Timberg
0c247dde28 Gracefully handle setting options.animation to false which occurs when migrating configs from v1. 2015-12-05 10:40:05 -05:00
Evert Timberg
59fb1696a8 Highlight correct items when hover mode is set to 'dataset' 2015-12-04 20:01:04 -05:00
Evert Timberg
0b260d57cc Fix JSHint issue 2015-12-03 21:25:36 -05:00
Evert Timberg
60c1609ba9 Initial toggling of datasets from the legend.
Still need to do:
- clicking on text in legend
- toggling style of legend based on dataset style
- figure out if we need an
2015-11-22 22:31:08 -05:00
etimberg
0a17edd1ae Minor improvement to code that gets active elements 2015-11-21 22:44:11 -05:00
Evert Timberg
2a9b3e5221 Merge branch 'v2.0-dev' into v2.0-legend
Conflicts:
	src/core/core.controller.js
2015-11-21 09:23:33 -05:00
Evert Timberg
66bc1dc492 Reference data from the main controller wherever possible. Updated tests to account for this. 2015-11-13 09:38:35 -05:00
Pascoual
234efc5267 Fix: tooltips checks indent 2015-11-10 01:00:30 +01:00
Pascoual
c4d02a8f96 Fix: no tooltips when missing data for one or more dataset 2015-11-10 00:53:08 +01:00
Tanner Linsley
b0380d4ede Check if dataset is visible when adding active elements to a tooltip 2015-11-01 22:50:16 -07:00
Tanner Linsley
28bc80e439 ElementsAtLabel now returns all datasets' elements at the found index 2015-11-01 22:44:31 -07:00
Tanner Linsley
f4a5a30451 Only call custom tooltips when elements have changed. But be sure to call update internally any time that tooltips need to be redrawn. 2015-11-01 13:56:36 -07:00
Tanner Linsley
93a923d38f Remove logs 2015-10-31 18:17:42 -06:00
Tanner Linsley
22aabdbfab Update tooltip only when things change (which will only trigger customTooltips when model changes) 2015-10-31 18:17:32 -06:00
Tanner Linsley
5ba1ec0d3b More concise change detection 2015-10-31 18:17:06 -06:00
Tanner Linsley
8398d26d10 Remove Tooltip opacity from core-controller 2015-10-31 18:16:35 -06:00
Tanner Linsley
fa33f3158e Don't kill lastActives on chart hover exit 2015-10-31 18:15:58 -06:00
Tanner Linsley
753fd79bf3 Call tooltip update even when tooltip has no active elements 2015-10-31 16:07:36 -06:00