1 line
42 KiB
JSON
1 line
42 KiB
JSON
{"ast":null,"code":"import \"core-js/modules/es.array.fill.js\";\n\n/*\r\n* Licensed to the Apache Software Foundation (ASF) under one\r\n* or more contributor license agreements. See the NOTICE file\r\n* distributed with this work for additional information\r\n* regarding copyright ownership. The ASF licenses this file\r\n* to you under the Apache License, Version 2.0 (the\r\n* \"License\"); you may not use this file except in compliance\r\n* with the License. You may obtain a copy of the License at\r\n*\r\n* http://www.apache.org/licenses/LICENSE-2.0\r\n*\r\n* Unless required by applicable law or agreed to in writing,\r\n* software distributed under the License is distributed on an\r\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n* KIND, either express or implied. See the License for the\r\n* specific language governing permissions and limitations\r\n* under the License.\r\n*/\n\n/**\r\n * AUTO-GENERATED FILE. DO NOT MODIFY.\r\n */\n\n/*\r\n* Licensed to the Apache Software Foundation (ASF) under one\r\n* or more contributor license agreements. See the NOTICE file\r\n* distributed with this work for additional information\r\n* regarding copyright ownership. The ASF licenses this file\r\n* to you under the Apache License, Version 2.0 (the\r\n* \"License\"); you may not use this file except in compliance\r\n* with the License. You may obtain a copy of the License at\r\n*\r\n* http://www.apache.org/licenses/LICENSE-2.0\r\n*\r\n* Unless required by applicable law or agreed to in writing,\r\n* software distributed under the License is distributed on an\r\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n* KIND, either express or implied. See the License for the\r\n* specific language governing permissions and limitations\r\n* under the License.\r\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 var lt = markerHelper.dataTransform(seriesModel, item[0]);\n var rb = markerHelper.dataTransform(seriesModel, item[1]); // 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 isInifinity(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 isInifinity(fromCoord[otherDimIndex]) && isInifinity(toCoord[otherDimIndex]);\n}\n\nfunction markAreaFilter(coordSys, item) {\n var fromCoord = item.coord[0];\n var toCoord = item.coord[1];\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 }\n }\n\n return markerHelper.dataFilter(coordSys, {\n coord: fromCoord,\n x: item.x0,\n y: item.y0\n }) || markerHelper.dataFilter(coordSys, {\n coord: toCoord,\n x: item.x1,\n y: item.y1\n });\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 // Use the getMarkerPoisition\n point = seriesModel.getMarkerPosition(data.getValues(dims, idx));\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 (isInifinity(x)) {\n point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[dims[0] === 'x0' ? 0 : 1]);\n } else if (isInifinity(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\nvar 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/qingge-Market/qingge-vue/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","lt","dataTransform","rb","ltCoord","coord","rbCoord","Infinity","result","x0","x","y0","y","x1","y1","isInifinity","val","isNaN","isFinite","ifMarkAreaHasOnlyDim","dimIndex","fromCoord","toCoord","otherDimIndex","markAreaFilter","dataFilter","getSingleMarkerEndPoint","data","idx","dims","api","coordinateSystem","itemModel","getItemModel","point","xPx","parsePercent","get","getWidth","yPx","getHeight","getMarkerPosition","getValues","pt","clampData","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":["\r\n/*\r\n* Licensed to the Apache Software Foundation (ASF) under one\r\n* or more contributor license agreements. See the NOTICE file\r\n* distributed with this work for additional information\r\n* regarding copyright ownership. The ASF licenses this file\r\n* to you under the Apache License, Version 2.0 (the\r\n* \"License\"); you may not use this file except in compliance\r\n* with the License. You may obtain a copy of the License at\r\n*\r\n* http://www.apache.org/licenses/LICENSE-2.0\r\n*\r\n* Unless required by applicable law or agreed to in writing,\r\n* software distributed under the License is distributed on an\r\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n* KIND, either express or implied. See the License for the\r\n* specific language governing permissions and limitations\r\n* under the License.\r\n*/\r\n\r\n\r\n/**\r\n * AUTO-GENERATED FILE. DO NOT MODIFY.\r\n */\r\n\r\n/*\r\n* Licensed to the Apache Software Foundation (ASF) under one\r\n* or more contributor license agreements. See the NOTICE file\r\n* distributed with this work for additional information\r\n* regarding copyright ownership. The ASF licenses this file\r\n* to you under the Apache License, Version 2.0 (the\r\n* \"License\"); you may not use this file except in compliance\r\n* with the License. You may obtain a copy of the License at\r\n*\r\n* http://www.apache.org/licenses/LICENSE-2.0\r\n*\r\n* Unless required by applicable law or agreed to in writing,\r\n* software distributed under the License is distributed on an\r\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n* KIND, either express or implied. See the License for the\r\n* specific language governing permissions and limitations\r\n* under the License.\r\n*/\r\nimport { __extends } from \"tslib\"; // TODO Optimize on polar\r\n\r\nimport * as colorUtil from 'zrender/lib/tool/color.js';\r\nimport SeriesData from '../../data/SeriesData.js';\r\nimport * as numberUtil from '../../util/number.js';\r\nimport * as graphic from '../../util/graphic.js';\r\nimport { toggleHoverEmphasis, setStatesStylesFromModel } from '../../util/states.js';\r\nimport * as markerHelper from './markerHelper.js';\r\nimport MarkerView from './MarkerView.js';\r\nimport { retrieve, mergeAll, map, curry, filter, extend, isString } from 'zrender/lib/core/util.js';\r\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem.js';\r\nimport MarkerModel from './MarkerModel.js';\r\nimport { makeInner } from '../../util/model.js';\r\nimport { getVisualFromData } from '../../visual/helper.js';\r\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle.js';\r\nimport { getECData } from '../../util/innerStore.js';\r\nimport { parseDataValue } from '../../data/helper/dataValueHelper.js';\r\nvar inner = makeInner();\r\n\r\nvar markAreaTransform = function (seriesModel, coordSys, maModel, item) {\r\n var lt = markerHelper.dataTransform(seriesModel, item[0]);\r\n var rb = markerHelper.dataTransform(seriesModel, item[1]); // FIXME make sure lt is less than rb\r\n\r\n var ltCoord = lt.coord;\r\n var rbCoord = rb.coord;\r\n ltCoord[0] = retrieve(ltCoord[0], -Infinity);\r\n ltCoord[1] = retrieve(ltCoord[1], -Infinity);\r\n rbCoord[0] = retrieve(rbCoord[0], Infinity);\r\n rbCoord[1] = retrieve(rbCoord[1], Infinity); // Merge option into one\r\n\r\n var result = mergeAll([{}, lt, rb]);\r\n result.coord = [lt.coord, rb.coord];\r\n result.x0 = lt.x;\r\n result.y0 = lt.y;\r\n result.x1 = rb.x;\r\n result.y1 = rb.y;\r\n return result;\r\n};\r\n\r\nfunction isInifinity(val) {\r\n return !isNaN(val) && !isFinite(val);\r\n} // If a markArea has one dim\r\n\r\n\r\nfunction ifMarkAreaHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) {\r\n var otherDimIndex = 1 - dimIndex;\r\n return isInifinity(fromCoord[otherDimIndex]) && isInifinity(toCoord[otherDimIndex]);\r\n}\r\n\r\nfunction markAreaFilter(coordSys, item) {\r\n var fromCoord = item.coord[0];\r\n var toCoord = item.coord[1];\r\n\r\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\r\n // In case\r\n // {\r\n // markArea: {\r\n // data: [{ yAxis: 2 }]\r\n // }\r\n // }\r\n if (fromCoord && toCoord && (ifMarkAreaHasOnlyDim(1, fromCoord, toCoord, coordSys) || ifMarkAreaHasOnlyDim(0, fromCoord, toCoord, coordSys))) {\r\n return true;\r\n }\r\n }\r\n\r\n return markerHelper.dataFilter(coordSys, {\r\n coord: fromCoord,\r\n x: item.x0,\r\n y: item.y0\r\n }) || markerHelper.dataFilter(coordSys, {\r\n coord: toCoord,\r\n x: item.x1,\r\n y: item.y1\r\n });\r\n} // dims can be ['x0', 'y0'], ['x1', 'y1'], ['x0', 'y1'], ['x1', 'y0']\r\n\r\n\r\nfunction getSingleMarkerEndPoint(data, idx, dims, seriesModel, api) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var itemModel = data.getItemModel(idx);\r\n var point;\r\n var xPx = numberUtil.parsePercent(itemModel.get(dims[0]), api.getWidth());\r\n var yPx = numberUtil.parsePercent(itemModel.get(dims[1]), api.getHeight());\r\n\r\n if (!isNaN(xPx) && !isNaN(yPx)) {\r\n point = [xPx, yPx];\r\n } else {\r\n // Chart like bar may have there own marker positioning logic\r\n if (seriesModel.getMarkerPosition) {\r\n // Use the getMarkerPoisition\r\n point = seriesModel.getMarkerPosition(data.getValues(dims, idx));\r\n } else {\r\n var x = data.get(dims[0], idx);\r\n var y = data.get(dims[1], idx);\r\n var pt = [x, y];\r\n coordSys.clampData && coordSys.clampData(pt, pt);\r\n point = coordSys.dataToPoint(pt, true);\r\n }\r\n\r\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\r\n // TODO: TYPE ts@4.1 may still infer it as Axis instead of Axis2D. Not sure if it's a bug\r\n var xAxis = coordSys.getAxis('x');\r\n var yAxis = coordSys.getAxis('y');\r\n var x = data.get(dims[0], idx);\r\n var y = data.get(dims[1], idx);\r\n\r\n if (isInifinity(x)) {\r\n point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[dims[0] === 'x0' ? 0 : 1]);\r\n } else if (isInifinity(y)) {\r\n point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[dims[1] === 'y0' ? 0 : 1]);\r\n }\r\n } // Use x, y if has any\r\n\r\n\r\n if (!isNaN(xPx)) {\r\n point[0] = xPx;\r\n }\r\n\r\n if (!isNaN(yPx)) {\r\n point[1] = yPx;\r\n }\r\n }\r\n\r\n return point;\r\n}\r\n\r\nvar dimPermutations = [['x0', 'y0'], ['x1', 'y0'], ['x1', 'y1'], ['x0', 'y1']];\r\n\r\nvar MarkAreaView =\r\n/** @class */\r\nfunction (_super) {\r\n __extends(MarkAreaView, _super);\r\n\r\n function MarkAreaView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n\r\n _this.type = MarkAreaView.type;\r\n return _this;\r\n }\r\n\r\n MarkAreaView.prototype.updateTransform = function (markAreaModel, ecModel, api) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n var maModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markArea');\r\n\r\n if (maModel) {\r\n var areaData_1 = maModel.getData();\r\n areaData_1.each(function (idx) {\r\n var points = map(dimPermutations, function (dim) {\r\n return getSingleMarkerEndPoint(areaData_1, idx, dim, seriesModel, api);\r\n }); // Layout\r\n\r\n areaData_1.setItemLayout(idx, points);\r\n var el = areaData_1.getItemGraphicEl(idx);\r\n el.setShape('points', points);\r\n });\r\n }\r\n }, this);\r\n };\r\n\r\n MarkAreaView.prototype.renderSeries = function (seriesModel, maModel, ecModel, api) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var seriesId = seriesModel.id;\r\n var seriesData = seriesModel.getData();\r\n var areaGroupMap = this.markerGroupMap;\r\n var polygonGroup = areaGroupMap.get(seriesId) || areaGroupMap.set(seriesId, {\r\n group: new graphic.Group()\r\n });\r\n this.group.add(polygonGroup.group);\r\n this.markKeep(polygonGroup);\r\n var areaData = createList(coordSys, seriesModel, maModel); // Line data for tooltip and formatter\r\n\r\n maModel.setData(areaData); // Update visual and layout of line\r\n\r\n areaData.each(function (idx) {\r\n // Layout\r\n var points = map(dimPermutations, function (dim) {\r\n return getSingleMarkerEndPoint(areaData, idx, dim, seriesModel, api);\r\n });\r\n var xAxisScale = coordSys.getAxis('x').scale;\r\n var yAxisScale = coordSys.getAxis('y').scale;\r\n var xAxisExtent = xAxisScale.getExtent();\r\n var yAxisExtent = yAxisScale.getExtent();\r\n var xPointExtent = [xAxisScale.parse(areaData.get('x0', idx)), xAxisScale.parse(areaData.get('x1', idx))];\r\n var yPointExtent = [yAxisScale.parse(areaData.get('y0', idx)), yAxisScale.parse(areaData.get('y1', idx))];\r\n numberUtil.asc(xPointExtent);\r\n numberUtil.asc(yPointExtent);\r\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\r\n // in layout so that label will not be displayed. See #12591\r\n\r\n var allClipped = !overlapped;\r\n areaData.setItemLayout(idx, {\r\n points: points,\r\n allClipped: allClipped\r\n });\r\n var style = areaData.getItemModel(idx).getModel('itemStyle').getItemStyle();\r\n var color = getVisualFromData(seriesData, 'color');\r\n\r\n if (!style.fill) {\r\n style.fill = color;\r\n\r\n if (isString(style.fill)) {\r\n style.fill = colorUtil.modifyAlpha(style.fill, 0.4);\r\n }\r\n }\r\n\r\n if (!style.stroke) {\r\n style.stroke = color;\r\n } // Visual\r\n\r\n\r\n areaData.setItemVisual(idx, 'style', style);\r\n });\r\n areaData.diff(inner(polygonGroup).data).add(function (idx) {\r\n var layout = areaData.getItemLayout(idx);\r\n\r\n if (!layout.allClipped) {\r\n var polygon = new graphic.Polygon({\r\n shape: {\r\n points: layout.points\r\n }\r\n });\r\n areaData.setItemGraphicEl(idx, polygon);\r\n polygonGroup.group.add(polygon);\r\n }\r\n }).update(function (newIdx, oldIdx) {\r\n var polygon = inner(polygonGroup).data.getItemGraphicEl(oldIdx);\r\n var layout = areaData.getItemLayout(newIdx);\r\n\r\n if (!layout.allClipped) {\r\n if (polygon) {\r\n graphic.updateProps(polygon, {\r\n shape: {\r\n points: layout.points\r\n }\r\n }, maModel, newIdx);\r\n } else {\r\n polygon = new graphic.Polygon({\r\n shape: {\r\n points: layout.points\r\n }\r\n });\r\n }\r\n\r\n areaData.setItemGraphicEl(newIdx, polygon);\r\n polygonGroup.group.add(polygon);\r\n } else if (polygon) {\r\n polygonGroup.group.remove(polygon);\r\n }\r\n }).remove(function (idx) {\r\n var polygon = inner(polygonGroup).data.getItemGraphicEl(idx);\r\n polygonGroup.group.remove(polygon);\r\n }).execute();\r\n areaData.eachItemGraphicEl(function (polygon, idx) {\r\n var itemModel = areaData.getItemModel(idx);\r\n var style = areaData.getItemVisual(idx, 'style');\r\n polygon.useStyle(areaData.getItemVisual(idx, 'style'));\r\n setLabelStyle(polygon, getLabelStatesModels(itemModel), {\r\n labelFetcher: maModel,\r\n labelDataIndex: idx,\r\n defaultText: areaData.getName(idx) || '',\r\n inheritColor: isString(style.fill) ? colorUtil.modifyAlpha(style.fill, 1) : '#000'\r\n });\r\n setStatesStylesFromModel(polygon, itemModel);\r\n toggleHoverEmphasis(polygon, null, null, itemModel.get(['emphasis', 'disabled']));\r\n getECData(polygon).dataModel = maModel;\r\n });\r\n inner(polygonGroup).data = areaData;\r\n polygonGroup.group.silent = maModel.get('silent') || seriesModel.get('silent');\r\n };\r\n\r\n MarkAreaView.type = 'markArea';\r\n return MarkAreaView;\r\n}(MarkerView);\r\n\r\nfunction createList(coordSys, seriesModel, maModel) {\r\n var areaData;\r\n var dataDims;\r\n var dims = ['x0', 'y0', 'x1', 'y1'];\r\n\r\n if (coordSys) {\r\n var coordDimsInfos_1 = map(coordSys && coordSys.dimensions, function (coordDim) {\r\n var data = seriesModel.getData();\r\n var info = data.getDimensionInfo(data.mapDimension(coordDim)) || {}; // In map series data don't have lng and lat dimension. Fallback to same with coordSys\r\n\r\n return extend(extend({}, info), {\r\n name: coordDim,\r\n // DON'T use ordinalMeta to parse and collect ordinal.\r\n ordinalMeta: null\r\n });\r\n });\r\n dataDims = map(dims, function (dim, idx) {\r\n return {\r\n name: dim,\r\n type: coordDimsInfos_1[idx % 2].type\r\n };\r\n });\r\n areaData = new SeriesData(dataDims, maModel);\r\n } else {\r\n dataDims = [{\r\n name: 'value',\r\n type: 'float'\r\n }];\r\n areaData = new SeriesData(dataDims, maModel);\r\n }\r\n\r\n var optData = map(maModel.get('data'), curry(markAreaTransform, seriesModel, coordSys, maModel));\r\n\r\n if (coordSys) {\r\n optData = filter(optData, curry(markAreaFilter, coordSys));\r\n }\r\n\r\n var dimValueGetter = coordSys ? function (item, dimName, dataIndex, dimIndex) {\r\n // TODO should convert to ParsedValue?\r\n var rawVal = item.coord[Math.floor(dimIndex / 2)][dimIndex % 2];\r\n return parseDataValue(rawVal, dataDims[dimIndex]);\r\n } : function (item, dimName, dataIndex, dimIndex) {\r\n return parseDataValue(item.value, dataDims[dimIndex]);\r\n };\r\n areaData.initData(optData, null, dimValueGetter);\r\n areaData.hasItemOption = true;\r\n return areaData;\r\n}\r\n\r\nexport default MarkAreaView;"]},"metadata":{},"sourceType":"module"} |