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

1 line
101 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

{"ast":null,"code":"import \"core-js/modules/es.array.fill.js\";\nimport \"core-js/modules/es.array.slice.js\";\nimport \"core-js/modules/es.number.to-fixed.js\";\nimport \"core-js/modules/es.regexp.exec.js\";\nimport \"core-js/modules/es.string.replace.js\";\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport { bind, each, isFunction, isString, indexOf } from 'zrender/lib/core/util.js';\nimport * as eventTool from 'zrender/lib/core/event.js';\nimport * as graphic from '../../util/graphic.js';\nimport * as throttle from '../../util/throttle.js';\nimport DataZoomView from './DataZoomView.js';\nimport { linearMap, asc, parsePercent } from '../../util/number.js';\nimport * as layout from '../../util/layout.js';\nimport sliderMove from '../helper/sliderMove.js';\nimport { getAxisMainType, collectReferCoordSysModelInfo } from './helper.js';\nimport { enableHoverEmphasis } from '../../util/states.js';\nimport { createSymbol, symbolBuildProxies } from '../../util/symbol.js';\nimport { deprecateLog } from '../../util/log.js';\nimport { createTextStyle } from '../../label/labelStyle.js';\nvar Rect = graphic.Rect; // Constants\n\nvar DEFAULT_LOCATION_EDGE_GAP = 7;\nvar DEFAULT_FRAME_BORDER_WIDTH = 1;\nvar DEFAULT_FILLER_SIZE = 30;\nvar DEFAULT_MOVE_HANDLE_SIZE = 7;\nvar HORIZONTAL = 'horizontal';\nvar VERTICAL = 'vertical';\nvar LABEL_GAP = 5;\nvar SHOW_DATA_SHADOW_SERIES_TYPE = ['line', 'bar', 'candlestick', 'scatter'];\nvar REALTIME_ANIMATION_CONFIG = {\n easing: 'cubicOut',\n duration: 100,\n delay: 0\n};\n\nvar SliderZoomView =\n/** @class */\nfunction (_super) {\n __extends(SliderZoomView, _super);\n\n function SliderZoomView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = SliderZoomView.type;\n _this._displayables = {};\n return _this;\n }\n\n SliderZoomView.prototype.init = function (ecModel, api) {\n this.api = api; // A unique handler for each dataZoom component\n\n this._onBrush = bind(this._onBrush, this);\n this._onBrushEnd = bind(this._onBrushEnd, this);\n };\n\n SliderZoomView.prototype.render = function (dataZoomModel, ecModel, api, payload) {\n _super.prototype.render.apply(this, arguments);\n\n throttle.createOrUpdate(this, '_dispatchZoomAction', dataZoomModel.get('throttle'), 'fixRate');\n this._orient = dataZoomModel.getOrient();\n\n if (dataZoomModel.get('show') === false) {\n this.group.removeAll();\n return;\n }\n\n if (dataZoomModel.noTarget()) {\n this._clear();\n\n this.group.removeAll();\n return;\n } // Notice: this._resetInterval() should not be executed when payload.type\n // is 'dataZoom', origin this._range should be maintained, otherwise 'pan'\n // or 'zoom' info will be missed because of 'throttle' of this.dispatchAction,\n\n\n if (!payload || payload.type !== 'dataZoom' || payload.from !== this.uid) {\n this._buildView();\n }\n\n this._updateView();\n };\n\n SliderZoomView.prototype.dispose = function () {\n this._clear();\n\n _super.prototype.dispose.apply(this, arguments);\n };\n\n SliderZoomView.prototype._clear = function () {\n throttle.clear(this, '_dispatchZoomAction');\n var zr = this.api.getZr();\n zr.off('mousemove', this._onBrush);\n zr.off('mouseup', this._onBrushEnd);\n };\n\n SliderZoomView.prototype._buildView = function () {\n var thisGroup = this.group;\n thisGroup.removeAll();\n this._brushing = false;\n this._displayables.brushRect = null;\n\n this._resetLocation();\n\n this._resetInterval();\n\n var barGroup = this._displayables.sliderGroup = new graphic.Group();\n\n this._renderBackground();\n\n this._renderHandle();\n\n this._renderDataShadow();\n\n thisGroup.add(barGroup);\n\n this._positionGroup();\n };\n\n SliderZoomView.prototype._resetLocation = function () {\n var dataZoomModel = this.dataZoomModel;\n var api = this.api;\n var showMoveHandle = dataZoomModel.get('brushSelect');\n var moveHandleSize = showMoveHandle ? DEFAULT_MOVE_HANDLE_SIZE : 0; // If some of x/y/width/height are not specified,\n // auto-adapt according to target grid.\n\n var coordRect = this._findCoordRect();\n\n var ecSize = {\n width: api.getWidth(),\n height: api.getHeight()\n }; // Default align by coordinate system rect.\n\n var positionInfo = this._orient === HORIZONTAL ? {\n // Why using 'right', because right should be used in vertical,\n // and it is better to be consistent for dealing with position param merge.\n right: ecSize.width - coordRect.x - coordRect.width,\n top: ecSize.height - DEFAULT_FILLER_SIZE - DEFAULT_LOCATION_EDGE_GAP - moveHandleSize,\n width: coordRect.width,\n height: DEFAULT_FILLER_SIZE\n } : {\n right: DEFAULT_LOCATION_EDGE_GAP,\n top: coordRect.y,\n width: DEFAULT_FILLER_SIZE,\n height: coordRect.height\n }; // Do not write back to option and replace value 'ph', because\n // the 'ph' value should be recalculated when resize.\n\n var layoutParams = layout.getLayoutParams(dataZoomModel.option); // Replace the placeholder value.\n\n each(['right', 'top', 'width', 'height'], function (name) {\n if (layoutParams[name] === 'ph') {\n layoutParams[name] = positionInfo[name];\n }\n });\n var layoutRect = layout.getLayoutRect(layoutParams, ecSize);\n this._location = {\n x: layoutRect.x,\n y: layoutRect.y\n };\n this._size = [layoutRect.width, layoutRect.height];\n this._orient === VERTICAL && this._size.reverse();\n };\n\n SliderZoomView.prototype._positionGroup = function () {\n var thisGroup = this.group;\n var location = this._location;\n var orient = this._orient; // Just use the first axis to determine mapping.\n\n var targetAxisModel = this.dataZoomModel.getFirstTargetAxisModel();\n var inverse = targetAxisModel && targetAxisModel.get('inverse');\n var sliderGroup = this._displayables.sliderGroup;\n var otherAxisInverse = (this._dataShadowInfo || {}).otherAxisInverse; // Transform barGroup.\n\n sliderGroup.attr(orient === HORIZONTAL && !inverse ? {\n scaleY: otherAxisInverse ? 1 : -1,\n scaleX: 1\n } : orient === HORIZONTAL && inverse ? {\n scaleY: otherAxisInverse ? 1 : -1,\n scaleX: -1\n } : orient === VERTICAL && !inverse ? {\n scaleY: otherAxisInverse ? -1 : 1,\n scaleX: 1,\n rotation: Math.PI / 2\n } // Don't use Math.PI, considering shadow direction.\n : {\n scaleY: otherAxisInverse ? -1 : 1,\n scaleX: -1,\n rotation: Math.PI / 2\n }); // Position barGroup\n\n var rect = thisGroup.getBoundingRect([sliderGroup]);\n thisGroup.x = location.x - rect.x;\n thisGroup.y = location.y - rect.y;\n thisGroup.markRedraw();\n };\n\n SliderZoomView.prototype._getViewExtent = function () {\n return [0, this._size[0]];\n };\n\n SliderZoomView.prototype._renderBackground = function () {\n var dataZoomModel = this.dataZoomModel;\n var size = this._size;\n var barGroup = this._displayables.sliderGroup;\n var brushSelect = dataZoomModel.get('brushSelect');\n barGroup.add(new Rect({\n silent: true,\n shape: {\n x: 0,\n y: 0,\n width: size[0],\n height: size[1]\n },\n style: {\n fill: dataZoomModel.get('backgroundColor')\n },\n z2: -40\n })); // Click panel, over shadow, below handles.\n\n var clickPanel = new Rect({\n shape: {\n x: 0,\n y: 0,\n width: size[0],\n height: size[1]\n },\n style: {\n fill: 'transparent'\n },\n z2: 0,\n onclick: bind(this._onClickPanel, this)\n });\n var zr = this.api.getZr();\n\n if (brushSelect) {\n clickPanel.on('mousedown', this._onBrushStart, this);\n clickPanel.cursor = 'crosshair';\n zr.on('mousemove', this._onBrush);\n zr.on('mouseup', this._onBrushEnd);\n } else {\n zr.off('mousemove', this._onBrush);\n zr.off('mouseup', this._onBrushEnd);\n }\n\n barGroup.add(clickPanel);\n };\n\n SliderZoomView.prototype._renderDataShadow = function () {\n var info = this._dataShadowInfo = this._prepareDataShadowInfo();\n\n this._displayables.dataShadowSegs = [];\n\n if (!info) {\n return;\n }\n\n var size = this._size;\n var oldSize = this._shadowSize || [];\n var seriesModel = info.series;\n var data = seriesModel.getRawData();\n var candlestickDim = seriesModel.getShadowDim && seriesModel.getShadowDim();\n var otherDim = candlestickDim && data.getDimensionInfo(candlestickDim) ? seriesModel.getShadowDim() // @see candlestick\n : info.otherDim;\n\n if (otherDim == null) {\n return;\n }\n\n var polygonPts = this._shadowPolygonPts;\n var polylinePts = this._shadowPolylinePts; // Not re-render if data doesn't change.\n\n if (data !== this._shadowData || otherDim !== this._shadowDim || size[0] !== oldSize[0] || size[1] !== oldSize[1]) {\n var otherDataExtent_1 = data.getDataExtent(otherDim); // Nice extent.\n\n var otherOffset = (otherDataExtent_1[1] - otherDataExtent_1[0]) * 0.3;\n otherDataExtent_1 = [otherDataExtent_1[0] - otherOffset, otherDataExtent_1[1] + otherOffset];\n var otherShadowExtent_1 = [0, size[1]];\n var thisShadowExtent = [0, size[0]];\n var areaPoints_1 = [[size[0], 0], [0, 0]];\n var linePoints_1 = [];\n var step_1 = thisShadowExtent[1] / (data.count() - 1);\n var thisCoord_1 = 0; // Optimize for large data shadow\n\n var stride_1 = Math.round(data.count() / size[0]);\n var lastIsEmpty_1;\n data.each([otherDim], function (value, index) {\n if (stride_1 > 0 && index % stride_1) {\n thisCoord_1 += step_1;\n return;\n } // FIXME\n // Should consider axis.min/axis.max when drawing dataShadow.\n // FIXME\n // 应该使用统一的空判断还是在list里进行空判断\n\n\n var isEmpty = value == null || isNaN(value) || value === ''; // See #4235.\n\n var otherCoord = isEmpty ? 0 : linearMap(value, otherDataExtent_1, otherShadowExtent_1, true); // Attempt to draw data shadow precisely when there are empty value.\n\n if (isEmpty && !lastIsEmpty_1 && index) {\n areaPoints_1.push([areaPoints_1[areaPoints_1.length - 1][0], 0]);\n linePoints_1.push([linePoints_1[linePoints_1.length - 1][0], 0]);\n } else if (!isEmpty && lastIsEmpty_1) {\n areaPoints_1.push([thisCoord_1, 0]);\n linePoints_1.push([thisCoord_1, 0]);\n }\n\n areaPoints_1.push([thisCoord_1, otherCoord]);\n linePoints_1.push([thisCoord_1, otherCoord]);\n thisCoord_1 += step_1;\n lastIsEmpty_1 = isEmpty;\n });\n polygonPts = this._shadowPolygonPts = areaPoints_1;\n polylinePts = this._shadowPolylinePts = linePoints_1;\n }\n\n this._shadowData = data;\n this._shadowDim = otherDim;\n this._shadowSize = [size[0], size[1]];\n var dataZoomModel = this.dataZoomModel;\n\n function createDataShadowGroup(isSelectedArea) {\n var model = dataZoomModel.getModel(isSelectedArea ? 'selectedDataBackground' : 'dataBackground');\n var group = new graphic.Group();\n var polygon = new graphic.Polygon({\n shape: {\n points: polygonPts\n },\n segmentIgnoreThreshold: 1,\n style: model.getModel('areaStyle').getAreaStyle(),\n silent: true,\n z2: -20\n });\n var polyline = new graphic.Polyline({\n shape: {\n points: polylinePts\n },\n segmentIgnoreThreshold: 1,\n style: model.getModel('lineStyle').getLineStyle(),\n silent: true,\n z2: -19\n });\n group.add(polygon);\n group.add(polyline);\n return group;\n } // let dataBackgroundModel = dataZoomModel.getModel('dataBackground');\n\n\n for (var i = 0; i < 3; i++) {\n var group = createDataShadowGroup(i === 1);\n\n this._displayables.sliderGroup.add(group);\n\n this._displayables.dataShadowSegs.push(group);\n }\n };\n\n SliderZoomView.prototype._prepareDataShadowInfo = function () {\n var dataZoomModel = this.dataZoomModel;\n var showDataShadow = dataZoomModel.get('showDataShadow');\n\n if (showDataShadow === false) {\n return;\n } // Find a representative series.\n\n\n var result;\n var ecModel = this.ecModel;\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n var seriesModels = dataZoomModel.getAxisProxy(axisDim, axisIndex).getTargetSeriesModels();\n each(seriesModels, function (seriesModel) {\n if (result) {\n return;\n }\n\n if (showDataShadow !== true && indexOf(SHOW_DATA_SHADOW_SERIES_TYPE, seriesModel.get('type')) < 0) {\n return;\n }\n\n var thisAxis = ecModel.getComponent(getAxisMainType(axisDim), axisIndex).axis;\n var otherDim = getOtherDim(axisDim);\n var otherAxisInverse;\n var coordSys = seriesModel.coordinateSystem;\n\n if (otherDim != null && coordSys.getOtherAxis) {\n otherAxisInverse = coordSys.getOtherAxis(thisAxis).inverse;\n }\n\n otherDim = seriesModel.getData().mapDimension(otherDim);\n result = {\n thisAxis: thisAxis,\n series: seriesModel,\n thisDim: axisDim,\n otherDim: otherDim,\n otherAxisInverse: otherAxisInverse\n };\n }, this);\n }, this);\n return result;\n };\n\n SliderZoomView.prototype._renderHandle = function () {\n var thisGroup = this.group;\n var displayables = this._displayables;\n var handles = displayables.handles = [null, null];\n var handleLabels = displayables.handleLabels = [null, null];\n var sliderGroup = this._displayables.sliderGroup;\n var size = this._size;\n var dataZoomModel = this.dataZoomModel;\n var api = this.api;\n var borderRadius = dataZoomModel.get('borderRadius') || 0;\n var brushSelect = dataZoomModel.get('brushSelect');\n var filler = displayables.filler = new Rect({\n silent: brushSelect,\n style: {\n fill: dataZoomModel.get('fillerColor')\n },\n textConfig: {\n position: 'inside'\n }\n });\n sliderGroup.add(filler); // Frame border.\n\n sliderGroup.add(new Rect({\n silent: true,\n subPixelOptimize: true,\n shape: {\n x: 0,\n y: 0,\n width: size[0],\n height: size[1],\n r: borderRadius\n },\n style: {\n // deprecated option\n stroke: dataZoomModel.get('dataBackgroundColor') || dataZoomModel.get('borderColor'),\n lineWidth: DEFAULT_FRAME_BORDER_WIDTH,\n fill: 'rgba(0,0,0,0)'\n }\n })); // Left and right handle to resize\n\n each([0, 1], function (handleIndex) {\n var iconStr = dataZoomModel.get('handleIcon');\n\n if (!symbolBuildProxies[iconStr] && iconStr.indexOf('path://') < 0 && iconStr.indexOf('image://') < 0) {\n // Compatitable with the old icon parsers. Which can use a path string without path://\n iconStr = 'path://' + iconStr;\n\n if (process.env.NODE_ENV !== 'production') {\n deprecateLog('handleIcon now needs \\'path://\\' prefix when using a path string');\n }\n }\n\n var path = createSymbol(iconStr, -1, 0, 2, 2, null, true);\n path.attr({\n cursor: getCursor(this._orient),\n draggable: true,\n drift: bind(this._onDragMove, this, handleIndex),\n ondragend: bind(this._onDragEnd, this),\n onmouseover: bind(this._showDataInfo, this, true),\n onmouseout: bind(this._showDataInfo, this, false),\n z2: 5\n });\n var bRect = path.getBoundingRect();\n var handleSize = dataZoomModel.get('handleSize');\n this._handleHeight = parsePercent(handleSize, this._size[1]);\n this._handleWidth = bRect.width / bRect.height * this._handleHeight;\n path.setStyle(dataZoomModel.getModel('handleStyle').getItemStyle());\n path.style.strokeNoScale = true;\n path.rectHover = true;\n path.ensureState('emphasis').style = dataZoomModel.getModel(['emphasis', 'handleStyle']).getItemStyle();\n enableHoverEmphasis(path);\n var handleColor = dataZoomModel.get('handleColor'); // deprecated option\n // Compatitable with previous version\n\n if (handleColor != null) {\n path.style.fill = handleColor;\n }\n\n sliderGroup.add(handles[handleIndex] = path);\n var textStyleModel = dataZoomModel.getModel('textStyle');\n thisGroup.add(handleLabels[handleIndex] = new graphic.Text({\n silent: true,\n invisible: true,\n style: createTextStyle(textStyleModel, {\n x: 0,\n y: 0,\n text: '',\n verticalAlign: 'middle',\n align: 'center',\n fill: textStyleModel.getTextColor(),\n font: textStyleModel.getFont()\n }),\n z2: 10\n }));\n }, this); // Handle to move. Only visible when brushSelect is set true.\n\n var actualMoveZone = filler;\n\n if (brushSelect) {\n var moveHandleHeight = parsePercent(dataZoomModel.get('moveHandleSize'), size[1]);\n var moveHandle_1 = displayables.moveHandle = new graphic.Rect({\n style: dataZoomModel.getModel('moveHandleStyle').getItemStyle(),\n silent: true,\n shape: {\n r: [0, 0, 2, 2],\n y: size[1] - 0.5,\n height: moveHandleHeight\n }\n });\n var iconSize = moveHandleHeight * 0.8;\n var moveHandleIcon = displayables.moveHandleIcon = createSymbol(dataZoomModel.get('moveHandleIcon'), -iconSize / 2, -iconSize / 2, iconSize, iconSize, '#fff', true);\n moveHandleIcon.silent = true;\n moveHandleIcon.y = size[1] + moveHandleHeight / 2 - 0.5;\n moveHandle_1.ensureState('emphasis').style = dataZoomModel.getModel(['emphasis', 'moveHandleStyle']).getItemStyle();\n var moveZoneExpandSize = Math.min(size[1] / 2, Math.max(moveHandleHeight, 10));\n actualMoveZone = displayables.moveZone = new graphic.Rect({\n invisible: true,\n shape: {\n y: size[1] - moveZoneExpandSize,\n height: moveHandleHeight + moveZoneExpandSize\n }\n });\n actualMoveZone.on('mouseover', function () {\n api.enterEmphasis(moveHandle_1);\n }).on('mouseout', function () {\n api.leaveEmphasis(moveHandle_1);\n });\n sliderGroup.add(moveHandle_1);\n sliderGroup.add(moveHandleIcon);\n sliderGroup.add(actualMoveZone);\n }\n\n actualMoveZone.attr({\n draggable: true,\n cursor: getCursor(this._orient),\n drift: bind(this._onDragMove, this, 'all'),\n ondragstart: bind(this._showDataInfo, this, true),\n ondragend: bind(this._onDragEnd, this),\n onmouseover: bind(this._showDataInfo, this, true),\n onmouseout: bind(this._showDataInfo, this, false)\n });\n };\n\n SliderZoomView.prototype._resetInterval = function () {\n var range = this._range = this.dataZoomModel.getPercentRange();\n\n var viewExtent = this._getViewExtent();\n\n this._handleEnds = [linearMap(range[0], [0, 100], viewExtent, true), linearMap(range[1], [0, 100], viewExtent, true)];\n };\n\n SliderZoomView.prototype._updateInterval = function (handleIndex, delta) {\n var dataZoomModel = this.dataZoomModel;\n var handleEnds = this._handleEnds;\n\n var viewExtend = this._getViewExtent();\n\n var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();\n var percentExtent = [0, 100];\n sliderMove(delta, handleEnds, viewExtend, dataZoomModel.get('zoomLock') ? 'all' : handleIndex, minMaxSpan.minSpan != null ? linearMap(minMaxSpan.minSpan, percentExtent, viewExtend, true) : null, minMaxSpan.maxSpan != null ? linearMap(minMaxSpan.maxSpan, percentExtent, viewExtend, true) : null);\n var lastRange = this._range;\n var range = this._range = asc([linearMap(handleEnds[0], viewExtend, percentExtent, true), linearMap(handleEnds[1], viewExtend, percentExtent, true)]);\n return !lastRange || lastRange[0] !== range[0] || lastRange[1] !== range[1];\n };\n\n SliderZoomView.prototype._updateView = function (nonRealtime) {\n var displaybles = this._displayables;\n var handleEnds = this._handleEnds;\n var handleInterval = asc(handleEnds.slice());\n var size = this._size;\n each([0, 1], function (handleIndex) {\n // Handles\n var handle = displaybles.handles[handleIndex];\n var handleHeight = this._handleHeight;\n handle.attr({\n scaleX: handleHeight / 2,\n scaleY: handleHeight / 2,\n // This is a trick, by adding an extra tiny offset to let the default handle's end point align to the drag window.\n // NOTE: It may affect some custom shapes a bit. But we prefer to have better result by default.\n x: handleEnds[handleIndex] + (handleIndex ? -1 : 1),\n y: size[1] / 2 - handleHeight / 2\n });\n }, this); // Filler\n\n displaybles.filler.setShape({\n x: handleInterval[0],\n y: 0,\n width: handleInterval[1] - handleInterval[0],\n height: size[1]\n });\n var viewExtent = {\n x: handleInterval[0],\n width: handleInterval[1] - handleInterval[0]\n }; // Move handle\n\n if (displaybles.moveHandle) {\n displaybles.moveHandle.setShape(viewExtent);\n displaybles.moveZone.setShape(viewExtent); // Force update path on the invisible object\n\n displaybles.moveZone.getBoundingRect();\n displaybles.moveHandleIcon && displaybles.moveHandleIcon.attr('x', viewExtent.x + viewExtent.width / 2);\n } // update clip path of shadow.\n\n\n var dataShadowSegs = displaybles.dataShadowSegs;\n var segIntervals = [0, handleInterval[0], handleInterval[1], size[0]];\n\n for (var i = 0; i < dataShadowSegs.length; i++) {\n var segGroup = dataShadowSegs[i];\n var clipPath = segGroup.getClipPath();\n\n if (!clipPath) {\n clipPath = new graphic.Rect();\n segGroup.setClipPath(clipPath);\n }\n\n clipPath.setShape({\n x: segIntervals[i],\n y: 0,\n width: segIntervals[i + 1] - segIntervals[i],\n height: size[1]\n });\n }\n\n this._updateDataInfo(nonRealtime);\n };\n\n SliderZoomView.prototype._updateDataInfo = function (nonRealtime) {\n var dataZoomModel = this.dataZoomModel;\n var displaybles = this._displayables;\n var handleLabels = displaybles.handleLabels;\n var orient = this._orient;\n var labelTexts = ['', '']; // FIXME\n // date型支持formatterautoformatterec2 date.getAutoFormatter\n\n if (dataZoomModel.get('showDetail')) {\n var axisProxy = dataZoomModel.findRepresentativeAxisProxy();\n\n if (axisProxy) {\n var axis = axisProxy.getAxisModel().axis;\n var range = this._range;\n var dataInterval = nonRealtime // See #4434, data and axis are not processed and reset yet in non-realtime mode.\n ? axisProxy.calculateDataWindow({\n start: range[0],\n end: range[1]\n }).valueWindow : axisProxy.getDataValueWindow();\n labelTexts = [this._formatLabel(dataInterval[0], axis), this._formatLabel(dataInterval[1], axis)];\n }\n }\n\n var orderedHandleEnds = asc(this._handleEnds.slice());\n setLabel.call(this, 0);\n setLabel.call(this, 1);\n\n function setLabel(handleIndex) {\n // Label\n // Text should not transform by barGroup.\n // Ignore handlers transform\n var barTransform = graphic.getTransform(displaybles.handles[handleIndex].parent, this.group);\n var direction = graphic.transformDirection(handleIndex === 0 ? 'right' : 'left', barTransform);\n var offset = this._handleWidth / 2 + LABEL_GAP;\n var textPoint = graphic.applyTransform([orderedHandleEnds[handleIndex] + (handleIndex === 0 ? -offset : offset), this._size[1] / 2], barTransform);\n handleLabels[handleIndex].setStyle({\n x: textPoint[0],\n y: textPoint[1],\n verticalAlign: orient === HORIZONTAL ? 'middle' : direction,\n align: orient === HORIZONTAL ? direction : 'center',\n text: labelTexts[handleIndex]\n });\n }\n };\n\n SliderZoomView.prototype._formatLabel = function (value, axis) {\n var dataZoomModel = this.dataZoomModel;\n var labelFormatter = dataZoomModel.get('labelFormatter');\n var labelPrecision = dataZoomModel.get('labelPrecision');\n\n if (labelPrecision == null || labelPrecision === 'auto') {\n labelPrecision = axis.getPixelPrecision();\n }\n\n var valueStr = value == null || isNaN(value) ? '' // FIXME Glue code\n : axis.type === 'category' || axis.type === 'time' ? axis.scale.getLabel({\n value: Math.round(value)\n }) // param of toFixed should less then 20.\n : value.toFixed(Math.min(labelPrecision, 20));\n return isFunction(labelFormatter) ? labelFormatter(value, valueStr) : isString(labelFormatter) ? labelFormatter.replace('{value}', valueStr) : valueStr;\n };\n /**\n * @param showOrHide true: show, false: hide\n */\n\n\n SliderZoomView.prototype._showDataInfo = function (showOrHide) {\n // Always show when drgging.\n showOrHide = this._dragging || showOrHide;\n var displayables = this._displayables;\n var handleLabels = displayables.handleLabels;\n handleLabels[0].attr('invisible', !showOrHide);\n handleLabels[1].attr('invisible', !showOrHide); // Highlight move handle\n\n displayables.moveHandle && this.api[showOrHide ? 'enterEmphasis' : 'leaveEmphasis'](displayables.moveHandle, 1);\n };\n\n SliderZoomView.prototype._onDragMove = function (handleIndex, dx, dy, event) {\n this._dragging = true; // For mobile device, prevent screen slider on the button.\n\n eventTool.stop(event.event); // Transform dx, dy to bar coordination.\n\n var barTransform = this._displayables.sliderGroup.getLocalTransform();\n\n var vertex = graphic.applyTransform([dx, dy], barTransform, true);\n\n var changed = this._updateInterval(handleIndex, vertex[0]);\n\n var realtime = this.dataZoomModel.get('realtime');\n\n this._updateView(!realtime); // Avoid dispatch dataZoom repeatly but range not changed,\n // which cause bad visual effect when progressive enabled.\n\n\n changed && realtime && this._dispatchZoomAction(true);\n };\n\n SliderZoomView.prototype._onDragEnd = function () {\n this._dragging = false;\n\n this._showDataInfo(false); // While in realtime mode and stream mode, dispatch action when\n // drag end will cause the whole view rerender, which is unnecessary.\n\n\n var realtime = this.dataZoomModel.get('realtime');\n !realtime && this._dispatchZoomAction(false);\n };\n\n SliderZoomView.prototype._onClickPanel = function (e) {\n var size = this._size;\n\n var localPoint = this._displayables.sliderGroup.transformCoordToLocal(e.offsetX, e.offsetY);\n\n if (localPoint[0] < 0 || localPoint[0] > size[0] || localPoint[1] < 0 || localPoint[1] > size[1]) {\n return;\n }\n\n var handleEnds = this._handleEnds;\n var center = (handleEnds[0] + handleEnds[1]) / 2;\n\n var changed = this._updateInterval('all', localPoint[0] - center);\n\n this._updateView();\n\n changed && this._dispatchZoomAction(false);\n };\n\n SliderZoomView.prototype._onBrushStart = function (e) {\n var x = e.offsetX;\n var y = e.offsetY;\n this._brushStart = new graphic.Point(x, y);\n this._brushing = true;\n this._brushStartTime = +new Date(); // this._updateBrushRect(x, y);\n };\n\n SliderZoomView.prototype._onBrushEnd = function (e) {\n if (!this._brushing) {\n return;\n }\n\n var brushRect = this._displayables.brushRect;\n this._brushing = false;\n\n if (!brushRect) {\n return;\n }\n\n brushRect.attr('ignore', true);\n var brushShape = brushRect.shape;\n var brushEndTime = +new Date(); // console.log(brushEndTime - this._brushStartTime);\n\n if (brushEndTime - this._brushStartTime < 200 && Math.abs(brushShape.width) < 5) {\n // Will treat it as a click\n return;\n }\n\n var viewExtend = this._getViewExtent();\n\n var percentExtent = [0, 100];\n this._range = asc([linearMap(brushShape.x, viewExtend, percentExtent, true), linearMap(brushShape.x + brushShape.width, viewExtend, percentExtent, true)]);\n this._handleEnds = [brushShape.x, brushShape.x + brushShape.width];\n\n this._updateView();\n\n this._dispatchZoomAction(false);\n };\n\n SliderZoomView.prototype._onBrush = function (e) {\n if (this._brushing) {\n // For mobile device, prevent screen slider on the button.\n eventTool.stop(e.event);\n\n this._updateBrushRect(e.offsetX, e.offsetY);\n }\n };\n\n SliderZoomView.prototype._updateBrushRect = function (mouseX, mouseY) {\n var displayables = this._displayables;\n var dataZoomModel = this.dataZoomModel;\n var brushRect = displayables.brushRect;\n\n if (!brushRect) {\n brushRect = displayables.brushRect = new Rect({\n silent: true,\n style: dataZoomModel.getModel('brushStyle').getItemStyle()\n });\n displayables.sliderGroup.add(brushRect);\n }\n\n brushRect.attr('ignore', false);\n var brushStart = this._brushStart;\n var sliderGroup = this._displayables.sliderGroup;\n var endPoint = sliderGroup.transformCoordToLocal(mouseX, mouseY);\n var startPoint = sliderGroup.transformCoordToLocal(brushStart.x, brushStart.y);\n var size = this._size;\n endPoint[0] = Math.max(Math.min(size[0], endPoint[0]), 0);\n brushRect.setShape({\n x: startPoint[0],\n y: 0,\n width: endPoint[0] - startPoint[0],\n height: size[1]\n });\n };\n /**\n * This action will be throttled.\n */\n\n\n SliderZoomView.prototype._dispatchZoomAction = function (realtime) {\n var range = this._range;\n this.api.dispatchAction({\n type: 'dataZoom',\n from: this.uid,\n dataZoomId: this.dataZoomModel.id,\n animation: realtime ? REALTIME_ANIMATION_CONFIG : null,\n start: range[0],\n end: range[1]\n });\n };\n\n SliderZoomView.prototype._findCoordRect = function () {\n // Find the grid corresponding to the first axis referred by dataZoom.\n var rect;\n var coordSysInfoList = collectReferCoordSysModelInfo(this.dataZoomModel).infoList;\n\n if (!rect && coordSysInfoList.length) {\n var coordSys = coordSysInfoList[0].model.coordinateSystem;\n rect = coordSys.getRect && coordSys.getRect();\n }\n\n if (!rect) {\n var width = this.api.getWidth();\n var height = this.api.getHeight();\n rect = {\n x: width * 0.2,\n y: height * 0.2,\n width: width * 0.6,\n height: height * 0.6\n };\n }\n\n return rect;\n };\n\n SliderZoomView.type = 'dataZoom.slider';\n return SliderZoomView;\n}(DataZoomView);\n\nfunction getOtherDim(thisDim) {\n // FIXME\n // 这个逻辑和getOtherAxis里一致但是写在这里是否不好\n var map = {\n x: 'y',\n y: 'x',\n radius: 'angle',\n angle: 'radius'\n };\n return map[thisDim];\n}\n\nfunction getCursor(orient) {\n return orient === 'vertical' ? 'ns-resize' : 'ew-resize';\n}\n\nexport default SliderZoomView;","map":{"version":3,"sources":["D:/Work/WorkSpace/GitWorkSpace/TenShop/resource/ElectronicMall/src/ElectronicMallVue/node_modules/echarts/lib/component/dataZoom/SliderZoomView.js"],"names":["__extends","bind","each","isFunction","isString","indexOf","eventTool","graphic","throttle","DataZoomView","linearMap","asc","parsePercent","layout","sliderMove","getAxisMainType","collectReferCoordSysModelInfo","enableHoverEmphasis","createSymbol","symbolBuildProxies","deprecateLog","createTextStyle","Rect","DEFAULT_LOCATION_EDGE_GAP","DEFAULT_FRAME_BORDER_WIDTH","DEFAULT_FILLER_SIZE","DEFAULT_MOVE_HANDLE_SIZE","HORIZONTAL","VERTICAL","LABEL_GAP","SHOW_DATA_SHADOW_SERIES_TYPE","REALTIME_ANIMATION_CONFIG","easing","duration","delay","SliderZoomView","_super","_this","apply","arguments","type","_displayables","prototype","init","ecModel","api","_onBrush","_onBrushEnd","render","dataZoomModel","payload","createOrUpdate","get","_orient","getOrient","group","removeAll","noTarget","_clear","from","uid","_buildView","_updateView","dispose","clear","zr","getZr","off","thisGroup","_brushing","brushRect","_resetLocation","_resetInterval","barGroup","sliderGroup","Group","_renderBackground","_renderHandle","_renderDataShadow","add","_positionGroup","showMoveHandle","moveHandleSize","coordRect","_findCoordRect","ecSize","width","getWidth","height","getHeight","positionInfo","right","x","top","y","layoutParams","getLayoutParams","option","name","layoutRect","getLayoutRect","_location","_size","reverse","location","orient","targetAxisModel","getFirstTargetAxisModel","inverse","otherAxisInverse","_dataShadowInfo","attr","scaleY","scaleX","rotation","Math","PI","rect","getBoundingRect","markRedraw","_getViewExtent","size","brushSelect","silent","shape","style","fill","z2","clickPanel","onclick","_onClickPanel","on","_onBrushStart","cursor","info","_prepareDataShadowInfo","dataShadowSegs","oldSize","_shadowSize","seriesModel","series","data","getRawData","candlestickDim","getShadowDim","otherDim","getDimensionInfo","polygonPts","_shadowPolygonPts","polylinePts","_shadowPolylinePts","_shadowData","_shadowDim","otherDataExtent_1","getDataExtent","otherOffset","otherShadowExtent_1","thisShadowExtent","areaPoints_1","linePoints_1","step_1","count","thisCoord_1","stride_1","round","lastIsEmpty_1","value","index","isEmpty","isNaN","otherCoord","push","length","createDataShadowGroup","isSelectedArea","model","getModel","polygon","Polygon","points","segmentIgnoreThreshold","getAreaStyle","polyline","Polyline","getLineStyle","i","showDataShadow","result","eachTargetAxis","axisDim","axisIndex","seriesModels","getAxisProxy","getTargetSeriesModels","thisAxis","getComponent","axis","getOtherDim","coordSys","coordinateSystem","getOtherAxis","getData","mapDimension","thisDim","displayables","handles","handleLabels","borderRadius","filler","textConfig","position","subPixelOptimize","r","stroke","lineWidth","handleIndex","iconStr","process","env","NODE_ENV","path","getCursor","draggable","drift","_onDragMove","ondragend","_onDragEnd","onmouseover","_showDataInfo","onmouseout","bRect","handleSize","_handleHeight","_handleWidth","setStyle","getItemStyle","strokeNoScale","rectHover","ensureState","handleColor","textStyleModel","Text","invisible","text","verticalAlign","align","getTextColor","font","getFont","actualMoveZone","moveHandleHeight","moveHandle_1","moveHandle","iconSize","moveHandleIcon","moveZoneExpandSize","min","max","moveZone","enterEmphasis","leaveEmphasis","ondragstart","range","_range","getPercentRange","viewExtent","_handleEnds","_updateInterval","delta","handleEnds","viewExtend","minMaxSpan","findRepresentativeAxisProxy","getMinMaxSpan","percentExtent","minSpan","maxSpan","lastRange","nonRealtime","displaybles","handleInterval","slice","handle","handleHeight","setShape","segIntervals","segGroup","clipPath","getClipPath","setClipPath","_updateDataInfo","labelTexts","axisProxy","getAxisModel","dataInterval","calculateDataWindow","start","end","valueWindow","getDataValueWindow","_formatLabel","orderedHandleEnds","setLabel","call","barTransform","getTransform","parent","direction","transformDirection","offset","textPoint","applyTransform","labelFormatter","labelPrecision","getPixelPrecision","valueStr","scale","getLabel","toFixed","replace","showOrHide","_dragging","dx","dy","event","stop","getLocalTransform","vertex","changed","realtime","_dispatchZoomAction","e","localPoint","transformCoordToLocal","offsetX","offsetY","center","_brushStart","Point","_brushStartTime","Date","brushShape","brushEndTime","abs","_updateBrushRect","mouseX","mouseY","brushStart","endPoint","startPoint","dispatchAction","dataZoomId","id","animation","coordSysInfoList","infoList","getRect","map","radius","angle"],"mappings":"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","sourcesContent":["\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { __extends } from \"tslib\";\nimport { bind, each, isFunction, isString, indexOf } from 'zrender/lib/core/util.js';\nimport * as eventTool from 'zrender/lib/core/event.js';\nimport * as graphic from '../../util/graphic.js';\nimport * as throttle from '../../util/throttle.js';\nimport DataZoomView from './DataZoomView.js';\nimport { linearMap, asc, parsePercent } from '../../util/number.js';\nimport * as layout from '../../util/layout.js';\nimport sliderMove from '../helper/sliderMove.js';\nimport { getAxisMainType, collectReferCoordSysModelInfo } from './helper.js';\nimport { enableHoverEmphasis } from '../../util/states.js';\nimport { createSymbol, symbolBuildProxies } from '../../util/symbol.js';\nimport { deprecateLog } from '../../util/log.js';\nimport { createTextStyle } from '../../label/labelStyle.js';\nvar Rect = graphic.Rect; // Constants\n\nvar DEFAULT_LOCATION_EDGE_GAP = 7;\nvar DEFAULT_FRAME_BORDER_WIDTH = 1;\nvar DEFAULT_FILLER_SIZE = 30;\nvar DEFAULT_MOVE_HANDLE_SIZE = 7;\nvar HORIZONTAL = 'horizontal';\nvar VERTICAL = 'vertical';\nvar LABEL_GAP = 5;\nvar SHOW_DATA_SHADOW_SERIES_TYPE = ['line', 'bar', 'candlestick', 'scatter'];\nvar REALTIME_ANIMATION_CONFIG = {\n easing: 'cubicOut',\n duration: 100,\n delay: 0\n};\n\nvar SliderZoomView =\n/** @class */\nfunction (_super) {\n __extends(SliderZoomView, _super);\n\n function SliderZoomView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = SliderZoomView.type;\n _this._displayables = {};\n return _this;\n }\n\n SliderZoomView.prototype.init = function (ecModel, api) {\n this.api = api; // A unique handler for each dataZoom component\n\n this._onBrush = bind(this._onBrush, this);\n this._onBrushEnd = bind(this._onBrushEnd, this);\n };\n\n SliderZoomView.prototype.render = function (dataZoomModel, ecModel, api, payload) {\n _super.prototype.render.apply(this, arguments);\n\n throttle.createOrUpdate(this, '_dispatchZoomAction', dataZoomModel.get('throttle'), 'fixRate');\n this._orient = dataZoomModel.getOrient();\n\n if (dataZoomModel.get('show') === false) {\n this.group.removeAll();\n return;\n }\n\n if (dataZoomModel.noTarget()) {\n this._clear();\n\n this.group.removeAll();\n return;\n } // Notice: this._resetInterval() should not be executed when payload.type\n // is 'dataZoom', origin this._range should be maintained, otherwise 'pan'\n // or 'zoom' info will be missed because of 'throttle' of this.dispatchAction,\n\n\n if (!payload || payload.type !== 'dataZoom' || payload.from !== this.uid) {\n this._buildView();\n }\n\n this._updateView();\n };\n\n SliderZoomView.prototype.dispose = function () {\n this._clear();\n\n _super.prototype.dispose.apply(this, arguments);\n };\n\n SliderZoomView.prototype._clear = function () {\n throttle.clear(this, '_dispatchZoomAction');\n var zr = this.api.getZr();\n zr.off('mousemove', this._onBrush);\n zr.off('mouseup', this._onBrushEnd);\n };\n\n SliderZoomView.prototype._buildView = function () {\n var thisGroup = this.group;\n thisGroup.removeAll();\n this._brushing = false;\n this._displayables.brushRect = null;\n\n this._resetLocation();\n\n this._resetInterval();\n\n var barGroup = this._displayables.sliderGroup = new graphic.Group();\n\n this._renderBackground();\n\n this._renderHandle();\n\n this._renderDataShadow();\n\n thisGroup.add(barGroup);\n\n this._positionGroup();\n };\n\n SliderZoomView.prototype._resetLocation = function () {\n var dataZoomModel = this.dataZoomModel;\n var api = this.api;\n var showMoveHandle = dataZoomModel.get('brushSelect');\n var moveHandleSize = showMoveHandle ? DEFAULT_MOVE_HANDLE_SIZE : 0; // If some of x/y/width/height are not specified,\n // auto-adapt according to target grid.\n\n var coordRect = this._findCoordRect();\n\n var ecSize = {\n width: api.getWidth(),\n height: api.getHeight()\n }; // Default align by coordinate system rect.\n\n var positionInfo = this._orient === HORIZONTAL ? {\n // Why using 'right', because right should be used in vertical,\n // and it is better to be consistent for dealing with position param merge.\n right: ecSize.width - coordRect.x - coordRect.width,\n top: ecSize.height - DEFAULT_FILLER_SIZE - DEFAULT_LOCATION_EDGE_GAP - moveHandleSize,\n width: coordRect.width,\n height: DEFAULT_FILLER_SIZE\n } : {\n right: DEFAULT_LOCATION_EDGE_GAP,\n top: coordRect.y,\n width: DEFAULT_FILLER_SIZE,\n height: coordRect.height\n }; // Do not write back to option and replace value 'ph', because\n // the 'ph' value should be recalculated when resize.\n\n var layoutParams = layout.getLayoutParams(dataZoomModel.option); // Replace the placeholder value.\n\n each(['right', 'top', 'width', 'height'], function (name) {\n if (layoutParams[name] === 'ph') {\n layoutParams[name] = positionInfo[name];\n }\n });\n var layoutRect = layout.getLayoutRect(layoutParams, ecSize);\n this._location = {\n x: layoutRect.x,\n y: layoutRect.y\n };\n this._size = [layoutRect.width, layoutRect.height];\n this._orient === VERTICAL && this._size.reverse();\n };\n\n SliderZoomView.prototype._positionGroup = function () {\n var thisGroup = this.group;\n var location = this._location;\n var orient = this._orient; // Just use the first axis to determine mapping.\n\n var targetAxisModel = this.dataZoomModel.getFirstTargetAxisModel();\n var inverse = targetAxisModel && targetAxisModel.get('inverse');\n var sliderGroup = this._displayables.sliderGroup;\n var otherAxisInverse = (this._dataShadowInfo || {}).otherAxisInverse; // Transform barGroup.\n\n sliderGroup.attr(orient === HORIZONTAL && !inverse ? {\n scaleY: otherAxisInverse ? 1 : -1,\n scaleX: 1\n } : orient === HORIZONTAL && inverse ? {\n scaleY: otherAxisInverse ? 1 : -1,\n scaleX: -1\n } : orient === VERTICAL && !inverse ? {\n scaleY: otherAxisInverse ? -1 : 1,\n scaleX: 1,\n rotation: Math.PI / 2\n } // Don't use Math.PI, considering shadow direction.\n : {\n scaleY: otherAxisInverse ? -1 : 1,\n scaleX: -1,\n rotation: Math.PI / 2\n }); // Position barGroup\n\n var rect = thisGroup.getBoundingRect([sliderGroup]);\n thisGroup.x = location.x - rect.x;\n thisGroup.y = location.y - rect.y;\n thisGroup.markRedraw();\n };\n\n SliderZoomView.prototype._getViewExtent = function () {\n return [0, this._size[0]];\n };\n\n SliderZoomView.prototype._renderBackground = function () {\n var dataZoomModel = this.dataZoomModel;\n var size = this._size;\n var barGroup = this._displayables.sliderGroup;\n var brushSelect = dataZoomModel.get('brushSelect');\n barGroup.add(new Rect({\n silent: true,\n shape: {\n x: 0,\n y: 0,\n width: size[0],\n height: size[1]\n },\n style: {\n fill: dataZoomModel.get('backgroundColor')\n },\n z2: -40\n })); // Click panel, over shadow, below handles.\n\n var clickPanel = new Rect({\n shape: {\n x: 0,\n y: 0,\n width: size[0],\n height: size[1]\n },\n style: {\n fill: 'transparent'\n },\n z2: 0,\n onclick: bind(this._onClickPanel, this)\n });\n var zr = this.api.getZr();\n\n if (brushSelect) {\n clickPanel.on('mousedown', this._onBrushStart, this);\n clickPanel.cursor = 'crosshair';\n zr.on('mousemove', this._onBrush);\n zr.on('mouseup', this._onBrushEnd);\n } else {\n zr.off('mousemove', this._onBrush);\n zr.off('mouseup', this._onBrushEnd);\n }\n\n barGroup.add(clickPanel);\n };\n\n SliderZoomView.prototype._renderDataShadow = function () {\n var info = this._dataShadowInfo = this._prepareDataShadowInfo();\n\n this._displayables.dataShadowSegs = [];\n\n if (!info) {\n return;\n }\n\n var size = this._size;\n var oldSize = this._shadowSize || [];\n var seriesModel = info.series;\n var data = seriesModel.getRawData();\n var candlestickDim = seriesModel.getShadowDim && seriesModel.getShadowDim();\n var otherDim = candlestickDim && data.getDimensionInfo(candlestickDim) ? seriesModel.getShadowDim() // @see candlestick\n : info.otherDim;\n\n if (otherDim == null) {\n return;\n }\n\n var polygonPts = this._shadowPolygonPts;\n var polylinePts = this._shadowPolylinePts; // Not re-render if data doesn't change.\n\n if (data !== this._shadowData || otherDim !== this._shadowDim || size[0] !== oldSize[0] || size[1] !== oldSize[1]) {\n var otherDataExtent_1 = data.getDataExtent(otherDim); // Nice extent.\n\n var otherOffset = (otherDataExtent_1[1] - otherDataExtent_1[0]) * 0.3;\n otherDataExtent_1 = [otherDataExtent_1[0] - otherOffset, otherDataExtent_1[1] + otherOffset];\n var otherShadowExtent_1 = [0, size[1]];\n var thisShadowExtent = [0, size[0]];\n var areaPoints_1 = [[size[0], 0], [0, 0]];\n var linePoints_1 = [];\n var step_1 = thisShadowExtent[1] / (data.count() - 1);\n var thisCoord_1 = 0; // Optimize for large data shadow\n\n var stride_1 = Math.round(data.count() / size[0]);\n var lastIsEmpty_1;\n data.each([otherDim], function (value, index) {\n if (stride_1 > 0 && index % stride_1) {\n thisCoord_1 += step_1;\n return;\n } // FIXME\n // Should consider axis.min/axis.max when drawing dataShadow.\n // FIXME\n // 应该使用统一的空判断还是在list里进行空判断\n\n\n var isEmpty = value == null || isNaN(value) || value === ''; // See #4235.\n\n var otherCoord = isEmpty ? 0 : linearMap(value, otherDataExtent_1, otherShadowExtent_1, true); // Attempt to draw data shadow precisely when there are empty value.\n\n if (isEmpty && !lastIsEmpty_1 && index) {\n areaPoints_1.push([areaPoints_1[areaPoints_1.length - 1][0], 0]);\n linePoints_1.push([linePoints_1[linePoints_1.length - 1][0], 0]);\n } else if (!isEmpty && lastIsEmpty_1) {\n areaPoints_1.push([thisCoord_1, 0]);\n linePoints_1.push([thisCoord_1, 0]);\n }\n\n areaPoints_1.push([thisCoord_1, otherCoord]);\n linePoints_1.push([thisCoord_1, otherCoord]);\n thisCoord_1 += step_1;\n lastIsEmpty_1 = isEmpty;\n });\n polygonPts = this._shadowPolygonPts = areaPoints_1;\n polylinePts = this._shadowPolylinePts = linePoints_1;\n }\n\n this._shadowData = data;\n this._shadowDim = otherDim;\n this._shadowSize = [size[0], size[1]];\n var dataZoomModel = this.dataZoomModel;\n\n function createDataShadowGroup(isSelectedArea) {\n var model = dataZoomModel.getModel(isSelectedArea ? 'selectedDataBackground' : 'dataBackground');\n var group = new graphic.Group();\n var polygon = new graphic.Polygon({\n shape: {\n points: polygonPts\n },\n segmentIgnoreThreshold: 1,\n style: model.getModel('areaStyle').getAreaStyle(),\n silent: true,\n z2: -20\n });\n var polyline = new graphic.Polyline({\n shape: {\n points: polylinePts\n },\n segmentIgnoreThreshold: 1,\n style: model.getModel('lineStyle').getLineStyle(),\n silent: true,\n z2: -19\n });\n group.add(polygon);\n group.add(polyline);\n return group;\n } // let dataBackgroundModel = dataZoomModel.getModel('dataBackground');\n\n\n for (var i = 0; i < 3; i++) {\n var group = createDataShadowGroup(i === 1);\n\n this._displayables.sliderGroup.add(group);\n\n this._displayables.dataShadowSegs.push(group);\n }\n };\n\n SliderZoomView.prototype._prepareDataShadowInfo = function () {\n var dataZoomModel = this.dataZoomModel;\n var showDataShadow = dataZoomModel.get('showDataShadow');\n\n if (showDataShadow === false) {\n return;\n } // Find a representative series.\n\n\n var result;\n var ecModel = this.ecModel;\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n var seriesModels = dataZoomModel.getAxisProxy(axisDim, axisIndex).getTargetSeriesModels();\n each(seriesModels, function (seriesModel) {\n if (result) {\n return;\n }\n\n if (showDataShadow !== true && indexOf(SHOW_DATA_SHADOW_SERIES_TYPE, seriesModel.get('type')) < 0) {\n return;\n }\n\n var thisAxis = ecModel.getComponent(getAxisMainType(axisDim), axisIndex).axis;\n var otherDim = getOtherDim(axisDim);\n var otherAxisInverse;\n var coordSys = seriesModel.coordinateSystem;\n\n if (otherDim != null && coordSys.getOtherAxis) {\n otherAxisInverse = coordSys.getOtherAxis(thisAxis).inverse;\n }\n\n otherDim = seriesModel.getData().mapDimension(otherDim);\n result = {\n thisAxis: thisAxis,\n series: seriesModel,\n thisDim: axisDim,\n otherDim: otherDim,\n otherAxisInverse: otherAxisInverse\n };\n }, this);\n }, this);\n return result;\n };\n\n SliderZoomView.prototype._renderHandle = function () {\n var thisGroup = this.group;\n var displayables = this._displayables;\n var handles = displayables.handles = [null, null];\n var handleLabels = displayables.handleLabels = [null, null];\n var sliderGroup = this._displayables.sliderGroup;\n var size = this._size;\n var dataZoomModel = this.dataZoomModel;\n var api = this.api;\n var borderRadius = dataZoomModel.get('borderRadius') || 0;\n var brushSelect = dataZoomModel.get('brushSelect');\n var filler = displayables.filler = new Rect({\n silent: brushSelect,\n style: {\n fill: dataZoomModel.get('fillerColor')\n },\n textConfig: {\n position: 'inside'\n }\n });\n sliderGroup.add(filler); // Frame border.\n\n sliderGroup.add(new Rect({\n silent: true,\n subPixelOptimize: true,\n shape: {\n x: 0,\n y: 0,\n width: size[0],\n height: size[1],\n r: borderRadius\n },\n style: {\n // deprecated option\n stroke: dataZoomModel.get('dataBackgroundColor') || dataZoomModel.get('borderColor'),\n lineWidth: DEFAULT_FRAME_BORDER_WIDTH,\n fill: 'rgba(0,0,0,0)'\n }\n })); // Left and right handle to resize\n\n each([0, 1], function (handleIndex) {\n var iconStr = dataZoomModel.get('handleIcon');\n\n if (!symbolBuildProxies[iconStr] && iconStr.indexOf('path://') < 0 && iconStr.indexOf('image://') < 0) {\n // Compatitable with the old icon parsers. Which can use a path string without path://\n iconStr = 'path://' + iconStr;\n\n if (process.env.NODE_ENV !== 'production') {\n deprecateLog('handleIcon now needs \\'path://\\' prefix when using a path string');\n }\n }\n\n var path = createSymbol(iconStr, -1, 0, 2, 2, null, true);\n path.attr({\n cursor: getCursor(this._orient),\n draggable: true,\n drift: bind(this._onDragMove, this, handleIndex),\n ondragend: bind(this._onDragEnd, this),\n onmouseover: bind(this._showDataInfo, this, true),\n onmouseout: bind(this._showDataInfo, this, false),\n z2: 5\n });\n var bRect = path.getBoundingRect();\n var handleSize = dataZoomModel.get('handleSize');\n this._handleHeight = parsePercent(handleSize, this._size[1]);\n this._handleWidth = bRect.width / bRect.height * this._handleHeight;\n path.setStyle(dataZoomModel.getModel('handleStyle').getItemStyle());\n path.style.strokeNoScale = true;\n path.rectHover = true;\n path.ensureState('emphasis').style = dataZoomModel.getModel(['emphasis', 'handleStyle']).getItemStyle();\n enableHoverEmphasis(path);\n var handleColor = dataZoomModel.get('handleColor'); // deprecated option\n // Compatitable with previous version\n\n if (handleColor != null) {\n path.style.fill = handleColor;\n }\n\n sliderGroup.add(handles[handleIndex] = path);\n var textStyleModel = dataZoomModel.getModel('textStyle');\n thisGroup.add(handleLabels[handleIndex] = new graphic.Text({\n silent: true,\n invisible: true,\n style: createTextStyle(textStyleModel, {\n x: 0,\n y: 0,\n text: '',\n verticalAlign: 'middle',\n align: 'center',\n fill: textStyleModel.getTextColor(),\n font: textStyleModel.getFont()\n }),\n z2: 10\n }));\n }, this); // Handle to move. Only visible when brushSelect is set true.\n\n var actualMoveZone = filler;\n\n if (brushSelect) {\n var moveHandleHeight = parsePercent(dataZoomModel.get('moveHandleSize'), size[1]);\n var moveHandle_1 = displayables.moveHandle = new graphic.Rect({\n style: dataZoomModel.getModel('moveHandleStyle').getItemStyle(),\n silent: true,\n shape: {\n r: [0, 0, 2, 2],\n y: size[1] - 0.5,\n height: moveHandleHeight\n }\n });\n var iconSize = moveHandleHeight * 0.8;\n var moveHandleIcon = displayables.moveHandleIcon = createSymbol(dataZoomModel.get('moveHandleIcon'), -iconSize / 2, -iconSize / 2, iconSize, iconSize, '#fff', true);\n moveHandleIcon.silent = true;\n moveHandleIcon.y = size[1] + moveHandleHeight / 2 - 0.5;\n moveHandle_1.ensureState('emphasis').style = dataZoomModel.getModel(['emphasis', 'moveHandleStyle']).getItemStyle();\n var moveZoneExpandSize = Math.min(size[1] / 2, Math.max(moveHandleHeight, 10));\n actualMoveZone = displayables.moveZone = new graphic.Rect({\n invisible: true,\n shape: {\n y: size[1] - moveZoneExpandSize,\n height: moveHandleHeight + moveZoneExpandSize\n }\n });\n actualMoveZone.on('mouseover', function () {\n api.enterEmphasis(moveHandle_1);\n }).on('mouseout', function () {\n api.leaveEmphasis(moveHandle_1);\n });\n sliderGroup.add(moveHandle_1);\n sliderGroup.add(moveHandleIcon);\n sliderGroup.add(actualMoveZone);\n }\n\n actualMoveZone.attr({\n draggable: true,\n cursor: getCursor(this._orient),\n drift: bind(this._onDragMove, this, 'all'),\n ondragstart: bind(this._showDataInfo, this, true),\n ondragend: bind(this._onDragEnd, this),\n onmouseover: bind(this._showDataInfo, this, true),\n onmouseout: bind(this._showDataInfo, this, false)\n });\n };\n\n SliderZoomView.prototype._resetInterval = function () {\n var range = this._range = this.dataZoomModel.getPercentRange();\n\n var viewExtent = this._getViewExtent();\n\n this._handleEnds = [linearMap(range[0], [0, 100], viewExtent, true), linearMap(range[1], [0, 100], viewExtent, true)];\n };\n\n SliderZoomView.prototype._updateInterval = function (handleIndex, delta) {\n var dataZoomModel = this.dataZoomModel;\n var handleEnds = this._handleEnds;\n\n var viewExtend = this._getViewExtent();\n\n var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();\n var percentExtent = [0, 100];\n sliderMove(delta, handleEnds, viewExtend, dataZoomModel.get('zoomLock') ? 'all' : handleIndex, minMaxSpan.minSpan != null ? linearMap(minMaxSpan.minSpan, percentExtent, viewExtend, true) : null, minMaxSpan.maxSpan != null ? linearMap(minMaxSpan.maxSpan, percentExtent, viewExtend, true) : null);\n var lastRange = this._range;\n var range = this._range = asc([linearMap(handleEnds[0], viewExtend, percentExtent, true), linearMap(handleEnds[1], viewExtend, percentExtent, true)]);\n return !lastRange || lastRange[0] !== range[0] || lastRange[1] !== range[1];\n };\n\n SliderZoomView.prototype._updateView = function (nonRealtime) {\n var displaybles = this._displayables;\n var handleEnds = this._handleEnds;\n var handleInterval = asc(handleEnds.slice());\n var size = this._size;\n each([0, 1], function (handleIndex) {\n // Handles\n var handle = displaybles.handles[handleIndex];\n var handleHeight = this._handleHeight;\n handle.attr({\n scaleX: handleHeight / 2,\n scaleY: handleHeight / 2,\n // This is a trick, by adding an extra tiny offset to let the default handle's end point align to the drag window.\n // NOTE: It may affect some custom shapes a bit. But we prefer to have better result by default.\n x: handleEnds[handleIndex] + (handleIndex ? -1 : 1),\n y: size[1] / 2 - handleHeight / 2\n });\n }, this); // Filler\n\n displaybles.filler.setShape({\n x: handleInterval[0],\n y: 0,\n width: handleInterval[1] - handleInterval[0],\n height: size[1]\n });\n var viewExtent = {\n x: handleInterval[0],\n width: handleInterval[1] - handleInterval[0]\n }; // Move handle\n\n if (displaybles.moveHandle) {\n displaybles.moveHandle.setShape(viewExtent);\n displaybles.moveZone.setShape(viewExtent); // Force update path on the invisible object\n\n displaybles.moveZone.getBoundingRect();\n displaybles.moveHandleIcon && displaybles.moveHandleIcon.attr('x', viewExtent.x + viewExtent.width / 2);\n } // update clip path of shadow.\n\n\n var dataShadowSegs = displaybles.dataShadowSegs;\n var segIntervals = [0, handleInterval[0], handleInterval[1], size[0]];\n\n for (var i = 0; i < dataShadowSegs.length; i++) {\n var segGroup = dataShadowSegs[i];\n var clipPath = segGroup.getClipPath();\n\n if (!clipPath) {\n clipPath = new graphic.Rect();\n segGroup.setClipPath(clipPath);\n }\n\n clipPath.setShape({\n x: segIntervals[i],\n y: 0,\n width: segIntervals[i + 1] - segIntervals[i],\n height: size[1]\n });\n }\n\n this._updateDataInfo(nonRealtime);\n };\n\n SliderZoomView.prototype._updateDataInfo = function (nonRealtime) {\n var dataZoomModel = this.dataZoomModel;\n var displaybles = this._displayables;\n var handleLabels = displaybles.handleLabels;\n var orient = this._orient;\n var labelTexts = ['', '']; // FIXME\n // date型支持formatterautoformatterec2 date.getAutoFormatter\n\n if (dataZoomModel.get('showDetail')) {\n var axisProxy = dataZoomModel.findRepresentativeAxisProxy();\n\n if (axisProxy) {\n var axis = axisProxy.getAxisModel().axis;\n var range = this._range;\n var dataInterval = nonRealtime // See #4434, data and axis are not processed and reset yet in non-realtime mode.\n ? axisProxy.calculateDataWindow({\n start: range[0],\n end: range[1]\n }).valueWindow : axisProxy.getDataValueWindow();\n labelTexts = [this._formatLabel(dataInterval[0], axis), this._formatLabel(dataInterval[1], axis)];\n }\n }\n\n var orderedHandleEnds = asc(this._handleEnds.slice());\n setLabel.call(this, 0);\n setLabel.call(this, 1);\n\n function setLabel(handleIndex) {\n // Label\n // Text should not transform by barGroup.\n // Ignore handlers transform\n var barTransform = graphic.getTransform(displaybles.handles[handleIndex].parent, this.group);\n var direction = graphic.transformDirection(handleIndex === 0 ? 'right' : 'left', barTransform);\n var offset = this._handleWidth / 2 + LABEL_GAP;\n var textPoint = graphic.applyTransform([orderedHandleEnds[handleIndex] + (handleIndex === 0 ? -offset : offset), this._size[1] / 2], barTransform);\n handleLabels[handleIndex].setStyle({\n x: textPoint[0],\n y: textPoint[1],\n verticalAlign: orient === HORIZONTAL ? 'middle' : direction,\n align: orient === HORIZONTAL ? direction : 'center',\n text: labelTexts[handleIndex]\n });\n }\n };\n\n SliderZoomView.prototype._formatLabel = function (value, axis) {\n var dataZoomModel = this.dataZoomModel;\n var labelFormatter = dataZoomModel.get('labelFormatter');\n var labelPrecision = dataZoomModel.get('labelPrecision');\n\n if (labelPrecision == null || labelPrecision === 'auto') {\n labelPrecision = axis.getPixelPrecision();\n }\n\n var valueStr = value == null || isNaN(value) ? '' // FIXME Glue code\n : axis.type === 'category' || axis.type === 'time' ? axis.scale.getLabel({\n value: Math.round(value)\n }) // param of toFixed should less then 20.\n : value.toFixed(Math.min(labelPrecision, 20));\n return isFunction(labelFormatter) ? labelFormatter(value, valueStr) : isString(labelFormatter) ? labelFormatter.replace('{value}', valueStr) : valueStr;\n };\n /**\n * @param showOrHide true: show, false: hide\n */\n\n\n SliderZoomView.prototype._showDataInfo = function (showOrHide) {\n // Always show when drgging.\n showOrHide = this._dragging || showOrHide;\n var displayables = this._displayables;\n var handleLabels = displayables.handleLabels;\n handleLabels[0].attr('invisible', !showOrHide);\n handleLabels[1].attr('invisible', !showOrHide); // Highlight move handle\n\n displayables.moveHandle && this.api[showOrHide ? 'enterEmphasis' : 'leaveEmphasis'](displayables.moveHandle, 1);\n };\n\n SliderZoomView.prototype._onDragMove = function (handleIndex, dx, dy, event) {\n this._dragging = true; // For mobile device, prevent screen slider on the button.\n\n eventTool.stop(event.event); // Transform dx, dy to bar coordination.\n\n var barTransform = this._displayables.sliderGroup.getLocalTransform();\n\n var vertex = graphic.applyTransform([dx, dy], barTransform, true);\n\n var changed = this._updateInterval(handleIndex, vertex[0]);\n\n var realtime = this.dataZoomModel.get('realtime');\n\n this._updateView(!realtime); // Avoid dispatch dataZoom repeatly but range not changed,\n // which cause bad visual effect when progressive enabled.\n\n\n changed && realtime && this._dispatchZoomAction(true);\n };\n\n SliderZoomView.prototype._onDragEnd = function () {\n this._dragging = false;\n\n this._showDataInfo(false); // While in realtime mode and stream mode, dispatch action when\n // drag end will cause the whole view rerender, which is unnecessary.\n\n\n var realtime = this.dataZoomModel.get('realtime');\n !realtime && this._dispatchZoomAction(false);\n };\n\n SliderZoomView.prototype._onClickPanel = function (e) {\n var size = this._size;\n\n var localPoint = this._displayables.sliderGroup.transformCoordToLocal(e.offsetX, e.offsetY);\n\n if (localPoint[0] < 0 || localPoint[0] > size[0] || localPoint[1] < 0 || localPoint[1] > size[1]) {\n return;\n }\n\n var handleEnds = this._handleEnds;\n var center = (handleEnds[0] + handleEnds[1]) / 2;\n\n var changed = this._updateInterval('all', localPoint[0] - center);\n\n this._updateView();\n\n changed && this._dispatchZoomAction(false);\n };\n\n SliderZoomView.prototype._onBrushStart = function (e) {\n var x = e.offsetX;\n var y = e.offsetY;\n this._brushStart = new graphic.Point(x, y);\n this._brushing = true;\n this._brushStartTime = +new Date(); // this._updateBrushRect(x, y);\n };\n\n SliderZoomView.prototype._onBrushEnd = function (e) {\n if (!this._brushing) {\n return;\n }\n\n var brushRect = this._displayables.brushRect;\n this._brushing = false;\n\n if (!brushRect) {\n return;\n }\n\n brushRect.attr('ignore', true);\n var brushShape = brushRect.shape;\n var brushEndTime = +new Date(); // console.log(brushEndTime - this._brushStartTime);\n\n if (brushEndTime - this._brushStartTime < 200 && Math.abs(brushShape.width) < 5) {\n // Will treat it as a click\n return;\n }\n\n var viewExtend = this._getViewExtent();\n\n var percentExtent = [0, 100];\n this._range = asc([linearMap(brushShape.x, viewExtend, percentExtent, true), linearMap(brushShape.x + brushShape.width, viewExtend, percentExtent, true)]);\n this._handleEnds = [brushShape.x, brushShape.x + brushShape.width];\n\n this._updateView();\n\n this._dispatchZoomAction(false);\n };\n\n SliderZoomView.prototype._onBrush = function (e) {\n if (this._brushing) {\n // For mobile device, prevent screen slider on the button.\n eventTool.stop(e.event);\n\n this._updateBrushRect(e.offsetX, e.offsetY);\n }\n };\n\n SliderZoomView.prototype._updateBrushRect = function (mouseX, mouseY) {\n var displayables = this._displayables;\n var dataZoomModel = this.dataZoomModel;\n var brushRect = displayables.brushRect;\n\n if (!brushRect) {\n brushRect = displayables.brushRect = new Rect({\n silent: true,\n style: dataZoomModel.getModel('brushStyle').getItemStyle()\n });\n displayables.sliderGroup.add(brushRect);\n }\n\n brushRect.attr('ignore', false);\n var brushStart = this._brushStart;\n var sliderGroup = this._displayables.sliderGroup;\n var endPoint = sliderGroup.transformCoordToLocal(mouseX, mouseY);\n var startPoint = sliderGroup.transformCoordToLocal(brushStart.x, brushStart.y);\n var size = this._size;\n endPoint[0] = Math.max(Math.min(size[0], endPoint[0]), 0);\n brushRect.setShape({\n x: startPoint[0],\n y: 0,\n width: endPoint[0] - startPoint[0],\n height: size[1]\n });\n };\n /**\n * This action will be throttled.\n */\n\n\n SliderZoomView.prototype._dispatchZoomAction = function (realtime) {\n var range = this._range;\n this.api.dispatchAction({\n type: 'dataZoom',\n from: this.uid,\n dataZoomId: this.dataZoomModel.id,\n animation: realtime ? REALTIME_ANIMATION_CONFIG : null,\n start: range[0],\n end: range[1]\n });\n };\n\n SliderZoomView.prototype._findCoordRect = function () {\n // Find the grid corresponding to the first axis referred by dataZoom.\n var rect;\n var coordSysInfoList = collectReferCoordSysModelInfo(this.dataZoomModel).infoList;\n\n if (!rect && coordSysInfoList.length) {\n var coordSys = coordSysInfoList[0].model.coordinateSystem;\n rect = coordSys.getRect && coordSys.getRect();\n }\n\n if (!rect) {\n var width = this.api.getWidth();\n var height = this.api.getHeight();\n rect = {\n x: width * 0.2,\n y: height * 0.2,\n width: width * 0.6,\n height: height * 0.6\n };\n }\n\n return rect;\n };\n\n SliderZoomView.type = 'dataZoom.slider';\n return SliderZoomView;\n}(DataZoomView);\n\nfunction getOtherDim(thisDim) {\n // FIXME\n // 这个逻辑和getOtherAxis里一致但是写在这里是否不好\n var map = {\n x: 'y',\n y: 'x',\n radius: 'angle',\n angle: 'radius'\n };\n return map[thisDim];\n}\n\nfunction getCursor(orient) {\n return orient === 'vertical' ? 'ns-resize' : 'ew-resize';\n}\n\nexport default SliderZoomView;"]},"metadata":{},"sourceType":"module"}