* @constructor
*/
-var DygraphCanvasRenderer = (function() {
/*global Dygraph:false */
"use strict";
+import * as utils from './dygraph-utils';
+import Dygraph from './dygraph';
+
/**
* @constructor
this.width = dygraph.width_;
// --- check whether everything is ok before we return
- if (!Dygraph.isCanvasSupported(this.element)) {
+ if (!utils.isCanvasSupported(this.element)) {
throw "Canvas is not supported.";
}
// This ensures that we don't overdraw.
// on Android 3 and 4, setting a clipping area on a canvas prevents it from
// displaying anything.
- if (!Dygraph.isAndroid()) {
+ if (!utils.isAndroid()) {
var ctx = this.dygraph_.canvas_ctx_;
ctx.beginPath();
ctx.rect(this.area.x, this.area.y, this.area.w, this.area.h);
// TODO(konigsberg): Compute attributes outside this method call.
var stepPlot = g.getBooleanOption("stepPlot", e.setName);
- if (!Dygraph.isArrayLike(strokePattern)) {
+ if (!utils.isArrayLike(strokePattern)) {
strokePattern = null;
}
var points = e.points;
var setName = e.setName;
- var iter = Dygraph.createIterator(points, 0, points.length,
+ var iter = utils.createIterator(points, 0, points.length,
DygraphCanvasRenderer._getIteratorPredicate(
g.getBooleanOption("connectSeparatedPoints", setName)));
var ctx = e.drawingContext;
ctx.save();
if (stroking) {
- ctx.installPattern(strokePattern);
+ if (ctx.setLineDash) ctx.setLineDash(strokePattern);
}
var pointsOnLine = DygraphCanvasRenderer._drawSeries(
e, pointsOnLine, drawPointCallback, color, pointSize);
if (stroking) {
- ctx.uninstallPattern();
+ if (ctx.setLineDash) ctx.setLineDash([]);
}
ctx.restore();
// Determine which series have specialized plotters.
var plotter_attr = this.dygraph_.getOption("plotter");
var plotters = plotter_attr;
- if (!Dygraph.isArrayLike(plotters)) {
+ if (!utils.isArrayLike(plotters)) {
plotters = [plotters];
}
// this code a bit nasty.
var borderWidth = g.getNumericOption("strokeBorderWidth", setName);
var drawPointCallback = g.getOption("drawPointCallback", setName) ||
- Dygraph.Circles.DEFAULT;
+ utils.Circles.DEFAULT;
var strokePattern = g.getOption("strokePattern", setName);
var drawPoints = g.getBooleanOption("drawPoints", setName);
var pointSize = g.getNumericOption("pointSize", setName);
var stepPlot = g.getBooleanOption("stepPlot", setName);
var points = e.points;
- var iter = Dygraph.createIterator(points, 0, points.length,
+ var iter = utils.createIterator(points, 0, points.length,
DygraphCanvasRenderer._getIteratorPredicate(
g.getBooleanOption("connectSeparatedPoints", setName)));
var prevY = NaN;
var prevYs = [-1, -1];
// should be same color as the lines but only 15% opaque.
- var rgb = Dygraph.toRGB_(color);
+ var rgb = utils.toRGB_(color);
var err_color =
'rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ',' + fillAlpha + ')';
ctx.fillStyle = err_color;
axisY = area.h * axisY + area.y;
var points = sets[setIdx];
- var iter = Dygraph.createIterator(points, 0, points.length,
+ var iter = utils.createIterator(points, 0, points.length,
DygraphCanvasRenderer._getIteratorPredicate(
g.getBooleanOption("connectSeparatedPoints", setName)));
var prevYs = [-1, -1];
var newYs;
// should be same color as the lines but only 15% opaque.
- var rgb = Dygraph.toRGB_(color);
+ var rgb = utils.toRGB_(color);
var err_color =
'rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ',' + fillAlpha + ')';
ctx.fillStyle = err_color;
var point;
while (iter.hasNext) {
point = iter.next();
- if (!Dygraph.isOK(point.y) && !stepPlot) {
+ if (!utils.isOK(point.y) && !stepPlot) {
traceBackPath(ctx, prevX, prevYs[1], pathBack);
pathBack = [];
prevX = NaN;
}
};
-return DygraphCanvasRenderer;
-
-})();
+export default DygraphCanvasRenderer;