Skip to content

Commit 5e47117

Browse files
authored
Merge pull request #14 from chartjs/release/0.1.3
0.1.3 release
2 parents 6f219db + f657435 commit 5e47117

File tree

3 files changed

+43
-30
lines changed

3 files changed

+43
-30
lines changed

Chart.Zoom.js

Lines changed: 39 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/*!
22
* Chart.Zoom.js
33
* http://chartjs.org/
4-
* Version: 0.1.2
4+
* Version: 0.1.3
55
*
66
* Copyright 2016 Evert Timberg
77
* Released under the MIT license
@@ -20,14 +20,14 @@ Chart = typeof(Chart) === 'function' ? Chart : window.Chart;
2020
var helpers = Chart.helpers;
2121

2222
// Take the zoom namespace of Chart
23-
Chart.Zoom = Chart.Zoom || {};
23+
var zoomNS = Chart.Zoom = Chart.Zoom || {};
2424

2525
// Where we store functions to handle different scale types
26-
var zoomFunctions = Chart.Zoom.zoomFunctions = Chart.Zoom.zoomFunctions || {};
27-
var panFunctions = Chart.Zoom.panFunctions = Chart.Zoom.panFunctions || {};
26+
var zoomFunctions = zoomNS.zoomFunctions = zoomNS.zoomFunctions || {};
27+
var panFunctions = zoomNS.panFunctions = zoomNS.panFunctions || {};
2828

2929
// Default options if none are provided
30-
var defaultOptions = Chart.Zoom.defaults = {
30+
var defaultOptions = zoomNS.defaults = {
3131
pan: {
3232
enabled: true,
3333
mode: 'xy',
@@ -93,7 +93,7 @@ function doZoom(chartInstance, zoom, center) {
9393
center = {
9494
x: (ca.left + ca.right) / 2,
9595
y: (ca.top + ca.bottom) / 2,
96-
}
96+
};
9797
}
9898

9999
var zoomOptions = chartInstance.options.zoom;
@@ -133,16 +133,16 @@ function panTimeScale(scale, delta) {
133133
}
134134

135135
function panNumericalScale(scale, delta) {
136-
var options = scale.options;
136+
var tickOpts = scale.options.ticks;
137137
var start = scale.start,
138138
end = scale.end;
139139

140-
if (options.ticks.reverse) {
141-
options.ticks.max = scale.getValueForPixel(scale.getPixelForValue(start) - delta);
142-
options.ticks.min = scale.getValueForPixel(scale.getPixelForValue(end) - delta);
140+
if (tickOpts.reverse) {
141+
tickOpts.max = scale.getValueForPixel(scale.getPixelForValue(start) - delta);
142+
tickOpts.min = scale.getValueForPixel(scale.getPixelForValue(end) - delta);
143143
} else {
144-
options.ticks.min = scale.getValueForPixel(scale.getPixelForValue(start) - delta);
145-
options.ticks.max = scale.getValueForPixel(scale.getPixelForValue(end) - delta);
144+
tickOpts.min = scale.getValueForPixel(scale.getPixelForValue(start) - delta);
145+
tickOpts.max = scale.getValueForPixel(scale.getPixelForValue(end) - delta);
146146
}
147147
}
148148

@@ -176,32 +176,32 @@ function positionInChartArea(chartInstance, position) {
176176
}
177177

178178
// Store these for later
179-
Chart.Zoom.zoomFunctions['category'] = zoomIndexScale;
180-
Chart.Zoom.zoomFunctions['time'] = zoomTimeScale;
181-
Chart.Zoom.zoomFunctions['linear'] = zoomNumericalScale;
182-
Chart.Zoom.zoomFunctions['logarithmic'] = zoomNumericalScale;
183-
Chart.Zoom.panFunctions['category'] = panIndexScale;
184-
Chart.Zoom.panFunctions['time'] = panTimeScale;
185-
Chart.Zoom.panFunctions['linear'] = panNumericalScale;
186-
Chart.Zoom.panFunctions['logarithmic'] = panNumericalScale;
179+
zoomNS.zoomFunctions.category = zoomIndexScale;
180+
zoomNS.zoomFunctions.time = zoomTimeScale;
181+
zoomNS.zoomFunctions.linear = zoomNumericalScale;
182+
zoomNS.zoomFunctions.logarithmic = zoomNumericalScale;
183+
zoomNS.panFunctions.category = panIndexScale;
184+
zoomNS.panFunctions.time = panTimeScale;
185+
zoomNS.panFunctions.linear = panNumericalScale;
186+
zoomNS.panFunctions.logarithmic = panNumericalScale;
187187

188188
// Chartjs Zoom Plugin
189-
var ZoomPlugin = Chart.PluginBase.extend({
189+
var zoomPlugin = {
190190
beforeInit: function(chartInstance) {
191191
var node = chartInstance.chart.ctx.canvas;
192192
var options = chartInstance.options;
193-
var panThreshold = helpers.getValueOrDefault(options.pan ? options.pan.threshold : undefined, Chart.Zoom.defaults.pan.threshold);
193+
var panThreshold = helpers.getValueOrDefault(options.pan ? options.pan.threshold : undefined, zoomNS.defaults.pan.threshold);
194194

195195
var wheelHandler = function(e) {
196-
if (e.wheelDelta > 0) {
196+
if (e.deltaY < 0) {
197197
doZoom(chartInstance, 1.1);
198198
} else {
199199
doZoom(chartInstance, 0.909);
200200
}
201201
};
202202
chartInstance._wheelHandler = wheelHandler;
203203

204-
node.addEventListener('mousewheel', wheelHandler);
204+
node.addEventListener('wheel', wheelHandler);
205205

206206
if (Hammer) {
207207
var mc = new Hammer.Manager(node);
@@ -255,6 +255,19 @@ var ZoomPlugin = Chart.PluginBase.extend({
255255
}
256256
},
257257

258+
beforeDatasetsDraw: function(chartInstance) {
259+
var ctx = chartInstance.chart.ctx;
260+
var chartArea = chartInstance.chartArea;
261+
ctx.save();
262+
ctx.beginPath();
263+
ctx.rect(chartArea.left, chartArea.top, chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);
264+
ctx.clip();
265+
},
266+
267+
afterDatasetsDraw: function(chartInstance) {
268+
chartInstance.chart.ctx.restore();
269+
},
270+
258271
destroy: function(chartInstance) {
259272
var node = chartInstance.chart.ctx.canvas;
260273

@@ -268,8 +281,8 @@ var ZoomPlugin = Chart.PluginBase.extend({
268281
mc.remove('panend');
269282
}
270283
}
271-
});
284+
};
272285

273-
Chart.pluginService.register(new ZoomPlugin());
286+
Chart.pluginService.register(zoomPlugin);
274287

275288
},{"chart.js":1,"hammerjs":1}]},{},[2]);

Chart.Zoom.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "Chart.Zoom.js",
33
"description": "Simple HTML5 charts using the canvas element.",
4-
"version": "0.1.2",
4+
"version": "0.1.3",
55
"license": "MIT",
66
"main": "src/chart.zoom.js",
77
"repository": {
@@ -26,7 +26,7 @@
2626
"vinyl-source-stream": "^1.1.0"
2727
},
2828
"dependencies": {
29-
"chart.js": "^2.1.0",
29+
"chart.js": "^2.1.5",
3030
"hammerjs": "^2.0.8"
3131
}
3232
}

0 commit comments

Comments
 (0)