Commit Graph

2101 Commits

Author SHA1 Message Date
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
Ben McCann
2f874fde62 Use lowercase for primitives in jsdocs (#6033) 2019-02-11 08:51:39 +01:00
Alfie Hopkin
af464f8a85 Enhance legend label color point when usePointStyle is true (#6006) 2019-02-10 19:04:29 +01:00
Akihiko Kusanagi
8b07cc2f28 Implement scriptable options for points in radar charts (#6041) 2019-02-09 23:07:54 +01:00
Simon Brunel
55128f74c1 Move CSS in a separate file to be CSP-compliant (#6048)
In order to be compatible with any CSP, we need to prevent the automatic creation of the DOM 'style' element and offer our CSS as a separate file that can be manually loaded (`Chart.js` or `Chart.min.js`). Users can now opt-out the style injection using `Chart.platform.disableCSSInjection = true` (note that the style sheet is now injected on the first chart creation).

To prevent duplicating and maintaining the same CSS code at different places, move all these rules in `platform.dom.css` and write a minimal rollup plugin to inject that style as string in `platform.dom.js`. Additionally, this plugin extract the imported style in `./dist/Chart.js` and `./dist/Chart.min.js`.
2019-02-08 19:06:04 +01:00
Ben McCann
c6c4db7906 Simplify and cleanup the scale _autoskip method (#6043) 2019-02-08 07:10:02 +01:00
Jukka Kurkela
cbb7ff7754 Rename addEventListener and removeEventListener (#6046)
Prevent conflict with `window.addEventListener` and `window.removeEventListener` (global scope).
2019-02-06 08:26:53 +01:00
Evert Timberg
945d91aee2 Provide a rectangle getArea implementation for horizontal bars (#6027) 2019-02-04 09:56:38 +01:00
Ben McCann
93d5ac9a31 Remove unused eslint directive (#6040) 2019-02-04 08:19:40 +01:00
Jukka Kurkela
6e9e52afac Fix padding of horizontal axes when labels are rotated (#6021) 2019-02-02 09:46:27 +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
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
Jukka Kurkela
29f7fa23bb Replace tooltip item xLabel and yLabel with label and value (#5996) 2019-01-30 11:41:19 +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
17f6fd2340 Common logic for resolving line element options (#6005) 2019-01-29 14:45:56 +01:00
Jukka Kurkela
05e9627510 Supply correct start param for insertElements in onDataPush (#6008) 2019-01-25 10:27:22 +01:00
Jukka Kurkela
7c0ad5a05b Stop drawing radialLinear scale twice (#6007) 2019-01-23 15:45:01 +01:00
Jukka Kurkela
7bbf3cab5b Return correct label for value type axis (#5920) 2019-01-17 16:04:08 +01:00
Ben McCann
69b4a4c003 Faster date operations (#5982) 2019-01-17 16:01:27 +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
Daniel Ruf
6c49140587 Remove unused parameter in removeResizeListener invocation (#5970) 2019-01-09 14:39:20 +01:00
Jukka Kurkela
9d7eacd251 Fix generateTicks when working with tiny numbers (#5948) 2019-01-09 07:58:13 +01:00
Akihiko Kusanagi
820debf452 Refactoring using helpers.options.resolve (#5965) 2019-01-08 16:50:33 +01:00
Jukka Kurkela
dd3564aee5 Fix title, body and footer alignment inside tooltip (#5925) 2019-01-08 13:37:36 +01:00
Akihiko Kusanagi
934ce241ae Fix fitWithPointLabels calculation in radialLinear scale (#5963) 2019-01-07 12:48:57 +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
CK
a8920f6b62 Fix RangeError exception when merging too many labels (#5936)
Fix "RangeError: Maximum call stack size exceeded" exception when calling `Array.push.apply` with too many items (>125000).
2018-12-31 13:35:51 +01: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
Simon Brunel
2a97ec21c5 Migrate from Browserify to rollup (#5904)
Browserify isn't optimal bundling Chart.js because it adds too many internal wrappers, doesn't handle external/global dependencies and doesn't provide a way to generate ESM builds. Therefore, it seems the right choice to switch to rollup, so move all the build process in `rollup.config.js` and make Gulp to execute `rollup -c`.

We also had to switch to Terser instead of UglifyJS because this last one contains a breaking bug. Note that tests now use the exact same rollup config as our builds (the minified one) to ensure that the bundling and minification steps don't break anything. Finally, replace the `gulp watch` task by `gulp build --watch` to be consistent with the other `unittest` and `docs` watching syntax.
2018-12-14 20:20:43 +01:00
Simon Brunel
f2a9e66b73 Remove innerHTML usage from our DOM platform (#5909)
Prevent "Unsafe assignment to innerHTML" reported by Firefox when submitting addon to their store.
2018-12-13 21:19:42 -05: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