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

1 line
22 KiB
JSON

{"ast":null,"code":"import \"core-js/modules/es.string.fixed.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 * as vec2 from 'zrender/lib/core/vector.js';\nimport { getSymbolSize, getNodeGlobalScale } from './graphHelper.js';\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { getCurvenessForEdge } from '../helper/multipleGraphEdgeHelper.js';\nvar PI = Math.PI;\nvar _symbolRadiansHalf = [];\n/**\n * `basedOn` can be:\n * 'value':\n * This layout is not accurate and have same bad case. For example,\n * if the min value is very smaller than the max value, the nodes\n * with the min value probably overlap even though there is enough\n * space to layout them. So we only use this approach in the as the\n * init layout of the force layout.\n * FIXME\n * Probably we do not need this method any more but use\n * `basedOn: 'symbolSize'` in force layout if\n * delay its init operations to GraphView.\n * 'symbolSize':\n * This approach work only if all of the symbol size calculated.\n * That is, the progressive rendering is not applied to graph.\n * FIXME\n * If progressive rendering is applied to graph some day,\n * probably we have to use `basedOn: 'value'`.\n */\n\nexport function circularLayout(seriesModel, basedOn, draggingNode, pointer) {\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys && coordSys.type !== 'view') {\n return;\n }\n\n var rect = coordSys.getBoundingRect();\n var nodeData = seriesModel.getData();\n var graph = nodeData.graph;\n var cx = rect.width / 2 + rect.x;\n var cy = rect.height / 2 + rect.y;\n var r = Math.min(rect.width, rect.height) / 2;\n var count = nodeData.count();\n nodeData.setLayout({\n cx: cx,\n cy: cy\n });\n\n if (!count) {\n return;\n }\n\n if (draggingNode) {\n var _a = coordSys.pointToData(pointer),\n tempX = _a[0],\n tempY = _a[1];\n\n var v = [tempX - cx, tempY - cy];\n vec2.normalize(v, v);\n vec2.scale(v, v, r);\n draggingNode.setLayout([cx + v[0], cy + v[1]], true);\n var circularRotateLabel = seriesModel.get(['circular', 'rotateLabel']);\n rotateNodeLabel(draggingNode, circularRotateLabel, cx, cy);\n }\n\n _layoutNodesBasedOn[basedOn](seriesModel, graph, nodeData, r, cx, cy, count);\n\n graph.eachEdge(function (edge, index) {\n var curveness = zrUtil.retrieve3(edge.getModel().get(['lineStyle', 'curveness']), getCurvenessForEdge(edge, seriesModel, index), 0);\n var p1 = vec2.clone(edge.node1.getLayout());\n var p2 = vec2.clone(edge.node2.getLayout());\n var cp1;\n var x12 = (p1[0] + p2[0]) / 2;\n var y12 = (p1[1] + p2[1]) / 2;\n\n if (+curveness) {\n curveness *= 3;\n cp1 = [cx * curveness + x12 * (1 - curveness), cy * curveness + y12 * (1 - curveness)];\n }\n\n edge.setLayout([p1, p2, cp1]);\n });\n}\nvar _layoutNodesBasedOn = {\n value: function value(seriesModel, graph, nodeData, r, cx, cy, count) {\n var angle = 0;\n var sum = nodeData.getSum('value');\n var unitAngle = Math.PI * 2 / (sum || count);\n graph.eachNode(function (node) {\n var value = node.getValue('value');\n var radianHalf = unitAngle * (sum ? value : 1) / 2;\n angle += radianHalf;\n node.setLayout([r * Math.cos(angle) + cx, r * Math.sin(angle) + cy]);\n angle += radianHalf;\n });\n },\n symbolSize: function symbolSize(seriesModel, graph, nodeData, r, cx, cy, count) {\n var sumRadian = 0;\n _symbolRadiansHalf.length = count;\n var nodeScale = getNodeGlobalScale(seriesModel);\n graph.eachNode(function (node) {\n var symbolSize = getSymbolSize(node); // Normally this case will not happen, but we still add\n // some the defensive code (2px is an arbitrary value).\n\n isNaN(symbolSize) && (symbolSize = 2);\n symbolSize < 0 && (symbolSize = 0);\n symbolSize *= nodeScale;\n var symbolRadianHalf = Math.asin(symbolSize / 2 / r); // when `symbolSize / 2` is bigger than `r`.\n\n isNaN(symbolRadianHalf) && (symbolRadianHalf = PI / 2);\n _symbolRadiansHalf[node.dataIndex] = symbolRadianHalf;\n sumRadian += symbolRadianHalf * 2;\n });\n var halfRemainRadian = (2 * PI - sumRadian) / count / 2;\n var angle = 0;\n graph.eachNode(function (node) {\n var radianHalf = halfRemainRadian + _symbolRadiansHalf[node.dataIndex];\n angle += radianHalf; // init circular layout for\n // 1. layout undefined node\n // 2. not fixed node\n\n (!node.getLayout() || !node.getLayout().fixed) && node.setLayout([r * Math.cos(angle) + cx, r * Math.sin(angle) + cy]);\n angle += radianHalf;\n });\n }\n};\nexport function rotateNodeLabel(node, circularRotateLabel, cx, cy) {\n var el = node.getGraphicEl(); // need to check if el exists. '-' value may not create node element.\n\n if (!el) {\n return;\n }\n\n var nodeModel = node.getModel();\n var labelRotate = nodeModel.get(['label', 'rotate']) || 0;\n var symbolPath = el.getSymbolPath();\n\n if (circularRotateLabel) {\n var pos = node.getLayout();\n var rad = Math.atan2(pos[1] - cy, pos[0] - cx);\n\n if (rad < 0) {\n rad = Math.PI * 2 + rad;\n }\n\n var isLeft = pos[0] < cx;\n\n if (isLeft) {\n rad = rad - Math.PI;\n }\n\n var textPosition = isLeft ? 'left' : 'right';\n symbolPath.setTextConfig({\n rotation: -rad,\n position: textPosition,\n origin: 'center'\n });\n var emphasisState = symbolPath.ensureState('emphasis');\n zrUtil.extend(emphasisState.textConfig || (emphasisState.textConfig = {}), {\n position: textPosition\n });\n } else {\n symbolPath.setTextConfig({\n rotation: labelRotate *= Math.PI / 180\n });\n }\n}","map":{"version":3,"sources":["D:/Work/WorkSpace/GitWorkSpace/TenShop/resource/ElectronicMall/src/ElectronicMallVue/node_modules/echarts/lib/chart/graph/circularLayoutHelper.js"],"names":["vec2","getSymbolSize","getNodeGlobalScale","zrUtil","getCurvenessForEdge","PI","Math","_symbolRadiansHalf","circularLayout","seriesModel","basedOn","draggingNode","pointer","coordSys","coordinateSystem","type","rect","getBoundingRect","nodeData","getData","graph","cx","width","x","cy","height","y","r","min","count","setLayout","_a","pointToData","tempX","tempY","v","normalize","scale","circularRotateLabel","get","rotateNodeLabel","_layoutNodesBasedOn","eachEdge","edge","index","curveness","retrieve3","getModel","p1","clone","node1","getLayout","p2","node2","cp1","x12","y12","value","angle","sum","getSum","unitAngle","eachNode","node","getValue","radianHalf","cos","sin","symbolSize","sumRadian","length","nodeScale","isNaN","symbolRadianHalf","asin","dataIndex","halfRemainRadian","fixed","el","getGraphicEl","nodeModel","labelRotate","symbolPath","getSymbolPath","pos","rad","atan2","isLeft","textPosition","setTextConfig","rotation","position","origin","emphasisState","ensureState","extend","textConfig"],"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 * as vec2 from 'zrender/lib/core/vector.js';\nimport { getSymbolSize, getNodeGlobalScale } from './graphHelper.js';\nimport * as zrUtil from 'zrender/lib/core/util.js';\nimport { getCurvenessForEdge } from '../helper/multipleGraphEdgeHelper.js';\nvar PI = Math.PI;\nvar _symbolRadiansHalf = [];\n/**\n * `basedOn` can be:\n * 'value':\n * This layout is not accurate and have same bad case. For example,\n * if the min value is very smaller than the max value, the nodes\n * with the min value probably overlap even though there is enough\n * space to layout them. So we only use this approach in the as the\n * init layout of the force layout.\n * FIXME\n * Probably we do not need this method any more but use\n * `basedOn: 'symbolSize'` in force layout if\n * delay its init operations to GraphView.\n * 'symbolSize':\n * This approach work only if all of the symbol size calculated.\n * That is, the progressive rendering is not applied to graph.\n * FIXME\n * If progressive rendering is applied to graph some day,\n * probably we have to use `basedOn: 'value'`.\n */\n\nexport function circularLayout(seriesModel, basedOn, draggingNode, pointer) {\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys && coordSys.type !== 'view') {\n return;\n }\n\n var rect = coordSys.getBoundingRect();\n var nodeData = seriesModel.getData();\n var graph = nodeData.graph;\n var cx = rect.width / 2 + rect.x;\n var cy = rect.height / 2 + rect.y;\n var r = Math.min(rect.width, rect.height) / 2;\n var count = nodeData.count();\n nodeData.setLayout({\n cx: cx,\n cy: cy\n });\n\n if (!count) {\n return;\n }\n\n if (draggingNode) {\n var _a = coordSys.pointToData(pointer),\n tempX = _a[0],\n tempY = _a[1];\n\n var v = [tempX - cx, tempY - cy];\n vec2.normalize(v, v);\n vec2.scale(v, v, r);\n draggingNode.setLayout([cx + v[0], cy + v[1]], true);\n var circularRotateLabel = seriesModel.get(['circular', 'rotateLabel']);\n rotateNodeLabel(draggingNode, circularRotateLabel, cx, cy);\n }\n\n _layoutNodesBasedOn[basedOn](seriesModel, graph, nodeData, r, cx, cy, count);\n\n graph.eachEdge(function (edge, index) {\n var curveness = zrUtil.retrieve3(edge.getModel().get(['lineStyle', 'curveness']), getCurvenessForEdge(edge, seriesModel, index), 0);\n var p1 = vec2.clone(edge.node1.getLayout());\n var p2 = vec2.clone(edge.node2.getLayout());\n var cp1;\n var x12 = (p1[0] + p2[0]) / 2;\n var y12 = (p1[1] + p2[1]) / 2;\n\n if (+curveness) {\n curveness *= 3;\n cp1 = [cx * curveness + x12 * (1 - curveness), cy * curveness + y12 * (1 - curveness)];\n }\n\n edge.setLayout([p1, p2, cp1]);\n });\n}\nvar _layoutNodesBasedOn = {\n value: function (seriesModel, graph, nodeData, r, cx, cy, count) {\n var angle = 0;\n var sum = nodeData.getSum('value');\n var unitAngle = Math.PI * 2 / (sum || count);\n graph.eachNode(function (node) {\n var value = node.getValue('value');\n var radianHalf = unitAngle * (sum ? value : 1) / 2;\n angle += radianHalf;\n node.setLayout([r * Math.cos(angle) + cx, r * Math.sin(angle) + cy]);\n angle += radianHalf;\n });\n },\n symbolSize: function (seriesModel, graph, nodeData, r, cx, cy, count) {\n var sumRadian = 0;\n _symbolRadiansHalf.length = count;\n var nodeScale = getNodeGlobalScale(seriesModel);\n graph.eachNode(function (node) {\n var symbolSize = getSymbolSize(node); // Normally this case will not happen, but we still add\n // some the defensive code (2px is an arbitrary value).\n\n isNaN(symbolSize) && (symbolSize = 2);\n symbolSize < 0 && (symbolSize = 0);\n symbolSize *= nodeScale;\n var symbolRadianHalf = Math.asin(symbolSize / 2 / r); // when `symbolSize / 2` is bigger than `r`.\n\n isNaN(symbolRadianHalf) && (symbolRadianHalf = PI / 2);\n _symbolRadiansHalf[node.dataIndex] = symbolRadianHalf;\n sumRadian += symbolRadianHalf * 2;\n });\n var halfRemainRadian = (2 * PI - sumRadian) / count / 2;\n var angle = 0;\n graph.eachNode(function (node) {\n var radianHalf = halfRemainRadian + _symbolRadiansHalf[node.dataIndex];\n angle += radianHalf; // init circular layout for\n // 1. layout undefined node\n // 2. not fixed node\n\n (!node.getLayout() || !node.getLayout().fixed) && node.setLayout([r * Math.cos(angle) + cx, r * Math.sin(angle) + cy]);\n angle += radianHalf;\n });\n }\n};\nexport function rotateNodeLabel(node, circularRotateLabel, cx, cy) {\n var el = node.getGraphicEl(); // need to check if el exists. '-' value may not create node element.\n\n if (!el) {\n return;\n }\n\n var nodeModel = node.getModel();\n var labelRotate = nodeModel.get(['label', 'rotate']) || 0;\n var symbolPath = el.getSymbolPath();\n\n if (circularRotateLabel) {\n var pos = node.getLayout();\n var rad = Math.atan2(pos[1] - cy, pos[0] - cx);\n\n if (rad < 0) {\n rad = Math.PI * 2 + rad;\n }\n\n var isLeft = pos[0] < cx;\n\n if (isLeft) {\n rad = rad - Math.PI;\n }\n\n var textPosition = isLeft ? 'left' : 'right';\n symbolPath.setTextConfig({\n rotation: -rad,\n position: textPosition,\n origin: 'center'\n });\n var emphasisState = symbolPath.ensureState('emphasis');\n zrUtil.extend(emphasisState.textConfig || (emphasisState.textConfig = {}), {\n position: textPosition\n });\n } else {\n symbolPath.setTextConfig({\n rotation: labelRotate *= Math.PI / 180\n });\n }\n}"]},"metadata":{},"sourceType":"module"}