X-Git-Url: https://adrianiainlam.tk/git/?a=blobdiff_plain;ds=sidebyside;f=src%2Fextras%2Fsynchronizer.js;h=bf5b6f34b1177663da39d4ef4c71d33e3496b1b4;hb=bedc5cd39283fe07b9e4125c4e397b14571fed15;hp=bd7505065bafb3495d9a7a7658631b36e7ec1288;hpb=87cdddc79f32ca61d0843c23fa8847595a7e74d4;p=dygraphs.git diff --git a/src/extras/synchronizer.js b/src/extras/synchronizer.js index bd75050..bf5b6f3 100644 --- a/src/extras/synchronizer.js +++ b/src/extras/synchronizer.js @@ -35,7 +35,14 @@ /* global Dygraph:false */ 'use strict'; -Dygraph.synchronize = function(/* dygraphs..., opts */) { +var Dygraph; +if (window.Dygraph) { + Dygraph = window.Dygraph; +} else if (typeof(module) !== 'undefined') { + Dygraph = require('../dygraph'); +} + +var synchronize = function(/* dygraphs..., opts */) { if (arguments.length === 0) { throw 'Invalid invocation of Dygraph.synchronize(). Need >= 1 argument.'; } @@ -107,7 +114,7 @@ Dygraph.synchronize = function(/* dygraphs..., opts */) { if (!prevCallbacks[j]) { prevCallbacks[j] = {}; } - for (var k in callBackTypes) { + for (var k = callBackTypes.length - 1; k >= 0; k--) { prevCallbacks[j][callBackTypes[k]] = dygraphs[j].getFunctionOption(callBackTypes[k]); } } @@ -162,7 +169,7 @@ function attachZoomHandlers(gs, syncOpts, prevCallbacks) { for (var j = 0; j < gs.length; j++) { if (gs[j] == me) { if (prevCallbacks[j] && prevCallbacks[j].drawCallback) { - prevCallbacks[j].drawCallback(me, initial); + prevCallbacks[j].drawCallback.apply(this, arguments); } continue; } @@ -170,7 +177,7 @@ function attachZoomHandlers(gs, syncOpts, prevCallbacks) { } block = false; } - }, false /* no need to redraw */); + }, true /* no need to redraw */); } } @@ -187,7 +194,7 @@ function attachSelectionHandlers(gs, prevCallbacks) { for (var i = 0; i < gs.length; i++) { if (me == gs[i]) { if (prevCallbacks[i] && prevCallbacks[i].highlightCallback) { - prevCallbacks[i].highlightCallback(event, x, points, row, seriesName); + prevCallbacks[i].highlightCallback.apply(this, arguments); } continue; } @@ -205,7 +212,7 @@ function attachSelectionHandlers(gs, prevCallbacks) { for (var i = 0; i < gs.length; i++) { if (me == gs[i]) { if (prevCallbacks[i] && prevCallbacks[i].unhighlightCallback) { - prevCallbacks[i].unhighlightCallback(event); + prevCallbacks[i].unhighlightCallback.apply(this, arguments); } continue; } @@ -213,8 +220,10 @@ function attachSelectionHandlers(gs, prevCallbacks) { } block = false; } - }); + }, true /* no need to redraw */); } } +Dygraph.synchronize = synchronize; + })();