{"version":3,"file":"js/chunk-vendors-af65373f.ac75368d.js","mappings":"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","sources":["webpack://i4proportal/./node_modules/echarts/lib/layout/barGrid.js","webpack://i4proportal/./node_modules/echarts/lib/layout/barPolar.js","webpack://i4proportal/./node_modules/echarts/lib/layout/points.js"],"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\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar _number = require(\"../util/number\");\n\nvar parsePercent = _number.parsePercent;\n\nvar _dataStackHelper = require(\"../data/helper/dataStackHelper\");\n\nvar isDimensionStacked = _dataStackHelper.isDimensionStacked;\n\nvar createRenderPlanner = require(\"../chart/helper/createRenderPlanner\");\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/* global Float32Array */\nvar STACK_PREFIX = '__ec_stack_';\nvar LARGE_BAR_MIN_WIDTH = 0.5;\nvar LargeArr = typeof Float32Array !== 'undefined' ? Float32Array : Array;\n\nfunction getSeriesStackId(seriesModel) {\n return seriesModel.get('stack') || STACK_PREFIX + seriesModel.seriesIndex;\n}\n\nfunction getAxisKey(axis) {\n return axis.dim + axis.index;\n}\n/**\n * @param {Object} opt\n * @param {module:echarts/coord/Axis} opt.axis Only support category axis currently.\n * @param {number} opt.count Positive interger.\n * @param {number} [opt.barWidth]\n * @param {number} [opt.barMaxWidth]\n * @param {number} [opt.barMinWidth]\n * @param {number} [opt.barGap]\n * @param {number} [opt.barCategoryGap]\n * @return {Object} {width, offset, offsetCenter} If axis.type is not 'category', return undefined.\n */\n\n\nfunction getLayoutOnAxis(opt) {\n var params = [];\n var baseAxis = opt.axis;\n var axisKey = 'axis0';\n\n if (baseAxis.type !== 'category') {\n return;\n }\n\n var bandWidth = baseAxis.getBandWidth();\n\n for (var i = 0; i < opt.count || 0; i++) {\n params.push(zrUtil.defaults({\n bandWidth: bandWidth,\n axisKey: axisKey,\n stackId: STACK_PREFIX + i\n }, opt));\n }\n\n var widthAndOffsets = doCalBarWidthAndOffset(params);\n var result = [];\n\n for (var i = 0; i < opt.count; i++) {\n var item = widthAndOffsets[axisKey][STACK_PREFIX + i];\n item.offsetCenter = item.offset + item.width / 2;\n result.push(item);\n }\n\n return result;\n}\n\nfunction prepareLayoutBarSeries(seriesType, ecModel) {\n var seriesModels = [];\n ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n // Check series coordinate, do layout for cartesian2d only\n if (isOnCartesian(seriesModel) && !isInLargeMode(seriesModel)) {\n seriesModels.push(seriesModel);\n }\n });\n return seriesModels;\n}\n/**\n * Map from (baseAxis.dim + '_' + baseAxis.index) to min gap of two adjacent\n * values.\n * This works for time axes, value axes, and log axes.\n * For a single time axis, return value is in the form like\n * {'x_0': [1000000]}.\n * The value of 1000000 is in milliseconds.\n */\n\n\nfunction getValueAxesMinGaps(barSeries) {\n /**\n * Map from axis.index to values.\n * For a single time axis, axisValues is in the form like\n * {'x_0': [1495555200000, 1495641600000, 1495728000000]}.\n * Items in axisValues[x], e.g. 1495555200000, are time values of all\n * series.\n */\n var axisValues = {};\n zrUtil.each(barSeries, function (seriesModel) {\n var cartesian = seriesModel.coordinateSystem;\n var baseAxis = cartesian.getBaseAxis();\n\n if (baseAxis.type !== 'time' && baseAxis.type !== 'value') {\n return;\n }\n\n var data = seriesModel.getData();\n var key = baseAxis.dim + '_' + baseAxis.index;\n var dim = data.mapDimension(baseAxis.dim);\n\n for (var i = 0, cnt = data.count(); i < cnt; ++i) {\n var value = data.get(dim, i);\n\n if (!axisValues[key]) {\n // No previous data for the axis\n axisValues[key] = [value];\n } else {\n // No value in previous series\n axisValues[key].push(value);\n } // Ignore duplicated time values in the same axis\n\n }\n });\n var axisMinGaps = [];\n\n for (var key in axisValues) {\n if (axisValues.hasOwnProperty(key)) {\n var valuesInAxis = axisValues[key];\n\n if (valuesInAxis) {\n // Sort axis values into ascending order to calculate gaps\n valuesInAxis.sort(function (a, b) {\n return a - b;\n });\n var min = null;\n\n for (var j = 1; j < valuesInAxis.length; ++j) {\n var delta = valuesInAxis[j] - valuesInAxis[j - 1];\n\n if (delta > 0) {\n // Ignore 0 delta because they are of the same axis value\n min = min === null ? delta : Math.min(min, delta);\n }\n } // Set to null if only have one data\n\n\n axisMinGaps[key] = min;\n }\n }\n }\n\n return axisMinGaps;\n}\n\nfunction makeColumnLayout(barSeries) {\n var axisMinGaps = getValueAxesMinGaps(barSeries);\n var seriesInfoList = [];\n zrUtil.each(barSeries, function (seriesModel) {\n var cartesian = seriesModel.coordinateSystem;\n var baseAxis = cartesian.getBaseAxis();\n var axisExtent = baseAxis.getExtent();\n var bandWidth;\n\n if (baseAxis.type === 'category') {\n bandWidth = baseAxis.getBandWidth();\n } else if (baseAxis.type === 'value' || baseAxis.type === 'time') {\n var key = baseAxis.dim + '_' + baseAxis.index;\n var minGap = axisMinGaps[key];\n var extentSpan = Math.abs(axisExtent[1] - axisExtent[0]);\n var scale = baseAxis.scale.getExtent();\n var scaleSpan = Math.abs(scale[1] - scale[0]);\n bandWidth = minGap ? extentSpan / scaleSpan * minGap : extentSpan; // When there is only one data value\n } else {\n var data = seriesModel.getData();\n bandWidth = Math.abs(axisExtent[1] - axisExtent[0]) / data.count();\n }\n\n var barWidth = parsePercent(seriesModel.get('barWidth'), bandWidth);\n var barMaxWidth = parsePercent(seriesModel.get('barMaxWidth'), bandWidth);\n var barMinWidth = parsePercent( // barMinWidth by default is 1 in cartesian. Because in value axis,\n // the auto-calculated bar width might be less than 1.\n seriesModel.get('barMinWidth') || 1, bandWidth);\n var barGap = seriesModel.get('barGap');\n var barCategoryGap = seriesModel.get('barCategoryGap');\n seriesInfoList.push({\n bandWidth: bandWidth,\n barWidth: barWidth,\n barMaxWidth: barMaxWidth,\n barMinWidth: barMinWidth,\n barGap: barGap,\n barCategoryGap: barCategoryGap,\n axisKey: getAxisKey(baseAxis),\n stackId: getSeriesStackId(seriesModel)\n });\n });\n return doCalBarWidthAndOffset(seriesInfoList);\n}\n\nfunction doCalBarWidthAndOffset(seriesInfoList) {\n // Columns info on each category axis. Key is cartesian name\n var columnsMap = {};\n zrUtil.each(seriesInfoList, function (seriesInfo, idx) {\n var axisKey = seriesInfo.axisKey;\n var bandWidth = seriesInfo.bandWidth;\n var columnsOnAxis = columnsMap[axisKey] || {\n bandWidth: bandWidth,\n remainedWidth: bandWidth,\n autoWidthCount: 0,\n categoryGap: '20%',\n gap: '30%',\n stacks: {}\n };\n var stacks = columnsOnAxis.stacks;\n columnsMap[axisKey] = columnsOnAxis;\n var stackId = seriesInfo.stackId;\n\n if (!stacks[stackId]) {\n columnsOnAxis.autoWidthCount++;\n }\n\n stacks[stackId] = stacks[stackId] || {\n width: 0,\n maxWidth: 0\n }; // Caution: In a single coordinate system, these barGrid attributes\n // will be shared by series. Consider that they have default values,\n // only the attributes set on the last series will work.\n // Do not change this fact unless there will be a break change.\n\n var barWidth = seriesInfo.barWidth;\n\n if (barWidth && !stacks[stackId].width) {\n // See #6312, do not restrict width.\n stacks[stackId].width = barWidth;\n barWidth = Math.min(columnsOnAxis.remainedWidth, barWidth);\n columnsOnAxis.remainedWidth -= barWidth;\n }\n\n var barMaxWidth = seriesInfo.barMaxWidth;\n barMaxWidth && (stacks[stackId].maxWidth = barMaxWidth);\n var barMinWidth = seriesInfo.barMinWidth;\n barMinWidth && (stacks[stackId].minWidth = barMinWidth);\n var barGap = seriesInfo.barGap;\n barGap != null && (columnsOnAxis.gap = barGap);\n var barCategoryGap = seriesInfo.barCategoryGap;\n barCategoryGap != null && (columnsOnAxis.categoryGap = barCategoryGap);\n });\n var result = {};\n zrUtil.each(columnsMap, function (columnsOnAxis, coordSysName) {\n result[coordSysName] = {};\n var stacks = columnsOnAxis.stacks;\n var bandWidth = columnsOnAxis.bandWidth;\n var categoryGap = parsePercent(columnsOnAxis.categoryGap, bandWidth);\n var barGapPercent = parsePercent(columnsOnAxis.gap, 1);\n var remainedWidth = columnsOnAxis.remainedWidth;\n var autoWidthCount = columnsOnAxis.autoWidthCount;\n var autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n autoWidth = Math.max(autoWidth, 0); // Find if any auto calculated bar exceeded maxBarWidth\n\n zrUtil.each(stacks, function (column) {\n var maxWidth = column.maxWidth;\n var minWidth = column.minWidth;\n\n if (!column.width) {\n var finalWidth = autoWidth;\n\n if (maxWidth && maxWidth < finalWidth) {\n finalWidth = Math.min(maxWidth, remainedWidth);\n } // `minWidth` has higher priority. `minWidth` decide that wheter the\n // bar is able to be visible. So `minWidth` should not be restricted\n // by `maxWidth` or `remainedWidth` (which is from `bandWidth`). In\n // the extreme cases for `value` axis, bars are allowed to overlap\n // with each other if `minWidth` specified.\n\n\n if (minWidth && minWidth > finalWidth) {\n finalWidth = minWidth;\n }\n\n if (finalWidth !== autoWidth) {\n column.width = finalWidth;\n remainedWidth -= finalWidth + barGapPercent * finalWidth;\n autoWidthCount--;\n }\n } else {\n // `barMinWidth/barMaxWidth` has higher priority than `barWidth`, as\n // CSS does. Becuase barWidth can be a percent value, where\n // `barMaxWidth` can be used to restrict the final width.\n var finalWidth = column.width;\n\n if (maxWidth) {\n finalWidth = Math.min(finalWidth, maxWidth);\n } // `minWidth` has higher priority, as described above\n\n\n if (minWidth) {\n finalWidth = Math.max(finalWidth, minWidth);\n }\n\n column.width = finalWidth;\n remainedWidth -= finalWidth + barGapPercent * finalWidth;\n autoWidthCount--;\n }\n }); // Recalculate width again\n\n autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n autoWidth = Math.max(autoWidth, 0);\n var widthSum = 0;\n var lastColumn;\n zrUtil.each(stacks, function (column, idx) {\n if (!column.width) {\n column.width = autoWidth;\n }\n\n lastColumn = column;\n widthSum += column.width * (1 + barGapPercent);\n });\n\n if (lastColumn) {\n widthSum -= lastColumn.width * barGapPercent;\n }\n\n var offset = -widthSum / 2;\n zrUtil.each(stacks, function (column, stackId) {\n result[coordSysName][stackId] = result[coordSysName][stackId] || {\n bandWidth: bandWidth,\n offset: offset,\n width: column.width\n };\n offset += column.width * (1 + barGapPercent);\n });\n });\n return result;\n}\n/**\n * @param {Object} barWidthAndOffset The result of makeColumnLayout\n * @param {module:echarts/coord/Axis} axis\n * @param {module:echarts/model/Series} [seriesModel] If not provided, return all.\n * @return {Object} {stackId: {offset, width}} or {offset, width} if seriesModel provided.\n */\n\n\nfunction retrieveColumnLayout(barWidthAndOffset, axis, seriesModel) {\n if (barWidthAndOffset && axis) {\n var result = barWidthAndOffset[getAxisKey(axis)];\n\n if (result != null && seriesModel != null) {\n result = result[getSeriesStackId(seriesModel)];\n }\n\n return result;\n }\n}\n/**\n * @param {string} seriesType\n * @param {module:echarts/model/Global} ecModel\n */\n\n\nfunction layout(seriesType, ecModel) {\n var seriesModels = prepareLayoutBarSeries(seriesType, ecModel);\n var barWidthAndOffset = makeColumnLayout(seriesModels);\n var lastStackCoords = {};\n var lastStackCoordsOrigin = {};\n zrUtil.each(seriesModels, function (seriesModel) {\n var data = seriesModel.getData();\n var cartesian = seriesModel.coordinateSystem;\n var baseAxis = cartesian.getBaseAxis();\n var stackId = getSeriesStackId(seriesModel);\n var columnLayoutInfo = barWidthAndOffset[getAxisKey(baseAxis)][stackId];\n var columnOffset = columnLayoutInfo.offset;\n var columnWidth = columnLayoutInfo.width;\n var valueAxis = cartesian.getOtherAxis(baseAxis);\n var barMinHeight = seriesModel.get('barMinHeight') || 0;\n lastStackCoords[stackId] = lastStackCoords[stackId] || [];\n lastStackCoordsOrigin[stackId] = lastStackCoordsOrigin[stackId] || []; // Fix #4243\n\n data.setLayout({\n bandWidth: columnLayoutInfo.bandWidth,\n offset: columnOffset,\n size: columnWidth\n });\n var valueDim = data.mapDimension(valueAxis.dim);\n var baseDim = data.mapDimension(baseAxis.dim);\n var stacked = isDimensionStacked(data, valueDim\n /*, baseDim*/\n );\n var isValueAxisH = valueAxis.isHorizontal();\n var valueAxisStart = getValueAxisStart(baseAxis, valueAxis, stacked);\n\n for (var idx = 0, len = data.count(); idx < len; idx++) {\n var value = data.get(valueDim, idx);\n var baseValue = data.get(baseDim, idx);\n var sign = value >= 0 ? 'p' : 'n';\n var baseCoord = valueAxisStart; // Because of the barMinHeight, we can not use the value in\n // stackResultDimension directly.\n\n if (stacked) {\n // Only ordinal axis can be stacked.\n if (!lastStackCoords[stackId][baseValue]) {\n lastStackCoords[stackId][baseValue] = {\n p: valueAxisStart,\n // Positive stack\n n: valueAxisStart // Negative stack\n\n };\n } // Should also consider #4243\n\n\n baseCoord = lastStackCoords[stackId][baseValue][sign];\n }\n\n var x;\n var y;\n var width;\n var height;\n\n if (isValueAxisH) {\n var coord = cartesian.dataToPoint([value, baseValue]);\n x = baseCoord;\n y = coord[1] + columnOffset;\n width = coord[0] - valueAxisStart;\n height = columnWidth;\n\n if (Math.abs(width) < barMinHeight) {\n width = (width < 0 ? -1 : 1) * barMinHeight;\n } // Ignore stack from NaN value\n\n\n if (!isNaN(width)) {\n stacked && (lastStackCoords[stackId][baseValue][sign] += width);\n }\n } else {\n var coord = cartesian.dataToPoint([baseValue, value]);\n x = coord[0] + columnOffset;\n y = baseCoord;\n width = columnWidth;\n height = coord[1] - valueAxisStart;\n\n if (Math.abs(height) < barMinHeight) {\n // Include zero to has a positive bar\n height = (height <= 0 ? -1 : 1) * barMinHeight;\n } // Ignore stack from NaN value\n\n\n if (!isNaN(height)) {\n stacked && (lastStackCoords[stackId][baseValue][sign] += height);\n }\n }\n\n data.setItemLayout(idx, {\n x: x,\n y: y,\n width: width,\n height: height\n });\n }\n }, this);\n} // TODO: Do not support stack in large mode yet.\n\n\nvar largeLayout = {\n seriesType: 'bar',\n plan: createRenderPlanner(),\n reset: function (seriesModel) {\n if (!isOnCartesian(seriesModel) || !isInLargeMode(seriesModel)) {\n return;\n }\n\n var data = seriesModel.getData();\n var cartesian = seriesModel.coordinateSystem;\n var coordLayout = cartesian.grid.getRect();\n var baseAxis = cartesian.getBaseAxis();\n var valueAxis = cartesian.getOtherAxis(baseAxis);\n var valueDim = data.mapDimension(valueAxis.dim);\n var baseDim = data.mapDimension(baseAxis.dim);\n var valueAxisHorizontal = valueAxis.isHorizontal();\n var valueDimIdx = valueAxisHorizontal ? 0 : 1;\n var barWidth = retrieveColumnLayout(makeColumnLayout([seriesModel]), baseAxis, seriesModel).width;\n\n if (!(barWidth > LARGE_BAR_MIN_WIDTH)) {\n // jshint ignore:line\n barWidth = LARGE_BAR_MIN_WIDTH;\n }\n\n return {\n progress: progress\n };\n\n function progress(params, data) {\n var count = params.count;\n var largePoints = new LargeArr(count * 2);\n var largeBackgroundPoints = new LargeArr(count * 2);\n var largeDataIndices = new LargeArr(count);\n var dataIndex;\n var coord = [];\n var valuePair = [];\n var pointsOffset = 0;\n var idxOffset = 0;\n\n while ((dataIndex = params.next()) != null) {\n valuePair[valueDimIdx] = data.get(valueDim, dataIndex);\n valuePair[1 - valueDimIdx] = data.get(baseDim, dataIndex);\n coord = cartesian.dataToPoint(valuePair, null, coord); // Data index might not be in order, depends on `progressiveChunkMode`.\n\n largeBackgroundPoints[pointsOffset] = valueAxisHorizontal ? coordLayout.x + coordLayout.width : coord[0];\n largePoints[pointsOffset++] = coord[0];\n largeBackgroundPoints[pointsOffset] = valueAxisHorizontal ? coord[1] : coordLayout.y + coordLayout.height;\n largePoints[pointsOffset++] = coord[1];\n largeDataIndices[idxOffset++] = dataIndex;\n }\n\n data.setLayout({\n largePoints: largePoints,\n largeDataIndices: largeDataIndices,\n largeBackgroundPoints: largeBackgroundPoints,\n barWidth: barWidth,\n valueAxisStart: getValueAxisStart(baseAxis, valueAxis, false),\n backgroundStart: valueAxisHorizontal ? coordLayout.x : coordLayout.y,\n valueAxisHorizontal: valueAxisHorizontal\n });\n }\n }\n};\n\nfunction isOnCartesian(seriesModel) {\n return seriesModel.coordinateSystem && seriesModel.coordinateSystem.type === 'cartesian2d';\n}\n\nfunction isInLargeMode(seriesModel) {\n return seriesModel.pipelineContext && seriesModel.pipelineContext.large;\n} // See cases in `test/bar-start.html` and `#7412`, `#8747`.\n\n\nfunction getValueAxisStart(baseAxis, valueAxis, stacked) {\n return valueAxis.toGlobalCoord(valueAxis.dataToCoord(valueAxis.type === 'log' ? 1 : 0));\n}\n\nexports.getLayoutOnAxis = getLayoutOnAxis;\nexports.prepareLayoutBarSeries = prepareLayoutBarSeries;\nexports.makeColumnLayout = makeColumnLayout;\nexports.retrieveColumnLayout = retrieveColumnLayout;\nexports.layout = layout;\nexports.largeLayout = largeLayout;","\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\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar _number = require(\"../util/number\");\n\nvar parsePercent = _number.parsePercent;\n\nvar _dataStackHelper = require(\"../data/helper/dataStackHelper\");\n\nvar isDimensionStacked = _dataStackHelper.isDimensionStacked;\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*/\nfunction getSeriesStackId(seriesModel) {\n return seriesModel.get('stack') || '__ec_stack_' + seriesModel.seriesIndex;\n}\n\nfunction getAxisKey(polar, axis) {\n return axis.dim + polar.model.componentIndex;\n}\n/**\n * @param {string} seriesType\n * @param {module:echarts/model/Global} ecModel\n * @param {module:echarts/ExtensionAPI} api\n */\n\n\nfunction barLayoutPolar(seriesType, ecModel, api) {\n var lastStackCoords = {};\n var barWidthAndOffset = calRadialBar(zrUtil.filter(ecModel.getSeriesByType(seriesType), function (seriesModel) {\n return !ecModel.isSeriesFiltered(seriesModel) && seriesModel.coordinateSystem && seriesModel.coordinateSystem.type === 'polar';\n }));\n ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n // Check series coordinate, do layout for polar only\n if (seriesModel.coordinateSystem.type !== 'polar') {\n return;\n }\n\n var data = seriesModel.getData();\n var polar = seriesModel.coordinateSystem;\n var baseAxis = polar.getBaseAxis();\n var axisKey = getAxisKey(polar, baseAxis);\n var stackId = getSeriesStackId(seriesModel);\n var columnLayoutInfo = barWidthAndOffset[axisKey][stackId];\n var columnOffset = columnLayoutInfo.offset;\n var columnWidth = columnLayoutInfo.width;\n var valueAxis = polar.getOtherAxis(baseAxis);\n var cx = seriesModel.coordinateSystem.cx;\n var cy = seriesModel.coordinateSystem.cy;\n var barMinHeight = seriesModel.get('barMinHeight') || 0;\n var barMinAngle = seriesModel.get('barMinAngle') || 0;\n lastStackCoords[stackId] = lastStackCoords[stackId] || [];\n var valueDim = data.mapDimension(valueAxis.dim);\n var baseDim = data.mapDimension(baseAxis.dim);\n var stacked = isDimensionStacked(data, valueDim\n /*, baseDim*/\n );\n var clampLayout = baseAxis.dim !== 'radius' || !seriesModel.get('roundCap', true);\n var valueAxisStart = valueAxis.dim === 'radius' ? valueAxis.dataToRadius(0) : valueAxis.dataToAngle(0);\n\n for (var idx = 0, len = data.count(); idx < len; idx++) {\n var value = data.get(valueDim, idx);\n var baseValue = data.get(baseDim, idx);\n var sign = value >= 0 ? 'p' : 'n';\n var baseCoord = valueAxisStart; // Because of the barMinHeight, we can not use the value in\n // stackResultDimension directly.\n // Only ordinal axis can be stacked.\n\n if (stacked) {\n if (!lastStackCoords[stackId][baseValue]) {\n lastStackCoords[stackId][baseValue] = {\n p: valueAxisStart,\n // Positive stack\n n: valueAxisStart // Negative stack\n\n };\n } // Should also consider #4243\n\n\n baseCoord = lastStackCoords[stackId][baseValue][sign];\n }\n\n var r0;\n var r;\n var startAngle;\n var endAngle; // radial sector\n\n if (valueAxis.dim === 'radius') {\n var radiusSpan = valueAxis.dataToRadius(value) - valueAxisStart;\n var angle = baseAxis.dataToAngle(baseValue);\n\n if (Math.abs(radiusSpan) < barMinHeight) {\n radiusSpan = (radiusSpan < 0 ? -1 : 1) * barMinHeight;\n }\n\n r0 = baseCoord;\n r = baseCoord + radiusSpan;\n startAngle = angle - columnOffset;\n endAngle = startAngle - columnWidth;\n stacked && (lastStackCoords[stackId][baseValue][sign] = r);\n } // tangential sector\n else {\n var angleSpan = valueAxis.dataToAngle(value, clampLayout) - valueAxisStart;\n var radius = baseAxis.dataToRadius(baseValue);\n\n if (Math.abs(angleSpan) < barMinAngle) {\n angleSpan = (angleSpan < 0 ? -1 : 1) * barMinAngle;\n }\n\n r0 = radius + columnOffset;\n r = r0 + columnWidth;\n startAngle = baseCoord;\n endAngle = baseCoord + angleSpan; // if the previous stack is at the end of the ring,\n // add a round to differentiate it from origin\n // var extent = angleAxis.getExtent();\n // var stackCoord = angle;\n // if (stackCoord === extent[0] && value > 0) {\n // stackCoord = extent[1];\n // }\n // else if (stackCoord === extent[1] && value < 0) {\n // stackCoord = extent[0];\n // }\n\n stacked && (lastStackCoords[stackId][baseValue][sign] = endAngle);\n }\n\n data.setItemLayout(idx, {\n cx: cx,\n cy: cy,\n r0: r0,\n r: r,\n // Consider that positive angle is anti-clockwise,\n // while positive radian of sector is clockwise\n startAngle: -startAngle * Math.PI / 180,\n endAngle: -endAngle * Math.PI / 180\n });\n }\n }, this);\n}\n/**\n * Calculate bar width and offset for radial bar charts\n */\n\n\nfunction calRadialBar(barSeries, api) {\n // Columns info on each category axis. Key is polar name\n var columnsMap = {};\n zrUtil.each(barSeries, function (seriesModel, idx) {\n var data = seriesModel.getData();\n var polar = seriesModel.coordinateSystem;\n var baseAxis = polar.getBaseAxis();\n var axisKey = getAxisKey(polar, baseAxis);\n var axisExtent = baseAxis.getExtent();\n var bandWidth = baseAxis.type === 'category' ? baseAxis.getBandWidth() : Math.abs(axisExtent[1] - axisExtent[0]) / data.count();\n var columnsOnAxis = columnsMap[axisKey] || {\n bandWidth: bandWidth,\n remainedWidth: bandWidth,\n autoWidthCount: 0,\n categoryGap: '20%',\n gap: '30%',\n stacks: {}\n };\n var stacks = columnsOnAxis.stacks;\n columnsMap[axisKey] = columnsOnAxis;\n var stackId = getSeriesStackId(seriesModel);\n\n if (!stacks[stackId]) {\n columnsOnAxis.autoWidthCount++;\n }\n\n stacks[stackId] = stacks[stackId] || {\n width: 0,\n maxWidth: 0\n };\n var barWidth = parsePercent(seriesModel.get('barWidth'), bandWidth);\n var barMaxWidth = parsePercent(seriesModel.get('barMaxWidth'), bandWidth);\n var barGap = seriesModel.get('barGap');\n var barCategoryGap = seriesModel.get('barCategoryGap');\n\n if (barWidth && !stacks[stackId].width) {\n barWidth = Math.min(columnsOnAxis.remainedWidth, barWidth);\n stacks[stackId].width = barWidth;\n columnsOnAxis.remainedWidth -= barWidth;\n }\n\n barMaxWidth && (stacks[stackId].maxWidth = barMaxWidth);\n barGap != null && (columnsOnAxis.gap = barGap);\n barCategoryGap != null && (columnsOnAxis.categoryGap = barCategoryGap);\n });\n var result = {};\n zrUtil.each(columnsMap, function (columnsOnAxis, coordSysName) {\n result[coordSysName] = {};\n var stacks = columnsOnAxis.stacks;\n var bandWidth = columnsOnAxis.bandWidth;\n var categoryGap = parsePercent(columnsOnAxis.categoryGap, bandWidth);\n var barGapPercent = parsePercent(columnsOnAxis.gap, 1);\n var remainedWidth = columnsOnAxis.remainedWidth;\n var autoWidthCount = columnsOnAxis.autoWidthCount;\n var autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n autoWidth = Math.max(autoWidth, 0); // Find if any auto calculated bar exceeded maxBarWidth\n\n zrUtil.each(stacks, function (column, stack) {\n var maxWidth = column.maxWidth;\n\n if (maxWidth && maxWidth < autoWidth) {\n maxWidth = Math.min(maxWidth, remainedWidth);\n\n if (column.width) {\n maxWidth = Math.min(maxWidth, column.width);\n }\n\n remainedWidth -= maxWidth;\n column.width = maxWidth;\n autoWidthCount--;\n }\n }); // Recalculate width again\n\n autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n autoWidth = Math.max(autoWidth, 0);\n var widthSum = 0;\n var lastColumn;\n zrUtil.each(stacks, function (column, idx) {\n if (!column.width) {\n column.width = autoWidth;\n }\n\n lastColumn = column;\n widthSum += column.width * (1 + barGapPercent);\n });\n\n if (lastColumn) {\n widthSum -= lastColumn.width * barGapPercent;\n }\n\n var offset = -widthSum / 2;\n zrUtil.each(stacks, function (column, stackId) {\n result[coordSysName][stackId] = result[coordSysName][stackId] || {\n offset: offset,\n width: column.width\n };\n offset += column.width * (1 + barGapPercent);\n });\n });\n return result;\n}\n\nvar _default = barLayoutPolar;\nmodule.exports = _default;","\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\nvar _util = require(\"zrender/lib/core/util\");\n\nvar map = _util.map;\n\nvar createRenderPlanner = require(\"../chart/helper/createRenderPlanner\");\n\nvar _dataStackHelper = require(\"../data/helper/dataStackHelper\");\n\nvar isDimensionStacked = _dataStackHelper.isDimensionStacked;\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/* global Float32Array */\nfunction _default(seriesType) {\n return {\n seriesType: seriesType,\n plan: createRenderPlanner(),\n reset: function (seriesModel) {\n var data = seriesModel.getData();\n var coordSys = seriesModel.coordinateSystem;\n var pipelineContext = seriesModel.pipelineContext;\n var isLargeRender = pipelineContext.large;\n\n if (!coordSys) {\n return;\n }\n\n var dims = map(coordSys.dimensions, function (dim) {\n return data.mapDimension(dim);\n }).slice(0, 2);\n var dimLen = dims.length;\n var stackResultDim = data.getCalculationInfo('stackResultDimension');\n\n if (isDimensionStacked(data, dims[0]\n /*, dims[1]*/\n )) {\n dims[0] = stackResultDim;\n }\n\n if (isDimensionStacked(data, dims[1]\n /*, dims[0]*/\n )) {\n dims[1] = stackResultDim;\n }\n\n function progress(params, data) {\n var segCount = params.end - params.start;\n var points = isLargeRender && new Float32Array(segCount * dimLen);\n\n for (var i = params.start, offset = 0, tmpIn = [], tmpOut = []; i < params.end; i++) {\n var point;\n\n if (dimLen === 1) {\n var x = data.get(dims[0], i);\n point = !isNaN(x) && coordSys.dataToPoint(x, null, tmpOut);\n } else {\n var x = tmpIn[0] = data.get(dims[0], i);\n var y = tmpIn[1] = data.get(dims[1], i); // Also {Array.}, not undefined to avoid if...else... statement\n\n point = !isNaN(x) && !isNaN(y) && coordSys.dataToPoint(tmpIn, null, tmpOut);\n }\n\n if (isLargeRender) {\n points[offset++] = point ? point[0] : NaN;\n points[offset++] = point ? point[1] : NaN;\n } else {\n data.setItemLayout(i, point && point.slice() || [NaN, NaN]);\n }\n }\n\n isLargeRender && data.setLayout('symbolPoints', points);\n }\n\n return dimLen && {\n progress: progress\n };\n }\n };\n}\n\nmodule.exports = _default;"],"names":["zrUtil","_number","parsePercent","_dataStackHelper","isDimensionStacked","createRenderPlanner","STACK_PREFIX","LARGE_BAR_MIN_WIDTH","LargeArr","Float32Array","Array","getSeriesStackId","seriesModel","get","seriesIndex","getAxisKey","axis","dim","index","getLayoutOnAxis","opt","params","baseAxis","axisKey","type","bandWidth","getBandWidth","i","count","push","defaults","stackId","widthAndOffsets","doCalBarWidthAndOffset","result","item","offsetCenter","offset","width","prepareLayoutBarSeries","seriesType","ecModel","seriesModels","eachSeriesByType","isOnCartesian","isInLargeMode","getValueAxesMinGaps","barSeries","axisValues","each","cartesian","coordinateSystem","getBaseAxis","data","getData","key","mapDimension","cnt","value","axisMinGaps","hasOwnProperty","valuesInAxis","sort","a","b","min","j","length","delta","Math","makeColumnLayout","seriesInfoList","axisExtent","getExtent","minGap","extentSpan","abs","scale","scaleSpan","barWidth","barMaxWidth","barMinWidth","barGap","barCategoryGap","columnsMap","seriesInfo","idx","columnsOnAxis","remainedWidth","autoWidthCount","categoryGap","gap","stacks","maxWidth","minWidth","coordSysName","barGapPercent","autoWidth","max","column","finalWidth","lastColumn","widthSum","retrieveColumnLayout","barWidthAndOffset","layout","lastStackCoords","lastStackCoordsOrigin","columnLayoutInfo","columnOffset","columnWidth","valueAxis","getOtherAxis","barMinHeight","setLayout","size","valueDim","baseDim","stacked","isValueAxisH","isHorizontal","valueAxisStart","getValueAxisStart","len","x","y","height","baseValue","sign","baseCoord","p","n","coord","dataToPoint","isNaN","setItemLayout","this","largeLayout","plan","reset","coordLayout","grid","getRect","valueAxisHorizontal","valueDimIdx","progress","dataIndex","largePoints","largeBackgroundPoints","largeDataIndices","valuePair","pointsOffset","idxOffset","next","backgroundStart","pipelineContext","large","toGlobalCoord","dataToCoord","exports","polar","model","componentIndex","barLayoutPolar","api","calRadialBar","filter","getSeriesByType","isSeriesFiltered","cx","cy","barMinAngle","clampLayout","dataToRadius","dataToAngle","r0","r","startAngle","endAngle","radiusSpan","angle","angleSpan","radius","PI","stack","_default","module","_util","map","coordSys","isLargeRender","dims","dimensions","slice","dimLen","stackResultDim","getCalculationInfo","segCount","end","start","points","tmpIn","tmpOut","point","NaN"],"sourceRoot":""}