1 |
- {"version":3,"file":"js/chunk-vendors-0ee8b09c.7aca4476.js","mappings":"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","sources":["webpack://app/./node_modules/echarts/lib/chart/boxplot.js","webpack://app/./node_modules/echarts/lib/chart/boxplot/BoxplotSeries.js","webpack://app/./node_modules/echarts/lib/chart/boxplot/BoxplotView.js","webpack://app/./node_modules/echarts/lib/chart/boxplot/boxplotLayout.js","webpack://app/./node_modules/echarts/lib/chart/boxplot/boxplotVisual.js","webpack://app/./node_modules/echarts/lib/chart/candlestick.js","webpack://app/./node_modules/echarts/lib/chart/candlestick/CandlestickSeries.js","webpack://app/./node_modules/echarts/lib/chart/candlestick/CandlestickView.js","webpack://app/./node_modules/echarts/lib/chart/candlestick/candlestickLayout.js","webpack://app/./node_modules/echarts/lib/chart/candlestick/candlestickVisual.js","webpack://app/./node_modules/echarts/lib/chart/candlestick/preprocessor.js","webpack://app/./node_modules/echarts/lib/chart/custom.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 echarts = require(\"../echarts\");\n\nrequire(\"./boxplot/BoxplotSeries\");\n\nrequire(\"./boxplot/BoxplotView\");\n\nvar boxplotVisual = require(\"./boxplot/boxplotVisual\");\n\nvar boxplotLayout = require(\"./boxplot/boxplotLayout\");\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*/\necharts.registerVisual(boxplotVisual);\necharts.registerLayout(boxplotLayout);","\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 SeriesModel = require(\"../../model/Series\");\n\nvar _whiskerBoxCommon = require(\"../helper/whiskerBoxCommon\");\n\nvar seriesModelMixin = _whiskerBoxCommon.seriesModelMixin;\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*/\nvar BoxplotSeries = SeriesModel.extend({\n type: 'series.boxplot',\n dependencies: ['xAxis', 'yAxis', 'grid'],\n // TODO\n // box width represents group size, so dimension should have 'size'.\n\n /**\n * @see <https://en.wikipedia.org/wiki/Box_plot>\n * The meanings of 'min' and 'max' depend on user,\n * and echarts do not need to know it.\n * @readOnly\n */\n defaultValueDimensions: [{\n name: 'min',\n defaultTooltip: true\n }, {\n name: 'Q1',\n defaultTooltip: true\n }, {\n name: 'median',\n defaultTooltip: true\n }, {\n name: 'Q3',\n defaultTooltip: true\n }, {\n name: 'max',\n defaultTooltip: true\n }],\n\n /**\n * @type {Array.<string>}\n * @readOnly\n */\n dimensions: null,\n\n /**\n * @override\n */\n defaultOption: {\n zlevel: 0,\n // 一级层叠\n z: 2,\n // 二级层叠\n coordinateSystem: 'cartesian2d',\n legendHoverLink: true,\n hoverAnimation: true,\n // xAxisIndex: 0,\n // yAxisIndex: 0,\n layout: null,\n // 'horizontal' or 'vertical'\n boxWidth: [7, 50],\n // [min, max] can be percent of band width.\n itemStyle: {\n color: '#fff',\n borderWidth: 1\n },\n emphasis: {\n itemStyle: {\n borderWidth: 2,\n shadowBlur: 5,\n shadowOffsetX: 2,\n shadowOffsetY: 2,\n shadowColor: 'rgba(0,0,0,0.4)'\n }\n },\n animationEasing: 'elasticOut',\n animationDuration: 800\n }\n});\nzrUtil.mixin(BoxplotSeries, seriesModelMixin, true);\nvar _default = BoxplotSeries;\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 zrUtil = require(\"zrender/lib/core/util\");\n\nvar ChartView = require(\"../../view/Chart\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar Path = require(\"zrender/lib/graphic/Path\");\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// Update common properties\nvar NORMAL_ITEM_STYLE_PATH = ['itemStyle'];\nvar EMPHASIS_ITEM_STYLE_PATH = ['emphasis', 'itemStyle'];\nvar BoxplotView = ChartView.extend({\n type: 'boxplot',\n render: function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n var group = this.group;\n var oldData = this._data; // There is no old data only when first rendering or switching from\n // stream mode to normal mode, where previous elements should be removed.\n\n if (!this._data) {\n group.removeAll();\n }\n\n var constDim = seriesModel.get('layout') === 'horizontal' ? 1 : 0;\n data.diff(oldData).add(function (newIdx) {\n if (data.hasValue(newIdx)) {\n var itemLayout = data.getItemLayout(newIdx);\n var symbolEl = createNormalBox(itemLayout, data, newIdx, constDim, true);\n data.setItemGraphicEl(newIdx, symbolEl);\n group.add(symbolEl);\n }\n }).update(function (newIdx, oldIdx) {\n var symbolEl = oldData.getItemGraphicEl(oldIdx); // Empty data\n\n if (!data.hasValue(newIdx)) {\n group.remove(symbolEl);\n return;\n }\n\n var itemLayout = data.getItemLayout(newIdx);\n\n if (!symbolEl) {\n symbolEl = createNormalBox(itemLayout, data, newIdx, constDim);\n } else {\n updateNormalBoxData(itemLayout, symbolEl, data, newIdx);\n }\n\n group.add(symbolEl);\n data.setItemGraphicEl(newIdx, symbolEl);\n }).remove(function (oldIdx) {\n var el = oldData.getItemGraphicEl(oldIdx);\n el && group.remove(el);\n }).execute();\n this._data = data;\n },\n remove: function (ecModel) {\n var group = this.group;\n var data = this._data;\n this._data = null;\n data && data.eachItemGraphicEl(function (el) {\n el && group.remove(el);\n });\n },\n dispose: zrUtil.noop\n});\nvar BoxPath = Path.extend({\n type: 'boxplotBoxPath',\n shape: {},\n buildPath: function (ctx, shape) {\n var ends = shape.points;\n var i = 0;\n ctx.moveTo(ends[i][0], ends[i][1]);\n i++;\n\n for (; i < 4; i++) {\n ctx.lineTo(ends[i][0], ends[i][1]);\n }\n\n ctx.closePath();\n\n for (; i < ends.length; i++) {\n ctx.moveTo(ends[i][0], ends[i][1]);\n i++;\n ctx.lineTo(ends[i][0], ends[i][1]);\n }\n }\n});\n\nfunction createNormalBox(itemLayout, data, dataIndex, constDim, isInit) {\n var ends = itemLayout.ends;\n var el = new BoxPath({\n shape: {\n points: isInit ? transInit(ends, constDim, itemLayout) : ends\n }\n });\n updateNormalBoxData(itemLayout, el, data, dataIndex, isInit);\n return el;\n}\n\nfunction updateNormalBoxData(itemLayout, el, data, dataIndex, isInit) {\n var seriesModel = data.hostModel;\n var updateMethod = graphic[isInit ? 'initProps' : 'updateProps'];\n updateMethod(el, {\n shape: {\n points: itemLayout.ends\n }\n }, seriesModel, dataIndex);\n var itemModel = data.getItemModel(dataIndex);\n var normalItemStyleModel = itemModel.getModel(NORMAL_ITEM_STYLE_PATH);\n var borderColor = data.getItemVisual(dataIndex, 'color'); // Exclude borderColor.\n\n var itemStyle = normalItemStyleModel.getItemStyle(['borderColor']);\n itemStyle.stroke = borderColor;\n itemStyle.strokeNoScale = true;\n el.useStyle(itemStyle);\n el.z2 = 100;\n var hoverStyle = itemModel.getModel(EMPHASIS_ITEM_STYLE_PATH).getItemStyle();\n graphic.setHoverStyle(el, hoverStyle);\n}\n\nfunction transInit(points, dim, itemLayout) {\n return zrUtil.map(points, function (point) {\n point = point.slice();\n point[dim] = itemLayout.initBaseline;\n return point;\n });\n}\n\nvar _default = BoxplotView;\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 zrUtil = require(\"zrender/lib/core/util\");\n\nvar _number = require(\"../../util/number\");\n\nvar parsePercent = _number.parsePercent;\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*/\nvar each = zrUtil.each;\n\nfunction _default(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\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 extent;\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 = 0;\n each(seriesModels, function (seriesModel) {\n maxDataCount = Math.max(maxDataCount, seriesModel.getData().count());\n });\n extent = baseAxis.getExtent(), Math.abs(extent[1] - extent[0]) / maxDataCount;\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.mapDimension(coordDims[vDimIdx], true);\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, 0);\n addBodyEnd(ends, end4, 1);\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, dimIdx, dataIndex) {\n var val = data.get(dimIdx, 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}\n\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\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*/\nvar borderColorQuery = ['itemStyle', 'borderColor'];\n\nfunction _default(ecModel, api) {\n var globalColors = ecModel.get('color');\n ecModel.eachRawSeriesByType('boxplot', function (seriesModel) {\n var defaulColor = globalColors[seriesModel.seriesIndex % globalColors.length];\n var data = seriesModel.getData();\n data.setVisual({\n legendSymbol: 'roundRect',\n // Use name 'color' but not 'borderColor' for legend usage and\n // visual coding from other component like dataRange.\n color: seriesModel.get(borderColorQuery) || defaulColor\n }); // Only visible series has each data be visual encoded\n\n if (!ecModel.isSeriesFiltered(seriesModel)) {\n data.each(function (idx) {\n var itemModel = data.getItemModel(idx);\n data.setItemVisual(idx, {\n color: itemModel.get(borderColorQuery, true)\n });\n });\n }\n });\n}\n\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 echarts = require(\"../echarts\");\n\nrequire(\"./candlestick/CandlestickSeries\");\n\nrequire(\"./candlestick/CandlestickView\");\n\nvar preprocessor = require(\"./candlestick/preprocessor\");\n\nvar candlestickVisual = require(\"./candlestick/candlestickVisual\");\n\nvar candlestickLayout = require(\"./candlestick/candlestickLayout\");\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*/\necharts.registerPreprocessor(preprocessor);\necharts.registerVisual(candlestickVisual);\necharts.registerLayout(candlestickLayout);","\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 SeriesModel = require(\"../../model/Series\");\n\nvar _whiskerBoxCommon = require(\"../helper/whiskerBoxCommon\");\n\nvar seriesModelMixin = _whiskerBoxCommon.seriesModelMixin;\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*/\nvar CandlestickSeries = SeriesModel.extend({\n type: 'series.candlestick',\n dependencies: ['xAxis', 'yAxis', 'grid'],\n\n /**\n * @readOnly\n */\n defaultValueDimensions: [{\n name: 'open',\n defaultTooltip: true\n }, {\n name: 'close',\n defaultTooltip: true\n }, {\n name: 'lowest',\n defaultTooltip: true\n }, {\n name: 'highest',\n defaultTooltip: true\n }],\n\n /**\n * @type {Array.<string>}\n * @readOnly\n */\n dimensions: null,\n\n /**\n * @override\n */\n defaultOption: {\n zlevel: 0,\n z: 2,\n coordinateSystem: 'cartesian2d',\n legendHoverLink: true,\n hoverAnimation: true,\n // xAxisIndex: 0,\n // yAxisIndex: 0,\n layout: null,\n // 'horizontal' or 'vertical'\n clip: true,\n itemStyle: {\n color: '#c23531',\n // 阳线 positive\n color0: '#314656',\n // 阴线 negative '#c23531', '#314656'\n borderWidth: 1,\n // FIXME\n // ec2中使用的是lineStyle.color 和 lineStyle.color0\n borderColor: '#c23531',\n borderColor0: '#314656'\n },\n emphasis: {\n itemStyle: {\n borderWidth: 2\n }\n },\n barMaxWidth: null,\n barMinWidth: null,\n barWidth: null,\n large: true,\n largeThreshold: 600,\n progressive: 3e3,\n progressiveThreshold: 1e4,\n progressiveChunkMode: 'mod',\n animationUpdate: false,\n animationEasing: 'linear',\n animationDuration: 300\n },\n\n /**\n * Get dimension for shadow in dataZoom\n * @return {string} dimension name\n */\n getShadowDim: function () {\n return 'open';\n },\n brushSelector: function (dataIndex, data, selectors) {\n var itemLayout = data.getItemLayout(dataIndex);\n return itemLayout && selectors.rect(itemLayout.brushRect);\n }\n});\nzrUtil.mixin(CandlestickSeries, seriesModelMixin, true);\nvar _default = CandlestickSeries;\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 zrUtil = require(\"zrender/lib/core/util\");\n\nvar ChartView = require(\"../../view/Chart\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar Path = require(\"zrender/lib/graphic/Path\");\n\nvar _createClipPathFromCoordSys = require(\"../helper/createClipPathFromCoordSys\");\n\nvar createClipPath = _createClipPathFromCoordSys.createClipPath;\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*/\nvar NORMAL_ITEM_STYLE_PATH = ['itemStyle'];\nvar EMPHASIS_ITEM_STYLE_PATH = ['emphasis', 'itemStyle'];\nvar SKIP_PROPS = ['color', 'color0', 'borderColor', 'borderColor0'];\nvar CandlestickView = ChartView.extend({\n type: 'candlestick',\n render: function (seriesModel, ecModel, api) {\n // If there is clipPath created in large mode. Remove it.\n this.group.removeClipPath();\n\n this._updateDrawMode(seriesModel);\n\n this._isLargeDraw ? this._renderLarge(seriesModel) : this._renderNormal(seriesModel);\n },\n incrementalPrepareRender: function (seriesModel, ecModel, api) {\n this._clear();\n\n this._updateDrawMode(seriesModel);\n },\n incrementalRender: function (params, seriesModel, ecModel, api) {\n this._isLargeDraw ? this._incrementalRenderLarge(params, seriesModel) : this._incrementalRenderNormal(params, seriesModel);\n },\n _updateDrawMode: function (seriesModel) {\n var isLargeDraw = seriesModel.pipelineContext.large;\n\n if (this._isLargeDraw == null || isLargeDraw ^ this._isLargeDraw) {\n this._isLargeDraw = isLargeDraw;\n\n this._clear();\n }\n },\n _renderNormal: function (seriesModel) {\n var data = seriesModel.getData();\n var oldData = this._data;\n var group = this.group;\n var isSimpleBox = data.getLayout('isSimpleBox');\n var needsClip = seriesModel.get('clip', true);\n var coord = seriesModel.coordinateSystem;\n var clipArea = coord.getArea && coord.getArea(); // There is no old data only when first rendering or switching from\n // stream mode to normal mode, where previous elements should be removed.\n\n if (!this._data) {\n group.removeAll();\n }\n\n data.diff(oldData).add(function (newIdx) {\n if (data.hasValue(newIdx)) {\n var el;\n var itemLayout = data.getItemLayout(newIdx);\n\n if (needsClip && isNormalBoxClipped(clipArea, itemLayout)) {\n return;\n }\n\n el = createNormalBox(itemLayout, newIdx, true);\n graphic.initProps(el, {\n shape: {\n points: itemLayout.ends\n }\n }, seriesModel, newIdx);\n setBoxCommon(el, data, newIdx, isSimpleBox);\n group.add(el);\n data.setItemGraphicEl(newIdx, el);\n }\n }).update(function (newIdx, oldIdx) {\n var el = oldData.getItemGraphicEl(oldIdx); // Empty data\n\n if (!data.hasValue(newIdx)) {\n group.remove(el);\n return;\n }\n\n var itemLayout = data.getItemLayout(newIdx);\n\n if (needsClip && isNormalBoxClipped(clipArea, itemLayout)) {\n group.remove(el);\n return;\n }\n\n if (!el) {\n el = createNormalBox(itemLayout, newIdx);\n } else {\n graphic.updateProps(el, {\n shape: {\n points: itemLayout.ends\n }\n }, seriesModel, newIdx);\n }\n\n setBoxCommon(el, data, newIdx, isSimpleBox);\n group.add(el);\n data.setItemGraphicEl(newIdx, el);\n }).remove(function (oldIdx) {\n var el = oldData.getItemGraphicEl(oldIdx);\n el && group.remove(el);\n }).execute();\n this._data = data;\n },\n _renderLarge: function (seriesModel) {\n this._clear();\n\n createLarge(seriesModel, this.group);\n var clipPath = seriesModel.get('clip', true) ? createClipPath(seriesModel.coordinateSystem, false, seriesModel) : null;\n\n if (clipPath) {\n this.group.setClipPath(clipPath);\n } else {\n this.group.removeClipPath();\n }\n },\n _incrementalRenderNormal: function (params, seriesModel) {\n var data = seriesModel.getData();\n var isSimpleBox = data.getLayout('isSimpleBox');\n var dataIndex;\n\n while ((dataIndex = params.next()) != null) {\n var el;\n var itemLayout = data.getItemLayout(dataIndex);\n el = createNormalBox(itemLayout, dataIndex);\n setBoxCommon(el, data, dataIndex, isSimpleBox);\n el.incremental = true;\n this.group.add(el);\n }\n },\n _incrementalRenderLarge: function (params, seriesModel) {\n createLarge(seriesModel, this.group, true);\n },\n remove: function (ecModel) {\n this._clear();\n },\n _clear: function () {\n this.group.removeAll();\n this._data = null;\n },\n dispose: zrUtil.noop\n});\nvar NormalBoxPath = Path.extend({\n type: 'normalCandlestickBox',\n shape: {},\n buildPath: function (ctx, shape) {\n var ends = shape.points;\n\n if (this.__simpleBox) {\n ctx.moveTo(ends[4][0], ends[4][1]);\n ctx.lineTo(ends[6][0], ends[6][1]);\n } else {\n ctx.moveTo(ends[0][0], ends[0][1]);\n ctx.lineTo(ends[1][0], ends[1][1]);\n ctx.lineTo(ends[2][0], ends[2][1]);\n ctx.lineTo(ends[3][0], ends[3][1]);\n ctx.closePath();\n ctx.moveTo(ends[4][0], ends[4][1]);\n ctx.lineTo(ends[5][0], ends[5][1]);\n ctx.moveTo(ends[6][0], ends[6][1]);\n ctx.lineTo(ends[7][0], ends[7][1]);\n }\n }\n});\n\nfunction createNormalBox(itemLayout, dataIndex, isInit) {\n var ends = itemLayout.ends;\n return new NormalBoxPath({\n shape: {\n points: isInit ? transInit(ends, itemLayout) : ends\n },\n z2: 100\n });\n}\n\nfunction isNormalBoxClipped(clipArea, itemLayout) {\n var clipped = true;\n\n for (var i = 0; i < itemLayout.ends.length; i++) {\n // If any point are in the region.\n if (clipArea.contain(itemLayout.ends[i][0], itemLayout.ends[i][1])) {\n clipped = false;\n break;\n }\n }\n\n return clipped;\n}\n\nfunction setBoxCommon(el, data, dataIndex, isSimpleBox) {\n var itemModel = data.getItemModel(dataIndex);\n var normalItemStyleModel = itemModel.getModel(NORMAL_ITEM_STYLE_PATH);\n var color = data.getItemVisual(dataIndex, 'color');\n var borderColor = data.getItemVisual(dataIndex, 'borderColor') || color; // Color must be excluded.\n // Because symbol provide setColor individually to set fill and stroke\n\n var itemStyle = normalItemStyleModel.getItemStyle(SKIP_PROPS);\n el.useStyle(itemStyle);\n el.style.strokeNoScale = true;\n el.style.fill = color;\n el.style.stroke = borderColor;\n el.__simpleBox = isSimpleBox;\n var hoverStyle = itemModel.getModel(EMPHASIS_ITEM_STYLE_PATH).getItemStyle();\n graphic.setHoverStyle(el, hoverStyle);\n}\n\nfunction transInit(points, itemLayout) {\n return zrUtil.map(points, function (point) {\n point = point.slice();\n point[1] = itemLayout.initBaseline;\n return point;\n });\n}\n\nvar LargeBoxPath = Path.extend({\n type: 'largeCandlestickBox',\n shape: {},\n buildPath: function (ctx, shape) {\n // Drawing lines is more efficient than drawing\n // a whole line or drawing rects.\n var points = shape.points;\n\n for (var i = 0; i < points.length;) {\n if (this.__sign === points[i++]) {\n var x = points[i++];\n ctx.moveTo(x, points[i++]);\n ctx.lineTo(x, points[i++]);\n } else {\n i += 3;\n }\n }\n }\n});\n\nfunction createLarge(seriesModel, group, incremental) {\n var data = seriesModel.getData();\n var largePoints = data.getLayout('largePoints');\n var elP = new LargeBoxPath({\n shape: {\n points: largePoints\n },\n __sign: 1\n });\n group.add(elP);\n var elN = new LargeBoxPath({\n shape: {\n points: largePoints\n },\n __sign: -1\n });\n group.add(elN);\n setLargeStyle(1, elP, seriesModel, data);\n setLargeStyle(-1, elN, seriesModel, data);\n\n if (incremental) {\n elP.incremental = true;\n elN.incremental = true;\n }\n}\n\nfunction setLargeStyle(sign, el, seriesModel, data) {\n var suffix = sign > 0 ? 'P' : 'N';\n var borderColor = data.getVisual('borderColor' + suffix) || data.getVisual('color' + suffix); // Color must be excluded.\n // Because symbol provide setColor individually to set fill and stroke\n\n var itemStyle = seriesModel.getModel(NORMAL_ITEM_STYLE_PATH).getItemStyle(SKIP_PROPS);\n el.useStyle(itemStyle);\n el.style.fill = null;\n el.style.stroke = borderColor; // No different\n // el.style.lineWidth = .5;\n}\n\nvar _default = CandlestickView;\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 _graphic = require(\"../../util/graphic\");\n\nvar subPixelOptimize = _graphic.subPixelOptimize;\n\nvar createRenderPlanner = require(\"../helper/createRenderPlanner\");\n\nvar _number = require(\"../../util/number\");\n\nvar parsePercent = _number.parsePercent;\n\nvar _util = require(\"zrender/lib/core/util\");\n\nvar retrieve2 = _util.retrieve2;\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 LargeArr = typeof Float32Array !== 'undefined' ? Float32Array : Array;\nvar _default = {\n seriesType: 'candlestick',\n plan: createRenderPlanner(),\n reset: function (seriesModel) {\n var coordSys = seriesModel.coordinateSystem;\n var data = seriesModel.getData();\n var candleWidth = calculateCandleWidth(seriesModel, data);\n var cDimIdx = 0;\n var vDimIdx = 1;\n var coordDims = ['x', 'y'];\n var cDim = data.mapDimension(coordDims[cDimIdx]);\n var vDims = data.mapDimension(coordDims[vDimIdx], true);\n var openDim = vDims[0];\n var closeDim = vDims[1];\n var lowestDim = vDims[2];\n var highestDim = vDims[3];\n data.setLayout({\n candleWidth: candleWidth,\n // The value is experimented visually.\n isSimpleBox: candleWidth <= 1.3\n });\n\n if (cDim == null || vDims.length < 4) {\n return;\n }\n\n return {\n progress: seriesModel.pipelineContext.large ? largeProgress : normalProgress\n };\n\n function normalProgress(params, data) {\n var dataIndex;\n\n while ((dataIndex = params.next()) != null) {\n var axisDimVal = data.get(cDim, dataIndex);\n var openVal = data.get(openDim, dataIndex);\n var closeVal = data.get(closeDim, dataIndex);\n var lowestVal = data.get(lowestDim, dataIndex);\n var highestVal = data.get(highestDim, dataIndex);\n var ocLow = Math.min(openVal, closeVal);\n var ocHigh = Math.max(openVal, closeVal);\n var ocLowPoint = getPoint(ocLow, axisDimVal);\n var ocHighPoint = getPoint(ocHigh, axisDimVal);\n var lowestPoint = getPoint(lowestVal, axisDimVal);\n var highestPoint = getPoint(highestVal, axisDimVal);\n var ends = [];\n addBodyEnd(ends, ocHighPoint, 0);\n addBodyEnd(ends, ocLowPoint, 1);\n ends.push(subPixelOptimizePoint(highestPoint), subPixelOptimizePoint(ocHighPoint), subPixelOptimizePoint(lowestPoint), subPixelOptimizePoint(ocLowPoint));\n data.setItemLayout(dataIndex, {\n sign: getSign(data, dataIndex, openVal, closeVal, closeDim),\n initBaseline: openVal > closeVal ? ocHighPoint[vDimIdx] : ocLowPoint[vDimIdx],\n // open point.\n ends: ends,\n brushRect: makeBrushRect(lowestVal, highestVal, axisDimVal)\n });\n }\n\n function getPoint(val, axisDimVal) {\n var p = [];\n p[cDimIdx] = axisDimVal;\n p[vDimIdx] = val;\n return isNaN(axisDimVal) || isNaN(val) ? [NaN, NaN] : coordSys.dataToPoint(p);\n }\n\n function addBodyEnd(ends, point, start) {\n var point1 = point.slice();\n var point2 = point.slice();\n point1[cDimIdx] = subPixelOptimize(point1[cDimIdx] + candleWidth / 2, 1, false);\n point2[cDimIdx] = subPixelOptimize(point2[cDimIdx] - candleWidth / 2, 1, true);\n start ? ends.push(point1, point2) : ends.push(point2, point1);\n }\n\n function makeBrushRect(lowestVal, highestVal, axisDimVal) {\n var pmin = getPoint(lowestVal, axisDimVal);\n var pmax = getPoint(highestVal, axisDimVal);\n pmin[cDimIdx] -= candleWidth / 2;\n pmax[cDimIdx] -= candleWidth / 2;\n return {\n x: pmin[0],\n y: pmin[1],\n width: vDimIdx ? candleWidth : pmax[0] - pmin[0],\n height: vDimIdx ? pmax[1] - pmin[1] : candleWidth\n };\n }\n\n function subPixelOptimizePoint(point) {\n point[cDimIdx] = subPixelOptimize(point[cDimIdx], 1);\n return point;\n }\n }\n\n function largeProgress(params, data) {\n // Structure: [sign, x, yhigh, ylow, sign, x, yhigh, ylow, ...]\n var points = new LargeArr(params.count * 4);\n var offset = 0;\n var point;\n var tmpIn = [];\n var tmpOut = [];\n var dataIndex;\n\n while ((dataIndex = params.next()) != null) {\n var axisDimVal = data.get(cDim, dataIndex);\n var openVal = data.get(openDim, dataIndex);\n var closeVal = data.get(closeDim, dataIndex);\n var lowestVal = data.get(lowestDim, dataIndex);\n var highestVal = data.get(highestDim, dataIndex);\n\n if (isNaN(axisDimVal) || isNaN(lowestVal) || isNaN(highestVal)) {\n points[offset++] = NaN;\n offset += 3;\n continue;\n }\n\n points[offset++] = getSign(data, dataIndex, openVal, closeVal, closeDim);\n tmpIn[cDimIdx] = axisDimVal;\n tmpIn[vDimIdx] = lowestVal;\n point = coordSys.dataToPoint(tmpIn, null, tmpOut);\n points[offset++] = point ? point[0] : NaN;\n points[offset++] = point ? point[1] : NaN;\n tmpIn[vDimIdx] = highestVal;\n point = coordSys.dataToPoint(tmpIn, null, tmpOut);\n points[offset++] = point ? point[1] : NaN;\n }\n\n data.setLayout('largePoints', points);\n }\n }\n};\n\nfunction getSign(data, dataIndex, openVal, closeVal, closeDim) {\n var sign;\n\n if (openVal > closeVal) {\n sign = -1;\n } else if (openVal < closeVal) {\n sign = 1;\n } else {\n sign = dataIndex > 0 // If close === open, compare with close of last record\n ? data.get(closeDim, dataIndex - 1) <= closeVal ? 1 : -1 : // No record of previous, set to be positive\n 1;\n }\n\n return sign;\n}\n\nfunction calculateCandleWidth(seriesModel, data) {\n var baseAxis = seriesModel.getBaseAxis();\n var extent;\n var bandWidth = baseAxis.type === 'category' ? baseAxis.getBandWidth() : (extent = baseAxis.getExtent(), Math.abs(extent[1] - extent[0]) / data.count());\n var barMaxWidth = parsePercent(retrieve2(seriesModel.get('barMaxWidth'), bandWidth), bandWidth);\n var barMinWidth = parsePercent(retrieve2(seriesModel.get('barMinWidth'), 1), bandWidth);\n var barWidth = seriesModel.get('barWidth');\n return barWidth != null ? parsePercent(barWidth, bandWidth) // Put max outer to ensure bar visible in spite of overlap.\n : Math.max(Math.min(bandWidth / 2, barMaxWidth), barMinWidth);\n}\n\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 createRenderPlanner = require(\"../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*/\nvar positiveBorderColorQuery = ['itemStyle', 'borderColor'];\nvar negativeBorderColorQuery = ['itemStyle', 'borderColor0'];\nvar positiveColorQuery = ['itemStyle', 'color'];\nvar negativeColorQuery = ['itemStyle', 'color0'];\nvar _default = {\n seriesType: 'candlestick',\n plan: createRenderPlanner(),\n // For legend.\n performRawSeries: true,\n reset: function (seriesModel, ecModel) {\n var data = seriesModel.getData();\n data.setVisual({\n legendSymbol: 'roundRect',\n colorP: getColor(1, seriesModel),\n colorN: getColor(-1, seriesModel),\n borderColorP: getBorderColor(1, seriesModel),\n borderColorN: getBorderColor(-1, seriesModel)\n }); // Only visible series has each data be visual encoded\n\n if (ecModel.isSeriesFiltered(seriesModel)) {\n return;\n }\n\n var isLargeRender = seriesModel.pipelineContext.large;\n return !isLargeRender && {\n progress: progress\n };\n\n function progress(params, data) {\n var dataIndex;\n\n while ((dataIndex = params.next()) != null) {\n var itemModel = data.getItemModel(dataIndex);\n var sign = data.getItemLayout(dataIndex).sign;\n data.setItemVisual(dataIndex, {\n color: getColor(sign, itemModel),\n borderColor: getBorderColor(sign, itemModel)\n });\n }\n }\n\n function getColor(sign, model) {\n return model.get(sign > 0 ? positiveColorQuery : negativeColorQuery);\n }\n\n function getBorderColor(sign, model) {\n return model.get(sign > 0 ? positiveBorderColorQuery : negativeBorderColorQuery);\n }\n }\n};\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 zrUtil = require(\"zrender/lib/core/util\");\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 _default(option) {\n if (!option || !zrUtil.isArray(option.series)) {\n return;\n } // Translate 'k' to 'candlestick'.\n\n\n zrUtil.each(option.series, function (seriesItem) {\n if (zrUtil.isObject(seriesItem) && seriesItem.type === 'k') {\n seriesItem.type = 'candlestick';\n }\n });\n}\n\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 _config = require(\"../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar graphicUtil = require(\"../util/graphic\");\n\nvar _labelHelper = require(\"./helper/labelHelper\");\n\nvar getDefaultLabel = _labelHelper.getDefaultLabel;\n\nvar createListFromArray = require(\"./helper/createListFromArray\");\n\nvar _barGrid = require(\"../layout/barGrid\");\n\nvar getLayoutOnAxis = _barGrid.getLayoutOnAxis;\n\nvar DataDiffer = require(\"../data/DataDiffer\");\n\nvar SeriesModel = require(\"../model/Series\");\n\nvar Model = require(\"../model/Model\");\n\nvar ChartView = require(\"../view/Chart\");\n\nvar _createClipPathFromCoordSys = require(\"./helper/createClipPathFromCoordSys\");\n\nvar createClipPath = _createClipPathFromCoordSys.createClipPath;\n\nvar prepareCartesian2d = require(\"../coord/cartesian/prepareCustom\");\n\nvar prepareGeo = require(\"../coord/geo/prepareCustom\");\n\nvar prepareSingleAxis = require(\"../coord/single/prepareCustom\");\n\nvar preparePolar = require(\"../coord/polar/prepareCustom\");\n\nvar prepareCalendar = require(\"../coord/calendar/prepareCustom\");\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*/\nvar CACHED_LABEL_STYLE_PROPERTIES = graphicUtil.CACHED_LABEL_STYLE_PROPERTIES;\nvar ITEM_STYLE_NORMAL_PATH = ['itemStyle'];\nvar ITEM_STYLE_EMPHASIS_PATH = ['emphasis', 'itemStyle'];\nvar LABEL_NORMAL = ['label'];\nvar LABEL_EMPHASIS = ['emphasis', 'label']; // Use prefix to avoid index to be the same as el.name,\n// which will cause weird udpate animation.\n\nvar GROUP_DIFF_PREFIX = 'e\\0\\0';\n/**\n * To reduce total package size of each coordinate systems, the modules `prepareCustom`\n * of each coordinate systems are not required by each coordinate systems directly, but\n * required by the module `custom`.\n *\n * prepareInfoForCustomSeries {Function}: optional\n * @return {Object} {coordSys: {...}, api: {\n * coord: function (data, clamp) {}, // return point in global.\n * size: function (dataSize, dataItem) {} // return size of each axis in coordSys.\n * }}\n */\n\nvar prepareCustoms = {\n cartesian2d: prepareCartesian2d,\n geo: prepareGeo,\n singleAxis: prepareSingleAxis,\n polar: preparePolar,\n calendar: prepareCalendar\n}; // ------\n// Model\n// ------\n\nSeriesModel.extend({\n type: 'series.custom',\n dependencies: ['grid', 'polar', 'geo', 'singleAxis', 'calendar'],\n defaultOption: {\n coordinateSystem: 'cartesian2d',\n // Can be set as 'none'\n zlevel: 0,\n z: 2,\n legendHoverLink: true,\n useTransform: true,\n // Custom series will not clip by default.\n // Some case will use custom series to draw label\n // For example https://echarts.apache.org/examples/en/editor.html?c=custom-gantt-flight\n // Only works on polar and cartesian2d coordinate system.\n clip: false // Cartesian coordinate system\n // xAxisIndex: 0,\n // yAxisIndex: 0,\n // Polar coordinate system\n // polarIndex: 0,\n // Geo coordinate system\n // geoIndex: 0,\n // label: {}\n // itemStyle: {}\n\n },\n\n /**\n * @override\n */\n getInitialData: function (option, ecModel) {\n return createListFromArray(this.getSource(), this);\n },\n\n /**\n * @override\n */\n getDataParams: function (dataIndex, dataType, el) {\n var params = SeriesModel.prototype.getDataParams.apply(this, arguments);\n el && (params.info = el.info);\n return params;\n }\n}); // -----\n// View\n// -----\n\nChartView.extend({\n type: 'custom',\n\n /**\n * @private\n * @type {module:echarts/data/List}\n */\n _data: null,\n\n /**\n * @override\n */\n render: function (customSeries, ecModel, api, payload) {\n var oldData = this._data;\n var data = customSeries.getData();\n var group = this.group;\n var renderItem = makeRenderItem(customSeries, data, ecModel, api); // By default, merge mode is applied. In most cases, custom series is\n // used in the scenario that data amount is not large but graphic elements\n // is complicated, where merge mode is probably necessary for optimization.\n // For example, reuse graphic elements and only update the transform when\n // roam or data zoom according to `actionType`.\n\n data.diff(oldData).add(function (newIdx) {\n createOrUpdate(null, newIdx, renderItem(newIdx, payload), customSeries, group, data);\n }).update(function (newIdx, oldIdx) {\n var el = oldData.getItemGraphicEl(oldIdx);\n createOrUpdate(el, newIdx, renderItem(newIdx, payload), customSeries, group, data);\n }).remove(function (oldIdx) {\n var el = oldData.getItemGraphicEl(oldIdx);\n el && group.remove(el);\n }).execute(); // Do clipping\n\n var clipPath = customSeries.get('clip', true) ? createClipPath(customSeries.coordinateSystem, false, customSeries) : null;\n\n if (clipPath) {\n group.setClipPath(clipPath);\n } else {\n group.removeClipPath();\n }\n\n this._data = data;\n },\n incrementalPrepareRender: function (customSeries, ecModel, api) {\n this.group.removeAll();\n this._data = null;\n },\n incrementalRender: function (params, customSeries, ecModel, api, payload) {\n var data = customSeries.getData();\n var renderItem = makeRenderItem(customSeries, data, ecModel, api);\n\n function setIncrementalAndHoverLayer(el) {\n if (!el.isGroup) {\n el.incremental = true;\n el.useHoverLayer = true;\n }\n }\n\n for (var idx = params.start; idx < params.end; idx++) {\n var el = createOrUpdate(null, idx, renderItem(idx, payload), customSeries, this.group, data);\n el.traverse(setIncrementalAndHoverLayer);\n }\n },\n\n /**\n * @override\n */\n dispose: zrUtil.noop,\n\n /**\n * @override\n */\n filterForExposedEvent: function (eventType, query, targetEl, packedEvent) {\n var elementName = query.element;\n\n if (elementName == null || targetEl.name === elementName) {\n return true;\n } // Enable to give a name on a group made by `renderItem`, and listen\n // events that triggerd by its descendents.\n\n\n while ((targetEl = targetEl.parent) && targetEl !== this.group) {\n if (targetEl.name === elementName) {\n return true;\n }\n }\n\n return false;\n }\n});\n\nfunction createEl(elOption) {\n var graphicType = elOption.type;\n var el; // Those graphic elements are not shapes. They should not be\n // overwritten by users, so do them first.\n\n if (graphicType === 'path') {\n var shape = elOption.shape; // Using pathRect brings convenience to users sacle svg path.\n\n var pathRect = shape.width != null && shape.height != null ? {\n x: shape.x || 0,\n y: shape.y || 0,\n width: shape.width,\n height: shape.height\n } : null;\n var pathData = getPathData(shape); // Path is also used for icon, so layout 'center' by default.\n\n el = graphicUtil.makePath(pathData, null, pathRect, shape.layout || 'center');\n el.__customPathData = pathData;\n } else if (graphicType === 'image') {\n el = new graphicUtil.Image({});\n el.__customImagePath = elOption.style.image;\n } else if (graphicType === 'text') {\n el = new graphicUtil.Text({});\n el.__customText = elOption.style.text;\n } else if (graphicType === 'group') {\n el = new graphicUtil.Group();\n } else if (graphicType === 'compoundPath') {\n throw new Error('\"compoundPath\" is not supported yet.');\n } else {\n var Clz = graphicUtil.getShapeClass(graphicType);\n el = new Clz();\n }\n\n el.__customGraphicType = graphicType;\n el.name = elOption.name;\n return el;\n}\n\nfunction updateEl(el, dataIndex, elOption, animatableModel, data, isInit, isRoot) {\n var transitionProps = {};\n var elOptionStyle = elOption.style || {};\n elOption.shape && (transitionProps.shape = zrUtil.clone(elOption.shape));\n elOption.position && (transitionProps.position = elOption.position.slice());\n elOption.scale && (transitionProps.scale = elOption.scale.slice());\n elOption.origin && (transitionProps.origin = elOption.origin.slice());\n elOption.rotation && (transitionProps.rotation = elOption.rotation);\n\n if (el.type === 'image' && elOption.style) {\n var targetStyle = transitionProps.style = {};\n zrUtil.each(['x', 'y', 'width', 'height'], function (prop) {\n prepareStyleTransition(prop, targetStyle, elOptionStyle, el.style, isInit);\n });\n }\n\n if (el.type === 'text' && elOption.style) {\n var targetStyle = transitionProps.style = {};\n zrUtil.each(['x', 'y'], function (prop) {\n prepareStyleTransition(prop, targetStyle, elOptionStyle, el.style, isInit);\n }); // Compatible with previous: both support\n // textFill and fill, textStroke and stroke in 'text' element.\n\n !elOptionStyle.hasOwnProperty('textFill') && elOptionStyle.fill && (elOptionStyle.textFill = elOptionStyle.fill);\n !elOptionStyle.hasOwnProperty('textStroke') && elOptionStyle.stroke && (elOptionStyle.textStroke = elOptionStyle.stroke);\n }\n\n if (el.type !== 'group') {\n el.useStyle(elOptionStyle); // Init animation.\n\n if (isInit) {\n el.style.opacity = 0;\n var targetOpacity = elOptionStyle.opacity;\n targetOpacity == null && (targetOpacity = 1);\n graphicUtil.initProps(el, {\n style: {\n opacity: targetOpacity\n }\n }, animatableModel, dataIndex);\n }\n }\n\n if (isInit) {\n el.attr(transitionProps);\n } else {\n graphicUtil.updateProps(el, transitionProps, animatableModel, dataIndex);\n } // Merge by default.\n // z2 must not be null/undefined, otherwise sort error may occur.\n\n\n elOption.hasOwnProperty('z2') && el.attr('z2', elOption.z2 || 0);\n elOption.hasOwnProperty('silent') && el.attr('silent', elOption.silent);\n elOption.hasOwnProperty('invisible') && el.attr('invisible', elOption.invisible);\n elOption.hasOwnProperty('ignore') && el.attr('ignore', elOption.ignore); // `elOption.info` enables user to mount some info on\n // elements and use them in event handlers.\n // Update them only when user specified, otherwise, remain.\n\n elOption.hasOwnProperty('info') && el.attr('info', elOption.info); // If `elOption.styleEmphasis` is `false`, remove hover style. The\n // logic is ensured by `graphicUtil.setElementHoverStyle`.\n\n var styleEmphasis = elOption.styleEmphasis; // hoverStyle should always be set here, because if the hover style\n // may already be changed, where the inner cache should be reset.\n\n graphicUtil.setElementHoverStyle(el, styleEmphasis);\n\n if (isRoot) {\n graphicUtil.setAsHighDownDispatcher(el, styleEmphasis !== false);\n }\n}\n\nfunction prepareStyleTransition(prop, targetStyle, elOptionStyle, oldElStyle, isInit) {\n if (elOptionStyle[prop] != null && !isInit) {\n targetStyle[prop] = elOptionStyle[prop];\n elOptionStyle[prop] = oldElStyle[prop];\n }\n}\n\nfunction makeRenderItem(customSeries, data, ecModel, api) {\n var renderItem = customSeries.get('renderItem');\n var coordSys = customSeries.coordinateSystem;\n var prepareResult = {};\n\n if (coordSys) {\n prepareResult = coordSys.prepareCustoms ? coordSys.prepareCustoms() : prepareCustoms[coordSys.type](coordSys);\n }\n\n var userAPI = zrUtil.defaults({\n getWidth: api.getWidth,\n getHeight: api.getHeight,\n getZr: api.getZr,\n getDevicePixelRatio: api.getDevicePixelRatio,\n value: value,\n style: style,\n styleEmphasis: styleEmphasis,\n visual: visual,\n barLayout: barLayout,\n currentSeriesIndices: currentSeriesIndices,\n font: font\n }, prepareResult.api || {});\n var userParams = {\n // The life cycle of context: current round of rendering.\n // The global life cycle is probably not necessary, because\n // user can store global status by themselves.\n context: {},\n seriesId: customSeries.id,\n seriesName: customSeries.name,\n seriesIndex: customSeries.seriesIndex,\n coordSys: prepareResult.coordSys,\n dataInsideLength: data.count(),\n encode: wrapEncodeDef(customSeries.getData())\n }; // Do not support call `api` asynchronously without dataIndexInside input.\n\n var currDataIndexInside;\n var currDirty = true;\n var currItemModel;\n var currLabelNormalModel;\n var currLabelEmphasisModel;\n var currVisualColor;\n return function (dataIndexInside, payload) {\n currDataIndexInside = dataIndexInside;\n currDirty = true;\n return renderItem && renderItem(zrUtil.defaults({\n dataIndexInside: dataIndexInside,\n dataIndex: data.getRawIndex(dataIndexInside),\n // Can be used for optimization when zoom or roam.\n actionType: payload ? payload.type : null\n }, userParams), userAPI);\n }; // Do not update cache until api called.\n\n function updateCache(dataIndexInside) {\n dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n\n if (currDirty) {\n currItemModel = data.getItemModel(dataIndexInside);\n currLabelNormalModel = currItemModel.getModel(LABEL_NORMAL);\n currLabelEmphasisModel = currItemModel.getModel(LABEL_EMPHASIS);\n currVisualColor = data.getItemVisual(dataIndexInside, 'color');\n currDirty = false;\n }\n }\n /**\n * @public\n * @param {number|string} dim\n * @param {number} [dataIndexInside=currDataIndexInside]\n * @return {number|string} value\n */\n\n\n function value(dim, dataIndexInside) {\n dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n return data.get(data.getDimension(dim || 0), dataIndexInside);\n }\n /**\n * By default, `visual` is applied to style (to support visualMap).\n * `visual.color` is applied at `fill`. If user want apply visual.color on `stroke`,\n * it can be implemented as:\n * `api.style({stroke: api.visual('color'), fill: null})`;\n * @public\n * @param {Object} [extra]\n * @param {number} [dataIndexInside=currDataIndexInside]\n */\n\n\n function style(extra, dataIndexInside) {\n dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n updateCache(dataIndexInside);\n var itemStyle = currItemModel.getModel(ITEM_STYLE_NORMAL_PATH).getItemStyle();\n currVisualColor != null && (itemStyle.fill = currVisualColor);\n var opacity = data.getItemVisual(dataIndexInside, 'opacity');\n opacity != null && (itemStyle.opacity = opacity);\n var labelModel = extra ? applyExtraBefore(extra, currLabelNormalModel) : currLabelNormalModel;\n graphicUtil.setTextStyle(itemStyle, labelModel, null, {\n autoColor: currVisualColor,\n isRectText: true\n });\n itemStyle.text = labelModel.getShallow('show') ? zrUtil.retrieve2(customSeries.getFormattedLabel(dataIndexInside, 'normal'), getDefaultLabel(data, dataIndexInside)) : null;\n extra && applyExtraAfter(itemStyle, extra);\n return itemStyle;\n }\n /**\n * @public\n * @param {Object} [extra]\n * @param {number} [dataIndexInside=currDataIndexInside]\n */\n\n\n function styleEmphasis(extra, dataIndexInside) {\n dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n updateCache(dataIndexInside);\n var itemStyle = currItemModel.getModel(ITEM_STYLE_EMPHASIS_PATH).getItemStyle();\n var labelModel = extra ? applyExtraBefore(extra, currLabelEmphasisModel) : currLabelEmphasisModel;\n graphicUtil.setTextStyle(itemStyle, labelModel, null, {\n isRectText: true\n }, true);\n itemStyle.text = labelModel.getShallow('show') ? zrUtil.retrieve3(customSeries.getFormattedLabel(dataIndexInside, 'emphasis'), customSeries.getFormattedLabel(dataIndexInside, 'normal'), getDefaultLabel(data, dataIndexInside)) : null;\n extra && applyExtraAfter(itemStyle, extra);\n return itemStyle;\n }\n /**\n * @public\n * @param {string} visualType\n * @param {number} [dataIndexInside=currDataIndexInside]\n */\n\n\n function visual(visualType, dataIndexInside) {\n dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n return data.getItemVisual(dataIndexInside, visualType);\n }\n /**\n * @public\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} is not support, return undefined.\n */\n\n\n function barLayout(opt) {\n if (coordSys.getBaseAxis) {\n var baseAxis = coordSys.getBaseAxis();\n return getLayoutOnAxis(zrUtil.defaults({\n axis: baseAxis\n }, opt), api);\n }\n }\n /**\n * @public\n * @return {Array.<number>}\n */\n\n\n function currentSeriesIndices() {\n return ecModel.getCurrentSeriesIndices();\n }\n /**\n * @public\n * @param {Object} opt\n * @param {string} [opt.fontStyle]\n * @param {number} [opt.fontWeight]\n * @param {number} [opt.fontSize]\n * @param {string} [opt.fontFamily]\n * @return {string} font string\n */\n\n\n function font(opt) {\n return graphicUtil.getFont(opt, ecModel);\n }\n}\n\nfunction wrapEncodeDef(data) {\n var encodeDef = {};\n zrUtil.each(data.dimensions, function (dimName, dataDimIndex) {\n var dimInfo = data.getDimensionInfo(dimName);\n\n if (!dimInfo.isExtraCoord) {\n var coordDim = dimInfo.coordDim;\n var dataDims = encodeDef[coordDim] = encodeDef[coordDim] || [];\n dataDims[dimInfo.coordDimIndex] = dataDimIndex;\n }\n });\n return encodeDef;\n}\n\nfunction createOrUpdate(el, dataIndex, elOption, animatableModel, group, data) {\n el = doCreateOrUpdate(el, dataIndex, elOption, animatableModel, group, data, true);\n el && data.setItemGraphicEl(dataIndex, el);\n return el;\n}\n\nfunction doCreateOrUpdate(el, dataIndex, elOption, animatableModel, group, data, isRoot) {\n // [Rule]\n // By default, follow merge mode.\n // (It probably brings benifit for performance in some cases of large data, where\n // user program can be optimized to that only updated props needed to be re-calculated,\n // or according to `actionType` some calculation can be skipped.)\n // If `renderItem` returns `null`/`undefined`/`false`, remove the previous el if existing.\n // (It seems that violate the \"merge\" principle, but most of users probably intuitively\n // regard \"return;\" as \"show nothing element whatever\", so make a exception to meet the\n // most cases.)\n var simplyRemove = !elOption; // `null`/`undefined`/`false`\n\n elOption = elOption || {};\n var elOptionType = elOption.type;\n var elOptionShape = elOption.shape;\n var elOptionStyle = elOption.style;\n\n if (el && (simplyRemove // || elOption.$merge === false\n // If `elOptionType` is `null`, follow the merge principle.\n || elOptionType != null && elOptionType !== el.__customGraphicType || elOptionType === 'path' && hasOwnPathData(elOptionShape) && getPathData(elOptionShape) !== el.__customPathData || elOptionType === 'image' && hasOwn(elOptionStyle, 'image') && elOptionStyle.image !== el.__customImagePath // FIXME test and remove this restriction?\n || elOptionType === 'text' && hasOwn(elOptionShape, 'text') && elOptionStyle.text !== el.__customText)) {\n group.remove(el);\n el = null;\n } // `elOption.type` is undefined when `renderItem` returns nothing.\n\n\n if (simplyRemove) {\n return;\n }\n\n var isInit = !el;\n !el && (el = createEl(elOption));\n updateEl(el, dataIndex, elOption, animatableModel, data, isInit, isRoot);\n\n if (elOptionType === 'group') {\n mergeChildren(el, dataIndex, elOption, animatableModel, data);\n } // Always add whatever already added to ensure sequence.\n\n\n group.add(el);\n return el;\n} // Usage:\n// (1) By default, `elOption.$mergeChildren` is `'byIndex'`, which indicates that\n// the existing children will not be removed, and enables the feature that\n// update some of the props of some of the children simply by construct\n// the returned children of `renderItem` like:\n// `var children = group.children = []; children[3] = {opacity: 0.5};`\n// (2) If `elOption.$mergeChildren` is `'byName'`, add/update/remove children\n// by child.name. But that might be lower performance.\n// (3) If `elOption.$mergeChildren` is `false`, the existing children will be\n// replaced totally.\n// (4) If `!elOption.children`, following the \"merge\" principle, nothing will happen.\n//\n// For implementation simpleness, do not provide a direct way to remove sinlge\n// child (otherwise the total indicies of the children array have to be modified).\n// User can remove a single child by set its `ignore` as `true` or replace\n// it by another element, where its `$merge` can be set as `true` if necessary.\n\n\nfunction mergeChildren(el, dataIndex, elOption, animatableModel, data) {\n var newChildren = elOption.children;\n var newLen = newChildren ? newChildren.length : 0;\n var mergeChildren = elOption.$mergeChildren; // `diffChildrenByName` has been deprecated.\n\n var byName = mergeChildren === 'byName' || elOption.diffChildrenByName;\n var notMerge = mergeChildren === false; // For better performance on roam update, only enter if necessary.\n\n if (!newLen && !byName && !notMerge) {\n return;\n }\n\n if (byName) {\n diffGroupChildren({\n oldChildren: el.children() || [],\n newChildren: newChildren || [],\n dataIndex: dataIndex,\n animatableModel: animatableModel,\n group: el,\n data: data\n });\n return;\n }\n\n notMerge && el.removeAll(); // Mapping children of a group simply by index, which\n // might be better performance.\n\n var index = 0;\n\n for (; index < newLen; index++) {\n newChildren[index] && doCreateOrUpdate(el.childAt(index), dataIndex, newChildren[index], animatableModel, el, data);\n }\n}\n\nfunction diffGroupChildren(context) {\n new DataDiffer(context.oldChildren, context.newChildren, getKey, getKey, context).add(processAddUpdate).update(processAddUpdate).remove(processRemove).execute();\n}\n\nfunction getKey(item, idx) {\n var name = item && item.name;\n return name != null ? name : GROUP_DIFF_PREFIX + idx;\n}\n\nfunction processAddUpdate(newIndex, oldIndex) {\n var context = this.context;\n var childOption = newIndex != null ? context.newChildren[newIndex] : null;\n var child = oldIndex != null ? context.oldChildren[oldIndex] : null;\n doCreateOrUpdate(child, context.dataIndex, childOption, context.animatableModel, context.group, context.data);\n} // `graphic#applyDefaultTextStyle` will cache\n// textFill, textStroke, textStrokeWidth.\n// We have to do this trick.\n\n\nfunction applyExtraBefore(extra, model) {\n var dummyModel = new Model({}, model);\n zrUtil.each(CACHED_LABEL_STYLE_PROPERTIES, function (stylePropName, modelPropName) {\n if (extra.hasOwnProperty(stylePropName)) {\n dummyModel.option[modelPropName] = extra[stylePropName];\n }\n });\n return dummyModel;\n}\n\nfunction applyExtraAfter(itemStyle, extra) {\n for (var key in extra) {\n if (extra.hasOwnProperty(key) || !CACHED_LABEL_STYLE_PROPERTIES.hasOwnProperty(key)) {\n itemStyle[key] = extra[key];\n }\n }\n}\n\nfunction processRemove(oldIndex) {\n var context = this.context;\n var child = context.oldChildren[oldIndex];\n child && context.group.remove(child);\n}\n\nfunction getPathData(shape) {\n // \"d\" follows the SVG convention.\n return shape && (shape.pathData || shape.d);\n}\n\nfunction hasOwnPathData(shape) {\n return shape && (shape.hasOwnProperty('pathData') || shape.hasOwnProperty('d'));\n}\n\nfunction hasOwn(host, prop) {\n return host && host.hasOwnProperty(prop);\n}"],"names":["echarts","boxplotVisual","boxplotLayout","registerVisual","registerLayout","zrUtil","SeriesModel","_whiskerBoxCommon","seriesModelMixin","BoxplotSeries","extend","type","dependencies","defaultValueDimensions","name","defaultTooltip","dimensions","defaultOption","zlevel","z","coordinateSystem","legendHoverLink","hoverAnimation","layout","boxWidth","itemStyle","color","borderWidth","emphasis","shadowBlur","shadowOffsetX","shadowOffsetY","shadowColor","animationEasing","animationDuration","mixin","_default","module","exports","ChartView","graphic","Path","NORMAL_ITEM_STYLE_PATH","EMPHASIS_ITEM_STYLE_PATH","BoxplotView","render","seriesModel","ecModel","api","data","getData","group","this","oldData","_data","removeAll","constDim","get","diff","add","newIdx","hasValue","itemLayout","getItemLayout","symbolEl","createNormalBox","setItemGraphicEl","update","oldIdx","getItemGraphicEl","updateNormalBoxData","remove","el","execute","eachItemGraphicEl","dispose","noop","BoxPath","shape","buildPath","ctx","ends","points","i","moveTo","lineTo","closePath","length","dataIndex","isInit","transInit","hostModel","updateMethod","itemModel","getItemModel","normalItemStyleModel","getModel","borderColor","getItemVisual","getItemStyle","stroke","strokeNoScale","useStyle","z2","hoverStyle","setHoverStyle","dim","map","point","slice","initBaseline","_number","parsePercent","each","groupResult","groupSeriesByAxis","groupItem","seriesModels","calculateBase","idx","layoutSingleSeries","boxOffsetList","boxWidthList","result","axisList","eachSeriesByType","baseAxis","getBaseAxis","indexOf","axis","push","extent","bandWidth","seriesCount","boundList","getBandWidth","maxDataCount","Math","max","count","getExtent","abs","boxWidthBound","isArray","availableWidth","boxGap","base","min","offset","coordSys","halfWidth","cDimIdx","vDimIdx","coordDims","cDim","mapDimension","vDims","axisDimVal","median","getPoint","end1","end2","end4","end5","addBodyEnd","layEndLine","setItemLayout","dimIdx","val","p","isNaN","NaN","dataToPoint","start","point1","point2","endCenter","from","to","borderColorQuery","globalColors","eachRawSeriesByType","defaulColor","seriesIndex","setVisual","legendSymbol","isSeriesFiltered","setItemVisual","preprocessor","candlestickVisual","candlestickLayout","registerPreprocessor","CandlestickSeries","clip","color0","borderColor0","barMaxWidth","barMinWidth","barWidth","large","largeThreshold","progressive","progressiveThreshold","progressiveChunkMode","animationUpdate","getShadowDim","brushSelector","selectors","rect","brushRect","_createClipPathFromCoordSys","createClipPath","SKIP_PROPS","CandlestickView","removeClipPath","_updateDrawMode","_isLargeDraw","_renderLarge","_renderNormal","incrementalPrepareRender","_clear","incrementalRender","params","_incrementalRenderLarge","_incrementalRenderNormal","isLargeDraw","pipelineContext","isSimpleBox","getLayout","needsClip","coord","clipArea","getArea","isNormalBoxClipped","initProps","setBoxCommon","updateProps","createLarge","clipPath","setClipPath","next","incremental","NormalBoxPath","__simpleBox","clipped","contain","style","fill","LargeBoxPath","__sign","x","largePoints","elP","elN","setLargeStyle","sign","suffix","getVisual","_graphic","subPixelOptimize","createRenderPlanner","_util","retrieve2","LargeArr","Float32Array","Array","seriesType","plan","reset","candleWidth","calculateCandleWidth","openDim","closeDim","lowestDim","highestDim","setLayout","progress","largeProgress","normalProgress","openVal","closeVal","lowestVal","highestVal","ocLow","ocHigh","ocLowPoint","ocHighPoint","lowestPoint","highestPoint","subPixelOptimizePoint","getSign","makeBrushRect","pmin","pmax","y","width","height","tmpIn","tmpOut","positiveBorderColorQuery","negativeBorderColorQuery","positiveColorQuery","negativeColorQuery","performRawSeries","colorP","getColor","colorN","borderColorP","getBorderColor","borderColorN","isLargeRender","model","option","series","seriesItem","isObject","_config","__DEV__","graphicUtil","_labelHelper","getDefaultLabel","createListFromArray","_barGrid","getLayoutOnAxis","DataDiffer","Model","prepareCartesian2d","prepareGeo","prepareSingleAxis","preparePolar","prepareCalendar","CACHED_LABEL_STYLE_PROPERTIES","ITEM_STYLE_NORMAL_PATH","ITEM_STYLE_EMPHASIS_PATH","LABEL_NORMAL","LABEL_EMPHASIS","GROUP_DIFF_PREFIX","prepareCustoms","cartesian2d","geo","singleAxis","polar","calendar","createEl","elOption","graphicType","pathRect","pathData","getPathData","makePath","__customPathData","Image","__customImagePath","image","Text","__customText","text","Group","Error","Clz","getShapeClass","__customGraphicType","updateEl","animatableModel","isRoot","transitionProps","elOptionStyle","clone","position","scale","origin","rotation","targetStyle","prop","prepareStyleTransition","hasOwnProperty","textFill","textStroke","opacity","targetOpacity","attr","silent","invisible","ignore","info","styleEmphasis","setElementHoverStyle","setAsHighDownDispatcher","oldElStyle","makeRenderItem","customSeries","renderItem","prepareResult","currDataIndexInside","currItemModel","currLabelNormalModel","currLabelEmphasisModel","currVisualColor","userAPI","defaults","getWidth","getHeight","getZr","getDevicePixelRatio","value","visual","barLayout","currentSeriesIndices","font","userParams","context","seriesId","id","seriesName","dataInsideLength","encode","wrapEncodeDef","currDirty","dataIndexInside","payload","getRawIndex","actionType","updateCache","getDimension","extra","labelModel","applyExtraBefore","setTextStyle","autoColor","isRectText","getShallow","getFormattedLabel","applyExtraAfter","retrieve3","visualType","opt","getCurrentSeriesIndices","getFont","encodeDef","dimName","dataDimIndex","dimInfo","getDimensionInfo","isExtraCoord","coordDim","dataDims","coordDimIndex","createOrUpdate","doCreateOrUpdate","simplyRemove","elOptionType","elOptionShape","hasOwnPathData","hasOwn","mergeChildren","newChildren","children","newLen","$mergeChildren","byName","diffChildrenByName","notMerge","diffGroupChildren","oldChildren","index","childAt","getKey","processAddUpdate","processRemove","item","newIndex","oldIndex","childOption","child","dummyModel","stylePropName","modelPropName","key","d","host","useTransform","getInitialData","getSource","getDataParams","dataType","prototype","apply","arguments","setIncrementalAndHoverLayer","isGroup","useHoverLayer","end","traverse","filterForExposedEvent","eventType","query","targetEl","packedEvent","elementName","element","parent"],"sourceRoot":""}
|