1 line
31 KiB
JSON
1 line
31 KiB
JSON
{"ast":null,"code":"import \"core-js/modules/es.object.to-string.js\";\nimport \"core-js/modules/es.typed-array.float32-array.js\";\nimport \"core-js/modules/es.typed-array.at.js\";\nimport \"core-js/modules/es.typed-array.copy-within.js\";\nimport \"core-js/modules/es.typed-array.every.js\";\nimport \"core-js/modules/es.typed-array.fill.js\";\nimport \"core-js/modules/es.typed-array.filter.js\";\nimport \"core-js/modules/es.typed-array.find.js\";\nimport \"core-js/modules/es.typed-array.find-index.js\";\nimport \"core-js/modules/es.typed-array.for-each.js\";\nimport \"core-js/modules/es.typed-array.includes.js\";\nimport \"core-js/modules/es.typed-array.index-of.js\";\nimport \"core-js/modules/es.typed-array.iterator.js\";\nimport \"core-js/modules/es.typed-array.join.js\";\nimport \"core-js/modules/es.typed-array.last-index-of.js\";\nimport \"core-js/modules/es.typed-array.map.js\";\nimport \"core-js/modules/es.typed-array.reduce.js\";\nimport \"core-js/modules/es.typed-array.reduce-right.js\";\nimport \"core-js/modules/es.typed-array.reverse.js\";\nimport \"core-js/modules/es.typed-array.set.js\";\nimport \"core-js/modules/es.typed-array.slice.js\";\nimport \"core-js/modules/es.typed-array.some.js\";\nimport \"core-js/modules/es.typed-array.sort.js\";\nimport \"core-js/modules/es.typed-array.subarray.js\";\nimport \"core-js/modules/es.typed-array.to-locale-string.js\";\nimport \"core-js/modules/es.typed-array.to-string.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 Batch by color\n\nimport * as graphic from '../../util/graphic.js';\nimport * as lineContain from 'zrender/lib/contain/line.js';\nimport * as quadraticContain from 'zrender/lib/contain/quadratic.js';\nimport { getECData } from '../../util/innerStore.js';\n\nvar LargeLinesPathShape =\n/** @class */\nfunction () {\n function LargeLinesPathShape() {\n this.polyline = false;\n this.curveness = 0;\n this.segs = [];\n }\n\n return LargeLinesPathShape;\n}();\n\nvar LargeLinesPath =\n/** @class */\nfunction (_super) {\n __extends(LargeLinesPath, _super);\n\n function LargeLinesPath(opts) {\n var _this = _super.call(this, opts) || this;\n\n _this._off = 0;\n _this.hoverDataIdx = -1;\n return _this;\n }\n\n LargeLinesPath.prototype.reset = function () {\n this.notClear = false;\n this._off = 0;\n };\n\n LargeLinesPath.prototype.getDefaultStyle = function () {\n return {\n stroke: '#000',\n fill: null\n };\n };\n\n LargeLinesPath.prototype.getDefaultShape = function () {\n return new LargeLinesPathShape();\n };\n\n LargeLinesPath.prototype.buildPath = function (ctx, shape) {\n var segs = shape.segs;\n var curveness = shape.curveness;\n var i;\n\n if (shape.polyline) {\n for (i = this._off; i < segs.length;) {\n var count = segs[i++];\n\n if (count > 0) {\n ctx.moveTo(segs[i++], segs[i++]);\n\n for (var k = 1; k < count; k++) {\n ctx.lineTo(segs[i++], segs[i++]);\n }\n }\n }\n } else {\n for (i = this._off; i < segs.length;) {\n var x0 = segs[i++];\n var y0 = segs[i++];\n var x1 = segs[i++];\n var y1 = segs[i++];\n ctx.moveTo(x0, y0);\n\n if (curveness > 0) {\n var x2 = (x0 + x1) / 2 - (y0 - y1) * curveness;\n var y2 = (y0 + y1) / 2 - (x1 - x0) * curveness;\n ctx.quadraticCurveTo(x2, y2, x1, y1);\n } else {\n ctx.lineTo(x1, y1);\n }\n }\n }\n\n if (this.incremental) {\n this._off = i;\n this.notClear = true;\n }\n };\n\n LargeLinesPath.prototype.findDataIndex = function (x, y) {\n var shape = this.shape;\n var segs = shape.segs;\n var curveness = shape.curveness;\n var lineWidth = this.style.lineWidth;\n\n if (shape.polyline) {\n var dataIndex = 0;\n\n for (var i = 0; i < segs.length;) {\n var count = segs[i++];\n\n if (count > 0) {\n var x0 = segs[i++];\n var y0 = segs[i++];\n\n for (var k = 1; k < count; k++) {\n var x1 = segs[i++];\n var y1 = segs[i++];\n\n if (lineContain.containStroke(x0, y0, x1, y1, lineWidth, x, y)) {\n return dataIndex;\n }\n }\n }\n\n dataIndex++;\n }\n } else {\n var dataIndex = 0;\n\n for (var i = 0; i < segs.length;) {\n var x0 = segs[i++];\n var y0 = segs[i++];\n var x1 = segs[i++];\n var y1 = segs[i++];\n\n if (curveness > 0) {\n var x2 = (x0 + x1) / 2 - (y0 - y1) * curveness;\n var y2 = (y0 + y1) / 2 - (x1 - x0) * curveness;\n\n if (quadraticContain.containStroke(x0, y0, x2, y2, x1, y1, lineWidth, x, y)) {\n return dataIndex;\n }\n } else {\n if (lineContain.containStroke(x0, y0, x1, y1, lineWidth, x, y)) {\n return dataIndex;\n }\n }\n\n dataIndex++;\n }\n }\n\n return -1;\n };\n\n LargeLinesPath.prototype.contain = function (x, y) {\n var localPos = this.transformCoordToLocal(x, y);\n var rect = this.getBoundingRect();\n x = localPos[0];\n y = localPos[1];\n\n if (rect.contain(x, y)) {\n // Cache found data index.\n var dataIdx = this.hoverDataIdx = this.findDataIndex(x, y);\n return dataIdx >= 0;\n }\n\n this.hoverDataIdx = -1;\n return false;\n };\n\n LargeLinesPath.prototype.getBoundingRect = function () {\n // Ignore stroke for large symbol draw.\n var rect = this._rect;\n\n if (!rect) {\n var shape = this.shape;\n var points = shape.segs;\n var minX = Infinity;\n var minY = Infinity;\n var maxX = -Infinity;\n var maxY = -Infinity;\n\n for (var i = 0; i < points.length;) {\n var x = points[i++];\n var y = points[i++];\n minX = Math.min(x, minX);\n maxX = Math.max(x, maxX);\n minY = Math.min(y, minY);\n maxY = Math.max(y, maxY);\n }\n\n rect = this._rect = new graphic.BoundingRect(minX, minY, maxX, maxY);\n }\n\n return rect;\n };\n\n return LargeLinesPath;\n}(graphic.Path);\n\nvar LargeLineDraw =\n/** @class */\nfunction () {\n function LargeLineDraw() {\n this.group = new graphic.Group();\n }\n /**\n * Update symbols draw by new data\n */\n\n\n LargeLineDraw.prototype.updateData = function (data) {\n this._clear();\n\n var lineEl = this._create();\n\n lineEl.setShape({\n segs: data.getLayout('linesPoints')\n });\n\n this._setCommon(lineEl, data);\n };\n\n ;\n /**\n * @override\n */\n\n LargeLineDraw.prototype.incrementalPrepareUpdate = function (data) {\n this.group.removeAll();\n\n this._clear();\n };\n\n ;\n /**\n * @override\n */\n\n LargeLineDraw.prototype.incrementalUpdate = function (taskParams, data) {\n var lastAdded = this._newAdded[0];\n var linePoints = data.getLayout('linesPoints');\n var oldSegs = lastAdded && lastAdded.shape.segs; // Merging the exists. Each element has 1e4 points.\n // Consider the performance balance between too much elements and too much points in one shape(may affect hover optimization)\n\n if (oldSegs && oldSegs.length < 2e4) {\n var oldLen = oldSegs.length;\n var newSegs = new Float32Array(oldLen + linePoints.length); // Concat two array\n\n newSegs.set(oldSegs);\n newSegs.set(linePoints, oldLen);\n lastAdded.setShape({\n segs: newSegs\n });\n } else {\n // Clear\n this._newAdded = [];\n\n var lineEl = this._create();\n\n lineEl.incremental = true;\n lineEl.setShape({\n segs: linePoints\n });\n\n this._setCommon(lineEl, data);\n\n lineEl.__startIndex = taskParams.start;\n }\n };\n /**\n * @override\n */\n\n\n LargeLineDraw.prototype.remove = function () {\n this._clear();\n };\n\n LargeLineDraw.prototype.eachRendered = function (cb) {\n this._newAdded[0] && cb(this._newAdded[0]);\n };\n\n LargeLineDraw.prototype._create = function () {\n var lineEl = new LargeLinesPath({\n cursor: 'default',\n ignoreCoarsePointer: true\n });\n\n this._newAdded.push(lineEl);\n\n this.group.add(lineEl);\n return lineEl;\n };\n\n LargeLineDraw.prototype._setCommon = function (lineEl, data, isIncremental) {\n var hostModel = data.hostModel;\n lineEl.setShape({\n polyline: hostModel.get('polyline'),\n curveness: hostModel.get(['lineStyle', 'curveness'])\n });\n lineEl.useStyle(hostModel.getModel('lineStyle').getLineStyle());\n lineEl.style.strokeNoScale = true;\n var style = data.getVisual('style');\n\n if (style && style.stroke) {\n lineEl.setStyle('stroke', style.stroke);\n }\n\n lineEl.setStyle('fill', null);\n var ecData = getECData(lineEl); // Enable tooltip\n // PENDING May have performance issue when path is extremely large\n\n ecData.seriesIndex = hostModel.seriesIndex;\n lineEl.on('mousemove', function (e) {\n ecData.dataIndex = null;\n var dataIndex = lineEl.hoverDataIdx;\n\n if (dataIndex > 0) {\n // Provide dataIndex for tooltip\n ecData.dataIndex = dataIndex + lineEl.__startIndex;\n }\n });\n };\n\n ;\n\n LargeLineDraw.prototype._clear = function () {\n this._newAdded = [];\n this.group.removeAll();\n };\n\n ;\n return LargeLineDraw;\n}();\n\nexport default LargeLineDraw;","map":{"version":3,"sources":["D:/Work/WorkSpace/GitWorkSpace/TenShop/resource/ElectronicMall/src/ElectronicMallVue/node_modules/echarts/lib/chart/helper/LargeLineDraw.js"],"names":["__extends","graphic","lineContain","quadraticContain","getECData","LargeLinesPathShape","polyline","curveness","segs","LargeLinesPath","_super","opts","_this","call","_off","hoverDataIdx","prototype","reset","notClear","getDefaultStyle","stroke","fill","getDefaultShape","buildPath","ctx","shape","i","length","count","moveTo","k","lineTo","x0","y0","x1","y1","x2","y2","quadraticCurveTo","incremental","findDataIndex","x","y","lineWidth","style","dataIndex","containStroke","contain","localPos","transformCoordToLocal","rect","getBoundingRect","dataIdx","_rect","points","minX","Infinity","minY","maxX","maxY","Math","min","max","BoundingRect","Path","LargeLineDraw","group","Group","updateData","data","_clear","lineEl","_create","setShape","getLayout","_setCommon","incrementalPrepareUpdate","removeAll","incrementalUpdate","taskParams","lastAdded","_newAdded","linePoints","oldSegs","oldLen","newSegs","Float32Array","set","__startIndex","start","remove","eachRendered","cb","cursor","ignoreCoarsePointer","push","add","isIncremental","hostModel","get","useStyle","getModel","getLineStyle","strokeNoScale","getVisual","setStyle","ecData","seriesIndex","on","e"],"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 Batch by color\n\nimport * as graphic from '../../util/graphic.js';\nimport * as lineContain from 'zrender/lib/contain/line.js';\nimport * as quadraticContain from 'zrender/lib/contain/quadratic.js';\nimport { getECData } from '../../util/innerStore.js';\n\nvar LargeLinesPathShape =\n/** @class */\nfunction () {\n function LargeLinesPathShape() {\n this.polyline = false;\n this.curveness = 0;\n this.segs = [];\n }\n\n return LargeLinesPathShape;\n}();\n\nvar LargeLinesPath =\n/** @class */\nfunction (_super) {\n __extends(LargeLinesPath, _super);\n\n function LargeLinesPath(opts) {\n var _this = _super.call(this, opts) || this;\n\n _this._off = 0;\n _this.hoverDataIdx = -1;\n return _this;\n }\n\n LargeLinesPath.prototype.reset = function () {\n this.notClear = false;\n this._off = 0;\n };\n\n LargeLinesPath.prototype.getDefaultStyle = function () {\n return {\n stroke: '#000',\n fill: null\n };\n };\n\n LargeLinesPath.prototype.getDefaultShape = function () {\n return new LargeLinesPathShape();\n };\n\n LargeLinesPath.prototype.buildPath = function (ctx, shape) {\n var segs = shape.segs;\n var curveness = shape.curveness;\n var i;\n\n if (shape.polyline) {\n for (i = this._off; i < segs.length;) {\n var count = segs[i++];\n\n if (count > 0) {\n ctx.moveTo(segs[i++], segs[i++]);\n\n for (var k = 1; k < count; k++) {\n ctx.lineTo(segs[i++], segs[i++]);\n }\n }\n }\n } else {\n for (i = this._off; i < segs.length;) {\n var x0 = segs[i++];\n var y0 = segs[i++];\n var x1 = segs[i++];\n var y1 = segs[i++];\n ctx.moveTo(x0, y0);\n\n if (curveness > 0) {\n var x2 = (x0 + x1) / 2 - (y0 - y1) * curveness;\n var y2 = (y0 + y1) / 2 - (x1 - x0) * curveness;\n ctx.quadraticCurveTo(x2, y2, x1, y1);\n } else {\n ctx.lineTo(x1, y1);\n }\n }\n }\n\n if (this.incremental) {\n this._off = i;\n this.notClear = true;\n }\n };\n\n LargeLinesPath.prototype.findDataIndex = function (x, y) {\n var shape = this.shape;\n var segs = shape.segs;\n var curveness = shape.curveness;\n var lineWidth = this.style.lineWidth;\n\n if (shape.polyline) {\n var dataIndex = 0;\n\n for (var i = 0; i < segs.length;) {\n var count = segs[i++];\n\n if (count > 0) {\n var x0 = segs[i++];\n var y0 = segs[i++];\n\n for (var k = 1; k < count; k++) {\n var x1 = segs[i++];\n var y1 = segs[i++];\n\n if (lineContain.containStroke(x0, y0, x1, y1, lineWidth, x, y)) {\n return dataIndex;\n }\n }\n }\n\n dataIndex++;\n }\n } else {\n var dataIndex = 0;\n\n for (var i = 0; i < segs.length;) {\n var x0 = segs[i++];\n var y0 = segs[i++];\n var x1 = segs[i++];\n var y1 = segs[i++];\n\n if (curveness > 0) {\n var x2 = (x0 + x1) / 2 - (y0 - y1) * curveness;\n var y2 = (y0 + y1) / 2 - (x1 - x0) * curveness;\n\n if (quadraticContain.containStroke(x0, y0, x2, y2, x1, y1, lineWidth, x, y)) {\n return dataIndex;\n }\n } else {\n if (lineContain.containStroke(x0, y0, x1, y1, lineWidth, x, y)) {\n return dataIndex;\n }\n }\n\n dataIndex++;\n }\n }\n\n return -1;\n };\n\n LargeLinesPath.prototype.contain = function (x, y) {\n var localPos = this.transformCoordToLocal(x, y);\n var rect = this.getBoundingRect();\n x = localPos[0];\n y = localPos[1];\n\n if (rect.contain(x, y)) {\n // Cache found data index.\n var dataIdx = this.hoverDataIdx = this.findDataIndex(x, y);\n return dataIdx >= 0;\n }\n\n this.hoverDataIdx = -1;\n return false;\n };\n\n LargeLinesPath.prototype.getBoundingRect = function () {\n // Ignore stroke for large symbol draw.\n var rect = this._rect;\n\n if (!rect) {\n var shape = this.shape;\n var points = shape.segs;\n var minX = Infinity;\n var minY = Infinity;\n var maxX = -Infinity;\n var maxY = -Infinity;\n\n for (var i = 0; i < points.length;) {\n var x = points[i++];\n var y = points[i++];\n minX = Math.min(x, minX);\n maxX = Math.max(x, maxX);\n minY = Math.min(y, minY);\n maxY = Math.max(y, maxY);\n }\n\n rect = this._rect = new graphic.BoundingRect(minX, minY, maxX, maxY);\n }\n\n return rect;\n };\n\n return LargeLinesPath;\n}(graphic.Path);\n\nvar LargeLineDraw =\n/** @class */\nfunction () {\n function LargeLineDraw() {\n this.group = new graphic.Group();\n }\n /**\n * Update symbols draw by new data\n */\n\n\n LargeLineDraw.prototype.updateData = function (data) {\n this._clear();\n\n var lineEl = this._create();\n\n lineEl.setShape({\n segs: data.getLayout('linesPoints')\n });\n\n this._setCommon(lineEl, data);\n };\n\n ;\n /**\n * @override\n */\n\n LargeLineDraw.prototype.incrementalPrepareUpdate = function (data) {\n this.group.removeAll();\n\n this._clear();\n };\n\n ;\n /**\n * @override\n */\n\n LargeLineDraw.prototype.incrementalUpdate = function (taskParams, data) {\n var lastAdded = this._newAdded[0];\n var linePoints = data.getLayout('linesPoints');\n var oldSegs = lastAdded && lastAdded.shape.segs; // Merging the exists. Each element has 1e4 points.\n // Consider the performance balance between too much elements and too much points in one shape(may affect hover optimization)\n\n if (oldSegs && oldSegs.length < 2e4) {\n var oldLen = oldSegs.length;\n var newSegs = new Float32Array(oldLen + linePoints.length); // Concat two array\n\n newSegs.set(oldSegs);\n newSegs.set(linePoints, oldLen);\n lastAdded.setShape({\n segs: newSegs\n });\n } else {\n // Clear\n this._newAdded = [];\n\n var lineEl = this._create();\n\n lineEl.incremental = true;\n lineEl.setShape({\n segs: linePoints\n });\n\n this._setCommon(lineEl, data);\n\n lineEl.__startIndex = taskParams.start;\n }\n };\n /**\n * @override\n */\n\n\n LargeLineDraw.prototype.remove = function () {\n this._clear();\n };\n\n LargeLineDraw.prototype.eachRendered = function (cb) {\n this._newAdded[0] && cb(this._newAdded[0]);\n };\n\n LargeLineDraw.prototype._create = function () {\n var lineEl = new LargeLinesPath({\n cursor: 'default',\n ignoreCoarsePointer: true\n });\n\n this._newAdded.push(lineEl);\n\n this.group.add(lineEl);\n return lineEl;\n };\n\n LargeLineDraw.prototype._setCommon = function (lineEl, data, isIncremental) {\n var hostModel = data.hostModel;\n lineEl.setShape({\n polyline: hostModel.get('polyline'),\n curveness: hostModel.get(['lineStyle', 'curveness'])\n });\n lineEl.useStyle(hostModel.getModel('lineStyle').getLineStyle());\n lineEl.style.strokeNoScale = true;\n var style = data.getVisual('style');\n\n if (style && style.stroke) {\n lineEl.setStyle('stroke', style.stroke);\n }\n\n lineEl.setStyle('fill', null);\n var ecData = getECData(lineEl); // Enable tooltip\n // PENDING May have performance issue when path is extremely large\n\n ecData.seriesIndex = hostModel.seriesIndex;\n lineEl.on('mousemove', function (e) {\n ecData.dataIndex = null;\n var dataIndex = lineEl.hoverDataIdx;\n\n if (dataIndex > 0) {\n // Provide dataIndex for tooltip\n ecData.dataIndex = dataIndex + lineEl.__startIndex;\n }\n });\n };\n\n ;\n\n LargeLineDraw.prototype._clear = function () {\n this._newAdded = [];\n this.group.removeAll();\n };\n\n ;\n return LargeLineDraw;\n}();\n\nexport default LargeLineDraw;"]},"metadata":{},"sourceType":"module"} |