qauMaWeb/node_modules/.cache/babel-loader/9f064e94e72bfaa18dd79b088e5...

1 line
20 KiB
JSON

{"ast":null,"code":"import \"core-js/modules/es.array.slice.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 zrUtil from 'zrender/lib/core/util.js';\nimport { parsePercent } from '../../util/number.js';\nvar each = zrUtil.each;\nexport default function boxplotLayout(ecModel) {\n var groupResult = groupSeriesByAxis(ecModel);\n each(groupResult, function (groupItem) {\n var seriesModels = groupItem.seriesModels;\n\n if (!seriesModels.length) {\n return;\n }\n\n calculateBase(groupItem);\n each(seriesModels, function (seriesModel, idx) {\n layoutSingleSeries(seriesModel, groupItem.boxOffsetList[idx], groupItem.boxWidthList[idx]);\n });\n });\n}\n/**\n * Group series by axis.\n */\n\nfunction groupSeriesByAxis(ecModel) {\n var result = [];\n var axisList = [];\n ecModel.eachSeriesByType('boxplot', function (seriesModel) {\n var baseAxis = seriesModel.getBaseAxis();\n var idx = zrUtil.indexOf(axisList, baseAxis);\n\n if (idx < 0) {\n idx = axisList.length;\n axisList[idx] = baseAxis;\n result[idx] = {\n axis: baseAxis,\n seriesModels: []\n };\n }\n\n result[idx].seriesModels.push(seriesModel);\n });\n return result;\n}\n/**\n * Calculate offset and box width for each series.\n */\n\n\nfunction calculateBase(groupItem) {\n var baseAxis = groupItem.axis;\n var seriesModels = groupItem.seriesModels;\n var seriesCount = seriesModels.length;\n var boxWidthList = groupItem.boxWidthList = [];\n var boxOffsetList = groupItem.boxOffsetList = [];\n var boundList = [];\n var bandWidth;\n\n if (baseAxis.type === 'category') {\n bandWidth = baseAxis.getBandWidth();\n } else {\n var maxDataCount_1 = 0;\n each(seriesModels, function (seriesModel) {\n maxDataCount_1 = Math.max(maxDataCount_1, seriesModel.getData().count());\n });\n var extent = baseAxis.getExtent();\n bandWidth = Math.abs(extent[1] - extent[0]) / maxDataCount_1;\n }\n\n each(seriesModels, function (seriesModel) {\n var boxWidthBound = seriesModel.get('boxWidth');\n\n if (!zrUtil.isArray(boxWidthBound)) {\n boxWidthBound = [boxWidthBound, boxWidthBound];\n }\n\n boundList.push([parsePercent(boxWidthBound[0], bandWidth) || 0, parsePercent(boxWidthBound[1], bandWidth) || 0]);\n });\n var availableWidth = bandWidth * 0.8 - 2;\n var boxGap = availableWidth / seriesCount * 0.3;\n var boxWidth = (availableWidth - boxGap * (seriesCount - 1)) / seriesCount;\n var base = boxWidth / 2 - availableWidth / 2;\n each(seriesModels, function (seriesModel, idx) {\n boxOffsetList.push(base);\n base += boxGap + boxWidth;\n boxWidthList.push(Math.min(Math.max(boxWidth, boundList[idx][0]), boundList[idx][1]));\n });\n}\n/**\n * Calculate points location for each series.\n */\n\n\nfunction layoutSingleSeries(seriesModel, offset, boxWidth) {\n var coordSys = seriesModel.coordinateSystem;\n var data = seriesModel.getData();\n var halfWidth = boxWidth / 2;\n var cDimIdx = seriesModel.get('layout') === 'horizontal' ? 0 : 1;\n var vDimIdx = 1 - cDimIdx;\n var coordDims = ['x', 'y'];\n var cDim = data.mapDimension(coordDims[cDimIdx]);\n var vDims = data.mapDimensionsAll(coordDims[vDimIdx]);\n\n if (cDim == null || vDims.length < 5) {\n return;\n }\n\n for (var dataIndex = 0; dataIndex < data.count(); dataIndex++) {\n var axisDimVal = data.get(cDim, dataIndex);\n var median = getPoint(axisDimVal, vDims[2], dataIndex);\n var end1 = getPoint(axisDimVal, vDims[0], dataIndex);\n var end2 = getPoint(axisDimVal, vDims[1], dataIndex);\n var end4 = getPoint(axisDimVal, vDims[3], dataIndex);\n var end5 = getPoint(axisDimVal, vDims[4], dataIndex);\n var ends = [];\n addBodyEnd(ends, end2, false);\n addBodyEnd(ends, end4, true);\n ends.push(end1, end2, end5, end4);\n layEndLine(ends, end1);\n layEndLine(ends, end5);\n layEndLine(ends, median);\n data.setItemLayout(dataIndex, {\n initBaseline: median[vDimIdx],\n ends: ends\n });\n }\n\n function getPoint(axisDimVal, dim, dataIndex) {\n var val = data.get(dim, dataIndex);\n var p = [];\n p[cDimIdx] = axisDimVal;\n p[vDimIdx] = val;\n var point;\n\n if (isNaN(axisDimVal) || isNaN(val)) {\n point = [NaN, NaN];\n } else {\n point = coordSys.dataToPoint(p);\n point[cDimIdx] += offset;\n }\n\n return point;\n }\n\n function addBodyEnd(ends, point, start) {\n var point1 = point.slice();\n var point2 = point.slice();\n point1[cDimIdx] += halfWidth;\n point2[cDimIdx] -= halfWidth;\n start ? ends.push(point1, point2) : ends.push(point2, point1);\n }\n\n function layEndLine(ends, endCenter) {\n var from = endCenter.slice();\n var to = endCenter.slice();\n from[cDimIdx] -= halfWidth;\n to[cDimIdx] += halfWidth;\n ends.push(from, to);\n }\n}","map":{"version":3,"sources":["D:/Work/WorkSpace/GitWorkSpace/TenShop/resource/ElectronicMall/src/ElectronicMallVue/node_modules/echarts/lib/chart/boxplot/boxplotLayout.js"],"names":["zrUtil","parsePercent","each","boxplotLayout","ecModel","groupResult","groupSeriesByAxis","groupItem","seriesModels","length","calculateBase","seriesModel","idx","layoutSingleSeries","boxOffsetList","boxWidthList","result","axisList","eachSeriesByType","baseAxis","getBaseAxis","indexOf","axis","push","seriesCount","boundList","bandWidth","type","getBandWidth","maxDataCount_1","Math","max","getData","count","extent","getExtent","abs","boxWidthBound","get","isArray","availableWidth","boxGap","boxWidth","base","min","offset","coordSys","coordinateSystem","data","halfWidth","cDimIdx","vDimIdx","coordDims","cDim","mapDimension","vDims","mapDimensionsAll","dataIndex","axisDimVal","median","getPoint","end1","end2","end4","end5","ends","addBodyEnd","layEndLine","setItemLayout","initBaseline","dim","val","p","point","isNaN","NaN","dataToPoint","start","point1","slice","point2","endCenter","from","to"],"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 zrUtil from 'zrender/lib/core/util.js';\nimport { parsePercent } from '../../util/number.js';\nvar each = zrUtil.each;\nexport default function boxplotLayout(ecModel) {\n var groupResult = groupSeriesByAxis(ecModel);\n each(groupResult, function (groupItem) {\n var seriesModels = groupItem.seriesModels;\n\n if (!seriesModels.length) {\n return;\n }\n\n calculateBase(groupItem);\n each(seriesModels, function (seriesModel, idx) {\n layoutSingleSeries(seriesModel, groupItem.boxOffsetList[idx], groupItem.boxWidthList[idx]);\n });\n });\n}\n/**\n * Group series by axis.\n */\n\nfunction groupSeriesByAxis(ecModel) {\n var result = [];\n var axisList = [];\n ecModel.eachSeriesByType('boxplot', function (seriesModel) {\n var baseAxis = seriesModel.getBaseAxis();\n var idx = zrUtil.indexOf(axisList, baseAxis);\n\n if (idx < 0) {\n idx = axisList.length;\n axisList[idx] = baseAxis;\n result[idx] = {\n axis: baseAxis,\n seriesModels: []\n };\n }\n\n result[idx].seriesModels.push(seriesModel);\n });\n return result;\n}\n/**\n * Calculate offset and box width for each series.\n */\n\n\nfunction calculateBase(groupItem) {\n var baseAxis = groupItem.axis;\n var seriesModels = groupItem.seriesModels;\n var seriesCount = seriesModels.length;\n var boxWidthList = groupItem.boxWidthList = [];\n var boxOffsetList = groupItem.boxOffsetList = [];\n var boundList = [];\n var bandWidth;\n\n if (baseAxis.type === 'category') {\n bandWidth = baseAxis.getBandWidth();\n } else {\n var maxDataCount_1 = 0;\n each(seriesModels, function (seriesModel) {\n maxDataCount_1 = Math.max(maxDataCount_1, seriesModel.getData().count());\n });\n var extent = baseAxis.getExtent();\n bandWidth = Math.abs(extent[1] - extent[0]) / maxDataCount_1;\n }\n\n each(seriesModels, function (seriesModel) {\n var boxWidthBound = seriesModel.get('boxWidth');\n\n if (!zrUtil.isArray(boxWidthBound)) {\n boxWidthBound = [boxWidthBound, boxWidthBound];\n }\n\n boundList.push([parsePercent(boxWidthBound[0], bandWidth) || 0, parsePercent(boxWidthBound[1], bandWidth) || 0]);\n });\n var availableWidth = bandWidth * 0.8 - 2;\n var boxGap = availableWidth / seriesCount * 0.3;\n var boxWidth = (availableWidth - boxGap * (seriesCount - 1)) / seriesCount;\n var base = boxWidth / 2 - availableWidth / 2;\n each(seriesModels, function (seriesModel, idx) {\n boxOffsetList.push(base);\n base += boxGap + boxWidth;\n boxWidthList.push(Math.min(Math.max(boxWidth, boundList[idx][0]), boundList[idx][1]));\n });\n}\n/**\n * Calculate points location for each series.\n */\n\n\nfunction layoutSingleSeries(seriesModel, offset, boxWidth) {\n var coordSys = seriesModel.coordinateSystem;\n var data = seriesModel.getData();\n var halfWidth = boxWidth / 2;\n var cDimIdx = seriesModel.get('layout') === 'horizontal' ? 0 : 1;\n var vDimIdx = 1 - cDimIdx;\n var coordDims = ['x', 'y'];\n var cDim = data.mapDimension(coordDims[cDimIdx]);\n var vDims = data.mapDimensionsAll(coordDims[vDimIdx]);\n\n if (cDim == null || vDims.length < 5) {\n return;\n }\n\n for (var dataIndex = 0; dataIndex < data.count(); dataIndex++) {\n var axisDimVal = data.get(cDim, dataIndex);\n var median = getPoint(axisDimVal, vDims[2], dataIndex);\n var end1 = getPoint(axisDimVal, vDims[0], dataIndex);\n var end2 = getPoint(axisDimVal, vDims[1], dataIndex);\n var end4 = getPoint(axisDimVal, vDims[3], dataIndex);\n var end5 = getPoint(axisDimVal, vDims[4], dataIndex);\n var ends = [];\n addBodyEnd(ends, end2, false);\n addBodyEnd(ends, end4, true);\n ends.push(end1, end2, end5, end4);\n layEndLine(ends, end1);\n layEndLine(ends, end5);\n layEndLine(ends, median);\n data.setItemLayout(dataIndex, {\n initBaseline: median[vDimIdx],\n ends: ends\n });\n }\n\n function getPoint(axisDimVal, dim, dataIndex) {\n var val = data.get(dim, dataIndex);\n var p = [];\n p[cDimIdx] = axisDimVal;\n p[vDimIdx] = val;\n var point;\n\n if (isNaN(axisDimVal) || isNaN(val)) {\n point = [NaN, NaN];\n } else {\n point = coordSys.dataToPoint(p);\n point[cDimIdx] += offset;\n }\n\n return point;\n }\n\n function addBodyEnd(ends, point, start) {\n var point1 = point.slice();\n var point2 = point.slice();\n point1[cDimIdx] += halfWidth;\n point2[cDimIdx] -= halfWidth;\n start ? ends.push(point1, point2) : ends.push(point2, point1);\n }\n\n function layEndLine(ends, endCenter) {\n var from = endCenter.slice();\n var to = endCenter.slice();\n from[cDimIdx] -= halfWidth;\n to[cDimIdx] += halfWidth;\n ends.push(from, to);\n }\n}"]},"metadata":{},"sourceType":"module"}