Commit Graph

748 Commits

Author SHA1 Message Date
Jukka Kurkela
f4792306e0 Remove global from defaults (#6893) 2020-01-03 14:07:38 -05:00
Evert Timberg
e96ad6f249
Remove HTML legend that is mostly unsupported. (#6887)
* Remove HTML legend that is mostly unsupported.

Resolves the discussion in #5070

* Add migration docs
2020-01-03 13:56:11 -05:00
Evert Timberg
4ab6d7cc2a
Enable override settings for the axis border (#6883)
* Enable override settings for the axis border - #4041

Adds two new options to the cartesian axis: `borderColor` and `borderWidth`
which are used to control the border drawn at the edge of the axis area.
If these options are not set, the first grid line settings are used.

* Correct spelling
2020-01-03 13:55:50 -05:00
Jukka Kurkela
03f65d4e7f Linear scale: use suggested limits as defaults (#6892)
* Linear scale: use suggested limits as defaults

* Review update
2020-01-03 09:07:33 -05:00
Ben McCann
f388ed3136 Remove outdated element tests (#6869) 2020-01-01 16:02:17 -05:00
Jukka Kurkela
102a311b44 Rewrite filler (#6795)
Filler plugin is rewritten and test coverage increased
2019-12-31 12:56:15 -05:00
Jukka Kurkela
0b68786c04 Resync metasets array when indices change. (#6864)
* Resync metasets array when indices change.
* Make sure _metasets is initialized
2019-12-28 09:49:34 -05:00
Jukka Kurkela
b83f64b16e Rewrite animation logic (#6845)
* Rewrite animation logic

* Review update 1

* Review update 2

* Review update 3

* Add 'none' to api.md
2019-12-27 17:13:24 -05:00
Ben McCann
fc7a72a8c1 Remove helpers.where and unnecessary calls to helpers.each (#6860)
* Remove unnecessary calls to helpers.each

* Remove where
2019-12-25 08:21:42 -05:00
Ben McCann
2bef1e9f23 Remove executable bit from tests (#6854) 2019-12-20 21:14:41 -05:00
Ben McCann
fc158eea89 Fix log scale autoSkip issues (#6853) 2019-12-20 21:14:21 -05:00
Jukka Kurkela
d60f634ff0 Fix automatic min value of stacked scale. (#6851) 2019-12-19 14:58:23 -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
Ben McCann
e25936648c Optimize tooltip event handler (#6827)
* Optimize tooltip event handler

* Address review comments

* Additional cleanup
2019-12-15 08:26:17 -05:00
Ben McCann
2be634a478 Interactions cleanup (#6825) 2019-12-14 13:09:50 -05:00
Ben McCann
3baade7862 Tests and fixes for data watching (#6831)
* Tests and fixes for data watching
* Remove call to _configure
2019-12-13 23:51:59 -05:00
Ben McCann
6f6005d7b8 Shrink _parsed to match if dataset shrinks (#6826) 2019-12-10 18:57:21 -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
Evert Timberg
5a99dff5f7
Convert src/helpers to use ES6 exports (#6797)
* Canvas helpers exported
* Easing helpers use exports
* Math helper uses export
* Linting
* RTL options use export
* Allow object spread operator
* Rest of helpers use `export`
2019-12-01 13:28:34 -05:00
Evert Timberg
e6cf2fe8b8
Fix broken tests (#6780) 2019-11-22 07:28:31 -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
L M
18e3bc0624 Allow filling above and below with different colors (#6318)
Two colors allowed : first one to fill above the target, second to fill below
Tests added
Docs edited
2019-11-21 13:48:31 -05:00
Jukka Kurkela
1a9db4783c Remove _ctx from Element (#6764)
* Remove _ctx from Element

* Sort
2019-11-19 19:01:32 -05:00
Ben McCann
edbeaac29f Remove _getPixelForOffset (#6763)
* Remove _getPixelForOffset

* Update migration guide
2019-11-19 07:09:50 -05:00
Jukka Kurkela
eb0751c6d0 Point cleanup (#6755)
* remove steppedLine from Point
* Remove tension from Point
* Migration guide, private
2019-11-17 20:28:13 -05:00
Jukka Kurkela
1d84251ded Fix tick range options in tests (#6748) 2019-11-15 13:14:01 -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
931d686adb Float bars: data as objects (#6739)
Float bars can be specified in object data points
2019-11-15 08:40:45 -05:00
Ben McCann
c12ca17e38 Remove unused helpers.canvas.roundedRect (#6734) 2019-11-15 07:49:41 -05:00
Ben McCann
cb95a36b94 Fix value passed to getPixelForTick (#6724) 2019-11-14 07:15:44 -05:00
Jukka Kurkela
76a89f0922 determineDataLimits optimizations (#6695) 2019-11-12 19:24:07 -05:00
Ben McCann
cd8f3846e3 Remove helpers.previousItem/nextItem (#6727) 2019-11-12 19:18:58 -05:00
Ben McCann
09ef08acfe Remove Element _index and _datasetIndex for real this time (#6726)
* Remove Element _index and _datasetIndex for real this time

* Remove unused _datasetIndex
2019-11-12 19:18:29 -05:00
Jukka Kurkela
30cbdc6a4d Convert element.line mock tests to fixtures (#6730) 2019-11-12 13:59:29 -05:00
Jukka Kurkela
d5b6698d8c Performance improvements (#6729) 2019-11-11 18:28:17 -05:00
Jukka Kurkela
91466ae358 Remove remaingin zeroLine* references (#6728) 2019-11-11 12:12:11 -05:00
Ben McCann
49c4761e1b Don't make legend empty when fill is false (#6718) 2019-11-10 20:03:38 -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
Evert Timberg
94afa63450
Remove zeroLineIndex functionality (#6697)
* Remove zeroLineIndex functionality

* Remove docs

* Code review updates
2019-11-07 06:27:49 -05:00
Ben McCann
e42413f3e8 Remove unused model properties (#6691)
* Remove unused model properties
* Add to migration guide
2019-11-05 18:10:44 -05:00
Ben McCann
7a2160461d Remove unused Element methods (#6694) 2019-11-05 18:09:44 -05:00
Jukka Kurkela
72df272234 Early data parsing, stacking by value and support object data (#6576)
* Early data parsing + stacking by value
* Review comments
* review comments
* Remove reduntant parsing
* Couple CC warnings
* Optimize filterBetween
* More migration info
2019-11-04 18:07:01 -05:00
Ben McCann
99811328dc Make all ticks objects (#6645)
Make all ticks object
2019-10-31 18:45:13 -04:00
Ben McCann
eef153de40 Upgrade dependencies (#6662) 2019-10-31 18:03:00 -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
Ben McCann
d932f9c56e Remove deprecated code from index.js (#6623)
Remove deprecated code from index.js
2019-10-28 07:03:39 -04:00
Ben McCann
26dc04d25f Remove deprecated code from time scale and bar chart (#6622)
* Remove deprecated code from bar chart
* Remove deprecated code from time scale
2019-10-27 18:46:28 -04:00
Jukka Kurkela
d6ba91f732 Remove deprecated code from animations and core (#6624) 2019-10-27 18:28:47 -04:00
Jukka Kurkela
5b0a0b039c Time scale: return time from getValueForPixel (#6616) 2019-10-27 16:36:57 -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
Ben McCann
92a4654d9b Remove deprecated helpers (#6607) 2019-10-27 16:33:44 -04:00
Ben McCann
0da237a315 Remove undocumented "custom" feature (#6605)
Remove undocumented "custom" feature
2019-10-27 16:33:21 -04:00
Jukka Kurkela
0de668b46f Fix line / non-numeric-y (#6617) 2019-10-27 15:05:23 -04:00
Jukka Kurkela
29de4aff21 Don't use deprecated options in tests (#6609) 2019-10-27 09:15:53 -04:00
Ben McCann
21da5be3c6 Fix horizontalBar deprecation warnings (#6603)
Fix horizontalBar deprecation warnings
2019-10-26 12:48:48 -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
9ff1c845f2 Bar options should not be defined on scale (#6249)
* Bar options should not be defined on scale

* Improve minimization

* Add tests

* Multiple datasets in test
2019-10-25 12:17:41 -04:00
Ben McCann
f606c23f2f Fix unit determination when autoSkip is enabled (#6583) 2019-10-24 19:21:45 -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
d3860137fe Fix logarighmic test to use correct scale (#6580) 2019-10-19 16:17:57 -04:00
Ben McCann
69a5082bd6 Make autoskip aware of major ticks (#6509)
* Make autoskip aware of major ticks
* Address review comments
* Fix codeclimate warning
* Add test for major and minor tick autoskipping
* Revert change for determining _majorUnit and fix sample
2019-10-19 16:13:04 -04:00
Ben McCann
ce8ee02ccd Reduce indentation by reversing if check (#6497) 2019-09-07 10:56:15 -04:00
Ben McCann
df9e2d00bd Html dom building (#6490)
Replaces #6179 and builds HTML legend strings using dom nodes rather than building up an HTML string directly.
2019-09-07 07:19:17 -04:00
Akihiko Kusanagi
626d8cc714 Draw the rightmost grid line when offsetGridLines is true (#6326)
* Draw the rightmost grid line when offsetGridLines is true

* Refactor based on feedback

* Replace helpers.each with for loop

* Minor refactoring

* Refactor _computeItemsToDraw
2019-07-18 18:25:33 -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
Ben McCann
dd6e007ac1 Add helpers.math._factorize (#6360)
* Add helpers.math._factorize
* Remove duplicate test statement
2019-07-02 18:22:47 -04:00
Ben McCann
d480e11ea0 Render charts only once in time scale tests (#6347) 2019-06-25 18:46:24 -04:00
Akihiko Kusanagi
1c857008a8 Fix getValueForPixel in time scale (#6328)
* Fix getValueForPixel in time scale

* Minor refactoring
2019-06-22 09:56:31 -04:00
Ben McCann
07109b674b [performance] replace helpers.each calls with for-loops (#6301)
* [performance] replace helpers.each calls with for-loops

* Use Math.min/max instead of if statement

* Rename variable
2019-06-22 09:55:46 -04:00
Jukka Kurkela
db6a6d5989 Refactor core.layouts (#6304) 2019-06-19 18:08:07 -04:00
Akihiko Kusanagi
e3e80c9ac6 Support spanGaps in radar charts (#6289)
* Support spanGaps in radar charts

* Minor fixes based on feedback
2019-06-19 07:12:53 -04:00
Akihiko Kusanagi
d81914ea29 Adjust virtical alignment of tooptip items (#6292) 2019-06-19 07:11:48 -04:00
Akihiko Kusanagi
bb5f12ad2a Support object values for bar charts (#6323)
* Support object values for bar charts

* Check if null or undefined

* Refactor category scale code

* Make isNullOrUndef global
2019-06-19 07:10:03 -04:00
Akihiko Kusanagi
9eecdf4da1
Update dataset metadata when axisID changes (#6321) 2019-06-14 11:34:56 +02:00
Akihiko Kusanagi
bf094c59db
Assign unique scale IDs (#6291) 2019-06-09 15:45:12 +08:00
Akihiko Kusanagi
70b32ff20e Support rotation for pointStyle image (#6287) 2019-05-24 09:35:47 +02:00
Akihiko Kusanagi
bd3ab17ef7 Add tests and a sample for radar scriptable line options (#6263)
* Add tests and a sample for radar scriptable line options

* Improve image tests
2019-05-21 18:06:12 -04:00
Jukka Kurkela
abbddd1298 Allow specifying labels in time scale options (#6257) 2019-05-21 13:36:16 +02:00
Akihiko Kusanagi
03a3199306 Treat null as NaN in radialLinear scale (#6282) 2019-05-21 11:50:38 +02:00
Akihiko Kusanagi
cfcdcccc32 Support boundary filling modes in radialLinear scale (#6281) 2019-05-21 11:15:33 +02:00
gwyneblaidd
7d8526f691 Add support for floating bar chart ([start, end]) (#6056) 2019-05-21 10:54:13 +02:00
Akihiko Kusanagi
4f04ee5d77 Keep lines on the left and right edges from being cut (#6285) 2019-05-20 17:23:54 +02:00
Akihiko Kusanagi
200672a787 Apply lineJoin style at the first point in radar charts (#6269) 2019-05-20 09:28:09 +02:00
Akihiko Kusanagi
9482ee55eb Fix point label counting in radialLinear scale (#6280) 2019-05-16 20:34:43 +02:00
Akihiko Kusanagi
e35b8891ce Treat 0 as a valid point label for radial scale (#6279) 2019-05-16 20:17:46 +02:00
Jukka Kurkela
1686ce0aa7 Apply offset regardless of min/max time scale options (#6264) 2019-05-12 16:52:30 +02:00
Ben McCann
707e52a014 Fix determineUnitForFormatting floating point error (#6259) 2019-05-10 15:02:30 +02:00
Jukka Kurkela
2a96d83c2c Implement layers (z-index) for layout items (#6241) 2019-05-09 15:54:05 +02:00
Jukka Kurkela
95b9953922 Fix overlapping auto-generated ticks on time scale (#6115) 2019-05-09 15:42:00 +02:00
Akihiko Kusanagi
feeda5d034 Make legend appearance consistent with chart elements (#5621) 2019-05-09 15:33:19 +02:00
Ben McCann
d6a5ea0d36 Implement per-dataset type (default and per-chart) options (#5999) 2019-05-06 22:52:40 +02:00
Jukka Kurkela
58e154c7da Avoid time related deprecation warnings in tests (#6246) 2019-05-06 22:46:22 +02:00
Jukka Kurkela
ddee91eb9f Fix tooltip title in radar charts (#6238) 2019-05-03 15:04:25 +08:00
Akihiko Kusanagi
4f722ab619 Fix arc size calculation when circumference is under 2PI (#6224) 2019-05-01 18:05:34 +02:00
Jukka Kurkela
1a2a87be3b Fix arc border with circumference over 2*PI (#6215) 2019-04-30 11:34:10 +02:00
Akihiko Kusanagi
0de9fad2b0 Fix tick label rotation and layout issues (#5961) 2019-04-30 08:55:04 +02:00
Akihiko Kusanagi
a2ab311fa5 Use the appropriate time format for auto tick generation (#6182) 2019-04-26 09:43:36 +02:00
Jukka Kurkela
4e349a0149 Fill before drawing lines (#6208) 2019-04-18 22:52:25 +02:00
Jukka Kurkela
89af7b1383 Fix missing tooltip value in radar charts (#6209) 2019-04-18 22:39:52 +02:00
Akihiko Kusanagi
c457b506b8 Normalize angle for index in radialLinear scale (#6177) 2019-04-02 10:25:37 +02:00
Akihiko Kusanagi
14007a912d Fix ticks.minor and ticks.major configuration issues (#6102) 2019-04-02 09:45:34 +02:00
Ben McCann
a43e3b0f08 Specify time scale min and max options in standard manner (#6097) 2019-04-02 09:43:26 +02:00
Dave Kichler
07fae6159e Implement legend.align: 'start', 'center', 'end' (#6141)
New `options.legend.align`config option for controlling alignment of legend blocks in horizontal/vertical legends.
2019-03-23 10:25:17 +01:00
Janelle deMent
b9290a20de Make line options scriptable (#6128) 2019-03-21 09:06:39 +01:00
Akihiko Kusanagi
86ed35446d Fix hover animations and optimize pivot() (#6129) 2019-03-21 09:03:39 +01:00
Ben McCann
4941aa0217 Improvements to helpers.almostWhole (#6120) 2019-03-19 11:42:41 +01:00
Jukka Kurkela
75e76cffe5 Make decimalPlaces private and update CDN links (#6131) 2019-03-13 10:36:10 +01:00
Roman Borovik
f5ff45693e Correct typo in a comment in test/index.js (#6122) 2019-03-11 09:06:50 +01:00
Simon Brunel
87a74f99a1
Fix missing Chart.Chart (deprecated) alias (#6112) 2019-03-06 09:12:29 +01:00
Vincent-Ip
93f4e6e4e8 New weight option for pie and doughnut charts (#5951)
Add functionality to give pie & doughnut datasets a weight attribute, which affects the relative thickness of the dataset when there are multiple datasets in pie & doughnut charts. The default weight of each dataset is 1, providing any other numerical value will allow the pie or doughnut dataset to be drawn with a thickness relative to its default size. 

For example a weight of 2 will allow the dataset to be drawn double its typical dataset thickness. Note that the weight attribute will only affect a pie or doughnut chart if there is more than one visible dataset. Using weight on a pie or doughnut dataset when there is only one dataset on the chart will have no affect.
2019-02-27 23:06:54 +01:00
Jukka Kurkela
0ec3f5569e Add support for per side border width for rectangle (#6077) 2019-02-25 09:03:12 +01:00
Ben McCann
317cae11dc Ignore invalid log scale min and max (#6058) 2019-02-24 10:59:21 +01:00
Jon Rimmer
f3b18373e6 Add onLeave callback to legend (#6059) 2019-02-24 10:58:22 +01:00
Ben McCann
f2b099b835 Initialize date adapter with chart options (#6016) 2019-02-21 08:11:32 +01:00
Ben McCann
3e18708183 Use datetime as default time scale tooltip format (#6019)
Remove the logic that computed an "optimal" tooltip format. Instead, always fallback to the `datetime` adapter format which is more efficient and stable. Additionally, remove the adapter `presets` API, which is not needed anymore.
2019-02-18 19:45:38 +01:00
Jukka Kurkela
5fc934eae1 Fix responsive resize on rtl page (#6063) 2019-02-13 17:08:38 +01:00
Evert Timberg
ef507e11bd Handle inextensible dataset.data array (#6060) 2019-02-11 19:31:26 +01:00
Jukka Kurkela
409fdde3b0 Fix randomly failing tooltip test (#6061)
Use utility to trigger the event in the center of element rather than x/y -based coordinates (its the edge for rectangles)
2019-02-10 15:12:55 +01:00
Akihiko Kusanagi
8b07cc2f28 Implement scriptable options for points in radar charts (#6041) 2019-02-09 23:07:54 +01:00
Evert Timberg
945d91aee2 Provide a rectangle getArea implementation for horizontal bars (#6027) 2019-02-04 09:56:38 +01:00
Akihiko Kusanagi
80a159eb9d Enforce tooltip item label and value to be strings (#6030)
Also update the docs for `xLabel` and `yLabel` to also accept a `number`.
2019-02-01 09:21:53 +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
Ben McCann
72b7a613a6 Fix typo in test utils comment (#6017) 2019-01-28 19:40:07 +01:00
Jukka Kurkela
7c0ad5a05b Stop drawing radialLinear scale twice (#6007) 2019-01-23 15:45:01 +01:00
Jukka Kurkela
8b110fdc51 Handle any element in triggerMouseEvent in tests (#5994) 2019-01-20 08:09:21 +01:00
Jukka Kurkela
d9012d9459 Trigger mouse events at the center of arc (#5991) 2019-01-18 07:46:13 -05:00
Jukka Kurkela
7bbf3cab5b Return correct label for value type axis (#5920) 2019-01-17 16:04:08 +01:00
Evert Timberg
a655da076e Implement scriptable options for points in line charts (#5973) 2019-01-15 09:24:12 +01:00
Evert Timberg
f3dd96779a Implement scriptable options for polar area charts (#5976) 2019-01-13 21:17:27 +01:00
Simon Brunel
8a3eb85928
Implement adapter to abstract date/time features (#5960) 2019-01-11 08:03:28 +01:00
Jukka Kurkela
20c748f90b Fix modifying ticks in afterBuildTicks (#5913) 2019-01-11 07:29:38 +01:00
Evert Timberg
e1ed26f315 Implement scriptable options for doughnut charts (#5966) 2019-01-10 16:00:36 +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
Nodar Nutsubidze
9ecae7c5fb Test default tooltip callbacks for scatter charts (#5967)
This moves the mouse over the drawn point and verifies that there is no title in the tooltip and that the body contains expected content.
2019-01-09 14:37:25 +01:00
Jukka Kurkela
9d7eacd251 Fix generateTicks when working with tiny numbers (#5948) 2019-01-09 07:58:13 +01:00
Jukka Kurkela
dd3564aee5 Fix title, body and footer alignment inside tooltip (#5925) 2019-01-08 13:37:36 +01:00
Simon Brunel
87e44fa360
Cleanup scales export for better import strategy (#5953)
Scales now export their class and associated defaults (`_defaults`), the registration being done globally in `src/chart.js`.
2019-01-05 14:37:54 +01:00
Akihiko Kusanagi
26b7375329 Prevent bezier points from being capped when a data point is off the chart (#5937) 2019-01-05 12:28:15 +01:00
serhii-yakymuk
c51ac8a64a Make animation duration consistent across browsers (#5331) 2019-01-02 16:13:56 +01:00
Akihiko Kusanagi
39b4d61ac2 Fix time scale ticks.reverse issue (#5933) 2019-01-02 16:00:55 +01:00
Jukka Kurkela
918e2c027f Cast getRightValue to number in the bar controller (#5947) 2019-01-02 15:55:27 +01:00
Akihiko Kusanagi
aae05a08da Improve tick generation for linear scales (#5938)
* Improve tick generation for linear scales
* Simplify the tick generation code
* Refactor getTickLimit
2019-01-01 08:38:09 -05:00
Jukka Kurkela
4b6e53a617 Properly calculate space needed by tick label on autoSkip (#5922) 2018-12-21 07:56:53 +01:00
Jukka Kurkela
d7e8b733e3 Add reverse support to time scale (#5927) 2018-12-20 16:08:13 +01:00
Akihiko Kusanagi
d29ec5a485 Add scale.pointLabels.lineHeight and scale.ticks.lineHeight options (#5914) 2018-12-20 09:56:06 +01:00
Jukka Kurkela
c8ce3d2018 Add support for typed arrays (#5905) 2018-12-18 14:49:39 +01:00
Angus Comrie
7e429a8fc6 Add 'middle' interpolation to stepped plots (#5908) 2018-12-18 14:47:24 +01:00
Akihiko Kusanagi
db8f6c38dc Add support for 'inner' border for arc elements (#5841) 2018-12-18 13:58:02 +01:00
Dave Salomon
4fb259e3ac Add support for hiding axis when all linked datasets are hidden (#5885)
When `display: 'auto'`, the axis is visible only if at least one associated dataset is visible.
2018-12-18 09:33:03 +01:00
Simon Brunel
52b9793ba0 Use HTTPS instead of HTTP for URLs supporting it 2018-12-17 07:50:02 +01:00
Steve Gray
69fcba029b Remove autoSkip logic to always display last tick (#5891)
This changes the behavior of `autoSkip` so that it does not force the
display of the last tick. If the last tick can be displayed with equal
spacing to the rest of the ticks, it will be. Otherwise, it is not.
2018-12-09 12:56:51 -05:00
Akihiko Kusanagi
40495ec9d0 Fix the rounding issue of floating point numbers in category scale (#5880)
- Remove `Math.round` in the category scale code
- Add `helpers._alignPixel` to align grid/tick/axis border lines
- Fix grid/tick/axis border line calculation
- Add a check of the width of the axis border
- Refactor core.scale code
2018-12-09 11:34:34 +01:00
Akihiko Kusanagi
7c45fdac0d Remove gaps on the left and right when the axis offset is true (#5884) 2018-12-05 17:59:07 +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
c84d249035 Fix test failures on Windows (#5872) 2018-11-29 21:05:36 +01:00
Akihiko Kusanagi
ecfa7b24c6 Add support for CanvasPattern and CanvasGradient in tooltip (#5869) 2018-11-29 13:52:56 +01:00
Simon Brunel
aa652df240
Deprecate Chart.{Type} classes (#5868)
It looks like these classes are a legacy from version 1 but we actually never promoted their usage. Instead, the regular way to create a chart is to set the type in the config, for example: `new Chart(ctx, {type: 'bar'})`. Some types are actually missing (no `Chart.HorizontalBar` or `Chart.Pie`) but it's also not scalable because it can easily conflict with other classes scoped under the `Chart` namespace.
2018-11-29 07:56:20 +01:00
Akihiko Kusanagi
d6ac7d8a80 Fix cut off tick labels in radial scale (#5848)
Fix the issue that the topmost tick label and the bottom of the chart area are cut off with a radial scale.
2018-11-28 08:35:15 +01:00
Akihiko Kusanagi
1f2fa5c90c Adjust the size of rectRounded/rectRot point to fit pointRadius (#5858)
- Calculate the vertices of the shapes so that they are inscribed in the circle that has the radius of `pointRadius`
- Remove `translate()` and `rotate()` to fix the regression introduced by #5319
- Refactor `rectRounded` for better performance
2018-11-28 07:53:41 +01:00
Akihiko Kusanagi
241499d27f Make getHoverColor() return the original value if it is CanvasGradient (#5865) 2018-11-27 19:54:03 -05:00
Jukka Kurkela
f5437fe548 Fix nearest interaction mode to return all items (#5857)
Return all items that are at the nearest distance to the point and add unit tests for nearest + axis: 'x' and nearest + axis: 'y'
2018-11-27 16:26:41 +01:00
Akihiko Kusanagi
0351a88a63 Add support for gridLines/angleLines borderDash for polarArea/radar charts (#5850) 2018-11-26 08:57:31 +01:00
chtheis
b68341d9b8 Correct calculation of padding in percent (#5846) 2018-11-21 09:35:49 +01:00
Akihiko Kusanagi
bc494e0a81 Use empty labels for tests so as not to be affected by the font width (#5842) 2018-11-21 08:58:39 +01:00
Simon Brunel
75aa44eef6
Upgrade dev dependencies to reduce vulnerabilities (#5840) 2018-11-18 09:33:34 +01:00
Jan Tagscherer
3ea93a09f2 Add regression test for legend layout issue (#5776) 2018-11-14 11:12:57 +01:00
Jan Tagscherer
56b30e1db1 Check pixel values using the pixel proximity matcher (#5833) 2018-11-14 11:08:40 +01:00
Simon Brunel
ae80e14c51
Make bar styling options scriptable (#5780)
The bar `backgroundColor`, `borderColor`, `borderWidth` and `borderSkipped` options are now scriptable (unit tests, docs and a basic sample). Also fix the gulp task that generates the documentation on Windows.
2018-11-12 21:15:37 +01:00
Akihiko Kusanagi
637c2176ec Support decimal stepSize (#5786) 2018-11-12 21:12:09 +01:00
Akihiko Kusanagi
e730f87e15 Fix legend item layout issue (#5816) 2018-11-12 08:57:16 +01:00
Akihiko Kusanagi
f74699a591 Fix offsetGridLine behavior with a single data point (#5609) 2018-11-02 08:44:10 +01:00
Evert Timberg
b3b5c7de4f Ensure that when we check typeof x == 'number' we also check instanceof Number (#5752) 2018-10-22 09:52:05 +02:00
Simon Brunel
2dbf1cd1af
Add support for *.js test fixture config (#5777)
JSON doesn't support functions which are needed to create scriptable options, so implement a very basic method to load a JavaScript file exporting the config in `module.exports`. Also rename test sources (remove the `jasmine.` prefix), cleanup `karma.conf.js` and add an example .js fixture config (bubble radius option).
2018-10-20 11:38:48 +02:00
Alexandre Dubé
5816770e45 Introduce the 'minBarLength' bar option (#5741) 2018-10-18 22:28:56 +02:00
Carl Osterwisch
7a65546629 Fix scale when data is all small numbers (#5723)
* Add test for correct handling of small numbers

* Calculate tick precision for arbitrarily small numbers

* Use scientific notation for very small tick numbers

* Calculate significant digits for exponential tick values
2018-09-16 11:33:48 +02:00
Simon Brunel
91608398b6 Add "point style" image tests
Replace the old style canvas "mock" context checks by image based unit tests which are easier to maintain and allow more flexibility in the drawing logic since we are not testing the context calls but the final painted result.
2018-07-29 22:43:23 +02:00
Colin
352268616b Fix min and max option checks in linear scales (#5209)
When 0, the min and max options was considered not being set, instead we should check for null or undefined.
2018-07-29 18:09:16 +02:00
Akihiko Kusanagi
493eaa8424 Refactor helpers.canvas.drawPoint() (#5623)
Bring ctx.beginPath() before switch and replace ctx.fillRect()/ctx.strokeRect() with ctx.rect()/ctx.fill() to make it consistent with the other styles. It is also preferable that helpers.canvas.roundedRect() include ctx.closePath() at the end because CanvasRenderingContext2D.rect() closes the subpath.

Get rid of ctx.closePath() for cross, crossRot, star, line and dash because these have no closed path shape, and it should be avoided that ctx.closePath() makes a round-trip path.
2018-07-29 11:31:28 +02:00
Joel Hamilton
0ddd0ee16b Enable arbitrary rotation of datapoints (#5319) 2018-07-07 17:54:05 +02:00
Réda Housni Alaoui
387a23df73 Add support for Shadow DOM (#5585)
https://developer.mozilla.org/en-US/docs/Web/API/ShadowRoot/host
2018-07-07 17:52:29 +02:00
Simon Brunel
88308c600c
Enhance the rounded rectangle implementation (#5597)
Use `arcTo` instead of `quadraticCurveTo` (both methods have the same compatibility level) because it generates better results when the final rect is a circle but also when it's actually a rectangle and not a square. This change is needed by the datalabels plugin where the user can configure the `borderRadius` and thus generate circle from a rounded rectangle.
2018-06-26 17:58:32 +02:00
Ben McCann
da3aa68f38 Restore original styles when removing hover (#5570)
Refactor `updateElement` and `removeHoverStyle` and fix tests.
2018-06-26 08:56:53 +02:00
Shayne Linhart
a0a195f353 Added 'angle' option to Polar Charts (#5279)
* added 'angle' option to polar charts. image comparison test is work in progress; not currently passing

* removed unnecessary variable assignment

* code cleanup based on PR; for 'angle' option on polarCharts

* Made polar chart image comparison test pass by removing debug flag. Also explicitly marked _computeAngle as private.

* Removed visibleCount computation in polar chart

* split out code related to updating the radius in polar chart's update function, into it's own 'updateRadius' function

* made updateRadius method private

* fix linting error

* updated polar charts to read custom angles from "chart.options.elements.arc.angle" instead of "chart.options.angle"
2018-06-17 11:56:57 -04:00
Matt Haff
8198d760bb Handle '\n' as new line in tooltips (#5521) 2018-06-05 09:14:37 +02:00
andi-b
73b8ceeb35 Fix responsive in IE11 with padding as percentage (#4620)
When the chart is responsive to the parent container, the calculations for padding assumes that the figure is in pixels so that 20% is taken to be 20 (pixels), which results in the chart exceeding the parent container. This appears to be an IE11 only issue.
2018-04-22 20:32:42 +02:00
Evert Timberg
85169c5603
Proper tick position for right positioned axis (#5401)
* Proper tick position for right positioned axis
* Test for tick mark drawing
2018-04-11 18:16:32 -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
Evert Timberg
9fbac88938 Add ticks.precision option to linear scale. (#4841)
If defined and `stepSize` is not specified, the step size will be rounded to this many decimal places.
2018-04-01 18:56:45 +02:00
jcopperfield
c2a5b12376 Bugfix: Improve polyfill function of log10 to return whole powers of 10 (#5275)
* Bugfix: Improve polyfill function of log10 to return whole powers of 10
        as integer values, as it caused endless loop in IE11 in the tick
        creation loop.

* Compare floating-point numbers directly instead of using unnecessary division.
2018-02-20 18:44:01 -05:00
Evert Timberg
26c44cf7ab
Treat negative values in doughnut charts as positive (#5165) 2018-01-21 12:12:33 -05:00
Loïc Bourgois
6d58a6a8a8 Add tests related to showLines for controller.scatter (#5150) 2018-01-16 10:29:49 +01:00
Ben McCann
37ec8384d7 Format the label in the time scale tooltip (#5095) 2018-01-13 10:39:16 -05: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