1 line
46 KiB
JSON
1 line
46 KiB
JSON
{"ast":null,"code":"import \"core-js/modules/es.number.to-fixed.js\";\nimport \"core-js/modules/es.array.fill.js\";\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport SeriesData from '../../data/SeriesData.js';\nimport * as numberUtil from '../../util/number.js';\nimport * as markerHelper from './markerHelper.js';\nimport LineDraw from '../../chart/helper/LineDraw.js';\nimport MarkerView from './MarkerView.js';\nimport { getStackedDimension } from '../../data/helper/dataStackHelper.js';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem.js';\nimport { getECData } from '../../util/innerStore.js';\nimport MarkerModel from './MarkerModel.js';\nimport { isArray, retrieve, retrieve2, clone, extend, logError, merge, map, curry, filter, isNumber } from 'zrender/lib/core/util.js';\nimport { makeInner } from '../../util/model.js';\nimport { getVisualFromData } from '../../visual/helper.js';\nvar inner = makeInner();\n\nvar markLineTransform = function markLineTransform(seriesModel, coordSys, mlModel, item) {\n var data = seriesModel.getData();\n var itemArray;\n\n if (!isArray(item)) {\n // Special type markLine like 'min', 'max', 'average', 'median'\n var mlType = item.type;\n\n if (mlType === 'min' || mlType === 'max' || mlType === 'average' || mlType === 'median' // In case\n // data: [{\n // yAxis: 10\n // }]\n || item.xAxis != null || item.yAxis != null) {\n var valueAxis = void 0;\n var value = void 0;\n\n if (item.yAxis != null || item.xAxis != null) {\n valueAxis = coordSys.getAxis(item.yAxis != null ? 'y' : 'x');\n value = retrieve(item.yAxis, item.xAxis);\n } else {\n var axisInfo = markerHelper.getAxisInfo(item, data, coordSys, seriesModel);\n valueAxis = axisInfo.valueAxis;\n var valueDataDim = getStackedDimension(data, axisInfo.valueDataDim);\n value = markerHelper.numCalculate(data, valueDataDim, mlType);\n }\n\n var valueIndex = valueAxis.dim === 'x' ? 0 : 1;\n var baseIndex = 1 - valueIndex; // Normized to 2d data with start and end point\n\n var mlFrom = clone(item);\n var mlTo = {\n coord: []\n };\n mlFrom.type = null;\n mlFrom.coord = [];\n mlFrom.coord[baseIndex] = -Infinity;\n mlTo.coord[baseIndex] = Infinity;\n var precision = mlModel.get('precision');\n\n if (precision >= 0 && isNumber(value)) {\n value = +value.toFixed(Math.min(precision, 20));\n }\n\n mlFrom.coord[valueIndex] = mlTo.coord[valueIndex] = value;\n itemArray = [mlFrom, mlTo, {\n type: mlType,\n valueIndex: item.valueIndex,\n // Force to use the value of calculated value.\n value: value\n }];\n } else {\n // Invalid data\n if (process.env.NODE_ENV !== 'production') {\n logError('Invalid markLine data.');\n }\n\n itemArray = [];\n }\n } else {\n itemArray = item;\n }\n\n var normalizedItem = [markerHelper.dataTransform(seriesModel, itemArray[0]), markerHelper.dataTransform(seriesModel, itemArray[1]), extend({}, itemArray[2])]; // Avoid line data type is extended by from(to) data type\n\n normalizedItem[2].type = normalizedItem[2].type || null; // Merge from option and to option into line option\n\n merge(normalizedItem[2], normalizedItem[0]);\n merge(normalizedItem[2], normalizedItem[1]);\n return normalizedItem;\n};\n\nfunction isInfinity(val) {\n return !isNaN(val) && !isFinite(val);\n} // If a markLine has one dim\n\n\nfunction ifMarkLineHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) {\n var otherDimIndex = 1 - dimIndex;\n var dimName = coordSys.dimensions[dimIndex];\n return isInfinity(fromCoord[otherDimIndex]) && isInfinity(toCoord[otherDimIndex]) && fromCoord[dimIndex] === toCoord[dimIndex] && coordSys.getAxis(dimName).containData(fromCoord[dimIndex]);\n}\n\nfunction markLineFilter(coordSys, item) {\n if (coordSys.type === 'cartesian2d') {\n var fromCoord = item[0].coord;\n var toCoord = item[1].coord; // In case\n // {\n // markLine: {\n // data: [{ yAxis: 2 }]\n // }\n // }\n\n if (fromCoord && toCoord && (ifMarkLineHasOnlyDim(1, fromCoord, toCoord, coordSys) || ifMarkLineHasOnlyDim(0, fromCoord, toCoord, coordSys))) {\n return true;\n }\n }\n\n return markerHelper.dataFilter(coordSys, item[0]) && markerHelper.dataFilter(coordSys, item[1]);\n}\n\nfunction updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api) {\n var coordSys = seriesModel.coordinateSystem;\n var itemModel = data.getItemModel(idx);\n var point;\n var xPx = numberUtil.parsePercent(itemModel.get('x'), api.getWidth());\n var yPx = numberUtil.parsePercent(itemModel.get('y'), api.getHeight());\n\n if (!isNaN(xPx) && !isNaN(yPx)) {\n point = [xPx, yPx];\n } else {\n // Chart like bar may have there own marker positioning logic\n if (seriesModel.getMarkerPosition) {\n // Use the getMarkerPosition\n point = seriesModel.getMarkerPosition(data.getValues(data.dimensions, idx));\n } else {\n var dims = coordSys.dimensions;\n var x = data.get(dims[0], idx);\n var y = data.get(dims[1], idx);\n point = coordSys.dataToPoint([x, y]);\n } // Expand line to the edge of grid if value on one axis is Inifnity\n // In case\n // markLine: {\n // data: [{\n // yAxis: 2\n // // or\n // type: 'average'\n // }]\n // }\n\n\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n // TODO: TYPE ts@4.1 may still infer it as Axis instead of Axis2D. Not sure if it's a bug\n var xAxis = coordSys.getAxis('x');\n var yAxis = coordSys.getAxis('y');\n var dims = coordSys.dimensions;\n\n if (isInfinity(data.get(dims[0], idx))) {\n point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[isFrom ? 0 : 1]);\n } else if (isInfinity(data.get(dims[1], idx))) {\n point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[isFrom ? 0 : 1]);\n }\n } // Use x, y if has any\n\n\n if (!isNaN(xPx)) {\n point[0] = xPx;\n }\n\n if (!isNaN(yPx)) {\n point[1] = yPx;\n }\n }\n\n data.setItemLayout(idx, point);\n}\n\nvar MarkLineView =\n/** @class */\nfunction (_super) {\n __extends(MarkLineView, _super);\n\n function MarkLineView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = MarkLineView.type;\n return _this;\n }\n\n MarkLineView.prototype.updateTransform = function (markLineModel, ecModel, api) {\n ecModel.eachSeries(function (seriesModel) {\n var mlModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markLine');\n\n if (mlModel) {\n var mlData_1 = mlModel.getData();\n var fromData_1 = inner(mlModel).from;\n var toData_1 = inner(mlModel).to; // Update visual and layout of from symbol and to symbol\n\n fromData_1.each(function (idx) {\n updateSingleMarkerEndLayout(fromData_1, idx, true, seriesModel, api);\n updateSingleMarkerEndLayout(toData_1, idx, false, seriesModel, api);\n }); // Update layout of line\n\n mlData_1.each(function (idx) {\n mlData_1.setItemLayout(idx, [fromData_1.getItemLayout(idx), toData_1.getItemLayout(idx)]);\n });\n this.markerGroupMap.get(seriesModel.id).updateLayout();\n }\n }, this);\n };\n\n MarkLineView.prototype.renderSeries = function (seriesModel, mlModel, ecModel, api) {\n var coordSys = seriesModel.coordinateSystem;\n var seriesId = seriesModel.id;\n var seriesData = seriesModel.getData();\n var lineDrawMap = this.markerGroupMap;\n var lineDraw = lineDrawMap.get(seriesId) || lineDrawMap.set(seriesId, new LineDraw());\n this.group.add(lineDraw.group);\n var mlData = createList(coordSys, seriesModel, mlModel);\n var fromData = mlData.from;\n var toData = mlData.to;\n var lineData = mlData.line;\n inner(mlModel).from = fromData;\n inner(mlModel).to = toData; // Line data for tooltip and formatter\n\n mlModel.setData(lineData); // TODO\n // Functionally, `symbolSize` & `symbolOffset` can also be 2D array now.\n // But the related logic and type definition are not finished yet.\n // Finish it if required\n\n var symbolType = mlModel.get('symbol');\n var symbolSize = mlModel.get('symbolSize');\n var symbolRotate = mlModel.get('symbolRotate');\n var symbolOffset = mlModel.get('symbolOffset'); // TODO: support callback function like markPoint\n\n if (!isArray(symbolType)) {\n symbolType = [symbolType, symbolType];\n }\n\n if (!isArray(symbolSize)) {\n symbolSize = [symbolSize, symbolSize];\n }\n\n if (!isArray(symbolRotate)) {\n symbolRotate = [symbolRotate, symbolRotate];\n }\n\n if (!isArray(symbolOffset)) {\n symbolOffset = [symbolOffset, symbolOffset];\n } // Update visual and layout of from symbol and to symbol\n\n\n mlData.from.each(function (idx) {\n updateDataVisualAndLayout(fromData, idx, true);\n updateDataVisualAndLayout(toData, idx, false);\n }); // Update visual and layout of line\n\n lineData.each(function (idx) {\n var lineStyle = lineData.getItemModel(idx).getModel('lineStyle').getLineStyle(); // lineData.setItemVisual(idx, {\n // color: lineColor || fromData.getItemVisual(idx, 'color')\n // });\n\n lineData.setItemLayout(idx, [fromData.getItemLayout(idx), toData.getItemLayout(idx)]);\n\n if (lineStyle.stroke == null) {\n lineStyle.stroke = fromData.getItemVisual(idx, 'style').fill;\n }\n\n lineData.setItemVisual(idx, {\n fromSymbolKeepAspect: fromData.getItemVisual(idx, 'symbolKeepAspect'),\n fromSymbolOffset: fromData.getItemVisual(idx, 'symbolOffset'),\n fromSymbolRotate: fromData.getItemVisual(idx, 'symbolRotate'),\n fromSymbolSize: fromData.getItemVisual(idx, 'symbolSize'),\n fromSymbol: fromData.getItemVisual(idx, 'symbol'),\n toSymbolKeepAspect: toData.getItemVisual(idx, 'symbolKeepAspect'),\n toSymbolOffset: toData.getItemVisual(idx, 'symbolOffset'),\n toSymbolRotate: toData.getItemVisual(idx, 'symbolRotate'),\n toSymbolSize: toData.getItemVisual(idx, 'symbolSize'),\n toSymbol: toData.getItemVisual(idx, 'symbol'),\n style: lineStyle\n });\n });\n lineDraw.updateData(lineData); // Set host model for tooltip\n // FIXME\n\n mlData.line.eachItemGraphicEl(function (el) {\n getECData(el).dataModel = mlModel;\n el.traverse(function (child) {\n getECData(child).dataModel = mlModel;\n });\n });\n\n function updateDataVisualAndLayout(data, idx, isFrom) {\n var itemModel = data.getItemModel(idx);\n updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api);\n var style = itemModel.getModel('itemStyle').getItemStyle();\n\n if (style.fill == null) {\n style.fill = getVisualFromData(seriesData, 'color');\n }\n\n data.setItemVisual(idx, {\n symbolKeepAspect: itemModel.get('symbolKeepAspect'),\n // `0` should be considered as a valid value, so use `retrieve2` instead of `||`\n symbolOffset: retrieve2(itemModel.get('symbolOffset', true), symbolOffset[isFrom ? 0 : 1]),\n symbolRotate: retrieve2(itemModel.get('symbolRotate', true), symbolRotate[isFrom ? 0 : 1]),\n // TODO: when 2d array is supported, it should ignore parent\n symbolSize: retrieve2(itemModel.get('symbolSize'), symbolSize[isFrom ? 0 : 1]),\n symbol: retrieve2(itemModel.get('symbol', true), symbolType[isFrom ? 0 : 1]),\n style: style\n });\n }\n\n this.markKeep(lineDraw);\n lineDraw.group.silent = mlModel.get('silent') || seriesModel.get('silent');\n };\n\n MarkLineView.type = 'markLine';\n return MarkLineView;\n}(MarkerView);\n\nfunction createList(coordSys, seriesModel, mlModel) {\n var coordDimsInfos;\n\n if (coordSys) {\n coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\n var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {}; // In map series data don't have lng and lat dimension. Fallback to same with coordSys\n\n return extend(extend({}, info), {\n name: coordDim,\n // DON'T use ordinalMeta to parse and collect ordinal.\n ordinalMeta: null\n });\n });\n } else {\n coordDimsInfos = [{\n name: 'value',\n type: 'float'\n }];\n }\n\n var fromData = new SeriesData(coordDimsInfos, mlModel);\n var toData = new SeriesData(coordDimsInfos, mlModel); // No dimensions\n\n var lineData = new SeriesData([], mlModel);\n var optData = map(mlModel.get('data'), curry(markLineTransform, seriesModel, coordSys, mlModel));\n\n if (coordSys) {\n optData = filter(optData, curry(markLineFilter, coordSys));\n }\n\n var dimValueGetter = markerHelper.createMarkerDimValueGetter(!!coordSys, coordDimsInfos);\n fromData.initData(map(optData, function (item) {\n return item[0];\n }), null, dimValueGetter);\n toData.initData(map(optData, function (item) {\n return item[1];\n }), null, dimValueGetter);\n lineData.initData(map(optData, function (item) {\n return item[2];\n }));\n lineData.hasItemOption = true;\n return {\n from: fromData,\n to: toData,\n line: lineData\n };\n}\n\nexport default MarkLineView;","map":{"version":3,"sources":["D:/Work/WorkSpace/GitWorkSpace/TenShop/resource/ElectronicMall/src啊/ElectronicMallVue/node_modules/echarts/lib/component/marker/MarkLineView.js"],"names":["__extends","SeriesData","numberUtil","markerHelper","LineDraw","MarkerView","getStackedDimension","isCoordinateSystemType","getECData","MarkerModel","isArray","retrieve","retrieve2","clone","extend","logError","merge","map","curry","filter","isNumber","makeInner","getVisualFromData","inner","markLineTransform","seriesModel","coordSys","mlModel","item","data","getData","itemArray","mlType","type","xAxis","yAxis","valueAxis","value","getAxis","axisInfo","getAxisInfo","valueDataDim","numCalculate","valueIndex","dim","baseIndex","mlFrom","mlTo","coord","Infinity","precision","get","toFixed","Math","min","process","env","NODE_ENV","normalizedItem","dataTransform","isInfinity","val","isNaN","isFinite","ifMarkLineHasOnlyDim","dimIndex","fromCoord","toCoord","otherDimIndex","dimName","dimensions","containData","markLineFilter","dataFilter","updateSingleMarkerEndLayout","idx","isFrom","api","coordinateSystem","itemModel","getItemModel","point","xPx","parsePercent","getWidth","yPx","getHeight","getMarkerPosition","getValues","dims","x","y","dataToPoint","toGlobalCoord","getExtent","setItemLayout","MarkLineView","_super","_this","apply","arguments","prototype","updateTransform","markLineModel","ecModel","eachSeries","getMarkerModelFromSeries","mlData_1","fromData_1","from","toData_1","to","each","getItemLayout","markerGroupMap","id","updateLayout","renderSeries","seriesId","seriesData","lineDrawMap","lineDraw","set","group","add","mlData","createList","fromData","toData","lineData","line","setData","symbolType","symbolSize","symbolRotate","symbolOffset","updateDataVisualAndLayout","lineStyle","getModel","getLineStyle","stroke","getItemVisual","fill","setItemVisual","fromSymbolKeepAspect","fromSymbolOffset","fromSymbolRotate","fromSymbolSize","fromSymbol","toSymbolKeepAspect","toSymbolOffset","toSymbolRotate","toSymbolSize","toSymbol","style","updateData","eachItemGraphicEl","el","dataModel","traverse","child","getItemStyle","symbolKeepAspect","symbol","markKeep","silent","coordDimsInfos","coordDim","info","getDimensionInfo","mapDimension","name","ordinalMeta","optData","dimValueGetter","createMarkerDimValueGetter","initData","hasItemOption"],"mappings":"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","sourcesContent":["\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport SeriesData from '../../data/SeriesData.js';\nimport * as numberUtil from '../../util/number.js';\nimport * as markerHelper from './markerHelper.js';\nimport LineDraw from '../../chart/helper/LineDraw.js';\nimport MarkerView from './MarkerView.js';\nimport { getStackedDimension } from '../../data/helper/dataStackHelper.js';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem.js';\nimport { getECData } from '../../util/innerStore.js';\nimport MarkerModel from './MarkerModel.js';\nimport { isArray, retrieve, retrieve2, clone, extend, logError, merge, map, curry, filter, isNumber } from 'zrender/lib/core/util.js';\nimport { makeInner } from '../../util/model.js';\nimport { getVisualFromData } from '../../visual/helper.js';\nvar inner = makeInner();\n\nvar markLineTransform = function (seriesModel, coordSys, mlModel, item) {\n var data = seriesModel.getData();\n var itemArray;\n\n if (!isArray(item)) {\n // Special type markLine like 'min', 'max', 'average', 'median'\n var mlType = item.type;\n\n if (mlType === 'min' || mlType === 'max' || mlType === 'average' || mlType === 'median' // In case\n // data: [{\n // yAxis: 10\n // }]\n || item.xAxis != null || item.yAxis != null) {\n var valueAxis = void 0;\n var value = void 0;\n\n if (item.yAxis != null || item.xAxis != null) {\n valueAxis = coordSys.getAxis(item.yAxis != null ? 'y' : 'x');\n value = retrieve(item.yAxis, item.xAxis);\n } else {\n var axisInfo = markerHelper.getAxisInfo(item, data, coordSys, seriesModel);\n valueAxis = axisInfo.valueAxis;\n var valueDataDim = getStackedDimension(data, axisInfo.valueDataDim);\n value = markerHelper.numCalculate(data, valueDataDim, mlType);\n }\n\n var valueIndex = valueAxis.dim === 'x' ? 0 : 1;\n var baseIndex = 1 - valueIndex; // Normized to 2d data with start and end point\n\n var mlFrom = clone(item);\n var mlTo = {\n coord: []\n };\n mlFrom.type = null;\n mlFrom.coord = [];\n mlFrom.coord[baseIndex] = -Infinity;\n mlTo.coord[baseIndex] = Infinity;\n var precision = mlModel.get('precision');\n\n if (precision >= 0 && isNumber(value)) {\n value = +value.toFixed(Math.min(precision, 20));\n }\n\n mlFrom.coord[valueIndex] = mlTo.coord[valueIndex] = value;\n itemArray = [mlFrom, mlTo, {\n type: mlType,\n valueIndex: item.valueIndex,\n // Force to use the value of calculated value.\n value: value\n }];\n } else {\n // Invalid data\n if (process.env.NODE_ENV !== 'production') {\n logError('Invalid markLine data.');\n }\n\n itemArray = [];\n }\n } else {\n itemArray = item;\n }\n\n var normalizedItem = [markerHelper.dataTransform(seriesModel, itemArray[0]), markerHelper.dataTransform(seriesModel, itemArray[1]), extend({}, itemArray[2])]; // Avoid line data type is extended by from(to) data type\n\n normalizedItem[2].type = normalizedItem[2].type || null; // Merge from option and to option into line option\n\n merge(normalizedItem[2], normalizedItem[0]);\n merge(normalizedItem[2], normalizedItem[1]);\n return normalizedItem;\n};\n\nfunction isInfinity(val) {\n return !isNaN(val) && !isFinite(val);\n} // If a markLine has one dim\n\n\nfunction ifMarkLineHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) {\n var otherDimIndex = 1 - dimIndex;\n var dimName = coordSys.dimensions[dimIndex];\n return isInfinity(fromCoord[otherDimIndex]) && isInfinity(toCoord[otherDimIndex]) && fromCoord[dimIndex] === toCoord[dimIndex] && coordSys.getAxis(dimName).containData(fromCoord[dimIndex]);\n}\n\nfunction markLineFilter(coordSys, item) {\n if (coordSys.type === 'cartesian2d') {\n var fromCoord = item[0].coord;\n var toCoord = item[1].coord; // In case\n // {\n // markLine: {\n // data: [{ yAxis: 2 }]\n // }\n // }\n\n if (fromCoord && toCoord && (ifMarkLineHasOnlyDim(1, fromCoord, toCoord, coordSys) || ifMarkLineHasOnlyDim(0, fromCoord, toCoord, coordSys))) {\n return true;\n }\n }\n\n return markerHelper.dataFilter(coordSys, item[0]) && markerHelper.dataFilter(coordSys, item[1]);\n}\n\nfunction updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api) {\n var coordSys = seriesModel.coordinateSystem;\n var itemModel = data.getItemModel(idx);\n var point;\n var xPx = numberUtil.parsePercent(itemModel.get('x'), api.getWidth());\n var yPx = numberUtil.parsePercent(itemModel.get('y'), api.getHeight());\n\n if (!isNaN(xPx) && !isNaN(yPx)) {\n point = [xPx, yPx];\n } else {\n // Chart like bar may have there own marker positioning logic\n if (seriesModel.getMarkerPosition) {\n // Use the getMarkerPosition\n point = seriesModel.getMarkerPosition(data.getValues(data.dimensions, idx));\n } else {\n var dims = coordSys.dimensions;\n var x = data.get(dims[0], idx);\n var y = data.get(dims[1], idx);\n point = coordSys.dataToPoint([x, y]);\n } // Expand line to the edge of grid if value on one axis is Inifnity\n // In case\n // markLine: {\n // data: [{\n // yAxis: 2\n // // or\n // type: 'average'\n // }]\n // }\n\n\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n // TODO: TYPE ts@4.1 may still infer it as Axis instead of Axis2D. Not sure if it's a bug\n var xAxis = coordSys.getAxis('x');\n var yAxis = coordSys.getAxis('y');\n var dims = coordSys.dimensions;\n\n if (isInfinity(data.get(dims[0], idx))) {\n point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[isFrom ? 0 : 1]);\n } else if (isInfinity(data.get(dims[1], idx))) {\n point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[isFrom ? 0 : 1]);\n }\n } // Use x, y if has any\n\n\n if (!isNaN(xPx)) {\n point[0] = xPx;\n }\n\n if (!isNaN(yPx)) {\n point[1] = yPx;\n }\n }\n\n data.setItemLayout(idx, point);\n}\n\nvar MarkLineView =\n/** @class */\nfunction (_super) {\n __extends(MarkLineView, _super);\n\n function MarkLineView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = MarkLineView.type;\n return _this;\n }\n\n MarkLineView.prototype.updateTransform = function (markLineModel, ecModel, api) {\n ecModel.eachSeries(function (seriesModel) {\n var mlModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markLine');\n\n if (mlModel) {\n var mlData_1 = mlModel.getData();\n var fromData_1 = inner(mlModel).from;\n var toData_1 = inner(mlModel).to; // Update visual and layout of from symbol and to symbol\n\n fromData_1.each(function (idx) {\n updateSingleMarkerEndLayout(fromData_1, idx, true, seriesModel, api);\n updateSingleMarkerEndLayout(toData_1, idx, false, seriesModel, api);\n }); // Update layout of line\n\n mlData_1.each(function (idx) {\n mlData_1.setItemLayout(idx, [fromData_1.getItemLayout(idx), toData_1.getItemLayout(idx)]);\n });\n this.markerGroupMap.get(seriesModel.id).updateLayout();\n }\n }, this);\n };\n\n MarkLineView.prototype.renderSeries = function (seriesModel, mlModel, ecModel, api) {\n var coordSys = seriesModel.coordinateSystem;\n var seriesId = seriesModel.id;\n var seriesData = seriesModel.getData();\n var lineDrawMap = this.markerGroupMap;\n var lineDraw = lineDrawMap.get(seriesId) || lineDrawMap.set(seriesId, new LineDraw());\n this.group.add(lineDraw.group);\n var mlData = createList(coordSys, seriesModel, mlModel);\n var fromData = mlData.from;\n var toData = mlData.to;\n var lineData = mlData.line;\n inner(mlModel).from = fromData;\n inner(mlModel).to = toData; // Line data for tooltip and formatter\n\n mlModel.setData(lineData); // TODO\n // Functionally, `symbolSize` & `symbolOffset` can also be 2D array now.\n // But the related logic and type definition are not finished yet.\n // Finish it if required\n\n var symbolType = mlModel.get('symbol');\n var symbolSize = mlModel.get('symbolSize');\n var symbolRotate = mlModel.get('symbolRotate');\n var symbolOffset = mlModel.get('symbolOffset'); // TODO: support callback function like markPoint\n\n if (!isArray(symbolType)) {\n symbolType = [symbolType, symbolType];\n }\n\n if (!isArray(symbolSize)) {\n symbolSize = [symbolSize, symbolSize];\n }\n\n if (!isArray(symbolRotate)) {\n symbolRotate = [symbolRotate, symbolRotate];\n }\n\n if (!isArray(symbolOffset)) {\n symbolOffset = [symbolOffset, symbolOffset];\n } // Update visual and layout of from symbol and to symbol\n\n\n mlData.from.each(function (idx) {\n updateDataVisualAndLayout(fromData, idx, true);\n updateDataVisualAndLayout(toData, idx, false);\n }); // Update visual and layout of line\n\n lineData.each(function (idx) {\n var lineStyle = lineData.getItemModel(idx).getModel('lineStyle').getLineStyle(); // lineData.setItemVisual(idx, {\n // color: lineColor || fromData.getItemVisual(idx, 'color')\n // });\n\n lineData.setItemLayout(idx, [fromData.getItemLayout(idx), toData.getItemLayout(idx)]);\n\n if (lineStyle.stroke == null) {\n lineStyle.stroke = fromData.getItemVisual(idx, 'style').fill;\n }\n\n lineData.setItemVisual(idx, {\n fromSymbolKeepAspect: fromData.getItemVisual(idx, 'symbolKeepAspect'),\n fromSymbolOffset: fromData.getItemVisual(idx, 'symbolOffset'),\n fromSymbolRotate: fromData.getItemVisual(idx, 'symbolRotate'),\n fromSymbolSize: fromData.getItemVisual(idx, 'symbolSize'),\n fromSymbol: fromData.getItemVisual(idx, 'symbol'),\n toSymbolKeepAspect: toData.getItemVisual(idx, 'symbolKeepAspect'),\n toSymbolOffset: toData.getItemVisual(idx, 'symbolOffset'),\n toSymbolRotate: toData.getItemVisual(idx, 'symbolRotate'),\n toSymbolSize: toData.getItemVisual(idx, 'symbolSize'),\n toSymbol: toData.getItemVisual(idx, 'symbol'),\n style: lineStyle\n });\n });\n lineDraw.updateData(lineData); // Set host model for tooltip\n // FIXME\n\n mlData.line.eachItemGraphicEl(function (el) {\n getECData(el).dataModel = mlModel;\n el.traverse(function (child) {\n getECData(child).dataModel = mlModel;\n });\n });\n\n function updateDataVisualAndLayout(data, idx, isFrom) {\n var itemModel = data.getItemModel(idx);\n updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api);\n var style = itemModel.getModel('itemStyle').getItemStyle();\n\n if (style.fill == null) {\n style.fill = getVisualFromData(seriesData, 'color');\n }\n\n data.setItemVisual(idx, {\n symbolKeepAspect: itemModel.get('symbolKeepAspect'),\n // `0` should be considered as a valid value, so use `retrieve2` instead of `||`\n symbolOffset: retrieve2(itemModel.get('symbolOffset', true), symbolOffset[isFrom ? 0 : 1]),\n symbolRotate: retrieve2(itemModel.get('symbolRotate', true), symbolRotate[isFrom ? 0 : 1]),\n // TODO: when 2d array is supported, it should ignore parent\n symbolSize: retrieve2(itemModel.get('symbolSize'), symbolSize[isFrom ? 0 : 1]),\n symbol: retrieve2(itemModel.get('symbol', true), symbolType[isFrom ? 0 : 1]),\n style: style\n });\n }\n\n this.markKeep(lineDraw);\n lineDraw.group.silent = mlModel.get('silent') || seriesModel.get('silent');\n };\n\n MarkLineView.type = 'markLine';\n return MarkLineView;\n}(MarkerView);\n\nfunction createList(coordSys, seriesModel, mlModel) {\n var coordDimsInfos;\n\n if (coordSys) {\n coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\n var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {}; // In map series data don't have lng and lat dimension. Fallback to same with coordSys\n\n return extend(extend({}, info), {\n name: coordDim,\n // DON'T use ordinalMeta to parse and collect ordinal.\n ordinalMeta: null\n });\n });\n } else {\n coordDimsInfos = [{\n name: 'value',\n type: 'float'\n }];\n }\n\n var fromData = new SeriesData(coordDimsInfos, mlModel);\n var toData = new SeriesData(coordDimsInfos, mlModel); // No dimensions\n\n var lineData = new SeriesData([], mlModel);\n var optData = map(mlModel.get('data'), curry(markLineTransform, seriesModel, coordSys, mlModel));\n\n if (coordSys) {\n optData = filter(optData, curry(markLineFilter, coordSys));\n }\n\n var dimValueGetter = markerHelper.createMarkerDimValueGetter(!!coordSys, coordDimsInfos);\n fromData.initData(map(optData, function (item) {\n return item[0];\n }), null, dimValueGetter);\n toData.initData(map(optData, function (item) {\n return item[1];\n }), null, dimValueGetter);\n lineData.initData(map(optData, function (item) {\n return item[2];\n }));\n lineData.hasItemOption = true;\n return {\n from: fromData,\n to: toData,\n line: lineData\n };\n}\n\nexport default MarkLineView;"]},"metadata":{},"sourceType":"module"} |