Commit Graph

460 Commits

Author SHA1 Message Date
Evert Timberg
8d20379e29 Initial tooltip tests + fix a bug when the tooltip beforeLabel and afterLabel callbacks returned strings 2016-05-28 15:26:46 -04:00
Evert Timberg
9269411799 Merge pull request #2657 from chartjs/tooltip-color-callback
Provide a way to configure the colour of tooltip items
2016-05-28 12:14:27 -04:00
Evert Timberg
f247536b4a When destroying the chart, any animations should be stopped. 2016-05-28 11:05:02 -04:00
Evert Timberg
66aa65be68 Tooltip now has a callback for configuring the colors of items displayed. Added docs and improved the options passed to the tooltip 2016-05-27 21:07:02 -04:00
Evert Timberg
46fc96bf4d Remove unused code from core controller. 2016-05-25 21:30:22 -04:00
Evert Timberg
d6289c6129 Convert title block to a plugin 2016-05-25 21:28:02 -04:00
Evert Timberg
1ae0f5e4d4 Legend is attached to the graph as a plugin. 2016-05-25 21:23:46 -04:00
Simon Brunel
08de9faf10 Fix #2418 Firefox old version compatibility
Old versions of FF doesn't accept accessing the computed style via the 'max-width' and 'max-height' CSS notations using brackets, in which case the returned value is undefined. Changed the constraint methods to use maxWidth and mawHeight instead and make sure to test valid values.
2016-05-25 22:51:41 +02:00
Simon Brunel
7f71990a40 Decomplexify Chart.core.controller.eventHandler
Refactor redundant code, use local variables and introduce a new helper to compare arrays (Chart.helpers.arrayEquals).
2016-05-22 00:58:02 +02:00
Simon Brunel
d584afb543 Refactor controller scale methods
Rewrite these two methods to reduce code duplication. Note that options.scale is not anymore mapped to 'radialScale' ID but to 'scale' ID (see ensureScalesHaveIDs), since this ID is not referenced anywhere in the code base.
2016-05-22 00:25:53 +02:00
Simon Brunel
7108f78d2f Refactor addElements and addElementAndReset
Data controllers should now rarely implement addElements and addElementAndReset but instead should define dataElementType (and optionally datasetElementType). Also remove some dead code (e.g. numBars, colorForNewElement, etc.).
2016-05-22 00:25:51 +02:00
Simon Brunel
a566d16e69 Refactor scale base pixel and point calculation. 2016-05-20 20:17:28 +02:00
Simon Brunel
8c5d8855c6 Merge pull request #2551 from chartjs/helper-perf-and-minification
Helpers improvements
2016-05-19 19:51:06 +02:00
Evert Timberg
ecb7ce133e Merge pull request #2590 from haschu/fix/2589
This fixes #2589
2016-05-19 07:02:58 -04:00
haschu
393db2a609 This fixes #2584 (#2592)
Improve scale auto-skipper when labels are not rotated
2016-05-18 18:20:06 -04:00
Evert Timberg
f24dddeda7 Merge pull request #2567 from adileo/master
Fixed tooltip not showing in NULL datapoint in multi line chart
2016-05-18 17:51:49 -04:00
Evert Timberg
d23b2395ff Merge pull request #2578 from simonbrunel/optimizations
Point element and line controller optimizations
2016-05-18 17:51:37 -04:00
Hagen Schulze
577c1406dd This fixes #2589 2016-05-18 20:42:54 +02:00
AllenJB
966d737617 Fix handling of moments by scale.getRightValue
When using {x: moment, y: value} datapoints
2016-05-18 17:38:20 +01:00
Ceane Lamerez
456ab9ca36 Fix #2574 - Add support to hide border on the chart 2016-05-17 21:35:19 +02:00
Simon Brunel
69521477a1 Remove useless hasOwnProperty checks
The Chart.helpers.each method uses Object.keys() to iterates on the object *own enumerable properties*, meaning that checking if object.hasOwnProperty() is useless.
2016-05-17 19:49:17 +02:00
Adileo Barone
4b540e70cf Fixed tooltip not showing in NULL datapoint in multi line chart 2016-05-16 21:02:57 +02:00
Evert Timberg
48368117e9 Helpers improvements 2016-05-14 15:59:40 -04:00
Simon Brunel
b64e03dbd0 Bump chartjs-color to version 2.0.0 (#2549)
Fix color animation because the color lib changed the `mix` implementation to match SASS behavior, so the weight specifies the amount of the first color that should be included in the returned color.
2016-05-14 13:35:35 -04:00
Blake Niemyjski
a3d75d2087 More perf and minification changes based on feedback 2016-05-14 08:58:42 -05:00
Blake Niemyjski
7e85245e4f Fixed unit tests :D 2016-05-13 22:39:11 -05:00
Blake Niemyjski
53b08415ad There were conflicting tick variables 2016-05-13 22:23:34 -05:00
Blake Niemyjski
bea68f1424 Performance and minification improvements 2016-05-13 22:07:39 -05:00
Evert Timberg
14021069c3 Merge branch 'master' into file-size-reduction
Conflicts:
	src/controllers/controller.doughnut.js
	src/controllers/controller.polarArea.js
2016-05-12 18:57:22 -04:00
Evert Timberg
41c043dd23 Merge branch 'master' of https://github.com/nnnick/Chart.js
Conflicts:
	docs/01-Scales.md
2016-05-12 18:22:55 -04:00
Evert Timberg
47f770c3ef Merge pull request #2524 from ashiguruma/master
Allow canvas patterns instead of colors
2016-05-12 18:20:40 -04:00
Tom Loudon
05bfb7e964 Added CanvasPattern global flag for jshint
The core.helpers file was failing linting checks as the global CanvasPattern was not defined. Added the `/* global CanvasGradient */` statement to make linting pass. Updates chartjs/Chart.js#1323
2016-05-12 22:58:54 +01:00
Tom Duncalf
7ee5af81af Add labelOffset option to scales 2016-05-11 10:43:22 +01:00
Tarqwyn
84b7d07526 Following a Slack conversation tadd new Callback to allow updates to datasets config (ie borderColor) based on results of the calculated scale, A typical use case would be apply a Gradient fill.
On branch feature_New_plugin_interface_afterScaleUpdate
Changes to be committed:
	modified:   dist/Chart.bundle.js
	modified:   dist/Chart.bundle.min.js

 #On branch feature_New_plugin_interface_afterScaleUpdate
 #Changes to be committed:
2016-05-10 15:59:12 +01:00
Tom Duncalf
3bef974c25 Add minRotation support 2016-05-10 12:33:36 +01:00
Evert Timberg
23722a8b25 Make the afterUpdate plugin method more useful 2016-05-09 17:14:15 -05:00
Tom Loudon
170fdab6a6 Removed 'background' from hover color helper name.
Patterns could be used for style attributes other than background e.g. stroke. Updates  chartjs/Chart.js#1323
2016-05-09 07:29:52 +01:00
Evert Timberg
b35b246414 Merge branch 'master' into file-size-reduction 2016-05-08 08:11:16 -04:00
Evert Timberg
166801055e Improvements to polar area controller. Moved common draw code up to core dataset controller 2016-05-07 21:04:39 -04:00
Tom Loudon
5866f73562 Added helper to allow a CanvasPattern for hover. Updates chartjs/Chart.js#1323
When a hover background isn't specified in the config for a chart a modified version of the default color is used. If the background color is a CanvasPattern object an error is triggered.

With this change the default background color will no longer be modified if it is a CanvasPattern.
2016-05-07 22:24:00 +01:00
Evert Timberg
5141c90c7b Revert unnecessary changes 2016-05-07 17:04:34 -04:00
Evert Timberg
33c7dbafd6 Use local variables + don't include text width for vertical scales with mirrored text 2016-05-07 16:26:44 -04:00
Evert Timberg
d13e7905dc Scales should have 0 cross size when not displayed 2016-05-07 14:18:36 -04:00
Evert Timberg
fc4c23c8d2 Allow updating scale defaults 2016-05-07 11:43:24 -04:00
Evert Timberg
1b6ffd623c Core.Title reductions 2016-05-05 21:01:48 -04:00
Evert Timberg
655163a7f5 Doughnut controller size reductions 2016-05-05 20:47:33 -04:00
Evert Timberg
3c33cdf760 core dataset controller update 2016-05-04 21:32:40 -04:00
Evert Timberg
4068836a42 Reduce core.title.js size 2016-05-04 21:08:59 -04:00
Evert Timberg
5ca07b84f0 Minor legend fix when going to next line 2016-05-04 21:06:19 -04:00
Evert Timberg
7de70c292d Plugin system is slightly smaller 2016-05-04 19:35:01 -04:00
Evert Timberg
eeae8a6a16 Reduce size of on-canvas legend 2016-05-04 19:28:22 -04:00
Evert Timberg
d383e89222 Merge pull request #2416 from brizido/fix-tooltip-body
Fix tooltip body
2016-05-04 16:34:29 -04:00
Evert Timberg
6df9b24ecd Merge from feature/pan-support
All tests are passing
2016-04-29 20:03:15 -04:00
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
Daan De Meyer
73493e2c9e Added default ("left") for position field in global scale defaults.
Documented scale position field in scale docs.
2016-04-26 03:09:35 +02:00
Evert Timberg
38812cd3c4 Only update the size of boxes that are not full width 2016-04-24 08:20:36 -04:00
Evert Timberg
b4a06f6e34 Merge branch 'master' into feature/pan-support
Conflicts:
	src/core/core.controller.js
2016-04-23 20:06:18 -04:00
Evert Timberg
47552152c3 Remove file and fix jshint error 2016-04-23 19:39:37 -04: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
Evert Timberg
18e3b891d9 Remove commented code 2016-04-22 20:49:44 -04:00
Evert Timberg
dc7ad19f29 Support radar tooltip mode 'label' 2016-04-22 20:48:41 -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
bc90aaa522 Start on pan support 2016-04-21 07:48:47 -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
16570b0c0c Plugin system + tests 2016-04-17 12:02:33 -04:00
Evert Timberg
58d18d6a48 Add configurable tick mark length. Use it to calculate appropriate sizing 2016-04-16 21:46:29 -04:00
Tanner Linsley
4f60eecc01 Better default tick rotation and tick autoskip settings (#2258)
* Better default tick rotation and tick autoskip settings

* scale.time: Use ctx to measure label, and <= instead of < for unit fitting

* Test Changes

* Passing Tests with new defaults
2016-04-16 17:38:03 -05:00
Simon Brunel
5836c19ec5 Optimize animation frame requests (#2268)
The animation service now keeps track of the active animation frame request and will skip new requests until the current one is executed. This can happen when processing mouse events, e.g. 'mousemove' and 'mouseout' events will trigger multiple renders.
2016-04-15 20:15:54 -04:00
dibsyjr1
5aa16a67c1 Fixed the generateLegend function
Fixed the generateLegend function to create the colour block next to the text instead of around it.
2016-04-13 16:03:08 +01:00
Tom Duncalf
0c854dd40c Allow gradients to be used as colors without causing errors when e.g. calling the color helper to generate the defualt colour value for hover 2016-04-13 09:46:39 +01:00
Evert Timberg
68b493732c Don't measure undefined or null strings. 2016-04-10 10:10:31 -04:00
Evert Timberg
d5fd737058 Merge pull request #2206 from nnnick/fix/constraint-width-percent
Allow percentages as the max-width/max-height of the container
2016-04-03 13:18:06 -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
Evert Timberg
3350d5fb13 Refactoring to reduce code size 2016-04-02 09:19:33 -04:00
Evert Timberg
b6d7ceba1c Add initial implementation of constraint percentage width / height support. Added tests for dom sizing methods. 2016-04-01 23:11:01 -04:00
etimberg
d8347039cf Better handling when data.datasets does not exist 2016-03-29 20:10:29 -04:00
Blake Niemyjski
798f643fab Removed the default padding
You should put a style on the container element
2016-03-24 14:07:35 -05:00
etimberg
79f38b49d8 Fix scale merge when the xAxes object is specified but the type is not 2016-03-20 11:12:26 -04:00
Evert Timberg
e090691ef7 Better use of default scale types. 2016-03-19 08:50:50 -04:00
Evert Timberg
04f1e57459 Fix zoom reset 2016-03-15 20:03:28 -04:00
Evert Timberg
f64324e2a8 Merge pull request #2129 from nnnick/fix/2037
Fix animation bug.
2016-03-13 12:29:48 -04:00
Evert Timberg
4fec7dfdbb Fix animation bug. Helpers.findNextWhere no longer returned the index of the item. This causes the wrong animation object to be removed. 2016-03-13 12:24:33 -04:00
100000001
136efeaf4d Moved _model xAlign and yAlign setting to Positioning section and
swapped y and x
2016-03-10 09:05:59 +01:00
100000001
5d2444a5ee Expose yAlign and xAlign as a tooltip option 2016-03-10 09:00:26 +01:00
Evert Timberg
c3f765857e Fix some time rounding problems 2016-03-05 22:58:34 -05:00
Evert Timberg
185ea3939d Take padding into account when determining the model coordinates from event coordinates 2016-02-28 15:32:15 -05:00
Evert Timberg
8d5b3809f6 Fix global font settings 2016-02-28 13:41:17 -05:00
Evert Timberg
431f930c15 Merge pull request #2067 from nnnick/fix/animations
Fix bar chart and doughnut chart animations
2016-02-27 12:38:43 -05:00
Evert Timberg
04e6926961 Fix bar chart and doughnut chart animations 2016-02-27 12:32:20 -05:00
Mathias Küsel
96315dd3c9 Much faster cache clean up 2016-02-27 17:19:33 +01:00
Ville Hämäläinen
0f6e329aaa fix alpha for tooltip colors 2016-02-25 20:17:40 +02:00
Tanner Linsley
50d0c98030 Tooltips now respect stacked ordering
Tooltips detect the stacked scale property now, reversing when
appropriate
2016-02-17 12:42:29 -07:00
Tanner Linsley
ee81d4a804 Reversible Legends
Legends can now be reversed with the `reversed: true` property.
2016-02-17 12:42:09 -07: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
Evert Timberg
4c35bba639 When the last label would overlap with the previously shown label, skip the previously shown one 2016-02-15 10:43:19 -05:00
Evert Timberg
37b3fb5d6c Legend tests + fix minor bug where padding was not taken into account when going down to the next line 2016-02-15 09:23:31 -05:00
Evert Timberg
e589734cbb Title block tests 2016-02-14 18:04:12 -05: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
eb01a0d6f8 Core helpers reference 2016-02-11 23:45:14 -07:00
Tanner Linsley
813d18bd78 Passing All Tests, Updated Dependencies 2016-02-11 23:16:43 -07:00
Tanner Linsley
007d029837 Bundled builds
Possible usages are:

src/Chart.js (umd)
dist/Chart.js (ChartJS)
dist/Chart.min.js (ChartJS minified)
dist/Chart.bundle.js (ChartJS with Moment.js)
dist/Chart.bundle.min.js (ChartJS with Moment.js minified)
2016-02-11 21:29:26 -07:00
Tanner Linsley
f2780bb825 Browserify for easier UMD consumptions and vanilla builds 2016-02-11 20:30:53 -07:00
Robert Becker
e9c18f603d Merged remote-tracking branch 'upstream/v2.0-dev' into v2.0-dev to fix conflicts.
Refactored linear scale fixed step size implementation.
Added nbproject to .gitignore
2016-02-09 12:56:16 +01:00
Evert Timberg
61ca178e2b Write an almost equals function and use it in the linear scale. Added a test for this new function. 2016-02-06 09:38:44 -05:00
Robert Becker
1692b977cd Fixed tab sizing in core.helpers.js 2016-02-05 09:43:20 +01:00
Robert Becker
9a20381af4 Fixed typo in core.helpers.js.
Added ticks.fixedStepSize configuration parameter to force linear scale steps.
2016-02-04 15:20:17 +01:00
Robert Becker
ba6afa7257 Fixed label callbacks adding only a single line instead of multiple lines as stated in docs. 2016-02-04 10:35:53 +01:00
Evert Timberg
dfaf786e1a Always show lines by default. 2016-02-02 20:14:59 -05:00
Evert Timberg
d16f4fc5ce Add default font options 2016-02-01 21:06:54 -05:00
Evert Timberg
0ed39c9fd7 Fix error in math helpers. 2016-01-24 09:21:10 -05:00
Evert Timberg
c312835eb1 Add some tests for scales. Cleaned up some minor bugs in the time scale. Wrote better helpers for helpers.min and helpers.max 2016-01-23 12:44:55 -05: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
Evert Timberg
2d4e2f9889 Properly begin path before drawing line at edge of scale 2016-01-18 21:35:35 -05:00
Mathias Küsel
33303d8d8a Fixes resize() function 2016-01-18 17:46:11 +01:00
Mathias Küsel
c42cb148da Transition optimizations 2016-01-15 13:06:03 +01:00
Mathias Küsel
4f6e86640f Adds a caching system to expensive measureText() function 2016-01-15 13:05:03 +01:00
Mathias Küsel
25d6c2f064 Removes unused context bindings 2016-01-14 18:17:14 +01:00
Evert Timberg
7735371f45 Merge pull request #1893 from mathiask88/updateOptimizations
Add some optimizations to often used functions
2016-01-12 08:22:36 -05:00
Mathias Küsel
977d45a3e0 Add some optimizations to often used functions 2016-01-12 09:47:55 +01:00
Davis Kim
88fc6ecc5c Fix orf/olf being undefined 2016-01-11 18:54:45 -08:00
Evert Timberg
8c68f78ec3 Don't try to use undefined Scale constructors 2016-01-09 11:55:44 -05:00
Evert Timberg
8cfa60c04d Merge pull request #1854 from nnnick/fix/1853
Do not force resize if the size has not changed
2016-01-08 13:16:06 -05:00
Morley Zhi
203bbcec6c Fix a bug where ticks get culled when they don't need to be 2016-01-07 15:57:53 -05:00
Morley Zhi
fe57c8728e Re-enable this; turns out I was mislead by the label spacing 2016-01-07 12:41:42 -05:00
Morley Zhi
ebf695734c Looks like maxTicksLimit already limits gridlines, so restore this 2016-01-07 12:37:13 -05:00
Morley Zhi
f00517643e Always show the last tick 2016-01-07 12:28:09 -05:00
Morley Zhi
84a6eb4a3b Updates
(1) Only limit gridlines when maxTicksLimit is defined, so we don't blow up the tests.
(2) Add a note about running tests in CONTRIBUTING.md
(3) Rebuild files
2016-01-07 11:40:26 -05:00
Morley Zhi
6478f93ded Use ticks.maxTicksLimit to limit gridlines (fixes #1859); use getValueOrDefault for resolving the maxTicksLimit option 2016-01-07 10:44:56 -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
579e322809 Merge pull request #1840 from nnnick/fix/1731-part-2
Better handling of large tooltips
2016-01-02 20:16:37 -05:00
etimberg
a9a003c4c4 clean up helpers file before starting work 2015-12-31 18:41:21 -05:00
Evert Timberg
d9cc1219ce Better handling of large tooltips 2015-12-29 12:58:53 -05:00
Evert Timberg
824f5880fb Merge pull request #1837 from nnnick/fix/1766
Better fitting of scales
2015-12-29 10:16:46 -05:00
Evert Timberg
d6a27d8eb3 Clean up code 2015-12-29 09:56:55 -05:00
Evert Timberg
0c534e1eb8 Fix layout service 2015-12-29 09:07:01 -05:00
Evert Timberg
754268890b Alias the pixel for nicer drawing 2015-12-28 09:37:31 -05:00
Evert Timberg
f2899934db Draw line at edge of scales & update tests 2015-12-28 09:26:59 -05:00
Tanner Linsley
31721a353c Merge pull request #1829 from nnnick/fix/1716-1731
Better tooltip positioning
2015-12-23 10:22:34 -07:00
Tore Lervik
ad67d1ecf8 Fixed bug with skipRatio check not being triggered correctly. 2015-12-23 13:42:24 +01:00
Evert Timberg
f170fd1b8d Improvements to tooltip alignment to avoid the canvas edges 2015-12-22 21:35:23 -05:00
Evert Timberg
a423542775 Fix tests 2015-12-22 09:13:02 -05:00