Dygraphs Versions Save

Interactive visualizations of time series using JavaScript and the HTML canvas tag

v2.2.1

1 year ago

Future incompatibilities

  • window.smoothPlotter will not be set by extras/smooth-plotter.js any more RSN

New features

  • Permit initialising with [] as “no data yet” indicator (#597)
  • The modularisation of the test setup also allows stable access to exported functions (e.g. Dygraph._require('dygraphs/src/dygraph-utils.js').numberValueFormatter) which makes writing one’s own value formatters easier (as usual, proceed with care, exports with an underscore are internal); see https://dygraphs.com/tests/exported-symbols.html for the exposed surface
  • Provide Dygraph.onDOMready(cb) as lightweight jQuery(cb)/… alternative, to keep the demos/tests self-contained

Bugfixes

  • Fix synchroniser not calling user’s drawCallback when blocked (#953) plus do not redraw unnecessarily
  • Documentation fixes and improvements including self-checks where possible
  • Fix missing legend for x == -1 (#1002)
  • Allow ES6-importing the extras (#848) (#989) (#1009)
  • Fix broken zoom also in the drawing test (same as #611/#953)
  • Resetting panEdgeFraction now works
  • Fix tests/unboxed-spark regression caused by PR #936
  • Synchroniser doesn’t force x axis range if unzoomed (#956)

Other user-visible changes

  • Fix issue #611 in the drawing demo gallery (#953)
  • jq is now also required to build
  • Fix typos, wordings, apostrophes, etc.
  • Export pickDateTickGranularity so overriding dateTicker is easier
  • Error bars are now properly called high/low bands (#1004), but the options stay the same for compatibility
  • Document annotations xval for Date better (#970)
  • Document more strongly that series labels must be unique (#960)
  • Remove references to nōn-existing yAxisLabelWidth option
  • Fix jsFiddle links from gallery

Internal refactors/fixes

  • Shrink tests.js source map and make its build reproducible on Debian
  • tests/resizable.html exposes the graph object, for quick F12 in-browser use
  • Generate versions.html and release notes from new top-level CHANGES.md
  • Modularise dygraphs/tests setup so we can now also test the minified prod css/js (#1028)
  • Generate stable orig tarballs for releases ourselves (we still use the NPM ones for binary tarballs)
  • Less fragility with arrow function this rebinding check

v2.2.0

1 year ago

This is the first “full” release after v2.1.0 with the following news:

Breaking changes

  • Stop parsing the deprecated 8-digit ‘YYYYMMDD’ date format (#984) (#985) (#1023)
  • GWT “support” is no longer pertinent as we cannot recompile the binary JAR; the latter is still available from the website for now

New features

  • Add option to colour the range selector’s veil (#856)
  • Add strokeStyle option to crosshair plugin (#955)
  • Support DocumentFragment as a result from a legendFormatter function (#958) (#959)
  • Add data index to legendFormatter data (#965)
  • Implement #RRGGBB/#RRGGBBAA hex colour parsing
  • Make animateBackgroundFade into an option
  • Add new resizable option using ResizeObserver on maindiv + CSS
  • Add offset config for legend div in follow mode (#946)

Bugfixes

  • Fix duplicate annotation when having duplicate points (#826)
  • Make sure that canvasx and canvasy properties are initialised from the start (#896)
  • Fix issue #781 when the y range is zero (#909)
  • Synchroniser now calls highlightCallback (#935)
  • Fix drawAxes to allow one of two y axes to be drawn (#936)
  • LEGEND: Don’t show y if value is undefined (#853) (#947)
  • Fixed “Cannot read property 'length' of undefined” issue (#962) (#963)
  • Two fixes in the calculations of pinch-zoom (#990)
  • Fix for double paint of grid of x-axis (#1007)
  • Fix number of days in a year (#1012)
  • Fix labelsKMB and labelsKMG2 (#571) (#994) (#1022)
  • Fix label position in onmouseover legend mode was never updated
  • Fix several cases of mispositioning/missizing by enabling elements before using offsetWidth etc.
  • Make it possible to use logscale (and sigma, wilsonInterval) per-axis (#986)

Other user-visible changes

  • Documentation is now shipped (mostly self-contained) in the release
  • Tests that use Google JSAPI are now marked ⚠ and no other external content is loaded anywhere
  • Calculate legend positioning relative to closest data point (#1013)
  • Add missing documentation about annotations xval option (#992)
  • source mapping URLs are now correct (#1027)
  • Ship ES5 versions of extras (#952), use them in examples
  • Fix documentation/website HTML/CSS/JS bugs (#979) (#1008)
  • On the website, external links are now clearly labelled
  • The documentation and website now have browsable subdirectories by manually generated directory index files
  • Link to UNPKG as CDN as well (to keep neutral; use of CDNs in websites violates the EU-GDPR)
  • Most issues with right-to-left languages should now be fixed (#1019)
  • Document that Dygraph will misbehave if the main div has padding

Internal refactors/fixes

  • Use link href, not link src (#904)
  • Add missing semicolon in externs (#964)
  • Large build system improvements relying in large parts on Debian and GHA
  • Full licence review as part of uploading to Debian (#1024) (#1025) (#1029); drop embedded code copies
  • Fix some JSDoc warnings
  • Update to contemporary versions of Python 3, jQuery, Babel, etc.
  • Add copies of design documents that were previously only available on Google Docs or part of GitHub issues to offline documentation
  • Nuke useless semicola after function declaration bodies
  • Fix closure type annotation in hairlines.js
  • Remove already commented-out obsolete, or redundant, code

v2.1.2

1 year ago

Intermediate release to test the current development state and the releasing process, also starting packaging for the Debian operating system. The full changes will be listed with the 2.2.0 release.

As it is “in beta state”, this release was pushed to NPM with the next tag, not the latest tag, so you’ll have to pass that or the explicit version number to install.

v2.1.0

6 years ago

New features

  • Double click event can be captured and cancelled by plugins (#840)
  • setAnnotations’ second parameter is now an optional boolean (#851)
  • Add pixelRatio option, which may allow improved performance on smaller screens by controlling the canvas’ pixel ratio (#877)
  • x axis label and tick logic can now operate at millisecond-level granularity (#893)

Bug fixes

  • Repair a bug in “Custom interaction models” demo (#825)

Internal refactors/fixes

  • Fix various spelling mistakes (#844)
  • Fix a couple of type signatures in dygraph-externs.js (#859)

v2.0.0

7 years ago

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 old IE 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 and browserify
  • Code coverage is tracked continuously
  • Bundle size is now tracked continuously

v1.1.0

9 years ago
  • dygraphs is now “retina” compatible.
  • Dramatically improved performance for filled charts (i.e. fillGraph)
  • More sensible date ticks: “Jan 08” → “Jan 2008”, “29Jan” → “29 Jan”
  • Using a non-existent option now throws (with dygraph-combined-dev.js)
  • x-axis log scales
  • The labelsUTC option forces UTC formatting for all labels.
  • The new DataHandler system allows for more flexibility in data loading.
  • dygraphs has shrunk, because we moved some stuff into “extras” (133 KiB → 122 KiB)

This will be the last major release to support browsers without a native implementation. See blog post for more details.