Merry Christmas everyone! I have a gift: the long-awaited 2.0.0 release candidate for you to try out.
It's been just over two years since the dygraphs 1.1.0 release. There have been nearly 300 commits since then and a lot has changed. In particular, dygraphs has gone from its own home-grown module and testing system towards something that looks much more like a modern JS library. You can get install it via NPM, use it with webpack and even get TypeScript type definitions for it.
Since so much has changed, I'd appreciate help testing, particularly on Windows. Please check the list of breaking changes before filing bugs. At the least, every user will need to include a different file (dygraph.js or dygraph.min.js) and the new dygraph.css file. If you do find regressions, please mention that you tried the 2.0.0 release candidate in your issue report.
Breaking changes:
- JS files were renamed to dygraph.js and dygraph.min.js.
- There's now a dygraph.css file that you must include.
- Dropped support for OldIE and other non-standard browsers. dygraphs works in IE11. I'm not sure about IE9 and IE10.
- Double-click to unzoom zooms all the way out (and ignores valueRange).
- Dropped old-style per-axis/per-series options.
New features:
- Add a legendFormatter option #683
- `this` is the Dygraph object in all callbacks
- pass through (row, col) to valueFormatter
- Option to not sync range in extras/synchronizer.js
- Additional options for styling the range selector
- getRowForX method
- setVisibility can set the visibility of multiple series at once.
- crosshair plugin extra
- rebase/straw broom plugin (#590)
- highlightSeriesBackgroundColor option
- yAxisExtremes() method.
- Passing strings in native format now throws. (Previously it kinda sorta worked.)
Bug fixes:
- Selections are always cleared with animations
- synchronizer calls previously-set callbacks
- synchronizer only syncs when graphs are ready
- Reset on synchronized graphs failed #524
- fix to improve synchronizer performance #658
- binary search bug fix in synchronizer
- Fix range selection when chart is located inside fullscreen element #576
- fillAlpha can be set per-series when fillGraph is set.
- xRangePad was ignored on unzoom #657
- Allow selected points where canvas-y coordinate is 0 (#692)
- Using valueRange with Logscale and yRangePad has unexpected results #661
- With "drawGapEdgePoints", unwanted point often drawn at beginning of chart #745
Other user-visible changes:
- “legend: follow” positioning changes
Internal refactors:
- Code moved into a “src/“ directory
- Tests use Mocha instead of jstd
- dygraphs is split into ES6 modules and uses some ES6 features (e.g. arrows and destructuring).
- dygraphs is built using babel & browserify
- Code coverage is tracked continuously
- Bundle size is now tracked continuously