Skip to content

Commit bd46428

Browse files
authored
Use new start and stop plugin hooks (#411)
1 parent 01d9342 commit bd46428

File tree

2 files changed

+49
-39
lines changed

2 files changed

+49
-39
lines changed

samples/zoom.html

Lines changed: 26 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@
2222
<canvas id="canvas"></canvas>
2323
</div>
2424
</div>
25+
<button onclick="window.myScatter.destroy()">Destroy</button>
26+
<button onclick="window.myScatter.destroy(); window.onload(); setButtonText();">Reload</button>
27+
<button id="enablePlugin" onclick="managePlugin(); setButtonText()">Enable</button>
2528
<script>
2629
var randomScalingFactor = function() {
2730
return (Math.random() > 0.5 ? 1.0 : -1.0) * Math.round(Math.random() * 100);
@@ -132,16 +135,7 @@
132135
}
133136
},
134137
plugins: {
135-
zoom: {
136-
pan: {
137-
enabled: true,
138-
mode: 'xy'
139-
},
140-
zoom: {
141-
enabled: true,
142-
mode: 'xy'
143-
}
144-
}
138+
zoom: false
145139
},
146140
onClick: function(e) {
147141
// eslint-disable-next-line no-alert
@@ -150,9 +144,29 @@
150144
}
151145
});
152146
};
147+
148+
window.managePlugin = function() {
149+
if (typeof window.myScatter.options.plugins.zoom === 'boolean') {
150+
window.myScatter.options.plugins.zoom = {
151+
pan: {
152+
enabled: true,
153+
mode: 'xy'
154+
},
155+
zoom: {
156+
enabled: true,
157+
mode: 'xy'
158+
}
159+
};
160+
} else {
161+
window.myScatter.options.plugins.zoom = false;
162+
}
163+
window.myScatter.update();
164+
};
165+
166+
window.setButtonText = function() {
167+
document.getElementById('enablePlugin').innerText = window.myScatter.options.plugins.zoom ? 'Disable' : 'Enable';
168+
};
153169
</script>
154-
<button onclick="window.myScatter.destroy()">Destroy</button>
155-
<button onclick="window.myScatter.destroy(); window.onload()">Reload</button>
156170
</body>
157171

158172
</html>

src/plugin.js

Lines changed: 23 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -363,32 +363,7 @@ var zoomPlugin = {
363363
}
364364
},
365365

366-
afterInit: function(chartInstance) {
367-
368-
chartInstance.resetZoom = function() {
369-
storeOriginalOptions(chartInstance);
370-
var originalOptions = chartInstance.$zoom._originalOptions;
371-
helpers.each(chartInstance.scales, function(scale) {
372-
373-
var options = scale.options;
374-
if (originalOptions[scale.id]) {
375-
options.min = originalOptions[scale.id].min;
376-
options.max = originalOptions[scale.id].max;
377-
} else {
378-
delete options.min;
379-
delete options.max;
380-
}
381-
});
382-
chartInstance.update();
383-
};
384-
385-
},
386-
387-
beforeUpdate: function(chart, args, options) {
388-
resolveOptions(chart, options);
389-
},
390-
391-
beforeInit: function(chartInstance, args, pluginOptions) {
366+
start: function(chartInstance, args, pluginOptions) {
392367
chartInstance.$zoom = {
393368
_originalOptions: {}
394369
};
@@ -601,6 +576,27 @@ var zoomPlugin = {
601576

602577
chartInstance._mc = mc;
603578
}
579+
580+
chartInstance.resetZoom = function() {
581+
storeOriginalOptions(chartInstance);
582+
var originalOptions = chartInstance.$zoom._originalOptions;
583+
helpers.each(chartInstance.scales, function(scale) {
584+
585+
var scaleOptions = scale.options;
586+
if (originalOptions[scale.id]) {
587+
scaleOptions.min = originalOptions[scale.id].min;
588+
scaleOptions.max = originalOptions[scale.id].max;
589+
} else {
590+
delete scaleOptions.min;
591+
delete scaleOptions.max;
592+
}
593+
});
594+
chartInstance.update();
595+
};
596+
},
597+
598+
beforeUpdate: function(chart, args, options) {
599+
resolveOptions(chart, options);
604600
},
605601

606602
beforeDatasetsDraw: function(chartInstance) {
@@ -647,7 +643,7 @@ var zoomPlugin = {
647643
}
648644
},
649645

650-
destroy: function(chartInstance) {
646+
stop: function(chartInstance) {
651647
if (!chartInstance.$zoom) {
652648
return;
653649
}

0 commit comments

Comments
 (0)