qauMaWeb/node_modules/.cache/babel-loader/f9e1efa620975c5ec1c7a7597fc...

1 line
49 KiB
JSON

{"ast":null,"code":"import \"core-js/modules/es.function.name.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 { isArray, each } from 'zrender/lib/core/util.js';\nimport * as vector from 'zrender/lib/core/vector.js';\nimport * as symbolUtil from '../../util/symbol.js';\nimport ECLinePath from './LinePath.js';\nimport * as graphic from '../../util/graphic.js';\nimport { toggleHoverEmphasis, enterEmphasis, leaveEmphasis, SPECIAL_STATES } from '../../util/states.js';\nimport { getLabelStatesModels, setLabelStyle } from '../../label/labelStyle.js';\nimport { round } from '../../util/number.js';\nvar SYMBOL_CATEGORIES = ['fromSymbol', 'toSymbol'];\n\nfunction makeSymbolTypeKey(symbolCategory) {\n return '_' + symbolCategory + 'Type';\n}\n/**\n * @inner\n */\n\n\nfunction createSymbol(name, lineData, idx) {\n var symbolType = lineData.getItemVisual(idx, name);\n\n if (!symbolType || symbolType === 'none') {\n return;\n }\n\n var symbolSize = lineData.getItemVisual(idx, name + 'Size');\n var symbolRotate = lineData.getItemVisual(idx, name + 'Rotate');\n var symbolOffset = lineData.getItemVisual(idx, name + 'Offset');\n var symbolKeepAspect = lineData.getItemVisual(idx, name + 'KeepAspect');\n var symbolSizeArr = symbolUtil.normalizeSymbolSize(symbolSize);\n var symbolOffsetArr = symbolUtil.normalizeSymbolOffset(symbolOffset || 0, symbolSizeArr);\n var symbolPath = symbolUtil.createSymbol(symbolType, -symbolSizeArr[0] / 2 + symbolOffsetArr[0], -symbolSizeArr[1] / 2 + symbolOffsetArr[1], symbolSizeArr[0], symbolSizeArr[1], null, symbolKeepAspect);\n symbolPath.__specifiedRotation = symbolRotate == null || isNaN(symbolRotate) ? void 0 : +symbolRotate * Math.PI / 180 || 0;\n symbolPath.name = name;\n return symbolPath;\n}\n\nfunction createLine(points) {\n var line = new ECLinePath({\n name: 'line',\n subPixelOptimize: true\n });\n setLinePoints(line.shape, points);\n return line;\n}\n\nfunction setLinePoints(targetShape, points) {\n targetShape.x1 = points[0][0];\n targetShape.y1 = points[0][1];\n targetShape.x2 = points[1][0];\n targetShape.y2 = points[1][1];\n targetShape.percent = 1;\n var cp1 = points[2];\n\n if (cp1) {\n targetShape.cpx1 = cp1[0];\n targetShape.cpy1 = cp1[1];\n } else {\n targetShape.cpx1 = NaN;\n targetShape.cpy1 = NaN;\n }\n}\n\nvar Line =\n/** @class */\nfunction (_super) {\n __extends(Line, _super);\n\n function Line(lineData, idx, seriesScope) {\n var _this = _super.call(this) || this;\n\n _this._createLine(lineData, idx, seriesScope);\n\n return _this;\n }\n\n Line.prototype._createLine = function (lineData, idx, seriesScope) {\n var seriesModel = lineData.hostModel;\n var linePoints = lineData.getItemLayout(idx);\n var line = createLine(linePoints);\n line.shape.percent = 0;\n graphic.initProps(line, {\n shape: {\n percent: 1\n }\n }, seriesModel, idx);\n this.add(line);\n each(SYMBOL_CATEGORIES, function (symbolCategory) {\n var symbol = createSymbol(symbolCategory, lineData, idx); // symbols must added after line to make sure\n // it will be updated after line#update.\n // Or symbol position and rotation update in line#beforeUpdate will be one frame slow\n\n this.add(symbol);\n this[makeSymbolTypeKey(symbolCategory)] = lineData.getItemVisual(idx, symbolCategory);\n }, this);\n\n this._updateCommonStl(lineData, idx, seriesScope);\n }; // TODO More strict on the List type in parameters?\n\n\n Line.prototype.updateData = function (lineData, idx, seriesScope) {\n var seriesModel = lineData.hostModel;\n var line = this.childOfName('line');\n var linePoints = lineData.getItemLayout(idx);\n var target = {\n shape: {}\n };\n setLinePoints(target.shape, linePoints);\n graphic.updateProps(line, target, seriesModel, idx);\n each(SYMBOL_CATEGORIES, function (symbolCategory) {\n var symbolType = lineData.getItemVisual(idx, symbolCategory);\n var key = makeSymbolTypeKey(symbolCategory); // Symbol changed\n\n if (this[key] !== symbolType) {\n this.remove(this.childOfName(symbolCategory));\n var symbol = createSymbol(symbolCategory, lineData, idx);\n this.add(symbol);\n }\n\n this[key] = symbolType;\n }, this);\n\n this._updateCommonStl(lineData, idx, seriesScope);\n };\n\n ;\n\n Line.prototype.getLinePath = function () {\n return this.childAt(0);\n };\n\n Line.prototype._updateCommonStl = function (lineData, idx, seriesScope) {\n var seriesModel = lineData.hostModel;\n var line = this.childOfName('line');\n var emphasisLineStyle = seriesScope && seriesScope.emphasisLineStyle;\n var blurLineStyle = seriesScope && seriesScope.blurLineStyle;\n var selectLineStyle = seriesScope && seriesScope.selectLineStyle;\n var labelStatesModels = seriesScope && seriesScope.labelStatesModels;\n var emphasisDisabled = seriesScope && seriesScope.emphasisDisabled;\n var focus = seriesScope && seriesScope.focus;\n var blurScope = seriesScope && seriesScope.blurScope; // Optimization for large dataset\n\n if (!seriesScope || lineData.hasItemOption) {\n var itemModel = lineData.getItemModel(idx);\n var emphasisModel = itemModel.getModel('emphasis');\n emphasisLineStyle = emphasisModel.getModel('lineStyle').getLineStyle();\n blurLineStyle = itemModel.getModel(['blur', 'lineStyle']).getLineStyle();\n selectLineStyle = itemModel.getModel(['select', 'lineStyle']).getLineStyle();\n emphasisDisabled = emphasisModel.get('disabled');\n focus = emphasisModel.get('focus');\n blurScope = emphasisModel.get('blurScope');\n labelStatesModels = getLabelStatesModels(itemModel);\n }\n\n var lineStyle = lineData.getItemVisual(idx, 'style');\n var visualColor = lineStyle.stroke;\n line.useStyle(lineStyle);\n line.style.fill = null;\n line.style.strokeNoScale = true;\n line.ensureState('emphasis').style = emphasisLineStyle;\n line.ensureState('blur').style = blurLineStyle;\n line.ensureState('select').style = selectLineStyle; // Update symbol\n\n each(SYMBOL_CATEGORIES, function (symbolCategory) {\n var symbol = this.childOfName(symbolCategory);\n\n if (symbol) {\n // Share opacity and color with line.\n symbol.setColor(visualColor);\n symbol.style.opacity = lineStyle.opacity;\n\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\n var stateName = SPECIAL_STATES[i];\n var lineState = line.getState(stateName);\n\n if (lineState) {\n var lineStateStyle = lineState.style || {};\n var state = symbol.ensureState(stateName);\n var stateStyle = state.style || (state.style = {});\n\n if (lineStateStyle.stroke != null) {\n stateStyle[symbol.__isEmptyBrush ? 'stroke' : 'fill'] = lineStateStyle.stroke;\n }\n\n if (lineStateStyle.opacity != null) {\n stateStyle.opacity = lineStateStyle.opacity;\n }\n }\n }\n\n symbol.markRedraw();\n }\n }, this);\n var rawVal = seriesModel.getRawValue(idx);\n setLabelStyle(this, labelStatesModels, {\n labelDataIndex: idx,\n labelFetcher: {\n getFormattedLabel: function getFormattedLabel(dataIndex, stateName) {\n return seriesModel.getFormattedLabel(dataIndex, stateName, lineData.dataType);\n }\n },\n inheritColor: visualColor || '#000',\n defaultOpacity: lineStyle.opacity,\n defaultText: (rawVal == null ? lineData.getName(idx) : isFinite(rawVal) ? round(rawVal) : rawVal) + ''\n });\n var label = this.getTextContent(); // Always set `textStyle` even if `normalStyle.text` is null, because default\n // values have to be set on `normalStyle`.\n\n if (label) {\n var labelNormalModel = labelStatesModels.normal;\n label.__align = label.style.align;\n label.__verticalAlign = label.style.verticalAlign; // 'start', 'middle', 'end'\n\n label.__position = labelNormalModel.get('position') || 'middle';\n var distance = labelNormalModel.get('distance');\n\n if (!isArray(distance)) {\n distance = [distance, distance];\n }\n\n label.__labelDistance = distance;\n }\n\n this.setTextConfig({\n position: null,\n local: true,\n inside: false // Can't be inside for stroke element.\n\n });\n toggleHoverEmphasis(this, focus, blurScope, emphasisDisabled);\n };\n\n Line.prototype.highlight = function () {\n enterEmphasis(this);\n };\n\n Line.prototype.downplay = function () {\n leaveEmphasis(this);\n };\n\n Line.prototype.updateLayout = function (lineData, idx) {\n this.setLinePoints(lineData.getItemLayout(idx));\n };\n\n Line.prototype.setLinePoints = function (points) {\n var linePath = this.childOfName('line');\n setLinePoints(linePath.shape, points);\n linePath.dirty();\n };\n\n Line.prototype.beforeUpdate = function () {\n var lineGroup = this;\n var symbolFrom = lineGroup.childOfName('fromSymbol');\n var symbolTo = lineGroup.childOfName('toSymbol');\n var label = lineGroup.getTextContent(); // Quick reject\n\n if (!symbolFrom && !symbolTo && (!label || label.ignore)) {\n return;\n }\n\n var invScale = 1;\n var parentNode = this.parent;\n\n while (parentNode) {\n if (parentNode.scaleX) {\n invScale /= parentNode.scaleX;\n }\n\n parentNode = parentNode.parent;\n }\n\n var line = lineGroup.childOfName('line'); // If line not changed\n // FIXME Parent scale changed\n\n if (!this.__dirty && !line.__dirty) {\n return;\n }\n\n var percent = line.shape.percent;\n var fromPos = line.pointAt(0);\n var toPos = line.pointAt(percent);\n var d = vector.sub([], toPos, fromPos);\n vector.normalize(d, d);\n\n function setSymbolRotation(symbol, percent) {\n // Fix #12388\n // when symbol is set to be 'arrow' in markLine,\n // symbolRotate value will be ignored, and compulsively use tangent angle.\n // rotate by default if symbol rotation is not specified\n var specifiedRotation = symbol.__specifiedRotation;\n\n if (specifiedRotation == null) {\n var tangent = line.tangentAt(percent);\n symbol.attr('rotation', (percent === 1 ? -1 : 1) * Math.PI / 2 - Math.atan2(tangent[1], tangent[0]));\n } else {\n symbol.attr('rotation', specifiedRotation);\n }\n }\n\n if (symbolFrom) {\n symbolFrom.setPosition(fromPos);\n setSymbolRotation(symbolFrom, 0);\n symbolFrom.scaleX = symbolFrom.scaleY = invScale * percent;\n symbolFrom.markRedraw();\n }\n\n if (symbolTo) {\n symbolTo.setPosition(toPos);\n setSymbolRotation(symbolTo, 1);\n symbolTo.scaleX = symbolTo.scaleY = invScale * percent;\n symbolTo.markRedraw();\n }\n\n if (label && !label.ignore) {\n label.x = label.y = 0;\n label.originX = label.originY = 0;\n var textAlign = void 0;\n var textVerticalAlign = void 0;\n var distance = label.__labelDistance;\n var distanceX = distance[0] * invScale;\n var distanceY = distance[1] * invScale;\n var halfPercent = percent / 2;\n var tangent = line.tangentAt(halfPercent);\n var n = [tangent[1], -tangent[0]];\n var cp = line.pointAt(halfPercent);\n\n if (n[1] > 0) {\n n[0] = -n[0];\n n[1] = -n[1];\n }\n\n var dir = tangent[0] < 0 ? -1 : 1;\n\n if (label.__position !== 'start' && label.__position !== 'end') {\n var rotation = -Math.atan2(tangent[1], tangent[0]);\n\n if (toPos[0] < fromPos[0]) {\n rotation = Math.PI + rotation;\n }\n\n label.rotation = rotation;\n }\n\n var dy = void 0;\n\n switch (label.__position) {\n case 'insideStartTop':\n case 'insideMiddleTop':\n case 'insideEndTop':\n case 'middle':\n dy = -distanceY;\n textVerticalAlign = 'bottom';\n break;\n\n case 'insideStartBottom':\n case 'insideMiddleBottom':\n case 'insideEndBottom':\n dy = distanceY;\n textVerticalAlign = 'top';\n break;\n\n default:\n dy = 0;\n textVerticalAlign = 'middle';\n }\n\n switch (label.__position) {\n case 'end':\n label.x = d[0] * distanceX + toPos[0];\n label.y = d[1] * distanceY + toPos[1];\n textAlign = d[0] > 0.8 ? 'left' : d[0] < -0.8 ? 'right' : 'center';\n textVerticalAlign = d[1] > 0.8 ? 'top' : d[1] < -0.8 ? 'bottom' : 'middle';\n break;\n\n case 'start':\n label.x = -d[0] * distanceX + fromPos[0];\n label.y = -d[1] * distanceY + fromPos[1];\n textAlign = d[0] > 0.8 ? 'right' : d[0] < -0.8 ? 'left' : 'center';\n textVerticalAlign = d[1] > 0.8 ? 'bottom' : d[1] < -0.8 ? 'top' : 'middle';\n break;\n\n case 'insideStartTop':\n case 'insideStart':\n case 'insideStartBottom':\n label.x = distanceX * dir + fromPos[0];\n label.y = fromPos[1] + dy;\n textAlign = tangent[0] < 0 ? 'right' : 'left';\n label.originX = -distanceX * dir;\n label.originY = -dy;\n break;\n\n case 'insideMiddleTop':\n case 'insideMiddle':\n case 'insideMiddleBottom':\n case 'middle':\n label.x = cp[0];\n label.y = cp[1] + dy;\n textAlign = 'center';\n label.originY = -dy;\n break;\n\n case 'insideEndTop':\n case 'insideEnd':\n case 'insideEndBottom':\n label.x = -distanceX * dir + toPos[0];\n label.y = toPos[1] + dy;\n textAlign = tangent[0] >= 0 ? 'right' : 'left';\n label.originX = distanceX * dir;\n label.originY = -dy;\n break;\n }\n\n label.scaleX = label.scaleY = invScale;\n label.setStyle({\n // Use the user specified text align and baseline first\n verticalAlign: label.__verticalAlign || textVerticalAlign,\n align: label.__align || textAlign\n });\n }\n };\n\n return Line;\n}(graphic.Group);\n\nexport default Line;","map":{"version":3,"sources":["D:/Work/WorkSpace/GitWorkSpace/TenShop/resource/ElectronicMall/src/ElectronicMallVue/node_modules/echarts/lib/chart/helper/Line.js"],"names":["__extends","isArray","each","vector","symbolUtil","ECLinePath","graphic","toggleHoverEmphasis","enterEmphasis","leaveEmphasis","SPECIAL_STATES","getLabelStatesModels","setLabelStyle","round","SYMBOL_CATEGORIES","makeSymbolTypeKey","symbolCategory","createSymbol","name","lineData","idx","symbolType","getItemVisual","symbolSize","symbolRotate","symbolOffset","symbolKeepAspect","symbolSizeArr","normalizeSymbolSize","symbolOffsetArr","normalizeSymbolOffset","symbolPath","__specifiedRotation","isNaN","Math","PI","createLine","points","line","subPixelOptimize","setLinePoints","shape","targetShape","x1","y1","x2","y2","percent","cp1","cpx1","cpy1","NaN","Line","_super","seriesScope","_this","call","_createLine","prototype","seriesModel","hostModel","linePoints","getItemLayout","initProps","add","symbol","_updateCommonStl","updateData","childOfName","target","updateProps","key","remove","getLinePath","childAt","emphasisLineStyle","blurLineStyle","selectLineStyle","labelStatesModels","emphasisDisabled","focus","blurScope","hasItemOption","itemModel","getItemModel","emphasisModel","getModel","getLineStyle","get","lineStyle","visualColor","stroke","useStyle","style","fill","strokeNoScale","ensureState","setColor","opacity","i","length","stateName","lineState","getState","lineStateStyle","state","stateStyle","__isEmptyBrush","markRedraw","rawVal","getRawValue","labelDataIndex","labelFetcher","getFormattedLabel","dataIndex","dataType","inheritColor","defaultOpacity","defaultText","getName","isFinite","label","getTextContent","labelNormalModel","normal","__align","align","__verticalAlign","verticalAlign","__position","distance","__labelDistance","setTextConfig","position","local","inside","highlight","downplay","updateLayout","linePath","dirty","beforeUpdate","lineGroup","symbolFrom","symbolTo","ignore","invScale","parentNode","parent","scaleX","__dirty","fromPos","pointAt","toPos","d","sub","normalize","setSymbolRotation","specifiedRotation","tangent","tangentAt","attr","atan2","setPosition","scaleY","x","y","originX","originY","textAlign","textVerticalAlign","distanceX","distanceY","halfPercent","n","cp","dir","rotation","dy","setStyle","Group"],"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 { isArray, each } from 'zrender/lib/core/util.js';\nimport * as vector from 'zrender/lib/core/vector.js';\nimport * as symbolUtil from '../../util/symbol.js';\nimport ECLinePath from './LinePath.js';\nimport * as graphic from '../../util/graphic.js';\nimport { toggleHoverEmphasis, enterEmphasis, leaveEmphasis, SPECIAL_STATES } from '../../util/states.js';\nimport { getLabelStatesModels, setLabelStyle } from '../../label/labelStyle.js';\nimport { round } from '../../util/number.js';\nvar SYMBOL_CATEGORIES = ['fromSymbol', 'toSymbol'];\n\nfunction makeSymbolTypeKey(symbolCategory) {\n return '_' + symbolCategory + 'Type';\n}\n/**\n * @inner\n */\n\n\nfunction createSymbol(name, lineData, idx) {\n var symbolType = lineData.getItemVisual(idx, name);\n\n if (!symbolType || symbolType === 'none') {\n return;\n }\n\n var symbolSize = lineData.getItemVisual(idx, name + 'Size');\n var symbolRotate = lineData.getItemVisual(idx, name + 'Rotate');\n var symbolOffset = lineData.getItemVisual(idx, name + 'Offset');\n var symbolKeepAspect = lineData.getItemVisual(idx, name + 'KeepAspect');\n var symbolSizeArr = symbolUtil.normalizeSymbolSize(symbolSize);\n var symbolOffsetArr = symbolUtil.normalizeSymbolOffset(symbolOffset || 0, symbolSizeArr);\n var symbolPath = symbolUtil.createSymbol(symbolType, -symbolSizeArr[0] / 2 + symbolOffsetArr[0], -symbolSizeArr[1] / 2 + symbolOffsetArr[1], symbolSizeArr[0], symbolSizeArr[1], null, symbolKeepAspect);\n symbolPath.__specifiedRotation = symbolRotate == null || isNaN(symbolRotate) ? void 0 : +symbolRotate * Math.PI / 180 || 0;\n symbolPath.name = name;\n return symbolPath;\n}\n\nfunction createLine(points) {\n var line = new ECLinePath({\n name: 'line',\n subPixelOptimize: true\n });\n setLinePoints(line.shape, points);\n return line;\n}\n\nfunction setLinePoints(targetShape, points) {\n targetShape.x1 = points[0][0];\n targetShape.y1 = points[0][1];\n targetShape.x2 = points[1][0];\n targetShape.y2 = points[1][1];\n targetShape.percent = 1;\n var cp1 = points[2];\n\n if (cp1) {\n targetShape.cpx1 = cp1[0];\n targetShape.cpy1 = cp1[1];\n } else {\n targetShape.cpx1 = NaN;\n targetShape.cpy1 = NaN;\n }\n}\n\nvar Line =\n/** @class */\nfunction (_super) {\n __extends(Line, _super);\n\n function Line(lineData, idx, seriesScope) {\n var _this = _super.call(this) || this;\n\n _this._createLine(lineData, idx, seriesScope);\n\n return _this;\n }\n\n Line.prototype._createLine = function (lineData, idx, seriesScope) {\n var seriesModel = lineData.hostModel;\n var linePoints = lineData.getItemLayout(idx);\n var line = createLine(linePoints);\n line.shape.percent = 0;\n graphic.initProps(line, {\n shape: {\n percent: 1\n }\n }, seriesModel, idx);\n this.add(line);\n each(SYMBOL_CATEGORIES, function (symbolCategory) {\n var symbol = createSymbol(symbolCategory, lineData, idx); // symbols must added after line to make sure\n // it will be updated after line#update.\n // Or symbol position and rotation update in line#beforeUpdate will be one frame slow\n\n this.add(symbol);\n this[makeSymbolTypeKey(symbolCategory)] = lineData.getItemVisual(idx, symbolCategory);\n }, this);\n\n this._updateCommonStl(lineData, idx, seriesScope);\n }; // TODO More strict on the List type in parameters?\n\n\n Line.prototype.updateData = function (lineData, idx, seriesScope) {\n var seriesModel = lineData.hostModel;\n var line = this.childOfName('line');\n var linePoints = lineData.getItemLayout(idx);\n var target = {\n shape: {}\n };\n setLinePoints(target.shape, linePoints);\n graphic.updateProps(line, target, seriesModel, idx);\n each(SYMBOL_CATEGORIES, function (symbolCategory) {\n var symbolType = lineData.getItemVisual(idx, symbolCategory);\n var key = makeSymbolTypeKey(symbolCategory); // Symbol changed\n\n if (this[key] !== symbolType) {\n this.remove(this.childOfName(symbolCategory));\n var symbol = createSymbol(symbolCategory, lineData, idx);\n this.add(symbol);\n }\n\n this[key] = symbolType;\n }, this);\n\n this._updateCommonStl(lineData, idx, seriesScope);\n };\n\n ;\n\n Line.prototype.getLinePath = function () {\n return this.childAt(0);\n };\n\n Line.prototype._updateCommonStl = function (lineData, idx, seriesScope) {\n var seriesModel = lineData.hostModel;\n var line = this.childOfName('line');\n var emphasisLineStyle = seriesScope && seriesScope.emphasisLineStyle;\n var blurLineStyle = seriesScope && seriesScope.blurLineStyle;\n var selectLineStyle = seriesScope && seriesScope.selectLineStyle;\n var labelStatesModels = seriesScope && seriesScope.labelStatesModels;\n var emphasisDisabled = seriesScope && seriesScope.emphasisDisabled;\n var focus = seriesScope && seriesScope.focus;\n var blurScope = seriesScope && seriesScope.blurScope; // Optimization for large dataset\n\n if (!seriesScope || lineData.hasItemOption) {\n var itemModel = lineData.getItemModel(idx);\n var emphasisModel = itemModel.getModel('emphasis');\n emphasisLineStyle = emphasisModel.getModel('lineStyle').getLineStyle();\n blurLineStyle = itemModel.getModel(['blur', 'lineStyle']).getLineStyle();\n selectLineStyle = itemModel.getModel(['select', 'lineStyle']).getLineStyle();\n emphasisDisabled = emphasisModel.get('disabled');\n focus = emphasisModel.get('focus');\n blurScope = emphasisModel.get('blurScope');\n labelStatesModels = getLabelStatesModels(itemModel);\n }\n\n var lineStyle = lineData.getItemVisual(idx, 'style');\n var visualColor = lineStyle.stroke;\n line.useStyle(lineStyle);\n line.style.fill = null;\n line.style.strokeNoScale = true;\n line.ensureState('emphasis').style = emphasisLineStyle;\n line.ensureState('blur').style = blurLineStyle;\n line.ensureState('select').style = selectLineStyle; // Update symbol\n\n each(SYMBOL_CATEGORIES, function (symbolCategory) {\n var symbol = this.childOfName(symbolCategory);\n\n if (symbol) {\n // Share opacity and color with line.\n symbol.setColor(visualColor);\n symbol.style.opacity = lineStyle.opacity;\n\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\n var stateName = SPECIAL_STATES[i];\n var lineState = line.getState(stateName);\n\n if (lineState) {\n var lineStateStyle = lineState.style || {};\n var state = symbol.ensureState(stateName);\n var stateStyle = state.style || (state.style = {});\n\n if (lineStateStyle.stroke != null) {\n stateStyle[symbol.__isEmptyBrush ? 'stroke' : 'fill'] = lineStateStyle.stroke;\n }\n\n if (lineStateStyle.opacity != null) {\n stateStyle.opacity = lineStateStyle.opacity;\n }\n }\n }\n\n symbol.markRedraw();\n }\n }, this);\n var rawVal = seriesModel.getRawValue(idx);\n setLabelStyle(this, labelStatesModels, {\n labelDataIndex: idx,\n labelFetcher: {\n getFormattedLabel: function (dataIndex, stateName) {\n return seriesModel.getFormattedLabel(dataIndex, stateName, lineData.dataType);\n }\n },\n inheritColor: visualColor || '#000',\n defaultOpacity: lineStyle.opacity,\n defaultText: (rawVal == null ? lineData.getName(idx) : isFinite(rawVal) ? round(rawVal) : rawVal) + ''\n });\n var label = this.getTextContent(); // Always set `textStyle` even if `normalStyle.text` is null, because default\n // values have to be set on `normalStyle`.\n\n if (label) {\n var labelNormalModel = labelStatesModels.normal;\n label.__align = label.style.align;\n label.__verticalAlign = label.style.verticalAlign; // 'start', 'middle', 'end'\n\n label.__position = labelNormalModel.get('position') || 'middle';\n var distance = labelNormalModel.get('distance');\n\n if (!isArray(distance)) {\n distance = [distance, distance];\n }\n\n label.__labelDistance = distance;\n }\n\n this.setTextConfig({\n position: null,\n local: true,\n inside: false // Can't be inside for stroke element.\n\n });\n toggleHoverEmphasis(this, focus, blurScope, emphasisDisabled);\n };\n\n Line.prototype.highlight = function () {\n enterEmphasis(this);\n };\n\n Line.prototype.downplay = function () {\n leaveEmphasis(this);\n };\n\n Line.prototype.updateLayout = function (lineData, idx) {\n this.setLinePoints(lineData.getItemLayout(idx));\n };\n\n Line.prototype.setLinePoints = function (points) {\n var linePath = this.childOfName('line');\n setLinePoints(linePath.shape, points);\n linePath.dirty();\n };\n\n Line.prototype.beforeUpdate = function () {\n var lineGroup = this;\n var symbolFrom = lineGroup.childOfName('fromSymbol');\n var symbolTo = lineGroup.childOfName('toSymbol');\n var label = lineGroup.getTextContent(); // Quick reject\n\n if (!symbolFrom && !symbolTo && (!label || label.ignore)) {\n return;\n }\n\n var invScale = 1;\n var parentNode = this.parent;\n\n while (parentNode) {\n if (parentNode.scaleX) {\n invScale /= parentNode.scaleX;\n }\n\n parentNode = parentNode.parent;\n }\n\n var line = lineGroup.childOfName('line'); // If line not changed\n // FIXME Parent scale changed\n\n if (!this.__dirty && !line.__dirty) {\n return;\n }\n\n var percent = line.shape.percent;\n var fromPos = line.pointAt(0);\n var toPos = line.pointAt(percent);\n var d = vector.sub([], toPos, fromPos);\n vector.normalize(d, d);\n\n function setSymbolRotation(symbol, percent) {\n // Fix #12388\n // when symbol is set to be 'arrow' in markLine,\n // symbolRotate value will be ignored, and compulsively use tangent angle.\n // rotate by default if symbol rotation is not specified\n var specifiedRotation = symbol.__specifiedRotation;\n\n if (specifiedRotation == null) {\n var tangent = line.tangentAt(percent);\n symbol.attr('rotation', (percent === 1 ? -1 : 1) * Math.PI / 2 - Math.atan2(tangent[1], tangent[0]));\n } else {\n symbol.attr('rotation', specifiedRotation);\n }\n }\n\n if (symbolFrom) {\n symbolFrom.setPosition(fromPos);\n setSymbolRotation(symbolFrom, 0);\n symbolFrom.scaleX = symbolFrom.scaleY = invScale * percent;\n symbolFrom.markRedraw();\n }\n\n if (symbolTo) {\n symbolTo.setPosition(toPos);\n setSymbolRotation(symbolTo, 1);\n symbolTo.scaleX = symbolTo.scaleY = invScale * percent;\n symbolTo.markRedraw();\n }\n\n if (label && !label.ignore) {\n label.x = label.y = 0;\n label.originX = label.originY = 0;\n var textAlign = void 0;\n var textVerticalAlign = void 0;\n var distance = label.__labelDistance;\n var distanceX = distance[0] * invScale;\n var distanceY = distance[1] * invScale;\n var halfPercent = percent / 2;\n var tangent = line.tangentAt(halfPercent);\n var n = [tangent[1], -tangent[0]];\n var cp = line.pointAt(halfPercent);\n\n if (n[1] > 0) {\n n[0] = -n[0];\n n[1] = -n[1];\n }\n\n var dir = tangent[0] < 0 ? -1 : 1;\n\n if (label.__position !== 'start' && label.__position !== 'end') {\n var rotation = -Math.atan2(tangent[1], tangent[0]);\n\n if (toPos[0] < fromPos[0]) {\n rotation = Math.PI + rotation;\n }\n\n label.rotation = rotation;\n }\n\n var dy = void 0;\n\n switch (label.__position) {\n case 'insideStartTop':\n case 'insideMiddleTop':\n case 'insideEndTop':\n case 'middle':\n dy = -distanceY;\n textVerticalAlign = 'bottom';\n break;\n\n case 'insideStartBottom':\n case 'insideMiddleBottom':\n case 'insideEndBottom':\n dy = distanceY;\n textVerticalAlign = 'top';\n break;\n\n default:\n dy = 0;\n textVerticalAlign = 'middle';\n }\n\n switch (label.__position) {\n case 'end':\n label.x = d[0] * distanceX + toPos[0];\n label.y = d[1] * distanceY + toPos[1];\n textAlign = d[0] > 0.8 ? 'left' : d[0] < -0.8 ? 'right' : 'center';\n textVerticalAlign = d[1] > 0.8 ? 'top' : d[1] < -0.8 ? 'bottom' : 'middle';\n break;\n\n case 'start':\n label.x = -d[0] * distanceX + fromPos[0];\n label.y = -d[1] * distanceY + fromPos[1];\n textAlign = d[0] > 0.8 ? 'right' : d[0] < -0.8 ? 'left' : 'center';\n textVerticalAlign = d[1] > 0.8 ? 'bottom' : d[1] < -0.8 ? 'top' : 'middle';\n break;\n\n case 'insideStartTop':\n case 'insideStart':\n case 'insideStartBottom':\n label.x = distanceX * dir + fromPos[0];\n label.y = fromPos[1] + dy;\n textAlign = tangent[0] < 0 ? 'right' : 'left';\n label.originX = -distanceX * dir;\n label.originY = -dy;\n break;\n\n case 'insideMiddleTop':\n case 'insideMiddle':\n case 'insideMiddleBottom':\n case 'middle':\n label.x = cp[0];\n label.y = cp[1] + dy;\n textAlign = 'center';\n label.originY = -dy;\n break;\n\n case 'insideEndTop':\n case 'insideEnd':\n case 'insideEndBottom':\n label.x = -distanceX * dir + toPos[0];\n label.y = toPos[1] + dy;\n textAlign = tangent[0] >= 0 ? 'right' : 'left';\n label.originX = distanceX * dir;\n label.originY = -dy;\n break;\n }\n\n label.scaleX = label.scaleY = invScale;\n label.setStyle({\n // Use the user specified text align and baseline first\n verticalAlign: label.__verticalAlign || textVerticalAlign,\n align: label.__align || textAlign\n });\n }\n };\n\n return Line;\n}(graphic.Group);\n\nexport default Line;"]},"metadata":{},"sourceType":"module"}