1 line
46 KiB
JSON
1 line
46 KiB
JSON
{"ast":null,"code":"import \"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\"; // TODO Optimize on polar\n\nimport * as colorUtil from 'zrender/lib/tool/color.js';\nimport SeriesData from '../../data/SeriesData.js';\nimport * as numberUtil from '../../util/number.js';\nimport * as graphic from '../../util/graphic.js';\nimport { toggleHoverEmphasis, setStatesStylesFromModel } from '../../util/states.js';\nimport * as markerHelper from './markerHelper.js';\nimport MarkerView from './MarkerView.js';\nimport { retrieve, mergeAll, map, curry, filter, extend, isString } from 'zrender/lib/core/util.js';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem.js';\nimport MarkerModel from './MarkerModel.js';\nimport { makeInner } from '../../util/model.js';\nimport { getVisualFromData } from '../../visual/helper.js';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { parseDataValue } from '../../data/helper/dataValueHelper.js';\nvar inner = makeInner();\n\nvar markAreaTransform = function markAreaTransform(seriesModel, coordSys, maModel, item) {\n // item may be null\n var item0 = item[0];\n var item1 = item[1];\n\n if (!item0 || !item1) {\n return;\n }\n\n var lt = markerHelper.dataTransform(seriesModel, item0);\n var rb = markerHelper.dataTransform(seriesModel, item1); // FIXME make sure lt is less than rb\n\n var ltCoord = lt.coord;\n var rbCoord = rb.coord;\n ltCoord[0] = retrieve(ltCoord[0], -Infinity);\n ltCoord[1] = retrieve(ltCoord[1], -Infinity);\n rbCoord[0] = retrieve(rbCoord[0], Infinity);\n rbCoord[1] = retrieve(rbCoord[1], Infinity); // Merge option into one\n\n var result = mergeAll([{}, lt, rb]);\n result.coord = [lt.coord, rb.coord];\n result.x0 = lt.x;\n result.y0 = lt.y;\n result.x1 = rb.x;\n result.y1 = rb.y;\n return result;\n};\n\nfunction isInfinity(val) {\n return !isNaN(val) && !isFinite(val);\n} // If a markArea has one dim\n\n\nfunction ifMarkAreaHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) {\n var otherDimIndex = 1 - dimIndex;\n return isInfinity(fromCoord[otherDimIndex]) && isInfinity(toCoord[otherDimIndex]);\n}\n\nfunction markAreaFilter(coordSys, item) {\n var fromCoord = item.coord[0];\n var toCoord = item.coord[1];\n var item0 = {\n coord: fromCoord,\n x: item.x0,\n y: item.y0\n };\n var item1 = {\n coord: toCoord,\n x: item.x1,\n y: item.y1\n };\n\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n // In case\n // {\n // markArea: {\n // data: [{ yAxis: 2 }]\n // }\n // }\n if (fromCoord && toCoord && (ifMarkAreaHasOnlyDim(1, fromCoord, toCoord, coordSys) || ifMarkAreaHasOnlyDim(0, fromCoord, toCoord, coordSys))) {\n return true;\n } // Directly returning true may also do the work,\n // because markArea will not be shown automatically\n // when it's not included in coordinate system.\n // But filtering ahead can avoid keeping rendering markArea\n // when there are too many of them.\n\n\n return markerHelper.zoneFilter(coordSys, item0, item1);\n }\n\n return markerHelper.dataFilter(coordSys, item0) || markerHelper.dataFilter(coordSys, item1);\n} // dims can be ['x0', 'y0'], ['x1', 'y1'], ['x0', 'y1'], ['x1', 'y0']\n\n\nfunction getSingleMarkerEndPoint(data, idx, dims, seriesModel, api) {\n var coordSys = seriesModel.coordinateSystem;\n var itemModel = data.getItemModel(idx);\n var point;\n var xPx = numberUtil.parsePercent(itemModel.get(dims[0]), api.getWidth());\n var yPx = numberUtil.parsePercent(itemModel.get(dims[1]), 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 // Consider the case that user input the right-bottom point first\n // Pick the larger x and y as 'x1' and 'y1'\n var pointValue0 = data.getValues(['x0', 'y0'], idx);\n var pointValue1 = data.getValues(['x1', 'y1'], idx);\n var clampPointValue0 = coordSys.clampData(pointValue0);\n var clampPointValue1 = coordSys.clampData(pointValue1);\n var pointValue = [];\n\n if (dims[0] === 'x0') {\n pointValue[0] = clampPointValue0[0] > clampPointValue1[0] ? pointValue1[0] : pointValue0[0];\n } else {\n pointValue[0] = clampPointValue0[0] > clampPointValue1[0] ? pointValue0[0] : pointValue1[0];\n }\n\n if (dims[1] === 'y0') {\n pointValue[1] = clampPointValue0[1] > clampPointValue1[1] ? pointValue1[1] : pointValue0[1];\n } else {\n pointValue[1] = clampPointValue0[1] > clampPointValue1[1] ? pointValue0[1] : pointValue1[1];\n } // Use the getMarkerPosition\n\n\n point = seriesModel.getMarkerPosition(pointValue, dims, true);\n } else {\n var x = data.get(dims[0], idx);\n var y = data.get(dims[1], idx);\n var pt = [x, y];\n coordSys.clampData && coordSys.clampData(pt, pt);\n point = coordSys.dataToPoint(pt, true);\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 x = data.get(dims[0], idx);\n var y = data.get(dims[1], idx);\n\n if (isInfinity(x)) {\n point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[dims[0] === 'x0' ? 0 : 1]);\n } else if (isInfinity(y)) {\n point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[dims[1] === 'y0' ? 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 return point;\n}\n\nexport var dimPermutations = [['x0', 'y0'], ['x1', 'y0'], ['x1', 'y1'], ['x0', 'y1']];\n\nvar MarkAreaView =\n/** @class */\nfunction (_super) {\n __extends(MarkAreaView, _super);\n\n function MarkAreaView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = MarkAreaView.type;\n return _this;\n }\n\n MarkAreaView.prototype.updateTransform = function (markAreaModel, ecModel, api) {\n ecModel.eachSeries(function (seriesModel) {\n var maModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markArea');\n\n if (maModel) {\n var areaData_1 = maModel.getData();\n areaData_1.each(function (idx) {\n var points = map(dimPermutations, function (dim) {\n return getSingleMarkerEndPoint(areaData_1, idx, dim, seriesModel, api);\n }); // Layout\n\n areaData_1.setItemLayout(idx, points);\n var el = areaData_1.getItemGraphicEl(idx);\n el.setShape('points', points);\n });\n }\n }, this);\n };\n\n MarkAreaView.prototype.renderSeries = function (seriesModel, maModel, ecModel, api) {\n var coordSys = seriesModel.coordinateSystem;\n var seriesId = seriesModel.id;\n var seriesData = seriesModel.getData();\n var areaGroupMap = this.markerGroupMap;\n var polygonGroup = areaGroupMap.get(seriesId) || areaGroupMap.set(seriesId, {\n group: new graphic.Group()\n });\n this.group.add(polygonGroup.group);\n this.markKeep(polygonGroup);\n var areaData = createList(coordSys, seriesModel, maModel); // Line data for tooltip and formatter\n\n maModel.setData(areaData); // Update visual and layout of line\n\n areaData.each(function (idx) {\n // Layout\n var points = map(dimPermutations, function (dim) {\n return getSingleMarkerEndPoint(areaData, idx, dim, seriesModel, api);\n });\n var xAxisScale = coordSys.getAxis('x').scale;\n var yAxisScale = coordSys.getAxis('y').scale;\n var xAxisExtent = xAxisScale.getExtent();\n var yAxisExtent = yAxisScale.getExtent();\n var xPointExtent = [xAxisScale.parse(areaData.get('x0', idx)), xAxisScale.parse(areaData.get('x1', idx))];\n var yPointExtent = [yAxisScale.parse(areaData.get('y0', idx)), yAxisScale.parse(areaData.get('y1', idx))];\n numberUtil.asc(xPointExtent);\n numberUtil.asc(yPointExtent);\n var overlapped = !(xAxisExtent[0] > xPointExtent[1] || xAxisExtent[1] < xPointExtent[0] || yAxisExtent[0] > yPointExtent[1] || yAxisExtent[1] < yPointExtent[0]); // If none of the area is inside coordSys, allClipped is set to be true\n // in layout so that label will not be displayed. See #12591\n\n var allClipped = !overlapped;\n areaData.setItemLayout(idx, {\n points: points,\n allClipped: allClipped\n });\n var style = areaData.getItemModel(idx).getModel('itemStyle').getItemStyle();\n var color = getVisualFromData(seriesData, 'color');\n\n if (!style.fill) {\n style.fill = color;\n\n if (isString(style.fill)) {\n style.fill = colorUtil.modifyAlpha(style.fill, 0.4);\n }\n }\n\n if (!style.stroke) {\n style.stroke = color;\n } // Visual\n\n\n areaData.setItemVisual(idx, 'style', style);\n });\n areaData.diff(inner(polygonGroup).data).add(function (idx) {\n var layout = areaData.getItemLayout(idx);\n\n if (!layout.allClipped) {\n var polygon = new graphic.Polygon({\n shape: {\n points: layout.points\n }\n });\n areaData.setItemGraphicEl(idx, polygon);\n polygonGroup.group.add(polygon);\n }\n }).update(function (newIdx, oldIdx) {\n var polygon = inner(polygonGroup).data.getItemGraphicEl(oldIdx);\n var layout = areaData.getItemLayout(newIdx);\n\n if (!layout.allClipped) {\n if (polygon) {\n graphic.updateProps(polygon, {\n shape: {\n points: layout.points\n }\n }, maModel, newIdx);\n } else {\n polygon = new graphic.Polygon({\n shape: {\n points: layout.points\n }\n });\n }\n\n areaData.setItemGraphicEl(newIdx, polygon);\n polygonGroup.group.add(polygon);\n } else if (polygon) {\n polygonGroup.group.remove(polygon);\n }\n }).remove(function (idx) {\n var polygon = inner(polygonGroup).data.getItemGraphicEl(idx);\n polygonGroup.group.remove(polygon);\n }).execute();\n areaData.eachItemGraphicEl(function (polygon, idx) {\n var itemModel = areaData.getItemModel(idx);\n var style = areaData.getItemVisual(idx, 'style');\n polygon.useStyle(areaData.getItemVisual(idx, 'style'));\n setLabelStyle(polygon, getLabelStatesModels(itemModel), {\n labelFetcher: maModel,\n labelDataIndex: idx,\n defaultText: areaData.getName(idx) || '',\n inheritColor: isString(style.fill) ? colorUtil.modifyAlpha(style.fill, 1) : '#000'\n });\n setStatesStylesFromModel(polygon, itemModel);\n toggleHoverEmphasis(polygon, null, null, itemModel.get(['emphasis', 'disabled']));\n getECData(polygon).dataModel = maModel;\n });\n inner(polygonGroup).data = areaData;\n polygonGroup.group.silent = maModel.get('silent') || seriesModel.get('silent');\n };\n\n MarkAreaView.type = 'markArea';\n return MarkAreaView;\n}(MarkerView);\n\nfunction createList(coordSys, seriesModel, maModel) {\n var areaData;\n var dataDims;\n var dims = ['x0', 'y0', 'x1', 'y1'];\n\n if (coordSys) {\n var coordDimsInfos_1 = map(coordSys && coordSys.dimensions, function (coordDim) {\n var data = seriesModel.getData();\n var info = data.getDimensionInfo(data.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 dataDims = map(dims, function (dim, idx) {\n return {\n name: dim,\n type: coordDimsInfos_1[idx % 2].type\n };\n });\n areaData = new SeriesData(dataDims, maModel);\n } else {\n dataDims = [{\n name: 'value',\n type: 'float'\n }];\n areaData = new SeriesData(dataDims, maModel);\n }\n\n var optData = map(maModel.get('data'), curry(markAreaTransform, seriesModel, coordSys, maModel));\n\n if (coordSys) {\n optData = filter(optData, curry(markAreaFilter, coordSys));\n }\n\n var dimValueGetter = coordSys ? function (item, dimName, dataIndex, dimIndex) {\n // TODO should convert to ParsedValue?\n var rawVal = item.coord[Math.floor(dimIndex / 2)][dimIndex % 2];\n return parseDataValue(rawVal, dataDims[dimIndex]);\n } : function (item, dimName, dataIndex, dimIndex) {\n return parseDataValue(item.value, dataDims[dimIndex]);\n };\n areaData.initData(optData, null, dimValueGetter);\n areaData.hasItemOption = true;\n return areaData;\n}\n\nexport default MarkAreaView;","map":{"version":3,"sources":["D:/Work/WorkSpace/GitWorkSpace/TenShop/resource/ElectronicMall/src/ElectronicMallVue/node_modules/echarts/lib/component/marker/MarkAreaView.js"],"names":["__extends","colorUtil","SeriesData","numberUtil","graphic","toggleHoverEmphasis","setStatesStylesFromModel","markerHelper","MarkerView","retrieve","mergeAll","map","curry","filter","extend","isString","isCoordinateSystemType","MarkerModel","makeInner","getVisualFromData","setLabelStyle","getLabelStatesModels","getECData","parseDataValue","inner","markAreaTransform","seriesModel","coordSys","maModel","item","item0","item1","lt","dataTransform","rb","ltCoord","coord","rbCoord","Infinity","result","x0","x","y0","y","x1","y1","isInfinity","val","isNaN","isFinite","ifMarkAreaHasOnlyDim","dimIndex","fromCoord","toCoord","otherDimIndex","markAreaFilter","zoneFilter","dataFilter","getSingleMarkerEndPoint","data","idx","dims","api","coordinateSystem","itemModel","getItemModel","point","xPx","parsePercent","get","getWidth","yPx","getHeight","getMarkerPosition","pointValue0","getValues","pointValue1","clampPointValue0","clampData","clampPointValue1","pointValue","pt","dataToPoint","xAxis","getAxis","yAxis","toGlobalCoord","getExtent","dimPermutations","MarkAreaView","_super","_this","apply","arguments","type","prototype","updateTransform","markAreaModel","ecModel","eachSeries","getMarkerModelFromSeries","areaData_1","getData","each","points","dim","setItemLayout","el","getItemGraphicEl","setShape","renderSeries","seriesId","id","seriesData","areaGroupMap","markerGroupMap","polygonGroup","set","group","Group","add","markKeep","areaData","createList","setData","xAxisScale","scale","yAxisScale","xAxisExtent","yAxisExtent","xPointExtent","parse","yPointExtent","asc","overlapped","allClipped","style","getModel","getItemStyle","color","fill","modifyAlpha","stroke","setItemVisual","diff","layout","getItemLayout","polygon","Polygon","shape","setItemGraphicEl","update","newIdx","oldIdx","updateProps","remove","execute","eachItemGraphicEl","getItemVisual","useStyle","labelFetcher","labelDataIndex","defaultText","getName","inheritColor","dataModel","silent","dataDims","coordDimsInfos_1","dimensions","coordDim","info","getDimensionInfo","mapDimension","name","ordinalMeta","optData","dimValueGetter","dimName","dataIndex","rawVal","Math","floor","value","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\"; // TODO Optimize on polar\n\nimport * as colorUtil from 'zrender/lib/tool/color.js';\nimport SeriesData from '../../data/SeriesData.js';\nimport * as numberUtil from '../../util/number.js';\nimport * as graphic from '../../util/graphic.js';\nimport { toggleHoverEmphasis, setStatesStylesFromModel } from '../../util/states.js';\nimport * as markerHelper from './markerHelper.js';\nimport MarkerView from './MarkerView.js';\nimport { retrieve, mergeAll, map, curry, filter, extend, isString } from 'zrender/lib/core/util.js';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem.js';\nimport MarkerModel from './MarkerModel.js';\nimport { makeInner } from '../../util/model.js';\nimport { getVisualFromData } from '../../visual/helper.js';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { parseDataValue } from '../../data/helper/dataValueHelper.js';\nvar inner = makeInner();\n\nvar markAreaTransform = function (seriesModel, coordSys, maModel, item) {\n // item may be null\n var item0 = item[0];\n var item1 = item[1];\n\n if (!item0 || !item1) {\n return;\n }\n\n var lt = markerHelper.dataTransform(seriesModel, item0);\n var rb = markerHelper.dataTransform(seriesModel, item1); // FIXME make sure lt is less than rb\n\n var ltCoord = lt.coord;\n var rbCoord = rb.coord;\n ltCoord[0] = retrieve(ltCoord[0], -Infinity);\n ltCoord[1] = retrieve(ltCoord[1], -Infinity);\n rbCoord[0] = retrieve(rbCoord[0], Infinity);\n rbCoord[1] = retrieve(rbCoord[1], Infinity); // Merge option into one\n\n var result = mergeAll([{}, lt, rb]);\n result.coord = [lt.coord, rb.coord];\n result.x0 = lt.x;\n result.y0 = lt.y;\n result.x1 = rb.x;\n result.y1 = rb.y;\n return result;\n};\n\nfunction isInfinity(val) {\n return !isNaN(val) && !isFinite(val);\n} // If a markArea has one dim\n\n\nfunction ifMarkAreaHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) {\n var otherDimIndex = 1 - dimIndex;\n return isInfinity(fromCoord[otherDimIndex]) && isInfinity(toCoord[otherDimIndex]);\n}\n\nfunction markAreaFilter(coordSys, item) {\n var fromCoord = item.coord[0];\n var toCoord = item.coord[1];\n var item0 = {\n coord: fromCoord,\n x: item.x0,\n y: item.y0\n };\n var item1 = {\n coord: toCoord,\n x: item.x1,\n y: item.y1\n };\n\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n // In case\n // {\n // markArea: {\n // data: [{ yAxis: 2 }]\n // }\n // }\n if (fromCoord && toCoord && (ifMarkAreaHasOnlyDim(1, fromCoord, toCoord, coordSys) || ifMarkAreaHasOnlyDim(0, fromCoord, toCoord, coordSys))) {\n return true;\n } // Directly returning true may also do the work,\n // because markArea will not be shown automatically\n // when it's not included in coordinate system.\n // But filtering ahead can avoid keeping rendering markArea\n // when there are too many of them.\n\n\n return markerHelper.zoneFilter(coordSys, item0, item1);\n }\n\n return markerHelper.dataFilter(coordSys, item0) || markerHelper.dataFilter(coordSys, item1);\n} // dims can be ['x0', 'y0'], ['x1', 'y1'], ['x0', 'y1'], ['x1', 'y0']\n\n\nfunction getSingleMarkerEndPoint(data, idx, dims, seriesModel, api) {\n var coordSys = seriesModel.coordinateSystem;\n var itemModel = data.getItemModel(idx);\n var point;\n var xPx = numberUtil.parsePercent(itemModel.get(dims[0]), api.getWidth());\n var yPx = numberUtil.parsePercent(itemModel.get(dims[1]), 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 // Consider the case that user input the right-bottom point first\n // Pick the larger x and y as 'x1' and 'y1'\n var pointValue0 = data.getValues(['x0', 'y0'], idx);\n var pointValue1 = data.getValues(['x1', 'y1'], idx);\n var clampPointValue0 = coordSys.clampData(pointValue0);\n var clampPointValue1 = coordSys.clampData(pointValue1);\n var pointValue = [];\n\n if (dims[0] === 'x0') {\n pointValue[0] = clampPointValue0[0] > clampPointValue1[0] ? pointValue1[0] : pointValue0[0];\n } else {\n pointValue[0] = clampPointValue0[0] > clampPointValue1[0] ? pointValue0[0] : pointValue1[0];\n }\n\n if (dims[1] === 'y0') {\n pointValue[1] = clampPointValue0[1] > clampPointValue1[1] ? pointValue1[1] : pointValue0[1];\n } else {\n pointValue[1] = clampPointValue0[1] > clampPointValue1[1] ? pointValue0[1] : pointValue1[1];\n } // Use the getMarkerPosition\n\n\n point = seriesModel.getMarkerPosition(pointValue, dims, true);\n } else {\n var x = data.get(dims[0], idx);\n var y = data.get(dims[1], idx);\n var pt = [x, y];\n coordSys.clampData && coordSys.clampData(pt, pt);\n point = coordSys.dataToPoint(pt, true);\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 x = data.get(dims[0], idx);\n var y = data.get(dims[1], idx);\n\n if (isInfinity(x)) {\n point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[dims[0] === 'x0' ? 0 : 1]);\n } else if (isInfinity(y)) {\n point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[dims[1] === 'y0' ? 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 return point;\n}\n\nexport var dimPermutations = [['x0', 'y0'], ['x1', 'y0'], ['x1', 'y1'], ['x0', 'y1']];\n\nvar MarkAreaView =\n/** @class */\nfunction (_super) {\n __extends(MarkAreaView, _super);\n\n function MarkAreaView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = MarkAreaView.type;\n return _this;\n }\n\n MarkAreaView.prototype.updateTransform = function (markAreaModel, ecModel, api) {\n ecModel.eachSeries(function (seriesModel) {\n var maModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markArea');\n\n if (maModel) {\n var areaData_1 = maModel.getData();\n areaData_1.each(function (idx) {\n var points = map(dimPermutations, function (dim) {\n return getSingleMarkerEndPoint(areaData_1, idx, dim, seriesModel, api);\n }); // Layout\n\n areaData_1.setItemLayout(idx, points);\n var el = areaData_1.getItemGraphicEl(idx);\n el.setShape('points', points);\n });\n }\n }, this);\n };\n\n MarkAreaView.prototype.renderSeries = function (seriesModel, maModel, ecModel, api) {\n var coordSys = seriesModel.coordinateSystem;\n var seriesId = seriesModel.id;\n var seriesData = seriesModel.getData();\n var areaGroupMap = this.markerGroupMap;\n var polygonGroup = areaGroupMap.get(seriesId) || areaGroupMap.set(seriesId, {\n group: new graphic.Group()\n });\n this.group.add(polygonGroup.group);\n this.markKeep(polygonGroup);\n var areaData = createList(coordSys, seriesModel, maModel); // Line data for tooltip and formatter\n\n maModel.setData(areaData); // Update visual and layout of line\n\n areaData.each(function (idx) {\n // Layout\n var points = map(dimPermutations, function (dim) {\n return getSingleMarkerEndPoint(areaData, idx, dim, seriesModel, api);\n });\n var xAxisScale = coordSys.getAxis('x').scale;\n var yAxisScale = coordSys.getAxis('y').scale;\n var xAxisExtent = xAxisScale.getExtent();\n var yAxisExtent = yAxisScale.getExtent();\n var xPointExtent = [xAxisScale.parse(areaData.get('x0', idx)), xAxisScale.parse(areaData.get('x1', idx))];\n var yPointExtent = [yAxisScale.parse(areaData.get('y0', idx)), yAxisScale.parse(areaData.get('y1', idx))];\n numberUtil.asc(xPointExtent);\n numberUtil.asc(yPointExtent);\n var overlapped = !(xAxisExtent[0] > xPointExtent[1] || xAxisExtent[1] < xPointExtent[0] || yAxisExtent[0] > yPointExtent[1] || yAxisExtent[1] < yPointExtent[0]); // If none of the area is inside coordSys, allClipped is set to be true\n // in layout so that label will not be displayed. See #12591\n\n var allClipped = !overlapped;\n areaData.setItemLayout(idx, {\n points: points,\n allClipped: allClipped\n });\n var style = areaData.getItemModel(idx).getModel('itemStyle').getItemStyle();\n var color = getVisualFromData(seriesData, 'color');\n\n if (!style.fill) {\n style.fill = color;\n\n if (isString(style.fill)) {\n style.fill = colorUtil.modifyAlpha(style.fill, 0.4);\n }\n }\n\n if (!style.stroke) {\n style.stroke = color;\n } // Visual\n\n\n areaData.setItemVisual(idx, 'style', style);\n });\n areaData.diff(inner(polygonGroup).data).add(function (idx) {\n var layout = areaData.getItemLayout(idx);\n\n if (!layout.allClipped) {\n var polygon = new graphic.Polygon({\n shape: {\n points: layout.points\n }\n });\n areaData.setItemGraphicEl(idx, polygon);\n polygonGroup.group.add(polygon);\n }\n }).update(function (newIdx, oldIdx) {\n var polygon = inner(polygonGroup).data.getItemGraphicEl(oldIdx);\n var layout = areaData.getItemLayout(newIdx);\n\n if (!layout.allClipped) {\n if (polygon) {\n graphic.updateProps(polygon, {\n shape: {\n points: layout.points\n }\n }, maModel, newIdx);\n } else {\n polygon = new graphic.Polygon({\n shape: {\n points: layout.points\n }\n });\n }\n\n areaData.setItemGraphicEl(newIdx, polygon);\n polygonGroup.group.add(polygon);\n } else if (polygon) {\n polygonGroup.group.remove(polygon);\n }\n }).remove(function (idx) {\n var polygon = inner(polygonGroup).data.getItemGraphicEl(idx);\n polygonGroup.group.remove(polygon);\n }).execute();\n areaData.eachItemGraphicEl(function (polygon, idx) {\n var itemModel = areaData.getItemModel(idx);\n var style = areaData.getItemVisual(idx, 'style');\n polygon.useStyle(areaData.getItemVisual(idx, 'style'));\n setLabelStyle(polygon, getLabelStatesModels(itemModel), {\n labelFetcher: maModel,\n labelDataIndex: idx,\n defaultText: areaData.getName(idx) || '',\n inheritColor: isString(style.fill) ? colorUtil.modifyAlpha(style.fill, 1) : '#000'\n });\n setStatesStylesFromModel(polygon, itemModel);\n toggleHoverEmphasis(polygon, null, null, itemModel.get(['emphasis', 'disabled']));\n getECData(polygon).dataModel = maModel;\n });\n inner(polygonGroup).data = areaData;\n polygonGroup.group.silent = maModel.get('silent') || seriesModel.get('silent');\n };\n\n MarkAreaView.type = 'markArea';\n return MarkAreaView;\n}(MarkerView);\n\nfunction createList(coordSys, seriesModel, maModel) {\n var areaData;\n var dataDims;\n var dims = ['x0', 'y0', 'x1', 'y1'];\n\n if (coordSys) {\n var coordDimsInfos_1 = map(coordSys && coordSys.dimensions, function (coordDim) {\n var data = seriesModel.getData();\n var info = data.getDimensionInfo(data.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 dataDims = map(dims, function (dim, idx) {\n return {\n name: dim,\n type: coordDimsInfos_1[idx % 2].type\n };\n });\n areaData = new SeriesData(dataDims, maModel);\n } else {\n dataDims = [{\n name: 'value',\n type: 'float'\n }];\n areaData = new SeriesData(dataDims, maModel);\n }\n\n var optData = map(maModel.get('data'), curry(markAreaTransform, seriesModel, coordSys, maModel));\n\n if (coordSys) {\n optData = filter(optData, curry(markAreaFilter, coordSys));\n }\n\n var dimValueGetter = coordSys ? function (item, dimName, dataIndex, dimIndex) {\n // TODO should convert to ParsedValue?\n var rawVal = item.coord[Math.floor(dimIndex / 2)][dimIndex % 2];\n return parseDataValue(rawVal, dataDims[dimIndex]);\n } : function (item, dimName, dataIndex, dimIndex) {\n return parseDataValue(item.value, dataDims[dimIndex]);\n };\n areaData.initData(optData, null, dimValueGetter);\n areaData.hasItemOption = true;\n return areaData;\n}\n\nexport default MarkAreaView;"]},"metadata":{},"sourceType":"module"} |