UNPKG

light-chart

Version:

Charts for mobile visualization.

69 lines (61 loc) 1.49 kB
const Util = require('../util/common'); const Element = require('./element'); class Shape extends Element { _initProperties() { this._attrs = { zIndex: 0, visible: true, destroyed: false, isShape: true, attrs: {} }; } getType() { return this._attrs.type; } drawInner(context) { const self = this; const attrs = self.get('attrs'); self.createPath(context); const originOpacity = context.globalAlpha; if (self.hasFill()) { const fillOpacity = attrs.fillOpacity; if (!Util.isNil(fillOpacity) && fillOpacity !== 1) { context.globalAlpha = fillOpacity; context.fill(); context.globalAlpha = originOpacity; } else { context.fill(); } } if (self.hasStroke()) { const lineWidth = attrs.lineWidth; if (lineWidth > 0) { const strokeOpacity = attrs.strokeOpacity; if (!Util.isNil(strokeOpacity) && strokeOpacity !== 1) { context.globalAlpha = strokeOpacity; } context.stroke(); } } } getBBox() { let bbox = this._attrs.bbox; if (!bbox) { bbox = this.calculateBox(); if (bbox) { bbox.x = bbox.minX; bbox.y = bbox.minY; bbox.width = bbox.maxX - bbox.minX; bbox.height = bbox.maxY - bbox.minY; } this._attrs.bbox = bbox; } return bbox; } calculateBox() { return null; } createPath() {} } module.exports = Shape;