UNPKG

cione-comp-lib

Version:

`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`

126 lines (125 loc) 4.7 kB
import { __extends } from "../../../../tslib/tslib.es6.mjs"; import LineDraw from "../helper/LineDraw.mjs"; import EffectLine from "../helper/EffectLine.mjs"; import Line from "../helper/Line.mjs"; import Polyline from "../helper/Polyline.mjs"; import EffectPolyline from "../helper/EffectPolyline.mjs"; import LargeLineDraw from "../helper/LargeLineDraw.mjs"; import linesLayout from "./linesLayout.mjs"; import { createClipPath } from "../helper/createClipPathFromCoordSys.mjs"; import ChartView from "../../view/Chart.mjs"; var LinesView = function(_super) { __extends(LinesView2, _super); function LinesView2() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.type = LinesView2.type; return _this; } LinesView2.prototype.render = function(seriesModel, ecModel, api) { var data = seriesModel.getData(); var lineDraw = this._updateLineDraw(data, seriesModel); var zlevel = seriesModel.get("zlevel"); var trailLength = seriesModel.get(["effect", "trailLength"]); var zr = api.getZr(); var isSvg = zr.painter.getType() === "svg"; if (!isSvg) { zr.painter.getLayer(zlevel).clear(true); } if (this._lastZlevel != null && !isSvg) { zr.configLayer(this._lastZlevel, { motionBlur: false }); } if (this._showEffect(seriesModel) && trailLength > 0) { if (!isSvg) { zr.configLayer(zlevel, { motionBlur: true, lastFrameAlpha: Math.max(Math.min(trailLength / 10 + 0.9, 1), 0) }); } } lineDraw.updateData(data); var clipPath = seriesModel.get("clip", true) && createClipPath(seriesModel.coordinateSystem, false, seriesModel); if (clipPath) { this.group.setClipPath(clipPath); } else { this.group.removeClipPath(); } this._lastZlevel = zlevel; this._finished = true; }; LinesView2.prototype.incrementalPrepareRender = function(seriesModel, ecModel, api) { var data = seriesModel.getData(); var lineDraw = this._updateLineDraw(data, seriesModel); lineDraw.incrementalPrepareUpdate(data); this._clearLayer(api); this._finished = false; }; LinesView2.prototype.incrementalRender = function(taskParams, seriesModel, ecModel) { this._lineDraw.incrementalUpdate(taskParams, seriesModel.getData()); this._finished = taskParams.end === seriesModel.getData().count(); }; LinesView2.prototype.eachRendered = function(cb) { this._lineDraw && this._lineDraw.eachRendered(cb); }; LinesView2.prototype.updateTransform = function(seriesModel, ecModel, api) { var data = seriesModel.getData(); var pipelineContext = seriesModel.pipelineContext; if (!this._finished || pipelineContext.large || pipelineContext.progressiveRender) { return { update: true }; } else { var res = linesLayout.reset(seriesModel, ecModel, api); if (res.progress) { res.progress({ start: 0, end: data.count(), count: data.count() }, data); } this._lineDraw.updateLayout(); this._clearLayer(api); } }; LinesView2.prototype._updateLineDraw = function(data, seriesModel) { var lineDraw = this._lineDraw; var hasEffect = this._showEffect(seriesModel); var isPolyline = !!seriesModel.get("polyline"); var pipelineContext = seriesModel.pipelineContext; var isLargeDraw = pipelineContext.large; if (!lineDraw || hasEffect !== this._hasEffet || isPolyline !== this._isPolyline || isLargeDraw !== this._isLargeDraw) { if (lineDraw) { lineDraw.remove(); } lineDraw = this._lineDraw = isLargeDraw ? new LargeLineDraw() : new LineDraw(isPolyline ? hasEffect ? EffectPolyline : Polyline : hasEffect ? EffectLine : Line); this._hasEffet = hasEffect; this._isPolyline = isPolyline; this._isLargeDraw = isLargeDraw; } this.group.add(lineDraw.group); return lineDraw; }; LinesView2.prototype._showEffect = function(seriesModel) { return !!seriesModel.get(["effect", "show"]); }; LinesView2.prototype._clearLayer = function(api) { var zr = api.getZr(); var isSvg = zr.painter.getType() === "svg"; if (!isSvg && this._lastZlevel != null) { zr.painter.getLayer(this._lastZlevel).clear(true); } }; LinesView2.prototype.remove = function(ecModel, api) { this._lineDraw && this._lineDraw.remove(); this._lineDraw = null; this._clearLayer(api); }; LinesView2.prototype.dispose = function(ecModel, api) { this.remove(ecModel, api); }; LinesView2.type = "lines"; return LinesView2; }(ChartView); var LinesView$1 = LinesView; export { LinesView$1 as default };