UNPKG

cione-comp-lib

Version:

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

138 lines (137 loc) 5.33 kB
import { __extends } from "../../../../tslib/tslib.es6.mjs"; import SymbolDraw from "../../chart/helper/SymbolDraw.mjs"; import { parsePercent } from "../../util/number.mjs"; import SeriesData from "../../data/SeriesData.mjs"; import { dataTransform, dataFilter, createMarkerDimValueGetter } from "./markerHelper.mjs"; import MarkerView from "./MarkerView.mjs"; import MarkerModel from "./MarkerModel.mjs"; import { isFunction, map, extend, curry, filter } from "../../../../zrender/lib/core/util.mjs"; import { getECData } from "../../util/innerStore.mjs"; import { getVisualFromData } from "../../visual/helper.mjs"; function updateMarkerLayout(mpData, seriesModel, api) { var coordSys = seriesModel.coordinateSystem; mpData.each(function(idx) { var itemModel = mpData.getItemModel(idx); var point; var xPx = parsePercent(itemModel.get("x"), api.getWidth()); var yPx = parsePercent(itemModel.get("y"), api.getHeight()); if (!isNaN(xPx) && !isNaN(yPx)) { point = [xPx, yPx]; } else if (seriesModel.getMarkerPosition) { point = seriesModel.getMarkerPosition(mpData.getValues(mpData.dimensions, idx)); } else if (coordSys) { var x = mpData.get(coordSys.dimensions[0], idx); var y = mpData.get(coordSys.dimensions[1], idx); point = coordSys.dataToPoint([x, y]); } if (!isNaN(xPx)) { point[0] = xPx; } if (!isNaN(yPx)) { point[1] = yPx; } mpData.setItemLayout(idx, point); }); } var MarkPointView = function(_super) { __extends(MarkPointView2, _super); function MarkPointView2() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.type = MarkPointView2.type; return _this; } MarkPointView2.prototype.updateTransform = function(markPointModel, ecModel, api) { ecModel.eachSeries(function(seriesModel) { var mpModel = MarkerModel.getMarkerModelFromSeries(seriesModel, "markPoint"); if (mpModel) { updateMarkerLayout(mpModel.getData(), seriesModel, api); this.markerGroupMap.get(seriesModel.id).updateLayout(); } }, this); }; MarkPointView2.prototype.renderSeries = function(seriesModel, mpModel, ecModel, api) { var coordSys = seriesModel.coordinateSystem; var seriesId = seriesModel.id; var seriesData = seriesModel.getData(); var symbolDrawMap = this.markerGroupMap; var symbolDraw = symbolDrawMap.get(seriesId) || symbolDrawMap.set(seriesId, new SymbolDraw()); var mpData = createData(coordSys, seriesModel, mpModel); mpModel.setData(mpData); updateMarkerLayout(mpModel.getData(), seriesModel, api); mpData.each(function(idx) { var itemModel = mpData.getItemModel(idx); var symbol = itemModel.getShallow("symbol"); var symbolSize = itemModel.getShallow("symbolSize"); var symbolRotate = itemModel.getShallow("symbolRotate"); var symbolOffset = itemModel.getShallow("symbolOffset"); var symbolKeepAspect = itemModel.getShallow("symbolKeepAspect"); if (isFunction(symbol) || isFunction(symbolSize) || isFunction(symbolRotate) || isFunction(symbolOffset)) { var rawIdx = mpModel.getRawValue(idx); var dataParams = mpModel.getDataParams(idx); if (isFunction(symbol)) { symbol = symbol(rawIdx, dataParams); } if (isFunction(symbolSize)) { symbolSize = symbolSize(rawIdx, dataParams); } if (isFunction(symbolRotate)) { symbolRotate = symbolRotate(rawIdx, dataParams); } if (isFunction(symbolOffset)) { symbolOffset = symbolOffset(rawIdx, dataParams); } } var style = itemModel.getModel("itemStyle").getItemStyle(); var color = getVisualFromData(seriesData, "color"); if (!style.fill) { style.fill = color; } mpData.setItemVisual(idx, { symbol, symbolSize, symbolRotate, symbolOffset, symbolKeepAspect, style }); }); symbolDraw.updateData(mpData); this.group.add(symbolDraw.group); mpData.eachItemGraphicEl(function(el) { el.traverse(function(child) { getECData(child).dataModel = mpModel; }); }); this.markKeep(symbolDraw); symbolDraw.group.silent = mpModel.get("silent") || seriesModel.get("silent"); }; MarkPointView2.type = "markPoint"; return MarkPointView2; }(MarkerView); function createData(coordSys, seriesModel, mpModel) { var coordDimsInfos; if (coordSys) { coordDimsInfos = map(coordSys && coordSys.dimensions, function(coordDim) { var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {}; return extend(extend({}, info), { name: coordDim, ordinalMeta: null }); }); } else { coordDimsInfos = [{ name: "value", type: "float" }]; } var mpData = new SeriesData(coordDimsInfos, mpModel); var dataOpt = map(mpModel.get("data"), curry(dataTransform, seriesModel)); if (coordSys) { dataOpt = filter(dataOpt, curry(dataFilter, coordSys)); } var dimValueGetter = createMarkerDimValueGetter(!!coordSys, coordDimsInfos); mpData.initData(dataOpt, null, dimValueGetter); return mpData; } var MarkPointView$1 = MarkPointView; export { MarkPointView$1 as default };