| import { __extends } from "tslib"; | 
| import Path from '../Path.js'; | 
| import { subPixelOptimizeLine } from '../helper/subPixelOptimize.js'; | 
| var subPixelOptimizeOutputShape = {}; | 
| var LineShape = (function () { | 
|     function LineShape() { | 
|         this.x1 = 0; | 
|         this.y1 = 0; | 
|         this.x2 = 0; | 
|         this.y2 = 0; | 
|         this.percent = 1; | 
|     } | 
|     return LineShape; | 
| }()); | 
| export { LineShape }; | 
| var Line = (function (_super) { | 
|     __extends(Line, _super); | 
|     function Line(opts) { | 
|         return _super.call(this, opts) || this; | 
|     } | 
|     Line.prototype.getDefaultStyle = function () { | 
|         return { | 
|             stroke: '#000', | 
|             fill: null | 
|         }; | 
|     }; | 
|     Line.prototype.getDefaultShape = function () { | 
|         return new LineShape(); | 
|     }; | 
|     Line.prototype.buildPath = function (ctx, shape) { | 
|         var x1; | 
|         var y1; | 
|         var x2; | 
|         var y2; | 
|         if (this.subPixelOptimize) { | 
|             var optimizedShape = subPixelOptimizeLine(subPixelOptimizeOutputShape, shape, this.style); | 
|             x1 = optimizedShape.x1; | 
|             y1 = optimizedShape.y1; | 
|             x2 = optimizedShape.x2; | 
|             y2 = optimizedShape.y2; | 
|         } | 
|         else { | 
|             x1 = shape.x1; | 
|             y1 = shape.y1; | 
|             x2 = shape.x2; | 
|             y2 = shape.y2; | 
|         } | 
|         var percent = shape.percent; | 
|         if (percent === 0) { | 
|             return; | 
|         } | 
|         ctx.moveTo(x1, y1); | 
|         if (percent < 1) { | 
|             x2 = x1 * (1 - percent) + x2 * percent; | 
|             y2 = y1 * (1 - percent) + y2 * percent; | 
|         } | 
|         ctx.lineTo(x2, y2); | 
|     }; | 
|     Line.prototype.pointAt = function (p) { | 
|         var shape = this.shape; | 
|         return [ | 
|             shape.x1 * (1 - p) + shape.x2 * p, | 
|             shape.y1 * (1 - p) + shape.y2 * p | 
|         ]; | 
|     }; | 
|     return Line; | 
| }(Path)); | 
| Line.prototype.type = 'line'; | 
| export default Line; |