qauMaWeb/node_modules/.cache/babel-loader/316c6e6e0c23b75e36fcccba866...

1 line
107 KiB
JSON

{"ast":null,"code":"import \"core-js/modules/es.array.sort.js\";\nimport \"core-js/modules/es.number.constructor.js\";\nimport \"core-js/modules/es.function.name.js\";\nimport \"core-js/modules/es.array.fill.js\";\n\n/*\r\n* Licensed to the Apache Software Foundation (ASF) under one\r\n* or more contributor license agreements. See the NOTICE file\r\n* distributed with this work for additional information\r\n* regarding copyright ownership. The ASF licenses this file\r\n* to you under the Apache License, Version 2.0 (the\r\n* \"License\"); you may not use this file except in compliance\r\n* with the License. You may obtain a copy of the License at\r\n*\r\n* http://www.apache.org/licenses/LICENSE-2.0\r\n*\r\n* Unless required by applicable law or agreed to in writing,\r\n* software distributed under the License is distributed on an\r\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n* KIND, either express or implied. See the License for the\r\n* specific language governing permissions and limitations\r\n* under the License.\r\n*/\n\n/**\r\n * AUTO-GENERATED FILE. DO NOT MODIFY.\r\n */\n\n/*\r\n* Licensed to the Apache Software Foundation (ASF) under one\r\n* or more contributor license agreements. See the NOTICE file\r\n* distributed with this work for additional information\r\n* regarding copyright ownership. The ASF licenses this file\r\n* to you under the Apache License, Version 2.0 (the\r\n* \"License\"); you may not use this file except in compliance\r\n* with the License. You may obtain a copy of the License at\r\n*\r\n* http://www.apache.org/licenses/LICENSE-2.0\r\n*\r\n* Unless required by applicable law or agreed to in writing,\r\n* software distributed under the License is distributed on an\r\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n* KIND, either express or implied. See the License for the\r\n* specific language governing permissions and limitations\r\n* under the License.\r\n*/\nimport { __extends } from \"tslib\";\nimport Path from 'zrender/lib/graphic/Path.js';\nimport Group from 'zrender/lib/graphic/Group.js';\nimport { extend, each, map } from 'zrender/lib/core/util.js';\nimport { Rect, Sector, updateProps, initProps, removeElementWithFadeOut, traverseElements } from '../../util/graphic.js';\nimport { getECData } from '../../util/innerStore.js';\nimport { setStatesStylesFromModel, toggleHoverEmphasis } from '../../util/states.js';\nimport { setLabelStyle, getLabelStatesModels, setLabelValueAnimation, labelInner } from '../../label/labelStyle.js';\nimport { throttle } from '../../util/throttle.js';\nimport { createClipPath } from '../helper/createClipPathFromCoordSys.js';\nimport Sausage from '../../util/shape/sausage.js';\nimport ChartView from '../../view/Chart.js';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem.js';\nimport { getDefaultLabel, getDefaultInterpolatedLabel } from '../helper/labelHelper.js';\nimport { warn } from '../../util/log.js';\nimport { createSectorCalculateTextPosition, setSectorTextRotation } from '../../label/sectorLabel.js';\nimport { saveOldStyle } from '../../animation/basicTrasition.js';\nvar mathMax = Math.max;\nvar mathMin = Math.min;\n\nfunction getClipArea(coord, data) {\n var coordSysClipArea = coord.getArea && coord.getArea();\n\n if (isCoordinateSystemType(coord, 'cartesian2d')) {\n var baseAxis = coord.getBaseAxis(); // When boundaryGap is false or using time axis. bar may exceed the grid.\n // We should not clip this part.\n // See test/bar2.html\n\n if (baseAxis.type !== 'category' || !baseAxis.onBand) {\n var expandWidth = data.getLayout('bandWidth');\n\n if (baseAxis.isHorizontal()) {\n coordSysClipArea.x -= expandWidth;\n coordSysClipArea.width += expandWidth * 2;\n } else {\n coordSysClipArea.y -= expandWidth;\n coordSysClipArea.height += expandWidth * 2;\n }\n }\n }\n\n return coordSysClipArea;\n}\n\nvar BarView =\n/** @class */\nfunction (_super) {\n __extends(BarView, _super);\n\n function BarView() {\n var _this = _super.call(this) || this;\n\n _this.type = BarView.type;\n _this._isFirstFrame = true;\n return _this;\n }\n\n BarView.prototype.render = function (seriesModel, ecModel, api, payload) {\n this._model = seriesModel;\n\n this._removeOnRenderedListener(api);\n\n this._updateDrawMode(seriesModel);\n\n var coordinateSystemType = seriesModel.get('coordinateSystem');\n\n if (coordinateSystemType === 'cartesian2d' || coordinateSystemType === 'polar') {\n // Clear previously rendered progressive elements.\n this._progressiveEls = null;\n this._isLargeDraw ? this._renderLarge(seriesModel, ecModel, api) : this._renderNormal(seriesModel, ecModel, api, payload);\n } else if (process.env.NODE_ENV !== 'production') {\n warn('Only cartesian2d and polar supported for bar.');\n }\n };\n\n BarView.prototype.incrementalPrepareRender = function (seriesModel) {\n this._clear();\n\n this._updateDrawMode(seriesModel); // incremental also need to clip, otherwise might be overlow.\n // But must not set clip in each frame, otherwise all of the children will be marked redraw.\n\n\n this._updateLargeClip(seriesModel);\n };\n\n BarView.prototype.incrementalRender = function (params, seriesModel) {\n // Reset\n this._progressiveEls = []; // Do not support progressive in normal mode.\n\n this._incrementalRenderLarge(params, seriesModel);\n };\n\n BarView.prototype.eachRendered = function (cb) {\n traverseElements(this._progressiveEls || this.group, cb);\n };\n\n BarView.prototype._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\n BarView.prototype._renderNormal = function (seriesModel, ecModel, api, payload) {\n var group = this.group;\n var data = seriesModel.getData();\n var oldData = this._data;\n var coord = seriesModel.coordinateSystem;\n var baseAxis = coord.getBaseAxis();\n var isHorizontalOrRadial;\n\n if (coord.type === 'cartesian2d') {\n isHorizontalOrRadial = baseAxis.isHorizontal();\n } else if (coord.type === 'polar') {\n isHorizontalOrRadial = baseAxis.dim === 'angle';\n }\n\n var animationModel = seriesModel.isAnimationEnabled() ? seriesModel : null;\n var realtimeSortCfg = shouldRealtimeSort(seriesModel, coord);\n\n if (realtimeSortCfg) {\n this._enableRealtimeSort(realtimeSortCfg, data, api);\n }\n\n var needsClip = seriesModel.get('clip', true) || realtimeSortCfg;\n var coordSysClipArea = getClipArea(coord, data); // If there is clipPath created in large mode. Remove it.\n\n group.removeClipPath(); // We don't use clipPath in normal mode because we needs a perfect animation\n // And don't want the label are clipped.\n\n var roundCap = seriesModel.get('roundCap', true);\n var drawBackground = seriesModel.get('showBackground', true);\n var backgroundModel = seriesModel.getModel('backgroundStyle');\n var barBorderRadius = backgroundModel.get('borderRadius') || 0;\n var bgEls = [];\n var oldBgEls = this._backgroundEls;\n var isInitSort = payload && payload.isInitSort;\n var isChangeOrder = payload && payload.type === 'changeAxisOrder';\n\n function createBackground(dataIndex) {\n var bgLayout = getLayout[coord.type](data, dataIndex);\n var bgEl = createBackgroundEl(coord, isHorizontalOrRadial, bgLayout);\n bgEl.useStyle(backgroundModel.getItemStyle()); // Only cartesian2d support borderRadius.\n\n if (coord.type === 'cartesian2d') {\n bgEl.setShape('r', barBorderRadius);\n }\n\n bgEls[dataIndex] = bgEl;\n return bgEl;\n }\n\n ;\n data.diff(oldData).add(function (dataIndex) {\n var itemModel = data.getItemModel(dataIndex);\n var layout = getLayout[coord.type](data, dataIndex, itemModel);\n\n if (drawBackground) {\n createBackground(dataIndex);\n } // If dataZoom in filteMode: 'empty', the baseValue can be set as NaN in \"axisProxy\".\n\n\n if (!data.hasValue(dataIndex) || !isValidLayout[coord.type](layout)) {\n return;\n }\n\n var isClipped = false;\n\n if (needsClip) {\n // Clip will modify the layout params.\n // And return a boolean to determine if the shape are fully clipped.\n isClipped = clip[coord.type](coordSysClipArea, layout);\n }\n\n var el = elementCreator[coord.type](seriesModel, data, dataIndex, layout, isHorizontalOrRadial, animationModel, baseAxis.model, false, roundCap);\n\n if (realtimeSortCfg) {\n /**\r\n * Force label animation because even if the element is\r\n * ignored because it's clipped, it may not be clipped after\r\n * changing order. Then, if not using forceLabelAnimation,\r\n * the label animation was never started, in which case,\r\n * the label will be the final value and doesn't have label\r\n * animation.\r\n */\n el.forceLabelAnimation = true;\n }\n\n updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\n\n if (isInitSort) {\n el.attr({\n shape: layout\n });\n } else if (realtimeSortCfg) {\n updateRealtimeAnimation(realtimeSortCfg, animationModel, el, layout, dataIndex, isHorizontalOrRadial, false, false);\n } else {\n initProps(el, {\n shape: layout\n }, seriesModel, dataIndex);\n }\n\n data.setItemGraphicEl(dataIndex, el);\n group.add(el);\n el.ignore = isClipped;\n }).update(function (newIndex, oldIndex) {\n var itemModel = data.getItemModel(newIndex);\n var layout = getLayout[coord.type](data, newIndex, itemModel);\n\n if (drawBackground) {\n var bgEl = void 0;\n\n if (oldBgEls.length === 0) {\n bgEl = createBackground(oldIndex);\n } else {\n bgEl = oldBgEls[oldIndex];\n bgEl.useStyle(backgroundModel.getItemStyle()); // Only cartesian2d support borderRadius.\n\n if (coord.type === 'cartesian2d') {\n bgEl.setShape('r', barBorderRadius);\n }\n\n bgEls[newIndex] = bgEl;\n }\n\n var bgLayout = getLayout[coord.type](data, newIndex);\n var shape = createBackgroundShape(isHorizontalOrRadial, bgLayout, coord);\n updateProps(bgEl, {\n shape: shape\n }, animationModel, newIndex);\n }\n\n var el = oldData.getItemGraphicEl(oldIndex);\n\n if (!data.hasValue(newIndex) || !isValidLayout[coord.type](layout)) {\n group.remove(el);\n return;\n }\n\n var isClipped = false;\n\n if (needsClip) {\n isClipped = clip[coord.type](coordSysClipArea, layout);\n\n if (isClipped) {\n group.remove(el);\n }\n }\n\n if (!el) {\n el = elementCreator[coord.type](seriesModel, data, newIndex, layout, isHorizontalOrRadial, animationModel, baseAxis.model, !!el, roundCap);\n } else {\n saveOldStyle(el);\n }\n\n if (realtimeSortCfg) {\n el.forceLabelAnimation = true;\n }\n\n if (isChangeOrder) {\n var textEl = el.getTextContent();\n\n if (textEl) {\n var labelInnerStore = labelInner(textEl);\n\n if (labelInnerStore.prevValue != null) {\n /**\r\n * Set preValue to be value so that no new label\r\n * should be started, otherwise, it will take a full\r\n * `animationDurationUpdate` time to finish the\r\n * animation, which is not expected.\r\n */\n labelInnerStore.prevValue = labelInnerStore.value;\n }\n }\n } // Not change anything if only order changed.\n // Especially not change label.\n else {\n updateStyle(el, data, newIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\n }\n\n if (isInitSort) {\n el.attr({\n shape: layout\n });\n } else if (realtimeSortCfg) {\n updateRealtimeAnimation(realtimeSortCfg, animationModel, el, layout, newIndex, isHorizontalOrRadial, true, isChangeOrder);\n } else {\n updateProps(el, {\n shape: layout\n }, seriesModel, newIndex, null);\n }\n\n data.setItemGraphicEl(newIndex, el);\n el.ignore = isClipped;\n group.add(el);\n }).remove(function (dataIndex) {\n var el = oldData.getItemGraphicEl(dataIndex);\n el && removeElementWithFadeOut(el, seriesModel, dataIndex);\n }).execute();\n var bgGroup = this._backgroundGroup || (this._backgroundGroup = new Group());\n bgGroup.removeAll();\n\n for (var i = 0; i < bgEls.length; ++i) {\n bgGroup.add(bgEls[i]);\n }\n\n group.add(bgGroup);\n this._backgroundEls = bgEls;\n this._data = data;\n };\n\n BarView.prototype._renderLarge = function (seriesModel, ecModel, api) {\n this._clear();\n\n createLarge(seriesModel, this.group);\n\n this._updateLargeClip(seriesModel);\n };\n\n BarView.prototype._incrementalRenderLarge = function (params, seriesModel) {\n this._removeBackground();\n\n createLarge(seriesModel, this.group, this._progressiveEls, true);\n };\n\n BarView.prototype._updateLargeClip = function (seriesModel) {\n // Use clipPath in large mode.\n var clipPath = seriesModel.get('clip', true) && createClipPath(seriesModel.coordinateSystem, false, seriesModel);\n var group = this.group;\n\n if (clipPath) {\n group.setClipPath(clipPath);\n } else {\n group.removeClipPath();\n }\n };\n\n BarView.prototype._enableRealtimeSort = function (realtimeSortCfg, data, api) {\n var _this = this; // If no data in the first frame, wait for data to initSort\n\n\n if (!data.count()) {\n return;\n }\n\n var baseAxis = realtimeSortCfg.baseAxis;\n\n if (this._isFirstFrame) {\n this._dispatchInitSort(data, realtimeSortCfg, api);\n\n this._isFirstFrame = false;\n } else {\n var orderMapping_1 = function orderMapping_1(idx) {\n var el = data.getItemGraphicEl(idx);\n var shape = el && el.shape;\n return shape && // The result should be consistent with the initial sort by data value.\n // Do not support the case that both positive and negative exist.\n Math.abs(baseAxis.isHorizontal() ? shape.height : shape.width) // If data is NaN, shape.xxx may be NaN, so use || 0 here in case\n || 0;\n };\n\n this._onRendered = function () {\n _this._updateSortWithinSameData(data, orderMapping_1, baseAxis, api);\n };\n\n api.getZr().on('rendered', this._onRendered);\n }\n };\n\n BarView.prototype._dataSort = function (data, baseAxis, orderMapping) {\n var info = [];\n data.each(data.mapDimension(baseAxis.dim), function (ordinalNumber, dataIdx) {\n var mappedValue = orderMapping(dataIdx);\n mappedValue = mappedValue == null ? NaN : mappedValue;\n info.push({\n dataIndex: dataIdx,\n mappedValue: mappedValue,\n ordinalNumber: ordinalNumber\n });\n });\n info.sort(function (a, b) {\n // If NaN, it will be treated as min val.\n return b.mappedValue - a.mappedValue;\n });\n return {\n ordinalNumbers: map(info, function (item) {\n return item.ordinalNumber;\n })\n };\n };\n\n BarView.prototype._isOrderChangedWithinSameData = function (data, orderMapping, baseAxis) {\n var scale = baseAxis.scale;\n var ordinalDataDim = data.mapDimension(baseAxis.dim);\n var lastValue = Number.MAX_VALUE;\n\n for (var tickNum = 0, len = scale.getOrdinalMeta().categories.length; tickNum < len; ++tickNum) {\n var rawIdx = data.rawIndexOf(ordinalDataDim, scale.getRawOrdinalNumber(tickNum));\n var value = rawIdx < 0 // If some tick have no bar, the tick will be treated as min.\n ? Number.MIN_VALUE // PENDING: if dataZoom on baseAxis exits, is it a performance issue?\n : orderMapping(data.indexOfRawIndex(rawIdx));\n\n if (value > lastValue) {\n return true;\n }\n\n lastValue = value;\n }\n\n return false;\n };\n /*\r\n * Consider the case when A and B changed order, whose representing\r\n * bars are both out of sight, we don't wish to trigger reorder action\r\n * as long as the order in the view doesn't change.\r\n */\n\n\n BarView.prototype._isOrderDifferentInView = function (orderInfo, baseAxis) {\n var scale = baseAxis.scale;\n var extent = scale.getExtent();\n var tickNum = Math.max(0, extent[0]);\n var tickMax = Math.min(extent[1], scale.getOrdinalMeta().categories.length - 1);\n\n for (; tickNum <= tickMax; ++tickNum) {\n if (orderInfo.ordinalNumbers[tickNum] !== scale.getRawOrdinalNumber(tickNum)) {\n return true;\n }\n }\n };\n\n BarView.prototype._updateSortWithinSameData = function (data, orderMapping, baseAxis, api) {\n if (!this._isOrderChangedWithinSameData(data, orderMapping, baseAxis)) {\n return;\n }\n\n var sortInfo = this._dataSort(data, baseAxis, orderMapping);\n\n if (this._isOrderDifferentInView(sortInfo, baseAxis)) {\n this._removeOnRenderedListener(api);\n\n api.dispatchAction({\n type: 'changeAxisOrder',\n componentType: baseAxis.dim + 'Axis',\n axisId: baseAxis.index,\n sortInfo: sortInfo\n });\n }\n };\n\n BarView.prototype._dispatchInitSort = function (data, realtimeSortCfg, api) {\n var baseAxis = realtimeSortCfg.baseAxis;\n\n var sortResult = this._dataSort(data, baseAxis, function (dataIdx) {\n return data.get(data.mapDimension(realtimeSortCfg.otherAxis.dim), dataIdx);\n });\n\n api.dispatchAction({\n type: 'changeAxisOrder',\n componentType: baseAxis.dim + 'Axis',\n isInitSort: true,\n axisId: baseAxis.index,\n sortInfo: sortResult\n });\n };\n\n BarView.prototype.remove = function (ecModel, api) {\n this._clear(this._model);\n\n this._removeOnRenderedListener(api);\n };\n\n BarView.prototype.dispose = function (ecModel, api) {\n this._removeOnRenderedListener(api);\n };\n\n BarView.prototype._removeOnRenderedListener = function (api) {\n if (this._onRendered) {\n api.getZr().off('rendered', this._onRendered);\n this._onRendered = null;\n }\n };\n\n BarView.prototype._clear = function (model) {\n var group = this.group;\n var data = this._data;\n\n if (model && model.isAnimationEnabled() && data && !this._isLargeDraw) {\n this._removeBackground();\n\n this._backgroundEls = [];\n data.eachItemGraphicEl(function (el) {\n removeElementWithFadeOut(el, model, getECData(el).dataIndex);\n });\n } else {\n group.removeAll();\n }\n\n this._data = null;\n this._isFirstFrame = true;\n };\n\n BarView.prototype._removeBackground = function () {\n this.group.remove(this._backgroundGroup);\n this._backgroundGroup = null;\n };\n\n BarView.type = 'bar';\n return BarView;\n}(ChartView);\n\nvar clip = {\n cartesian2d: function cartesian2d(coordSysBoundingRect, layout) {\n var signWidth = layout.width < 0 ? -1 : 1;\n var signHeight = layout.height < 0 ? -1 : 1; // Needs positive width and height\n\n if (signWidth < 0) {\n layout.x += layout.width;\n layout.width = -layout.width;\n }\n\n if (signHeight < 0) {\n layout.y += layout.height;\n layout.height = -layout.height;\n }\n\n var coordSysX2 = coordSysBoundingRect.x + coordSysBoundingRect.width;\n var coordSysY2 = coordSysBoundingRect.y + coordSysBoundingRect.height;\n var x = mathMax(layout.x, coordSysBoundingRect.x);\n var x2 = mathMin(layout.x + layout.width, coordSysX2);\n var y = mathMax(layout.y, coordSysBoundingRect.y);\n var y2 = mathMin(layout.y + layout.height, coordSysY2);\n var xClipped = x2 < x;\n var yClipped = y2 < y; // When xClipped or yClipped, the element will be marked as `ignore`.\n // But we should also place the element at the edge of the coord sys bounding rect.\n // Beause if data changed and the bar show again, its transition animaiton\n // will begin at this place.\n\n layout.x = xClipped && x > coordSysX2 ? x2 : x;\n layout.y = yClipped && y > coordSysY2 ? y2 : y;\n layout.width = xClipped ? 0 : x2 - x;\n layout.height = yClipped ? 0 : y2 - y; // Reverse back\n\n if (signWidth < 0) {\n layout.x += layout.width;\n layout.width = -layout.width;\n }\n\n if (signHeight < 0) {\n layout.y += layout.height;\n layout.height = -layout.height;\n }\n\n return xClipped || yClipped;\n },\n polar: function polar(coordSysClipArea, layout) {\n var signR = layout.r0 <= layout.r ? 1 : -1; // Make sure r is larger than r0\n\n if (signR < 0) {\n var tmp = layout.r;\n layout.r = layout.r0;\n layout.r0 = tmp;\n }\n\n var r = mathMin(layout.r, coordSysClipArea.r);\n var r0 = mathMax(layout.r0, coordSysClipArea.r0);\n layout.r = r;\n layout.r0 = r0;\n var clipped = r - r0 < 0; // Reverse back\n\n if (signR < 0) {\n var tmp = layout.r;\n layout.r = layout.r0;\n layout.r0 = tmp;\n }\n\n return clipped;\n }\n};\nvar elementCreator = {\n cartesian2d: function cartesian2d(seriesModel, data, newIndex, layout, isHorizontal, animationModel, axisModel, isUpdate, roundCap) {\n var rect = new Rect({\n shape: extend({}, layout),\n z2: 1\n });\n rect.__dataIndex = newIndex;\n rect.name = 'item';\n\n if (animationModel) {\n var rectShape = rect.shape;\n var animateProperty = isHorizontal ? 'height' : 'width';\n rectShape[animateProperty] = 0;\n }\n\n return rect;\n },\n polar: function polar(seriesModel, data, newIndex, layout, isRadial, animationModel, axisModel, isUpdate, roundCap) {\n var ShapeClass = !isRadial && roundCap ? Sausage : Sector;\n var sector = new ShapeClass({\n shape: layout,\n z2: 1\n });\n sector.name = 'item';\n var positionMap = createPolarPositionMapping(isRadial);\n sector.calculateTextPosition = createSectorCalculateTextPosition(positionMap, {\n isRoundCap: ShapeClass === Sausage\n }); // Animation\n\n if (animationModel) {\n var sectorShape = sector.shape;\n var animateProperty = isRadial ? 'r' : 'endAngle';\n var animateTarget = {};\n sectorShape[animateProperty] = isRadial ? 0 : layout.startAngle;\n animateTarget[animateProperty] = layout[animateProperty];\n (isUpdate ? updateProps : initProps)(sector, {\n shape: animateTarget // __value: typeof dataValue === 'string' ? parseInt(dataValue, 10) : dataValue\n\n }, animationModel);\n }\n\n return sector;\n }\n};\n\nfunction shouldRealtimeSort(seriesModel, coordSys) {\n var realtimeSortOption = seriesModel.get('realtimeSort', true);\n var baseAxis = coordSys.getBaseAxis();\n\n if (process.env.NODE_ENV !== 'production') {\n if (realtimeSortOption) {\n if (baseAxis.type !== 'category') {\n warn('`realtimeSort` will not work because this bar series is not based on a category axis.');\n }\n\n if (coordSys.type !== 'cartesian2d') {\n warn('`realtimeSort` will not work because this bar series is not on cartesian2d.');\n }\n }\n }\n\n if (realtimeSortOption && baseAxis.type === 'category' && coordSys.type === 'cartesian2d') {\n return {\n baseAxis: baseAxis,\n otherAxis: coordSys.getOtherAxis(baseAxis)\n };\n }\n}\n\nfunction updateRealtimeAnimation(realtimeSortCfg, seriesAnimationModel, el, layout, newIndex, isHorizontal, isUpdate, isChangeOrder) {\n var seriesTarget;\n var axisTarget;\n\n if (isHorizontal) {\n axisTarget = {\n x: layout.x,\n width: layout.width\n };\n seriesTarget = {\n y: layout.y,\n height: layout.height\n };\n } else {\n axisTarget = {\n y: layout.y,\n height: layout.height\n };\n seriesTarget = {\n x: layout.x,\n width: layout.width\n };\n }\n\n if (!isChangeOrder) {\n // Keep the original growth animation if only axis order changed.\n // Not start a new animation.\n (isUpdate ? updateProps : initProps)(el, {\n shape: seriesTarget\n }, seriesAnimationModel, newIndex, null);\n }\n\n var axisAnimationModel = seriesAnimationModel ? realtimeSortCfg.baseAxis.model : null;\n (isUpdate ? updateProps : initProps)(el, {\n shape: axisTarget\n }, axisAnimationModel, newIndex);\n}\n\nfunction checkPropertiesNotValid(obj, props) {\n for (var i = 0; i < props.length; i++) {\n if (!isFinite(obj[props[i]])) {\n return true;\n }\n }\n\n return false;\n}\n\nvar rectPropties = ['x', 'y', 'width', 'height'];\nvar polarPropties = ['cx', 'cy', 'r', 'startAngle', 'endAngle'];\nvar isValidLayout = {\n cartesian2d: function cartesian2d(layout) {\n return !checkPropertiesNotValid(layout, rectPropties);\n },\n polar: function polar(layout) {\n return !checkPropertiesNotValid(layout, polarPropties);\n }\n};\nvar getLayout = {\n // itemModel is only used to get borderWidth, which is not needed\n // when calculating bar background layout.\n cartesian2d: function cartesian2d(data, dataIndex, itemModel) {\n var layout = data.getItemLayout(dataIndex);\n var fixedLineWidth = itemModel ? getLineWidth(itemModel, layout) : 0; // fix layout with lineWidth\n\n var signX = layout.width > 0 ? 1 : -1;\n var signY = layout.height > 0 ? 1 : -1;\n return {\n x: layout.x + signX * fixedLineWidth / 2,\n y: layout.y + signY * fixedLineWidth / 2,\n width: layout.width - signX * fixedLineWidth,\n height: layout.height - signY * fixedLineWidth\n };\n },\n polar: function polar(data, dataIndex, itemModel) {\n var layout = data.getItemLayout(dataIndex);\n return {\n cx: layout.cx,\n cy: layout.cy,\n r0: layout.r0,\n r: layout.r,\n startAngle: layout.startAngle,\n endAngle: layout.endAngle,\n clockwise: layout.clockwise\n };\n }\n};\n\nfunction isZeroOnPolar(layout) {\n return layout.startAngle != null && layout.endAngle != null && layout.startAngle === layout.endAngle;\n}\n\nfunction createPolarPositionMapping(isRadial) {\n return function (isRadial) {\n var arcOrAngle = isRadial ? 'Arc' : 'Angle';\n return function (position) {\n switch (position) {\n case 'start':\n case 'insideStart':\n case 'end':\n case 'insideEnd':\n return position + arcOrAngle;\n\n default:\n return position;\n }\n };\n }(isRadial);\n}\n\nfunction updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, isPolar) {\n var style = data.getItemVisual(dataIndex, 'style');\n\n if (!isPolar) {\n el.setShape('r', itemModel.get(['itemStyle', 'borderRadius']) || 0);\n }\n\n el.useStyle(style);\n var cursorStyle = itemModel.getShallow('cursor');\n cursorStyle && el.attr('cursor', cursorStyle);\n var labelPositionOutside = isPolar ? isHorizontalOrRadial ? layout.r >= layout.r0 ? 'endArc' : 'startArc' : layout.endAngle >= layout.startAngle ? 'endAngle' : 'startAngle' : isHorizontalOrRadial ? layout.height >= 0 ? 'bottom' : 'top' : layout.width >= 0 ? 'right' : 'left';\n var labelStatesModels = getLabelStatesModels(itemModel);\n setLabelStyle(el, labelStatesModels, {\n labelFetcher: seriesModel,\n labelDataIndex: dataIndex,\n defaultText: getDefaultLabel(seriesModel.getData(), dataIndex),\n inheritColor: style.fill,\n defaultOpacity: style.opacity,\n defaultOutsidePosition: labelPositionOutside\n });\n var label = el.getTextContent();\n\n if (isPolar && label) {\n var position = itemModel.get(['label', 'position']);\n el.textConfig.inside = position === 'middle' ? true : null;\n setSectorTextRotation(el, position === 'outside' ? labelPositionOutside : position, createPolarPositionMapping(isHorizontalOrRadial), itemModel.get(['label', 'rotate']));\n }\n\n setLabelValueAnimation(label, labelStatesModels, seriesModel.getRawValue(dataIndex), function (value) {\n return getDefaultInterpolatedLabel(data, value);\n });\n var emphasisModel = itemModel.getModel(['emphasis']);\n toggleHoverEmphasis(el, emphasisModel.get('focus'), emphasisModel.get('blurScope'), emphasisModel.get('disabled'));\n setStatesStylesFromModel(el, itemModel);\n\n if (isZeroOnPolar(layout)) {\n el.style.fill = 'none';\n el.style.stroke = 'none';\n each(el.states, function (state) {\n if (state.style) {\n state.style.fill = state.style.stroke = 'none';\n }\n });\n }\n} // In case width or height are too small.\n\n\nfunction getLineWidth(itemModel, rawLayout) {\n // Has no border.\n var borderColor = itemModel.get(['itemStyle', 'borderColor']);\n\n if (!borderColor || borderColor === 'none') {\n return 0;\n }\n\n var lineWidth = itemModel.get(['itemStyle', 'borderWidth']) || 0; // width or height may be NaN for empty data\n\n var width = isNaN(rawLayout.width) ? Number.MAX_VALUE : Math.abs(rawLayout.width);\n var height = isNaN(rawLayout.height) ? Number.MAX_VALUE : Math.abs(rawLayout.height);\n return Math.min(lineWidth, width, height);\n}\n\nvar LagePathShape =\n/** @class */\nfunction () {\n function LagePathShape() {}\n\n return LagePathShape;\n}();\n\nvar LargePath =\n/** @class */\nfunction (_super) {\n __extends(LargePath, _super);\n\n function LargePath(opts) {\n var _this = _super.call(this, opts) || this;\n\n _this.type = 'largeBar';\n return _this;\n }\n\n LargePath.prototype.getDefaultShape = function () {\n return new LagePathShape();\n };\n\n LargePath.prototype.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 var baseDimIdx = this.baseDimIdx;\n var valueDimIdx = 1 - this.baseDimIdx;\n var startPoint = [];\n var size = [];\n var barWidth = this.barWidth;\n\n for (var i = 0; i < points.length; i += 3) {\n size[baseDimIdx] = barWidth;\n size[valueDimIdx] = points[i + 2];\n startPoint[baseDimIdx] = points[i + baseDimIdx];\n startPoint[valueDimIdx] = points[i + valueDimIdx];\n ctx.rect(startPoint[0], startPoint[1], size[0], size[1]);\n }\n };\n\n return LargePath;\n}(Path);\n\nfunction createLarge(seriesModel, group, progressiveEls, incremental) {\n // TODO support polar\n var data = seriesModel.getData();\n var baseDimIdx = data.getLayout('valueAxisHorizontal') ? 1 : 0;\n var largeDataIndices = data.getLayout('largeDataIndices');\n var barWidth = data.getLayout('size');\n var backgroundModel = seriesModel.getModel('backgroundStyle');\n var bgPoints = data.getLayout('largeBackgroundPoints');\n\n if (bgPoints) {\n var bgEl = new LargePath({\n shape: {\n points: bgPoints\n },\n incremental: !!incremental,\n silent: true,\n z2: 0\n });\n bgEl.baseDimIdx = baseDimIdx;\n bgEl.largeDataIndices = largeDataIndices;\n bgEl.barWidth = barWidth;\n bgEl.useStyle(backgroundModel.getItemStyle());\n group.add(bgEl);\n progressiveEls && progressiveEls.push(bgEl);\n }\n\n var el = new LargePath({\n shape: {\n points: data.getLayout('largePoints')\n },\n incremental: !!incremental,\n z2: 1\n });\n el.baseDimIdx = baseDimIdx;\n el.largeDataIndices = largeDataIndices;\n el.barWidth = barWidth;\n group.add(el);\n el.useStyle(data.getVisual('style')); // Enable tooltip and user mouse/touch event handlers.\n\n getECData(el).seriesIndex = seriesModel.seriesIndex;\n\n if (!seriesModel.get('silent')) {\n el.on('mousedown', largePathUpdateDataIndex);\n el.on('mousemove', largePathUpdateDataIndex);\n }\n\n progressiveEls && progressiveEls.push(el);\n} // Use throttle to avoid frequently traverse to find dataIndex.\n\n\nvar largePathUpdateDataIndex = throttle(function (event) {\n var largePath = this;\n var dataIndex = largePathFindDataIndex(largePath, event.offsetX, event.offsetY);\n getECData(largePath).dataIndex = dataIndex >= 0 ? dataIndex : null;\n}, 30, false);\n\nfunction largePathFindDataIndex(largePath, x, y) {\n var baseDimIdx = largePath.baseDimIdx;\n var valueDimIdx = 1 - baseDimIdx;\n var points = largePath.shape.points;\n var largeDataIndices = largePath.largeDataIndices;\n var startPoint = [];\n var size = [];\n var barWidth = largePath.barWidth;\n\n for (var i = 0, len = points.length / 3; i < len; i++) {\n var ii = i * 3;\n size[baseDimIdx] = barWidth;\n size[valueDimIdx] = points[ii + 2];\n startPoint[baseDimIdx] = points[ii + baseDimIdx];\n startPoint[valueDimIdx] = points[ii + valueDimIdx];\n\n if (size[valueDimIdx] < 0) {\n startPoint[valueDimIdx] += size[valueDimIdx];\n size[valueDimIdx] = -size[valueDimIdx];\n }\n\n if (x >= startPoint[0] && x <= startPoint[0] + size[0] && y >= startPoint[1] && y <= startPoint[1] + size[1]) {\n return largeDataIndices[i];\n }\n }\n\n return -1;\n}\n\nfunction createBackgroundShape(isHorizontalOrRadial, layout, coord) {\n if (isCoordinateSystemType(coord, 'cartesian2d')) {\n var rectShape = layout;\n var coordLayout = coord.getArea();\n return {\n x: isHorizontalOrRadial ? rectShape.x : coordLayout.x,\n y: isHorizontalOrRadial ? coordLayout.y : rectShape.y,\n width: isHorizontalOrRadial ? rectShape.width : coordLayout.width,\n height: isHorizontalOrRadial ? coordLayout.height : rectShape.height\n };\n } else {\n var coordLayout = coord.getArea();\n var sectorShape = layout;\n return {\n cx: coordLayout.cx,\n cy: coordLayout.cy,\n r0: isHorizontalOrRadial ? coordLayout.r0 : sectorShape.r0,\n r: isHorizontalOrRadial ? coordLayout.r : sectorShape.r,\n startAngle: isHorizontalOrRadial ? sectorShape.startAngle : 0,\n endAngle: isHorizontalOrRadial ? sectorShape.endAngle : Math.PI * 2\n };\n }\n}\n\nfunction createBackgroundEl(coord, isHorizontalOrRadial, layout) {\n var ElementClz = coord.type === 'polar' ? Sector : Rect;\n return new ElementClz({\n shape: createBackgroundShape(isHorizontalOrRadial, layout, coord),\n silent: true,\n z2: 0\n });\n}\n\nexport default BarView;","map":{"version":3,"sources":["D:/Work/WorkSpace/GitWorkSpace/TenShop/resource/ElectronicMall/src/qingge-Market/qingge-vue/node_modules/echarts/lib/chart/bar/BarView.js"],"names":["__extends","Path","Group","extend","each","map","Rect","Sector","updateProps","initProps","removeElementWithFadeOut","traverseElements","getECData","setStatesStylesFromModel","toggleHoverEmphasis","setLabelStyle","getLabelStatesModels","setLabelValueAnimation","labelInner","throttle","createClipPath","Sausage","ChartView","isCoordinateSystemType","getDefaultLabel","getDefaultInterpolatedLabel","warn","createSectorCalculateTextPosition","setSectorTextRotation","saveOldStyle","mathMax","Math","max","mathMin","min","getClipArea","coord","data","coordSysClipArea","getArea","baseAxis","getBaseAxis","type","onBand","expandWidth","getLayout","isHorizontal","x","width","y","height","BarView","_super","_this","call","_isFirstFrame","prototype","render","seriesModel","ecModel","api","payload","_model","_removeOnRenderedListener","_updateDrawMode","coordinateSystemType","get","_progressiveEls","_isLargeDraw","_renderLarge","_renderNormal","process","env","NODE_ENV","incrementalPrepareRender","_clear","_updateLargeClip","incrementalRender","params","_incrementalRenderLarge","eachRendered","cb","group","isLargeDraw","pipelineContext","large","getData","oldData","_data","coordinateSystem","isHorizontalOrRadial","dim","animationModel","isAnimationEnabled","realtimeSortCfg","shouldRealtimeSort","_enableRealtimeSort","needsClip","removeClipPath","roundCap","drawBackground","backgroundModel","getModel","barBorderRadius","bgEls","oldBgEls","_backgroundEls","isInitSort","isChangeOrder","createBackground","dataIndex","bgLayout","bgEl","createBackgroundEl","useStyle","getItemStyle","setShape","diff","add","itemModel","getItemModel","layout","hasValue","isValidLayout","isClipped","clip","el","elementCreator","model","forceLabelAnimation","updateStyle","attr","shape","updateRealtimeAnimation","setItemGraphicEl","ignore","update","newIndex","oldIndex","length","createBackgroundShape","getItemGraphicEl","remove","textEl","getTextContent","labelInnerStore","prevValue","value","execute","bgGroup","_backgroundGroup","removeAll","i","createLarge","_removeBackground","clipPath","setClipPath","count","_dispatchInitSort","orderMapping_1","idx","abs","_onRendered","_updateSortWithinSameData","getZr","on","_dataSort","orderMapping","info","mapDimension","ordinalNumber","dataIdx","mappedValue","NaN","push","sort","a","b","ordinalNumbers","item","_isOrderChangedWithinSameData","scale","ordinalDataDim","lastValue","Number","MAX_VALUE","tickNum","len","getOrdinalMeta","categories","rawIdx","rawIndexOf","getRawOrdinalNumber","MIN_VALUE","indexOfRawIndex","_isOrderDifferentInView","orderInfo","extent","getExtent","tickMax","sortInfo","dispatchAction","componentType","axisId","index","sortResult","otherAxis","dispose","off","eachItemGraphicEl","cartesian2d","coordSysBoundingRect","signWidth","signHeight","coordSysX2","coordSysY2","x2","y2","xClipped","yClipped","polar","signR","r0","r","tmp","clipped","axisModel","isUpdate","rect","z2","__dataIndex","name","rectShape","animateProperty","isRadial","ShapeClass","sector","positionMap","createPolarPositionMapping","calculateTextPosition","isRoundCap","sectorShape","animateTarget","startAngle","coordSys","realtimeSortOption","getOtherAxis","seriesAnimationModel","seriesTarget","axisTarget","axisAnimationModel","checkPropertiesNotValid","obj","props","isFinite","rectPropties","polarPropties","getItemLayout","fixedLineWidth","getLineWidth","signX","signY","cx","cy","endAngle","clockwise","isZeroOnPolar","arcOrAngle","position","isPolar","style","getItemVisual","cursorStyle","getShallow","labelPositionOutside","labelStatesModels","labelFetcher","labelDataIndex","defaultText","inheritColor","fill","defaultOpacity","opacity","defaultOutsidePosition","label","textConfig","inside","getRawValue","emphasisModel","stroke","states","state","rawLayout","borderColor","lineWidth","isNaN","LagePathShape","LargePath","opts","getDefaultShape","buildPath","ctx","points","baseDimIdx","valueDimIdx","startPoint","size","barWidth","progressiveEls","incremental","largeDataIndices","bgPoints","silent","getVisual","seriesIndex","largePathUpdateDataIndex","event","largePath","largePathFindDataIndex","offsetX","offsetY","ii","coordLayout","PI","ElementClz"],"mappings":"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","sourcesContent":["\r\n/*\r\n* Licensed to the Apache Software Foundation (ASF) under one\r\n* or more contributor license agreements. See the NOTICE file\r\n* distributed with this work for additional information\r\n* regarding copyright ownership. The ASF licenses this file\r\n* to you under the Apache License, Version 2.0 (the\r\n* \"License\"); you may not use this file except in compliance\r\n* with the License. You may obtain a copy of the License at\r\n*\r\n* http://www.apache.org/licenses/LICENSE-2.0\r\n*\r\n* Unless required by applicable law or agreed to in writing,\r\n* software distributed under the License is distributed on an\r\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n* KIND, either express or implied. See the License for the\r\n* specific language governing permissions and limitations\r\n* under the License.\r\n*/\r\n\r\n\r\n/**\r\n * AUTO-GENERATED FILE. DO NOT MODIFY.\r\n */\r\n\r\n/*\r\n* Licensed to the Apache Software Foundation (ASF) under one\r\n* or more contributor license agreements. See the NOTICE file\r\n* distributed with this work for additional information\r\n* regarding copyright ownership. The ASF licenses this file\r\n* to you under the Apache License, Version 2.0 (the\r\n* \"License\"); you may not use this file except in compliance\r\n* with the License. You may obtain a copy of the License at\r\n*\r\n* http://www.apache.org/licenses/LICENSE-2.0\r\n*\r\n* Unless required by applicable law or agreed to in writing,\r\n* software distributed under the License is distributed on an\r\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n* KIND, either express or implied. See the License for the\r\n* specific language governing permissions and limitations\r\n* under the License.\r\n*/\r\nimport { __extends } from \"tslib\";\r\nimport Path from 'zrender/lib/graphic/Path.js';\r\nimport Group from 'zrender/lib/graphic/Group.js';\r\nimport { extend, each, map } from 'zrender/lib/core/util.js';\r\nimport { Rect, Sector, updateProps, initProps, removeElementWithFadeOut, traverseElements } from '../../util/graphic.js';\r\nimport { getECData } from '../../util/innerStore.js';\r\nimport { setStatesStylesFromModel, toggleHoverEmphasis } from '../../util/states.js';\r\nimport { setLabelStyle, getLabelStatesModels, setLabelValueAnimation, labelInner } from '../../label/labelStyle.js';\r\nimport { throttle } from '../../util/throttle.js';\r\nimport { createClipPath } from '../helper/createClipPathFromCoordSys.js';\r\nimport Sausage from '../../util/shape/sausage.js';\r\nimport ChartView from '../../view/Chart.js';\r\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem.js';\r\nimport { getDefaultLabel, getDefaultInterpolatedLabel } from '../helper/labelHelper.js';\r\nimport { warn } from '../../util/log.js';\r\nimport { createSectorCalculateTextPosition, setSectorTextRotation } from '../../label/sectorLabel.js';\r\nimport { saveOldStyle } from '../../animation/basicTrasition.js';\r\nvar mathMax = Math.max;\r\nvar mathMin = Math.min;\r\n\r\nfunction getClipArea(coord, data) {\r\n var coordSysClipArea = coord.getArea && coord.getArea();\r\n\r\n if (isCoordinateSystemType(coord, 'cartesian2d')) {\r\n var baseAxis = coord.getBaseAxis(); // When boundaryGap is false or using time axis. bar may exceed the grid.\r\n // We should not clip this part.\r\n // See test/bar2.html\r\n\r\n if (baseAxis.type !== 'category' || !baseAxis.onBand) {\r\n var expandWidth = data.getLayout('bandWidth');\r\n\r\n if (baseAxis.isHorizontal()) {\r\n coordSysClipArea.x -= expandWidth;\r\n coordSysClipArea.width += expandWidth * 2;\r\n } else {\r\n coordSysClipArea.y -= expandWidth;\r\n coordSysClipArea.height += expandWidth * 2;\r\n }\r\n }\r\n }\r\n\r\n return coordSysClipArea;\r\n}\r\n\r\nvar BarView =\r\n/** @class */\r\nfunction (_super) {\r\n __extends(BarView, _super);\r\n\r\n function BarView() {\r\n var _this = _super.call(this) || this;\r\n\r\n _this.type = BarView.type;\r\n _this._isFirstFrame = true;\r\n return _this;\r\n }\r\n\r\n BarView.prototype.render = function (seriesModel, ecModel, api, payload) {\r\n this._model = seriesModel;\r\n\r\n this._removeOnRenderedListener(api);\r\n\r\n this._updateDrawMode(seriesModel);\r\n\r\n var coordinateSystemType = seriesModel.get('coordinateSystem');\r\n\r\n if (coordinateSystemType === 'cartesian2d' || coordinateSystemType === 'polar') {\r\n // Clear previously rendered progressive elements.\r\n this._progressiveEls = null;\r\n this._isLargeDraw ? this._renderLarge(seriesModel, ecModel, api) : this._renderNormal(seriesModel, ecModel, api, payload);\r\n } else if (process.env.NODE_ENV !== 'production') {\r\n warn('Only cartesian2d and polar supported for bar.');\r\n }\r\n };\r\n\r\n BarView.prototype.incrementalPrepareRender = function (seriesModel) {\r\n this._clear();\r\n\r\n this._updateDrawMode(seriesModel); // incremental also need to clip, otherwise might be overlow.\r\n // But must not set clip in each frame, otherwise all of the children will be marked redraw.\r\n\r\n\r\n this._updateLargeClip(seriesModel);\r\n };\r\n\r\n BarView.prototype.incrementalRender = function (params, seriesModel) {\r\n // Reset\r\n this._progressiveEls = []; // Do not support progressive in normal mode.\r\n\r\n this._incrementalRenderLarge(params, seriesModel);\r\n };\r\n\r\n BarView.prototype.eachRendered = function (cb) {\r\n traverseElements(this._progressiveEls || this.group, cb);\r\n };\r\n\r\n BarView.prototype._updateDrawMode = function (seriesModel) {\r\n var isLargeDraw = seriesModel.pipelineContext.large;\r\n\r\n if (this._isLargeDraw == null || isLargeDraw !== this._isLargeDraw) {\r\n this._isLargeDraw = isLargeDraw;\r\n\r\n this._clear();\r\n }\r\n };\r\n\r\n BarView.prototype._renderNormal = function (seriesModel, ecModel, api, payload) {\r\n var group = this.group;\r\n var data = seriesModel.getData();\r\n var oldData = this._data;\r\n var coord = seriesModel.coordinateSystem;\r\n var baseAxis = coord.getBaseAxis();\r\n var isHorizontalOrRadial;\r\n\r\n if (coord.type === 'cartesian2d') {\r\n isHorizontalOrRadial = baseAxis.isHorizontal();\r\n } else if (coord.type === 'polar') {\r\n isHorizontalOrRadial = baseAxis.dim === 'angle';\r\n }\r\n\r\n var animationModel = seriesModel.isAnimationEnabled() ? seriesModel : null;\r\n var realtimeSortCfg = shouldRealtimeSort(seriesModel, coord);\r\n\r\n if (realtimeSortCfg) {\r\n this._enableRealtimeSort(realtimeSortCfg, data, api);\r\n }\r\n\r\n var needsClip = seriesModel.get('clip', true) || realtimeSortCfg;\r\n var coordSysClipArea = getClipArea(coord, data); // If there is clipPath created in large mode. Remove it.\r\n\r\n group.removeClipPath(); // We don't use clipPath in normal mode because we needs a perfect animation\r\n // And don't want the label are clipped.\r\n\r\n var roundCap = seriesModel.get('roundCap', true);\r\n var drawBackground = seriesModel.get('showBackground', true);\r\n var backgroundModel = seriesModel.getModel('backgroundStyle');\r\n var barBorderRadius = backgroundModel.get('borderRadius') || 0;\r\n var bgEls = [];\r\n var oldBgEls = this._backgroundEls;\r\n var isInitSort = payload && payload.isInitSort;\r\n var isChangeOrder = payload && payload.type === 'changeAxisOrder';\r\n\r\n function createBackground(dataIndex) {\r\n var bgLayout = getLayout[coord.type](data, dataIndex);\r\n var bgEl = createBackgroundEl(coord, isHorizontalOrRadial, bgLayout);\r\n bgEl.useStyle(backgroundModel.getItemStyle()); // Only cartesian2d support borderRadius.\r\n\r\n if (coord.type === 'cartesian2d') {\r\n bgEl.setShape('r', barBorderRadius);\r\n }\r\n\r\n bgEls[dataIndex] = bgEl;\r\n return bgEl;\r\n }\r\n\r\n ;\r\n data.diff(oldData).add(function (dataIndex) {\r\n var itemModel = data.getItemModel(dataIndex);\r\n var layout = getLayout[coord.type](data, dataIndex, itemModel);\r\n\r\n if (drawBackground) {\r\n createBackground(dataIndex);\r\n } // If dataZoom in filteMode: 'empty', the baseValue can be set as NaN in \"axisProxy\".\r\n\r\n\r\n if (!data.hasValue(dataIndex) || !isValidLayout[coord.type](layout)) {\r\n return;\r\n }\r\n\r\n var isClipped = false;\r\n\r\n if (needsClip) {\r\n // Clip will modify the layout params.\r\n // And return a boolean to determine if the shape are fully clipped.\r\n isClipped = clip[coord.type](coordSysClipArea, layout);\r\n }\r\n\r\n var el = elementCreator[coord.type](seriesModel, data, dataIndex, layout, isHorizontalOrRadial, animationModel, baseAxis.model, false, roundCap);\r\n\r\n if (realtimeSortCfg) {\r\n /**\r\n * Force label animation because even if the element is\r\n * ignored because it's clipped, it may not be clipped after\r\n * changing order. Then, if not using forceLabelAnimation,\r\n * the label animation was never started, in which case,\r\n * the label will be the final value and doesn't have label\r\n * animation.\r\n */\r\n el.forceLabelAnimation = true;\r\n }\r\n\r\n updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\r\n\r\n if (isInitSort) {\r\n el.attr({\r\n shape: layout\r\n });\r\n } else if (realtimeSortCfg) {\r\n updateRealtimeAnimation(realtimeSortCfg, animationModel, el, layout, dataIndex, isHorizontalOrRadial, false, false);\r\n } else {\r\n initProps(el, {\r\n shape: layout\r\n }, seriesModel, dataIndex);\r\n }\r\n\r\n data.setItemGraphicEl(dataIndex, el);\r\n group.add(el);\r\n el.ignore = isClipped;\r\n }).update(function (newIndex, oldIndex) {\r\n var itemModel = data.getItemModel(newIndex);\r\n var layout = getLayout[coord.type](data, newIndex, itemModel);\r\n\r\n if (drawBackground) {\r\n var bgEl = void 0;\r\n\r\n if (oldBgEls.length === 0) {\r\n bgEl = createBackground(oldIndex);\r\n } else {\r\n bgEl = oldBgEls[oldIndex];\r\n bgEl.useStyle(backgroundModel.getItemStyle()); // Only cartesian2d support borderRadius.\r\n\r\n if (coord.type === 'cartesian2d') {\r\n bgEl.setShape('r', barBorderRadius);\r\n }\r\n\r\n bgEls[newIndex] = bgEl;\r\n }\r\n\r\n var bgLayout = getLayout[coord.type](data, newIndex);\r\n var shape = createBackgroundShape(isHorizontalOrRadial, bgLayout, coord);\r\n updateProps(bgEl, {\r\n shape: shape\r\n }, animationModel, newIndex);\r\n }\r\n\r\n var el = oldData.getItemGraphicEl(oldIndex);\r\n\r\n if (!data.hasValue(newIndex) || !isValidLayout[coord.type](layout)) {\r\n group.remove(el);\r\n return;\r\n }\r\n\r\n var isClipped = false;\r\n\r\n if (needsClip) {\r\n isClipped = clip[coord.type](coordSysClipArea, layout);\r\n\r\n if (isClipped) {\r\n group.remove(el);\r\n }\r\n }\r\n\r\n if (!el) {\r\n el = elementCreator[coord.type](seriesModel, data, newIndex, layout, isHorizontalOrRadial, animationModel, baseAxis.model, !!el, roundCap);\r\n } else {\r\n saveOldStyle(el);\r\n }\r\n\r\n if (realtimeSortCfg) {\r\n el.forceLabelAnimation = true;\r\n }\r\n\r\n if (isChangeOrder) {\r\n var textEl = el.getTextContent();\r\n\r\n if (textEl) {\r\n var labelInnerStore = labelInner(textEl);\r\n\r\n if (labelInnerStore.prevValue != null) {\r\n /**\r\n * Set preValue to be value so that no new label\r\n * should be started, otherwise, it will take a full\r\n * `animationDurationUpdate` time to finish the\r\n * animation, which is not expected.\r\n */\r\n labelInnerStore.prevValue = labelInnerStore.value;\r\n }\r\n }\r\n } // Not change anything if only order changed.\r\n // Especially not change label.\r\n else {\r\n updateStyle(el, data, newIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\r\n }\r\n\r\n if (isInitSort) {\r\n el.attr({\r\n shape: layout\r\n });\r\n } else if (realtimeSortCfg) {\r\n updateRealtimeAnimation(realtimeSortCfg, animationModel, el, layout, newIndex, isHorizontalOrRadial, true, isChangeOrder);\r\n } else {\r\n updateProps(el, {\r\n shape: layout\r\n }, seriesModel, newIndex, null);\r\n }\r\n\r\n data.setItemGraphicEl(newIndex, el);\r\n el.ignore = isClipped;\r\n group.add(el);\r\n }).remove(function (dataIndex) {\r\n var el = oldData.getItemGraphicEl(dataIndex);\r\n el && removeElementWithFadeOut(el, seriesModel, dataIndex);\r\n }).execute();\r\n var bgGroup = this._backgroundGroup || (this._backgroundGroup = new Group());\r\n bgGroup.removeAll();\r\n\r\n for (var i = 0; i < bgEls.length; ++i) {\r\n bgGroup.add(bgEls[i]);\r\n }\r\n\r\n group.add(bgGroup);\r\n this._backgroundEls = bgEls;\r\n this._data = data;\r\n };\r\n\r\n BarView.prototype._renderLarge = function (seriesModel, ecModel, api) {\r\n this._clear();\r\n\r\n createLarge(seriesModel, this.group);\r\n\r\n this._updateLargeClip(seriesModel);\r\n };\r\n\r\n BarView.prototype._incrementalRenderLarge = function (params, seriesModel) {\r\n this._removeBackground();\r\n\r\n createLarge(seriesModel, this.group, this._progressiveEls, true);\r\n };\r\n\r\n BarView.prototype._updateLargeClip = function (seriesModel) {\r\n // Use clipPath in large mode.\r\n var clipPath = seriesModel.get('clip', true) && createClipPath(seriesModel.coordinateSystem, false, seriesModel);\r\n var group = this.group;\r\n\r\n if (clipPath) {\r\n group.setClipPath(clipPath);\r\n } else {\r\n group.removeClipPath();\r\n }\r\n };\r\n\r\n BarView.prototype._enableRealtimeSort = function (realtimeSortCfg, data, api) {\r\n var _this = this; // If no data in the first frame, wait for data to initSort\r\n\r\n\r\n if (!data.count()) {\r\n return;\r\n }\r\n\r\n var baseAxis = realtimeSortCfg.baseAxis;\r\n\r\n if (this._isFirstFrame) {\r\n this._dispatchInitSort(data, realtimeSortCfg, api);\r\n\r\n this._isFirstFrame = false;\r\n } else {\r\n var orderMapping_1 = function (idx) {\r\n var el = data.getItemGraphicEl(idx);\r\n var shape = el && el.shape;\r\n return shape && // The result should be consistent with the initial sort by data value.\r\n // Do not support the case that both positive and negative exist.\r\n Math.abs(baseAxis.isHorizontal() ? shape.height : shape.width) // If data is NaN, shape.xxx may be NaN, so use || 0 here in case\r\n || 0;\r\n };\r\n\r\n this._onRendered = function () {\r\n _this._updateSortWithinSameData(data, orderMapping_1, baseAxis, api);\r\n };\r\n\r\n api.getZr().on('rendered', this._onRendered);\r\n }\r\n };\r\n\r\n BarView.prototype._dataSort = function (data, baseAxis, orderMapping) {\r\n var info = [];\r\n data.each(data.mapDimension(baseAxis.dim), function (ordinalNumber, dataIdx) {\r\n var mappedValue = orderMapping(dataIdx);\r\n mappedValue = mappedValue == null ? NaN : mappedValue;\r\n info.push({\r\n dataIndex: dataIdx,\r\n mappedValue: mappedValue,\r\n ordinalNumber: ordinalNumber\r\n });\r\n });\r\n info.sort(function (a, b) {\r\n // If NaN, it will be treated as min val.\r\n return b.mappedValue - a.mappedValue;\r\n });\r\n return {\r\n ordinalNumbers: map(info, function (item) {\r\n return item.ordinalNumber;\r\n })\r\n };\r\n };\r\n\r\n BarView.prototype._isOrderChangedWithinSameData = function (data, orderMapping, baseAxis) {\r\n var scale = baseAxis.scale;\r\n var ordinalDataDim = data.mapDimension(baseAxis.dim);\r\n var lastValue = Number.MAX_VALUE;\r\n\r\n for (var tickNum = 0, len = scale.getOrdinalMeta().categories.length; tickNum < len; ++tickNum) {\r\n var rawIdx = data.rawIndexOf(ordinalDataDim, scale.getRawOrdinalNumber(tickNum));\r\n var value = rawIdx < 0 // If some tick have no bar, the tick will be treated as min.\r\n ? Number.MIN_VALUE // PENDING: if dataZoom on baseAxis exits, is it a performance issue?\r\n : orderMapping(data.indexOfRawIndex(rawIdx));\r\n\r\n if (value > lastValue) {\r\n return true;\r\n }\r\n\r\n lastValue = value;\r\n }\r\n\r\n return false;\r\n };\r\n /*\r\n * Consider the case when A and B changed order, whose representing\r\n * bars are both out of sight, we don't wish to trigger reorder action\r\n * as long as the order in the view doesn't change.\r\n */\r\n\r\n\r\n BarView.prototype._isOrderDifferentInView = function (orderInfo, baseAxis) {\r\n var scale = baseAxis.scale;\r\n var extent = scale.getExtent();\r\n var tickNum = Math.max(0, extent[0]);\r\n var tickMax = Math.min(extent[1], scale.getOrdinalMeta().categories.length - 1);\r\n\r\n for (; tickNum <= tickMax; ++tickNum) {\r\n if (orderInfo.ordinalNumbers[tickNum] !== scale.getRawOrdinalNumber(tickNum)) {\r\n return true;\r\n }\r\n }\r\n };\r\n\r\n BarView.prototype._updateSortWithinSameData = function (data, orderMapping, baseAxis, api) {\r\n if (!this._isOrderChangedWithinSameData(data, orderMapping, baseAxis)) {\r\n return;\r\n }\r\n\r\n var sortInfo = this._dataSort(data, baseAxis, orderMapping);\r\n\r\n if (this._isOrderDifferentInView(sortInfo, baseAxis)) {\r\n this._removeOnRenderedListener(api);\r\n\r\n api.dispatchAction({\r\n type: 'changeAxisOrder',\r\n componentType: baseAxis.dim + 'Axis',\r\n axisId: baseAxis.index,\r\n sortInfo: sortInfo\r\n });\r\n }\r\n };\r\n\r\n BarView.prototype._dispatchInitSort = function (data, realtimeSortCfg, api) {\r\n var baseAxis = realtimeSortCfg.baseAxis;\r\n\r\n var sortResult = this._dataSort(data, baseAxis, function (dataIdx) {\r\n return data.get(data.mapDimension(realtimeSortCfg.otherAxis.dim), dataIdx);\r\n });\r\n\r\n api.dispatchAction({\r\n type: 'changeAxisOrder',\r\n componentType: baseAxis.dim + 'Axis',\r\n isInitSort: true,\r\n axisId: baseAxis.index,\r\n sortInfo: sortResult\r\n });\r\n };\r\n\r\n BarView.prototype.remove = function (ecModel, api) {\r\n this._clear(this._model);\r\n\r\n this._removeOnRenderedListener(api);\r\n };\r\n\r\n BarView.prototype.dispose = function (ecModel, api) {\r\n this._removeOnRenderedListener(api);\r\n };\r\n\r\n BarView.prototype._removeOnRenderedListener = function (api) {\r\n if (this._onRendered) {\r\n api.getZr().off('rendered', this._onRendered);\r\n this._onRendered = null;\r\n }\r\n };\r\n\r\n BarView.prototype._clear = function (model) {\r\n var group = this.group;\r\n var data = this._data;\r\n\r\n if (model && model.isAnimationEnabled() && data && !this._isLargeDraw) {\r\n this._removeBackground();\r\n\r\n this._backgroundEls = [];\r\n data.eachItemGraphicEl(function (el) {\r\n removeElementWithFadeOut(el, model, getECData(el).dataIndex);\r\n });\r\n } else {\r\n group.removeAll();\r\n }\r\n\r\n this._data = null;\r\n this._isFirstFrame = true;\r\n };\r\n\r\n BarView.prototype._removeBackground = function () {\r\n this.group.remove(this._backgroundGroup);\r\n this._backgroundGroup = null;\r\n };\r\n\r\n BarView.type = 'bar';\r\n return BarView;\r\n}(ChartView);\r\n\r\nvar clip = {\r\n cartesian2d: function (coordSysBoundingRect, layout) {\r\n var signWidth = layout.width < 0 ? -1 : 1;\r\n var signHeight = layout.height < 0 ? -1 : 1; // Needs positive width and height\r\n\r\n if (signWidth < 0) {\r\n layout.x += layout.width;\r\n layout.width = -layout.width;\r\n }\r\n\r\n if (signHeight < 0) {\r\n layout.y += layout.height;\r\n layout.height = -layout.height;\r\n }\r\n\r\n var coordSysX2 = coordSysBoundingRect.x + coordSysBoundingRect.width;\r\n var coordSysY2 = coordSysBoundingRect.y + coordSysBoundingRect.height;\r\n var x = mathMax(layout.x, coordSysBoundingRect.x);\r\n var x2 = mathMin(layout.x + layout.width, coordSysX2);\r\n var y = mathMax(layout.y, coordSysBoundingRect.y);\r\n var y2 = mathMin(layout.y + layout.height, coordSysY2);\r\n var xClipped = x2 < x;\r\n var yClipped = y2 < y; // When xClipped or yClipped, the element will be marked as `ignore`.\r\n // But we should also place the element at the edge of the coord sys bounding rect.\r\n // Beause if data changed and the bar show again, its transition animaiton\r\n // will begin at this place.\r\n\r\n layout.x = xClipped && x > coordSysX2 ? x2 : x;\r\n layout.y = yClipped && y > coordSysY2 ? y2 : y;\r\n layout.width = xClipped ? 0 : x2 - x;\r\n layout.height = yClipped ? 0 : y2 - y; // Reverse back\r\n\r\n if (signWidth < 0) {\r\n layout.x += layout.width;\r\n layout.width = -layout.width;\r\n }\r\n\r\n if (signHeight < 0) {\r\n layout.y += layout.height;\r\n layout.height = -layout.height;\r\n }\r\n\r\n return xClipped || yClipped;\r\n },\r\n polar: function (coordSysClipArea, layout) {\r\n var signR = layout.r0 <= layout.r ? 1 : -1; // Make sure r is larger than r0\r\n\r\n if (signR < 0) {\r\n var tmp = layout.r;\r\n layout.r = layout.r0;\r\n layout.r0 = tmp;\r\n }\r\n\r\n var r = mathMin(layout.r, coordSysClipArea.r);\r\n var r0 = mathMax(layout.r0, coordSysClipArea.r0);\r\n layout.r = r;\r\n layout.r0 = r0;\r\n var clipped = r - r0 < 0; // Reverse back\r\n\r\n if (signR < 0) {\r\n var tmp = layout.r;\r\n layout.r = layout.r0;\r\n layout.r0 = tmp;\r\n }\r\n\r\n return clipped;\r\n }\r\n};\r\nvar elementCreator = {\r\n cartesian2d: function (seriesModel, data, newIndex, layout, isHorizontal, animationModel, axisModel, isUpdate, roundCap) {\r\n var rect = new Rect({\r\n shape: extend({}, layout),\r\n z2: 1\r\n });\r\n rect.__dataIndex = newIndex;\r\n rect.name = 'item';\r\n\r\n if (animationModel) {\r\n var rectShape = rect.shape;\r\n var animateProperty = isHorizontal ? 'height' : 'width';\r\n rectShape[animateProperty] = 0;\r\n }\r\n\r\n return rect;\r\n },\r\n polar: function (seriesModel, data, newIndex, layout, isRadial, animationModel, axisModel, isUpdate, roundCap) {\r\n var ShapeClass = !isRadial && roundCap ? Sausage : Sector;\r\n var sector = new ShapeClass({\r\n shape: layout,\r\n z2: 1\r\n });\r\n sector.name = 'item';\r\n var positionMap = createPolarPositionMapping(isRadial);\r\n sector.calculateTextPosition = createSectorCalculateTextPosition(positionMap, {\r\n isRoundCap: ShapeClass === Sausage\r\n }); // Animation\r\n\r\n if (animationModel) {\r\n var sectorShape = sector.shape;\r\n var animateProperty = isRadial ? 'r' : 'endAngle';\r\n var animateTarget = {};\r\n sectorShape[animateProperty] = isRadial ? 0 : layout.startAngle;\r\n animateTarget[animateProperty] = layout[animateProperty];\r\n (isUpdate ? updateProps : initProps)(sector, {\r\n shape: animateTarget // __value: typeof dataValue === 'string' ? parseInt(dataValue, 10) : dataValue\r\n\r\n }, animationModel);\r\n }\r\n\r\n return sector;\r\n }\r\n};\r\n\r\nfunction shouldRealtimeSort(seriesModel, coordSys) {\r\n var realtimeSortOption = seriesModel.get('realtimeSort', true);\r\n var baseAxis = coordSys.getBaseAxis();\r\n\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (realtimeSortOption) {\r\n if (baseAxis.type !== 'category') {\r\n warn('`realtimeSort` will not work because this bar series is not based on a category axis.');\r\n }\r\n\r\n if (coordSys.type !== 'cartesian2d') {\r\n warn('`realtimeSort` will not work because this bar series is not on cartesian2d.');\r\n }\r\n }\r\n }\r\n\r\n if (realtimeSortOption && baseAxis.type === 'category' && coordSys.type === 'cartesian2d') {\r\n return {\r\n baseAxis: baseAxis,\r\n otherAxis: coordSys.getOtherAxis(baseAxis)\r\n };\r\n }\r\n}\r\n\r\nfunction updateRealtimeAnimation(realtimeSortCfg, seriesAnimationModel, el, layout, newIndex, isHorizontal, isUpdate, isChangeOrder) {\r\n var seriesTarget;\r\n var axisTarget;\r\n\r\n if (isHorizontal) {\r\n axisTarget = {\r\n x: layout.x,\r\n width: layout.width\r\n };\r\n seriesTarget = {\r\n y: layout.y,\r\n height: layout.height\r\n };\r\n } else {\r\n axisTarget = {\r\n y: layout.y,\r\n height: layout.height\r\n };\r\n seriesTarget = {\r\n x: layout.x,\r\n width: layout.width\r\n };\r\n }\r\n\r\n if (!isChangeOrder) {\r\n // Keep the original growth animation if only axis order changed.\r\n // Not start a new animation.\r\n (isUpdate ? updateProps : initProps)(el, {\r\n shape: seriesTarget\r\n }, seriesAnimationModel, newIndex, null);\r\n }\r\n\r\n var axisAnimationModel = seriesAnimationModel ? realtimeSortCfg.baseAxis.model : null;\r\n (isUpdate ? updateProps : initProps)(el, {\r\n shape: axisTarget\r\n }, axisAnimationModel, newIndex);\r\n}\r\n\r\nfunction checkPropertiesNotValid(obj, props) {\r\n for (var i = 0; i < props.length; i++) {\r\n if (!isFinite(obj[props[i]])) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n}\r\n\r\nvar rectPropties = ['x', 'y', 'width', 'height'];\r\nvar polarPropties = ['cx', 'cy', 'r', 'startAngle', 'endAngle'];\r\nvar isValidLayout = {\r\n cartesian2d: function (layout) {\r\n return !checkPropertiesNotValid(layout, rectPropties);\r\n },\r\n polar: function (layout) {\r\n return !checkPropertiesNotValid(layout, polarPropties);\r\n }\r\n};\r\nvar getLayout = {\r\n // itemModel is only used to get borderWidth, which is not needed\r\n // when calculating bar background layout.\r\n cartesian2d: function (data, dataIndex, itemModel) {\r\n var layout = data.getItemLayout(dataIndex);\r\n var fixedLineWidth = itemModel ? getLineWidth(itemModel, layout) : 0; // fix layout with lineWidth\r\n\r\n var signX = layout.width > 0 ? 1 : -1;\r\n var signY = layout.height > 0 ? 1 : -1;\r\n return {\r\n x: layout.x + signX * fixedLineWidth / 2,\r\n y: layout.y + signY * fixedLineWidth / 2,\r\n width: layout.width - signX * fixedLineWidth,\r\n height: layout.height - signY * fixedLineWidth\r\n };\r\n },\r\n polar: function (data, dataIndex, itemModel) {\r\n var layout = data.getItemLayout(dataIndex);\r\n return {\r\n cx: layout.cx,\r\n cy: layout.cy,\r\n r0: layout.r0,\r\n r: layout.r,\r\n startAngle: layout.startAngle,\r\n endAngle: layout.endAngle,\r\n clockwise: layout.clockwise\r\n };\r\n }\r\n};\r\n\r\nfunction isZeroOnPolar(layout) {\r\n return layout.startAngle != null && layout.endAngle != null && layout.startAngle === layout.endAngle;\r\n}\r\n\r\nfunction createPolarPositionMapping(isRadial) {\r\n return function (isRadial) {\r\n var arcOrAngle = isRadial ? 'Arc' : 'Angle';\r\n return function (position) {\r\n switch (position) {\r\n case 'start':\r\n case 'insideStart':\r\n case 'end':\r\n case 'insideEnd':\r\n return position + arcOrAngle;\r\n\r\n default:\r\n return position;\r\n }\r\n };\r\n }(isRadial);\r\n}\r\n\r\nfunction updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, isPolar) {\r\n var style = data.getItemVisual(dataIndex, 'style');\r\n\r\n if (!isPolar) {\r\n el.setShape('r', itemModel.get(['itemStyle', 'borderRadius']) || 0);\r\n }\r\n\r\n el.useStyle(style);\r\n var cursorStyle = itemModel.getShallow('cursor');\r\n cursorStyle && el.attr('cursor', cursorStyle);\r\n var labelPositionOutside = isPolar ? isHorizontalOrRadial ? layout.r >= layout.r0 ? 'endArc' : 'startArc' : layout.endAngle >= layout.startAngle ? 'endAngle' : 'startAngle' : isHorizontalOrRadial ? layout.height >= 0 ? 'bottom' : 'top' : layout.width >= 0 ? 'right' : 'left';\r\n var labelStatesModels = getLabelStatesModels(itemModel);\r\n setLabelStyle(el, labelStatesModels, {\r\n labelFetcher: seriesModel,\r\n labelDataIndex: dataIndex,\r\n defaultText: getDefaultLabel(seriesModel.getData(), dataIndex),\r\n inheritColor: style.fill,\r\n defaultOpacity: style.opacity,\r\n defaultOutsidePosition: labelPositionOutside\r\n });\r\n var label = el.getTextContent();\r\n\r\n if (isPolar && label) {\r\n var position = itemModel.get(['label', 'position']);\r\n el.textConfig.inside = position === 'middle' ? true : null;\r\n setSectorTextRotation(el, position === 'outside' ? labelPositionOutside : position, createPolarPositionMapping(isHorizontalOrRadial), itemModel.get(['label', 'rotate']));\r\n }\r\n\r\n setLabelValueAnimation(label, labelStatesModels, seriesModel.getRawValue(dataIndex), function (value) {\r\n return getDefaultInterpolatedLabel(data, value);\r\n });\r\n var emphasisModel = itemModel.getModel(['emphasis']);\r\n toggleHoverEmphasis(el, emphasisModel.get('focus'), emphasisModel.get('blurScope'), emphasisModel.get('disabled'));\r\n setStatesStylesFromModel(el, itemModel);\r\n\r\n if (isZeroOnPolar(layout)) {\r\n el.style.fill = 'none';\r\n el.style.stroke = 'none';\r\n each(el.states, function (state) {\r\n if (state.style) {\r\n state.style.fill = state.style.stroke = 'none';\r\n }\r\n });\r\n }\r\n} // In case width or height are too small.\r\n\r\n\r\nfunction getLineWidth(itemModel, rawLayout) {\r\n // Has no border.\r\n var borderColor = itemModel.get(['itemStyle', 'borderColor']);\r\n\r\n if (!borderColor || borderColor === 'none') {\r\n return 0;\r\n }\r\n\r\n var lineWidth = itemModel.get(['itemStyle', 'borderWidth']) || 0; // width or height may be NaN for empty data\r\n\r\n var width = isNaN(rawLayout.width) ? Number.MAX_VALUE : Math.abs(rawLayout.width);\r\n var height = isNaN(rawLayout.height) ? Number.MAX_VALUE : Math.abs(rawLayout.height);\r\n return Math.min(lineWidth, width, height);\r\n}\r\n\r\nvar LagePathShape =\r\n/** @class */\r\nfunction () {\r\n function LagePathShape() {}\r\n\r\n return LagePathShape;\r\n}();\r\n\r\nvar LargePath =\r\n/** @class */\r\nfunction (_super) {\r\n __extends(LargePath, _super);\r\n\r\n function LargePath(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n\r\n _this.type = 'largeBar';\r\n return _this;\r\n }\r\n\r\n LargePath.prototype.getDefaultShape = function () {\r\n return new LagePathShape();\r\n };\r\n\r\n LargePath.prototype.buildPath = function (ctx, shape) {\r\n // Drawing lines is more efficient than drawing\r\n // a whole line or drawing rects.\r\n var points = shape.points;\r\n var baseDimIdx = this.baseDimIdx;\r\n var valueDimIdx = 1 - this.baseDimIdx;\r\n var startPoint = [];\r\n var size = [];\r\n var barWidth = this.barWidth;\r\n\r\n for (var i = 0; i < points.length; i += 3) {\r\n size[baseDimIdx] = barWidth;\r\n size[valueDimIdx] = points[i + 2];\r\n startPoint[baseDimIdx] = points[i + baseDimIdx];\r\n startPoint[valueDimIdx] = points[i + valueDimIdx];\r\n ctx.rect(startPoint[0], startPoint[1], size[0], size[1]);\r\n }\r\n };\r\n\r\n return LargePath;\r\n}(Path);\r\n\r\nfunction createLarge(seriesModel, group, progressiveEls, incremental) {\r\n // TODO support polar\r\n var data = seriesModel.getData();\r\n var baseDimIdx = data.getLayout('valueAxisHorizontal') ? 1 : 0;\r\n var largeDataIndices = data.getLayout('largeDataIndices');\r\n var barWidth = data.getLayout('size');\r\n var backgroundModel = seriesModel.getModel('backgroundStyle');\r\n var bgPoints = data.getLayout('largeBackgroundPoints');\r\n\r\n if (bgPoints) {\r\n var bgEl = new LargePath({\r\n shape: {\r\n points: bgPoints\r\n },\r\n incremental: !!incremental,\r\n silent: true,\r\n z2: 0\r\n });\r\n bgEl.baseDimIdx = baseDimIdx;\r\n bgEl.largeDataIndices = largeDataIndices;\r\n bgEl.barWidth = barWidth;\r\n bgEl.useStyle(backgroundModel.getItemStyle());\r\n group.add(bgEl);\r\n progressiveEls && progressiveEls.push(bgEl);\r\n }\r\n\r\n var el = new LargePath({\r\n shape: {\r\n points: data.getLayout('largePoints')\r\n },\r\n incremental: !!incremental,\r\n z2: 1\r\n });\r\n el.baseDimIdx = baseDimIdx;\r\n el.largeDataIndices = largeDataIndices;\r\n el.barWidth = barWidth;\r\n group.add(el);\r\n el.useStyle(data.getVisual('style')); // Enable tooltip and user mouse/touch event handlers.\r\n\r\n getECData(el).seriesIndex = seriesModel.seriesIndex;\r\n\r\n if (!seriesModel.get('silent')) {\r\n el.on('mousedown', largePathUpdateDataIndex);\r\n el.on('mousemove', largePathUpdateDataIndex);\r\n }\r\n\r\n progressiveEls && progressiveEls.push(el);\r\n} // Use throttle to avoid frequently traverse to find dataIndex.\r\n\r\n\r\nvar largePathUpdateDataIndex = throttle(function (event) {\r\n var largePath = this;\r\n var dataIndex = largePathFindDataIndex(largePath, event.offsetX, event.offsetY);\r\n getECData(largePath).dataIndex = dataIndex >= 0 ? dataIndex : null;\r\n}, 30, false);\r\n\r\nfunction largePathFindDataIndex(largePath, x, y) {\r\n var baseDimIdx = largePath.baseDimIdx;\r\n var valueDimIdx = 1 - baseDimIdx;\r\n var points = largePath.shape.points;\r\n var largeDataIndices = largePath.largeDataIndices;\r\n var startPoint = [];\r\n var size = [];\r\n var barWidth = largePath.barWidth;\r\n\r\n for (var i = 0, len = points.length / 3; i < len; i++) {\r\n var ii = i * 3;\r\n size[baseDimIdx] = barWidth;\r\n size[valueDimIdx] = points[ii + 2];\r\n startPoint[baseDimIdx] = points[ii + baseDimIdx];\r\n startPoint[valueDimIdx] = points[ii + valueDimIdx];\r\n\r\n if (size[valueDimIdx] < 0) {\r\n startPoint[valueDimIdx] += size[valueDimIdx];\r\n size[valueDimIdx] = -size[valueDimIdx];\r\n }\r\n\r\n if (x >= startPoint[0] && x <= startPoint[0] + size[0] && y >= startPoint[1] && y <= startPoint[1] + size[1]) {\r\n return largeDataIndices[i];\r\n }\r\n }\r\n\r\n return -1;\r\n}\r\n\r\nfunction createBackgroundShape(isHorizontalOrRadial, layout, coord) {\r\n if (isCoordinateSystemType(coord, 'cartesian2d')) {\r\n var rectShape = layout;\r\n var coordLayout = coord.getArea();\r\n return {\r\n x: isHorizontalOrRadial ? rectShape.x : coordLayout.x,\r\n y: isHorizontalOrRadial ? coordLayout.y : rectShape.y,\r\n width: isHorizontalOrRadial ? rectShape.width : coordLayout.width,\r\n height: isHorizontalOrRadial ? coordLayout.height : rectShape.height\r\n };\r\n } else {\r\n var coordLayout = coord.getArea();\r\n var sectorShape = layout;\r\n return {\r\n cx: coordLayout.cx,\r\n cy: coordLayout.cy,\r\n r0: isHorizontalOrRadial ? coordLayout.r0 : sectorShape.r0,\r\n r: isHorizontalOrRadial ? coordLayout.r : sectorShape.r,\r\n startAngle: isHorizontalOrRadial ? sectorShape.startAngle : 0,\r\n endAngle: isHorizontalOrRadial ? sectorShape.endAngle : Math.PI * 2\r\n };\r\n }\r\n}\r\n\r\nfunction createBackgroundEl(coord, isHorizontalOrRadial, layout) {\r\n var ElementClz = coord.type === 'polar' ? Sector : Rect;\r\n return new ElementClz({\r\n shape: createBackgroundShape(isHorizontalOrRadial, layout, coord),\r\n silent: true,\r\n z2: 0\r\n });\r\n}\r\n\r\nexport default BarView;"]},"metadata":{},"sourceType":"module"}